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