X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2FFeature%2Fintrinsics.ll;h=9e7dc6d4102e4bec718de256c88682eb3ea4ceb6;hb=9a419f656e278b96e9dfe739cd63c7bff9a4e1fd;hp=89261e187ed696358d7aabc8dda8bdd20a697977;hpb=6c07f30dbec03185ebdc113a8318b2e9e1736e20;p=oota-llvm.git diff --git a/test/Feature/intrinsics.ll b/test/Feature/intrinsics.ll index 89261e187ed..9e7dc6d4102 100644 --- a/test/Feature/intrinsics.ll +++ b/test/Feature/intrinsics.ll @@ -1,13 +1,70 @@ +; 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 bool %llvm.isunordered(float, float) -declare bool %llvm.isunordered(double, double) +declare i1 @llvm.isunordered.f32(float, float) -implementation +declare i1 @llvm.isunordered.f64(double, double) + + +declare i8 @llvm.ctpop.i8(i8) + +declare i16 @llvm.ctpop.i16(i16) + +declare i32 @llvm.ctpop.i32(i32) + +declare i64 @llvm.ctpop.i64(i64) + +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 double 0x7FF8000000000000) - 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() noreturn nounwind +declare void @llvm.trap() + +define void @trap() { + call void @llvm.trap() + ret void }