// RUN: llvm-tblgen %s | FileCheck %s // RUN: not llvm-tblgen -DERROR1 %s 2>&1 | FileCheck --check-prefix=ERROR1 %s // RUN: not llvm-tblgen -DERROR2 %s 2>&1 | FileCheck --check-prefix=ERROR2 %s // RUN: not llvm-tblgen -DERROR3 %s 2>&1 | FileCheck --check-prefix=ERROR3 %s // RUN: not llvm-tblgen -DERROR4 %s 2>&1 | FileCheck --check-prefix=ERROR4 %s // XFAIL: vg_leak // CHECK: def shifts // CHECK: shifted_b = 8 // CHECK: shifted_i = 8 def shifts { bits<2> b = 0b10; int i = 2; int shifted_b = !shl(b, 2); int shifted_i = !shl(i, 2); } class Int { int Value = value; } def int2 : Int<2>; def int1022 : Int<1022>; def int1024 : Int<1024>; // CHECK: def v0a // CHECK: Value = 0 def v0a : Int; // CHECK: def v0b // CHECK: Value = 0 def v0b : Int; // CHECK: def v1 // CHECK: Value = 1 def v1 : Int; // CHECK: def v1019 // CHECK: Value = 1019 def v1019 : Int; // CHECK: def v1023 // CHECK: Value = 1023 def v1023 : Int; def v1025 : Int; // CHECK: def v1025 // CHECK: Value = 1025 // CHECK: def v12 // CHECK: Value = 12 def v12 : Int; // CHECK: def v13 // CHECK: Value = 5 def v13 : Int; // CHECK: def v14 // CHECK: Value = 5 def v14 : Int; // CHECK: def v15 // CHECK: Value = 1 def v15 : Int; // CHECK: def v16 // CHECK: Value = 0 def v16 : Int; // CHECK: def v17 // CHECK: Value = -2 def v17 : Int; #ifdef ERROR1 // ERROR1: error: Illegal operation: division by zero def v18 : Int; #endif #ifdef ERROR2 // ERROR2: error: Illegal operation: INT64_MIN / -1 def v19 : Int; #endif // CHECK: def v1a // CHECK: Value = 1 // CHECK: def v2048 // CHECK: Value = 2048 def v2048 : Int; // CHECK: def v3072 // CHECK: Value = 3072 def v3072 : Int; // CHECK: def v4 // CHECK: Value = 4 // CHECK: def v7 // CHECK: Value = 7 def v4 : Int; def v7 : Int; def v1a : Int; // CHECK: def v84 // CHECK: Value = 84 def v84 : Int; // CHECK: def v9 // CHECK: Value = 9 def v9 : Int; // CHECK: def v924 // CHECK: Value = 924 def v924 : Int; // CHECK: def v925 // CHECK: Value = 925 def v925 : Int; // CHECK: def v950 // CHECK: Value = 4 def v950: Int; // CHECK: def v951 // CHECK: Value = 10 def v951 : Int; // CHECK: def v952 // CHECK: Value = 10 def v952 : Int; #ifdef ERROR3 // ERROR3: error: Illegal operation: logtwo is undefined on arguments less than or equal to 0 def v953 : Int; #endif #ifdef ERROR4 // ERROR4: error: Illegal operation: logtwo is undefined on arguments less than or equal to 0 def v954 : Int; #endif // CHECK: def vneg // CHECK: Value = -2 def vneg : Int;