blob: afc9af4e689cc8b19bda99776522ec5d3746b038 [file] [log] [blame]
Nate Begeman1dae25e2005-12-14 22:51:13 +00001; RUN: llvm-as < %s | llc -march=ppc32 | egrep 'fn?madd|fn?msub' | wc -l | grep 8
Chris Lattnere23836c2005-04-09 04:01:32 +00002
Nate Begemane9c0f432005-04-09 08:29:59 +00003double %test_FMADD1(double %A, double %B, double %C) {
4 %D = mul double %A, %B
5 %E = add double %D, %C
6 ret double %E
7}
8double %test_FMADD2(double %A, double %B, double %C) {
Chris Lattnere23836c2005-04-09 04:01:32 +00009 %D = mul double %A, %B
10 %E = add double %D, %C
11 ret double %E
12}
13double %test_FMSUB(double %A, double %B, double %C) {
14 %D = mul double %A, %B
15 %E = sub double %D, %C
16 ret double %E
17}
18double %test_FNMADD1(double %A, double %B, double %C) {
19 %D = mul double %A, %B
Nate Begemane9c0f432005-04-09 08:29:59 +000020 %E = add double %D, %C
Chris Lattnere23836c2005-04-09 04:01:32 +000021 %F = sub double -0.0, %E
22 ret double %F
23}
24double %test_FNMADD2(double %A, double %B, double %C) {
25 %D = mul double %A, %B
Nate Begemane9c0f432005-04-09 08:29:59 +000026 %E = add double %C, %D
Chris Lattnere23836c2005-04-09 04:01:32 +000027 %F = sub double -0.0, %E
28 ret double %F
29}
Nate Begemane9c0f432005-04-09 08:29:59 +000030double %test_FNMSUB1(double %A, double %B, double %C) {
Chris Lattnere23836c2005-04-09 04:01:32 +000031 %D = mul double %A, %B
Nate Begemane9c0f432005-04-09 08:29:59 +000032 %E = sub double %C, %D
33 ret double %E
34}
35double %test_FNMSUB2(double %A, double %B, double %C) {
36 %D = mul double %A, %B
37 %E = sub double %D, %C
Chris Lattnere23836c2005-04-09 04:01:32 +000038 %F = sub double -0.0, %E
39 ret double %F
40}
Nate Begeman1dae25e2005-12-14 22:51:13 +000041float %test_FNMSUBS(float %A, float %B, float %C) {
42 %D = mul float %A, %B
43 %E = sub float %D, %C
44 %F = sub float -0.0, %E
45 ret float %F
46}