xref: /llvm-project/llvm/test/TableGen/cond-usage.td (revision a3e3d8528644b3e432538853804553c62fea7722)
1// RUN: llvm-tblgen %s | FileCheck %s
2// XFAIL: vg_leak
3
4// Check that !cond picks the first true value
5// CHECK:       class A
6// CHECK-NEXT:  string S = !cond(!eq(A:x, 10): "ten", !eq(A:x, 11): "eleven", !eq(A:x, 10): "TEN", !gt(A:x, 9): "MoreThanNine", 1: "unknown");
7// CHECK: B1
8// CHECK-NEXT: string S = "unknown"
9// CHECK: B10
10// CHECK-NEXT: string S = "ten";
11// CHECK: def B11
12// CHECK-NEXT: string S = "eleven";
13// CHECK: def B12
14// CHECK-NEXT:  string S = "MoreThanNine";
15// CHECK: def B9
16// CHECK-NEXT: string S = "unknown"
17
18class A<int x> {
19  string S = !cond(!eq(x,10) : "ten",
20                   !eq(x,11) : "eleven",
21                   !eq(x,10) : "TEN",
22                   !gt(x,9) : "MoreThanNine",
23                   !eq(1,1) : "unknown");
24}
25def B1  : A<1>;
26def B9  : A<9>;
27def B10 : A<10>;
28def B11 : A<11>;
29def B12 : A<12>;
30