Skip to content

Commit 9f81acf

Browse files
committed
[Mips] Regenerate test checks (NFC)
Some of these check lines are insufficient to determine correctness. Generate full check lines instead. To reduce noise, add nounwind and use static relocation model.
1 parent 14c4f28 commit 9f81acf

File tree

1 file changed

+205
-41
lines changed

1 file changed

+205
-41
lines changed

llvm/test/CodeGen/Mips/fp16-promote.ll

Lines changed: 205 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,96 +1,260 @@
1-
; RUN: llc -asm-verbose=false -mtriple=mipsel-linux-gnu -relocation-model=pic < %s | FileCheck %s -check-prefix=CHECK-LIBCALL
1+
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
2+
; RUN: llc -mtriple=mipsel-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-LIBCALL
23

4+
define void @test_fadd(ptr %p, ptr %q) nounwind {
35
; CHECK-LIBCALL-LABEL: test_fadd:
4-
; CHECK-LIBCALL: %call16(__gnu_h2f_ieee)
5-
; CHECK-LIBCALL: %call16(__gnu_h2f_ieee)
6-
; CHECK-LIBCALL-DAG: add.s
7-
; CHECK-LIBCALL-DAG: %call16(__gnu_f2h_ieee)
8-
define void @test_fadd(ptr %p, ptr %q) #0 {
6+
; CHECK-LIBCALL: # %bb.0:
7+
; CHECK-LIBCALL-NEXT: addiu $sp, $sp, -40
8+
; CHECK-LIBCALL-NEXT: sdc1 $f20, 32($sp) # 8-byte Folded Spill
9+
; CHECK-LIBCALL-NEXT: sw $ra, 28($sp) # 4-byte Folded Spill
10+
; CHECK-LIBCALL-NEXT: sw $17, 24($sp) # 4-byte Folded Spill
11+
; CHECK-LIBCALL-NEXT: sw $16, 20($sp) # 4-byte Folded Spill
12+
; CHECK-LIBCALL-NEXT: move $17, $4
13+
; CHECK-LIBCALL-NEXT: lhu $4, 0($4)
14+
; CHECK-LIBCALL-NEXT: jal __gnu_h2f_ieee
15+
; CHECK-LIBCALL-NEXT: move $16, $5
16+
; CHECK-LIBCALL-NEXT: lhu $4, 0($16)
17+
; CHECK-LIBCALL-NEXT: jal __gnu_h2f_ieee
18+
; CHECK-LIBCALL-NEXT: mov.s $f20, $f0
19+
; CHECK-LIBCALL-NEXT: jal __gnu_f2h_ieee
20+
; CHECK-LIBCALL-NEXT: add.s $f12, $f20, $f0
21+
; CHECK-LIBCALL-NEXT: sh $2, 0($17)
22+
; CHECK-LIBCALL-NEXT: lw $16, 20($sp) # 4-byte Folded Reload
23+
; CHECK-LIBCALL-NEXT: lw $17, 24($sp) # 4-byte Folded Reload
24+
; CHECK-LIBCALL-NEXT: lw $ra, 28($sp) # 4-byte Folded Reload
25+
; CHECK-LIBCALL-NEXT: ldc1 $f20, 32($sp) # 8-byte Folded Reload
26+
; CHECK-LIBCALL-NEXT: jr $ra
27+
; CHECK-LIBCALL-NEXT: addiu $sp, $sp, 40
928
%a = load half, ptr %p, align 2
1029
%b = load half, ptr %q, align 2
1130
%r = fadd half %a, %b
1231
store half %r, ptr %p
1332
ret void
1433
}
1534

