@@ -9,10 +9,8 @@ declare void @use(i32)
99define i1 @cvt_icmp_0_zext_plus_zext_eq_i16 (i16 %arg , i16 %arg1 ) {
1010; CHECK-LABEL: @cvt_icmp_0_zext_plus_zext_eq_i16(
1111; CHECK-NEXT: bb:
12- ; CHECK-NEXT: [[I:%.*]] = zext i16 [[ARG:%.*]] to i32
13- ; CHECK-NEXT: [[I2:%.*]] = zext i16 [[ARG1:%.*]] to i32
14- ; CHECK-NEXT: [[I3:%.*]] = sub nsw i32 0, [[I]]
15- ; CHECK-NEXT: [[I4:%.*]] = icmp eq i32 [[I2]], [[I3]]
12+ ; CHECK-NEXT: [[TMP0:%.*]] = or i16 [[ARG1:%.*]], [[ARG:%.*]]
13+ ; CHECK-NEXT: [[I4:%.*]] = icmp eq i16 [[TMP0]], 0
1614; CHECK-NEXT: ret i1 [[I4]]
1715;
1816bb:
2725define i1 @cvt_icmp_0_zext_plus_zext_eq_i8 (i8 %arg , i8 %arg1 ) {
2826; CHECK-LABEL: @cvt_icmp_0_zext_plus_zext_eq_i8(
2927; CHECK-NEXT: bb:
30- ; CHECK-NEXT: [[I:%.*]] = zext i8 [[ARG:%.*]] to i32
31- ; CHECK-NEXT: [[I2:%.*]] = zext i8 [[ARG1:%.*]] to i32
32- ; CHECK-NEXT: [[I3:%.*]] = sub nsw i32 0, [[I]]
33- ; CHECK-NEXT: [[I4:%.*]] = icmp eq i32 [[I2]], [[I3]]
28+ ; CHECK-NEXT: [[TMP0:%.*]] = or i8 [[ARG1:%.*]], [[ARG:%.*]]
29+ ; CHECK-NEXT: [[I4:%.*]] = icmp eq i8 [[TMP0]], 0
3430; CHECK-NEXT: ret i1 [[I4]]
3531;
3632bb:
@@ -3000,8 +2996,8 @@ define i1 @icmp_dec_notnonzero(i8 %x) {
30002996
30012997define i1 @icmp_addnuw_nonzero (i8 %x , i8 %y ) {
30022998; CHECK-LABEL: @icmp_addnuw_nonzero(
3003- ; CHECK-NEXT: [[I :%.*]] = sub i8 0 , [[Y:%.*]]
3004- ; CHECK-NEXT: [[C:%.*]] = icmp eq i8 [[I ]], [[X:%.*]]
2999+ ; CHECK-NEXT: [[TMP1 :%.*]] = or i8 [[X:%.*]] , [[Y:%.*]]
3000+ ; CHECK-NEXT: [[C:%.*]] = icmp eq i8 [[TMP1 ]], 0
30053001; CHECK-NEXT: ret i1 [[C]]
30063002;
30073003 %i = add nuw i8 %x , %y
0 commit comments