@@ -191,8 +191,7 @@ define signext i32 @sdiv_si32_ui32_ui32(i32 %a, i32 %b) {
191
191
; LA64: # %bb.0: # %entry
192
192
; LA64-NEXT: addi.w $a1, $a1, 0
193
193
; LA64-NEXT: addi.w $a0, $a0, 0
194
- ; LA64-NEXT: div.d $a0, $a0, $a1
195
- ; LA64-NEXT: addi.w $a0, $a0, 0
194
+ ; LA64-NEXT: div.w $a0, $a0, $a1
196
195
; LA64-NEXT: ret
197
196
;
198
197
; LA32-TRAP-LABEL: sdiv_si32_ui32_ui32:
@@ -208,12 +207,11 @@ define signext i32 @sdiv_si32_ui32_ui32(i32 %a, i32 %b) {
208
207
; LA64-TRAP: # %bb.0: # %entry
209
208
; LA64-TRAP-NEXT: addi.w $a1, $a1, 0
210
209
; LA64-TRAP-NEXT: addi.w $a0, $a0, 0
211
- ; LA64-TRAP-NEXT: div.d $a0, $a0, $a1
210
+ ; LA64-TRAP-NEXT: div.w $a0, $a0, $a1
212
211
; LA64-TRAP-NEXT: bnez $a1, .LBB5_2
213
212
; LA64-TRAP-NEXT: # %bb.1: # %entry
214
213
; LA64-TRAP-NEXT: break 7
215
214
; LA64-TRAP-NEXT: .LBB5_2: # %entry
216
- ; LA64-TRAP-NEXT: addi.w $a0, $a0, 0
217
215
; LA64-TRAP-NEXT: ret
218
216
entry:
219
217
%r = sdiv i32 %a , %b
@@ -228,8 +226,7 @@ define signext i32 @sdiv_si32_si32_si32(i32 signext %a, i32 signext %b) {
228
226
;
229
227
; LA64-LABEL: sdiv_si32_si32_si32:
230
228
; LA64: # %bb.0: # %entry
231
- ; LA64-NEXT: div.d $a0, $a0, $a1
232
- ; LA64-NEXT: addi.w $a0, $a0, 0
229
+ ; LA64-NEXT: div.w $a0, $a0, $a1
233
230
; LA64-NEXT: ret
234
231
;
235
232
; LA32-TRAP-LABEL: sdiv_si32_si32_si32:
@@ -243,12 +240,11 @@ define signext i32 @sdiv_si32_si32_si32(i32 signext %a, i32 signext %b) {
243
240
;
244
241
; LA64-TRAP-LABEL: sdiv_si32_si32_si32:
245
242
; LA64-TRAP: # %bb.0: # %entry
246
- ; LA64-TRAP-NEXT: div.d $a0, $a0, $a1
243
+ ; LA64-TRAP-NEXT: div.w $a0, $a0, $a1
247
244
; LA64-TRAP-NEXT: bnez $a1, .LBB6_2
248
245
; LA64-TRAP-NEXT: # %bb.1: # %entry
249
246
; LA64-TRAP-NEXT: break 7
250
247
; LA64-TRAP-NEXT: .LBB6_2: # %entry
251
- ; LA64-TRAP-NEXT: addi.w $a0, $a0, 0
252
248
; LA64-TRAP-NEXT: ret
253
249
entry:
254
250
%r = sdiv i32 %a , %b
@@ -407,9 +403,9 @@ define i32 @udiv_i32(i32 %a, i32 %b) {
407
403
;
408
404
; LA64-LABEL: udiv_i32:
409
405
; LA64: # %bb.0: # %entry
410
- ; LA64-NEXT: bstrpick.d $a1, $a1, 31 , 0
411
- ; LA64-NEXT: bstrpick.d $a0, $a0, 31 , 0
412
- ; LA64-NEXT: div.du $a0, $a0, $a1
406
+ ; LA64-NEXT: addi.w $a1, $a1, 0
407
+ ; LA64-NEXT: addi.w $a0, $a0, 0
408
+ ; LA64-NEXT: div.wu $a0, $a0, $a1
413
409
; LA64-NEXT: ret
414
410
;
415
411
; LA32-TRAP-LABEL: udiv_i32:
@@ -423,9 +419,9 @@ define i32 @udiv_i32(i32 %a, i32 %b) {
423
419
;
424
420
; LA64-TRAP-LABEL: udiv_i32:
425
421
; LA64-TRAP: # %bb.0: # %entry
426
- ; LA64-TRAP-NEXT: bstrpick.d $a1, $a1, 31 , 0
427
- ; LA64-TRAP-NEXT: bstrpick.d $a0, $a0, 31 , 0
428
- ; LA64-TRAP-NEXT: div.du $a0, $a0, $a1
422
+ ; LA64-TRAP-NEXT: addi.w $a1, $a1, 0
423
+ ; LA64-TRAP-NEXT: addi.w $a0, $a0, 0
424
+ ; LA64-TRAP-NEXT: div.wu $a0, $a0, $a1
429
425
; LA64-TRAP-NEXT: bnez $a1, .LBB11_2
430
426
; LA64-TRAP-NEXT: # %bb.1: # %entry
431
427
; LA64-TRAP-NEXT: break 7
@@ -444,9 +440,7 @@ define i32 @udiv_ui32_si32_si32(i32 signext %a, i32 signext %b) {
444
440
;
445
441
; LA64-LABEL: udiv_ui32_si32_si32:
446
442
; LA64: # %bb.0: # %entry
447
- ; LA64-NEXT: bstrpick.d $a1, $a1, 31, 0
448
- ; LA64-NEXT: bstrpick.d $a0, $a0, 31, 0
449
- ; LA64-NEXT: div.du $a0, $a0, $a1
443
+ ; LA64-NEXT: div.wu $a0, $a0, $a1
450
444
; LA64-NEXT: ret
451
445
;
452
446
; LA32-TRAP-LABEL: udiv_ui32_si32_si32:
@@ -460,9 +454,7 @@ define i32 @udiv_ui32_si32_si32(i32 signext %a, i32 signext %b) {
460
454
;
461
455
; LA64-TRAP-LABEL: udiv_ui32_si32_si32:
462
456
; LA64-TRAP: # %bb.0: # %entry
463
- ; LA64-TRAP-NEXT: bstrpick.d $a1, $a1, 31, 0
464
- ; LA64-TRAP-NEXT: bstrpick.d $a0, $a0, 31, 0
465
- ; LA64-TRAP-NEXT: div.du $a0, $a0, $a1
457
+ ; LA64-TRAP-NEXT: div.wu $a0, $a0, $a1
466
458
; LA64-TRAP-NEXT: bnez $a1, .LBB12_2
467
459
; LA64-TRAP-NEXT: # %bb.1: # %entry
468
460
; LA64-TRAP-NEXT: break 7
@@ -481,10 +473,9 @@ define signext i32 @udiv_si32_ui32_ui32(i32 %a, i32 %b) {
481
473
;
482
474
; LA64-LABEL: udiv_si32_ui32_ui32:
483
475
; LA64: # %bb.0: # %entry
484
- ; LA64-NEXT: bstrpick.d $a1, $a1, 31, 0
485
- ; LA64-NEXT: bstrpick.d $a0, $a0, 31, 0
486
- ; LA64-NEXT: div.du $a0, $a0, $a1
476
+ ; LA64-NEXT: addi.w $a1, $a1, 0
487
477
; LA64-NEXT: addi.w $a0, $a0, 0
478
+ ; LA64-NEXT: div.wu $a0, $a0, $a1
488
479
; LA64-NEXT: ret
489
480
;
490
481
; LA32-TRAP-LABEL: udiv_si32_ui32_ui32:
@@ -498,14 +489,13 @@ define signext i32 @udiv_si32_ui32_ui32(i32 %a, i32 %b) {
498
489
;
499
490
; LA64-TRAP-LABEL: udiv_si32_ui32_ui32:
500
491
; LA64-TRAP: # %bb.0: # %entry
501
- ; LA64-TRAP-NEXT: bstrpick.d $a1, $a1, 31 , 0
502
- ; LA64-TRAP-NEXT: bstrpick.d $a0, $a0, 31 , 0
503
- ; LA64-TRAP-NEXT: div.du $a0, $a0, $a1
492
+ ; LA64-TRAP-NEXT: addi.w $a1, $a1, 0
493
+ ; LA64-TRAP-NEXT: addi.w $a0, $a0, 0
494
+ ; LA64-TRAP-NEXT: div.wu $a0, $a0, $a1
504
495
; LA64-TRAP-NEXT: bnez $a1, .LBB13_2
505
496
; LA64-TRAP-NEXT: # %bb.1: # %entry
506
497
; LA64-TRAP-NEXT: break 7
507
498
; LA64-TRAP-NEXT: .LBB13_2: # %entry
508
- ; LA64-TRAP-NEXT: addi.w $a0, $a0, 0
509
499
; LA64-TRAP-NEXT: ret
510
500
entry:
511
501
%r = udiv i32 %a , %b
@@ -520,10 +510,7 @@ define signext i32 @udiv_si32_si32_si32(i32 signext %a, i32 signext %b) {
520
510
;
521
511
; LA64-LABEL: udiv_si32_si32_si32:
522
512
; LA64: # %bb.0: # %entry
523
- ; LA64-NEXT: bstrpick.d $a1, $a1, 31, 0
524
- ; LA64-NEXT: bstrpick.d $a0, $a0, 31, 0
525
- ; LA64-NEXT: div.du $a0, $a0, $a1
526
- ; LA64-NEXT: addi.w $a0, $a0, 0
513
+ ; LA64-NEXT: div.wu $a0, $a0, $a1
527
514
; LA64-NEXT: ret
528
515
;
529
516
; LA32-TRAP-LABEL: udiv_si32_si32_si32:
@@ -537,14 +524,11 @@ define signext i32 @udiv_si32_si32_si32(i32 signext %a, i32 signext %b) {
537
524
;
538
525
; LA64-TRAP-LABEL: udiv_si32_si32_si32:
539
526
; LA64-TRAP: # %bb.0: # %entry
540
- ; LA64-TRAP-NEXT: bstrpick.d $a1, $a1, 31, 0
541
- ; LA64-TRAP-NEXT: bstrpick.d $a0, $a0, 31, 0
542
- ; LA64-TRAP-NEXT: div.du $a0, $a0, $a1
527
+ ; LA64-TRAP-NEXT: div.wu $a0, $a0, $a1
543
528
; LA64-TRAP-NEXT: bnez $a1, .LBB14_2
544
529
; LA64-TRAP-NEXT: # %bb.1: # %entry
545
530
; LA64-TRAP-NEXT: break 7
546
531
; LA64-TRAP-NEXT: .LBB14_2: # %entry
547
- ; LA64-TRAP-NEXT: addi.w $a0, $a0, 0
548
532
; LA64-TRAP-NEXT: ret
549
533
entry:
550
534
%r = udiv i32 %a , %b
@@ -995,9 +979,9 @@ define i32 @urem_i32(i32 %a, i32 %b) {
995
979
;
996
980
; LA64-LABEL: urem_i32:
997
981
; LA64: # %bb.0: # %entry
998
- ; LA64-NEXT: bstrpick.d $a1, $a1, 31 , 0
999
- ; LA64-NEXT: bstrpick.d $a0, $a0, 31 , 0
1000
- ; LA64-NEXT: mod.du $a0, $a0, $a1
982
+ ; LA64-NEXT: addi.w $a1, $a1, 0
983
+ ; LA64-NEXT: addi.w $a0, $a0, 0
984
+ ; LA64-NEXT: mod.wu $a0, $a0, $a1
1001
985
; LA64-NEXT: ret
1002
986
;
1003
987
; LA32-TRAP-LABEL: urem_i32:
@@ -1011,9 +995,9 @@ define i32 @urem_i32(i32 %a, i32 %b) {
1011
995
;
1012
996
; LA64-TRAP-LABEL: urem_i32:
1013
997
; LA64-TRAP: # %bb.0: # %entry
1014
- ; LA64-TRAP-NEXT: bstrpick.d $a1, $a1, 31 , 0
1015
- ; LA64-TRAP-NEXT: bstrpick.d $a0, $a0, 31 , 0
1016
- ; LA64-TRAP-NEXT: mod.du $a0, $a0, $a1
998
+ ; LA64-TRAP-NEXT: addi.w $a1, $a1, 0
999
+ ; LA64-TRAP-NEXT: addi.w $a0, $a0, 0
1000
+ ; LA64-TRAP-NEXT: mod.wu $a0, $a0, $a1
1017
1001
; LA64-TRAP-NEXT: bnez $a1, .LBB27_2
1018
1002
; LA64-TRAP-NEXT: # %bb.1: # %entry
1019
1003
; LA64-TRAP-NEXT: break 7
@@ -1032,9 +1016,7 @@ define i32 @urem_ui32_si32_si32(i32 signext %a, i32 signext %b) {
1032
1016
;
1033
1017
; LA64-LABEL: urem_ui32_si32_si32:
1034
1018
; LA64: # %bb.0: # %entry
1035
- ; LA64-NEXT: bstrpick.d $a1, $a1, 31, 0
1036
- ; LA64-NEXT: bstrpick.d $a0, $a0, 31, 0
1037
- ; LA64-NEXT: mod.du $a0, $a0, $a1
1019
+ ; LA64-NEXT: mod.wu $a0, $a0, $a1
1038
1020
; LA64-NEXT: ret
1039
1021
;
1040
1022
; LA32-TRAP-LABEL: urem_ui32_si32_si32:
@@ -1048,9 +1030,7 @@ define i32 @urem_ui32_si32_si32(i32 signext %a, i32 signext %b) {
1048
1030
;
1049
1031
; LA64-TRAP-LABEL: urem_ui32_si32_si32:
1050
1032
; LA64-TRAP: # %bb.0: # %entry
1051
- ; LA64-TRAP-NEXT: bstrpick.d $a1, $a1, 31, 0
1052
- ; LA64-TRAP-NEXT: bstrpick.d $a0, $a0, 31, 0
1053
- ; LA64-TRAP-NEXT: mod.du $a0, $a0, $a1
1033
+ ; LA64-TRAP-NEXT: mod.wu $a0, $a0, $a1
1054
1034
; LA64-TRAP-NEXT: bnez $a1, .LBB28_2
1055
1035
; LA64-TRAP-NEXT: # %bb.1: # %entry
1056
1036
; LA64-TRAP-NEXT: break 7
@@ -1069,10 +1049,9 @@ define signext i32 @urem_si32_ui32_ui32(i32 %a, i32 %b) {
1069
1049
;
1070
1050
; LA64-LABEL: urem_si32_ui32_ui32:
1071
1051
; LA64: # %bb.0: # %entry
1072
- ; LA64-NEXT: bstrpick.d $a1, $a1, 31, 0
1073
- ; LA64-NEXT: bstrpick.d $a0, $a0, 31, 0
1074
- ; LA64-NEXT: mod.du $a0, $a0, $a1
1052
+ ; LA64-NEXT: addi.w $a1, $a1, 0
1075
1053
; LA64-NEXT: addi.w $a0, $a0, 0
1054
+ ; LA64-NEXT: mod.wu $a0, $a0, $a1
1076
1055
; LA64-NEXT: ret
1077
1056
;
1078
1057
; LA32-TRAP-LABEL: urem_si32_ui32_ui32:
@@ -1086,14 +1065,13 @@ define signext i32 @urem_si32_ui32_ui32(i32 %a, i32 %b) {
1086
1065
;
1087
1066
; LA64-TRAP-LABEL: urem_si32_ui32_ui32:
1088
1067
; LA64-TRAP: # %bb.0: # %entry
1089
- ; LA64-TRAP-NEXT: bstrpick.d $a1, $a1, 31 , 0
1090
- ; LA64-TRAP-NEXT: bstrpick.d $a0, $a0, 31 , 0
1091
- ; LA64-TRAP-NEXT: mod.du $a0, $a0, $a1
1068
+ ; LA64-TRAP-NEXT: addi.w $a1, $a1, 0
1069
+ ; LA64-TRAP-NEXT: addi.w $a0, $a0, 0
1070
+ ; LA64-TRAP-NEXT: mod.wu $a0, $a0, $a1
1092
1071
; LA64-TRAP-NEXT: bnez $a1, .LBB29_2
1093
1072
; LA64-TRAP-NEXT: # %bb.1: # %entry
1094
1073
; LA64-TRAP-NEXT: break 7
1095
1074
; LA64-TRAP-NEXT: .LBB29_2: # %entry
1096
- ; LA64-TRAP-NEXT: addi.w $a0, $a0, 0
1097
1075
; LA64-TRAP-NEXT: ret
1098
1076
entry:
1099
1077
%r = urem i32 %a , %b
@@ -1108,10 +1086,7 @@ define signext i32 @urem_si32_si32_si32(i32 signext %a, i32 signext %b) {
1108
1086
;
1109
1087
; LA64-LABEL: urem_si32_si32_si32:
1110
1088
; LA64: # %bb.0: # %entry
1111
- ; LA64-NEXT: bstrpick.d $a1, $a1, 31, 0
1112
- ; LA64-NEXT: bstrpick.d $a0, $a0, 31, 0
1113
- ; LA64-NEXT: mod.du $a0, $a0, $a1
1114
- ; LA64-NEXT: addi.w $a0, $a0, 0
1089
+ ; LA64-NEXT: mod.wu $a0, $a0, $a1
1115
1090
; LA64-NEXT: ret
1116
1091
;
1117
1092
; LA32-TRAP-LABEL: urem_si32_si32_si32:
@@ -1125,14 +1100,11 @@ define signext i32 @urem_si32_si32_si32(i32 signext %a, i32 signext %b) {
1125
1100
;
1126
1101
; LA64-TRAP-LABEL: urem_si32_si32_si32:
1127
1102
; LA64-TRAP: # %bb.0: # %entry
1128
- ; LA64-TRAP-NEXT: bstrpick.d $a1, $a1, 31, 0
1129
- ; LA64-TRAP-NEXT: bstrpick.d $a0, $a0, 31, 0
1130
- ; LA64-TRAP-NEXT: mod.du $a0, $a0, $a1
1103
+ ; LA64-TRAP-NEXT: mod.wu $a0, $a0, $a1
1131
1104
; LA64-TRAP-NEXT: bnez $a1, .LBB30_2
1132
1105
; LA64-TRAP-NEXT: # %bb.1: # %entry
1133
1106
; LA64-TRAP-NEXT: break 7
1134
1107
; LA64-TRAP-NEXT: .LBB30_2: # %entry
1135
- ; LA64-TRAP-NEXT: addi.w $a0, $a0, 0
1136
1108
; LA64-TRAP-NEXT: ret
1137
1109
entry:
1138
1110
%r = urem i32 %a , %b
0 commit comments