llvm.org GIT mirror llvm / release_38 test / Feature / intrinsics.ll
release_38

Tree @release_38 (Download .tar.gz)

intrinsics.ll @release_38

9bc243b
3f7706b
 
8620890
3f7706b
9bc243b
86ee776
9bc243b
9685372
47adf21
63f7ba0
fd57ad7
63f7ba0
fd57ad7
9bc243b
fd57ad7
63f7ba0
279a7b2
ddbc274
9bc243b
ddbc274
9bc243b
ddbc274
9bc243b
ddbc274
9bc243b
ddbc274
9bc243b
ddbc274
9bc243b
ddbc274
9bc243b
ddbc274
9bc243b
 
 
 
fd39b30
 
 
9bc243b
 
 
 
 
63f7ba0
 
9bc243b
63f7ba0
ddbc274
 
 
 
 
 
 
 
9bc243b
86ee776
87bb7c6
 
8620890
 
8b6d60f
8620890
 
 
 
 
 
7ab6c76
 
8b6d60f
; 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 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
;
define void @libm() {
        fcmp uno float 1.000000e+00, 2.000000e+00               ; <i1>:1 [#uses=0]
        fcmp uno double 3.000000e+00, 4.000000e+00              ; <i1>:2 [#uses=0]
        call float @llvm.sqrt.f32( float 5.000000e+00 )         ; <float>:3 [#uses=0]
        call double @llvm.sqrt.f64( double 6.000000e+00 )               ; <double>:4 [#uses=0]
        call i8  @llvm.ctpop.i8( i8 10 )                ; <i32>:5 [#uses=0]
        call i16 @llvm.ctpop.i16( i16 11 )              ; <i32>:6 [#uses=0]
        call i32 @llvm.ctpop.i32( i32 12 )              ; <i32>:7 [#uses=0]
        call i64 @llvm.ctpop.i64( i64 13 )              ; <i32>:8 [#uses=0]
        call i8  @llvm.ctlz.i8( i8 14, i1 true )         ; <i32>:9 [#uses=0]
        call i16 @llvm.ctlz.i16( i16 15, i1 true )               ; <i32>:10 [#uses=0]
        call i32 @llvm.ctlz.i32( i32 16, i1 true )               ; <i32>:11 [#uses=0]
        call i64 @llvm.ctlz.i64( i64 17, i1 true )               ; <i32>:12 [#uses=0]
        call i8  @llvm.cttz.i8( i8 18, i1 true )         ; <i32>:13 [#uses=0]
        call i16 @llvm.cttz.i16( i16 19, i1 true )               ; <i32>:14 [#uses=0]
        call i32 @llvm.cttz.i32( i32 20, i1 true )               ; <i32>:15 [#uses=0]
        call i64 @llvm.cttz.i64( i64 21, i1 true )               ; <i32>: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 }