X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;ds=sidebyside;f=test%2FFeature%2Fintrinsics.ll;h=278cb9564e6291b02eff3b310045bd1a0b5b1a99;hb=f907a26bc28c1c2e9e7026815a5271bc393d2933;hp=3cb8728c2dd63b543ca14dad5cbffc21f8ad47f1;hpb=69ccadd7535a83b348595cf603126e6a68b2883b;p=oota-llvm.git diff --git a/test/Feature/intrinsics.ll b/test/Feature/intrinsics.ll index 3cb8728c2dd..278cb9564e6 100644 --- a/test/Feature/intrinsics.ll +++ b/test/Feature/intrinsics.ll @@ -1,73 +1,73 @@ -; 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 +; RUN: FileCheck %s < %t1.ll +declare i1 @llvm.isunordered.f32(float, float) -declare bool %llvm.isunordered(float, float) -declare bool %llvm.isunordered(double, double) -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 uint %llvm.ctpop(uint) -declare ubyte %llvm.ctpop.i8(ubyte) -declare ushort %llvm.ctpop.i16(ushort) -declare uint %llvm.ctpop.i32(uint) -declare ulong %llvm.ctpop.i64(ulong) +declare i8 @llvm.ctpop.i8(i8) -declare ushort %llvm.cttz(ushort) -declare ubyte %llvm.cttz.i8(ubyte) -declare ushort %llvm.cttz.i16(ushort) -declare uint %llvm.cttz.i32(uint) -declare ulong %llvm.cttz.i64(ulong) +declare i16 @llvm.ctpop.i16(i16) -declare ulong %llvm.ctlz(ulong) -declare ubyte %llvm.ctlz.i8(ubyte) -declare ushort %llvm.ctlz.i16(ushort) -declare uint %llvm.ctlz.i32(uint) -declare ulong %llvm.ctlz.i64(ulong) +declare i32 @llvm.ctpop.i32(i32) -declare float %llvm.sqrt(float) -declare double %llvm.sqrt(double) -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, i1) + +declare i16 @llvm.cttz.i16(i16, i1) + +declare i32 @llvm.cttz.i32(i32, i1) + +declare i64 @llvm.cttz.i64(i64, i1) + +declare i8 @llvm.ctlz.i8(i8, i1) + +declare i16 @llvm.ctlz.i16(i16, i1) + +declare i32 @llvm.ctlz.i32(i32, i1) + +declare i64 @llvm.ctlz.i64(i64, i1) + +declare float @llvm.sqrt.f32(float) + +declare double @llvm.sqrt.f64(double) ; Test llvm intrinsics ; -void %libm() { - call bool %llvm.isunordered(float 0.0, float 1.0) - call bool %llvm.isunordered(double 0.0, double 0x7FF8000000000000) - 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(float 4.0) - call double %llvm.sqrt(double 4.0) - call float %llvm.sqrt.f32(float 5.0) - call double %llvm.sqrt.f64(double 6.0) - - call uint %llvm.ctpop(uint 3) - call ubyte %llvm.ctpop.i8(ubyte 10) - call ushort %llvm.ctpop.i16(ushort 11) - call uint %llvm.ctpop.i32(uint 12) - call ulong %llvm.ctpop.i64(ulong 13) - - call ulong %llvm.ctlz(ulong 65000) - call ubyte %llvm.ctlz.i8(ubyte 14) - call ushort %llvm.ctlz.i16(ushort 15) - call uint %llvm.ctlz.i32(uint 16) - call ulong %llvm.ctlz.i64(ulong 17) - - call ushort %llvm.cttz(ushort 7) - call ubyte %llvm.cttz.i8(ubyte 18) - call ushort %llvm.cttz.i16(ushort 19) - call uint %llvm.cttz.i32(uint 20) - call ulong %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 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, i1 true ) ; :9 [#uses=0] + call i16 @llvm.ctlz.i16( i16 15, i1 true ) ; :10 [#uses=0] + call i32 @llvm.ctlz.i32( i32 16, i1 true ) ; :11 [#uses=0] + call i64 @llvm.ctlz.i64( i64 17, i1 true ) ; :12 [#uses=0] + call i8 @llvm.cttz.i8( i8 18, i1 true ) ; :13 [#uses=0] + call i16 @llvm.cttz.i16( i16 19, i1 true ) ; :14 [#uses=0] + call i32 @llvm.cttz.i32( i32 20, i1 true ) ; :15 [#uses=0] + call i64 @llvm.cttz.i64( i64 21, i1 true ) ; :16 [#uses=0] + ret void } ; FIXME: test ALL the intrinsics in this file. + +; rdar://11542750 +; CHECK: declare void @llvm.trap() #1 +declare void @llvm.trap() + +define void @trap() { + call void @llvm.trap() + ret void +} + +; CHECK: attributes #0 = { nounwind readnone } +; CHECK: attributes #1 = { noreturn nounwind }