@@ -336,26 +336,15 @@ entry:
336
336
}
337
337
338
338
define i32 @ui32_100 (i32 %a , i32 %b ) {
339
- ; CHECK-SD-LABEL: ui32_100:
340
- ; CHECK-SD: // %bb.0: // %entry
341
- ; CHECK-SD-NEXT: mov w8, #34079 // =0x851f
342
- ; CHECK-SD-NEXT: mov w9, #100 // =0x64
343
- ; CHECK-SD-NEXT: movk w8, #20971, lsl #16
344
- ; CHECK-SD-NEXT: umull x8, w0, w8
345
- ; CHECK-SD-NEXT: lsr x8, x8, #37
346
- ; CHECK-SD-NEXT: msub w0, w8, w9, w0
347
- ; CHECK-SD-NEXT: ret
348
- ;
349
- ; CHECK-GI-LABEL: ui32_100:
350
- ; CHECK-GI: // %bb.0: // %entry
351
- ; CHECK-GI-NEXT: mov w8, #34079 // =0x851f
352
- ; CHECK-GI-NEXT: mov w9, #100 // =0x64
353
- ; CHECK-GI-NEXT: movk w8, #20971, lsl #16
354
- ; CHECK-GI-NEXT: umull x8, w0, w8
355
- ; CHECK-GI-NEXT: lsr x8, x8, #32
356
- ; CHECK-GI-NEXT: lsr w8, w8, #5
357
- ; CHECK-GI-NEXT: msub w0, w8, w9, w0
358
- ; CHECK-GI-NEXT: ret
339
+ ; CHECK-LABEL: ui32_100:
340
+ ; CHECK: // %bb.0: // %entry
341
+ ; CHECK-NEXT: mov w8, #34079 // =0x851f
342
+ ; CHECK-NEXT: mov w9, #100 // =0x64
343
+ ; CHECK-NEXT: movk w8, #20971, lsl #16
344
+ ; CHECK-NEXT: umull x8, w0, w8
345
+ ; CHECK-NEXT: lsr x8, x8, #37
346
+ ; CHECK-NEXT: msub w0, w8, w9, w0
347
+ ; CHECK-NEXT: ret
359
348
entry:
360
349
%s = urem i32 %a , 100
361
350
ret i32 %s
@@ -1619,15 +1608,25 @@ entry:
1619
1608
}
1620
1609
1621
1610
define <8 x i8 > @uv8i8_100 (<8 x i8 > %d , <8 x i8 > %e ) {
1622
- ; CHECK-LABEL: uv8i8_100:
1623
- ; CHECK: // %bb.0: // %entry
1624
- ; CHECK-NEXT: movi v1.8b, #41
1625
- ; CHECK-NEXT: movi v2.8b, #100
1626
- ; CHECK-NEXT: umull v1.8h, v0.8b, v1.8b
1627
- ; CHECK-NEXT: shrn v1.8b, v1.8h, #8
1628
- ; CHECK-NEXT: ushr v1.8b, v1.8b, #4
1629
- ; CHECK-NEXT: mls v0.8b, v1.8b, v2.8b
1630
- ; CHECK-NEXT: ret
1611
+ ; CHECK-SD-LABEL: uv8i8_100:
1612
+ ; CHECK-SD: // %bb.0: // %entry
1613
+ ; CHECK-SD-NEXT: movi v1.8b, #41
1614
+ ; CHECK-SD-NEXT: movi v2.8b, #100
1615
+ ; CHECK-SD-NEXT: umull v1.8h, v0.8b, v1.8b
1616
+ ; CHECK-SD-NEXT: shrn v1.8b, v1.8h, #8
1617
+ ; CHECK-SD-NEXT: ushr v1.8b, v1.8b, #4
1618
+ ; CHECK-SD-NEXT: mls v0.8b, v1.8b, v2.8b
1619
+ ; CHECK-SD-NEXT: ret
1620
+ ;
1621
+ ; CHECK-GI-LABEL: uv8i8_100:
1622
+ ; CHECK-GI: // %bb.0: // %entry
1623
+ ; CHECK-GI-NEXT: movi v1.8b, #41
1624
+ ; CHECK-GI-NEXT: movi v2.8b, #100
1625
+ ; CHECK-GI-NEXT: umull v1.8h, v0.8b, v1.8b
1626
+ ; CHECK-GI-NEXT: ushr v1.8h, v1.8h, #12
1627
+ ; CHECK-GI-NEXT: xtn v1.8b, v1.8h
1628
+ ; CHECK-GI-NEXT: mls v0.8b, v1.8b, v2.8b
1629
+ ; CHECK-GI-NEXT: ret
1631
1630
entry:
1632
1631
%s = urem <8 x i8 > %d , <i8 100 , i8 100 , i8 100 , i8 100 , i8 100 , i8 100 , i8 100 , i8 100 >
1633
1632
ret <8 x i8 > %s
@@ -2301,8 +2300,8 @@ define <4 x i16> @uv4i16_100(<4 x i16> %d, <4 x i16> %e) {
2301
2300
; CHECK-GI-NEXT: ldr d2, [x8, :lo12:.LCPI53_0]
2302
2301
; CHECK-GI-NEXT: umull v1.4s, v1.4h, v2.4h
2303
2302
; CHECK-GI-NEXT: movi v2.4h, #100
2304
- ; CHECK-GI-NEXT: shrn v1.4h , v1.4s, #16
2305
- ; CHECK-GI-NEXT: ushr v1.4h, v1.4h, #1
2303
+ ; CHECK-GI-NEXT: ushr v1.4s , v1.4s, #17
2304
+ ; CHECK-GI-NEXT: xtn v1.4h, v1.4s
2306
2305
; CHECK-GI-NEXT: mls v0.4h, v1.4h, v2.4h
2307
2306
; CHECK-GI-NEXT: ret
2308
2307
entry:
@@ -2656,8 +2655,8 @@ define <2 x i32> @uv2i32_100(<2 x i32> %d, <2 x i32> %e) {
2656
2655
; CHECK-GI-NEXT: movi v2.2s, #100
2657
2656
; CHECK-GI-NEXT: ldr d1, [x8, :lo12:.LCPI63_0]
2658
2657
; CHECK-GI-NEXT: umull v1.2d, v0.2s, v1.2s
2659
- ; CHECK-GI-NEXT: shrn v1.2s , v1.2d, #32
2660
- ; CHECK-GI-NEXT: ushr v1.2s, v1.2s, #5
2658
+ ; CHECK-GI-NEXT: ushr v1.2d , v1.2d, #37
2659
+ ; CHECK-GI-NEXT: xtn v1.2s, v1.2d
2661
2660
; CHECK-GI-NEXT: mls v0.2s, v1.2s, v2.2s
2662
2661
; CHECK-GI-NEXT: ret
2663
2662
entry:
0 commit comments