// RUN: llvm-tblgen %s | FileCheck %s // XFAIL: vg_leak class XD { bits<4> Prefix = 11; } // CHECK: Prefix = { 1, 1, 0, 0 }; class XS { bits<4> Prefix = 12; } class VEX { bit hasVEX_4VPrefix = 1; } def xd : XD; class BaseI { bits<4> Prefix = 0; bit hasVEX_4VPrefix = 0; } class I op> : BaseI { bits<4> opcode = op; int val = !if(!eq(Prefix, xd.Prefix), 7, 21); int check = !if(hasVEX_4VPrefix, 0, 10); } multiclass R { def rr : I<4>; } multiclass M { def rm : I<2>; } multiclass Y { defm SS : R, M, XD; // CHECK: Prefix = { 1, 1, 0, 0 }; // CHECK: Prefix = { 1, 1, 0, 0 }; defm SD : R, M, XS; } // CHECK: int check = 0; defm Instr : Y, VEX; // Anonymous defm. multiclass SomeAnonymous { def rm; def mr; } // These multiclasses shouldn't conflict. defm : SomeAnonymous<1>; defm : SomeAnonymous<2>;