X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FFeature%2Fintrinsics.ll;h=2dd6b53e7c99000138c0d0b13e20ae64cafaf4c5;hb=090ca9108b35a60e8b97b67987d00cf47a383dba;hp=d46472673cf169ecd4d2ae876a49c5ed53a142a7;hpb=a3c533a716d95877ad2daf2326b5375a8fe844d3;p=oota-llvm.git diff --git a/test/Feature/intrinsics.ll b/test/Feature/intrinsics.ll index d46472673cf..2dd6b53e7c9 100644 --- a/test/Feature/intrinsics.ll +++ b/test/Feature/intrinsics.ll @@ -1,59 +1,62 @@ -; RUN: llvm-upgrade < %s | llvm-as | llvm-dis > %t1.ll +; RUN: llvm-as < %s | llvm-dis > %t1.ll ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll ; RUN: diff %t1.ll %t2.ll +declare i1 @llvm.isunordered.f32(float, float) -declare bool %llvm.isunordered.f32(float,float) -declare bool %llvm.isunordered.f64(double,double) +declare i1 @llvm.isunordered.f64(double, double) -declare void %llvm.prefetch(sbyte*, uint, uint) +declare void @llvm.prefetch(i8*, i32, i32) -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 i8 @llvm.ctpop.i8(i8) -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 i16 @llvm.ctpop.i16(i16) -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 i32 @llvm.ctpop.i32(i32) -declare float %llvm.sqrt.f32(float) -declare double %llvm.sqrt.f64(double) +declare i64 @llvm.ctpop.i64(i64) -implementation +declare i8 @llvm.cttz.i8(i8) + +declare i16 @llvm.cttz.i16(i16) + +declare i32 @llvm.cttz.i32(i32) + +declare i64 @llvm.cttz.i64(i64) + +declare i8 @llvm.ctlz.i8(i8) + +declare i16 @llvm.ctlz.i16(i16) + +declare i32 @llvm.ctlz.i32(i32) + +declare i64 @llvm.ctlz.i64(i64) + +declare float @llvm.sqrt.f32(float) + +declare double @llvm.sqrt.f64(double) ; 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 +define void @libm() { + fcmp uno float 1.000000e+00, 2.000000e+00 ; :1 [#uses=0] + fcmp uno double 3.000000e+00, 4.000000e+00 ; :2 [#uses=0] + call void @llvm.prefetch( i8* null, i32 1, i32 3 ) + call float @llvm.sqrt.f32( float 5.000000e+00 ) ; :3 [#uses=0] + call double @llvm.sqrt.f64( double 6.000000e+00 ) ; :4 [#uses=0] + call i8 @llvm.ctpop.i8( i8 10 ) ; :5 [#uses=0] + call i16 @llvm.ctpop.i16( i16 11 ) ; :6 [#uses=0] + call i32 @llvm.ctpop.i32( i32 12 ) ; :7 [#uses=0] + call i64 @llvm.ctpop.i64( i64 13 ) ; :8 [#uses=0] + call i8 @llvm.ctlz.i8( i8 14 ) ; :9 [#uses=0] + call i16 @llvm.ctlz.i16( i16 15 ) ; :10 [#uses=0] + call i32 @llvm.ctlz.i32( i32 16 ) ; :11 [#uses=0] + call i64 @llvm.ctlz.i64( i64 17 ) ; :12 [#uses=0] + call i8 @llvm.cttz.i8( i8 18 ) ; :13 [#uses=0] + call i16 @llvm.cttz.i16( i16 19 ) ; :14 [#uses=0] + call i32 @llvm.cttz.i32( i32 20 ) ; :15 [#uses=0] + call i64 @llvm.cttz.i64( i64 21 ) ; :16 [#uses=0] + ret void } ; FIXME: test ALL the intrinsics in this file.