@@ -118,317 +118,8 @@ define i128 @test2(i128 %x) nounwind {
118
118
119
119
define i128 @test3 (i128 %x ) nounwind {
120
120
; X86-LABEL: test3:
121
- ; X86: # %bb.0: # %_udiv-special-cases
122
- ; X86-NEXT: pushl %ebp
123
- ; X86-NEXT: movl %esp, %ebp
124
- ; X86-NEXT: pushl %ebx
125
- ; X86-NEXT: pushl %edi
126
- ; X86-NEXT: pushl %esi
127
- ; X86-NEXT: andl $-16, %esp
128
- ; X86-NEXT: subl $160, %esp
129
- ; X86-NEXT: movl 36(%ebp), %ebx
130
- ; X86-NEXT: movl %ebx, %edi
131
- ; X86-NEXT: sarl $31, %edi
132
- ; X86-NEXT: xorl %edi, %ebx
133
- ; X86-NEXT: movl 32(%ebp), %esi
134
- ; X86-NEXT: xorl %edi, %esi
135
- ; X86-NEXT: movl 28(%ebp), %edx
136
- ; X86-NEXT: xorl %edi, %edx
137
- ; X86-NEXT: movl 24(%ebp), %ecx
138
- ; X86-NEXT: xorl %edi, %ecx
139
- ; X86-NEXT: subl %edi, %ecx
140
- ; X86-NEXT: sbbl %edi, %edx
141
- ; X86-NEXT: sbbl %edi, %esi
142
- ; X86-NEXT: sbbl %edi, %ebx
143
- ; X86-NEXT: movl %edx, %eax
144
- ; X86-NEXT: orl %ebx, %eax
145
- ; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
146
- ; X86-NEXT: orl %esi, %ecx
147
- ; X86-NEXT: orl %eax, %ecx
148
- ; X86-NEXT: sete {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Folded Spill
149
- ; X86-NEXT: testl %ebx, %ebx
150
- ; X86-NEXT: jne .LBB2_1
151
- ; X86-NEXT: # %bb.2: # %_udiv-special-cases
152
- ; X86-NEXT: bsrl %esi, %ecx
153
- ; X86-NEXT: xorl $31, %ecx
154
- ; X86-NEXT: addl $32, %ecx
155
- ; X86-NEXT: jmp .LBB2_3
156
- ; X86-NEXT: .LBB2_1:
157
- ; X86-NEXT: bsrl %ebx, %ecx
158
- ; X86-NEXT: xorl $31, %ecx
159
- ; X86-NEXT: .LBB2_3: # %_udiv-special-cases
160
- ; X86-NEXT: testl %edx, %edx
161
- ; X86-NEXT: movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
162
- ; X86-NEXT: jne .LBB2_4
163
- ; X86-NEXT: # %bb.5: # %_udiv-special-cases
164
- ; X86-NEXT: bsrl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
165
- ; X86-NEXT: xorl $31, %edx
166
- ; X86-NEXT: addl $32, %edx
167
- ; X86-NEXT: jmp .LBB2_6
168
- ; X86-NEXT: .LBB2_4:
169
- ; X86-NEXT: bsrl %edx, %edx
170
- ; X86-NEXT: xorl $31, %edx
171
- ; X86-NEXT: .LBB2_6: # %_udiv-special-cases
172
- ; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
173
- ; X86-NEXT: movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
174
- ; X86-NEXT: orl %ebx, %esi
175
- ; X86-NEXT: jne .LBB2_8
176
- ; X86-NEXT: # %bb.7: # %_udiv-special-cases
177
- ; X86-NEXT: addl $64, %edx
178
- ; X86-NEXT: movl %edx, %ecx
179
- ; X86-NEXT: .LBB2_8: # %_udiv-special-cases
180
- ; X86-NEXT: movl $61, %edx
181
- ; X86-NEXT: subl %ecx, %edx
182
- ; X86-NEXT: movl $0, %esi
183
- ; X86-NEXT: sbbl %esi, %esi
184
- ; X86-NEXT: movl $0, %eax
185
- ; X86-NEXT: sbbl %eax, %eax
186
- ; X86-NEXT: movl $0, %ebx
187
- ; X86-NEXT: sbbl %ebx, %ebx
188
- ; X86-NEXT: movl $127, %ecx
189
- ; X86-NEXT: movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
190
- ; X86-NEXT: cmpl %edx, %ecx
191
- ; X86-NEXT: movl $0, %ecx
192
- ; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
193
- ; X86-NEXT: sbbl %esi, %ecx
194
- ; X86-NEXT: movl $0, %ecx
195
- ; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
196
- ; X86-NEXT: sbbl %eax, %ecx
197
- ; X86-NEXT: movl $0, %ecx
198
- ; X86-NEXT: movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
199
- ; X86-NEXT: sbbl %ebx, %ecx
200
- ; X86-NEXT: setb %cl
201
- ; X86-NEXT: movzbl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 1-byte Folded Reload
202
- ; X86-NEXT: orb %cl, %al
203
- ; X86-NEXT: testb %al, %al
204
- ; X86-NEXT: movl $0, %esi
205
- ; X86-NEXT: movl $0, %edx
206
- ; X86-NEXT: movl $0, %ebx
207
- ; X86-NEXT: movl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
208
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
209
- ; X86-NEXT: jne .LBB2_10
210
- ; X86-NEXT: # %bb.9: # %_udiv-special-cases
211
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
212
- ; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
213
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
214
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Reload
215
- ; X86-NEXT: movl %ecx, %ebx
216
- ; X86-NEXT: .LBB2_10: # %_udiv-special-cases
217
- ; X86-NEXT: notl %edi
218
- ; X86-NEXT: jne .LBB2_11
219
- ; X86-NEXT: # %bb.18: # %_udiv-special-cases
220
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
221
- ; X86-NEXT: xorl $127, %ecx
222
- ; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
223
- ; X86-NEXT: movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
224
- ; X86-NEXT: movl %edx, %eax
225
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Reload
226
- ; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
227
- ; X86-NEXT: orl %ecx, %edx
228
- ; X86-NEXT: movl %eax, %edx
229
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
230
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
231
- ; X86-NEXT: je .LBB2_19
232
- ; X86-NEXT: # %bb.15: # %udiv-bb1
233
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
234
- ; X86-NEXT: movl %eax, {{[0-9]+}}(%esp)
235
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
236
- ; X86-NEXT: movl %eax, {{[0-9]+}}(%esp)
237
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
238
- ; X86-NEXT: movl %eax, {{[0-9]+}}(%esp)
239
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
240
- ; X86-NEXT: movl %eax, {{[0-9]+}}(%esp)
241
- ; X86-NEXT: movl $0, {{[0-9]+}}(%esp)
242
- ; X86-NEXT: movl $0, {{[0-9]+}}(%esp)
243
- ; X86-NEXT: movl $0, {{[0-9]+}}(%esp)
244
- ; X86-NEXT: movl $0, {{[0-9]+}}(%esp)
245
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
246
- ; X86-NEXT: movl %eax, %ecx
247
- ; X86-NEXT: xorb $127, %cl
248
- ; X86-NEXT: movl %ecx, %edx
249
- ; X86-NEXT: shrb $3, %dl
250
- ; X86-NEXT: andb $12, %dl
251
- ; X86-NEXT: negb %dl
252
- ; X86-NEXT: movsbl %dl, %edx
253
- ; X86-NEXT: movl 136(%esp,%edx), %esi
254
- ; X86-NEXT: movl 140(%esp,%edx), %ebx
255
- ; X86-NEXT: shldl %cl, %esi, %ebx
256
- ; X86-NEXT: movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
257
- ; X86-NEXT: movl 128(%esp,%edx), %ebx
258
- ; X86-NEXT: movl 132(%esp,%edx), %edx
259
- ; X86-NEXT: shldl %cl, %edx, %esi
260
- ; X86-NEXT: shldl %cl, %ebx, %edx
261
- ; X86-NEXT: shll %cl, %ebx
262
- ; X86-NEXT: addl $1, %eax
263
- ; X86-NEXT: adcl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
264
- ; X86-NEXT: adcl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
265
- ; X86-NEXT: adcl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
266
- ; X86-NEXT: jae .LBB2_12
267
- ; X86-NEXT: # %bb.16:
268
- ; X86-NEXT: movl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
269
- ; X86-NEXT: xorl %eax, %eax
270
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
271
- ; X86-NEXT: jmp .LBB2_17
272
- ; X86-NEXT: .LBB2_11:
273
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
274
- ; X86-NEXT: jmp .LBB2_19
275
- ; X86-NEXT: .LBB2_12: # %udiv-preheader
276
- ; X86-NEXT: movl %eax, %ecx
277
- ; X86-NEXT: movl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
278
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
279
- ; X86-NEXT: movl %eax, {{[0-9]+}}(%esp)
280
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
281
- ; X86-NEXT: movl %eax, {{[0-9]+}}(%esp)
282
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
283
- ; X86-NEXT: movl %eax, {{[0-9]+}}(%esp)
284
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
285
- ; X86-NEXT: movl %eax, {{[0-9]+}}(%esp)
286
- ; X86-NEXT: movl $0, {{[0-9]+}}(%esp)
287
- ; X86-NEXT: movl $0, {{[0-9]+}}(%esp)
288
- ; X86-NEXT: movl $0, {{[0-9]+}}(%esp)
289
- ; X86-NEXT: movl $0, {{[0-9]+}}(%esp)
290
- ; X86-NEXT: movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
291
- ; X86-NEXT: movl %ecx, %eax
292
- ; X86-NEXT: shrb $3, %al
293
- ; X86-NEXT: andb $12, %al
294
- ; X86-NEXT: movzbl %al, %eax
295
- ; X86-NEXT: movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
296
- ; X86-NEXT: movl 92(%esp,%eax), %edx
297
- ; X86-NEXT: movl 88(%esp,%eax), %edi
298
- ; X86-NEXT: movl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
299
- ; X86-NEXT: shrdl %cl, %edx, %edi
300
- ; X86-NEXT: movl 80(%esp,%eax), %ebx
301
- ; X86-NEXT: movl 84(%esp,%eax), %eax
302
- ; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
303
- ; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
304
- ; X86-NEXT: movl %eax, %esi
305
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
306
- ; X86-NEXT: shrdl %cl, %eax, %esi
307
- ; X86-NEXT: shrl %cl, %edx
308
- ; X86-NEXT: movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
309
- ; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
310
- ; X86-NEXT: # kill: def $cl killed $cl killed $ecx
311
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
312
- ; X86-NEXT: shrdl %cl, %eax, %ebx
313
- ; X86-NEXT: xorl %eax, %eax
314
- ; X86-NEXT: movl $3, %ecx
315
- ; X86-NEXT: addl $-1, %ecx
316
- ; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
317
- ; X86-NEXT: movl $0, %ecx
318
- ; X86-NEXT: adcl $-1, %ecx
319
- ; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
320
- ; X86-NEXT: movl $4, %ecx
321
- ; X86-NEXT: adcl $-1, %ecx
322
- ; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
323
- ; X86-NEXT: movl $0, %ecx
324
- ; X86-NEXT: adcl $-1, %ecx
325
- ; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
326
- ; X86-NEXT: movl $0, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
327
- ; X86-NEXT: .p2align 4
328
- ; X86-NEXT: .LBB2_13: # %udiv-do-while
329
- ; X86-NEXT: # =>This Inner Loop Header: Depth=1
330
- ; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
331
- ; X86-NEXT: movl %eax, %ecx
332
- ; X86-NEXT: shldl $1, %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill
333
- ; X86-NEXT: shldl $1, %esi, %edi
334
- ; X86-NEXT: movl %edi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
335
- ; X86-NEXT: shldl $1, %ebx, %esi
336
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
337
- ; X86-NEXT: shldl $1, %eax, %ebx
338
- ; X86-NEXT: movl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
339
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Reload
340
- ; X86-NEXT: shldl $1, %edx, %eax
341
- ; X86-NEXT: orl %ecx, %eax
342
- ; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
343
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
344
- ; X86-NEXT: shldl $1, %ecx, %edx
345
- ; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Folded Reload
346
- ; X86-NEXT: movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
347
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Reload
348
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
349
- ; X86-NEXT: shldl $1, %eax, %ecx
350
- ; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Folded Reload
351
- ; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
352
- ; X86-NEXT: addl %eax, %eax
353
- ; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Folded Reload
354
- ; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
355
- ; X86-NEXT: cmpl %ebx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload
356
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
357
- ; X86-NEXT: sbbl %esi, %ecx
358
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
359
- ; X86-NEXT: sbbl %edi, %ecx
360
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
361
- ; X86-NEXT: sbbl %edx, %ecx
362
- ; X86-NEXT: sarl $31, %ecx
363
- ; X86-NEXT: movl %ecx, %eax
364
- ; X86-NEXT: andl $1, %eax
365
- ; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
366
- ; X86-NEXT: movl %ecx, %eax
367
- ; X86-NEXT: movl $4, %edi
368
- ; X86-NEXT: andl %edi, %eax
369
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
370
- ; X86-NEXT: movl $3, %ebx
371
- ; X86-NEXT: andl %ebx, %ecx
372
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
373
- ; X86-NEXT: subl %ecx, %ebx
374
- ; X86-NEXT: sbbl $0, %esi
375
- ; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
376
- ; X86-NEXT: sbbl %eax, %edi
377
- ; X86-NEXT: sbbl $0, %edx
378
- ; X86-NEXT: movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
379
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
380
- ; X86-NEXT: addl $-1, %ecx
381
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
382
- ; X86-NEXT: adcl $-1, %eax
383
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
384
- ; X86-NEXT: adcl $-1, %esi
385
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Reload
386
- ; X86-NEXT: adcl $-1, %edx
387
- ; X86-NEXT: movl %eax, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
388
- ; X86-NEXT: movl %edx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
389
- ; X86-NEXT: orl %edx, %eax
390
- ; X86-NEXT: movl %ecx, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
391
- ; X86-NEXT: movl %esi, {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Spill
392
- ; X86-NEXT: orl %esi, %ecx
393
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
394
- ; X86-NEXT: orl %eax, %ecx
395
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %eax # 4-byte Reload
396
- ; X86-NEXT: jne .LBB2_13
397
- ; X86-NEXT: # %bb.14:
398
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edi # 4-byte Reload
399
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 4-byte Reload
400
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %esi # 4-byte Reload
401
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %edx # 4-byte Reload
402
- ; X86-NEXT: movl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Reload
403
- ; X86-NEXT: .LBB2_17: # %udiv-loop-exit
404
- ; X86-NEXT: shldl $1, %esi, %ecx
405
- ; X86-NEXT: orl %eax, %ecx
406
- ; X86-NEXT: shldl $1, %edx, %esi
407
- ; X86-NEXT: orl %eax, %esi
408
- ; X86-NEXT: shldl $1, %ebx, %edx
409
- ; X86-NEXT: orl %eax, %edx
410
- ; X86-NEXT: addl %ebx, %ebx
411
- ; X86-NEXT: orl {{[-0-9]+}}(%e{{[sb]}}p), %ebx # 4-byte Folded Reload
412
- ; X86-NEXT: .LBB2_19: # %udiv-end
413
- ; X86-NEXT: xorl %edi, %ecx
414
- ; X86-NEXT: xorl %edi, %esi
415
- ; X86-NEXT: xorl %edi, %edx
416
- ; X86-NEXT: xorl %edi, %ebx
417
- ; X86-NEXT: subl %edi, %ebx
418
- ; X86-NEXT: sbbl %edi, %edx
419
- ; X86-NEXT: sbbl %edi, %esi
420
- ; X86-NEXT: sbbl %edi, %ecx
421
- ; X86-NEXT: movl 8(%ebp), %eax
422
- ; X86-NEXT: movl %ebx, (%eax)
423
- ; X86-NEXT: movl %edx, 4(%eax)
424
- ; X86-NEXT: movl %esi, 8(%eax)
425
- ; X86-NEXT: movl %ecx, 12(%eax)
426
- ; X86-NEXT: leal -12(%ebp), %esp
427
- ; X86-NEXT: popl %esi
428
- ; X86-NEXT: popl %edi
429
- ; X86-NEXT: popl %ebx
430
- ; X86-NEXT: popl %ebp
431
- ; X86-NEXT: retl $4
121
+ ; X86 doesn't have __divti3, so the urem is expanded into a loop.
122
+ ; X86: udiv-do-while
432
123
;
433
124
; X64-LABEL: test3:
434
125
; X64: # %bb.0:
@@ -438,7 +129,6 @@ define i128 @test3(i128 %x) nounwind {
438
129
; X64-NEXT: callq __divti3@PLT
439
130
; X64-NEXT: popq %rcx
440
131
; X64-NEXT: retq
441
- ; X86 doesn't have __divti3, so the urem is expanded into a loop.
442
132
%tmp = sdiv i128 %x , -73786976294838206467
443
133
ret i128 %tmp
444
134
}
0 commit comments