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