blob: ef8e8f794bac0baed55d9098139c81c36e0f31d8 [file] [log] [blame]
Bruno Cardoso Lopes23f83212010-06-18 19:53:41 +00001// RUN: tblgen %s | FileCheck %s
2// XFAIL: vg_leak
3
4class XD { bits<4> Prefix = 11; }
5// CHECK: Prefix = { 1, 1, 0, 0 };
6class XS { bits<4> Prefix = 12; }
7class VEX { bit hasVEX_4VPrefix = 1; }
8
9def xd : XD;
10
11class BaseI {
12 bits<4> Prefix = 0;
13 bit hasVEX_4VPrefix = 0;
14}
15
16class I<bits<4> op> : BaseI {
17 bits<4> opcode = op;
18 int val = !if(!eq(Prefix, xd.Prefix), 7, 21);
19}
20
21multiclass R {
22 def rr : I<4>;
23}
24
25multiclass M {
26 def rm : I<2>;
27}
28
29multiclass Y {
30 defm SS : R, M, XD;
31// CHECK: Prefix = { 1, 1, 0, 0 };
32// CHECK: Prefix = { 1, 1, 0, 0 };
33 defm SD : R, M, XS;
34}
35
36defm Instr : Y, VEX;