Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / TableGen / UnsetBitInit.td
blob07e37e08efab3fae5b49cfbe88ff46fa7139187b
1 // RUN: llvm-tblgen %s | FileCheck %s
2 // XFAIL: vg_leak
4 // CHECK: --- Defs ---
6 // Test that P and Q are not replaced by ?. TableGen's codegen emitter backend
7 // relies on keeping variable references like this around to describe the
8 // structure of instruction encodings.
9 //
10 // CHECK: def A {
11 // CHECK:   bits<8> Inst = { 1, 1, 1, 1, 1, 1, P, Q };
12 // CHECK:   bits<2> src = { ?, ? };
13 // CHECK:   bit P = ?;
14 // CHECK:   bit Q = ?;
15 // CHECK: }
17 def A {
18   bits<8> Inst;
19   bits<2> src;
21   bit P;
22   bit Q;
24   let Inst{7...2} = 0x3f;
25   let Inst{1} = P;
26   let Inst{0} = Q;
28   let P = src{1};
29   let Q = src{0};
32 class x {
33   field bits<32> A;
36 class y<bits<2> B> : x {
37   let A{21...20} = B;
40 def z : y<{0,?}>;