// 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>;
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>;
+}