Revert "Refactoring and enhancement to FMA combine."
This reverts commit r234513. It was failing on the bots.
llvm-svn: 234518
diff --git a/llvm/test/CodeGen/PowerPC/fma-assoc.ll b/llvm/test/CodeGen/PowerPC/fma-assoc.ll
index 363d7b7..dc1316e 100644
--- a/llvm/test/CodeGen/PowerPC/fma-assoc.ll
+++ b/llvm/test/CodeGen/PowerPC/fma-assoc.ll
@@ -77,159 +77,3 @@
; CHECK-VSX-NEXT: blr
}
-define double @test_FMADD_ASSOC_EXT1(float %A, float %B, double %C,
- double %D, double %E) {
- %F = fmul float %A, %B ; <float> [#uses=1]
- %G = fpext float %F to double ; <double> [#uses=1]
- %H = fmul double %C, %D ; <double> [#uses=1]
- %I = fadd double %H, %G ; <double> [#uses=1]
- %J = fadd double %I, %E ; <double> [#uses=1]
- ret double %J
-; CHECK-LABEL: test_FMADD_ASSOC_EXT1:
-; CHECK: fmadd
-; CHECK-NEXT: fmadd
-; CHECK-NEXT: blr
-
-; CHECK-VSX-LABEL: test_FMADD_ASSOC_EXT1:
-; CHECK-VSX: xsmaddmdp
-; CHECK-VSX-NEXT: xsmaddadp
-; CHECK-VSX-NEXT: blr
-}
-
-define double @test_FMADD_ASSOC_EXT2(float %A, float %B, float %C,
- float %D, double %E) {
- %F = fmul float %A, %B ; <float> [#uses=1]
- %G = fmul float %C, %D ; <float> [#uses=1]
- %H = fadd float %F, %G ; <float> [#uses=1]
- %I = fpext float %H to double ; <double> [#uses=1]
- %J = fadd double %I, %E ; <double> [#uses=1]
- ret double %J
-; CHECK-LABEL: test_FMADD_ASSOC_EXT2:
-; CHECK: fmadd
-; CHECK-NEXT: fmadd
-; CHECK-NEXT: blr
-
-; CHECK-VSX-LABEL: test_FMADD_ASSOC_EXT2:
-; CHECK-VSX: xsmaddmdp
-; CHECK-VSX-NEXT: xsmaddadp
-; CHECK-VSX-NEXT: fmr
-; CHECK-VSX-NEXT: blr
-}
-
-define double @test_FMADD_ASSOC_EXT3(float %A, float %B, double %C,
- double %D, double %E) {
- %F = fmul float %A, %B ; <float> [#uses=1]
- %G = fpext float %F to double ; <double> [#uses=1]
- %H = fmul double %C, %D ; <double> [#uses=1]
- %I = fadd double %H, %G ; <double> [#uses=1]
- %J = fadd double %E, %I ; <double> [#uses=1]
- ret double %J
-; CHECK-LABEL: test_FMADD_ASSOC_EXT3:
-; CHECK: fmadd
-; CHECK-NEXT: fmadd
-; CHECK-NEXT: blr
-
-; CHECK-VSX-LABEL: test_FMADD_ASSOC_EXT3:
-; CHECK-VSX: xsmaddmdp
-; CHECK-VSX-NEXT: xsmaddadp
-; CHECK-VSX-NEXT: blr
-}
-
-define double @test_FMADD_ASSOC_EXT4(float %A, float %B, float %C,
- float %D, double %E) {
- %F = fmul float %A, %B ; <float> [#uses=1]
- %G = fmul float %C, %D ; <float> [#uses=1]
- %H = fadd float %F, %G ; <float> [#uses=1]
- %I = fpext float %H to double ; <double> [#uses=1]
- %J = fadd double %E, %I ; <double> [#uses=1]
- ret double %J
-; CHECK-LABEL: test_FMADD_ASSOC_EXT4:
-; CHECK: fmadd
-; CHECK-NEXT: fmadd
-; CHECK-NEXT: blr
-
-; CHECK-VSX-LABEL: test_FMADD_ASSOC_EXT4:
-; CHECK-VSX: xsmaddmdp
-; CHECK-VSX-NEXT: xsmaddadp
-; CHECK-VSX-NEXT: fmr
-; CHECK-VSX-NEXT: blr
-}
-
-define double @test_FMSUB_ASSOC_EXT1(float %A, float %B, double %C,
- double %D, double %E) {
- %F = fmul float %A, %B ; <float> [#uses=1]
- %G = fpext float %F to double ; <double> [#uses=1]
- %H = fmul double %C, %D ; <double> [#uses=1]
- %I = fadd double %H, %G ; <double> [#uses=1]
- %J = fsub double %I, %E ; <double> [#uses=1]
- ret double %J
-; CHECK-LABEL: test_FMSUB_ASSOC_EXT1:
-; CHECK: fmsub
-; CHECK-NEXT: fmadd
-; CHECK-NEXT: blr
-
-; CHECK-VSX-LABEL: test_FMSUB_ASSOC_EXT1:
-; CHECK-VSX: xsmsubmdp
-; CHECK-VSX-NEXT: xsmaddadp
-; CHECK-VSX-NEXT: blr
-}
-
-define double @test_FMSUB_ASSOC_EXT2(float %A, float %B, float %C,
- float %D, double %E) {
- %F = fmul float %A, %B ; <float> [#uses=1]
- %G = fmul float %C, %D ; <float> [#uses=1]
- %H = fadd float %F, %G ; <float> [#uses=1]
- %I = fpext float %H to double ; <double> [#uses=1]
- %J = fsub double %I, %E ; <double> [#uses=1]
- ret double %J
-; CHECK-LABEL: test_FMSUB_ASSOC_EXT2:
-; CHECK: fmsub
-; CHECK-NEXT: fmadd
-; CHECK-NEXT: blr
-
-; CHECK-VSX-LABEL: test_FMSUB_ASSOC_EXT2:
-; CHECK-VSX: xsmsubmdp
-; CHECK-VSX-NEXT: xsmaddadp
-; CHECK-VSX-NEXT: fmr
-; CHECK-VSX-NEXT: blr
-}
-
-define double @test_FMSUB_ASSOC_EXT3(float %A, float %B, double %C,
- double %D, double %E) {
- %F = fmul float %A, %B ; <float> [#uses=1]
- %G = fpext float %F to double ; <double> [#uses=1]
- %H = fmul double %C, %D ; <double> [#uses=1]
- %I = fadd double %H, %G ; <double> [#uses=1]
- %J = fsub double %E, %I ; <double> [#uses=1]
- ret double %J
-; CHECK-LABEL: test_FMSUB_ASSOC_EXT3:
-; CHECK: fnmsub
-; CHECK-NEXT: fnmsub
-; CHECK-NEXT: blr
-
-; CHECK-VSX-LABEL: test_FMSUB_ASSOC_EXT3:
-; CHECK-VSX: xsnmsubmdp
-; CHECK-VSX-NEXT: xsnmsubadp
-; CHECK-VSX-NEXT: fmr
-; CHECK-VSX-NEXT: blr
-}
-
-define double @test_FMSUB_ASSOC_EXT4(float %A, float %B, float %C,
- float %D, double %E) {
- %F = fmul float %A, %B ; <float> [#uses=1]
- %G = fmul float %C, %D ; <float> [#uses=1]
- %H = fadd float %F, %G ; <float> [#uses=1]
- %I = fpext float %H to double ; <double> [#uses=1]
- %J = fsub double %E, %I ; <double> [#uses=1]
- ret double %J
-; CHECK-LABEL: test_FMSUB_ASSOC_EXT4:
-; CHECK: fnmsub
-; CHECK-NEXT: fnmsub
-; CHECK-NEXT: blr
-
-; CHECK-VSX-LABEL: test_FMSUB_ASSOC_EXT4:
-; CHECK-VSX: xsnmsubmdp
-; CHECK-VSX-NEXT: xsnmsubadp
-; CHECK-VSX-NEXT: fmr
-; CHECK-VSX-NEXT: blr
-}
\ No newline at end of file
diff --git a/llvm/test/CodeGen/PowerPC/fma-ext.ll b/llvm/test/CodeGen/PowerPC/fma-ext.ll
index 9ab32a6..56825ce 100644
--- a/llvm/test/CodeGen/PowerPC/fma-ext.ll
+++ b/llvm/test/CodeGen/PowerPC/fma-ext.ll
@@ -65,11 +65,13 @@
%G = fsub double %F, %C ; <double> [#uses=1]
ret double %G
; CHECK-LABEL: test_FMSUB_EXT3:
-; CHECK: fnmadd
+; CHECK: fneg
+; CHECK-NEXT: fmsub
; CHECK-NEXT: blr
; CHECK-VSX-LABEL: test_FMSUB_EXT3:
-; CHECK-VSX: xsnmaddmdp
+; CHECK-VSX: xsnegdp
+; CHECK-VSX-NEXT: xsmsubmdp
; CHECK-VSX-NEXT: blr
}
@@ -80,10 +82,12 @@
%G = fsub double %F, %C ; <double> [#uses=1]
ret double %G
; CHECK-LABEL: test_FMSUB_EXT4:
-; CHECK: fnmadd
+; CHECK: fneg
+; CHECK-NEXT: fmsub
; CHECK-NEXT: blr
; CHECK-VSX-LABEL: test_FMSUB_EXT4:
-; CHECK-VSX: xsnmaddmdp
+; CHECK-VSX: xsnegdp
+; CHECK-VSX-NEXT: xsmsubmdp
; CHECK-VSX-NEXT: blr
-}
+}
\ No newline at end of file