summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/TableGen/UnsetBitInit.td31
1 files changed, 30 insertions, 1 deletions
diff --git a/llvm/test/TableGen/UnsetBitInit.td b/llvm/test/TableGen/UnsetBitInit.td
index d232293d787..694847358f6 100644
--- a/llvm/test/TableGen/UnsetBitInit.td
+++ b/llvm/test/TableGen/UnsetBitInit.td
@@ -1,5 +1,34 @@
-// RUN: llvm-tblgen %s
+// 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;
}
OpenPOWER on IntegriCloud