diff options
author | Jim Grosbach <grosbach@apple.com> | 2011-11-14 23:11:19 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2011-11-14 23:11:19 +0000 |
commit | ef448767a35148261d6c82a8e55e6e2f4be8e631 (patch) | |
tree | 18491e072b893baac1ab2da33875cb90464a9726 /lib/Target/ARM/ARMInstrFormats.td | |
parent | 2c42b8c912b62071c27454182cdef60e3b584083 (diff) | |
download | llvm-ef448767a35148261d6c82a8e55e6e2f4be8e631.tar.gz llvm-ef448767a35148261d6c82a8e55e6e2f4be8e631.tar.bz2 llvm-ef448767a35148261d6c82a8e55e6e2f4be8e631.tar.xz |
ARM parsing optional datatype suffix for VAND/VEOR/VORR instructions.
rdar://10435076
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144587 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMInstrFormats.td')
-rw-r--r-- | lib/Target/ARM/ARMInstrFormats.td | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/lib/Target/ARM/ARMInstrFormats.td b/lib/Target/ARM/ARMInstrFormats.td index 841ca741fd..90ee0183c0 100644 --- a/lib/Target/ARM/ARMInstrFormats.td +++ b/lib/Target/ARM/ARMInstrFormats.td @@ -1995,6 +1995,20 @@ class NEONFPPat<dag pattern, dag result> : Pat<pattern, result> { // VFP/NEON Instruction aliases for type suffices. class VFPDataTypeInstAlias<string opc, string dt, string asm, dag Result> : InstAlias<!strconcat(opc, dt, asm), Result>; +multiclass VFPDT8InstAlias<string opc, string asm, dag Result> { + def _8 : VFPDataTypeInstAlias<opc, ".8", asm, Result>; + def I8 : VFPDataTypeInstAlias<opc, ".i8", asm, Result>; + def S8 : VFPDataTypeInstAlias<opc, ".s8", asm, Result>; + def U8 : VFPDataTypeInstAlias<opc, ".u8", asm, Result>; + def F8 : VFPDataTypeInstAlias<opc, ".p8", asm, Result>; +} +multiclass VFPDT16InstAlias<string opc, string asm, dag Result> { + def _16 : VFPDataTypeInstAlias<opc, ".16", asm, Result>; + def I16 : VFPDataTypeInstAlias<opc, ".i16", asm, Result>; + def S16 : VFPDataTypeInstAlias<opc, ".s16", asm, Result>; + def U16 : VFPDataTypeInstAlias<opc, ".u16", asm, Result>; + def F16 : VFPDataTypeInstAlias<opc, ".p16", asm, Result>; +} multiclass VFPDT32InstAlias<string opc, string asm, dag Result> { def _32 : VFPDataTypeInstAlias<opc, ".32", asm, Result>; def I32 : VFPDataTypeInstAlias<opc, ".i32", asm, Result>; @@ -2011,4 +2025,9 @@ multiclass VFPDT64InstAlias<string opc, string asm, dag Result> { def F64 : VFPDataTypeInstAlias<opc, ".f64", asm, Result>; def D : VFPDataTypeInstAlias<opc, ".d", 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>; +} |