blob: 794fa087428b7334c7b7ce6e41113f2bc4adaf5e [file] [log] [blame]
John Criswell32b30a32005-05-12 21:06:05 +00001; RUN: llvm-as < %s | llc -march=ppc32 | egrep 'fn?madd|fn?msub' | wc -l | grep 7
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}