[llvm-commits] [llvm] r144722 - in /llvm/trunk/lib/Target/ARM: ARMInstrFormats.td ARMInstrNEON.td
Jim Grosbach
grosbach at apple.com
Tue Nov 15 14:54:42 PST 2011
Author: grosbach
Date: Tue Nov 15 16:54:42 2011
New Revision: 144722
URL: http://llvm.org/viewvc/llvm-project?rev=144722&view=rev
Log:
ARM assembly parsing for data type suffices on NEON VMOV aliases.
Modified:
llvm/trunk/lib/Target/ARM/ARMInstrFormats.td
llvm/trunk/lib/Target/ARM/ARMInstrNEON.td
Modified: llvm/trunk/lib/Target/ARM/ARMInstrFormats.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMInstrFormats.td?rev=144722&r1=144721&r2=144722&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMInstrFormats.td (original)
+++ llvm/trunk/lib/Target/ARM/ARMInstrFormats.td Tue Nov 15 16:54:42 2011
@@ -2041,9 +2041,26 @@
def _64 : VFPDataTypeInstAlias<opc, ".64", asm, Result>;
defm : VFPDT64ReqInstAlias<opc, asm, Result>;
}
+multiclass VFPDT64NoF64ReqInstAlias<string opc, string asm, dag Result> {
+ def I64 : VFPDataTypeInstAlias<opc, ".i64", asm, Result>;
+ def S64 : VFPDataTypeInstAlias<opc, ".s64", asm, Result>;
+ def U64 : VFPDataTypeInstAlias<opc, ".u64", asm, Result>;
+ def D : VFPDataTypeInstAlias<opc, ".d", asm, Result>;
+}
+// VFPDT64ReqInstAlias plus plain ".64"
+multiclass VFPDT64NoF64InstAlias<string opc, string asm, dag Result> {
+ def _64 : VFPDataTypeInstAlias<opc, ".64", asm, Result>;
+ defm : VFPDT64ReqInstAlias<opc, asm, Result>;
+}
multiclass VFPDTAnyInstAlias<string opc, string asm, dag Result> {
defm : VFPDT8InstAlias<opc, asm, Result>;
defm : VFPDT16InstAlias<opc, asm, Result>;
defm : VFPDT32InstAlias<opc, asm, Result>;
defm : VFPDT64InstAlias<opc, asm, Result>;
}
+multiclass VFPDTAnyNoF64InstAlias<string opc, string asm, dag Result> {
+ defm : VFPDT8InstAlias<opc, asm, Result>;
+ defm : VFPDT16InstAlias<opc, asm, Result>;
+ defm : VFPDT32InstAlias<opc, asm, Result>;
+ defm : VFPDT64NoF64InstAlias<opc, asm, Result>;
+}
Modified: llvm/trunk/lib/Target/ARM/ARMInstrNEON.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMInstrNEON.td?rev=144722&r1=144721&r2=144722&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMInstrNEON.td (original)
+++ llvm/trunk/lib/Target/ARM/ARMInstrNEON.td Tue Nov 15 16:54:42 2011
@@ -4469,6 +4469,10 @@
(VORRd DPR:$Vd, DPR:$Vm, DPR:$Vm, pred:$p)>;
def : InstAlias<"vmov${p} $Vd, $Vm",
(VORRq QPR:$Vd, QPR:$Vm, QPR:$Vm, pred:$p)>;
+defm : VFPDTAnyNoF64InstAlias<"vmov${p}", "$Vd, $Vm",
+ (VORRd DPR:$Vd, DPR:$Vm, DPR:$Vm, pred:$p)>;
+defm : VFPDTAnyNoF64InstAlias<"vmov${p}", "$Vd, $Vm",
+ (VORRq QPR:$Vd, QPR:$Vm, QPR:$Vm, pred:$p)>;
// VMOV : Vector Move (Immediate)
More information about the llvm-commits
mailing list