Re-land [openmp] Fix warnings when building on Windows with latest MSVC or Clang...
[llvm-project.git] / llvm / test / TableGen / RegisterInfoEmitter-tsflags.td
blob55db3ddb1f27e1f6700add98c6eada15c7923bae
1 // RUN: llvm-tblgen -gen-register-info -I %p/../../include -I %p/Common %s | FileCheck %s
3 // Configure and test TSFlags for a target.
4 include "llvm/Target/Target.td"
6 let Namespace = "MyTarget" in {
7   def R : Register<"r">;
8   def D : Register<"d">;
9   def S : Register<"s">;
12 class MyClass <int size, list<ValueType> types, dag regList>
13   : RegisterClass <"MyTarget", types, size, regList> {
14   // Define the target bitfields.
15   field bit A = 0;
16   field bits<2> B = 0;
18   // Associate the defined bitfields to unique bit positions in TSFlags.
19   let TSFlags{0} = A;
20   let TSFlags{2-1} = B;
23 // Default value for TSFlags.
24 def MyRegs : MyClass<32, [i32], (add R)>;
26 def SRegs : MyClass<32, [i32], (add S)> {
27   let A = 1;
30 def DRegs : MyClass<32, [i32], (add D)>{
31   let B = 3;
34 def SDRegs : MyClass<32, [i32], (add D, S)>{
35   let A = 1;
36   let B = 3;
39 def MyTarget : Target;
41 // CHECK:  extern const TargetRegisterClass SDRegsRegClass = {
42 // CHECK:  0x07, /* TSFlags */
43 // CHECK:  extern const TargetRegisterClass DRegsRegClass = {
44 // CHECK:  0x06, /* TSFlags */
45 // CHECK:  extern const TargetRegisterClass MyRegsRegClass = {
46 // CHECK:  0x00, /* TSFlags */
47 // CHECK:  extern const TargetRegisterClass SRegsRegClass = {
48 // CHECK:  0x01, /* TSFlags */