@@ -160,6 +160,15 @@ define i1 @srem_posC_okay0(i8 %x) {
160
160
ret i1 %r
161
161
}
162
162
163
+ define i1 @srem_posC_okay0_samesign (i8 %x ) {
164
+ ; CHECK-LABEL: @srem_posC_okay0_samesign(
165
+ ; CHECK-NEXT: ret i1 true
166
+ ;
167
+ %val = srem i8 34 , %x
168
+ %r = icmp samesign ule i8 %val , 34
169
+ ret i1 %r
170
+ }
171
+
163
172
define i1 @srem_posC_okay1 (i8 %x ) {
164
173
; CHECK-LABEL: @srem_posC_okay1(
165
174
; CHECK-NEXT: ret i1 true
@@ -169,6 +178,15 @@ define i1 @srem_posC_okay1(i8 %x) {
169
178
ret i1 %r
170
179
}
171
180
181
+ define i1 @srem_posC_okay1_samesign (i8 %x ) {
182
+ ; CHECK-LABEL: @srem_posC_okay1_samesign(
183
+ ; CHECK-NEXT: ret i1 false
184
+ ;
185
+ %val = srem i8 34 , %x
186
+ %r = icmp samesign uge i8 %val , -3
187
+ ret i1 %r
188
+ }
189
+
172
190
define i1 @srem_negC_okay0 (i8 %x ) {
173
191
; CHECK-LABEL: @srem_negC_okay0(
174
192
; CHECK-NEXT: ret i1 true
@@ -178,6 +196,17 @@ define i1 @srem_negC_okay0(i8 %x) {
178
196
ret i1 %r
179
197
}
180
198
199
+ define i1 @srem_negC_okay0_samesign (i8 %x ) {
200
+ ; CHECK-LABEL: @srem_negC_okay0_samesign(
201
+ ; CHECK-NEXT: [[VAL:%.*]] = srem i8 -34, [[X:%.*]]
202
+ ; CHECK-NEXT: [[R:%.*]] = icmp samesign ule i8 [[VAL]], 0
203
+ ; CHECK-NEXT: ret i1 [[R]]
204
+ ;
205
+ %val = srem i8 -34 , %x
206
+ %r = icmp samesign ule i8 %val , 0
207
+ ret i1 %r
208
+ }
209
+
181
210
define i1 @srem_negC_okay1 (i8 %x ) {
182
211
; CHECK-LABEL: @srem_negC_okay1(
183
212
; CHECK-NEXT: ret i1 true
@@ -187,6 +216,17 @@ define i1 @srem_negC_okay1(i8 %x) {
187
216
ret i1 %r
188
217
}
189
218
219
+ define i1 @srem_negC_okay1_samesign (i8 %x ) {
220
+ ; CHECK-LABEL: @srem_negC_okay1_samesign(
221
+ ; CHECK-NEXT: [[VAL:%.*]] = srem i8 -34, [[X:%.*]]
222
+ ; CHECK-NEXT: [[R:%.*]] = icmp samesign uge i8 [[VAL]], -34
223
+ ; CHECK-NEXT: ret i1 [[R]]
224
+ ;
225
+ %val = srem i8 -34 , %x
226
+ %r = icmp samesign uge i8 %val , -34
227
+ ret i1 %r
228
+ }
229
+
190
230
define i1 @srem_posC_fail0 (i8 %x ) {
191
231
; CHECK-LABEL: @srem_posC_fail0(
192
232
; CHECK-NEXT: [[VAL:%.*]] = srem i8 34, [[X:%.*]]
0 commit comments