mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-02 08:26:39 +00:00
Refactoring and enhancement to FMA combine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235344 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -60,34 +60,34 @@ define double @test_FMSUB_EXT2(float %A, float %B, double %C) {
|
||||
|
||||
define double @test_FMSUB_EXT3(float %A, float %B, double %C) {
|
||||
%D = fmul float %A, %B ; <float> [#uses=1]
|
||||
%E = fsub float -0.000000e+00, %D ; <float> [#uses=1]
|
||||
%E = fsub float -0.000000e+00, %D ; <float> [#uses=1]
|
||||
%F = fpext float %E to double ; <double> [#uses=1]
|
||||
%G = fsub double %F, %C ; <double> [#uses=1]
|
||||
ret double %G
|
||||
; CHECK-LABEL: test_FMSUB_EXT3:
|
||||
; CHECK: fneg
|
||||
; CHECK-NEXT: fmsub
|
||||
; CHECK: fnmadd
|
||||
|
||||
; CHECK-NEXT: blr
|
||||
|
||||
; CHECK-VSX-LABEL: test_FMSUB_EXT3:
|
||||
; CHECK-VSX: xsnegdp
|
||||
; CHECK-VSX-NEXT: xsmsubmdp
|
||||
; CHECK-VSX: xsnmaddmdp
|
||||
|
||||
; CHECK-VSX-NEXT: blr
|
||||
}
|
||||
|
||||
define double @test_FMSUB_EXT4(float %A, float %B, double %C) {
|
||||
%D = fmul float %A, %B ; <float> [#uses=1]
|
||||
%E = fpext float %D to double ; <double> [#uses=1]
|
||||
%F = fsub double -0.000000e+00, %E ; <double> [#uses=1]
|
||||
%F = fsub double -0.000000e+00, %E ; <double> [#uses=1]
|
||||
%G = fsub double %F, %C ; <double> [#uses=1]
|
||||
ret double %G
|
||||
; CHECK-LABEL: test_FMSUB_EXT4:
|
||||
; CHECK: fneg
|
||||
; CHECK-NEXT: fmsub
|
||||
; CHECK: fnmadd
|
||||
|
||||
; CHECK-NEXT: blr
|
||||
|
||||
; CHECK-VSX-LABEL: test_FMSUB_EXT4:
|
||||
; CHECK-VSX: xsnegdp
|
||||
; CHECK-VSX-NEXT: xsmsubmdp
|
||||
; CHECK-VSX: xsnmaddmdp
|
||||
|
||||
; CHECK-VSX-NEXT: blr
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user