@@ -81,15 +81,14 @@ define <3 x i1> @test_srem_vec(<3 x i33> %X) nounwind {
8181; CHECK-NEXT: push {r4, r5, r6, r7, lr}
8282; CHECK-NEXT: .pad #12
8383; CHECK-NEXT: sub sp, #12
84- ; CHECK-NEXT: movs r7, r3
85- ; CHECK-NEXT: str r2, [sp, #4] @ 4-byte Spill
86- ; CHECK-NEXT: movs r5, #1
87- ; CHECK-NEXT: ands r1, r5
88- ; CHECK-NEXT: rsbs r1, r1, #0
84+ ; CHECK-NEXT: str r3, [sp, #4] @ 4-byte Spill
85+ ; CHECK-NEXT: movs r5, r2
86+ ; CHECK-NEXT: lsls r1, r1, #31
87+ ; CHECK-NEXT: asrs r1, r1, #31
8988; CHECK-NEXT: movs r6, #9
90- ; CHECK-NEXT: movs r3, #0
91- ; CHECK-NEXT: str r3, [sp] @ 4-byte Spill
89+ ; CHECK-NEXT: movs r7, #0
9290; CHECK-NEXT: movs r2, r6
91+ ; CHECK-NEXT: movs r3, r7
9392; CHECK-NEXT: bl __aeabi_ldivmod
9493; CHECK-NEXT: movs r4, r2
9594; CHECK-NEXT: movs r0, #3
@@ -98,13 +97,14 @@ define <3 x i1> @test_srem_vec(<3 x i33> %X) nounwind {
9897; CHECK-NEXT: orrs r4, r3
9998; CHECK-NEXT: subs r0, r4, #1
10099; CHECK-NEXT: sbcs r4, r0
101- ; CHECK-NEXT: ands r7, r5
102- ; CHECK-NEXT: rsbs r1, r7, #0
103100; CHECK-NEXT: ldr r0, [sp, #4] @ 4-byte Reload
101+ ; CHECK-NEXT: lsls r0, r0, #31
102+ ; CHECK-NEXT: asrs r1, r0, #31
103+ ; CHECK-NEXT: movs r0, r5
104104; CHECK-NEXT: movs r2, r6
105- ; CHECK-NEXT: ldr r7, [sp] @ 4-byte Reload
106105; CHECK-NEXT: movs r3, r7
107106; CHECK-NEXT: bl __aeabi_ldivmod
107+ ; CHECK-NEXT: movs r5, #1
108108; CHECK-NEXT: movs r0, r5
109109; CHECK-NEXT: bics r0, r3
110110; CHECK-NEXT: movs r1, #2
@@ -113,12 +113,12 @@ define <3 x i1> @test_srem_vec(<3 x i33> %X) nounwind {
113113; CHECK-NEXT: orrs r6, r0
114114; CHECK-NEXT: subs r0, r6, #1
115115; CHECK-NEXT: sbcs r6, r0
116- ; CHECK-NEXT: ldr r0, [sp, #36]
117- ; CHECK-NEXT: ands r0, r5
118- ; CHECK-NEXT: rsbs r1, r0, #0
119116; CHECK-NEXT: movs r0, #8
120117; CHECK-NEXT: mvns r2, r0
121118; CHECK-NEXT: mvns r3, r7
119+ ; CHECK-NEXT: ldr r0, [sp, #36]
120+ ; CHECK-NEXT: lsls r0, r0, #31
121+ ; CHECK-NEXT: asrs r1, r0, #31
122122; CHECK-NEXT: ldr r0, [sp, #32]
123123; CHECK-NEXT: bl __aeabi_ldivmod
124124; CHECK-NEXT: ands r5, r3
0 commit comments