35+
define float @test_fpext_float(ptr %p) nounwind {
1636
; CHECK-LIBCALL-LABEL: test_fpext_float:
17-
; CHECK-LIBCALL: %call16(__gnu_h2f_ieee)
18-
define float @test_fpext_float(ptr %p) {
37+
; CHECK-LIBCALL: # %bb.0:
38+
; CHECK-LIBCALL-NEXT: addiu $sp, $sp, -24
39+
; CHECK-LIBCALL-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill
40+
; CHECK-LIBCALL-NEXT: lhu $4, 0($4)
41+
; CHECK-LIBCALL-NEXT: jal __gnu_h2f_ieee
42+
; CHECK-LIBCALL-NEXT: nop
43+
; CHECK-LIBCALL-NEXT: lw $ra, 20($sp) # 4-byte Folded Reload
44+
; CHECK-LIBCALL-NEXT: jr $ra
45+
; CHECK-LIBCALL-NEXT: addiu $sp, $sp, 24
1946
%a = load half, ptr %p, align 2
2047
%r = fpext half %a to float
2148
ret float %r
2249
}
2350

51+
define double @test_fpext_double(ptr %p) nounwind {
2452
; CHECK-LIBCALL-LABEL: test_fpext_double:
25-
; CHECK-LIBCALL: %call16(__gnu_h2f_ieee)
26-
; CHECK-LIBCALL: cvt.d.s
27-
define double @test_fpext_double(ptr %p) {
53+
; CHECK-LIBCALL: # %bb.0:
54+
; CHECK-LIBCALL-NEXT: addiu $sp, $sp, -24
55+
; CHECK-LIBCALL-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill
56+
; CHECK-LIBCALL-NEXT: lhu $4, 0($4)
57+
; CHECK-LIBCALL-NEXT: jal __gnu_h2f_ieee
58+
; CHECK-LIBCALL-NEXT: nop
59+
; CHECK-LIBCALL-NEXT: cvt.d.s $f0, $f0
60+
; CHECK-LIBCALL-NEXT: lw $ra, 20($sp) # 4-byte Folded Reload
61+
; CHECK-LIBCALL-NEXT: jr $ra
62+
; CHECK-LIBCALL-NEXT: addiu $sp, $sp, 24
2863
%a = load half, ptr %p, align 2
2964
%r = fpext half %a to double
3065
ret double %r
3166
}
3267

68+
define void @test_fptrunc_float(float %f, ptr %p) nounwind {
3369
; CHECK-LIBCALL-LABEL: test_fptrunc_float:
34-
; CHECK-LIBCALL: %call16(__gnu_f2h_ieee)
35-
define void @test_fptrunc_float(float %f, ptr %p) #0 {
70+
; CHECK-LIBCALL: # %bb.0:
71+
; CHECK-LIBCALL-NEXT: addiu $sp, $sp, -24
72+
; CHECK-LIBCALL-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill
73+
; CHECK-LIBCALL-NEXT: sw $16, 16($sp) # 4-byte Folded Spill
74+
; CHECK-LIBCALL-NEXT: jal __gnu_f2h_ieee
75+
; CHECK-LIBCALL-NEXT: move $16, $5
76+
; CHECK-LIBCALL-NEXT: sh $2, 0($16)
77+
; CHECK-LIBCALL-NEXT: lw $16, 16($sp) # 4-byte Folded Reload
78+
; CHECK-LIBCALL-NEXT: lw $ra, 20($sp) # 4-byte Folded Reload
79+
; CHECK-LIBCALL-NEXT: jr $ra
80+
; CHECK-LIBCALL-NEXT: addiu $sp, $sp, 24
3681
%a = fptrunc float %f to half
3782
store half %a, ptr %p
3883
ret void
3984
}
4085

86+
define void @test_fptrunc_double(double %d, ptr %p) nounwind {
4187
; CHECK-LIBCALL-LABEL: test_fptrunc_double:
42-
; CHECK-LIBCALL: %call16(__truncdfhf2)
43-
define void @test_fptrunc_double(double %d, ptr %p) #0 {
88+
; CHECK-LIBCALL: # %bb.0:
89+
; CHECK-LIBCALL-NEXT: addiu $sp, $sp, -24
90+
; CHECK-LIBCALL-NEXT: sw $ra, 20($sp) # 4-byte Folded Spill
91+
; CHECK-LIBCALL-NEXT: sw $16, 16($sp) # 4-byte Folded Spill
92+
; CHECK-LIBCALL-NEXT: jal __truncdfhf2
93+
; CHECK-LIBCALL-NEXT: move $16, $6
94+
; CHECK-LIBCALL-NEXT: sh $2, 0($16)
95+
; CHECK-LIBCALL-NEXT: lw $16, 16($sp) # 4-byte Folded Reload
96+
; CHECK-LIBCALL-NEXT: lw $ra, 20($sp) # 4-byte Folded Reload
97+
; CHECK-LIBCALL-NEXT: jr $ra
98+
; CHECK-LIBCALL-NEXT: addiu $sp, $sp, 24
4499
%a = fptrunc double %d to half
45100
store half %a, ptr %p
46101
ret void
47102
}
48103

104+
define <4 x float> @test_vec_fpext_float(ptr %p) nounwind {
49105
; CHECK-LIBCALL-LABEL: test_vec_fpext_float:
50-
; CHECK-LIBCALL: %call16(__gnu_h2f_ieee)
51-
; CHECK-LIBCALL: %call16(__gnu_h2f_ieee)
52-
; CHECK-LIBCALL: %call16(__gnu_h2f_ieee)
53-
; CHECK-LIBCALL: %call16(__gnu_h2f_ieee)
54-
define <4 x float> @test_vec_fpext_float(ptr %p) #0 {
106+
; CHECK-LIBCALL: # %bb.0:
107+
; CHECK-LIBCALL-NEXT: addiu $sp, $sp, -32
108+
; CHECK-LIBCALL-NEXT: sw $ra, 28($sp) # 4-byte Folded Spill
109+
; CHECK-LIBCALL-NEXT: sw $17, 24($sp) # 4-byte Folded Spill
110+
; CHECK-LIBCALL-NEXT: sw $16, 20($sp) # 4-byte Folded Spill
111+
; CHECK-LIBCALL-NEXT: move $17, $4
112+
; CHECK-LIBCALL-NEXT: lhu $4, 6($5)
113+
; CHECK-LIBCALL-NEXT: jal __gnu_h2f_ieee
114+
; CHECK-LIBCALL-NEXT: move $16, $5
115+
; CHECK-LIBCALL-NEXT: lhu $4, 4($16)
116+
; CHECK-LIBCALL-NEXT: jal __gnu_h2f_ieee
117+
; CHECK-LIBCALL-NEXT: swc1 $f0, 12($17)
118+
; CHECK-LIBCALL-NEXT: swc1 $f0, 8($17)
119+
; CHECK-LIBCALL-NEXT: lhu $4, 2($16)
120+
; CHECK-LIBCALL-NEXT: jal __gnu_h2f_ieee
121+
; CHECK-LIBCALL-NEXT: nop
122+
; CHECK-LIBCALL-NEXT: swc1 $f0, 4($17)
123+
; CHECK-LIBCALL-NEXT: lhu $4, 0($16)
124+
; CHECK-LIBCALL-NEXT: jal __gnu_h2f_ieee
125+
; CHECK-LIBCALL-NEXT: nop
126+
; CHECK-LIBCALL-NEXT: swc1 $f0, 0($17)
127+
; CHECK-LIBCALL-NEXT: lw $16, 20($sp) # 4-byte Folded Reload
128+
; CHECK-LIBCALL-NEXT: lw $17, 24($sp) # 4-byte Folded Reload
129+
; CHECK-LIBCALL-NEXT: lw $ra, 28($sp) # 4-byte Folded Reload
130+
; CHECK-LIBCALL-NEXT: jr $ra
131+
; CHECK-LIBCALL-NEXT: addiu $sp, $sp, 32
55132
%a = load <4 x half>, ptr %p, align 8
56133
%b = fpext <4 x half> %a to <4 x float>
57134
ret <4 x float> %b
58135
}
59136

60-
; This test is not robust against variations in instruction scheduling.
61-
; See the discussion in http://reviews.llvm.org/D8804
137+
define <4 x double> @test_vec_fpext_double(ptr %p) nounwind {
62138
; CHECK-LIBCALL-LABEL: test_vec_fpext_double:
63-
; CHECK-LIBCALL: %call16(__gnu_h2f_ieee)
64-
; CHECK-LIBCALL: %call16(__gnu_h2f_ieee)
65-
; CHECK-LIBCALL: %call16(__gnu_h2f_ieee)
66-
; CHECK-LIBCALL: cvt.d.s
67-
; CHECK-LIBCALL: cvt.d.s
68-
; CHECK-LIBCALL: cvt.d.s
69-
; CHECK-LIBCALL: %call16(__gnu_h2f_ieee)
70-
; CHECK-LIBCALL: cvt.d.s
71-
define <4 x double> @test_vec_fpext_double(ptr %p) #0 {
139+
; CHECK-LIBCALL: # %bb.0:
140+
; CHECK-LIBCALL-NEXT: addiu $sp, $sp, -40
141+
; CHECK-LIBCALL-NEXT: sdc1 $f20, 32($sp) # 8-byte Folded Spill
142+
; CHECK-LIBCALL-NEXT: sw $ra, 28($sp) # 4-byte Folded Spill
143+
; CHECK-LIBCALL-NEXT: sw $17, 24($sp) # 4-byte Folded Spill
144+
; CHECK-LIBCALL-NEXT: sw $16, 20($sp) # 4-byte Folded Spill
145+
; CHECK-LIBCALL-NEXT: move $17, $4
146+
; CHECK-LIBCALL-NEXT: lhu $4, 6($5)
147+
; CHECK-LIBCALL-NEXT: jal __gnu_h2f_ieee
148+
; CHECK-LIBCALL-NEXT: move $16, $5
149+
; CHECK-LIBCALL-NEXT: lhu $4, 4($16)
150+
; CHECK-LIBCALL-NEXT: jal __gnu_h2f_ieee
151+
; CHECK-LIBCALL-NEXT: mov.s $f20, $f0
152+
; CHECK-LIBCALL-NEXT: lhu $4, 2($16)
153+
; CHECK-LIBCALL-NEXT: cvt.d.s $f0, $f0
154+
; CHECK-LIBCALL-NEXT: cvt.d.s $f2, $f20
155+
; CHECK-LIBCALL-NEXT: sdc1 $f2, 24($17)
156+
; CHECK-LIBCALL-NEXT: jal __gnu_h2f_ieee
157+
; CHECK-LIBCALL-NEXT: sdc1 $f0, 16($17)
158+
; CHECK-LIBCALL-NEXT: cvt.d.s $f0, $f0
159+
; CHECK-LIBCALL-NEXT: sdc1 $f0, 8($17)
160+
; CHECK-LIBCALL-NEXT: lhu $4, 0($16)
161+
; CHECK-LIBCALL-NEXT: jal __gnu_h2f_ieee
162+
; CHECK-LIBCALL-NEXT: nop
163+
; CHECK-LIBCALL-NEXT: cvt.d.s $f0, $f0
164+
; CHECK-LIBCALL-NEXT: sdc1 $f0, 0($17)
165+
; CHECK-LIBCALL-NEXT: lw $16, 20($sp) # 4-byte Folded Reload
166+
; CHECK-LIBCALL-NEXT: lw $17, 24($sp) # 4-byte Folded Reload
167+
; CHECK-LIBCALL-NEXT: lw $ra, 28($sp) # 4-byte Folded Reload
168+
; CHECK-LIBCALL-NEXT: ldc1 $f20, 32($sp) # 8-byte Folded Reload
169+
; CHECK-LIBCALL-NEXT: jr $ra
170+
; CHECK-LIBCALL-NEXT: addiu $sp, $sp, 40
72171
%a = load <4 x half>, ptr %p, align 8
73172
%b = fpext <4 x half> %a to <4 x double>
74173
ret <4 x double> %b
75174
}
76175

176+
define void @test_vec_fptrunc_float(<4 x float> %a, ptr %p) nounwind {
77177
; CHECK-LIBCALL-LABEL: test_vec_fptrunc_float:
78-
; CHECK-LIBCALL: %call16(__gnu_f2h_ieee)
79-
; CHECK-LIBCALL: %call16(__gnu_f2h_ieee)
80-
; CHECK-LIBCALL: %call16(__gnu_f2h_ieee)
81-
; CHECK-LIBCALL: %call16(__gnu_f2h_ieee)
82-
define void @test_vec_fptrunc_float(<4 x float> %a, ptr %p) #0 {
178+
; CHECK-LIBCALL: # %bb.0:
179+
; CHECK-LIBCALL-NEXT: addiu $sp, $sp, -40
180+
; CHECK-LIBCALL-NEXT: sw $ra, 36($sp) # 4-byte Folded Spill
181+
; CHECK-LIBCALL-NEXT: sw $19, 32($sp) # 4-byte Folded Spill
182+
; CHECK-LIBCALL-NEXT: sw $18, 28($sp) # 4-byte Folded Spill
183+
; CHECK-LIBCALL-NEXT: sw $17, 24($sp) # 4-byte Folded Spill
184+
; CHECK-LIBCALL-NEXT: sw $16, 20($sp) # 4-byte Folded Spill
185+
; CHECK-LIBCALL-NEXT: move $16, $7
186+
; CHECK-LIBCALL-NEXT: move $17, $5
187+
; CHECK-LIBCALL-NEXT: move $18, $4
188+
; CHECK-LIBCALL-NEXT: jal __gnu_f2h_ieee
189+
; CHECK-LIBCALL-NEXT: mtc1 $6, $f12
190+
; CHECK-LIBCALL-NEXT: move $19, $2
191+
; CHECK-LIBCALL-NEXT: jal __gnu_f2h_ieee
192+
; CHECK-LIBCALL-NEXT: mtc1 $16, $f12
193+
; CHECK-LIBCALL-NEXT: mtc1 $17, $f12
194+
; CHECK-LIBCALL-NEXT: lw $16, 56($sp)
195+
; CHECK-LIBCALL-NEXT: sh $2, 6($16)
196+
; CHECK-LIBCALL-NEXT: jal __gnu_f2h_ieee
197+
; CHECK-LIBCALL-NEXT: sh $19, 4($16)
198+
; CHECK-LIBCALL-NEXT: sh $2, 2($16)
199+
; CHECK-LIBCALL-NEXT: jal __gnu_f2h_ieee
200+
; CHECK-LIBCALL-NEXT: mtc1 $18, $f12
201+
; CHECK-LIBCALL-NEXT: sh $2, 0($16)
202+
; CHECK-LIBCALL-NEXT: lw $16, 20($sp) # 4-byte Folded Reload
203+
; CHECK-LIBCALL-NEXT: lw $17, 24($sp) # 4-byte Folded Reload
204+
; CHECK-LIBCALL-NEXT: lw $18, 28($sp) # 4-byte Folded Reload
205+
; CHECK-LIBCALL-NEXT: lw $19, 32($sp) # 4-byte Folded Reload
206+
; CHECK-LIBCALL-NEXT: lw $ra, 36($sp) # 4-byte Folded Reload
207+
; CHECK-LIBCALL-NEXT: jr $ra
208+
; CHECK-LIBCALL-NEXT: addiu $sp, $sp, 40
83209
%b = fptrunc <4 x float> %a to <4 x half>
84210
store <4 x half> %b, ptr %p, align 8
85211
ret void
86212
}
87213

214+
define void @test_vec_fptrunc_double(<4 x double> %a, ptr %p) nounwind {
88215
; CHECK-LIBCALL-LABEL: test_vec_fptrunc_double:
89-
; CHECK-LIBCALL: %call16(__truncdfhf2)
90-
; CHECK-LIBCALL: %call16(__truncdfhf2)
91-
; CHECK-LIBCALL: %call16(__truncdfhf2)
92-
; CHECK-LIBCALL: %call16(__truncdfhf2)
93-
define void @test_vec_fptrunc_double(<4 x double> %a, ptr %p) #0 {
216+
; CHECK-LIBCALL: # %bb.0:
217+
; CHECK-LIBCALL-NEXT: addiu $sp, $sp, -72
218+
; CHECK-LIBCALL-NEXT: sw $ra, 68($sp) # 4-byte Folded Spill
219+
; CHECK-LIBCALL-NEXT: sw $19, 64($sp) # 4-byte Folded Spill
220+
; CHECK-LIBCALL-NEXT: sw $18, 60($sp) # 4-byte Folded Spill
221+
; CHECK-LIBCALL-NEXT: sw $17, 56($sp) # 4-byte Folded Spill
222+
; CHECK-LIBCALL-NEXT: sw $16, 52($sp) # 4-byte Folded Spill
223+
; CHECK-LIBCALL-NEXT: move $16, $5
224+
; CHECK-LIBCALL-NEXT: move $17, $4
225+
; CHECK-LIBCALL-NEXT: lw $1, 92($sp)
226+
; CHECK-LIBCALL-NEXT: sw $1, 36($sp)
227+
; CHECK-LIBCALL-NEXT: lw $1, 88($sp)
228+
; CHECK-LIBCALL-NEXT: sw $1, 32($sp)
229+
; CHECK-LIBCALL-NEXT: lw $1, 96($sp)
230+
; CHECK-LIBCALL-NEXT: lw $2, 100($sp)
231+
; CHECK-LIBCALL-NEXT: sw $2, 44($sp)
232+
; CHECK-LIBCALL-NEXT: sw $1, 40($sp)
233+
; CHECK-LIBCALL-NEXT: ldc1 $f12, 32($sp)
234+
; CHECK-LIBCALL-NEXT: sw $7, 28($sp)
235+
; CHECK-LIBCALL-NEXT: jal __truncdfhf2
236+
; CHECK-LIBCALL-NEXT: sw $6, 24($sp)
237+
; CHECK-LIBCALL-NEXT: move $18, $2
238+
; CHECK-LIBCALL-NEXT: jal __truncdfhf2
239+
; CHECK-LIBCALL-NEXT: ldc1 $f12, 40($sp)
240+
; CHECK-LIBCALL-NEXT: ldc1 $f12, 24($sp)
241+
; CHECK-LIBCALL-NEXT: lw $19, 104($sp)
242+
; CHECK-LIBCALL-NEXT: sh $2, 6($19)
243+
; CHECK-LIBCALL-NEXT: jal __truncdfhf2
244+
; CHECK-LIBCALL-NEXT: sh $18, 4($19)
245+
; CHECK-LIBCALL-NEXT: sh $2, 2($19)
246+
; CHECK-LIBCALL-NEXT: sw $16, 20($sp)
247+
; CHECK-LIBCALL-NEXT: sw $17, 16($sp)
248+
; CHECK-LIBCALL-NEXT: jal __truncdfhf2
249+
; CHECK-LIBCALL-NEXT: ldc1 $f12, 16($sp)
250+
; CHECK-LIBCALL-NEXT: sh $2, 0($19)
251+
; CHECK-LIBCALL-NEXT: lw $16, 52($sp) # 4-byte Folded Reload
252+
; CHECK-LIBCALL-NEXT: lw $17, 56($sp) # 4-byte Folded Reload
253+
; CHECK-LIBCALL-NEXT: lw $18, 60($sp) # 4-byte Folded Reload
254+
; CHECK-LIBCALL-NEXT: lw $19, 64($sp) # 4-byte Folded Reload
255+
; CHECK-LIBCALL-NEXT: lw $ra, 68($sp) # 4-byte Folded Reload
256+
; CHECK-LIBCALL-NEXT: jr $ra
257+
; CHECK-LIBCALL-NEXT: addiu $sp, $sp, 72
94258
%b = fptrunc <4 x double> %a to <4 x half>
95259
store <4 x half> %b, ptr %p, align 8
96260
ret void

0 commit comments

Comments
 (0)