1// RUN: llvm-tblgen -gen-asm-matcher -I %p/../../include %s | FileCheck %s 2 3// Check that cpecifying AsmVariant works correctly 4 5include "llvm/Target/Target.td" 6 7def ArchInstrInfo : InstrInfo { } 8 9def FooAsmParserVariant : AsmParserVariant { 10 let Variant = 0; 11 let Name = "Foo"; 12} 13 14def BarAsmParserVariant : AsmParserVariant { 15 let Variant = 1; 16 let Name = "Bar"; 17} 18 19def Arch : Target { 20 let InstructionSet = ArchInstrInfo; 21 let AssemblyParserVariants = [FooAsmParserVariant, BarAsmParserVariant]; 22} 23 24def Reg : Register<"reg">; 25 26def RegClass : RegisterClass<"foo", [i32], 0, (add Reg)>; 27 28def foo : Instruction { 29 let Size = 2; 30 let OutOperandList = (outs); 31 let InOperandList = (ins); 32 let AsmString = "foo"; 33 let AsmVariantName = "Foo"; 34} 35 36def BarAlias : InstAlias<"bar", (foo)> { 37 string AsmVariantName = "Bar"; 38} 39 40// CHECK: static const MatchEntry MatchTable0[] = { 41// CHECK-NEXT: /* foo */, Arch::foo 42// CHECK-NEXT: }; 43 44// CHECK: static const MatchEntry MatchTable1[] = { 45// CHECK-NEXT: /* bar */, Arch::foo 46// CHECK-NEXT: }; 47