@@ -2915,15 +2915,9 @@ define ptr @simple_csa_ptr_select(i32 %N, ptr %data, i64 %a) {
29152915; EVL: [[SCALAR_PH]]:
29162916; EVL-NEXT: [[BC_RESUME_VAL:%.*]] = phi i64 [ [[N_VEC]], %[[MIDDLE_BLOCK]] ], [ 0, %[[LOOP_PREHEADER]] ]
29172917; EVL-NEXT: br label %[[LOOP:.*]]
2918- ; EVL: [[EXIT_LOOPEXIT]]:
2919- ; EVL-NEXT: [[SPEC_SELECT_LCSSA:%.*]] = phi ptr [ [[SPEC_SELECT:%.*]], %[[LOOP]] ], [ [[TMP25]], %[[MIDDLE_BLOCK]] ]
2920- ; EVL-NEXT: br label %[[EXIT]]
2921- ; EVL: [[EXIT]]:
2922- ; EVL-NEXT: [[T_0_LCSSA:%.*]] = phi ptr [ null, %[[ENTRY]] ], [ [[SPEC_SELECT_LCSSA]], %[[EXIT_LOOPEXIT]] ]
2923- ; EVL-NEXT: ret ptr [[T_0_LCSSA]]
29242918; EVL: [[LOOP]]:
29252919; EVL-NEXT: [[IV:%.*]] = phi i64 [ [[BC_RESUME_VAL]], %[[SCALAR_PH]] ], [ [[IV_NEXT:%.*]], %[[LOOP]] ]
2926- ; EVL-NEXT: [[T_010:%.*]] = phi ptr [ null, %[[SCALAR_PH]] ], [ [[SPEC_SELECT]], %[[LOOP]] ]
2920+ ; EVL-NEXT: [[T_010:%.*]] = phi ptr [ null, %[[SCALAR_PH]] ], [ [[SPEC_SELECT:%.* ]], %[[LOOP]] ]
29272921; EVL-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds ptr, ptr [[DATA]], i64 [[IV]]
29282922; EVL-NEXT: [[TMP16:%.*]] = load ptr, ptr [[ARRAYIDX]], align 8
29292923; EVL-NEXT: [[TMP17:%.*]] = load i32, ptr [[TMP16]], align 4
@@ -2933,6 +2927,12 @@ define ptr @simple_csa_ptr_select(i32 %N, ptr %data, i64 %a) {
29332927; EVL-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
29342928; EVL-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[IV_NEXT]], [[WIDE_TRIP_COUNT]]
29352929; EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT_LOOPEXIT]], label %[[LOOP]], !llvm.loop [[LOOP11:![0-9]+]]
2930+ ; EVL: [[EXIT_LOOPEXIT]]:
2931+ ; EVL-NEXT: [[SPEC_SELECT_LCSSA:%.*]] = phi ptr [ [[SPEC_SELECT]], %[[LOOP]] ], [ [[TMP25]], %[[MIDDLE_BLOCK]] ]
2932+ ; EVL-NEXT: br label %[[EXIT]]
2933+ ; EVL: [[EXIT]]:
2934+ ; EVL-NEXT: [[T_0_LCSSA:%.*]] = phi ptr [ null, %[[ENTRY]] ], [ [[SPEC_SELECT_LCSSA]], %[[EXIT_LOOPEXIT]] ]
2935+ ; EVL-NEXT: ret ptr [[T_0_LCSSA]]
29362936;
29372937; NO-EVL-LABEL: define ptr @simple_csa_ptr_select(
29382938; NO-EVL-SAME: i32 [[N:%.*]], ptr [[DATA:%.*]], i64 [[A:%.*]]) #[[ATTR0]] {
@@ -2944,7 +2944,7 @@ define ptr @simple_csa_ptr_select(i32 %N, ptr %data, i64 %a) {
29442944; NO-EVL-NEXT: br label %[[LOOP:.*]]
29452945; NO-EVL: [[LOOP]]:
29462946; NO-EVL-NEXT: [[IV:%.*]] = phi i64 [ 0, %[[LOOP_PREHEADER]] ], [ [[IV_NEXT:%.*]], %[[LOOP]] ]
2947- ; NO-EVL-NEXT: [[T_010:%.*]] = phi ptr [ null, %[[LOOP_PREHEADER]] ], [ [[SPEC_SELECT]], %[[LOOP]] ]
2947+ ; NO-EVL-NEXT: [[T_010:%.*]] = phi ptr [ null, %[[LOOP_PREHEADER]] ], [ [[SPEC_SELECT:%.* ]], %[[LOOP]] ]
29482948; NO-EVL-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds ptr, ptr [[DATA]], i64 [[IV]]
29492949; NO-EVL-NEXT: [[TMP0:%.*]] = load ptr, ptr [[ARRAYIDX]], align 8
29502950; NO-EVL-NEXT: [[TMP1:%.*]] = load i32, ptr [[TMP0]], align 4
@@ -2953,9 +2953,9 @@ define ptr @simple_csa_ptr_select(i32 %N, ptr %data, i64 %a) {
29532953; NO-EVL-NEXT: [[SPEC_SELECT]] = select i1 [[CMP1]], ptr [[TMP0]], ptr [[T_010]]
29542954; NO-EVL-NEXT: [[IV_NEXT]] = add nuw nsw i64 [[IV]], 1
29552955; NO-EVL-NEXT: [[EXITCOND_NOT:%.*]] = icmp eq i64 [[IV_NEXT]], [[WIDE_TRIP_COUNT]]
2956- ; NO-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT_LOOPEXIT]], label %[[LOOP]]
2957- ; NO-EVL: [[EXIT_LOOPEXIT:.* ]]:
2958- ; NO-EVL-NEXT: [[SPEC_SELECT_LCSSA:%.*]] = phi ptr [ [[SPEC_SELECT:%.* ]], %[[LOOP]] ]
2956+ ; NO-EVL-NEXT: br i1 [[EXITCOND_NOT]], label %[[EXIT_LOOPEXIT:.* ]], label %[[LOOP]]
2957+ ; NO-EVL: [[EXIT_LOOPEXIT]]:
2958+ ; NO-EVL-NEXT: [[SPEC_SELECT_LCSSA:%.*]] = phi ptr [ [[SPEC_SELECT]], %[[LOOP]] ]
29592959; NO-EVL-NEXT: br label %[[EXIT]]
29602960; NO-EVL: [[EXIT]]:
29612961; NO-EVL-NEXT: [[T_0_LCSSA:%.*]] = phi ptr [ null, %[[ENTRY]] ], [ [[SPEC_SELECT_LCSSA]], %[[EXIT_LOOPEXIT]] ]
0 commit comments