aboutsummaryrefslogtreecommitdiff
path: root/libgfortran
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2020-05-29 21:32:41 +0000
committerSegher Boessenkool <segher@kernel.crashing.org>2020-05-29 23:14:43 +0000
commitee969a36d9887e1a3230fe3de2d398fd6c6dac49 (patch)
tree834f36dfc6252ae6593bc3acd34ad3c85d25ab7f /libgfortran
parentc75ebe76ae12ac4020f20a24f34606a594a40d15 (diff)
downloadgcc-ee969a36d9887e1a3230fe3de2d398fd6c6dac49.zip
gcc-ee969a36d9887e1a3230fe3de2d398fd6c6dac49.tar.gz
gcc-ee969a36d9887e1a3230fe3de2d398fd6c6dac49.tar.bz2
rs6000: Prefer VSX insns over VMX ones (part 1: perm and mrg)
There are various VSX insns that do the same job as (older) AltiVec insns, just with a wider range of possible registers. Many patterns for such insns have the "v" alternative before the "wa" alternative, which makes the output less readable than possible (since vs32 is v0, and most insns before or after this insn will be VSX as well). This changes the define_insns for the mrg and perm machine instructions to prefer the VSX form. No behaviour change. Only one testcase needed a little adjustment as well. 2020-05-29 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/altivec.md (altivec_vmrghw_direct): Prefer VSX form. (altivec_vmrglw_direct): Ditto. (altivec_vperm_<mode>_direct): Ditto. (altivec_vperm_v8hiv16qi): Ditto. (*altivec_vperm_<mode>_uns_internal): Ditto. (*altivec_vpermr_<mode>_internal): Ditto. (vperm_v8hiv4si): Ditto. (vperm_v16qiv8hi): Ditto. gcc/testsuite/ * gcc.target/powerpc/vsx-vector-6.p9.c: Allow xxperm as perm as well.
Diffstat (limited to 'libgfortran')
0 files changed, 0 insertions, 0 deletions