// RUN: llvm-tblgen %s | FileCheck %s // XFAIL: vg_leak // CHECK: --- Defs --- // Test that P and Q are not replaced by ?. TableGen's codegen emitter backend // relies on keeping variable references like this around to describe the // structure of instruction encodings. // // CHECK: def A { // CHECK: bits<8> Inst = { 1, 1, 1, 1, 1, 1, P, Q }; // CHECK: bits<2> src = { ?, ? }; // CHECK: bit P = ?; // CHECK: bit Q = ?; // CHECK: } def A { bits<8> Inst; bits<2> src; bit P; bit Q; let Inst{7...2} = 0x3f; let Inst{1} = P; let Inst{0} = Q; let P = src{1}; let Q = src{0}; } class x { field bits<32> A; } class y<bits<2> B> : x { let A{21...20} = B; } def z : y<{0,?}>;