brintos

brintos / llvm-project-archived public Read only

0
0
Text · 970 B · e34a7ff Raw
31 lines · plain
1// RUN: not llvm-tblgen -gen-asm-matcher -I %p/../../include %s -o - 2>&1 | FileCheck %s2 3include "llvm/Target/Target.td"4 5def Is32Bit : Predicate<"!Subtarget->is64Bit()">;6def Is64Bit : Predicate<"Subtarget->is64Bit()">;7defvar Ptr32 = DefaultMode;8def Ptr64 : HwMode<[Is64Bit]>;9 10class MyReg<string n> : Register<n> {11  let Namespace = "MyTarget";12}13 14def X0 : MyReg<"x0">;15def X1 : MyReg<"x1">;16def X2 : MyReg<"x2">;17def X3 : MyReg<"x3">;18 19def XLenVT : ValueTypeByHwMode<[Ptr32, Ptr64], [i32, i64]>;20def XLenRI : RegInfoByHwMode<[Ptr32,             Ptr64],21                             [RegInfo<32,32,32>, RegInfo<64,64,64>]>;22 23def XRegs : RegisterClass<"MyTarget", [XLenVT], 32, (add X0, X1, X2, X3)> {24  // Note: Would need this to determine size, otherwise we get an error.25  // let RegInfos = XLenRI;26}27// CHECK: [[#@LINE-4]]:5: error: Impossible to determine register size28 29def MyTargetISA : InstrInfo;30def MyTarget : Target { let InstructionSet = MyTargetISA; }31