@@ -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