@@ -27,16 +27,13 @@ body: |
27
27
; CHECK-M-LABEL: name: sdiv_i8
28
28
; CHECK-M: [[COPY:%[0-9]+]]:_(s64) = COPY $x10
29
29
; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11
30
- ; CHECK-M-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)
31
- ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 24
32
- ; CHECK-M-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[TRUNC]], [[C]](s32)
33
- ; CHECK-M-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)
34
- ; CHECK-M-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)
35
- ; CHECK-M-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[TRUNC1]], [[C]](s32)
36
- ; CHECK-M-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)
37
- ; CHECK-M-NEXT: [[SDIV:%[0-9]+]]:_(s32) = G_SDIV [[ASHR]], [[ASHR1]]
38
- ; CHECK-M-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[SDIV]](s32)
39
- ; CHECK-M-NEXT: $x10 = COPY [[ANYEXT]](s64)
30
+ ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 56
31
+ ; CHECK-M-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)
32
+ ; CHECK-M-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)
33
+ ; CHECK-M-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)
34
+ ; CHECK-M-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)
35
+ ; CHECK-M-NEXT: [[DIVW:%[0-9]+]]:_(s64) = G_DIVW [[ASHR]], [[ASHR1]]
36
+ ; CHECK-M-NEXT: $x10 = COPY [[DIVW]](s64)
40
37
; CHECK-M-NEXT: PseudoRET implicit $x10
41
38
%0:_(s64) = COPY $x10
42
39
%1:_(s64) = COPY $x11
@@ -72,16 +69,13 @@ body: |
72
69
; CHECK-M-LABEL: name: sdiv_i15
73
70
; CHECK-M: [[COPY:%[0-9]+]]:_(s64) = COPY $x10
74
71
; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11
75
- ; CHECK-M-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)
76
- ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 17
77
- ; CHECK-M-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[TRUNC]], [[C]](s32)
78
- ; CHECK-M-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)
79
- ; CHECK-M-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)
80
- ; CHECK-M-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[TRUNC1]], [[C]](s32)
81
- ; CHECK-M-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)
82
- ; CHECK-M-NEXT: [[SDIV:%[0-9]+]]:_(s32) = G_SDIV [[ASHR]], [[ASHR1]]
83
- ; CHECK-M-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[SDIV]](s32)
84
- ; CHECK-M-NEXT: $x10 = COPY [[ANYEXT]](s64)
72
+ ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 49
73
+ ; CHECK-M-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)
74
+ ; CHECK-M-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)
75
+ ; CHECK-M-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)
76
+ ; CHECK-M-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)
77
+ ; CHECK-M-NEXT: [[DIVW:%[0-9]+]]:_(s64) = G_DIVW [[ASHR]], [[ASHR1]]
78
+ ; CHECK-M-NEXT: $x10 = COPY [[DIVW]](s64)
85
79
; CHECK-M-NEXT: PseudoRET implicit $x10
86
80
%0:_(s64) = COPY $x10
87
81
%1:_(s64) = COPY $x11
@@ -117,16 +111,13 @@ body: |
117
111
; CHECK-M-LABEL: name: sdiv_i16
118
112
; CHECK-M: [[COPY:%[0-9]+]]:_(s64) = COPY $x10
119
113
; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11
120
- ; CHECK-M-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)
121
- ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16
122
- ; CHECK-M-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[TRUNC]], [[C]](s32)
123
- ; CHECK-M-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32)
124
- ; CHECK-M-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)
125
- ; CHECK-M-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[TRUNC1]], [[C]](s32)
126
- ; CHECK-M-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32)
127
- ; CHECK-M-NEXT: [[SDIV:%[0-9]+]]:_(s32) = G_SDIV [[ASHR]], [[ASHR1]]
128
- ; CHECK-M-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[SDIV]](s32)
129
- ; CHECK-M-NEXT: $x10 = COPY [[ANYEXT]](s64)
114
+ ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 48
115
+ ; CHECK-M-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[C]](s64)
116
+ ; CHECK-M-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[C]](s64)
117
+ ; CHECK-M-NEXT: [[SHL1:%[0-9]+]]:_(s64) = G_SHL [[COPY1]], [[C]](s64)
118
+ ; CHECK-M-NEXT: [[ASHR1:%[0-9]+]]:_(s64) = G_ASHR [[SHL1]], [[C]](s64)
119
+ ; CHECK-M-NEXT: [[DIVW:%[0-9]+]]:_(s64) = G_DIVW [[ASHR]], [[ASHR1]]
120
+ ; CHECK-M-NEXT: $x10 = COPY [[DIVW]](s64)
130
121
; CHECK-M-NEXT: PseudoRET implicit $x10
131
122
%0:_(s64) = COPY $x10
132
123
%1:_(s64) = COPY $x11
@@ -159,11 +150,8 @@ body: |
159
150
; CHECK-M-LABEL: name: sdiv_i32
160
151
; CHECK-M: [[COPY:%[0-9]+]]:_(s64) = COPY $x10
161
152
; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11
162
- ; CHECK-M-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)
163
- ; CHECK-M-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)
164
- ; CHECK-M-NEXT: [[SDIV:%[0-9]+]]:_(s32) = G_SDIV [[TRUNC]], [[TRUNC1]]
165
- ; CHECK-M-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[SDIV]](s32)
166
- ; CHECK-M-NEXT: $x10 = COPY [[ANYEXT]](s64)
153
+ ; CHECK-M-NEXT: [[DIVW:%[0-9]+]]:_(s64) = G_DIVW [[COPY]], [[COPY1]]
154
+ ; CHECK-M-NEXT: $x10 = COPY [[DIVW]](s64)
167
155
; CHECK-M-NEXT: PseudoRET implicit $x10
168
156
%0:_(s64) = COPY $x10
169
157
%1:_(s64) = COPY $x11
@@ -343,14 +331,11 @@ body: |
343
331
; CHECK-M-LABEL: name: udiv_i8
344
332
; CHECK-M: [[COPY:%[0-9]+]]:_(s64) = COPY $x10
345
333
; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11
346
- ; CHECK-M-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)
347
- ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255
348
- ; CHECK-M-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[TRUNC]], [[C]]
349
- ; CHECK-M-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)
350
- ; CHECK-M-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[TRUNC1]], [[C]]
351
- ; CHECK-M-NEXT: [[UDIV:%[0-9]+]]:_(s32) = G_UDIV [[AND]], [[AND1]]
352
- ; CHECK-M-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[UDIV]](s32)
353
- ; CHECK-M-NEXT: $x10 = COPY [[ANYEXT]](s64)
334
+ ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 255
335
+ ; CHECK-M-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]
336
+ ; CHECK-M-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]
337
+ ; CHECK-M-NEXT: [[DIVUW:%[0-9]+]]:_(s64) = G_DIVUW [[AND]], [[AND1]]
338
+ ; CHECK-M-NEXT: $x10 = COPY [[DIVUW]](s64)
354
339
; CHECK-M-NEXT: PseudoRET implicit $x10
355
340
%0:_(s64) = COPY $x10
356
341
%1:_(s64) = COPY $x11
@@ -384,14 +369,11 @@ body: |
384
369
; CHECK-M-LABEL: name: udiv_i15
385
370
; CHECK-M: [[COPY:%[0-9]+]]:_(s64) = COPY $x10
386
371
; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11
387
- ; CHECK-M-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)
388
- ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 32767
389
- ; CHECK-M-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[TRUNC]], [[C]]
390
- ; CHECK-M-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)
391
- ; CHECK-M-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[TRUNC1]], [[C]]
392
- ; CHECK-M-NEXT: [[UDIV:%[0-9]+]]:_(s32) = G_UDIV [[AND]], [[AND1]]
393
- ; CHECK-M-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[UDIV]](s32)
394
- ; CHECK-M-NEXT: $x10 = COPY [[ANYEXT]](s64)
372
+ ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 32767
373
+ ; CHECK-M-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]
374
+ ; CHECK-M-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]
375
+ ; CHECK-M-NEXT: [[DIVUW:%[0-9]+]]:_(s64) = G_DIVUW [[AND]], [[AND1]]
376
+ ; CHECK-M-NEXT: $x10 = COPY [[DIVUW]](s64)
395
377
; CHECK-M-NEXT: PseudoRET implicit $x10
396
378
%0:_(s64) = COPY $x10
397
379
%1:_(s64) = COPY $x11
@@ -425,14 +407,11 @@ body: |
425
407
; CHECK-M-LABEL: name: udiv_i16
426
408
; CHECK-M: [[COPY:%[0-9]+]]:_(s64) = COPY $x10
427
409
; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11
428
- ; CHECK-M-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)
429
- ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535
430
- ; CHECK-M-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[TRUNC]], [[C]]
431
- ; CHECK-M-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)
432
- ; CHECK-M-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[TRUNC1]], [[C]]
433
- ; CHECK-M-NEXT: [[UDIV:%[0-9]+]]:_(s32) = G_UDIV [[AND]], [[AND1]]
434
- ; CHECK-M-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[UDIV]](s32)
435
- ; CHECK-M-NEXT: $x10 = COPY [[ANYEXT]](s64)
410
+ ; CHECK-M-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 65535
411
+ ; CHECK-M-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]
412
+ ; CHECK-M-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]
413
+ ; CHECK-M-NEXT: [[DIVUW:%[0-9]+]]:_(s64) = G_DIVUW [[AND]], [[AND1]]
414
+ ; CHECK-M-NEXT: $x10 = COPY [[DIVUW]](s64)
436
415
; CHECK-M-NEXT: PseudoRET implicit $x10
437
416
%0:_(s64) = COPY $x10
438
417
%1:_(s64) = COPY $x11
@@ -466,11 +445,8 @@ body: |
466
445
; CHECK-M-LABEL: name: udiv_i32
467
446
; CHECK-M: [[COPY:%[0-9]+]]:_(s64) = COPY $x10
468
447
; CHECK-M-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x11
469
- ; CHECK-M-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)
470
- ; CHECK-M-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s64)
471
- ; CHECK-M-NEXT: [[UDIV:%[0-9]+]]:_(s32) = G_UDIV [[TRUNC]], [[TRUNC1]]
472
- ; CHECK-M-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[UDIV]](s32)
473
- ; CHECK-M-NEXT: $x10 = COPY [[ANYEXT]](s64)
448
+ ; CHECK-M-NEXT: [[DIVUW:%[0-9]+]]:_(s64) = G_DIVUW [[COPY]], [[COPY1]]
449
+ ; CHECK-M-NEXT: $x10 = COPY [[DIVUW]](s64)
474
450
; CHECK-M-NEXT: PseudoRET implicit $x10
475
451
%0:_(s64) = COPY $x10
476
452
%1:_(s64) = COPY $x11
0 commit comments