1 ; RUN: llc < %s -march=ppc32 -fp-contract=fast | FileCheck %s
3 define double @test_FMADD1(double %A, double %B, double %C) {
4 %D = fmul double %A, %B ; <double> [#uses=1]
5 %E = fadd double %D, %C ; <double> [#uses=1]
7 ; CHECK-LABEL: test_FMADD1:
12 define double @test_FMADD2(double %A, double %B, double %C) {
13 %D = fmul double %A, %B ; <double> [#uses=1]
14 %E = fadd double %D, %C ; <double> [#uses=1]
16 ; CHECK-LABEL: test_FMADD2:
21 define double @test_FMSUB(double %A, double %B, double %C) {
22 %D = fmul double %A, %B ; <double> [#uses=1]
23 %E = fsub double %D, %C ; <double> [#uses=1]
25 ; CHECK-LABEL: test_FMSUB:
30 define double @test_FNMADD1(double %A, double %B, double %C) {
31 %D = fmul double %A, %B ; <double> [#uses=1]
32 %E = fadd double %D, %C ; <double> [#uses=1]
33 %F = fsub double -0.000000e+00, %E ; <double> [#uses=1]
35 ; CHECK-LABEL: test_FNMADD1:
40 define double @test_FNMADD2(double %A, double %B, double %C) {
41 %D = fmul double %A, %B ; <double> [#uses=1]
42 %E = fadd double %C, %D ; <double> [#uses=1]
43 %F = fsub double -0.000000e+00, %E ; <double> [#uses=1]
45 ; CHECK-LABEL: test_FNMADD2:
50 define double @test_FNMSUB1(double %A, double %B, double %C) {
51 %D = fmul double %A, %B ; <double> [#uses=1]
52 %E = fsub double %C, %D ; <double> [#uses=1]
54 ; CHECK-LABEL: test_FNMSUB1:
59 define double @test_FNMSUB2(double %A, double %B, double %C) {
60 %D = fmul double %A, %B ; <double> [#uses=1]
61 %E = fsub double %D, %C ; <double> [#uses=1]
62 %F = fsub double -0.000000e+00, %E ; <double> [#uses=1]
64 ; CHECK-LABEL: test_FNMSUB2:
69 define float @test_FNMSUBS(float %A, float %B, float %C) {
70 %D = fmul float %A, %B ; <float> [#uses=1]
71 %E = fsub float %D, %C ; <float> [#uses=1]
72 %F = fsub float -0.000000e+00, %E ; <float> [#uses=1]
74 ; CHECK-LABEL: test_FNMSUBS: