12
12
; this check here.
13
13
14
14
; RUN: llc -march=mips -mcpu=mips32r2 -mattr=fp64 < %s | FileCheck %s -check-prefix=ALL -check-prefix=32R2-NO-FP64A-BE
15
- ; RUN: llc -march=mips -mcpu=mips32r2 -mattr=fp64,nooddspreg < %s | FileCheck %s -check-prefix=ALL -check-prefix=32R2-FP64A-BE
15
+ ; RUN: llc -march=mips -mcpu=mips32r2 -mattr=fp64,nooddspreg < %s | FileCheck %s -check-prefix=ALL -check-prefix=32R2-FP64A
16
16
; RUN: llc -march=mipsel -mcpu=mips32r2 -mattr=fp64 < %s | FileCheck %s -check-prefix=ALL -check-prefix=32R2-NO-FP64A-LE
17
- ; RUN: llc -march=mipsel -mcpu=mips32r2 -mattr=fp64,nooddspreg < %s | FileCheck %s -check-prefix=ALL -check-prefix=32R2-FP64A-LE
17
+ ; RUN: llc -march=mipsel -mcpu=mips32r2 -mattr=fp64,nooddspreg < %s | FileCheck %s -check-prefix=ALL -check-prefix=32R2-FP64A
18
18
19
19
; RUN: llc -march=mips64 -mcpu=mips64 -mattr=fp64 < %s | FileCheck %s -check-prefix=ALL -check-prefix=64-NO-FP64A
20
20
; RUN: not llc -march=mips64 -mcpu=mips64 -mattr=fp64,nooddspreg < %s 2>&1 | FileCheck %s -check-prefix=64-FP64A
@@ -38,15 +38,10 @@ define double @call1(double %d, ...) {
38
38
; 32R2-NO-FP64A-BE: mtc1 $5, $f0
39
39
; 32R2-NO-FP64A-BE: mthc1 $4, $f0
40
40
41
- ; 32R2-FP64A-LE: addiu $sp, $sp, -8
42
- ; 32R2-FP64A-LE: sw $4, 0($sp)
43
- ; 32R2-FP64A-LE: sw $5, 4($sp)
44
- ; 32R2-FP64A-LE: ldc1 $f0, 0($sp)
45
-
46
- ; 32R2-FP64A-BE: addiu $sp, $sp, -8
47
- ; 32R2-FP64A-BE: sw $5, 0($sp)
48
- ; 32R2-FP64A-BE: sw $4, 4($sp)
49
- ; 32R2-FP64A-BE: ldc1 $f0, 0($sp)
41
+ ; 32R2-FP64A: addiu $sp, $sp, -8
42
+ ; 32R2-FP64A: sw $4, 0($sp)
43
+ ; 32R2-FP64A: sw $5, 4($sp)
44
+ ; 32R2-FP64A: ldc1 $f0, 0($sp)
50
45
51
46
; 64-NO-FP64A: daddiu $sp, $sp, -64
52
47
; 64-NO-FP64A: mov.d $f0, $f12
@@ -63,15 +58,10 @@ define double @call2(i32 %i, double %d) {
63
58
; 32R2-NO-FP64A-BE: mtc1 $7, $f0
64
59
; 32R2-NO-FP64A-BE: mthc1 $6, $f0
65
60
66
- ; 32R2-FP64A-LE: addiu $sp, $sp, -8
67
- ; 32R2-FP64A-LE: sw $6, 0($sp)
68
- ; 32R2-FP64A-LE: sw $7, 4($sp)
69
- ; 32R2-FP64A-LE: ldc1 $f0, 0($sp)
70
-
71
- ; 32R2-FP64A-BE: addiu $sp, $sp, -8
72
- ; 32R2-FP64A-BE: sw $7, 0($sp)
73
- ; 32R2-FP64A-BE: sw $6, 4($sp)
74
- ; 32R2-FP64A-BE: ldc1 $f0, 0($sp)
61
+ ; 32R2-FP64A: addiu $sp, $sp, -8
62
+ ; 32R2-FP64A: sw $6, 0($sp)
63
+ ; 32R2-FP64A: sw $7, 4($sp)
64
+ ; 32R2-FP64A: ldc1 $f0, 0($sp)
75
65
76
66
; 64-NO-FP64A-NOT: daddiu $sp, $sp
77
67
; 64-NO-FP64A: mov.d $f0, $f13
@@ -88,15 +78,10 @@ define double @call3(float %f1, float %f2, double %d) {
88
78
; 32R2-NO-FP64A-BE: mtc1 $7, $f0
89
79
; 32R2-NO-FP64A-BE: mthc1 $6, $f0
90
80
91
- ; 32R2-FP64A-LE: addiu $sp, $sp, -8
92
- ; 32R2-FP64A-LE: sw $6, 0($sp)
93
- ; 32R2-FP64A-LE: sw $7, 4($sp)
94
- ; 32R2-FP64A-LE: ldc1 $f0, 0($sp)
95
-
96
- ; 32R2-FP64A-BE: addiu $sp, $sp, -8
97
- ; 32R2-FP64A-BE: sw $7, 0($sp)
98
- ; 32R2-FP64A-BE: sw $6, 4($sp)
99
- ; 32R2-FP64A-BE: ldc1 $f0, 0($sp)
81
+ ; 32R2-FP64A: addiu $sp, $sp, -8
82
+ ; 32R2-FP64A: sw $6, 0($sp)
83
+ ; 32R2-FP64A: sw $7, 4($sp)
84
+ ; 32R2-FP64A: ldc1 $f0, 0($sp)
100
85
101
86
; 64-NO-FP64A-NOT: daddiu $sp, $sp
102
87
; 64-NO-FP64A: mov.d $f0, $f14
@@ -113,15 +98,10 @@ define double @call4(float %f, double %d, ...) {
113
98
; 32R2-NO-FP64A-BE: mtc1 $7, $f0
114
99
; 32R2-NO-FP64A-BE: mthc1 $6, $f0
115
100
116
- ; 32R2-FP64A-LE: addiu $sp, $sp, -8
117
- ; 32R2-FP64A-LE: sw $6, 0($sp)
118
- ; 32R2-FP64A-LE: sw $7, 4($sp)
119
- ; 32R2-FP64A-LE: ldc1 $f0, 0($sp)
120
-
121
- ; 32R2-FP64A-BE: addiu $sp, $sp, -8
122
- ; 32R2-FP64A-BE: sw $7, 0($sp)
123
- ; 32R2-FP64A-BE: sw $6, 4($sp)
124
- ; 32R2-FP64A-BE: ldc1 $f0, 0($sp)
101
+ ; 32R2-FP64A: addiu $sp, $sp, -8
102
+ ; 32R2-FP64A: sw $6, 0($sp)
103
+ ; 32R2-FP64A: sw $7, 4($sp)
104
+ ; 32R2-FP64A: ldc1 $f0, 0($sp)
125
105
126
106
; 64-NO-FP64A: daddiu $sp, $sp, -48
127
107
; 64-NO-FP64A: mov.d $f0, $f13
@@ -145,23 +125,14 @@ define double @call5(double %a, double %b, ...) {
145
125
; 32R2-NO-FP64A-BE-DAG: mthc1 $6, $[[T1:f[0-9]+]]
146
126
; 32R2-NO-FP64A-BE: sub.d $f0, $[[T0]], $[[T1]]
147
127
148
- ; 32R2-FP64A-LE: addiu $sp, $sp, -8
149
- ; 32R2-FP64A-LE: sw $6, 0($sp)
150
- ; 32R2-FP64A-LE: sw $7, 4($sp)
151
- ; 32R2-FP64A-LE: ldc1 $[[T1:f[0-9]+]], 0($sp)
152
- ; 32R2-FP64A-LE: sw $4, 0($sp)
153
- ; 32R2-FP64A-LE: sw $5, 4($sp)
154
- ; 32R2-FP64A-LE: ldc1 $[[T0:f[0-9]+]], 0($sp)
155
- ; 32R2-FP64A-LE: sub.d $f0, $[[T0]], $[[T1]]
156
-
157
- ; 32R2-FP64A-BE: addiu $sp, $sp, -8
158
- ; 32R2-FP64A-BE: sw $7, 0($sp)
159
- ; 32R2-FP64A-BE: sw $6, 4($sp)
160
- ; 32R2-FP64A-BE: ldc1 $[[T1:f[0-9]+]], 0($sp)
161
- ; 32R2-FP64A-BE: sw $5, 0($sp)
162
- ; 32R2-FP64A-BE: sw $4, 4($sp)
163
- ; 32R2-FP64A-BE: ldc1 $[[T0:f[0-9]+]], 0($sp)
164
- ; 32R2-FP64A-BE: sub.d $f0, $[[T0]], $[[T1]]
128
+ ; 32R2-FP64A: addiu $sp, $sp, -8
129
+ ; 32R2-FP64A: sw $6, 0($sp)
130
+ ; 32R2-FP64A: sw $7, 4($sp)
131
+ ; 32R2-FP64A: ldc1 $[[T1:f[0-9]+]], 0($sp)
132
+ ; 32R2-FP64A: sw $4, 0($sp)
133
+ ; 32R2-FP64A: sw $5, 4($sp)
134
+ ; 32R2-FP64A: ldc1 $[[T0:f[0-9]+]], 0($sp)
135
+ ; 32R2-FP64A: sub.d $f0, $[[T0]], $[[T1]]
165
136
166
137
; 64-NO-FP64A: sub.d $f0, $f12, $f13
167
138
}
@@ -179,19 +150,12 @@ define double @move_from(double %d) {
179
150
; 32R2-NO-FP64A-BE-DAG: mfc1 $7, $f0
180
151
; 32R2-NO-FP64A-BE-DAG: mfhc1 $6, $f0
181
152
182
- ; 32R2-FP64A-LE: addiu $sp, $sp, -32
183
- ; 32R2-FP64A-LE: sdc1 $f0, 16($sp)
184
- ; 32R2-FP64A-LE: lw $6, 16($sp)
185
- ; FIXME: This store is redundant
186
- ; 32R2-FP64A-LE: sdc1 $f0, 16($sp)
187
- ; 32R2-FP64A-LE: lw $7, 20($sp)
188
-
189
- ; 32R2-FP64A-BE: addiu $sp, $sp, -32
190
- ; 32R2-FP64A-BE: sdc1 $f0, 16($sp)
191
- ; 32R2-FP64A-BE: lw $6, 20($sp)
153
+ ; 32R2-FP64A: addiu $sp, $sp, -32
154
+ ; 32R2-FP64A: sdc1 $f0, 16($sp)
155
+ ; 32R2-FP64A: lw $6, 16($sp)
192
156
; FIXME: This store is redundant
193
- ; 32R2-FP64A-BE: sdc1 $f0, 16($sp)
194
- ; 32R2-FP64A-BE : lw $7, 16 ($sp)
157
+ ; 32R2-FP64A: sdc1 $f0, 16($sp)
158
+ ; 32R2-FP64A: lw $7, 20 ($sp)
195
159
196
160
; 64-NO-FP64A: mov.d $f13, $f0
197
161
}
0 commit comments