forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			47 lines
		
	
	
		
			743 B
		
	
	
	
		
			TableGen
		
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			743 B
		
	
	
	
		
			TableGen
		
	
	
	
// 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;
 |