@@ -81,15 +81,14 @@ define <3 x i1> @test_srem_vec(<3 x i33> %X) nounwind {
81
81
; CHECK-NEXT: push {r4, r5, r6, r7, lr}
82
82
; CHECK-NEXT: .pad #12
83
83
; 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
89
88
; 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
92
90
; CHECK-NEXT: movs r2, r6
91
+ ; CHECK-NEXT: movs r3, r7
93
92
; CHECK-NEXT: bl __aeabi_ldivmod
94
93
; CHECK-NEXT: movs r4, r2
95
94
; CHECK-NEXT: movs r0, #3
@@ -98,13 +97,14 @@ define <3 x i1> @test_srem_vec(<3 x i33> %X) nounwind {
98
97
; CHECK-NEXT: orrs r4, r3
99
98
; CHECK-NEXT: subs r0, r4, #1
100
99
; CHECK-NEXT: sbcs r4, r0
101
- ; CHECK-NEXT: ands r7, r5
102
- ; CHECK-NEXT: rsbs r1, r7, #0
103
100
; 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
104
104
; CHECK-NEXT: movs r2, r6
105
- ; CHECK-NEXT: ldr r7, [sp] @ 4-byte Reload
106
105
; CHECK-NEXT: movs r3, r7
107
106
; CHECK-NEXT: bl __aeabi_ldivmod
107
+ ; CHECK-NEXT: movs r5, #1
108
108
; CHECK-NEXT: movs r0, r5
109
109
; CHECK-NEXT: bics r0, r3
110
110
; CHECK-NEXT: movs r1, #2
@@ -113,12 +113,12 @@ define <3 x i1> @test_srem_vec(<3 x i33> %X) nounwind {
113
113
; CHECK-NEXT: orrs r6, r0
114
114
; CHECK-NEXT: subs r0, r6, #1
115
115
; 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
119
116
; CHECK-NEXT: movs r0, #8
120
117
; CHECK-NEXT: mvns r2, r0
121
118
; 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
122
122
; CHECK-NEXT: ldr r0, [sp, #32]
123
123
; CHECK-NEXT: bl __aeabi_ldivmod
124
124
; CHECK-NEXT: ands r5, r3
0 commit comments