diff options
author | Kewen Lin <linkw@linux.ibm.com> | 2021-08-24 21:58:14 -0500 |
---|---|---|
committer | Kewen Lin <linkw@linux.ibm.com> | 2021-08-24 21:58:14 -0500 |
commit | a20be0cdc068d9ffab7bf0c9d2a8702162746bd8 (patch) | |
tree | b8aa5dd0159c14f6924996710f91d40ca926cb33 /gcc/tree-ssa-loop-niter.c | |
parent | 4f5391dde1a83086b451f7534c815ab1267bb6bc (diff) | |
download | gcc-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