aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-niter.c
diff options
context:
space:
mode:
authorKewen Lin <linkw@linux.ibm.com>2021-08-24 21:58:14 -0500
committerKewen Lin <linkw@linux.ibm.com>2021-08-24 21:58:14 -0500
commita20be0cdc068d9ffab7bf0c9d2a8702162746bd8 (patch)
treeb8aa5dd0159c14f6924996710f91d40ca926cb33 /gcc/tree-ssa-loop-niter.c
parent4f5391dde1a83086b451f7534c815ab1267bb6bc (diff)
downloadgcc-a20be0cdc068d9ffab7bf0c9d2a8702162746bd8.zip
gcc-a20be0cdc068d9ffab7bf0c9d2a8702162746bd8.tar.gz
gcc-a20be0cdc068d9ffab7bf0c9d2a8702162746bd8.tar.bz2
rs6000: Add vec_unpacku_{hi,lo}_v4si
The existing vec_unpacku_{hi,lo} supports emulated unsigned unpacking for short and char but misses the support for int. This patch adds the support of vec_unpacku_{hi,lo}_v4si. Meanwhile, the current implementation uses vector permutation way, which requires one extra customized constant vector as the permutation control vector. It's better to use vector merge high/low with zero constant vector, to save the space in constant area as well as the cost to initialize pcv in prologue. This patch updates it with vector merging and simplify it with iterators. gcc/ChangeLog: * config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Remove. (vec_unpacku_hi_v8hi): Likewise. (vec_unpacku_lo_v16qi): Likewise. (vec_unpacku_lo_v8hi): Likewise. (vec_unpacku_hi_<VP_small_lc>): New define_expand. (vec_unpacku_lo_<VP_small_lc>): Likewise. gcc/testsuite/ChangeLog: * gcc.target/powerpc/unpack-vectorize-1.c: New test. * gcc.target/powerpc/unpack-vectorize-1.h: New test. * gcc.target/powerpc/unpack-vectorize-2.c: New test. * gcc.target/powerpc/unpack-vectorize-2.h: New test. * gcc.target/powerpc/unpack-vectorize-3.c: New test. * gcc.target/powerpc/unpack-vectorize-3.h: New test. * gcc.target/powerpc/unpack-vectorize-run-1.c: New test. * gcc.target/powerpc/unpack-vectorize-run-2.c: New test. * gcc.target/powerpc/unpack-vectorize-run-3.c: New test. * gcc.target/powerpc/unpack-vectorize.h: New test.
Diffstat (limited to 'gcc/tree-ssa-loop-niter.c')
0 files changed, 0 insertions, 0 deletions