| // RUN: llvm-tblgen %s | FileCheck %s | |
| // XFAIL: vg_leak | |
| class Instr<int i> { | |
| int index = i; | |
| } | |
| multiclass Test { | |
| def Vx#NAME#PS : Instr<0>; | |
| def Vx#NAME#PD : Instr<1>; | |
| def Vy#NAME#PS : Instr<2>; | |
| def Vy#NAME#PD : Instr<3>; | |
| } | |
| class Arithmetic<int i> { | |
| string name = "number"#!add(i, 1); | |
| } | |
| def A : Arithmetic<5>; | |
| // CHECK: def A { | |
| // CHECK: string name = "number6"; | |
| // CHECK: } | |
| defm ADD : Test; | |
| defm SUB : Test; | |
| // CHECK: VxADDPD | |
| // CHECK: index = 1; | |
| // CHECK: VxADDPS | |
| // CHECK: index = 0; | |
| // CHECK: VxSUBPD | |
| // CHECK: index = 1; | |
| // CHECK: VxSUBPS | |
| // CHECK: index = 0; | |
| // CHECK: VyADDPD | |
| // CHECK: index = 3; | |
| // CHECK: VyADDPS | |
| // CHECK: index = 2; | |
| // CHECK: VySUBPD | |
| // CHECK: index = 3; | |
| // CHECK: VySUBPS | |
| // CHECK: index = 2; |