@@ -318,45 +318,45 @@ size_t test3_bdos(struct annotated *p) {
318318// SANITIZE-WITH-ATTR-NEXT: [[CONV1:%.*]] = select i1 [[TMP2]], i32 [[TMP5]], i32 0
319319// SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [0 x i32], ptr [[ARRAY]], i64 0, i64 [[IDXPROM]]
320320// SANITIZE-WITH-ATTR-NEXT: store i32 [[CONV1]], ptr [[ARRAYIDX]], align 4, !tbaa [[TBAA4]]
321- // SANITIZE-WITH-ATTR-NEXT: [[DOT_COUNTED_BY_LOAD7 :%.*]] = load i32, ptr [[DOT_COUNTED_BY_GEP]], align 4
321+ // SANITIZE-WITH-ATTR-NEXT: [[DOT_COUNTED_BY_LOAD6 :%.*]] = load i32, ptr [[DOT_COUNTED_BY_GEP]], align 4
322322// SANITIZE-WITH-ATTR-NEXT: [[ADD:%.*]] = add nsw i32 [[INDEX]], 1
323- // SANITIZE-WITH-ATTR-NEXT: [[IDXPROM13 :%.*]] = sext i32 [[ADD]] to i64
324- // SANITIZE-WITH-ATTR-NEXT: [[TMP6:%.*]] = zext i32 [[DOT_COUNTED_BY_LOAD7 ]] to i64, !nosanitize [[META2]]
325- // SANITIZE-WITH-ATTR-NEXT: [[TMP7:%.*]] = icmp ult i64 [[IDXPROM13 ]], [[TMP6]], !nosanitize [[META2]]
326- // SANITIZE-WITH-ATTR-NEXT: br i1 [[TMP7]], label [[CONT20 :%.*]], label [[HANDLER_OUT_OF_BOUNDS16 :%.*]], !prof [[PROF3]], !nosanitize [[META2]]
327- // SANITIZE-WITH-ATTR: handler.out_of_bounds16 :
328- // SANITIZE-WITH-ATTR-NEXT: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @[[GLOB6:[0-9]+]], i64 [[IDXPROM13 ]]) #[[ATTR10]], !nosanitize [[META2]]
323+ // SANITIZE-WITH-ATTR-NEXT: [[IDXPROM12 :%.*]] = sext i32 [[ADD]] to i64
324+ // SANITIZE-WITH-ATTR-NEXT: [[TMP6:%.*]] = zext i32 [[DOT_COUNTED_BY_LOAD6 ]] to i64, !nosanitize [[META2]]
325+ // SANITIZE-WITH-ATTR-NEXT: [[TMP7:%.*]] = icmp ult i64 [[IDXPROM12 ]], [[TMP6]], !nosanitize [[META2]]
326+ // SANITIZE-WITH-ATTR-NEXT: br i1 [[TMP7]], label [[CONT19 :%.*]], label [[HANDLER_OUT_OF_BOUNDS15 :%.*]], !prof [[PROF3]], !nosanitize [[META2]]
327+ // SANITIZE-WITH-ATTR: handler.out_of_bounds15 :
328+ // SANITIZE-WITH-ATTR-NEXT: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @[[GLOB6:[0-9]+]], i64 [[IDXPROM12 ]]) #[[ATTR10]], !nosanitize [[META2]]
329329// SANITIZE-WITH-ATTR-NEXT: unreachable, !nosanitize [[META2]]
330- // SANITIZE-WITH-ATTR: cont20 :
331- // SANITIZE-WITH-ATTR-NEXT: [[TMP8:%.*]] = icmp sgt i32 [[DOT_COUNTED_BY_LOAD7 ]], 3
332- // SANITIZE-WITH-ATTR-NEXT: [[TMP9:%.*]] = shl i32 [[DOT_COUNTED_BY_LOAD7 ]], 2
330+ // SANITIZE-WITH-ATTR: cont19 :
331+ // SANITIZE-WITH-ATTR-NEXT: [[TMP8:%.*]] = icmp sgt i32 [[DOT_COUNTED_BY_LOAD6 ]], 3
332+ // SANITIZE-WITH-ATTR-NEXT: [[TMP9:%.*]] = shl i32 [[DOT_COUNTED_BY_LOAD6 ]], 2
333333// SANITIZE-WITH-ATTR-NEXT: [[TMP10:%.*]] = add i32 [[TMP9]], 240
334334// SANITIZE-WITH-ATTR-NEXT: [[TMP11:%.*]] = and i32 [[TMP10]], 252
335- // SANITIZE-WITH-ATTR-NEXT: [[CONV9 :%.*]] = select i1 [[TMP8]], i32 [[TMP11]], i32 0
336- // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX18 :%.*]] = getelementptr inbounds [0 x i32], ptr [[ARRAY]], i64 0, i64 [[IDXPROM13 ]]
337- // SANITIZE-WITH-ATTR-NEXT: store i32 [[CONV9 ]], ptr [[ARRAYIDX18 ]], align 4, !tbaa [[TBAA4]]
338- // SANITIZE-WITH-ATTR-NEXT: [[DOT_COUNTED_BY_LOAD23 :%.*]] = load i32, ptr [[DOT_COUNTED_BY_GEP]], align 4
339- // SANITIZE-WITH-ATTR-NEXT: [[ADD29 :%.*]] = add nsw i32 [[INDEX]], 2
340- // SANITIZE-WITH-ATTR-NEXT: [[IDXPROM30 :%.*]] = sext i32 [[ADD29 ]] to i64
341- // SANITIZE-WITH-ATTR-NEXT: [[TMP12:%.*]] = zext i32 [[DOT_COUNTED_BY_LOAD23 ]] to i64, !nosanitize [[META2]]
342- // SANITIZE-WITH-ATTR-NEXT: [[TMP13:%.*]] = icmp ult i64 [[IDXPROM30 ]], [[TMP12]], !nosanitize [[META2]]
343- // SANITIZE-WITH-ATTR-NEXT: br i1 [[TMP13]], label [[CONT37 :%.*]], label [[HANDLER_OUT_OF_BOUNDS33 :%.*]], !prof [[PROF3]], !nosanitize [[META2]]
344- // SANITIZE-WITH-ATTR: handler.out_of_bounds33 :
345- // SANITIZE-WITH-ATTR-NEXT: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @[[GLOB7:[0-9]+]], i64 [[IDXPROM30 ]]) #[[ATTR10]], !nosanitize [[META2]]
335+ // SANITIZE-WITH-ATTR-NEXT: [[CONV8 :%.*]] = select i1 [[TMP8]], i32 [[TMP11]], i32 0
336+ // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX17 :%.*]] = getelementptr inbounds [0 x i32], ptr [[ARRAY]], i64 0, i64 [[IDXPROM12 ]]
337+ // SANITIZE-WITH-ATTR-NEXT: store i32 [[CONV8 ]], ptr [[ARRAYIDX17 ]], align 4, !tbaa [[TBAA4]]
338+ // SANITIZE-WITH-ATTR-NEXT: [[DOT_COUNTED_BY_LOAD21 :%.*]] = load i32, ptr [[DOT_COUNTED_BY_GEP]], align 4
339+ // SANITIZE-WITH-ATTR-NEXT: [[ADD27 :%.*]] = add nsw i32 [[INDEX]], 2
340+ // SANITIZE-WITH-ATTR-NEXT: [[IDXPROM28 :%.*]] = sext i32 [[ADD27 ]] to i64
341+ // SANITIZE-WITH-ATTR-NEXT: [[TMP12:%.*]] = zext i32 [[DOT_COUNTED_BY_LOAD21 ]] to i64, !nosanitize [[META2]]
342+ // SANITIZE-WITH-ATTR-NEXT: [[TMP13:%.*]] = icmp ult i64 [[IDXPROM28 ]], [[TMP12]], !nosanitize [[META2]]
343+ // SANITIZE-WITH-ATTR-NEXT: br i1 [[TMP13]], label [[CONT35 :%.*]], label [[HANDLER_OUT_OF_BOUNDS31 :%.*]], !prof [[PROF3]], !nosanitize [[META2]]
344+ // SANITIZE-WITH-ATTR: handler.out_of_bounds31 :
345+ // SANITIZE-WITH-ATTR-NEXT: tail call void @__ubsan_handle_out_of_bounds_abort(ptr nonnull @[[GLOB7:[0-9]+]], i64 [[IDXPROM28 ]]) #[[ATTR10]], !nosanitize [[META2]]
346346// SANITIZE-WITH-ATTR-NEXT: unreachable, !nosanitize [[META2]]
347- // SANITIZE-WITH-ATTR: cont37 :
348- // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX35 :%.*]] = getelementptr inbounds [0 x i32], ptr [[ARRAY]], i64 0, i64 [[IDXPROM30 ]]
347+ // SANITIZE-WITH-ATTR: cont35 :
348+ // SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX33 :%.*]] = getelementptr inbounds [0 x i32], ptr [[ARRAY]], i64 0, i64 [[IDXPROM28 ]]
349349// SANITIZE-WITH-ATTR-NEXT: [[TMP14:%.*]] = icmp sgt i32 [[FAM_IDX]], -1
350- // SANITIZE-WITH-ATTR-NEXT: [[TMP15:%.*]] = sext i32 [[DOT_COUNTED_BY_LOAD23 ]] to i64
350+ // SANITIZE-WITH-ATTR-NEXT: [[TMP15:%.*]] = sext i32 [[DOT_COUNTED_BY_LOAD21 ]] to i64
351351// SANITIZE-WITH-ATTR-NEXT: [[TMP16:%.*]] = sext i32 [[FAM_IDX]] to i64
352352// SANITIZE-WITH-ATTR-NEXT: [[TMP17:%.*]] = sub nsw i64 [[TMP15]], [[TMP16]]
353353// SANITIZE-WITH-ATTR-NEXT: [[TMP18:%.*]] = icmp sgt i64 [[TMP17]], -1
354354// SANITIZE-WITH-ATTR-NEXT: [[TMP19:%.*]] = and i1 [[TMP14]], [[TMP18]]
355355// SANITIZE-WITH-ATTR-NEXT: [[DOTTR:%.*]] = trunc i64 [[TMP17]] to i32
356356// SANITIZE-WITH-ATTR-NEXT: [[TMP20:%.*]] = shl i32 [[DOTTR]], 2
357357// SANITIZE-WITH-ATTR-NEXT: [[TMP21:%.*]] = and i32 [[TMP20]], 252
358- // SANITIZE-WITH-ATTR-NEXT: [[CONV25 :%.*]] = select i1 [[TMP19]], i32 [[TMP21]], i32 0
359- // SANITIZE-WITH-ATTR-NEXT: store i32 [[CONV25 ]], ptr [[ARRAYIDX35 ]], align 4, !tbaa [[TBAA4]]
358+ // SANITIZE-WITH-ATTR-NEXT: [[CONV23 :%.*]] = select i1 [[TMP19]], i32 [[TMP21]], i32 0
359+ // SANITIZE-WITH-ATTR-NEXT: store i32 [[CONV23 ]], ptr [[ARRAYIDX33 ]], align 4, !tbaa [[TBAA4]]
360360// SANITIZE-WITH-ATTR-NEXT: ret void
361361//
362362// NO-SANITIZE-WITH-ATTR-LABEL: define dso_local void @test4(
@@ -373,18 +373,18 @@ size_t test3_bdos(struct annotated *p) {
373373// NO-SANITIZE-WITH-ATTR-NEXT: [[IDXPROM:%.*]] = sext i32 [[INDEX]] to i64
374374// NO-SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [0 x i32], ptr [[ARRAY]], i64 0, i64 [[IDXPROM]]
375375// NO-SANITIZE-WITH-ATTR-NEXT: store i32 [[CONV1]], ptr [[ARRAYIDX]], align 4, !tbaa [[TBAA2]]
376- // NO-SANITIZE-WITH-ATTR-NEXT: [[DOT_COUNTED_BY_LOAD4 :%.*]] = load i32, ptr [[DOT_COUNTED_BY_GEP]], align 4
377- // NO-SANITIZE-WITH-ATTR-NEXT: [[TMP4:%.*]] = shl i32 [[DOT_COUNTED_BY_LOAD4 ]], 2
376+ // NO-SANITIZE-WITH-ATTR-NEXT: [[DOT_COUNTED_BY_LOAD3 :%.*]] = load i32, ptr [[DOT_COUNTED_BY_GEP]], align 4
377+ // NO-SANITIZE-WITH-ATTR-NEXT: [[TMP4:%.*]] = shl i32 [[DOT_COUNTED_BY_LOAD3 ]], 2
378378// NO-SANITIZE-WITH-ATTR-NEXT: [[TMP5:%.*]] = add i32 [[TMP4]], 240
379- // NO-SANITIZE-WITH-ATTR-NEXT: [[TMP6:%.*]] = icmp sgt i32 [[DOT_COUNTED_BY_LOAD4 ]], 3
379+ // NO-SANITIZE-WITH-ATTR-NEXT: [[TMP6:%.*]] = icmp sgt i32 [[DOT_COUNTED_BY_LOAD3 ]], 3
380380// NO-SANITIZE-WITH-ATTR-NEXT: [[TMP7:%.*]] = and i32 [[TMP5]], 252
381- // NO-SANITIZE-WITH-ATTR-NEXT: [[CONV6 :%.*]] = select i1 [[TMP6]], i32 [[TMP7]], i32 0
381+ // NO-SANITIZE-WITH-ATTR-NEXT: [[CONV5 :%.*]] = select i1 [[TMP6]], i32 [[TMP7]], i32 0
382382// NO-SANITIZE-WITH-ATTR-NEXT: [[ADD:%.*]] = add nsw i32 [[INDEX]], 1
383- // NO-SANITIZE-WITH-ATTR-NEXT: [[IDXPROM8 :%.*]] = sext i32 [[ADD]] to i64
384- // NO-SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX9 :%.*]] = getelementptr inbounds [0 x i32], ptr [[ARRAY]], i64 0, i64 [[IDXPROM8 ]]
385- // NO-SANITIZE-WITH-ATTR-NEXT: store i32 [[CONV6 ]], ptr [[ARRAYIDX9 ]], align 4, !tbaa [[TBAA2]]
386- // NO-SANITIZE-WITH-ATTR-NEXT: [[DOT_COUNTED_BY_LOAD12 :%.*]] = load i32, ptr [[DOT_COUNTED_BY_GEP]], align 4
387- // NO-SANITIZE-WITH-ATTR-NEXT: [[TMP8:%.*]] = sext i32 [[DOT_COUNTED_BY_LOAD12 ]] to i64
383+ // NO-SANITIZE-WITH-ATTR-NEXT: [[IDXPROM7 :%.*]] = sext i32 [[ADD]] to i64
384+ // NO-SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX8 :%.*]] = getelementptr inbounds [0 x i32], ptr [[ARRAY]], i64 0, i64 [[IDXPROM7 ]]
385+ // NO-SANITIZE-WITH-ATTR-NEXT: store i32 [[CONV5 ]], ptr [[ARRAYIDX8 ]], align 4, !tbaa [[TBAA2]]
386+ // NO-SANITIZE-WITH-ATTR-NEXT: [[DOT_COUNTED_BY_LOAD10 :%.*]] = load i32, ptr [[DOT_COUNTED_BY_GEP]], align 4
387+ // NO-SANITIZE-WITH-ATTR-NEXT: [[TMP8:%.*]] = sext i32 [[DOT_COUNTED_BY_LOAD10 ]] to i64
388388// NO-SANITIZE-WITH-ATTR-NEXT: [[TMP9:%.*]] = sext i32 [[FAM_IDX]] to i64
389389// NO-SANITIZE-WITH-ATTR-NEXT: [[TMP10:%.*]] = sub nsw i64 [[TMP8]], [[TMP9]]
390390// NO-SANITIZE-WITH-ATTR-NEXT: [[TMP11:%.*]] = icmp sgt i64 [[TMP10]], -1
@@ -393,11 +393,11 @@ size_t test3_bdos(struct annotated *p) {
393393// NO-SANITIZE-WITH-ATTR-NEXT: [[DOTTR:%.*]] = trunc i64 [[TMP10]] to i32
394394// NO-SANITIZE-WITH-ATTR-NEXT: [[TMP14:%.*]] = shl i32 [[DOTTR]], 2
395395// NO-SANITIZE-WITH-ATTR-NEXT: [[TMP15:%.*]] = and i32 [[TMP14]], 252
396- // NO-SANITIZE-WITH-ATTR-NEXT: [[CONV14 :%.*]] = select i1 [[TMP13]], i32 [[TMP15]], i32 0
397- // NO-SANITIZE-WITH-ATTR-NEXT: [[ADD16 :%.*]] = add nsw i32 [[INDEX]], 2
398- // NO-SANITIZE-WITH-ATTR-NEXT: [[IDXPROM17 :%.*]] = sext i32 [[ADD16 ]] to i64
399- // NO-SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX18 :%.*]] = getelementptr inbounds [0 x i32], ptr [[ARRAY]], i64 0, i64 [[IDXPROM17 ]]
400- // NO-SANITIZE-WITH-ATTR-NEXT: store i32 [[CONV14 ]], ptr [[ARRAYIDX18 ]], align 4, !tbaa [[TBAA2]]
396+ // NO-SANITIZE-WITH-ATTR-NEXT: [[CONV12 :%.*]] = select i1 [[TMP13]], i32 [[TMP15]], i32 0
397+ // NO-SANITIZE-WITH-ATTR-NEXT: [[ADD14 :%.*]] = add nsw i32 [[INDEX]], 2
398+ // NO-SANITIZE-WITH-ATTR-NEXT: [[IDXPROM15 :%.*]] = sext i32 [[ADD14 ]] to i64
399+ // NO-SANITIZE-WITH-ATTR-NEXT: [[ARRAYIDX16 :%.*]] = getelementptr inbounds [0 x i32], ptr [[ARRAY]], i64 0, i64 [[IDXPROM15 ]]
400+ // NO-SANITIZE-WITH-ATTR-NEXT: store i32 [[CONV12 ]], ptr [[ARRAYIDX16 ]], align 4, !tbaa [[TBAA2]]
401401// NO-SANITIZE-WITH-ATTR-NEXT: ret void
402402//
403403// SANITIZE-WITHOUT-ATTR-LABEL: define dso_local void @test4(
0 commit comments