[PATCH] rs6000: Fix PR 88100, range check for vec_splat_{su}{8,16,32}

Bill Schmidt wschmidt@linux.ibm.com
Wed Feb 20 04:13:00 GMT 2019


On 2/19/19 8:11 AM, Segher Boessenkool wrote:
> Hi!
>
> On Tue, Feb 19, 2019 at 03:38:56AM -0600, Li Jia He wrote:
>> GCC revision 259524 implemented range check for the vec_splat_{su}{8,16,32}
>> builtins.  However, as a consequence of the implementation, the range check
>> is not done correctly for the expected vspltis[bhw] instructions.  The result
>> is that we may not get a valid error message if the valid range of the data
>> is exceeded.
>> 	PR target/88100
>> 	* gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Remove
>> 	sext_hwi in IN_RANGE (sext_hwi (TREE_INT_CST_LOW (arg0), size),
>> 	-16, 15).
> Please avoid more than a word or two of C in changelogs.  Also, in such
> cases you should show the case labels:
>
> 	PR target/88100
> 	* gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
> 	<case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
> 	ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before range
> 	checking it.
>
> Okay for trunk with that.  Thanks!

I believe you will also want to get permission to backport this to GCC 8.
It looks like the problem was introduced there, correct?

Thanks,
Bill

>
>
> Segher
>



More information about the Gcc-patches mailing list