| // 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; |