File tree Expand file tree Collapse file tree 1 file changed +16
-0
lines changed
llvm/test/Transforms/InstCombine Expand file tree Collapse file tree 1 file changed +16
-0
lines changed Original file line number Diff line number Diff line change 3
3
4
4
declare i1 @barrier ()
5
5
declare void @llvm.assume (i1 )
6
+ declare void @use.i8 (i8 )
6
7
7
8
define i1 @icmp_ult_x_y (i8 %x , i8 %y ) {
8
9
; CHECK-LABEL: @icmp_ult_x_y(
@@ -262,6 +263,21 @@ define i1 @icmp_eq_x_invertable_y(i8 %x, i8 %y) {
262
263
ret i1 %r
263
264
}
264
265
266
+ define i1 @icmp_eq_x_invertable_y_fail_multiuse (i8 %x , i8 %y ) {
267
+ ; CHECK-LABEL: @icmp_eq_x_invertable_y_fail_multiuse(
268
+ ; CHECK-NEXT: [[YY:%.*]] = xor i8 [[Y:%.*]], -1
269
+ ; CHECK-NEXT: [[AND:%.*]] = and i8 [[YY]], [[X:%.*]]
270
+ ; CHECK-NEXT: call void @use.i8(i8 [[AND]])
271
+ ; CHECK-NEXT: [[R:%.*]] = icmp eq i8 [[AND]], [[X]]
272
+ ; CHECK-NEXT: ret i1 [[R]]
273
+ ;
274
+ %yy = xor i8 %y , -1
275
+ %and = and i8 %x , %yy
276
+ call void @use.i8 (i8 %and )
277
+ %r = icmp eq i8 %x , %and
278
+ ret i1 %r
279
+ }
280
+
265
281
define i1 @icmp_eq_x_invertable_y2_todo (i8 %x , i1 %y ) {
266
282
; CHECK-LABEL: @icmp_eq_x_invertable_y2_todo(
267
283
; CHECK-NEXT: [[YY:%.*]] = select i1 [[Y:%.*]], i8 7, i8 24
You can’t perform that action at this time.
0 commit comments