@@ -336,26 +336,15 @@ entry:
336336}
337337
338338define 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
359348entry:
360349 %s = urem i32 %a , 100
361350 ret i32 %s
@@ -1619,15 +1608,25 @@ entry:
16191608}
16201609
16211610define <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
16311630entry:
16321631 %s = urem <8 x i8 > %d , <i8 100 , i8 100 , i8 100 , i8 100 , i8 100 , i8 100 , i8 100 , i8 100 >
16331632 ret <8 x i8 > %s
@@ -2301,8 +2300,8 @@ define <4 x i16> @uv4i16_100(<4 x i16> %d, <4 x i16> %e) {
23012300; CHECK-GI-NEXT: ldr d2, [x8, :lo12:.LCPI53_0]
23022301; CHECK-GI-NEXT: umull v1.4s, v1.4h, v2.4h
23032302; 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
23062305; CHECK-GI-NEXT: mls v0.4h, v1.4h, v2.4h
23072306; CHECK-GI-NEXT: ret
23082307entry:
@@ -2656,8 +2655,8 @@ define <2 x i32> @uv2i32_100(<2 x i32> %d, <2 x i32> %e) {
26562655; CHECK-GI-NEXT: movi v2.2s, #100
26572656; CHECK-GI-NEXT: ldr d1, [x8, :lo12:.LCPI63_0]
26582657; 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
26612660; CHECK-GI-NEXT: mls v0.2s, v1.2s, v2.2s
26622661; CHECK-GI-NEXT: ret
26632662entry:
0 commit comments