[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / TableGen / true-false.td
blob597ad9f5ecc8e78428afe5ffc461b3da28e43e9e
1 // RUN: llvm-tblgen %s | FileCheck %s
2 // RUN: not llvm-tblgen -DERROR1 %s 2>&1 | FileCheck --check-prefix=ERROR1 %s
4 // Tests for the true and false literals.
6 defvar otherwise = true;
7 defvar do_it = true;
9 // CHECK: def rec1
10 // CHECK:   bit flag1 = 1;
11 // CHECK:   bit flag2 = 0;
12 // CHECK:   int true_int = 1;
14 def rec1 {
15   bit flag1 = true;
16   bit flag2 = false;
17   int true_int = true;
20 // CHECK: def rec2_true
22 if true then
23   def rec2_true {}
24 else
25   def rec2_bad {}
27 // CHECK: def rec3_false
29 if false then
30   def rec3_bad {}
31 else
32   def rec3_false {}
34 // CHECK: def rec4
35 // CHECK:   int value = 52;
37 def rec4 {
38   int value = !add(10, !if(!and(do_it, true), 42, 0));
41 // CHECK: def rec5
42 // CHECK:    string name = "snork";
44 def rec5 {
45   string name = !cond(false:       "foo",
46                       !not(do_it): "bar",
47                       otherwise:   "snork");
50 // CHECK: def rec6
51 // CHECK:   bit xorFF = 0;
52 // CHECK:   bit xorFT = 1;
53 // CHECK:   bit xorTF = 1;
54 // CHECK:   bit xorTT = 0;
56 def rec6 {
57   bit xorFF = !xor(false, false);
58   bit xorFT = !xor(false, true);
59   bit xorTF = !xor(true, false);
60   bit xorTT = !xor(true, true);
63 // CHECK: def rec7
64 // CHECK:   bits<3> flags = { 1, 0, 1 };
66 def rec7 {
67   bits<3> flags = { true, false, true };
70 #ifdef ERROR1
71 // ERROR1: Record name '1' is not a string
73 def true {}
74 #endif