Mercurial > hg > CbC > CbC_llvm
view llvm/test/TableGen/defmclass.td @ 236:c4bab56944e8 llvm-original
LLVM 16
author | kono |
---|---|
date | Wed, 09 Nov 2022 17:45:10 +0900 |
parents | 1d019706d866 |
children |
line wrap: on
line source
// RUN: llvm-tblgen --no-warn-on-unused-template-args %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<bits<4> 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<int x> { def rm; def mr; } // These multiclasses shouldn't conflict. defm : SomeAnonymous<1>; defm : SomeAnonymous<2>;