blob: da2790be061739c9f898c6e79dee881b2f1c40f3 [file] [log] [blame]
Reid Spencerc58ef012007-04-15 21:17:45 +00001; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 | \
2; RUN: egrep {fn?madd|fn?msub} | wc -l | grep 8
Chris Lattnere23836c2005-04-09 04:01:32 +00003
Nate Begemane9c0f432005-04-09 08:29:59 +00004double %test_FMADD1(double %A, double %B, double %C) {
5 %D = mul double %A, %B
6 %E = add double %D, %C
7 ret double %E
8}
9double %test_FMADD2(double %A, double %B, double %C) {
Chris Lattnere23836c2005-04-09 04:01:32 +000010 %D = mul double %A, %B
11 %E = add double %D, %C
12 ret double %E
13}
14double %test_FMSUB(double %A, double %B, double %C) {
15 %D = mul double %A, %B
16 %E = sub double %D, %C
17 ret double %E
18}
19double %test_FNMADD1(double %A, double %B, double %C) {
20 %D = mul double %A, %B
Nate Begemane9c0f432005-04-09 08:29:59 +000021 %E = add double %D, %C
Chris Lattnere23836c2005-04-09 04:01:32 +000022 %F = sub double -0.0, %E
23 ret double %F
24}
25double %test_FNMADD2(double %A, double %B, double %C) {
26 %D = mul double %A, %B
Nate Begemane9c0f432005-04-09 08:29:59 +000027 %E = add double %C, %D
Chris Lattnere23836c2005-04-09 04:01:32 +000028 %F = sub double -0.0, %E
29 ret double %F
30}
Nate Begemane9c0f432005-04-09 08:29:59 +000031double %test_FNMSUB1(double %A, double %B, double %C) {
Chris Lattnere23836c2005-04-09 04:01:32 +000032 %D = mul double %A, %B
Nate Begemane9c0f432005-04-09 08:29:59 +000033 %E = sub double %C, %D
34 ret double %E
35}
36double %test_FNMSUB2(double %A, double %B, double %C) {
37 %D = mul double %A, %B
38 %E = sub double %D, %C
Chris Lattnere23836c2005-04-09 04:01:32 +000039 %F = sub double -0.0, %E
40 ret double %F
41}
Nate Begeman1dae25e2005-12-14 22:51:13 +000042float %test_FNMSUBS(float %A, float %B, float %C) {
43 %D = mul float %A, %B
44 %E = sub float %D, %C
45 %F = sub float -0.0, %E
46 ret float %F
47}