blob: 70d410ee7bd06b00fa1357a91f312c6fdf9f300e [file] [log] [blame]
Sam Koltone3aa0d92016-09-08 15:50:52 +00001// RUN: llvm-tblgen -gen-asm-matcher -I %p/../../include %s | FileCheck %s
2
Sam Kolton5188cfa2017-05-15 10:13:07 +00003// Check that specifying AsmVariant works correctly
Sam Koltone3aa0d92016-09-08 15:50:52 +00004
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";
Craig Topper2986f472017-07-07 05:50:45 +000034 let Namespace = "Arch";
Sam Koltone3aa0d92016-09-08 15:50:52 +000035}
36
37def BarAlias : InstAlias<"bar", (foo)> {
38 string AsmVariantName = "Bar";
39}
40
41// CHECK: static const MatchEntry MatchTable0[] = {
42// CHECK-NEXT: /* foo */, Arch::foo
43// CHECK-NEXT: };
44
45// CHECK: static const MatchEntry MatchTable1[] = {
46// CHECK-NEXT: /* bar */, Arch::foo
47// CHECK-NEXT: };