[PATCH] D64413: [ARM] Enable VPUSH/VPOP aliases when either MVE or VFP is present
Mikhail Maltsev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 9 06:24:20 PDT 2019
miyuki created this revision.
miyuki added reviewers: ostannard, simon_tatham, SjoerdMeijer, samparker, t.p.northover.
Herald added subscribers: dmgreen, hiraditya, kristof.beyls, javed.absar.
Herald added a project: LLVM.
Use the same predicates as VSTMDB/VLDMIA since VPUSH/VPOP alias to
these.
Patch by Momchil Velikov.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D64413
Files:
llvm/lib/Target/ARM/ARMInstrVFP.td
llvm/test/MC/ARM/mve-fp-registers.s
Index: llvm/test/MC/ARM/mve-fp-registers.s
===================================================================
--- llvm/test/MC/ARM/mve-fp-registers.s
+++ llvm/test/MC/ARM/mve-fp-registers.s
@@ -45,18 +45,34 @@
# FP32: vldmia r0, {d0} @ encoding: [0x90,0xec,0x02,0x0b]
# NOFP32: :[[@LINE-2]]:{{[0-9]+}}: {{note|error}}: instruction requires: fp registers
+vpop {d0-d15}
+# FP32: vpop {{.*}} @ encoding: [0xbd,0xec,0x20,0x0b]
+# NOFP32: :[[@LINE-2]]:{{[0-9]+}}: {{note|error}}: instruction requires: fp registers
+
vstmia r0, {d0}
# FP32: vstmia r0, {d0} @ encoding: [0x80,0xec,0x02,0x0b]
# NOFP32: :[[@LINE-2]]:{{[0-9]+}}: {{note|error}}: instruction requires: fp registers
+vpush {d0-d15}
+# FP32: vpush {{.*}} @ encoding: [0x2d,0xed,0x20,0x0b]
+# NOFP32: :[[@LINE-2]]:{{[0-9]+}}: {{note|error}}: instruction requires: fp registers
+
vldmia r0, {s0}
# FP32: vldmia r0, {s0} @ encoding: [0x90,0xec,0x01,0x0a]
# NOFP32: :[[@LINE-2]]:{{[0-9]+}}: {{note|error}}: instruction requires: fp registers
+vpop {s0-s31}
+# FP32: vpop {{.*}} @ encoding: [0xbd,0xec,0x20,0x0a]
+# NOFP32: :[[@LINE-2]]:{{[0-9]+}}: {{note|error}}: instruction requires: fp registers
+
vstmia r0, {s0}
# FP32: vstmia r0, {s0} @ encoding: [0x80,0xec,0x01,0x0a]
# NOFP32: :[[@LINE-2]]:{{[0-9]+}}: {{note|error}}: instruction requires: fp registers
+vpush {s0-s31}
+# FP32: vpush {{.*}} @ encoding: [0x2d,0xed,0x20,0x0a]
+# NOFP32: :[[@LINE-2]]:{{[0-9]+}}: {{note|error}}: instruction requires: fp registers
+
fldmdbx r0!, {d0}
# FP32: fldmdbx r0!, {d0} @ encoding: [0x30,0xed,0x03,0x0b]
# NOFP32: :[[@LINE-2]]:{{[0-9]+}}: {{note|error}}: instruction requires: fp registers
Index: llvm/lib/Target/ARM/ARMInstrVFP.td
===================================================================
--- llvm/lib/Target/ARM/ARMInstrVFP.td
+++ llvm/lib/Target/ARM/ARMInstrVFP.td
@@ -302,13 +302,13 @@
}
def : InstAlias<"vpush${p} $r", (VSTMDDB_UPD SP, pred:$p, dpr_reglist:$r), 0>,
- Requires<[HasVFP2]>;
+ Requires<[HasFPRegs]>;
def : InstAlias<"vpush${p} $r", (VSTMSDB_UPD SP, pred:$p, spr_reglist:$r), 0>,
- Requires<[HasVFP2]>;
+ Requires<[HasFPRegs]>;
def : InstAlias<"vpop${p} $r", (VLDMDIA_UPD SP, pred:$p, dpr_reglist:$r), 0>,
- Requires<[HasVFP2]>;
+ Requires<[HasFPRegs]>;
def : InstAlias<"vpop${p} $r", (VLDMSIA_UPD SP, pred:$p, spr_reglist:$r), 0>,
- Requires<[HasVFP2]>;
+ Requires<[HasFPRegs]>;
defm : VFPDTAnyInstAlias<"vpush${p}", "$r",
(VSTMSDB_UPD SP, pred:$p, spr_reglist:$r)>;
defm : VFPDTAnyInstAlias<"vpush${p}", "$r",
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D64413.208662.patch
Type: text/x-patch
Size: 2832 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190709/45396d9b/attachment.bin>
More information about the llvm-commits
mailing list