diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2019-08-15 08:55:00 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2019-08-15 08:55:00 +0000 |
commit | 2d2388f82f2e7f2fd1da063192ba98be45f099d2 (patch) | |
tree | 588378ba2fecfeb6906604a46709aa9c4c2733e7 /gcc/function.c | |
parent | 139df05a29eb71075e42f502978dea4d00a99708 (diff) | |
download | gcc-2d2388f82f2e7f2fd1da063192ba98be45f099d2.zip gcc-2d2388f82f2e7f2fd1da063192ba98be45f099d2.tar.gz gcc-2d2388f82f2e7f2fd1da063192ba98be45f099d2.tar.bz2 |
[AArch64] Tweak operand choice for SVE predicate AND
SVE defines an assembly alias:
MOV pa.B, pb/Z, pc.B -> AND pa.B. pb/Z, pc.B, pc.B
Our and<mode>3 pattern was instead using the functionally-equivalent:
AND pa.B. pb/Z, pb.B, pc.B
^^^^
This patch duplicates pc.B instead so that the alias can be seen
in disassembly.
I wondered about using the alias in the pattern instead, but using AND
explicitly seems to fit better with the pattern name and surrounding code.
2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
gcc/
* config/aarch64/aarch64-sve.md (and<PRED_ALL:mode>3): Make the
operand order match the MOV /Z alias.
From-SVN: r274521
Diffstat (limited to 'gcc/function.c')
0 files changed, 0 insertions, 0 deletions