https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87532
--- Comment #16 from kelvin at gcc dot gnu.org --- Author: kelvin Date: Fri Mar 15 19:52:43 2019 New Revision: 269715 URL: https://gcc.gnu.org/viewcvs?rev=269715&root=gcc&view=rev Log: gcc/ChangeLog: 2019-03-15 Kelvin Nilsen <kel...@gcc.gnu.org> PR target/87532 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): When handling vec_extract, use modular arithmetic to allow constant selectors greater than vector length. * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow V1TImode vectors to have constant selector values greater than 0. Use modular arithmetic to compute vector index. (rs6000_split_vec_extract_var): Use modular arithmetic to compute index for in-memory vectors. Correct code generation for in-register vectors. (altivec_expand_vec_ext_builtin): Use modular arithmetic to compute index. gcc/testsuite/ChangeLog: 2019-03-15 Kelvin Nilsen <kel...@gcc.gnu.org> PR target/87532 * gcc.target/powerpc/fold-vec-extract-char.p8.c: Modify expected instruction selection. * gcc.target/powerpc/fold-vec-extract-int.p8.c: Likewise. * gcc.target/powerpc/fold-vec-extract-short.p8.c: Likewise. * gcc.target/powerpc/pr87532-mc.c: New test. * gcc.target/powerpc/pr87532.c: New test. * gcc.target/powerpc/vec-extract-v16qiu-v2.h: New test. * gcc.target/powerpc/vec-extract-v16qiu-v2a.c: New test. * gcc.target/powerpc/vec-extract-v16qiu-v2b.c: New test. * gcc.target/powerpc/vsx-builtin-10a.c: New test. * gcc.target/powerpc/vsx-builtin-10b.c: New test. * gcc.target/powerpc/vsx-builtin-11a.c: New test. * gcc.target/powerpc/vsx-builtin-11b.c: New test. * gcc.target/powerpc/vsx-builtin-12a.c: New test. * gcc.target/powerpc/vsx-builtin-12b.c: New test. * gcc.target/powerpc/vsx-builtin-13a.c: New test. * gcc.target/powerpc/vsx-builtin-13b.c: New test. * gcc.target/powerpc/vsx-builtin-14a.c: New test. * gcc.target/powerpc/vsx-builtin-14b.c: New test. * gcc.target/powerpc/vsx-builtin-15a.c: New test. * gcc.target/powerpc/vsx-builtin-15b.c: New test. * gcc.target/powerpc/vsx-builtin-16a.c: New test. * gcc.target/powerpc/vsx-builtin-16b.c: New test. * gcc.target/powerpc/vsx-builtin-17a.c: New test. * gcc.target/powerpc/vsx-builtin-17b.c: New test. * gcc.target/powerpc/vsx-builtin-18a.c: New test. * gcc.target/powerpc/vsx-builtin-18b.c: New test. * gcc.target/powerpc/vsx-builtin-19a.c: New test. * gcc.target/powerpc/vsx-builtin-19b.c: New test. * gcc.target/powerpc/vsx-builtin-20a.c: New test. * gcc.target/powerpc/vsx-builtin-20b.c: New test. * gcc.target/powerpc/vsx-builtin-9a.c: New test. * gcc.target/powerpc/vsx-builtin-9b.c: New test. Added: trunk/gcc/testsuite/gcc.target/powerpc/pr87532-mc.c trunk/gcc/testsuite/gcc.target/powerpc/pr87532.c trunk/gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2.h trunk/gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2a.c trunk/gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2b.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-10a.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-10b.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-11a.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-11b.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-12a.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-12b.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-13a.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-13b.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-14a.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-14b.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-15a.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-15b.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-16a.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-16b.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-17a.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-17b.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-18a.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-18b.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-19a.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-19b.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-20a.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-20b.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-9a.c trunk/gcc/testsuite/gcc.target/powerpc/vsx-builtin-9b.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/rs6000/rs6000-c.c trunk/gcc/config/rs6000/rs6000.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.target/powerpc/fold-vec-extract-char.p8.c trunk/gcc/testsuite/gcc.target/powerpc/fold-vec-extract-int.p8.c trunk/gcc/testsuite/gcc.target/powerpc/fold-vec-extract-short.p8.c