From 5b2fb2083c387009607f438a2a986c3e0a2cd0be Mon Sep 17 00:00:00 2001 From: Jim Grosbach Date: Tue, 15 Nov 2011 22:54:42 +0000 Subject: [PATCH] ARM assembly parsing for data type suffices on NEON VMOV aliases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144722 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/ARM/ARMInstrFormats.td | 17 +++++++++++++++++ lib/Target/ARM/ARMInstrNEON.td | 4 ++++ 2 files changed, 21 insertions(+) diff --git a/lib/Target/ARM/ARMInstrFormats.td b/lib/Target/ARM/ARMInstrFormats.td index 06ee2c82260..6940156c7b8 100644 --- a/lib/Target/ARM/ARMInstrFormats.td +++ b/lib/Target/ARM/ARMInstrFormats.td @@ -2041,9 +2041,26 @@ multiclass VFPDT64InstAlias { def _64 : VFPDataTypeInstAlias; defm : VFPDT64ReqInstAlias; } +multiclass VFPDT64NoF64ReqInstAlias { + def I64 : VFPDataTypeInstAlias; + def S64 : VFPDataTypeInstAlias; + def U64 : VFPDataTypeInstAlias; + def D : VFPDataTypeInstAlias; +} +// VFPDT64ReqInstAlias plus plain ".64" +multiclass VFPDT64NoF64InstAlias { + def _64 : VFPDataTypeInstAlias; + defm : VFPDT64ReqInstAlias; +} multiclass VFPDTAnyInstAlias { defm : VFPDT8InstAlias; defm : VFPDT16InstAlias; defm : VFPDT32InstAlias; defm : VFPDT64InstAlias; } +multiclass VFPDTAnyNoF64InstAlias { + defm : VFPDT8InstAlias; + defm : VFPDT16InstAlias; + defm : VFPDT32InstAlias; + defm : VFPDT64NoF64InstAlias; +} diff --git a/lib/Target/ARM/ARMInstrNEON.td b/lib/Target/ARM/ARMInstrNEON.td index 1c64aae23d3..f2ca9637edd 100644 --- a/lib/Target/ARM/ARMInstrNEON.td +++ b/lib/Target/ARM/ARMInstrNEON.td @@ -4469,6 +4469,10 @@ def : InstAlias<"vmov${p} $Vd, $Vm", (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)