@@ -28,7 +28,7 @@ define i64 @std_find_i16_constant_offset_with_assumptions(ptr %first.coerce, i16
2828; CHECK: [[MIDDLE_SPLIT]]:
2929; CHECK-NEXT: br i1 [[TMP2]], label %[[VECTOR_EARLY_EXIT:.*]], label %[[RETURN:.*]]
3030; CHECK: [[VECTOR_EARLY_EXIT]]:
31- ; CHECK-NEXT: [[TMP5:%.*]] = tail call i64 @llvm.experimental.cttz.elts.i64.v8i1(<8 x i1> [[TMP0]], i1 true )
31+ ; CHECK-NEXT: [[TMP5:%.*]] = tail call i64 @llvm.experimental.cttz.elts.i64.v8i1(<8 x i1> [[TMP0]], i1 false )
3232; CHECK-NEXT: [[TMP6:%.*]] = add i64 [[INDEX]], [[TMP5]]
3333; CHECK-NEXT: [[TMP7:%.*]] = shl i64 [[TMP6]], 1
3434; CHECK-NEXT: [[TMP8:%.*]] = getelementptr i8, ptr [[FIRST_COERCE]], i64 [[TMP7]]
@@ -149,13 +149,14 @@ define ptr @std_find_caller(ptr noundef %first, ptr noundef %last) {
149149; CHECK-NEXT: br i1 [[MIN_ITERS_CHECK]], label %[[LOOP_HEADER_I_PREHEADER2:.*]], label %[[VECTOR_PH:.*]]
150150; CHECK: [[VECTOR_PH]]:
151151; CHECK-NEXT: [[XTRAITER:%.*]] = and i64 [[TMP3]], -8
152- ; CHECK: [[TMP9:%.*]] = getelementptr
153- ; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
152+ ; CHECK-NEXT: [[OFFSET_IDX:%.*]] = shl i64 [[XTRAITER]], 1
153+ ; CHECK-NEXT: [[NEXT_GEP:%.*]] = getelementptr i8, ptr [[FIRST]], i64 [[OFFSET_IDX]]
154+ ; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
154155; CHECK: [[VECTOR_BODY]]:
155156; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[PROL_ITER_NEXT:%.*]], %[[VECTOR_BODY]] ]
156- ; CHECK-NEXT: [[OFFSET_IDX :%.*]] = shl i64 [[INDEX]], 1
157- ; CHECK-NEXT: [[NEXT_GEP :%.*]] = getelementptr i8, ptr [[FIRST]], i64 [[OFFSET_IDX ]]
158- ; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <8 x i16>, ptr [[NEXT_GEP ]], align 2
157+ ; CHECK-NEXT: [[OFFSET_IDX1 :%.*]] = shl i64 [[INDEX]], 1
158+ ; CHECK-NEXT: [[NEXT_GEP1 :%.*]] = getelementptr i8, ptr [[FIRST]], i64 [[OFFSET_IDX1 ]]
159+ ; CHECK-NEXT: [[WIDE_LOAD:%.*]] = load <8 x i16>, ptr [[NEXT_GEP1 ]], align 2
159160; CHECK-NEXT: [[WIDE_LOAD_FR:%.*]] = freeze <8 x i16> [[WIDE_LOAD]]
160161; CHECK-NEXT: [[TMP4:%.*]] = icmp eq <8 x i16> [[WIDE_LOAD_FR]], splat (i16 1)
161162; CHECK-NEXT: [[PROL_ITER_NEXT]] = add nuw i64 [[INDEX]], 8
@@ -170,10 +171,10 @@ define ptr @std_find_caller(ptr noundef %first, ptr noundef %last) {
170171; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 [[TMP3]], [[XTRAITER]]
171172; CHECK-NEXT: br i1 [[CMP_N]], label %[[STD_FIND_GENERIC_IMPL_EXIT]], label %[[LOOP_HEADER_I_PREHEADER2]]
172173; CHECK: [[LOOP_HEADER_I_PREHEADER2]]:
173- ; CHECK-NEXT: [[PTR_IV_I_PH:%.*]] = phi ptr [ [[FIRST]], %[[LOOP_HEADER_I_PREHEADER]] ], [ [[TMP9 ]], %[[MIDDLE_BLOCK]] ]
174+ ; CHECK-NEXT: [[PTR_IV_I_PH:%.*]] = phi ptr [ [[FIRST]], %[[LOOP_HEADER_I_PREHEADER]] ], [ [[NEXT_GEP ]], %[[MIDDLE_BLOCK]] ]
174175; CHECK-NEXT: br label %[[LOOP_HEADER_I:.*]]
175176; CHECK: [[VECTOR_EARLY_EXIT]]:
176- ; CHECK-NEXT: [[TMP11:%.*]] = tail call i64 @llvm.experimental.cttz.elts.i64.v8i1(<8 x i1> [[TMP4]], i1 true )
177+ ; CHECK-NEXT: [[TMP11:%.*]] = tail call i64 @llvm.experimental.cttz.elts.i64.v8i1(<8 x i1> [[TMP4]], i1 false )
177178; CHECK-NEXT: [[TMP12:%.*]] = add i64 [[INDEX]], [[TMP11]]
178179; CHECK-NEXT: [[TMP13:%.*]] = shl i64 [[TMP12]], 1
179180; CHECK-NEXT: [[TMP14:%.*]] = getelementptr i8, ptr [[FIRST]], i64 [[TMP13]]
0 commit comments