Revert " [LoongArch][ISel] Check the number of sign bits in `PatGprGpr_32` (#107432)"
[llvm-project.git] / llvm / test / CodeGen / Mips / mips64-f128.ll
blobac29154579c500048a801af141eddb5ba814c8be
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2
2 ; RUN: llc -mtriple=mips64el-unknown-unknown -mcpu=mips4 -mattr=+soft-float -O1 \
3 ; RUN:     -disable-mips-delay-filler -relocation-model=pic < %s | FileCheck \
4 ; RUN:     %s -check-prefixes=ALL,C_CC_FMT,PRER6,NOT-R2R6
5 ; RUN: llc -mtriple=mips64el-unknown-unknown -mcpu=mips64 -mattr=+soft-float -O1 \
6 ; RUN:     -disable-mips-delay-filler -relocation-model=pic < %s | FileCheck \
7 ; RUN:     %s -check-prefixes=ALL,C_CC_FMT,PRER6,NOT-R2R6
8 ; RUN: llc -mtriple=mips64el-unknown-unknown -mcpu=mips64r2 -mattr=+soft-float \
9 ; RUN:     -O1 -disable-mips-delay-filler -relocation-model=pic < %s | FileCheck \
10 ; RUN:     %s -check-prefixes=ALL,C_CC_FMT,PRER6,R2R6
11 ; RUN: llc -mtriple=mips64el-unknown-unknown -mcpu=mips64r6 -mattr=+soft-float \
12 ; RUN:     -O1 -disable-mips-delay-filler -relocation-model=pic < %s | FileCheck \
13 ; RUN:     %s -check-prefixes=ALL,CMP_CC_FMT,R6,R2R6
15 @gld0 = external global fp128
16 @gld1 = external global fp128
17 @gld2 = external global fp128
18 @gf1 = external global float
19 @gd1 = external global double
21 define fp128 @addLD() {
22 ; C_CC_FMT-LABEL: addLD:
23 ; C_CC_FMT:       # %bb.0: # %entry
24 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
25 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
26 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
27 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
28 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
29 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
30 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(addLD)))
31 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
32 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(addLD)))
33 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
34 ; C_CC_FMT-NEXT:    ld $4, 0($1)
35 ; C_CC_FMT-NEXT:    ld $5, 8($1)
36 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld1)($gp)
37 ; C_CC_FMT-NEXT:    ld $6, 0($1)
38 ; C_CC_FMT-NEXT:    ld $7, 8($1)
39 ; C_CC_FMT-NEXT:    ld $25, %call16(__addtf3)($gp)
40 ; C_CC_FMT-NEXT:    .reloc .Ltmp0, R_MIPS_JALR, __addtf3
41 ; C_CC_FMT-NEXT:  .Ltmp0:
42 ; C_CC_FMT-NEXT:    jalr $25
43 ; C_CC_FMT-NEXT:    nop
44 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
45 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
46 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
47 ; C_CC_FMT-NEXT:    jr $ra
48 ; C_CC_FMT-NEXT:    nop
50 ; CMP_CC_FMT-LABEL: addLD:
51 ; CMP_CC_FMT:       # %bb.0: # %entry
52 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
53 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
54 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
55 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
56 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
57 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
58 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(addLD)))
59 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
60 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(addLD)))
61 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
62 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
63 ; CMP_CC_FMT-NEXT:    ld $5, 8($1)
64 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld1)($gp)
65 ; CMP_CC_FMT-NEXT:    ld $6, 0($1)
66 ; CMP_CC_FMT-NEXT:    ld $7, 8($1)
67 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__addtf3)($gp)
68 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp0, R_MIPS_JALR, __addtf3
69 ; CMP_CC_FMT-NEXT:  .Ltmp0:
70 ; CMP_CC_FMT-NEXT:    jalrc $25
71 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
72 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
73 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
74 ; CMP_CC_FMT-NEXT:    jrc $ra
75 entry:
76   %0 = load fp128, ptr @gld0, align 16
77   %1 = load fp128, ptr @gld1, align 16
78   %add = fadd fp128 %0, %1
79   ret fp128 %add
82 define fp128 @subLD() {
83 ; C_CC_FMT-LABEL: subLD:
84 ; C_CC_FMT:       # %bb.0: # %entry
85 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
86 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
87 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
88 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
89 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
90 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
91 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(subLD)))
92 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
93 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(subLD)))
94 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
95 ; C_CC_FMT-NEXT:    ld $4, 0($1)
96 ; C_CC_FMT-NEXT:    ld $5, 8($1)
97 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld1)($gp)
98 ; C_CC_FMT-NEXT:    ld $6, 0($1)
99 ; C_CC_FMT-NEXT:    ld $7, 8($1)
100 ; C_CC_FMT-NEXT:    ld $25, %call16(__subtf3)($gp)
101 ; C_CC_FMT-NEXT:    .reloc .Ltmp1, R_MIPS_JALR, __subtf3
102 ; C_CC_FMT-NEXT:  .Ltmp1:
103 ; C_CC_FMT-NEXT:    jalr $25
104 ; C_CC_FMT-NEXT:    nop
105 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
106 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
107 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
108 ; C_CC_FMT-NEXT:    jr $ra
109 ; C_CC_FMT-NEXT:    nop
111 ; CMP_CC_FMT-LABEL: subLD:
112 ; CMP_CC_FMT:       # %bb.0: # %entry
113 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
114 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
115 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
116 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
117 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
118 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
119 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(subLD)))
120 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
121 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(subLD)))
122 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
123 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
124 ; CMP_CC_FMT-NEXT:    ld $5, 8($1)
125 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld1)($gp)
126 ; CMP_CC_FMT-NEXT:    ld $6, 0($1)
127 ; CMP_CC_FMT-NEXT:    ld $7, 8($1)
128 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__subtf3)($gp)
129 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp1, R_MIPS_JALR, __subtf3
130 ; CMP_CC_FMT-NEXT:  .Ltmp1:
131 ; CMP_CC_FMT-NEXT:    jalrc $25
132 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
133 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
134 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
135 ; CMP_CC_FMT-NEXT:    jrc $ra
136 entry:
137   %0 = load fp128, ptr @gld0, align 16
138   %1 = load fp128, ptr @gld1, align 16
139   %sub = fsub fp128 %0, %1
140   ret fp128 %sub
143 define fp128 @mulLD() {
144 ; C_CC_FMT-LABEL: mulLD:
145 ; C_CC_FMT:       # %bb.0: # %entry
146 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
147 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
148 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
149 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
150 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
151 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
152 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(mulLD)))
153 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
154 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(mulLD)))
155 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
156 ; C_CC_FMT-NEXT:    ld $4, 0($1)
157 ; C_CC_FMT-NEXT:    ld $5, 8($1)
158 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld1)($gp)
159 ; C_CC_FMT-NEXT:    ld $6, 0($1)
160 ; C_CC_FMT-NEXT:    ld $7, 8($1)
161 ; C_CC_FMT-NEXT:    ld $25, %call16(__multf3)($gp)
162 ; C_CC_FMT-NEXT:    .reloc .Ltmp2, R_MIPS_JALR, __multf3
163 ; C_CC_FMT-NEXT:  .Ltmp2:
164 ; C_CC_FMT-NEXT:    jalr $25
165 ; C_CC_FMT-NEXT:    nop
166 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
167 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
168 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
169 ; C_CC_FMT-NEXT:    jr $ra
170 ; C_CC_FMT-NEXT:    nop
172 ; CMP_CC_FMT-LABEL: mulLD:
173 ; CMP_CC_FMT:       # %bb.0: # %entry
174 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
175 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
176 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
177 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
178 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
179 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
180 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(mulLD)))
181 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
182 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(mulLD)))
183 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
184 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
185 ; CMP_CC_FMT-NEXT:    ld $5, 8($1)
186 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld1)($gp)
187 ; CMP_CC_FMT-NEXT:    ld $6, 0($1)
188 ; CMP_CC_FMT-NEXT:    ld $7, 8($1)
189 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__multf3)($gp)
190 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp2, R_MIPS_JALR, __multf3
191 ; CMP_CC_FMT-NEXT:  .Ltmp2:
192 ; CMP_CC_FMT-NEXT:    jalrc $25
193 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
194 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
195 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
196 ; CMP_CC_FMT-NEXT:    jrc $ra
197 entry:
198   %0 = load fp128, ptr @gld0, align 16
199   %1 = load fp128, ptr @gld1, align 16
200   %mul = fmul fp128 %0, %1
201   ret fp128 %mul
204 define fp128 @divLD() {
205 ; C_CC_FMT-LABEL: divLD:
206 ; C_CC_FMT:       # %bb.0: # %entry
207 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
208 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
209 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
210 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
211 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
212 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
213 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(divLD)))
214 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
215 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(divLD)))
216 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
217 ; C_CC_FMT-NEXT:    ld $4, 0($1)
218 ; C_CC_FMT-NEXT:    ld $5, 8($1)
219 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld1)($gp)
220 ; C_CC_FMT-NEXT:    ld $6, 0($1)
221 ; C_CC_FMT-NEXT:    ld $7, 8($1)
222 ; C_CC_FMT-NEXT:    ld $25, %call16(__divtf3)($gp)
223 ; C_CC_FMT-NEXT:    .reloc .Ltmp3, R_MIPS_JALR, __divtf3
224 ; C_CC_FMT-NEXT:  .Ltmp3:
225 ; C_CC_FMT-NEXT:    jalr $25
226 ; C_CC_FMT-NEXT:    nop
227 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
228 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
229 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
230 ; C_CC_FMT-NEXT:    jr $ra
231 ; C_CC_FMT-NEXT:    nop
233 ; CMP_CC_FMT-LABEL: divLD:
234 ; CMP_CC_FMT:       # %bb.0: # %entry
235 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
236 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
237 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
238 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
239 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
240 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
241 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(divLD)))
242 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
243 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(divLD)))
244 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
245 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
246 ; CMP_CC_FMT-NEXT:    ld $5, 8($1)
247 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld1)($gp)
248 ; CMP_CC_FMT-NEXT:    ld $6, 0($1)
249 ; CMP_CC_FMT-NEXT:    ld $7, 8($1)
250 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__divtf3)($gp)
251 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp3, R_MIPS_JALR, __divtf3
252 ; CMP_CC_FMT-NEXT:  .Ltmp3:
253 ; CMP_CC_FMT-NEXT:    jalrc $25
254 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
255 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
256 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
257 ; CMP_CC_FMT-NEXT:    jrc $ra
258 entry:
259   %0 = load fp128, ptr @gld0, align 16
260   %1 = load fp128, ptr @gld1, align 16
261   %div = fdiv fp128 %0, %1
262   ret fp128 %div
265 define fp128 @conv_LD_char(i8 signext %a) {
266 ; C_CC_FMT-LABEL: conv_LD_char:
267 ; C_CC_FMT:       # %bb.0: # %entry
268 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
269 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
270 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
271 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
272 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
273 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
274 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LD_char)))
275 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
276 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_char)))
277 ; C_CC_FMT-NEXT:    ld $25, %call16(__floatsitf)($gp)
278 ; C_CC_FMT-NEXT:    .reloc .Ltmp4, R_MIPS_JALR, __floatsitf
279 ; C_CC_FMT-NEXT:  .Ltmp4:
280 ; C_CC_FMT-NEXT:    jalr $25
281 ; C_CC_FMT-NEXT:    nop
282 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
283 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
284 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
285 ; C_CC_FMT-NEXT:    jr $ra
286 ; C_CC_FMT-NEXT:    nop
288 ; CMP_CC_FMT-LABEL: conv_LD_char:
289 ; CMP_CC_FMT:       # %bb.0: # %entry
290 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
291 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
292 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
293 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
294 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
295 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
296 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LD_char)))
297 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
298 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_char)))
299 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__floatsitf)($gp)
300 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp4, R_MIPS_JALR, __floatsitf
301 ; CMP_CC_FMT-NEXT:  .Ltmp4:
302 ; CMP_CC_FMT-NEXT:    jalrc $25
303 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
304 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
305 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
306 ; CMP_CC_FMT-NEXT:    jrc $ra
307 entry:
308   %conv = sitofp i8 %a to fp128
309   ret fp128 %conv
312 define fp128 @conv_LD_short(i16 signext %a) {
313 ; C_CC_FMT-LABEL: conv_LD_short:
314 ; C_CC_FMT:       # %bb.0: # %entry
315 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
316 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
317 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
318 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
319 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
320 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
321 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LD_short)))
322 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
323 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_short)))
324 ; C_CC_FMT-NEXT:    ld $25, %call16(__floatsitf)($gp)
325 ; C_CC_FMT-NEXT:    .reloc .Ltmp5, R_MIPS_JALR, __floatsitf
326 ; C_CC_FMT-NEXT:  .Ltmp5:
327 ; C_CC_FMT-NEXT:    jalr $25
328 ; C_CC_FMT-NEXT:    nop
329 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
330 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
331 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
332 ; C_CC_FMT-NEXT:    jr $ra
333 ; C_CC_FMT-NEXT:    nop
335 ; CMP_CC_FMT-LABEL: conv_LD_short:
336 ; CMP_CC_FMT:       # %bb.0: # %entry
337 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
338 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
339 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
340 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
341 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
342 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
343 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LD_short)))
344 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
345 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_short)))
346 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__floatsitf)($gp)
347 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp5, R_MIPS_JALR, __floatsitf
348 ; CMP_CC_FMT-NEXT:  .Ltmp5:
349 ; CMP_CC_FMT-NEXT:    jalrc $25
350 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
351 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
352 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
353 ; CMP_CC_FMT-NEXT:    jrc $ra
354 entry:
355   %conv = sitofp i16 %a to fp128
356   ret fp128 %conv
359 define fp128 @conv_LD_int(i32 %a) {
360 ; C_CC_FMT-LABEL: conv_LD_int:
361 ; C_CC_FMT:       # %bb.0: # %entry
362 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
363 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
364 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
365 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
366 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
367 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
368 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LD_int)))
369 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
370 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_int)))
371 ; C_CC_FMT-NEXT:    sll $4, $4, 0
372 ; C_CC_FMT-NEXT:    ld $25, %call16(__floatsitf)($gp)
373 ; C_CC_FMT-NEXT:    .reloc .Ltmp6, R_MIPS_JALR, __floatsitf
374 ; C_CC_FMT-NEXT:  .Ltmp6:
375 ; C_CC_FMT-NEXT:    jalr $25
376 ; C_CC_FMT-NEXT:    nop
377 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
378 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
379 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
380 ; C_CC_FMT-NEXT:    jr $ra
381 ; C_CC_FMT-NEXT:    nop
383 ; CMP_CC_FMT-LABEL: conv_LD_int:
384 ; CMP_CC_FMT:       # %bb.0: # %entry
385 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
386 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
387 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
388 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
389 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
390 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
391 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LD_int)))
392 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
393 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_int)))
394 ; CMP_CC_FMT-NEXT:    sll $4, $4, 0
395 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__floatsitf)($gp)
396 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp6, R_MIPS_JALR, __floatsitf
397 ; CMP_CC_FMT-NEXT:  .Ltmp6:
398 ; CMP_CC_FMT-NEXT:    jalrc $25
399 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
400 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
401 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
402 ; CMP_CC_FMT-NEXT:    jrc $ra
403 entry:
404   %conv = sitofp i32 %a to fp128
405   ret fp128 %conv
408 define fp128 @conv_LD_LL(i64 %a) {
409 ; C_CC_FMT-LABEL: conv_LD_LL:
410 ; C_CC_FMT:       # %bb.0: # %entry
411 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
412 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
413 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
414 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
415 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
416 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
417 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LD_LL)))
418 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
419 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_LL)))
420 ; C_CC_FMT-NEXT:    ld $25, %call16(__floatditf)($gp)
421 ; C_CC_FMT-NEXT:    .reloc .Ltmp7, R_MIPS_JALR, __floatditf
422 ; C_CC_FMT-NEXT:  .Ltmp7:
423 ; C_CC_FMT-NEXT:    jalr $25
424 ; C_CC_FMT-NEXT:    nop
425 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
426 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
427 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
428 ; C_CC_FMT-NEXT:    jr $ra
429 ; C_CC_FMT-NEXT:    nop
431 ; CMP_CC_FMT-LABEL: conv_LD_LL:
432 ; CMP_CC_FMT:       # %bb.0: # %entry
433 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
434 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
435 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
436 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
437 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
438 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
439 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LD_LL)))
440 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
441 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_LL)))
442 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__floatditf)($gp)
443 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp7, R_MIPS_JALR, __floatditf
444 ; CMP_CC_FMT-NEXT:  .Ltmp7:
445 ; CMP_CC_FMT-NEXT:    jalrc $25
446 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
447 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
448 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
449 ; CMP_CC_FMT-NEXT:    jrc $ra
450 entry:
451   %conv = sitofp i64 %a to fp128
452   ret fp128 %conv
455 define fp128 @conv_LD_UChar(i8 zeroext %a) {
456 ; C_CC_FMT-LABEL: conv_LD_UChar:
457 ; C_CC_FMT:       # %bb.0: # %entry
458 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
459 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
460 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
461 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
462 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
463 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
464 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LD_UChar)))
465 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
466 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_UChar)))
467 ; C_CC_FMT-NEXT:    ld $25, %call16(__floatunsitf)($gp)
468 ; C_CC_FMT-NEXT:    .reloc .Ltmp8, R_MIPS_JALR, __floatunsitf
469 ; C_CC_FMT-NEXT:  .Ltmp8:
470 ; C_CC_FMT-NEXT:    jalr $25
471 ; C_CC_FMT-NEXT:    nop
472 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
473 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
474 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
475 ; C_CC_FMT-NEXT:    jr $ra
476 ; C_CC_FMT-NEXT:    nop
478 ; CMP_CC_FMT-LABEL: conv_LD_UChar:
479 ; CMP_CC_FMT:       # %bb.0: # %entry
480 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
481 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
482 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
483 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
484 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
485 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
486 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LD_UChar)))
487 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
488 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_UChar)))
489 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__floatunsitf)($gp)
490 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp8, R_MIPS_JALR, __floatunsitf
491 ; CMP_CC_FMT-NEXT:  .Ltmp8:
492 ; CMP_CC_FMT-NEXT:    jalrc $25
493 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
494 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
495 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
496 ; CMP_CC_FMT-NEXT:    jrc $ra
497 entry:
498   %conv = uitofp i8 %a to fp128
499   ret fp128 %conv
502 define fp128 @conv_LD_UShort(i16 zeroext %a) {
503 ; C_CC_FMT-LABEL: conv_LD_UShort:
504 ; C_CC_FMT:       # %bb.0: # %entry
505 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
506 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
507 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
508 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
509 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
510 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
511 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LD_UShort)))
512 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
513 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_UShort)))
514 ; C_CC_FMT-NEXT:    ld $25, %call16(__floatunsitf)($gp)
515 ; C_CC_FMT-NEXT:    .reloc .Ltmp9, R_MIPS_JALR, __floatunsitf
516 ; C_CC_FMT-NEXT:  .Ltmp9:
517 ; C_CC_FMT-NEXT:    jalr $25
518 ; C_CC_FMT-NEXT:    nop
519 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
520 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
521 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
522 ; C_CC_FMT-NEXT:    jr $ra
523 ; C_CC_FMT-NEXT:    nop
525 ; CMP_CC_FMT-LABEL: conv_LD_UShort:
526 ; CMP_CC_FMT:       # %bb.0: # %entry
527 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
528 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
529 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
530 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
531 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
532 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
533 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LD_UShort)))
534 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
535 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_UShort)))
536 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__floatunsitf)($gp)
537 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp9, R_MIPS_JALR, __floatunsitf
538 ; CMP_CC_FMT-NEXT:  .Ltmp9:
539 ; CMP_CC_FMT-NEXT:    jalrc $25
540 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
541 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
542 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
543 ; CMP_CC_FMT-NEXT:    jrc $ra
544 entry:
545   %conv = uitofp i16 %a to fp128
546   ret fp128 %conv
549 define fp128 @conv_LD_UInt(i32 signext %a) {
550 ; C_CC_FMT-LABEL: conv_LD_UInt:
551 ; C_CC_FMT:       # %bb.0: # %entry
552 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
553 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
554 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
555 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
556 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
557 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
558 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LD_UInt)))
559 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
560 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_UInt)))
561 ; C_CC_FMT-NEXT:    ld $25, %call16(__floatunsitf)($gp)
562 ; C_CC_FMT-NEXT:    .reloc .Ltmp10, R_MIPS_JALR, __floatunsitf
563 ; C_CC_FMT-NEXT:  .Ltmp10:
564 ; C_CC_FMT-NEXT:    jalr $25
565 ; C_CC_FMT-NEXT:    nop
566 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
567 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
568 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
569 ; C_CC_FMT-NEXT:    jr $ra
570 ; C_CC_FMT-NEXT:    nop
572 ; CMP_CC_FMT-LABEL: conv_LD_UInt:
573 ; CMP_CC_FMT:       # %bb.0: # %entry
574 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
575 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
576 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
577 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
578 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
579 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
580 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LD_UInt)))
581 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
582 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_UInt)))
583 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__floatunsitf)($gp)
584 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp10, R_MIPS_JALR, __floatunsitf
585 ; CMP_CC_FMT-NEXT:  .Ltmp10:
586 ; CMP_CC_FMT-NEXT:    jalrc $25
587 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
588 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
589 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
590 ; CMP_CC_FMT-NEXT:    jrc $ra
591 entry:
592   %conv = uitofp i32 %a to fp128
593   ret fp128 %conv
596 define fp128 @conv_LD_ULL(i64 %a) {
597 ; C_CC_FMT-LABEL: conv_LD_ULL:
598 ; C_CC_FMT:       # %bb.0: # %entry
599 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
600 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
601 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
602 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
603 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
604 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
605 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LD_ULL)))
606 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
607 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_ULL)))
608 ; C_CC_FMT-NEXT:    ld $25, %call16(__floatunditf)($gp)
609 ; C_CC_FMT-NEXT:    .reloc .Ltmp11, R_MIPS_JALR, __floatunditf
610 ; C_CC_FMT-NEXT:  .Ltmp11:
611 ; C_CC_FMT-NEXT:    jalr $25
612 ; C_CC_FMT-NEXT:    nop
613 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
614 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
615 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
616 ; C_CC_FMT-NEXT:    jr $ra
617 ; C_CC_FMT-NEXT:    nop
619 ; CMP_CC_FMT-LABEL: conv_LD_ULL:
620 ; CMP_CC_FMT:       # %bb.0: # %entry
621 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
622 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
623 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
624 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
625 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
626 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
627 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LD_ULL)))
628 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
629 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_ULL)))
630 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__floatunditf)($gp)
631 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp11, R_MIPS_JALR, __floatunditf
632 ; CMP_CC_FMT-NEXT:  .Ltmp11:
633 ; CMP_CC_FMT-NEXT:    jalrc $25
634 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
635 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
636 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
637 ; CMP_CC_FMT-NEXT:    jrc $ra
638 entry:
639   %conv = uitofp i64 %a to fp128
640   ret fp128 %conv
643 define signext i8 @conv_char_LD(fp128 %a) {
644 ; C_CC_FMT-LABEL: conv_char_LD:
645 ; C_CC_FMT:       # %bb.0: # %entry
646 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
647 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
648 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
649 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
650 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
651 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
652 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_char_LD)))
653 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
654 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_char_LD)))
655 ; C_CC_FMT-NEXT:    ld $25, %call16(__fixtfsi)($gp)
656 ; C_CC_FMT-NEXT:    .reloc .Ltmp12, R_MIPS_JALR, __fixtfsi
657 ; C_CC_FMT-NEXT:  .Ltmp12:
658 ; C_CC_FMT-NEXT:    jalr $25
659 ; C_CC_FMT-NEXT:    nop
660 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
661 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
662 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
663 ; C_CC_FMT-NEXT:    jr $ra
664 ; C_CC_FMT-NEXT:    nop
666 ; CMP_CC_FMT-LABEL: conv_char_LD:
667 ; CMP_CC_FMT:       # %bb.0: # %entry
668 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
669 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
670 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
671 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
672 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
673 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
674 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_char_LD)))
675 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
676 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_char_LD)))
677 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__fixtfsi)($gp)
678 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp12, R_MIPS_JALR, __fixtfsi
679 ; CMP_CC_FMT-NEXT:  .Ltmp12:
680 ; CMP_CC_FMT-NEXT:    jalrc $25
681 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
682 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
683 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
684 ; CMP_CC_FMT-NEXT:    jrc $ra
685 entry:
686   %conv = fptosi fp128 %a to i8
687   ret i8 %conv
690 define signext i16 @conv_short_LD(fp128 %a) {
691 ; C_CC_FMT-LABEL: conv_short_LD:
692 ; C_CC_FMT:       # %bb.0: # %entry
693 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
694 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
695 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
696 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
697 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
698 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
699 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_short_LD)))
700 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
701 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_short_LD)))
702 ; C_CC_FMT-NEXT:    ld $25, %call16(__fixtfsi)($gp)
703 ; C_CC_FMT-NEXT:    .reloc .Ltmp13, R_MIPS_JALR, __fixtfsi
704 ; C_CC_FMT-NEXT:  .Ltmp13:
705 ; C_CC_FMT-NEXT:    jalr $25
706 ; C_CC_FMT-NEXT:    nop
707 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
708 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
709 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
710 ; C_CC_FMT-NEXT:    jr $ra
711 ; C_CC_FMT-NEXT:    nop
713 ; CMP_CC_FMT-LABEL: conv_short_LD:
714 ; CMP_CC_FMT:       # %bb.0: # %entry
715 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
716 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
717 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
718 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
719 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
720 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
721 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_short_LD)))
722 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
723 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_short_LD)))
724 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__fixtfsi)($gp)
725 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp13, R_MIPS_JALR, __fixtfsi
726 ; CMP_CC_FMT-NEXT:  .Ltmp13:
727 ; CMP_CC_FMT-NEXT:    jalrc $25
728 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
729 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
730 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
731 ; CMP_CC_FMT-NEXT:    jrc $ra
732 entry:
733   %conv = fptosi fp128 %a to i16
734   ret i16 %conv
737 define i32 @conv_int_LD(fp128 %a) {
738 ; C_CC_FMT-LABEL: conv_int_LD:
739 ; C_CC_FMT:       # %bb.0: # %entry
740 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
741 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
742 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
743 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
744 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
745 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
746 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_int_LD)))
747 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
748 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_int_LD)))
749 ; C_CC_FMT-NEXT:    ld $25, %call16(__fixtfsi)($gp)
750 ; C_CC_FMT-NEXT:    .reloc .Ltmp14, R_MIPS_JALR, __fixtfsi
751 ; C_CC_FMT-NEXT:  .Ltmp14:
752 ; C_CC_FMT-NEXT:    jalr $25
753 ; C_CC_FMT-NEXT:    nop
754 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
755 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
756 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
757 ; C_CC_FMT-NEXT:    jr $ra
758 ; C_CC_FMT-NEXT:    nop
760 ; CMP_CC_FMT-LABEL: conv_int_LD:
761 ; CMP_CC_FMT:       # %bb.0: # %entry
762 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
763 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
764 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
765 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
766 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
767 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
768 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_int_LD)))
769 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
770 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_int_LD)))
771 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__fixtfsi)($gp)
772 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp14, R_MIPS_JALR, __fixtfsi
773 ; CMP_CC_FMT-NEXT:  .Ltmp14:
774 ; CMP_CC_FMT-NEXT:    jalrc $25
775 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
776 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
777 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
778 ; CMP_CC_FMT-NEXT:    jrc $ra
779 entry:
780   %conv = fptosi fp128 %a to i32
781   ret i32 %conv
784 define i64 @conv_LL_LD(fp128 %a) {
785 ; C_CC_FMT-LABEL: conv_LL_LD:
786 ; C_CC_FMT:       # %bb.0: # %entry
787 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
788 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
789 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
790 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
791 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
792 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
793 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LL_LD)))
794 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
795 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LL_LD)))
796 ; C_CC_FMT-NEXT:    ld $25, %call16(__fixtfdi)($gp)
797 ; C_CC_FMT-NEXT:    .reloc .Ltmp15, R_MIPS_JALR, __fixtfdi
798 ; C_CC_FMT-NEXT:  .Ltmp15:
799 ; C_CC_FMT-NEXT:    jalr $25
800 ; C_CC_FMT-NEXT:    nop
801 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
802 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
803 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
804 ; C_CC_FMT-NEXT:    jr $ra
805 ; C_CC_FMT-NEXT:    nop
807 ; CMP_CC_FMT-LABEL: conv_LL_LD:
808 ; CMP_CC_FMT:       # %bb.0: # %entry
809 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
810 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
811 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
812 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
813 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
814 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
815 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LL_LD)))
816 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
817 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LL_LD)))
818 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__fixtfdi)($gp)
819 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp15, R_MIPS_JALR, __fixtfdi
820 ; CMP_CC_FMT-NEXT:  .Ltmp15:
821 ; CMP_CC_FMT-NEXT:    jalrc $25
822 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
823 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
824 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
825 ; CMP_CC_FMT-NEXT:    jrc $ra
826 entry:
827   %conv = fptosi fp128 %a to i64
828   ret i64 %conv
831 define zeroext i8 @conv_UChar_LD(fp128 %a) {
832 ; C_CC_FMT-LABEL: conv_UChar_LD:
833 ; C_CC_FMT:       # %bb.0: # %entry
834 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
835 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
836 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
837 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
838 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
839 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
840 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_UChar_LD)))
841 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
842 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_UChar_LD)))
843 ; C_CC_FMT-NEXT:    ld $25, %call16(__fixtfsi)($gp)
844 ; C_CC_FMT-NEXT:    .reloc .Ltmp16, R_MIPS_JALR, __fixtfsi
845 ; C_CC_FMT-NEXT:  .Ltmp16:
846 ; C_CC_FMT-NEXT:    jalr $25
847 ; C_CC_FMT-NEXT:    nop
848 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
849 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
850 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
851 ; C_CC_FMT-NEXT:    jr $ra
852 ; C_CC_FMT-NEXT:    nop
854 ; CMP_CC_FMT-LABEL: conv_UChar_LD:
855 ; CMP_CC_FMT:       # %bb.0: # %entry
856 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
857 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
858 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
859 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
860 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
861 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
862 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_UChar_LD)))
863 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
864 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_UChar_LD)))
865 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__fixtfsi)($gp)
866 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp16, R_MIPS_JALR, __fixtfsi
867 ; CMP_CC_FMT-NEXT:  .Ltmp16:
868 ; CMP_CC_FMT-NEXT:    jalrc $25
869 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
870 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
871 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
872 ; CMP_CC_FMT-NEXT:    jrc $ra
873 entry:
874   %conv = fptoui fp128 %a to i8
875   ret i8 %conv
878 define zeroext i16 @conv_UShort_LD(fp128 %a) {
879 ; C_CC_FMT-LABEL: conv_UShort_LD:
880 ; C_CC_FMT:       # %bb.0: # %entry
881 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
882 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
883 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
884 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
885 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
886 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
887 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_UShort_LD)))
888 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
889 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_UShort_LD)))
890 ; C_CC_FMT-NEXT:    ld $25, %call16(__fixtfsi)($gp)
891 ; C_CC_FMT-NEXT:    .reloc .Ltmp17, R_MIPS_JALR, __fixtfsi
892 ; C_CC_FMT-NEXT:  .Ltmp17:
893 ; C_CC_FMT-NEXT:    jalr $25
894 ; C_CC_FMT-NEXT:    nop
895 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
896 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
897 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
898 ; C_CC_FMT-NEXT:    jr $ra
899 ; C_CC_FMT-NEXT:    nop
901 ; CMP_CC_FMT-LABEL: conv_UShort_LD:
902 ; CMP_CC_FMT:       # %bb.0: # %entry
903 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
904 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
905 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
906 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
907 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
908 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
909 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_UShort_LD)))
910 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
911 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_UShort_LD)))
912 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__fixtfsi)($gp)
913 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp17, R_MIPS_JALR, __fixtfsi
914 ; CMP_CC_FMT-NEXT:  .Ltmp17:
915 ; CMP_CC_FMT-NEXT:    jalrc $25
916 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
917 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
918 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
919 ; CMP_CC_FMT-NEXT:    jrc $ra
920 entry:
921   %conv = fptoui fp128 %a to i16
922   ret i16 %conv
925 define i32 @conv_UInt_LD(fp128 %a) {
926 ; C_CC_FMT-LABEL: conv_UInt_LD:
927 ; C_CC_FMT:       # %bb.0: # %entry
928 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
929 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
930 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
931 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
932 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
933 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
934 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_UInt_LD)))
935 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
936 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_UInt_LD)))
937 ; C_CC_FMT-NEXT:    ld $25, %call16(__fixunstfsi)($gp)
938 ; C_CC_FMT-NEXT:    .reloc .Ltmp18, R_MIPS_JALR, __fixunstfsi
939 ; C_CC_FMT-NEXT:  .Ltmp18:
940 ; C_CC_FMT-NEXT:    jalr $25
941 ; C_CC_FMT-NEXT:    nop
942 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
943 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
944 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
945 ; C_CC_FMT-NEXT:    jr $ra
946 ; C_CC_FMT-NEXT:    nop
948 ; CMP_CC_FMT-LABEL: conv_UInt_LD:
949 ; CMP_CC_FMT:       # %bb.0: # %entry
950 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
951 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
952 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
953 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
954 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
955 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
956 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_UInt_LD)))
957 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
958 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_UInt_LD)))
959 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__fixunstfsi)($gp)
960 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp18, R_MIPS_JALR, __fixunstfsi
961 ; CMP_CC_FMT-NEXT:  .Ltmp18:
962 ; CMP_CC_FMT-NEXT:    jalrc $25
963 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
964 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
965 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
966 ; CMP_CC_FMT-NEXT:    jrc $ra
967 entry:
968   %conv = fptoui fp128 %a to i32
969   ret i32 %conv
972 define i64 @conv_ULL_LD(fp128 %a) {
973 ; C_CC_FMT-LABEL: conv_ULL_LD:
974 ; C_CC_FMT:       # %bb.0: # %entry
975 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
976 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
977 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
978 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
979 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
980 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
981 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_ULL_LD)))
982 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
983 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_ULL_LD)))
984 ; C_CC_FMT-NEXT:    ld $25, %call16(__fixunstfdi)($gp)
985 ; C_CC_FMT-NEXT:    .reloc .Ltmp19, R_MIPS_JALR, __fixunstfdi
986 ; C_CC_FMT-NEXT:  .Ltmp19:
987 ; C_CC_FMT-NEXT:    jalr $25
988 ; C_CC_FMT-NEXT:    nop
989 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
990 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
991 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
992 ; C_CC_FMT-NEXT:    jr $ra
993 ; C_CC_FMT-NEXT:    nop
995 ; CMP_CC_FMT-LABEL: conv_ULL_LD:
996 ; CMP_CC_FMT:       # %bb.0: # %entry
997 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
998 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
999 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1000 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1001 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
1002 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
1003 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_ULL_LD)))
1004 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
1005 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_ULL_LD)))
1006 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__fixunstfdi)($gp)
1007 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp19, R_MIPS_JALR, __fixunstfdi
1008 ; CMP_CC_FMT-NEXT:  .Ltmp19:
1009 ; CMP_CC_FMT-NEXT:    jalrc $25
1010 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1011 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1012 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1013 ; CMP_CC_FMT-NEXT:    jrc $ra
1014 entry:
1015   %conv = fptoui fp128 %a to i64
1016   ret i64 %conv
1019 define fp128 @conv_LD_float(float %a) {
1020 ; C_CC_FMT-LABEL: conv_LD_float:
1021 ; C_CC_FMT:       # %bb.0: # %entry
1022 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1023 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1024 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1025 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1026 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
1027 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
1028 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LD_float)))
1029 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
1030 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_float)))
1031 ; C_CC_FMT-NEXT:    ld $25, %call16(__extendsftf2)($gp)
1032 ; C_CC_FMT-NEXT:    .reloc .Ltmp20, R_MIPS_JALR, __extendsftf2
1033 ; C_CC_FMT-NEXT:  .Ltmp20:
1034 ; C_CC_FMT-NEXT:    jalr $25
1035 ; C_CC_FMT-NEXT:    nop
1036 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1037 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1038 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1039 ; C_CC_FMT-NEXT:    jr $ra
1040 ; C_CC_FMT-NEXT:    nop
1042 ; CMP_CC_FMT-LABEL: conv_LD_float:
1043 ; CMP_CC_FMT:       # %bb.0: # %entry
1044 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1045 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1046 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1047 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1048 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
1049 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
1050 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LD_float)))
1051 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
1052 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_float)))
1053 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__extendsftf2)($gp)
1054 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp20, R_MIPS_JALR, __extendsftf2
1055 ; CMP_CC_FMT-NEXT:  .Ltmp20:
1056 ; CMP_CC_FMT-NEXT:    jalrc $25
1057 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1058 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1059 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1060 ; CMP_CC_FMT-NEXT:    jrc $ra
1061 entry:
1062   %conv = fpext float %a to fp128
1063   ret fp128 %conv
1066 define fp128 @conv_LD_double(double %a) {
1067 ; C_CC_FMT-LABEL: conv_LD_double:
1068 ; C_CC_FMT:       # %bb.0: # %entry
1069 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1070 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1071 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1072 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1073 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
1074 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
1075 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LD_double)))
1076 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
1077 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_double)))
1078 ; C_CC_FMT-NEXT:    ld $25, %call16(__extenddftf2)($gp)
1079 ; C_CC_FMT-NEXT:    .reloc .Ltmp21, R_MIPS_JALR, __extenddftf2
1080 ; C_CC_FMT-NEXT:  .Ltmp21:
1081 ; C_CC_FMT-NEXT:    jalr $25
1082 ; C_CC_FMT-NEXT:    nop
1083 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1084 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1085 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1086 ; C_CC_FMT-NEXT:    jr $ra
1087 ; C_CC_FMT-NEXT:    nop
1089 ; CMP_CC_FMT-LABEL: conv_LD_double:
1090 ; CMP_CC_FMT:       # %bb.0: # %entry
1091 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1092 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1093 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1094 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1095 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
1096 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
1097 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_LD_double)))
1098 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
1099 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_LD_double)))
1100 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__extenddftf2)($gp)
1101 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp21, R_MIPS_JALR, __extenddftf2
1102 ; CMP_CC_FMT-NEXT:  .Ltmp21:
1103 ; CMP_CC_FMT-NEXT:    jalrc $25
1104 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1105 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1106 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1107 ; CMP_CC_FMT-NEXT:    jrc $ra
1108 entry:
1109   %conv = fpext double %a to fp128
1110   ret fp128 %conv
1113 define float @conv_float_LD(fp128 %a) {
1114 ; C_CC_FMT-LABEL: conv_float_LD:
1115 ; C_CC_FMT:       # %bb.0: # %entry
1116 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1117 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1118 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1119 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1120 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
1121 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
1122 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_float_LD)))
1123 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
1124 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_float_LD)))
1125 ; C_CC_FMT-NEXT:    ld $25, %call16(__trunctfsf2)($gp)
1126 ; C_CC_FMT-NEXT:    .reloc .Ltmp22, R_MIPS_JALR, __trunctfsf2
1127 ; C_CC_FMT-NEXT:  .Ltmp22:
1128 ; C_CC_FMT-NEXT:    jalr $25
1129 ; C_CC_FMT-NEXT:    nop
1130 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1131 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1132 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1133 ; C_CC_FMT-NEXT:    jr $ra
1134 ; C_CC_FMT-NEXT:    nop
1136 ; CMP_CC_FMT-LABEL: conv_float_LD:
1137 ; CMP_CC_FMT:       # %bb.0: # %entry
1138 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1139 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1140 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1141 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1142 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
1143 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
1144 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_float_LD)))
1145 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
1146 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_float_LD)))
1147 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__trunctfsf2)($gp)
1148 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp22, R_MIPS_JALR, __trunctfsf2
1149 ; CMP_CC_FMT-NEXT:  .Ltmp22:
1150 ; CMP_CC_FMT-NEXT:    jalrc $25
1151 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1152 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1153 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1154 ; CMP_CC_FMT-NEXT:    jrc $ra
1155 entry:
1156   %conv = fptrunc fp128 %a to float
1157   ret float %conv
1160 define double @conv_double_LD(fp128 %a) {
1161 ; C_CC_FMT-LABEL: conv_double_LD:
1162 ; C_CC_FMT:       # %bb.0: # %entry
1163 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1164 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1165 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1166 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1167 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
1168 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
1169 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_double_LD)))
1170 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
1171 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_double_LD)))
1172 ; C_CC_FMT-NEXT:    ld $25, %call16(__trunctfdf2)($gp)
1173 ; C_CC_FMT-NEXT:    .reloc .Ltmp23, R_MIPS_JALR, __trunctfdf2
1174 ; C_CC_FMT-NEXT:  .Ltmp23:
1175 ; C_CC_FMT-NEXT:    jalr $25
1176 ; C_CC_FMT-NEXT:    nop
1177 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1178 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1179 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1180 ; C_CC_FMT-NEXT:    jr $ra
1181 ; C_CC_FMT-NEXT:    nop
1183 ; CMP_CC_FMT-LABEL: conv_double_LD:
1184 ; CMP_CC_FMT:       # %bb.0: # %entry
1185 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1186 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1187 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1188 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1189 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
1190 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
1191 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(conv_double_LD)))
1192 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
1193 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(conv_double_LD)))
1194 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__trunctfdf2)($gp)
1195 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp23, R_MIPS_JALR, __trunctfdf2
1196 ; CMP_CC_FMT-NEXT:  .Ltmp23:
1197 ; CMP_CC_FMT-NEXT:    jalrc $25
1198 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1199 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1200 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1201 ; CMP_CC_FMT-NEXT:    jrc $ra
1202 entry:
1203   %conv = fptrunc fp128 %a to double
1204   ret double %conv
1207 define fp128 @libcall1_fabsl() {
1208 ; NOT-R2R6-LABEL: libcall1_fabsl:
1209 ; NOT-R2R6:       # %bb.0: # %entry
1210 ; NOT-R2R6-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_fabsl)))
1211 ; NOT-R2R6-NEXT:    daddu $1, $1, $25
1212 ; NOT-R2R6-NEXT:    daddiu $1, $1, %lo(%neg(%gp_rel(libcall1_fabsl)))
1213 ; NOT-R2R6-NEXT:    ld $1, %got_disp(gld0)($1)
1214 ; NOT-R2R6-NEXT:    ld $2, 8($1)
1215 ; NOT-R2R6-NEXT:    daddiu $3, $zero, 1
1216 ; NOT-R2R6-NEXT:    dsll $3, $3, 63
1217 ; NOT-R2R6-NEXT:    daddiu $3, $3, -1
1218 ; NOT-R2R6-NEXT:    and $4, $2, $3
1219 ; NOT-R2R6-NEXT:    ld $2, 0($1)
1220 ; NOT-R2R6-NEXT:    jr $ra
1221 ; NOT-R2R6-NEXT:    nop
1223 ; CMP_CC_FMT-LABEL: libcall1_fabsl:
1224 ; CMP_CC_FMT:       # %bb.0: # %entry
1225 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_fabsl)))
1226 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
1227 ; CMP_CC_FMT-NEXT:    daddiu $1, $1, %lo(%neg(%gp_rel(libcall1_fabsl)))
1228 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($1)
1229 ; CMP_CC_FMT-NEXT:    ld $2, 0($1)
1230 ; CMP_CC_FMT-NEXT:    ld $1, 8($1)
1231 ; CMP_CC_FMT-NEXT:    dextm $4, $1, 0, 63
1232 ; CMP_CC_FMT-NEXT:    jrc $ra
1233 entry:
1234   %0 = load fp128, ptr @gld0, align 16
1235   %call = tail call fp128 @fabsl(fp128 %0) nounwind readnone
1236   ret fp128 %call
1239 declare fp128 @fabsl(fp128) #1
1241 define fp128 @libcall1_ceill() {
1242 ; C_CC_FMT-LABEL: libcall1_ceill:
1243 ; C_CC_FMT:       # %bb.0: # %entry
1244 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1245 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1246 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1247 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1248 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
1249 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
1250 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_ceill)))
1251 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
1252 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_ceill)))
1253 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1254 ; C_CC_FMT-NEXT:    ld $4, 0($1)
1255 ; C_CC_FMT-NEXT:    ld $5, 8($1)
1256 ; C_CC_FMT-NEXT:    ld $25, %call16(ceill)($gp)
1257 ; C_CC_FMT-NEXT:    .reloc .Ltmp24, R_MIPS_JALR, ceill
1258 ; C_CC_FMT-NEXT:  .Ltmp24:
1259 ; C_CC_FMT-NEXT:    jalr $25
1260 ; C_CC_FMT-NEXT:    nop
1261 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1262 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1263 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1264 ; C_CC_FMT-NEXT:    jr $ra
1265 ; C_CC_FMT-NEXT:    nop
1267 ; CMP_CC_FMT-LABEL: libcall1_ceill:
1268 ; CMP_CC_FMT:       # %bb.0: # %entry
1269 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1270 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1271 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1272 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1273 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
1274 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
1275 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_ceill)))
1276 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
1277 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_ceill)))
1278 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1279 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
1280 ; CMP_CC_FMT-NEXT:    ld $5, 8($1)
1281 ; CMP_CC_FMT-NEXT:    ld $25, %call16(ceill)($gp)
1282 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp24, R_MIPS_JALR, ceill
1283 ; CMP_CC_FMT-NEXT:  .Ltmp24:
1284 ; CMP_CC_FMT-NEXT:    jalrc $25
1285 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1286 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1287 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1288 ; CMP_CC_FMT-NEXT:    jrc $ra
1289 entry:
1290   %0 = load fp128, ptr @gld0, align 16
1291   %call = tail call fp128 @ceill(fp128 %0) nounwind readnone
1292   ret fp128 %call
1295 declare fp128 @ceill(fp128) #1
1297 define fp128 @libcall1_sinl() {
1298 ; C_CC_FMT-LABEL: libcall1_sinl:
1299 ; C_CC_FMT:       # %bb.0: # %entry
1300 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1301 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1302 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1303 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1304 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
1305 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
1306 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_sinl)))
1307 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
1308 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_sinl)))
1309 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1310 ; C_CC_FMT-NEXT:    ld $5, 8($1)
1311 ; C_CC_FMT-NEXT:    ld $4, 0($1)
1312 ; C_CC_FMT-NEXT:    ld $25, %call16(sinl)($gp)
1313 ; C_CC_FMT-NEXT:    .reloc .Ltmp25, R_MIPS_JALR, sinl
1314 ; C_CC_FMT-NEXT:  .Ltmp25:
1315 ; C_CC_FMT-NEXT:    jalr $25
1316 ; C_CC_FMT-NEXT:    nop
1317 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1318 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1319 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1320 ; C_CC_FMT-NEXT:    jr $ra
1321 ; C_CC_FMT-NEXT:    nop
1323 ; CMP_CC_FMT-LABEL: libcall1_sinl:
1324 ; CMP_CC_FMT:       # %bb.0: # %entry
1325 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1326 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1327 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1328 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1329 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
1330 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
1331 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_sinl)))
1332 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
1333 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_sinl)))
1334 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1335 ; CMP_CC_FMT-NEXT:    ld $5, 8($1)
1336 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
1337 ; CMP_CC_FMT-NEXT:    ld $25, %call16(sinl)($gp)
1338 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp25, R_MIPS_JALR, sinl
1339 ; CMP_CC_FMT-NEXT:  .Ltmp25:
1340 ; CMP_CC_FMT-NEXT:    jalrc $25
1341 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1342 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1343 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1344 ; CMP_CC_FMT-NEXT:    jrc $ra
1345 entry:
1346   %0 = load fp128, ptr @gld0, align 16
1347   %call = tail call fp128 @sinl(fp128 %0) nounwind
1348   ret fp128 %call
1351 declare fp128 @sinl(fp128) #2
1353 define fp128 @libcall1_cosl() {
1354 ; C_CC_FMT-LABEL: libcall1_cosl:
1355 ; C_CC_FMT:       # %bb.0: # %entry
1356 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1357 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1358 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1359 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1360 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
1361 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
1362 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_cosl)))
1363 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
1364 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_cosl)))
1365 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1366 ; C_CC_FMT-NEXT:    ld $5, 8($1)
1367 ; C_CC_FMT-NEXT:    ld $4, 0($1)
1368 ; C_CC_FMT-NEXT:    ld $25, %call16(cosl)($gp)
1369 ; C_CC_FMT-NEXT:    .reloc .Ltmp26, R_MIPS_JALR, cosl
1370 ; C_CC_FMT-NEXT:  .Ltmp26:
1371 ; C_CC_FMT-NEXT:    jalr $25
1372 ; C_CC_FMT-NEXT:    nop
1373 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1374 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1375 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1376 ; C_CC_FMT-NEXT:    jr $ra
1377 ; C_CC_FMT-NEXT:    nop
1379 ; CMP_CC_FMT-LABEL: libcall1_cosl:
1380 ; CMP_CC_FMT:       # %bb.0: # %entry
1381 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1382 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1383 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1384 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1385 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
1386 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
1387 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_cosl)))
1388 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
1389 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_cosl)))
1390 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1391 ; CMP_CC_FMT-NEXT:    ld $5, 8($1)
1392 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
1393 ; CMP_CC_FMT-NEXT:    ld $25, %call16(cosl)($gp)
1394 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp26, R_MIPS_JALR, cosl
1395 ; CMP_CC_FMT-NEXT:  .Ltmp26:
1396 ; CMP_CC_FMT-NEXT:    jalrc $25
1397 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1398 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1399 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1400 ; CMP_CC_FMT-NEXT:    jrc $ra
1401 entry:
1402   %0 = load fp128, ptr @gld0, align 16
1403   %call = tail call fp128 @cosl(fp128 %0) nounwind
1404   ret fp128 %call
1407 declare fp128 @cosl(fp128) #2
1409 define fp128 @libcall1_expl() {
1410 ; C_CC_FMT-LABEL: libcall1_expl:
1411 ; C_CC_FMT:       # %bb.0: # %entry
1412 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1413 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1414 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1415 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1416 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
1417 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
1418 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_expl)))
1419 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
1420 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_expl)))
1421 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1422 ; C_CC_FMT-NEXT:    ld $5, 8($1)
1423 ; C_CC_FMT-NEXT:    ld $4, 0($1)
1424 ; C_CC_FMT-NEXT:    ld $25, %call16(expl)($gp)
1425 ; C_CC_FMT-NEXT:    .reloc .Ltmp27, R_MIPS_JALR, expl
1426 ; C_CC_FMT-NEXT:  .Ltmp27:
1427 ; C_CC_FMT-NEXT:    jalr $25
1428 ; C_CC_FMT-NEXT:    nop
1429 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1430 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1431 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1432 ; C_CC_FMT-NEXT:    jr $ra
1433 ; C_CC_FMT-NEXT:    nop
1435 ; CMP_CC_FMT-LABEL: libcall1_expl:
1436 ; CMP_CC_FMT:       # %bb.0: # %entry
1437 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1438 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1439 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1440 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1441 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
1442 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
1443 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_expl)))
1444 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
1445 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_expl)))
1446 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1447 ; CMP_CC_FMT-NEXT:    ld $5, 8($1)
1448 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
1449 ; CMP_CC_FMT-NEXT:    ld $25, %call16(expl)($gp)
1450 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp27, R_MIPS_JALR, expl
1451 ; CMP_CC_FMT-NEXT:  .Ltmp27:
1452 ; CMP_CC_FMT-NEXT:    jalrc $25
1453 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1454 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1455 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1456 ; CMP_CC_FMT-NEXT:    jrc $ra
1457 entry:
1458   %0 = load fp128, ptr @gld0, align 16
1459   %call = tail call fp128 @expl(fp128 %0) nounwind
1460   ret fp128 %call
1463 declare fp128 @expl(fp128) #2
1465 define fp128 @libcall1_exp2l() {
1466 ; C_CC_FMT-LABEL: libcall1_exp2l:
1467 ; C_CC_FMT:       # %bb.0: # %entry
1468 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1469 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1470 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1471 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1472 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
1473 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
1474 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_exp2l)))
1475 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
1476 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_exp2l)))
1477 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1478 ; C_CC_FMT-NEXT:    ld $5, 8($1)
1479 ; C_CC_FMT-NEXT:    ld $4, 0($1)
1480 ; C_CC_FMT-NEXT:    ld $25, %call16(exp2l)($gp)
1481 ; C_CC_FMT-NEXT:    .reloc .Ltmp28, R_MIPS_JALR, exp2l
1482 ; C_CC_FMT-NEXT:  .Ltmp28:
1483 ; C_CC_FMT-NEXT:    jalr $25
1484 ; C_CC_FMT-NEXT:    nop
1485 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1486 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1487 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1488 ; C_CC_FMT-NEXT:    jr $ra
1489 ; C_CC_FMT-NEXT:    nop
1491 ; CMP_CC_FMT-LABEL: libcall1_exp2l:
1492 ; CMP_CC_FMT:       # %bb.0: # %entry
1493 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1494 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1495 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1496 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1497 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
1498 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
1499 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_exp2l)))
1500 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
1501 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_exp2l)))
1502 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1503 ; CMP_CC_FMT-NEXT:    ld $5, 8($1)
1504 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
1505 ; CMP_CC_FMT-NEXT:    ld $25, %call16(exp2l)($gp)
1506 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp28, R_MIPS_JALR, exp2l
1507 ; CMP_CC_FMT-NEXT:  .Ltmp28:
1508 ; CMP_CC_FMT-NEXT:    jalrc $25
1509 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1510 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1511 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1512 ; CMP_CC_FMT-NEXT:    jrc $ra
1513 entry:
1514   %0 = load fp128, ptr @gld0, align 16
1515   %call = tail call fp128 @exp2l(fp128 %0) nounwind
1516   ret fp128 %call
1519 declare fp128 @exp2l(fp128) #2
1521 define fp128 @libcall1_logl() {
1522 ; C_CC_FMT-LABEL: libcall1_logl:
1523 ; C_CC_FMT:       # %bb.0: # %entry
1524 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1525 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1526 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1527 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1528 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
1529 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
1530 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_logl)))
1531 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
1532 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_logl)))
1533 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1534 ; C_CC_FMT-NEXT:    ld $5, 8($1)
1535 ; C_CC_FMT-NEXT:    ld $4, 0($1)
1536 ; C_CC_FMT-NEXT:    ld $25, %call16(logl)($gp)
1537 ; C_CC_FMT-NEXT:    .reloc .Ltmp29, R_MIPS_JALR, logl
1538 ; C_CC_FMT-NEXT:  .Ltmp29:
1539 ; C_CC_FMT-NEXT:    jalr $25
1540 ; C_CC_FMT-NEXT:    nop
1541 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1542 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1543 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1544 ; C_CC_FMT-NEXT:    jr $ra
1545 ; C_CC_FMT-NEXT:    nop
1547 ; CMP_CC_FMT-LABEL: libcall1_logl:
1548 ; CMP_CC_FMT:       # %bb.0: # %entry
1549 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1550 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1551 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1552 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1553 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
1554 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
1555 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_logl)))
1556 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
1557 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_logl)))
1558 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1559 ; CMP_CC_FMT-NEXT:    ld $5, 8($1)
1560 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
1561 ; CMP_CC_FMT-NEXT:    ld $25, %call16(logl)($gp)
1562 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp29, R_MIPS_JALR, logl
1563 ; CMP_CC_FMT-NEXT:  .Ltmp29:
1564 ; CMP_CC_FMT-NEXT:    jalrc $25
1565 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1566 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1567 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1568 ; CMP_CC_FMT-NEXT:    jrc $ra
1569 entry:
1570   %0 = load fp128, ptr @gld0, align 16
1571   %call = tail call fp128 @logl(fp128 %0) nounwind
1572   ret fp128 %call
1575 declare fp128 @logl(fp128) #2
1577 define fp128 @libcall1_log2l() {
1578 ; C_CC_FMT-LABEL: libcall1_log2l:
1579 ; C_CC_FMT:       # %bb.0: # %entry
1580 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1581 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1582 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1583 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1584 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
1585 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
1586 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_log2l)))
1587 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
1588 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_log2l)))
1589 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1590 ; C_CC_FMT-NEXT:    ld $5, 8($1)
1591 ; C_CC_FMT-NEXT:    ld $4, 0($1)
1592 ; C_CC_FMT-NEXT:    ld $25, %call16(log2l)($gp)
1593 ; C_CC_FMT-NEXT:    .reloc .Ltmp30, R_MIPS_JALR, log2l
1594 ; C_CC_FMT-NEXT:  .Ltmp30:
1595 ; C_CC_FMT-NEXT:    jalr $25
1596 ; C_CC_FMT-NEXT:    nop
1597 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1598 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1599 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1600 ; C_CC_FMT-NEXT:    jr $ra
1601 ; C_CC_FMT-NEXT:    nop
1603 ; CMP_CC_FMT-LABEL: libcall1_log2l:
1604 ; CMP_CC_FMT:       # %bb.0: # %entry
1605 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1606 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1607 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1608 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1609 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
1610 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
1611 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_log2l)))
1612 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
1613 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_log2l)))
1614 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1615 ; CMP_CC_FMT-NEXT:    ld $5, 8($1)
1616 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
1617 ; CMP_CC_FMT-NEXT:    ld $25, %call16(log2l)($gp)
1618 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp30, R_MIPS_JALR, log2l
1619 ; CMP_CC_FMT-NEXT:  .Ltmp30:
1620 ; CMP_CC_FMT-NEXT:    jalrc $25
1621 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1622 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1623 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1624 ; CMP_CC_FMT-NEXT:    jrc $ra
1625 entry:
1626   %0 = load fp128, ptr @gld0, align 16
1627   %call = tail call fp128 @log2l(fp128 %0) nounwind
1628   ret fp128 %call
1631 declare fp128 @log2l(fp128) #2
1633 define fp128 @libcall1_log10l() {
1634 ; C_CC_FMT-LABEL: libcall1_log10l:
1635 ; C_CC_FMT:       # %bb.0: # %entry
1636 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1637 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1638 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1639 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1640 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
1641 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
1642 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_log10l)))
1643 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
1644 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_log10l)))
1645 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1646 ; C_CC_FMT-NEXT:    ld $5, 8($1)
1647 ; C_CC_FMT-NEXT:    ld $4, 0($1)
1648 ; C_CC_FMT-NEXT:    ld $25, %call16(log10l)($gp)
1649 ; C_CC_FMT-NEXT:    .reloc .Ltmp31, R_MIPS_JALR, log10l
1650 ; C_CC_FMT-NEXT:  .Ltmp31:
1651 ; C_CC_FMT-NEXT:    jalr $25
1652 ; C_CC_FMT-NEXT:    nop
1653 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1654 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1655 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1656 ; C_CC_FMT-NEXT:    jr $ra
1657 ; C_CC_FMT-NEXT:    nop
1659 ; CMP_CC_FMT-LABEL: libcall1_log10l:
1660 ; CMP_CC_FMT:       # %bb.0: # %entry
1661 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1662 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1663 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1664 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1665 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
1666 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
1667 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_log10l)))
1668 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
1669 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_log10l)))
1670 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1671 ; CMP_CC_FMT-NEXT:    ld $5, 8($1)
1672 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
1673 ; CMP_CC_FMT-NEXT:    ld $25, %call16(log10l)($gp)
1674 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp31, R_MIPS_JALR, log10l
1675 ; CMP_CC_FMT-NEXT:  .Ltmp31:
1676 ; CMP_CC_FMT-NEXT:    jalrc $25
1677 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1678 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1679 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1680 ; CMP_CC_FMT-NEXT:    jrc $ra
1681 entry:
1682   %0 = load fp128, ptr @gld0, align 16
1683   %call = tail call fp128 @log10l(fp128 %0) nounwind
1684   ret fp128 %call
1687 declare fp128 @log10l(fp128) #2
1689 define fp128 @libcall1_nearbyintl() {
1690 ; C_CC_FMT-LABEL: libcall1_nearbyintl:
1691 ; C_CC_FMT:       # %bb.0: # %entry
1692 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1693 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1694 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1695 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1696 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
1697 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
1698 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_nearbyintl)))
1699 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
1700 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_nearbyintl)))
1701 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1702 ; C_CC_FMT-NEXT:    ld $4, 0($1)
1703 ; C_CC_FMT-NEXT:    ld $5, 8($1)
1704 ; C_CC_FMT-NEXT:    ld $25, %call16(nearbyintl)($gp)
1705 ; C_CC_FMT-NEXT:    .reloc .Ltmp32, R_MIPS_JALR, nearbyintl
1706 ; C_CC_FMT-NEXT:  .Ltmp32:
1707 ; C_CC_FMT-NEXT:    jalr $25
1708 ; C_CC_FMT-NEXT:    nop
1709 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1710 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1711 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1712 ; C_CC_FMT-NEXT:    jr $ra
1713 ; C_CC_FMT-NEXT:    nop
1715 ; CMP_CC_FMT-LABEL: libcall1_nearbyintl:
1716 ; CMP_CC_FMT:       # %bb.0: # %entry
1717 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1718 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1719 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1720 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1721 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
1722 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
1723 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_nearbyintl)))
1724 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
1725 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_nearbyintl)))
1726 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1727 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
1728 ; CMP_CC_FMT-NEXT:    ld $5, 8($1)
1729 ; CMP_CC_FMT-NEXT:    ld $25, %call16(nearbyintl)($gp)
1730 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp32, R_MIPS_JALR, nearbyintl
1731 ; CMP_CC_FMT-NEXT:  .Ltmp32:
1732 ; CMP_CC_FMT-NEXT:    jalrc $25
1733 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1734 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1735 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1736 ; CMP_CC_FMT-NEXT:    jrc $ra
1737 entry:
1738   %0 = load fp128, ptr @gld0, align 16
1739   %call = tail call fp128 @nearbyintl(fp128 %0) nounwind readnone
1740   ret fp128 %call
1743 declare fp128 @nearbyintl(fp128) #1
1745 define fp128 @libcall1_floorl() {
1746 ; C_CC_FMT-LABEL: libcall1_floorl:
1747 ; C_CC_FMT:       # %bb.0: # %entry
1748 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1749 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1750 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1751 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1752 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
1753 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
1754 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_floorl)))
1755 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
1756 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_floorl)))
1757 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1758 ; C_CC_FMT-NEXT:    ld $4, 0($1)
1759 ; C_CC_FMT-NEXT:    ld $5, 8($1)
1760 ; C_CC_FMT-NEXT:    ld $25, %call16(floorl)($gp)
1761 ; C_CC_FMT-NEXT:    .reloc .Ltmp33, R_MIPS_JALR, floorl
1762 ; C_CC_FMT-NEXT:  .Ltmp33:
1763 ; C_CC_FMT-NEXT:    jalr $25
1764 ; C_CC_FMT-NEXT:    nop
1765 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1766 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1767 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1768 ; C_CC_FMT-NEXT:    jr $ra
1769 ; C_CC_FMT-NEXT:    nop
1771 ; CMP_CC_FMT-LABEL: libcall1_floorl:
1772 ; CMP_CC_FMT:       # %bb.0: # %entry
1773 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1774 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1775 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1776 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1777 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
1778 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
1779 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_floorl)))
1780 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
1781 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_floorl)))
1782 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1783 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
1784 ; CMP_CC_FMT-NEXT:    ld $5, 8($1)
1785 ; CMP_CC_FMT-NEXT:    ld $25, %call16(floorl)($gp)
1786 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp33, R_MIPS_JALR, floorl
1787 ; CMP_CC_FMT-NEXT:  .Ltmp33:
1788 ; CMP_CC_FMT-NEXT:    jalrc $25
1789 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1790 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1791 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1792 ; CMP_CC_FMT-NEXT:    jrc $ra
1793 entry:
1794   %0 = load fp128, ptr @gld0, align 16
1795   %call = tail call fp128 @floorl(fp128 %0) nounwind readnone
1796   ret fp128 %call
1799 declare fp128 @floorl(fp128) #1
1801 define fp128 @libcall1_sqrtl() {
1802 ; C_CC_FMT-LABEL: libcall1_sqrtl:
1803 ; C_CC_FMT:       # %bb.0: # %entry
1804 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1805 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1806 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1807 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1808 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
1809 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
1810 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_sqrtl)))
1811 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
1812 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_sqrtl)))
1813 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1814 ; C_CC_FMT-NEXT:    ld $5, 8($1)
1815 ; C_CC_FMT-NEXT:    ld $4, 0($1)
1816 ; C_CC_FMT-NEXT:    ld $25, %call16(sqrtl)($gp)
1817 ; C_CC_FMT-NEXT:    .reloc .Ltmp34, R_MIPS_JALR, sqrtl
1818 ; C_CC_FMT-NEXT:  .Ltmp34:
1819 ; C_CC_FMT-NEXT:    jalr $25
1820 ; C_CC_FMT-NEXT:    nop
1821 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1822 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1823 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1824 ; C_CC_FMT-NEXT:    jr $ra
1825 ; C_CC_FMT-NEXT:    nop
1827 ; CMP_CC_FMT-LABEL: libcall1_sqrtl:
1828 ; CMP_CC_FMT:       # %bb.0: # %entry
1829 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1830 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1831 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1832 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1833 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
1834 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
1835 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_sqrtl)))
1836 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
1837 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_sqrtl)))
1838 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1839 ; CMP_CC_FMT-NEXT:    ld $5, 8($1)
1840 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
1841 ; CMP_CC_FMT-NEXT:    ld $25, %call16(sqrtl)($gp)
1842 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp34, R_MIPS_JALR, sqrtl
1843 ; CMP_CC_FMT-NEXT:  .Ltmp34:
1844 ; CMP_CC_FMT-NEXT:    jalrc $25
1845 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1846 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1847 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1848 ; CMP_CC_FMT-NEXT:    jrc $ra
1849 entry:
1850   %0 = load fp128, ptr @gld0, align 16
1851   %call = tail call fp128 @sqrtl(fp128 %0) nounwind
1852   ret fp128 %call
1855 declare fp128 @sqrtl(fp128) #2
1857 define fp128 @libcall1_rintl() {
1858 ; C_CC_FMT-LABEL: libcall1_rintl:
1859 ; C_CC_FMT:       # %bb.0: # %entry
1860 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1861 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1862 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1863 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1864 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
1865 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
1866 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_rintl)))
1867 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
1868 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_rintl)))
1869 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1870 ; C_CC_FMT-NEXT:    ld $4, 0($1)
1871 ; C_CC_FMT-NEXT:    ld $5, 8($1)
1872 ; C_CC_FMT-NEXT:    ld $25, %call16(rintl)($gp)
1873 ; C_CC_FMT-NEXT:    .reloc .Ltmp35, R_MIPS_JALR, rintl
1874 ; C_CC_FMT-NEXT:  .Ltmp35:
1875 ; C_CC_FMT-NEXT:    jalr $25
1876 ; C_CC_FMT-NEXT:    nop
1877 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1878 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1879 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1880 ; C_CC_FMT-NEXT:    jr $ra
1881 ; C_CC_FMT-NEXT:    nop
1883 ; CMP_CC_FMT-LABEL: libcall1_rintl:
1884 ; CMP_CC_FMT:       # %bb.0: # %entry
1885 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1886 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1887 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1888 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1889 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
1890 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
1891 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall1_rintl)))
1892 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
1893 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall1_rintl)))
1894 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
1895 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
1896 ; CMP_CC_FMT-NEXT:    ld $5, 8($1)
1897 ; CMP_CC_FMT-NEXT:    ld $25, %call16(rintl)($gp)
1898 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp35, R_MIPS_JALR, rintl
1899 ; CMP_CC_FMT-NEXT:  .Ltmp35:
1900 ; CMP_CC_FMT-NEXT:    jalrc $25
1901 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1902 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1903 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1904 ; CMP_CC_FMT-NEXT:    jrc $ra
1905 entry:
1906   %0 = load fp128, ptr @gld0, align 16
1907   %call = tail call fp128 @rintl(fp128 %0) nounwind readnone
1908   ret fp128 %call
1911 declare fp128 @rintl(fp128) #1
1913 define fp128 @libcall_powil(fp128 %a, i32 %b) {
1914 ; C_CC_FMT-LABEL: libcall_powil:
1915 ; C_CC_FMT:       # %bb.0: # %entry
1916 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1917 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1918 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1919 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1920 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
1921 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
1922 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall_powil)))
1923 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
1924 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall_powil)))
1925 ; C_CC_FMT-NEXT:    sll $6, $6, 0
1926 ; C_CC_FMT-NEXT:    ld $25, %call16(__powitf2)($gp)
1927 ; C_CC_FMT-NEXT:    .reloc .Ltmp36, R_MIPS_JALR, __powitf2
1928 ; C_CC_FMT-NEXT:  .Ltmp36:
1929 ; C_CC_FMT-NEXT:    jalr $25
1930 ; C_CC_FMT-NEXT:    nop
1931 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1932 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1933 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1934 ; C_CC_FMT-NEXT:    jr $ra
1935 ; C_CC_FMT-NEXT:    nop
1937 ; CMP_CC_FMT-LABEL: libcall_powil:
1938 ; CMP_CC_FMT:       # %bb.0: # %entry
1939 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
1940 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
1941 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
1942 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
1943 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
1944 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
1945 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall_powil)))
1946 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
1947 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall_powil)))
1948 ; CMP_CC_FMT-NEXT:    sll $6, $6, 0
1949 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__powitf2)($gp)
1950 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp36, R_MIPS_JALR, __powitf2
1951 ; CMP_CC_FMT-NEXT:  .Ltmp36:
1952 ; CMP_CC_FMT-NEXT:    jalrc $25
1953 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
1954 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
1955 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
1956 ; CMP_CC_FMT-NEXT:    jrc $ra
1957 entry:
1958   %0 = tail call fp128 @llvm.powi.f128.i32(fp128 %a, i32 %b)
1959   ret fp128 %0
1962 declare fp128 @llvm.powi.f128.i32(fp128, i32) #3
1964 define fp128 @libcall2_copysignl() {
1965 ; NOT-R2R6-LABEL: libcall2_copysignl:
1966 ; NOT-R2R6:       # %bb.0: # %entry
1967 ; NOT-R2R6-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall2_copysignl)))
1968 ; NOT-R2R6-NEXT:    daddu $1, $1, $25
1969 ; NOT-R2R6-NEXT:    daddiu $1, $1, %lo(%neg(%gp_rel(libcall2_copysignl)))
1970 ; NOT-R2R6-NEXT:    daddiu $2, $zero, 1
1971 ; NOT-R2R6-NEXT:    dsll $2, $2, 63
1972 ; NOT-R2R6-NEXT:    ld $3, %got_disp(gld1)($1)
1973 ; NOT-R2R6-NEXT:    ld $3, 8($3)
1974 ; NOT-R2R6-NEXT:    and $3, $3, $2
1975 ; NOT-R2R6-NEXT:    ld $1, %got_disp(gld0)($1)
1976 ; NOT-R2R6-NEXT:    ld $4, 8($1)
1977 ; NOT-R2R6-NEXT:    daddiu $2, $2, -1
1978 ; NOT-R2R6-NEXT:    and $2, $4, $2
1979 ; NOT-R2R6-NEXT:    or $4, $2, $3
1980 ; NOT-R2R6-NEXT:    ld $2, 0($1)
1981 ; NOT-R2R6-NEXT:    jr $ra
1982 ; NOT-R2R6-NEXT:    nop
1984 ; CMP_CC_FMT-LABEL: libcall2_copysignl:
1985 ; CMP_CC_FMT:       # %bb.0: # %entry
1986 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall2_copysignl)))
1987 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
1988 ; CMP_CC_FMT-NEXT:    daddiu $1, $1, %lo(%neg(%gp_rel(libcall2_copysignl)))
1989 ; CMP_CC_FMT-NEXT:    ld $2, %got_disp(gld0)($1)
1990 ; CMP_CC_FMT-NEXT:    ld $4, 8($2)
1991 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld1)($1)
1992 ; CMP_CC_FMT-NEXT:    ld $1, 8($1)
1993 ; CMP_CC_FMT-NEXT:    dsrl $1, $1, 63
1994 ; CMP_CC_FMT-NEXT:    dinsu $4, $1, 63, 1
1995 ; CMP_CC_FMT-NEXT:    ld $2, 0($2)
1996 ; CMP_CC_FMT-NEXT:    jrc $ra
1997 entry:
1998   %0 = load fp128, ptr @gld0, align 16
1999   %1 = load fp128, ptr @gld1, align 16
2000   %call = tail call fp128 @copysignl(fp128 %0, fp128 %1) nounwind readnone
2001   ret fp128 %call
2004 declare fp128 @copysignl(fp128, fp128) #1
2006 define fp128 @libcall2_powl() {
2007 ; C_CC_FMT-LABEL: libcall2_powl:
2008 ; C_CC_FMT:       # %bb.0: # %entry
2009 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2010 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2011 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2012 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2013 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
2014 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
2015 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall2_powl)))
2016 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
2017 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall2_powl)))
2018 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld1)($gp)
2019 ; C_CC_FMT-NEXT:    ld $7, 8($1)
2020 ; C_CC_FMT-NEXT:    ld $6, 0($1)
2021 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
2022 ; C_CC_FMT-NEXT:    ld $5, 8($1)
2023 ; C_CC_FMT-NEXT:    ld $4, 0($1)
2024 ; C_CC_FMT-NEXT:    ld $25, %call16(powl)($gp)
2025 ; C_CC_FMT-NEXT:    .reloc .Ltmp37, R_MIPS_JALR, powl
2026 ; C_CC_FMT-NEXT:  .Ltmp37:
2027 ; C_CC_FMT-NEXT:    jalr $25
2028 ; C_CC_FMT-NEXT:    nop
2029 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2030 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2031 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2032 ; C_CC_FMT-NEXT:    jr $ra
2033 ; C_CC_FMT-NEXT:    nop
2035 ; CMP_CC_FMT-LABEL: libcall2_powl:
2036 ; CMP_CC_FMT:       # %bb.0: # %entry
2037 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2038 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2039 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2040 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2041 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
2042 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
2043 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall2_powl)))
2044 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
2045 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall2_powl)))
2046 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld1)($gp)
2047 ; CMP_CC_FMT-NEXT:    ld $7, 8($1)
2048 ; CMP_CC_FMT-NEXT:    ld $6, 0($1)
2049 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
2050 ; CMP_CC_FMT-NEXT:    ld $5, 8($1)
2051 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
2052 ; CMP_CC_FMT-NEXT:    ld $25, %call16(powl)($gp)
2053 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp37, R_MIPS_JALR, powl
2054 ; CMP_CC_FMT-NEXT:  .Ltmp37:
2055 ; CMP_CC_FMT-NEXT:    jalrc $25
2056 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2057 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2058 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2059 ; CMP_CC_FMT-NEXT:    jrc $ra
2060 entry:
2061   %0 = load fp128, ptr @gld0, align 16
2062   %1 = load fp128, ptr @gld1, align 16
2063   %call = tail call fp128 @powl(fp128 %0, fp128 %1) nounwind
2064   ret fp128 %call
2067 declare fp128 @powl(fp128, fp128) #2
2069 define fp128 @libcall2_fmodl() {
2070 ; C_CC_FMT-LABEL: libcall2_fmodl:
2071 ; C_CC_FMT:       # %bb.0: # %entry
2072 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2073 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2074 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2075 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2076 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
2077 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
2078 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall2_fmodl)))
2079 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
2080 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall2_fmodl)))
2081 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld1)($gp)
2082 ; C_CC_FMT-NEXT:    ld $7, 8($1)
2083 ; C_CC_FMT-NEXT:    ld $6, 0($1)
2084 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
2085 ; C_CC_FMT-NEXT:    ld $5, 8($1)
2086 ; C_CC_FMT-NEXT:    ld $4, 0($1)
2087 ; C_CC_FMT-NEXT:    ld $25, %call16(fmodl)($gp)
2088 ; C_CC_FMT-NEXT:    .reloc .Ltmp38, R_MIPS_JALR, fmodl
2089 ; C_CC_FMT-NEXT:  .Ltmp38:
2090 ; C_CC_FMT-NEXT:    jalr $25
2091 ; C_CC_FMT-NEXT:    nop
2092 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2093 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2094 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2095 ; C_CC_FMT-NEXT:    jr $ra
2096 ; C_CC_FMT-NEXT:    nop
2098 ; CMP_CC_FMT-LABEL: libcall2_fmodl:
2099 ; CMP_CC_FMT:       # %bb.0: # %entry
2100 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2101 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2102 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2103 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2104 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
2105 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
2106 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall2_fmodl)))
2107 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
2108 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall2_fmodl)))
2109 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld1)($gp)
2110 ; CMP_CC_FMT-NEXT:    ld $7, 8($1)
2111 ; CMP_CC_FMT-NEXT:    ld $6, 0($1)
2112 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
2113 ; CMP_CC_FMT-NEXT:    ld $5, 8($1)
2114 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
2115 ; CMP_CC_FMT-NEXT:    ld $25, %call16(fmodl)($gp)
2116 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp38, R_MIPS_JALR, fmodl
2117 ; CMP_CC_FMT-NEXT:  .Ltmp38:
2118 ; CMP_CC_FMT-NEXT:    jalrc $25
2119 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2120 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2121 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2122 ; CMP_CC_FMT-NEXT:    jrc $ra
2123 entry:
2124   %0 = load fp128, ptr @gld0, align 16
2125   %1 = load fp128, ptr @gld1, align 16
2126   %call = tail call fp128 @fmodl(fp128 %0, fp128 %1) nounwind
2127   ret fp128 %call
2130 declare fp128 @fmodl(fp128, fp128) #2
2132 define fp128 @libcall3_fmal() {
2133 ; C_CC_FMT-LABEL: libcall3_fmal:
2134 ; C_CC_FMT:       # %bb.0: # %entry
2135 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2136 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2137 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2138 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2139 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
2140 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
2141 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall3_fmal)))
2142 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
2143 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall3_fmal)))
2144 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
2145 ; C_CC_FMT-NEXT:    ld $4, 0($1)
2146 ; C_CC_FMT-NEXT:    ld $5, 8($1)
2147 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld1)($gp)
2148 ; C_CC_FMT-NEXT:    ld $6, 0($1)
2149 ; C_CC_FMT-NEXT:    ld $7, 8($1)
2150 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld2)($gp)
2151 ; C_CC_FMT-NEXT:    ld $8, 0($1)
2152 ; C_CC_FMT-NEXT:    ld $9, 8($1)
2153 ; C_CC_FMT-NEXT:    ld $25, %call16(fmal)($gp)
2154 ; C_CC_FMT-NEXT:    .reloc .Ltmp39, R_MIPS_JALR, fmal
2155 ; C_CC_FMT-NEXT:  .Ltmp39:
2156 ; C_CC_FMT-NEXT:    jalr $25
2157 ; C_CC_FMT-NEXT:    nop
2158 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2159 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2160 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2161 ; C_CC_FMT-NEXT:    jr $ra
2162 ; C_CC_FMT-NEXT:    nop
2164 ; CMP_CC_FMT-LABEL: libcall3_fmal:
2165 ; CMP_CC_FMT:       # %bb.0: # %entry
2166 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2167 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2168 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2169 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2170 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
2171 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
2172 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(libcall3_fmal)))
2173 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
2174 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(libcall3_fmal)))
2175 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($gp)
2176 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
2177 ; CMP_CC_FMT-NEXT:    ld $5, 8($1)
2178 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld1)($gp)
2179 ; CMP_CC_FMT-NEXT:    ld $6, 0($1)
2180 ; CMP_CC_FMT-NEXT:    ld $7, 8($1)
2181 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld2)($gp)
2182 ; CMP_CC_FMT-NEXT:    ld $8, 0($1)
2183 ; CMP_CC_FMT-NEXT:    ld $9, 8($1)
2184 ; CMP_CC_FMT-NEXT:    ld $25, %call16(fmal)($gp)
2185 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp39, R_MIPS_JALR, fmal
2186 ; CMP_CC_FMT-NEXT:  .Ltmp39:
2187 ; CMP_CC_FMT-NEXT:    jalrc $25
2188 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2189 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2190 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2191 ; CMP_CC_FMT-NEXT:    jrc $ra
2192 entry:
2193   %0 = load fp128, ptr @gld0, align 16
2194   %1 = load fp128, ptr @gld2, align 16
2195   %2 = load fp128, ptr @gld1, align 16
2196   %3 = tail call fp128 @llvm.fma.f128(fp128 %0, fp128 %2, fp128 %1)
2197   ret fp128 %3
2200 declare fp128 @llvm.fma.f128(fp128, fp128, fp128) #4
2202 define i32 @cmp_lt(fp128 %a, fp128 %b) {
2203 ; C_CC_FMT-LABEL: cmp_lt:
2204 ; C_CC_FMT:       # %bb.0: # %entry
2205 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2206 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2207 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2208 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2209 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
2210 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
2211 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(cmp_lt)))
2212 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
2213 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_lt)))
2214 ; C_CC_FMT-NEXT:    ld $25, %call16(__lttf2)($gp)
2215 ; C_CC_FMT-NEXT:    .reloc .Ltmp40, R_MIPS_JALR, __lttf2
2216 ; C_CC_FMT-NEXT:  .Ltmp40:
2217 ; C_CC_FMT-NEXT:    jalr $25
2218 ; C_CC_FMT-NEXT:    nop
2219 ; C_CC_FMT-NEXT:    slti $2, $2, 0
2220 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2221 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2222 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2223 ; C_CC_FMT-NEXT:    jr $ra
2224 ; C_CC_FMT-NEXT:    nop
2226 ; CMP_CC_FMT-LABEL: cmp_lt:
2227 ; CMP_CC_FMT:       # %bb.0: # %entry
2228 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2229 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2230 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2231 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2232 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
2233 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
2234 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(cmp_lt)))
2235 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
2236 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_lt)))
2237 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__lttf2)($gp)
2238 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp40, R_MIPS_JALR, __lttf2
2239 ; CMP_CC_FMT-NEXT:  .Ltmp40:
2240 ; CMP_CC_FMT-NEXT:    jalrc $25
2241 ; CMP_CC_FMT-NEXT:    slti $2, $2, 0
2242 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2243 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2244 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2245 ; CMP_CC_FMT-NEXT:    jrc $ra
2246 entry:
2247   %cmp = fcmp olt fp128 %a, %b
2248   %conv = zext i1 %cmp to i32
2249   ret i32 %conv
2252 define i32 @cmp_le(fp128 %a, fp128 %b) {
2253 ; C_CC_FMT-LABEL: cmp_le:
2254 ; C_CC_FMT:       # %bb.0: # %entry
2255 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2256 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2257 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2258 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2259 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
2260 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
2261 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(cmp_le)))
2262 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
2263 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_le)))
2264 ; C_CC_FMT-NEXT:    ld $25, %call16(__letf2)($gp)
2265 ; C_CC_FMT-NEXT:    .reloc .Ltmp41, R_MIPS_JALR, __letf2
2266 ; C_CC_FMT-NEXT:  .Ltmp41:
2267 ; C_CC_FMT-NEXT:    jalr $25
2268 ; C_CC_FMT-NEXT:    nop
2269 ; C_CC_FMT-NEXT:    slti $2, $2, 1
2270 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2271 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2272 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2273 ; C_CC_FMT-NEXT:    jr $ra
2274 ; C_CC_FMT-NEXT:    nop
2276 ; CMP_CC_FMT-LABEL: cmp_le:
2277 ; CMP_CC_FMT:       # %bb.0: # %entry
2278 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2279 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2280 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2281 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2282 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
2283 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
2284 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(cmp_le)))
2285 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
2286 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_le)))
2287 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__letf2)($gp)
2288 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp41, R_MIPS_JALR, __letf2
2289 ; CMP_CC_FMT-NEXT:  .Ltmp41:
2290 ; CMP_CC_FMT-NEXT:    jalrc $25
2291 ; CMP_CC_FMT-NEXT:    slti $2, $2, 1
2292 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2293 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2294 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2295 ; CMP_CC_FMT-NEXT:    jrc $ra
2296 entry:
2297   %cmp = fcmp ole fp128 %a, %b
2298   %conv = zext i1 %cmp to i32
2299   ret i32 %conv
2302 define i32 @cmp_gt(fp128 %a, fp128 %b) {
2303 ; C_CC_FMT-LABEL: cmp_gt:
2304 ; C_CC_FMT:       # %bb.0: # %entry
2305 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2306 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2307 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2308 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2309 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
2310 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
2311 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(cmp_gt)))
2312 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
2313 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_gt)))
2314 ; C_CC_FMT-NEXT:    ld $25, %call16(__gttf2)($gp)
2315 ; C_CC_FMT-NEXT:    .reloc .Ltmp42, R_MIPS_JALR, __gttf2
2316 ; C_CC_FMT-NEXT:  .Ltmp42:
2317 ; C_CC_FMT-NEXT:    jalr $25
2318 ; C_CC_FMT-NEXT:    nop
2319 ; C_CC_FMT-NEXT:    slt $2, $zero, $2
2320 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2321 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2322 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2323 ; C_CC_FMT-NEXT:    jr $ra
2324 ; C_CC_FMT-NEXT:    nop
2326 ; CMP_CC_FMT-LABEL: cmp_gt:
2327 ; CMP_CC_FMT:       # %bb.0: # %entry
2328 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2329 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2330 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2331 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2332 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
2333 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
2334 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(cmp_gt)))
2335 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
2336 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_gt)))
2337 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__gttf2)($gp)
2338 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp42, R_MIPS_JALR, __gttf2
2339 ; CMP_CC_FMT-NEXT:  .Ltmp42:
2340 ; CMP_CC_FMT-NEXT:    jalrc $25
2341 ; CMP_CC_FMT-NEXT:    slt $2, $zero, $2
2342 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2343 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2344 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2345 ; CMP_CC_FMT-NEXT:    jrc $ra
2346 entry:
2347   %cmp = fcmp ogt fp128 %a, %b
2348   %conv = zext i1 %cmp to i32
2349   ret i32 %conv
2352 define i32 @cmp_ge(fp128 %a, fp128 %b) {
2353 ; C_CC_FMT-LABEL: cmp_ge:
2354 ; C_CC_FMT:       # %bb.0: # %entry
2355 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2356 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2357 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2358 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2359 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
2360 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
2361 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(cmp_ge)))
2362 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
2363 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_ge)))
2364 ; C_CC_FMT-NEXT:    ld $25, %call16(__getf2)($gp)
2365 ; C_CC_FMT-NEXT:    .reloc .Ltmp43, R_MIPS_JALR, __getf2
2366 ; C_CC_FMT-NEXT:  .Ltmp43:
2367 ; C_CC_FMT-NEXT:    jalr $25
2368 ; C_CC_FMT-NEXT:    nop
2369 ; C_CC_FMT-NEXT:    addiu $1, $zero, -1
2370 ; C_CC_FMT-NEXT:    slt $2, $1, $2
2371 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2372 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2373 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2374 ; C_CC_FMT-NEXT:    jr $ra
2375 ; C_CC_FMT-NEXT:    nop
2377 ; CMP_CC_FMT-LABEL: cmp_ge:
2378 ; CMP_CC_FMT:       # %bb.0: # %entry
2379 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2380 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2381 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2382 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2383 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
2384 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
2385 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(cmp_ge)))
2386 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
2387 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_ge)))
2388 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__getf2)($gp)
2389 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp43, R_MIPS_JALR, __getf2
2390 ; CMP_CC_FMT-NEXT:  .Ltmp43:
2391 ; CMP_CC_FMT-NEXT:    jalrc $25
2392 ; CMP_CC_FMT-NEXT:    addiu $1, $zero, -1
2393 ; CMP_CC_FMT-NEXT:    slt $2, $1, $2
2394 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2395 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2396 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2397 ; CMP_CC_FMT-NEXT:    jrc $ra
2398 entry:
2399   %cmp = fcmp oge fp128 %a, %b
2400   %conv = zext i1 %cmp to i32
2401   ret i32 %conv
2404 define i32 @cmp_eq(fp128 %a, fp128 %b) {
2405 ; C_CC_FMT-LABEL: cmp_eq:
2406 ; C_CC_FMT:       # %bb.0: # %entry
2407 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2408 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2409 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2410 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2411 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
2412 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
2413 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(cmp_eq)))
2414 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
2415 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_eq)))
2416 ; C_CC_FMT-NEXT:    ld $25, %call16(__eqtf2)($gp)
2417 ; C_CC_FMT-NEXT:    .reloc .Ltmp44, R_MIPS_JALR, __eqtf2
2418 ; C_CC_FMT-NEXT:  .Ltmp44:
2419 ; C_CC_FMT-NEXT:    jalr $25
2420 ; C_CC_FMT-NEXT:    nop
2421 ; C_CC_FMT-NEXT:    sltiu $2, $2, 1
2422 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2423 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2424 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2425 ; C_CC_FMT-NEXT:    jr $ra
2426 ; C_CC_FMT-NEXT:    nop
2428 ; CMP_CC_FMT-LABEL: cmp_eq:
2429 ; CMP_CC_FMT:       # %bb.0: # %entry
2430 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2431 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2432 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2433 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2434 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
2435 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
2436 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(cmp_eq)))
2437 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
2438 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_eq)))
2439 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__eqtf2)($gp)
2440 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp44, R_MIPS_JALR, __eqtf2
2441 ; CMP_CC_FMT-NEXT:  .Ltmp44:
2442 ; CMP_CC_FMT-NEXT:    jalrc $25
2443 ; CMP_CC_FMT-NEXT:    sltiu $2, $2, 1
2444 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2445 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2446 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2447 ; CMP_CC_FMT-NEXT:    jrc $ra
2448 entry:
2449   %cmp = fcmp oeq fp128 %a, %b
2450   %conv = zext i1 %cmp to i32
2451   ret i32 %conv
2454 define i32 @cmp_ne(fp128 %a, fp128 %b) {
2455 ; C_CC_FMT-LABEL: cmp_ne:
2456 ; C_CC_FMT:       # %bb.0: # %entry
2457 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2458 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2459 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2460 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2461 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
2462 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
2463 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(cmp_ne)))
2464 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
2465 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_ne)))
2466 ; C_CC_FMT-NEXT:    ld $25, %call16(__netf2)($gp)
2467 ; C_CC_FMT-NEXT:    .reloc .Ltmp45, R_MIPS_JALR, __netf2
2468 ; C_CC_FMT-NEXT:  .Ltmp45:
2469 ; C_CC_FMT-NEXT:    jalr $25
2470 ; C_CC_FMT-NEXT:    nop
2471 ; C_CC_FMT-NEXT:    sltu $2, $zero, $2
2472 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2473 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2474 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2475 ; C_CC_FMT-NEXT:    jr $ra
2476 ; C_CC_FMT-NEXT:    nop
2478 ; CMP_CC_FMT-LABEL: cmp_ne:
2479 ; CMP_CC_FMT:       # %bb.0: # %entry
2480 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2481 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2482 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2483 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2484 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
2485 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
2486 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(cmp_ne)))
2487 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
2488 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(cmp_ne)))
2489 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__netf2)($gp)
2490 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp45, R_MIPS_JALR, __netf2
2491 ; CMP_CC_FMT-NEXT:  .Ltmp45:
2492 ; CMP_CC_FMT-NEXT:    jalrc $25
2493 ; CMP_CC_FMT-NEXT:    sltu $2, $zero, $2
2494 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2495 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2496 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2497 ; CMP_CC_FMT-NEXT:    jrc $ra
2498 entry:
2499   %cmp = fcmp une fp128 %a, %b
2500   %conv = zext i1 %cmp to i32
2501   ret i32 %conv
2504 define fp128 @load_LD_LD() {
2505 ; C_CC_FMT-LABEL: load_LD_LD:
2506 ; C_CC_FMT:       # %bb.0: # %entry
2507 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(load_LD_LD)))
2508 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
2509 ; C_CC_FMT-NEXT:    daddiu $1, $1, %lo(%neg(%gp_rel(load_LD_LD)))
2510 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld1)($1)
2511 ; C_CC_FMT-NEXT:    ld $2, 0($1)
2512 ; C_CC_FMT-NEXT:    ld $4, 8($1)
2513 ; C_CC_FMT-NEXT:    jr $ra
2514 ; C_CC_FMT-NEXT:    nop
2516 ; CMP_CC_FMT-LABEL: load_LD_LD:
2517 ; CMP_CC_FMT:       # %bb.0: # %entry
2518 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(load_LD_LD)))
2519 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
2520 ; CMP_CC_FMT-NEXT:    daddiu $1, $1, %lo(%neg(%gp_rel(load_LD_LD)))
2521 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld1)($1)
2522 ; CMP_CC_FMT-NEXT:    ld $2, 0($1)
2523 ; CMP_CC_FMT-NEXT:    ld $4, 8($1)
2524 ; CMP_CC_FMT-NEXT:    jrc $ra
2525 entry:
2526   %0 = load fp128, ptr @gld1, align 16
2527   ret fp128 %0
2530 define fp128 @load_LD_float() {
2531 ; C_CC_FMT-LABEL: load_LD_float:
2532 ; C_CC_FMT:       # %bb.0: # %entry
2533 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2534 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2535 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2536 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2537 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
2538 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
2539 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(load_LD_float)))
2540 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
2541 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(load_LD_float)))
2542 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gf1)($gp)
2543 ; C_CC_FMT-NEXT:    lw $4, 0($1)
2544 ; C_CC_FMT-NEXT:    ld $25, %call16(__extendsftf2)($gp)
2545 ; C_CC_FMT-NEXT:    .reloc .Ltmp46, R_MIPS_JALR, __extendsftf2
2546 ; C_CC_FMT-NEXT:  .Ltmp46:
2547 ; C_CC_FMT-NEXT:    jalr $25
2548 ; C_CC_FMT-NEXT:    nop
2549 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2550 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2551 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2552 ; C_CC_FMT-NEXT:    jr $ra
2553 ; C_CC_FMT-NEXT:    nop
2555 ; CMP_CC_FMT-LABEL: load_LD_float:
2556 ; CMP_CC_FMT:       # %bb.0: # %entry
2557 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2558 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2559 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2560 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2561 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
2562 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
2563 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(load_LD_float)))
2564 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
2565 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(load_LD_float)))
2566 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gf1)($gp)
2567 ; CMP_CC_FMT-NEXT:    lw $4, 0($1)
2568 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__extendsftf2)($gp)
2569 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp46, R_MIPS_JALR, __extendsftf2
2570 ; CMP_CC_FMT-NEXT:  .Ltmp46:
2571 ; CMP_CC_FMT-NEXT:    jalrc $25
2572 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2573 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2574 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2575 ; CMP_CC_FMT-NEXT:    jrc $ra
2576 entry:
2577   %0 = load float, ptr @gf1, align 4
2578   %conv = fpext float %0 to fp128
2579   ret fp128 %conv
2582 define fp128 @load_LD_double() {
2583 ; C_CC_FMT-LABEL: load_LD_double:
2584 ; C_CC_FMT:       # %bb.0: # %entry
2585 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2586 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2587 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2588 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2589 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
2590 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
2591 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(load_LD_double)))
2592 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
2593 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(load_LD_double)))
2594 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gd1)($gp)
2595 ; C_CC_FMT-NEXT:    ld $4, 0($1)
2596 ; C_CC_FMT-NEXT:    ld $25, %call16(__extenddftf2)($gp)
2597 ; C_CC_FMT-NEXT:    .reloc .Ltmp47, R_MIPS_JALR, __extenddftf2
2598 ; C_CC_FMT-NEXT:  .Ltmp47:
2599 ; C_CC_FMT-NEXT:    jalr $25
2600 ; C_CC_FMT-NEXT:    nop
2601 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2602 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2603 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2604 ; C_CC_FMT-NEXT:    jr $ra
2605 ; C_CC_FMT-NEXT:    nop
2607 ; CMP_CC_FMT-LABEL: load_LD_double:
2608 ; CMP_CC_FMT:       # %bb.0: # %entry
2609 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2610 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2611 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2612 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2613 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
2614 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
2615 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(load_LD_double)))
2616 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
2617 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(load_LD_double)))
2618 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gd1)($gp)
2619 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
2620 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__extenddftf2)($gp)
2621 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp47, R_MIPS_JALR, __extenddftf2
2622 ; CMP_CC_FMT-NEXT:  .Ltmp47:
2623 ; CMP_CC_FMT-NEXT:    jalrc $25
2624 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2625 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2626 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2627 ; CMP_CC_FMT-NEXT:    jrc $ra
2628 entry:
2629   %0 = load double, ptr @gd1, align 8
2630   %conv = fpext double %0 to fp128
2631   ret fp128 %conv
2634 define void @store_LD_LD() {
2635 ; C_CC_FMT-LABEL: store_LD_LD:
2636 ; C_CC_FMT:       # %bb.0: # %entry
2637 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(store_LD_LD)))
2638 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
2639 ; C_CC_FMT-NEXT:    daddiu $1, $1, %lo(%neg(%gp_rel(store_LD_LD)))
2640 ; C_CC_FMT-NEXT:    ld $2, %got_disp(gld1)($1)
2641 ; C_CC_FMT-NEXT:    ld $3, 8($2)
2642 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($1)
2643 ; C_CC_FMT-NEXT:    sd $3, 8($1)
2644 ; C_CC_FMT-NEXT:    ld $2, 0($2)
2645 ; C_CC_FMT-NEXT:    sd $2, 0($1)
2646 ; C_CC_FMT-NEXT:    jr $ra
2647 ; C_CC_FMT-NEXT:    nop
2649 ; CMP_CC_FMT-LABEL: store_LD_LD:
2650 ; CMP_CC_FMT:       # %bb.0: # %entry
2651 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(store_LD_LD)))
2652 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
2653 ; CMP_CC_FMT-NEXT:    daddiu $1, $1, %lo(%neg(%gp_rel(store_LD_LD)))
2654 ; CMP_CC_FMT-NEXT:    ld $2, %got_disp(gld1)($1)
2655 ; CMP_CC_FMT-NEXT:    ld $3, 8($2)
2656 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld0)($1)
2657 ; CMP_CC_FMT-NEXT:    sd $3, 8($1)
2658 ; CMP_CC_FMT-NEXT:    ld $2, 0($2)
2659 ; CMP_CC_FMT-NEXT:    sd $2, 0($1)
2660 ; CMP_CC_FMT-NEXT:    jrc $ra
2661 entry:
2662   %0 = load fp128, ptr @gld1, align 16
2663   store fp128 %0, ptr @gld0, align 16
2664   ret void
2667 define void @store_LD_float() {
2668 ; C_CC_FMT-LABEL: store_LD_float:
2669 ; C_CC_FMT:       # %bb.0: # %entry
2670 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2671 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2672 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2673 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2674 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
2675 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
2676 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(store_LD_float)))
2677 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
2678 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(store_LD_float)))
2679 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld1)($gp)
2680 ; C_CC_FMT-NEXT:    ld $4, 0($1)
2681 ; C_CC_FMT-NEXT:    ld $5, 8($1)
2682 ; C_CC_FMT-NEXT:    ld $25, %call16(__trunctfsf2)($gp)
2683 ; C_CC_FMT-NEXT:    .reloc .Ltmp48, R_MIPS_JALR, __trunctfsf2
2684 ; C_CC_FMT-NEXT:  .Ltmp48:
2685 ; C_CC_FMT-NEXT:    jalr $25
2686 ; C_CC_FMT-NEXT:    nop
2687 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gf1)($gp)
2688 ; C_CC_FMT-NEXT:    sw $2, 0($1)
2689 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2690 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2691 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2692 ; C_CC_FMT-NEXT:    jr $ra
2693 ; C_CC_FMT-NEXT:    nop
2695 ; CMP_CC_FMT-LABEL: store_LD_float:
2696 ; CMP_CC_FMT:       # %bb.0: # %entry
2697 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2698 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2699 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2700 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2701 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
2702 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
2703 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(store_LD_float)))
2704 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
2705 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(store_LD_float)))
2706 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld1)($gp)
2707 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
2708 ; CMP_CC_FMT-NEXT:    ld $5, 8($1)
2709 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__trunctfsf2)($gp)
2710 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp48, R_MIPS_JALR, __trunctfsf2
2711 ; CMP_CC_FMT-NEXT:  .Ltmp48:
2712 ; CMP_CC_FMT-NEXT:    jalrc $25
2713 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gf1)($gp)
2714 ; CMP_CC_FMT-NEXT:    sw $2, 0($1)
2715 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2716 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2717 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2718 ; CMP_CC_FMT-NEXT:    jrc $ra
2719 entry:
2720   %0 = load fp128, ptr @gld1, align 16
2721   %conv = fptrunc fp128 %0 to float
2722   store float %conv, ptr @gf1, align 4
2723   ret void
2726 ; FIXME: This sll works around an implementation detail in the code generator
2727 ;        (setcc's result is i32 so bits 32-63 are undefined). It's not really
2728 ;        needed.
2729 define void @store_LD_double() {
2730 ; C_CC_FMT-LABEL: store_LD_double:
2731 ; C_CC_FMT:       # %bb.0: # %entry
2732 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2733 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2734 ; C_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2735 ; C_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2736 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
2737 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
2738 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(store_LD_double)))
2739 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
2740 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(store_LD_double)))
2741 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gld1)($gp)
2742 ; C_CC_FMT-NEXT:    ld $4, 0($1)
2743 ; C_CC_FMT-NEXT:    ld $5, 8($1)
2744 ; C_CC_FMT-NEXT:    ld $25, %call16(__trunctfdf2)($gp)
2745 ; C_CC_FMT-NEXT:    .reloc .Ltmp49, R_MIPS_JALR, __trunctfdf2
2746 ; C_CC_FMT-NEXT:  .Ltmp49:
2747 ; C_CC_FMT-NEXT:    jalr $25
2748 ; C_CC_FMT-NEXT:    nop
2749 ; C_CC_FMT-NEXT:    ld $1, %got_disp(gd1)($gp)
2750 ; C_CC_FMT-NEXT:    sd $2, 0($1)
2751 ; C_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2752 ; C_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2753 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2754 ; C_CC_FMT-NEXT:    jr $ra
2755 ; C_CC_FMT-NEXT:    nop
2757 ; CMP_CC_FMT-LABEL: store_LD_double:
2758 ; CMP_CC_FMT:       # %bb.0: # %entry
2759 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -16
2760 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 16
2761 ; CMP_CC_FMT-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
2762 ; CMP_CC_FMT-NEXT:    sd $gp, 0($sp) # 8-byte Folded Spill
2763 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
2764 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
2765 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(store_LD_double)))
2766 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
2767 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(store_LD_double)))
2768 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gld1)($gp)
2769 ; CMP_CC_FMT-NEXT:    ld $4, 0($1)
2770 ; CMP_CC_FMT-NEXT:    ld $5, 8($1)
2771 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__trunctfdf2)($gp)
2772 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp49, R_MIPS_JALR, __trunctfdf2
2773 ; CMP_CC_FMT-NEXT:  .Ltmp49:
2774 ; CMP_CC_FMT-NEXT:    jalrc $25
2775 ; CMP_CC_FMT-NEXT:    ld $1, %got_disp(gd1)($gp)
2776 ; CMP_CC_FMT-NEXT:    sd $2, 0($1)
2777 ; CMP_CC_FMT-NEXT:    ld $gp, 0($sp) # 8-byte Folded Reload
2778 ; CMP_CC_FMT-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
2779 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 16
2780 ; CMP_CC_FMT-NEXT:    jrc $ra
2781 entry:
2782   %0 = load fp128, ptr @gld1, align 16
2783   %conv = fptrunc fp128 %0 to double
2784   store double %conv, ptr @gd1, align 8
2785   ret void
2788 define fp128 @select_LD(i32 signext %a, i64, fp128 %b, fp128 %c) {
2789 ; C_CC_FMT-LABEL: select_LD:
2790 ; C_CC_FMT:       # %bb.0: # %entry
2791 ; C_CC_FMT-NEXT:    movn $8, $6, $4
2792 ; C_CC_FMT-NEXT:    movn $9, $7, $4
2793 ; C_CC_FMT-NEXT:    move $2, $8
2794 ; C_CC_FMT-NEXT:    move $4, $9
2795 ; C_CC_FMT-NEXT:    jr $ra
2796 ; C_CC_FMT-NEXT:    nop
2798 ; CMP_CC_FMT-LABEL: select_LD:
2799 ; CMP_CC_FMT:       # %bb.0: # %entry
2800 ; CMP_CC_FMT-NEXT:    sll $1, $4, 0
2801 ; CMP_CC_FMT-NEXT:    seleqz $2, $8, $1
2802 ; CMP_CC_FMT-NEXT:    selnez $3, $6, $1
2803 ; CMP_CC_FMT-NEXT:    or $2, $3, $2
2804 ; CMP_CC_FMT-NEXT:    seleqz $3, $9, $1
2805 ; CMP_CC_FMT-NEXT:    selnez $1, $7, $1
2806 ; CMP_CC_FMT-NEXT:    or $4, $1, $3
2807 ; CMP_CC_FMT-NEXT:    jrc $ra
2808 entry:
2809   %tobool = icmp ne i32 %a, 0
2810   %cond = select i1 %tobool, fp128 %b, fp128 %c
2811   ret fp128 %cond
2814 define fp128 @selectCC_LD(fp128 %a, fp128 %b, fp128 %c, fp128 %d) {
2815 ; C_CC_FMT-LABEL: selectCC_LD:
2816 ; C_CC_FMT:       # %bb.0: # %entry
2817 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, -48
2818 ; C_CC_FMT-NEXT:    .cfi_def_cfa_offset 48
2819 ; C_CC_FMT-NEXT:    sd $ra, 40($sp) # 8-byte Folded Spill
2820 ; C_CC_FMT-NEXT:    sd $gp, 32($sp) # 8-byte Folded Spill
2821 ; C_CC_FMT-NEXT:    sd $19, 24($sp) # 8-byte Folded Spill
2822 ; C_CC_FMT-NEXT:    sd $18, 16($sp) # 8-byte Folded Spill
2823 ; C_CC_FMT-NEXT:    sd $17, 8($sp) # 8-byte Folded Spill
2824 ; C_CC_FMT-NEXT:    sd $16, 0($sp) # 8-byte Folded Spill
2825 ; C_CC_FMT-NEXT:    .cfi_offset 31, -8
2826 ; C_CC_FMT-NEXT:    .cfi_offset 28, -16
2827 ; C_CC_FMT-NEXT:    .cfi_offset 19, -24
2828 ; C_CC_FMT-NEXT:    .cfi_offset 18, -32
2829 ; C_CC_FMT-NEXT:    .cfi_offset 17, -40
2830 ; C_CC_FMT-NEXT:    .cfi_offset 16, -48
2831 ; C_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(selectCC_LD)))
2832 ; C_CC_FMT-NEXT:    daddu $1, $1, $25
2833 ; C_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(selectCC_LD)))
2834 ; C_CC_FMT-NEXT:    move $16, $11
2835 ; C_CC_FMT-NEXT:    move $17, $10
2836 ; C_CC_FMT-NEXT:    move $18, $9
2837 ; C_CC_FMT-NEXT:    move $19, $8
2838 ; C_CC_FMT-NEXT:    ld $25, %call16(__gttf2)($gp)
2839 ; C_CC_FMT-NEXT:    .reloc .Ltmp50, R_MIPS_JALR, __gttf2
2840 ; C_CC_FMT-NEXT:  .Ltmp50:
2841 ; C_CC_FMT-NEXT:    jalr $25
2842 ; C_CC_FMT-NEXT:    nop
2843 ; C_CC_FMT-NEXT:    slti $1, $2, 1
2844 ; C_CC_FMT-NEXT:    movz $17, $19, $1
2845 ; C_CC_FMT-NEXT:    movz $16, $18, $1
2846 ; C_CC_FMT-NEXT:    move $2, $17
2847 ; C_CC_FMT-NEXT:    move $4, $16
2848 ; C_CC_FMT-NEXT:    ld $16, 0($sp) # 8-byte Folded Reload
2849 ; C_CC_FMT-NEXT:    ld $17, 8($sp) # 8-byte Folded Reload
2850 ; C_CC_FMT-NEXT:    ld $18, 16($sp) # 8-byte Folded Reload
2851 ; C_CC_FMT-NEXT:    ld $19, 24($sp) # 8-byte Folded Reload
2852 ; C_CC_FMT-NEXT:    ld $gp, 32($sp) # 8-byte Folded Reload
2853 ; C_CC_FMT-NEXT:    ld $ra, 40($sp) # 8-byte Folded Reload
2854 ; C_CC_FMT-NEXT:    daddiu $sp, $sp, 48
2855 ; C_CC_FMT-NEXT:    jr $ra
2856 ; C_CC_FMT-NEXT:    nop
2858 ; CMP_CC_FMT-LABEL: selectCC_LD:
2859 ; CMP_CC_FMT:       # %bb.0: # %entry
2860 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, -48
2861 ; CMP_CC_FMT-NEXT:    .cfi_def_cfa_offset 48
2862 ; CMP_CC_FMT-NEXT:    sd $ra, 40($sp) # 8-byte Folded Spill
2863 ; CMP_CC_FMT-NEXT:    sd $gp, 32($sp) # 8-byte Folded Spill
2864 ; CMP_CC_FMT-NEXT:    sd $19, 24($sp) # 8-byte Folded Spill
2865 ; CMP_CC_FMT-NEXT:    sd $18, 16($sp) # 8-byte Folded Spill
2866 ; CMP_CC_FMT-NEXT:    sd $17, 8($sp) # 8-byte Folded Spill
2867 ; CMP_CC_FMT-NEXT:    sd $16, 0($sp) # 8-byte Folded Spill
2868 ; CMP_CC_FMT-NEXT:    .cfi_offset 31, -8
2869 ; CMP_CC_FMT-NEXT:    .cfi_offset 28, -16
2870 ; CMP_CC_FMT-NEXT:    .cfi_offset 19, -24
2871 ; CMP_CC_FMT-NEXT:    .cfi_offset 18, -32
2872 ; CMP_CC_FMT-NEXT:    .cfi_offset 17, -40
2873 ; CMP_CC_FMT-NEXT:    .cfi_offset 16, -48
2874 ; CMP_CC_FMT-NEXT:    lui $1, %hi(%neg(%gp_rel(selectCC_LD)))
2875 ; CMP_CC_FMT-NEXT:    daddu $1, $1, $25
2876 ; CMP_CC_FMT-NEXT:    daddiu $gp, $1, %lo(%neg(%gp_rel(selectCC_LD)))
2877 ; CMP_CC_FMT-NEXT:    move $16, $11
2878 ; CMP_CC_FMT-NEXT:    move $17, $10
2879 ; CMP_CC_FMT-NEXT:    move $18, $9
2880 ; CMP_CC_FMT-NEXT:    move $19, $8
2881 ; CMP_CC_FMT-NEXT:    ld $25, %call16(__gttf2)($gp)
2882 ; CMP_CC_FMT-NEXT:    .reloc .Ltmp50, R_MIPS_JALR, __gttf2
2883 ; CMP_CC_FMT-NEXT:  .Ltmp50:
2884 ; CMP_CC_FMT-NEXT:    jalrc $25
2885 ; CMP_CC_FMT-NEXT:    slt $1, $zero, $2
2886 ; CMP_CC_FMT-NEXT:    sll $1, $1, 0
2887 ; CMP_CC_FMT-NEXT:    seleqz $2, $17, $1
2888 ; CMP_CC_FMT-NEXT:    selnez $3, $19, $1
2889 ; CMP_CC_FMT-NEXT:    or $2, $3, $2
2890 ; CMP_CC_FMT-NEXT:    seleqz $3, $16, $1
2891 ; CMP_CC_FMT-NEXT:    selnez $1, $18, $1
2892 ; CMP_CC_FMT-NEXT:    or $4, $1, $3
2893 ; CMP_CC_FMT-NEXT:    ld $16, 0($sp) # 8-byte Folded Reload
2894 ; CMP_CC_FMT-NEXT:    ld $17, 8($sp) # 8-byte Folded Reload
2895 ; CMP_CC_FMT-NEXT:    ld $18, 16($sp) # 8-byte Folded Reload
2896 ; CMP_CC_FMT-NEXT:    ld $19, 24($sp) # 8-byte Folded Reload
2897 ; CMP_CC_FMT-NEXT:    ld $gp, 32($sp) # 8-byte Folded Reload
2898 ; CMP_CC_FMT-NEXT:    ld $ra, 40($sp) # 8-byte Folded Reload
2899 ; CMP_CC_FMT-NEXT:    daddiu $sp, $sp, 48
2900 ; CMP_CC_FMT-NEXT:    jrc $ra
2901 entry:
2902   %cmp = fcmp ogt fp128 %a, %b
2903   %cond = select i1 %cmp, fp128 %c, fp128 %d
2904   ret fp128 %cond
2906 ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
2907 ; ALL: {{.*}}
2908 ; PRER6: {{.*}}
2909 ; R2R6: {{.*}}
2910 ; R6: {{.*}}