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

Tree @release_21 (Download .tar.gz)

intrinsics.ll @release_21

69ccadd
3f7706b
 
 
86ee776
fd57ad7
 
9685372
47adf21
 
a3c533a
 
fd57ad7
a3c533a
fd57ad7
a3c533a
 
fd57ad7
a3c533a
fd57ad7
a3c533a
 
fd57ad7
a3c533a
fd57ad7
 
 
279a7b2
fd39b30
 
 
 
86ee776
fd57ad7
 
 
47adf21
fd57ad7
 
 
 
a3c533a
 
fd57ad7
a3c533a
fd57ad7
a3c533a
 
fd57ad7
a3c533a
fd57ad7
a3c533a
 
fd57ad7
a3c533a
fd39b30
86ee776
87bb7c6
 
; 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.