forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			LLVM
		
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			LLVM
		
	
	
	
| ; RUN: llvm-upgrade < %s | llvm-as | llvm-dis > %t1.ll
 | |
| ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
 | |
| ; RUN: diff %t1.ll %t2.ll
 | |
| 
 | |
| 
 | |
| declare bool %llvm.isunordered.f32(float,float)
 | |
| declare bool %llvm.isunordered.f64(double,double)
 | |
| 
 | |
| declare void %llvm.prefetch(sbyte*, uint, uint)
 | |
| 
 | |
| declare uint %llvm.ctpop.i8(ubyte)
 | |
| declare uint %llvm.ctpop.i16(ushort)
 | |
| declare uint %llvm.ctpop.i32(uint)
 | |
| declare uint %llvm.ctpop.i64(ulong)
 | |
| 
 | |
| declare uint %llvm.cttz.i8(ubyte)
 | |
| declare uint %llvm.cttz.i16(ushort)
 | |
| declare uint %llvm.cttz.i32(uint)
 | |
| declare uint %llvm.cttz.i64(ulong)
 | |
| 
 | |
| declare uint %llvm.ctlz.i8(ubyte)
 | |
| declare uint %llvm.ctlz.i16(ushort)
 | |
| declare uint %llvm.ctlz.i32(uint)
 | |
| declare uint %llvm.ctlz.i64(ulong)
 | |
| 
 | |
| declare float %llvm.sqrt.f32(float)
 | |
| declare double %llvm.sqrt.f64(double)
 | |
| 
 | |
| implementation
 | |
| 
 | |
| ; Test llvm intrinsics
 | |
| ;
 | |
| void %libm() {
 | |
|         call bool %llvm.isunordered.f32(float 1.0, float 2.0)
 | |
|         call bool %llvm.isunordered.f64(double 3.0, double 4.0)
 | |
| 
 | |
| 	call void %llvm.prefetch(sbyte* null, uint 1, uint 3)
 | |
| 
 | |
|         call float %llvm.sqrt.f32(float 5.0)
 | |
|         call double %llvm.sqrt.f64(double 6.0)
 | |
| 
 | |
|         call uint %llvm.ctpop.i8(ubyte 10)
 | |
|         call uint %llvm.ctpop.i16(ushort 11)
 | |
|         call uint %llvm.ctpop.i32(uint 12)
 | |
|         call uint %llvm.ctpop.i64(ulong 13)
 | |
| 
 | |
|         call uint %llvm.ctlz.i8(ubyte 14)
 | |
|         call uint %llvm.ctlz.i16(ushort 15)
 | |
|         call uint %llvm.ctlz.i32(uint 16)
 | |
|         call uint %llvm.ctlz.i64(ulong 17)
 | |
| 
 | |
|         call uint %llvm.cttz.i8(ubyte 18)
 | |
|         call uint %llvm.cttz.i16(ushort 19)
 | |
|         call uint %llvm.cttz.i32(uint 20)
 | |
|         call uint %llvm.cttz.i64(ulong 21)
 | |
| 	ret void
 | |
| }
 | |
| 
 | |
| ; FIXME: test ALL the intrinsics in this file.
 |