mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
5c17c02955
Summary: No functional change intended. The removed code has a loop for recursive resolving, which is superseded by the recursive resolving done by the Resolver implementations. Add a test case which was broken by an earlier version of this change. Change-Id: Ib208d037b77a8bbb725977f1388601fc984723d8 Reviewers: arsenm, craig.topper, tra, MartinO Subscribers: wdng, llvm-commits Differential Revision: https://reviews.llvm.org/D43655 llvm-svn: 326784
41 lines
704 B
TableGen
41 lines
704 B
TableGen
// 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,?}>;
|