This is a followup to https://github.com/llvm/llvm-project/pull/171114, removing the handling for most libcalls that are already canonicalized to intrinsics in the middle-end. The only remaining one is fabs, which has more test coverage than the others.
30 lines
793 B
LLVM
30 lines
793 B
LLVM
; RUN: llc -mtriple=arm-unknown-unknown < %s | FileCheck %s
|
|
|
|
; CHECK: test1
|
|
define float @test1() nounwind uwtable readnone ssp {
|
|
; CHECK-NOT: floorf
|
|
%foo = call float @llvm.floor.f32(float 0x4000CCCCC0000000) nounwind readnone
|
|
ret float %foo
|
|
}
|
|
|
|
; CHECK: test2
|
|
define float @test2() nounwind uwtable readnone ssp {
|
|
; CHECK-NOT: ceilf
|
|
%foo = call float @llvm.ceil.f32(float 0x4000CCCCC0000000) nounwind readnone
|
|
ret float %foo
|
|
}
|
|
|
|
; CHECK: test3
|
|
define float @test3() nounwind uwtable readnone ssp {
|
|
; CHECK-NOT: truncf
|
|
%foo = call float @llvm.trunc.f32(float 0x4000CCCCC0000000) nounwind readnone
|
|
ret float %foo
|
|
}
|
|
|
|
declare float @llvm.floor.f32(float) nounwind readnone
|
|
declare float @llvm.ceil.f32(float) nounwind readnone
|
|
declare float @llvm.trunc.f32(float) nounwind readnone
|
|
|
|
|
|
|