@@ -1712,9 +1712,9 @@ define i8 @select_icmp_eq_and_1_0_lshr_tv(i8 %x, i8 %y) {
17121712
17131713define i8 @select_trunc_or_2 (i8 %x , i8 %y ) {
17141714; CHECK-LABEL: @select_trunc_or_2(
1715- ; CHECK-NEXT: [[TRUNC :%.*]] = trunc i8 [[X:%.*]] to i1
1716- ; CHECK-NEXT: [[OR :%.*]] = or i8 [[Y:%.* ]], 2
1717- ; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[TRUNC]], i8 [[OR ]], i8 [[Y ]]
1715+ ; CHECK-NEXT: [[TMP1 :%.*]] = shl i8 [[X:%.*]], 1
1716+ ; CHECK-NEXT: [[TMP2 :%.*]] = and i8 [[TMP1 ]], 2
1717+ ; CHECK-NEXT: [[SELECT:%.*]] = or i8 [[Y:%.* ]], [[TMP2 ]]
17181718; CHECK-NEXT: ret i8 [[SELECT]]
17191719;
17201720 %trunc = trunc i8 %x to i1
@@ -1725,9 +1725,9 @@ define i8 @select_trunc_or_2(i8 %x, i8 %y) {
17251725
17261726define i8 @select_not_trunc_or_2 (i8 %x , i8 %y ) {
17271727; CHECK-LABEL: @select_not_trunc_or_2(
1728- ; CHECK-NEXT: [[TRUNC :%.*]] = trunc i8 [[X:%.*]] to i1
1729- ; CHECK-NEXT: [[OR :%.*]] = or i8 [[Y:%.* ]], 2
1730- ; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[TRUNC]], i8 [[OR ]], i8 [[Y ]]
1728+ ; CHECK-NEXT: [[TMP1 :%.*]] = shl i8 [[X:%.*]], 1
1729+ ; CHECK-NEXT: [[TMP2 :%.*]] = and i8 [[TMP1 ]], 2
1730+ ; CHECK-NEXT: [[SELECT:%.*]] = or i8 [[Y:%.* ]], [[TMP2 ]]
17311731; CHECK-NEXT: ret i8 [[SELECT]]
17321732;
17331733 %trunc = trunc i8 %x to i1
@@ -1739,9 +1739,8 @@ define i8 @select_not_trunc_or_2(i8 %x, i8 %y) {
17391739
17401740define i8 @select_trunc_nuw_or_2 (i8 %x , i8 %y ) {
17411741; CHECK-LABEL: @select_trunc_nuw_or_2(
1742- ; CHECK-NEXT: [[TRUNC:%.*]] = trunc nuw i8 [[X:%.*]] to i1
1743- ; CHECK-NEXT: [[OR:%.*]] = or i8 [[Y:%.*]], 2
1744- ; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[TRUNC]], i8 [[OR]], i8 [[Y]]
1742+ ; CHECK-NEXT: [[TMP1:%.*]] = shl i8 [[X:%.*]], 1
1743+ ; CHECK-NEXT: [[SELECT:%.*]] = or i8 [[Y:%.*]], [[TMP1]]
17451744; CHECK-NEXT: ret i8 [[SELECT]]
17461745;
17471746 %trunc = trunc nuw i8 %x to i1
@@ -1752,9 +1751,9 @@ define i8 @select_trunc_nuw_or_2(i8 %x, i8 %y) {
17521751
17531752define i8 @select_trunc_nsw_or_2 (i8 %x , i8 %y ) {
17541753; CHECK-LABEL: @select_trunc_nsw_or_2(
1755- ; CHECK-NEXT: [[TRUNC :%.*]] = trunc nsw i8 [[X:%.*]] to i1
1756- ; CHECK-NEXT: [[OR :%.*]] = or i8 [[Y:%.* ]], 2
1757- ; CHECK-NEXT: [[SELECT:%.*]] = select i1 [[TRUNC]], i8 [[OR ]], i8 [[Y ]]
1754+ ; CHECK-NEXT: [[TMP1 :%.*]] = shl i8 [[X:%.*]], 1
1755+ ; CHECK-NEXT: [[TMP2 :%.*]] = and i8 [[TMP1 ]], 2
1756+ ; CHECK-NEXT: [[SELECT:%.*]] = or i8 [[Y:%.* ]], [[TMP2 ]]
17581757; CHECK-NEXT: ret i8 [[SELECT]]
17591758;
17601759 %trunc = trunc nsw i8 %x to i1
@@ -1765,9 +1764,9 @@ define i8 @select_trunc_nsw_or_2(i8 %x, i8 %y) {
17651764
17661765define <2 x i8 > @select_trunc_or_2_vec (<2 x i8 > %x , <2 x i8 > %y ) {
17671766; CHECK-LABEL: @select_trunc_or_2_vec(
1768- ; CHECK-NEXT: [[TRUNC :%.*]] = trunc <2 x i8> [[X:%.*]] to <2 x i1>
1769- ; CHECK-NEXT: [[OR :%.*]] = or <2 x i8> [[Y:%.* ]], splat (i8 2)
1770- ; CHECK-NEXT: [[SELECT:%.*]] = select <2 x i1> [[TRUNC]], <2 x i8> [[OR ]], <2 x i8> [[Y ]]
1767+ ; CHECK-NEXT: [[TMP1 :%.*]] = shl <2 x i8> [[X:%.*]], splat (i8 1)
1768+ ; CHECK-NEXT: [[TMP2 :%.*]] = and <2 x i8> [[TMP1 ]], splat (i8 2)
1769+ ; CHECK-NEXT: [[SELECT:%.*]] = or <2 x i8> [[Y:%.* ]], [[TMP2 ]]
17711770; CHECK-NEXT: ret <2 x i8> [[SELECT]]
17721771;
17731772 %trunc = trunc <2 x i8 > %x to <2 x i1 >
0 commit comments