[ARM] Split large truncating MVE stores
[llvm-complete.git] / test / TableGen / HwModeSelect.td
blob6480268f3b3dd3545f539e3f2b749f197882d923
1 // RUN: not llvm-tblgen -gen-dag-isel -I %p/../../include %s 2>&1 | FileCheck %s
3 // The HwModeSelect class is intended to serve as a base class for other
4 // classes that are then used to select a value based on the HW mode.
5 // It contains a list of HW modes, and a derived class should provide a
6 // list of corresponding values.
7 // These two lists must have the same size. Make sure that a violation of
8 // this requirement is diagnosed.
10 include "llvm/Target/Target.td"
12 def TestTargetInstrInfo : InstrInfo;
14 def TestTarget : Target {
15   let InstructionSet = TestTargetInstrInfo;
18 def TestReg : Register<"testreg">;
19 def TestClass : RegisterClass<"TestTarget", [i32], 32, (add TestReg)>;
21 def TestMode1 : HwMode<"+feat1">;
22 def TestMode2 : HwMode<"+feat2">;
24 def BadDef : ValueTypeByHwMode<[TestMode1, TestMode2, DefaultMode],
25                                [i8, i16, i32, i64]>;
27 // CHECK: error: in record BadDef derived from HwModeSelect: the lists Modes and Objects should have the same size