brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 70d410e Raw
48 lines · plain
1// RUN: llvm-tblgen -gen-asm-matcher -I %p/../../include %s | FileCheck %s2 3// Check that specifying AsmVariant works correctly4 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  let Namespace = "Arch";35}36 37def BarAlias : InstAlias<"bar", (foo)> {38  string AsmVariantName = "Bar";39}40 41// CHECK: static const MatchEntry MatchTable0[] = {42// CHECK-NEXT: /* foo */, Arch::foo43// CHECK-NEXT: };44 45// CHECK: static const MatchEntry MatchTable1[] = {46// CHECK-NEXT: /* bar */, Arch::foo47// CHECK-NEXT: };48