[PATCH, rs6000] (v2) Gimple folding of splat_uX

Segher Boessenkool segher@kernel.crashing.org
Mon Dec 11 16:47:00 GMT 2017


Hi!

On Fri, Dec 08, 2017 at 11:08:26AM -0600, Will Schmidt wrote:
> Add support for gimple folding of splat_u{8,16,32}.
> Testcase coverage is primarily handled by existing tests
> testsuite/gcc.target/powerpc/fold-vec-splat_*.c
>     
> One new test added to verify we continue to receive
> an 'invalid argument, must be a 5-bit immediate' error
> when we try to splat a non-constant value.
>     
> V2 updates include..
>   Use the gimple_convert() helper.
>   Use the build_vector_from_val() helper.
>   whitespace fix-ups.
> Those changes actually simplify the code here significantly, which is good. :-)

:-)

> 2017-12-08  Will Schmidt  <will_schmidt@vnet.ibm.com>
>     
> 	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
> 	early folding of splat_u{8,16,32}.
>     
> [testsuite]
> 
> 2017-12-08  Will Schmidt  <will_schmidt@vnet.ibm.com>
> 
> 	* gcc.target/powerpc/fold-vec-splat-misc-invalid.c: New.


> +    /* flavors of vec_splat_[us]{8,16,32}.  */
> +    case ALTIVEC_BUILTIN_VSPLTISB:
> +    case ALTIVEC_BUILTIN_VSPLTISH:
> +    case ALTIVEC_BUILTIN_VSPLTISW:
> +      {
> +	 arg0 = gimple_call_arg (stmt, 0);

The indent here is wrong (should be two spaces, is three).

Looks fine otherwise.  Okay for trunk with that fixed.  Thanks!


Segher



More information about the Gcc-patches mailing list