[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