1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00
llvm-mirror/test/Feature/intrinsics.ll
Reid Spencer f5e95d339f For PR1297:
Update these test cases to use proper signatures for bswap which is now
and overloaded intrinsic. Its name must be of the form llvm.bswap.i32.i32
since both the parameter and the result or of type "iAny". Also, the
bit counting intrinsics changed to always return i32.

llvm-svn: 35548
2007-04-01 07:36:28 +00:00

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.