// RUN: llvm-tblgen %s | FileCheck %s class AClass<bit C> { bit Cond = C; } def A0: AClass<0>; def A1: AClass<1>; class BoolToList<bit Value> { list<int> ret = !if(Value, [1]<int>, []<int>); } multiclass P<string AStr> { foreach i = BoolToList<!cast<AClass>(AStr).Cond>.ret in def SubDef; } // CHECK-NOT: def XSubDef defm X : P<"A0">; // CHECK: def YSubDef defm Y : P<"A1">;