Files
Matt Arsenault 5276f9a934 SimplifyLibCalls: Replace fabs libcalls with intrinsics
Add missing fabs(fpext) optimzation that worked with the call,
and also fixes it creating a second fpext when there were multiple
uses.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292172 91177308-0d34-0410-b5e6-96231b3b80d8
2017-01-17 00:10:40 +00:00

22 lines
661 B
LLVM

; RUN: opt -S -mtriple=i686-apple-macosx -instcombine %s | FileCheck %s
declare x86_fp80 @fabsl(x86_fp80)
; CHECK-LABEL: @replace_fabs_call_f80(
; CHECK-NEXT: %fabsl = call x86_fp80 @llvm.fabs.f80(x86_fp80 %x)
; CHECK-NEXT: ret x86_fp80 %fabsl
define x86_fp80 @replace_fabs_call_f80(x86_fp80 %x) {
%fabsl = tail call x86_fp80 @fabsl(x86_fp80 %x)
ret x86_fp80 %fabsl
}
; CHECK-LABEL: @fmf_replace_fabs_call_f80(
; CHECK-NEXT: %fabsl = call nnan x86_fp80 @llvm.fabs.f80(x86_fp80 %x)
; CHECK-NEXT: ret x86_fp80 %fabsl
define x86_fp80 @fmf_replace_fabs_call_f80(x86_fp80 %x) {
%fabsl = tail call nnan x86_fp80 @fabsl(x86_fp80 %x)
ret x86_fp80 %fabsl
}