diff --git a/bench/abc/optimized/abcSaucy.c.ll b/bench/abc/optimized/abcSaucy.c.ll index 9c57b9c5649..bf3628174be 100644 --- a/bench/abc/optimized/abcSaucy.c.ll +++ b/bench/abc/optimized/abcSaucy.c.ll @@ -8383,19 +8383,19 @@ define internal fastcc void @introsort_loop(ptr nocapture noundef %0, i32 nounde 9: ; preds = %14, %7 %.0.i.i = phi i32 [ %8, %7 ], [ %10, %14 ] - %10 = sdiv i32 %.0.i.i, 2 - %11 = sext i32 %10 to i64 + %10 = lshr i32 %.0.i.i, 1 + %11 = zext nneg i32 %10 to i64 %12 = getelementptr inbounds i32, ptr %invariant.gep, i64 %11 %13 = load i32, ptr %12, align 4 %.not.i.i = icmp sgt i32 %.pre.i.i, %13 br i1 %.not.i.i, label %14, label %sift_up.exit.i 14: ; preds = %9 - %15 = sext i32 %.0.i.i to i64 + %15 = zext nneg i32 %.0.i.i to i64 %16 = getelementptr inbounds i32, ptr %invariant.gep, i64 %15 store i32 %13, ptr %16, align 4 store i32 %.pre.i.i, ptr %12, align 4 - %17 = icmp sgt i32 %.0.i.i, 3 + %17 = icmp ugt i32 %.0.i.i, 3 br i1 %17, label %9, label %sift_up.exit.i, !llvm.loop !108 sift_up.exit.i: ; preds = %14, %9 diff --git a/bench/arrow/optimized/int_util.cc.ll b/bench/arrow/optimized/int_util.cc.ll index d0168eaee73..bf8d24d9373 100644 --- a/bench/arrow/optimized/int_util.cc.ll +++ b/bench/arrow/optimized/int_util.cc.ll @@ -22178,11 +22178,11 @@ if.end5.i.i.i: ; preds = %if.end.i.i.i if.end9.i.i.i: ; preds = %if.end5.i.i.i %cmp11.i.i.i = icmp ult i16 %value, 10000 - %spec.select.i = select i1 %cmp11.i.i.i, i32 4, i32 5 + %..i = select i1 %cmp11.i.i.i, i32 4, i32 5 br label %_ZNSt8__detail14__to_chars_lenIjEEjT_i.exit.i.i _ZNSt8__detail14__to_chars_lenIjEEjT_i.exit.i.i: ; preds = %if.end9.i.i.i, %if.end5.i.i.i, %if.end.i.i.i, %if.end6.i - %retval.0.i.i.i = phi i32 [ 1, %if.end6.i ], [ 2, %if.end.i.i.i ], [ 3, %if.end5.i.i.i ], [ %spec.select.i, %if.end9.i.i.i ] + %retval.0.i.i.i = phi i32 [ 1, %if.end6.i ], [ 2, %if.end.i.i.i ], [ 3, %if.end5.i.i.i ], [ %..i, %if.end9.i.i.i ] %sub.ptr.lhs.cast.i20.i = ptrtoint ptr %call1 to i64 %sub.ptr.rhs.cast.i21.i = ptrtoint ptr %call to i64 %sub.ptr.sub.i22.i = sub i64 %sub.ptr.lhs.cast.i20.i, %sub.ptr.rhs.cast.i21.i @@ -22192,7 +22192,7 @@ _ZNSt8__detail14__to_chars_lenIjEEjT_i.exit.i.i: ; preds = %if.end9.i.i.i, %if. while.body.lr.ph.thread: ; preds = %_ZNSt8__detail14__to_chars_lenIjEEjT_i.exit.i.i %cmp11.i.i.i17164 = icmp ult i16 %value, 10000 - %spec.select.i18165 = select i1 %cmp11.i.i.i17164, i32 4, i32 5 + %..i18165 = select i1 %cmp11.i.i.i17164, i32 4, i32 5 br label %while.body.lr.ph.split if.end.i25.i: ; preds = %_ZNSt8__detail14__to_chars_lenIjEEjT_i.exit.i.i @@ -22259,7 +22259,7 @@ _ZSt12__to_chars_iItENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvI while.body.lr.ph: ; preds = %invoke.cont %cmp11.i.i.i17 = icmp ult i16 %value, 10000 - %spec.select.i18 = select i1 %cmp11.i.i.i17, i32 4, i32 5 + %..i18 = select i1 %cmp11.i.i.i17, i32 4, i32 5 br i1 %cmp2.i9, label %while.body.us, label %while.body.lr.ph.split while.body.us: ; preds = %while.body.lr.ph, %invoke.cont6.us @@ -22280,14 +22280,14 @@ lpad2.loopexit.split.us: ; preds = %while.body.us br label %lpad2 while.body.lr.ph.split: ; preds = %while.body.lr.ph.thread, %while.body.lr.ph - %spec.select.i18169 = phi i32 [ %spec.select.i18165, %while.body.lr.ph.thread ], [ %spec.select.i18, %while.body.lr.ph ] + %..i18169 = phi i32 [ %..i18165, %while.body.lr.ph.thread ], [ %..i18, %while.body.lr.ph ] %cmp3.i.i.i13167 = icmp ult i16 %value, 100 %cmp6.i.i.i15168 = icmp ult i16 %value, 1000 %cmp14.i.i.i27 = icmp ugt i16 %value, 99 br i1 %cmp14.i.i.i27, label %while.body.us74.preheader, label %while.body.lr.ph.split.split while.body.us74.preheader: ; preds = %while.body.lr.ph.split - %spec.select = select i1 %cmp6.i.i.i15168, i32 3, i32 %spec.select.i18169 + %spec.select = select i1 %cmp6.i.i.i15168, i32 3, i32 %..i18169 %conv.i23.i24.us = zext nneg i32 %spec.select to i64 br label %while.body.us74 @@ -22376,7 +22376,7 @@ while.body.lr.ph.split.split: ; preds = %while.body.lr.ph.sp br i1 %cmp9.i.i.i30, label %while.body.us93.preheader, label %while.body.us125 while.body.us93.preheader: ; preds = %while.body.lr.ph.split.split - %12 = zext nneg i32 %spec.select.i18169 to i64 + %12 = zext nneg i32 %..i18169 to i64 %13 = select i1 %cmp6.i.i.i15168, i64 3, i64 %12 %conv.i23.i24.us109 = select i1 %cmp3.i.i.i13167, i64 2, i64 %13 br label %while.body.us93 diff --git a/bench/arrow/optimized/row_internal.cc.ll b/bench/arrow/optimized/row_internal.cc.ll index 76cccebb14c..17be3c1c786 100644 --- a/bench/arrow/optimized/row_internal.cc.ll +++ b/bench/arrow/optimized/row_internal.cc.ll @@ -1535,7 +1535,7 @@ _ZN5arrow6StatusD2Ev.exit188: ; preds = %do.end20 %fixed_length.i = getelementptr inbounds i8, ptr %this, i64 12 %26 = load i32, ptr %fixed_length.i, align 4 %conv.i150 = zext i32 %26 to i64 - %mul.i151 = mul nuw nsw i64 %rows_capacity_new.0, %conv.i150 + %mul.i151 = mul nsw i64 %rows_capacity_new.0, %conv.i150 %add.i152 = add nuw nsw i64 %mul.i151, 64 %vtable73 = load ptr, ptr %25, align 8 %vfn74 = getelementptr inbounds i8, ptr %vtable73, i64 24 @@ -1570,7 +1570,7 @@ do.end95: ; preds = %_ZN5arrow6StatusD2E call void @llvm.memset.p0.i64(ptr align 1 %add.ptr101, i8 0, i64 %sub105, i1 false) %37 = load i32, ptr %fixed_length.i, align 4 %conv.i245 = zext i32 %37 to i64 - %mul.i246 = mul nuw nsw i64 %rows_capacity_new.0, %conv.i245 + %mul.i246 = mul nsw i64 %rows_capacity_new.0, %conv.i245 %bytes_capacity_ = getelementptr inbounds i8, ptr %this, i64 192 store i64 %mul.i246, ptr %bytes_capacity_, align 8 br label %if.end108 diff --git a/bench/assimp/optimized/3DSLoader.cpp.ll b/bench/assimp/optimized/3DSLoader.cpp.ll index cc13fbe7da9..dcd74fb6a60 100644 --- a/bench/assimp/optimized/3DSLoader.cpp.ll +++ b/bench/assimp/optimized/3DSLoader.cpp.ll @@ -2641,7 +2641,7 @@ if.end15.i.i: ; preds = %if.then6.i.i, %whil %number.addr.2.i.i = phi i32 [ %sub11.i.i.recomposed, %if.then6.i.i ], [ %number.addr.119.i.i, %while.body.i.i ] %written.3.i.i = phi i32 [ %inc10.i.i, %if.then6.i.i ], [ %written.120.i.i, %while.body.i.i ] %out.addr.3.i.i = phi ptr [ %incdec.ptr9.i.i, %if.then6.i.i ], [ %out.addr.123.i.i, %while.body.i.i ] - %div16.i.i = sdiv i32 %cur.021.i.i, 10 + %div16.i.i = udiv i32 %cur.021.i.i, 10 %cmp2.i.i = icmp ult i32 %written.3.i.i, 10 br i1 %cmp2.i.i, label %while.body.i.i, label %_ZN6Assimp13ASSIMP_itoa10ILm10EEEjRAT__ci.exit, !llvm.loop !19 diff --git a/bench/cmake/optimized/archive_write_set_format_iso9660.c.ll b/bench/cmake/optimized/archive_write_set_format_iso9660.c.ll index 4f286572a39..57a708dfe04 100644 --- a/bench/cmake/optimized/archive_write_set_format_iso9660.c.ll +++ b/bench/cmake/optimized/archive_write_set_format_iso9660.c.ll @@ -14373,23 +14373,13 @@ set_digit.exit23: ; preds = %50 set_digit.exit27: ; preds = %59 %66 = getelementptr inbounds i8, ptr %0, i64 14 - br label %67 - -67: ; preds = %67, %set_digit.exit27 - %.045.i29 = phi i64 [ 2, %set_digit.exit27 ], [ %68, %67 ] - %68 = add nsw i64 %.045.i29, -1 - %69 = getelementptr inbounds i8, ptr %66, i64 %68 - store i8 48, ptr %69, align 1 - %.not.i30 = icmp eq i64 %68, 0 - br i1 %.not.i30, label %set_digit.exit31, label %67, !llvm.loop !101 - -set_digit.exit31: ; preds = %67 - %70 = getelementptr inbounds i8, ptr %0, i64 16 - %71 = getelementptr inbounds i8, ptr %4, i64 40 - %72 = load i64, ptr %71, align 8 - %73 = sdiv i64 %72, 900 - %74 = trunc i64 %73 to i8 - store i8 %74, ptr %70, align 1 + store i16 12336, ptr %66, align 1 + %67 = getelementptr inbounds i8, ptr %0, i64 16 + %68 = getelementptr inbounds i8, ptr %4, i64 40 + %69 = load i64, ptr %68, align 8 + %70 = sdiv i64 %69, 900 + %71 = trunc i64 %70 to i8 + store i8 %71, ptr %67, align 1 ret void } diff --git a/bench/duckdb/optimized/ub_duckdb_common_types.cpp.ll b/bench/duckdb/optimized/ub_duckdb_common_types.cpp.ll index b1086941cf5..5a3e58a7480 100644 --- a/bench/duckdb/optimized/ub_duckdb_common_types.cpp.ll +++ b/bench/duckdb/optimized/ub_duckdb_common_types.cpp.ll @@ -35138,19 +35138,18 @@ land.rhs: ; preds = %for.cond57.preheade %fraction.2747 = phi i64 [ %fraction.3, %for.body63 ], [ 0, %for.cond57.preheader ] %arrayidx59 = getelementptr inbounds i8, ptr %str, i64 %pos.4749 %15 = load i8, ptr %arrayidx59, align 1, !tbaa !116 - %16 = add i8 %15, -48 + %.fr = freeze i8 %15 + %16 = add i8 %.fr, -48 %17 = icmp ult i8 %16, 10 br i1 %17, label %for.body63, label %cleanup80 for.body63: ; preds = %land.rhs - %cmp64 = icmp sgt i32 %mult.0748, 0 - %conv67 = zext nneg i8 %15 to i32 + %conv67 = zext nneg i8 %.fr to i32 %sub68 = add nsw i32 %conv67, -48 - %mul = mul nsw i32 %sub68, %mult.0748 - %narrow = select i1 %cmp64, i32 %mul, i32 0 - %add = sext i32 %narrow to i64 - %fraction.3 = add nsw i64 %fraction.2747, %add - %div = sdiv i32 %mult.0748, 10 + %mul = mul nuw nsw i32 %sub68, %mult.0748 + %add = zext nneg i32 %mul to i64 + %fraction.3 = add nuw nsw i64 %fraction.2747, %add + %div = udiv i32 %mult.0748, 10 %pos.4 = add nuw i64 %pos.4749, 1 %cmp58 = icmp ult i64 %pos.4, %len br i1 %cmp58, label %land.rhs, label %cleanup80.thread, !llvm.loop !796 @@ -45901,20 +45900,19 @@ land.rhs57: ; preds = %if.then53, %for.bod %46 = phi i64 [ %inc71, %for.body61 ], [ %inc54, %if.then53 ] %arrayidx58 = getelementptr inbounds i8, ptr %buf, i64 %46 %47 = load i8, ptr %arrayidx58, align 1, !tbaa !116 - %48 = add i8 %47, -48 + %.fr = freeze i8 %47 + %48 = add i8 %.fr, -48 %49 = icmp ult i8 %48, 10 br i1 %49, label %for.body61, label %if.end73.loopexit for.body61: ; preds = %land.rhs57 - %cmp62 = icmp sgt i32 %mult.0183, 0 - %conv65 = zext nneg i8 %47 to i32 + %conv65 = zext nneg i8 %.fr to i32 %sub66 = add nsw i32 %conv65, -48 - %mul67 = mul nsw i32 %sub66, %mult.0183 - %add68 = select i1 %cmp62, i32 %mul67, i32 0 - %micros.1 = add nsw i32 %add68, %micros.0182 + %mul67 = mul nuw nsw i32 %sub66, %mult.0183 + %micros.1 = add nuw nsw i32 %mul67, %micros.0182 %inc71 = add i64 %46, 1 store i64 %inc71, ptr %pos, align 8, !tbaa !87 - %div = sdiv i32 %mult.0183, 10 + %div = udiv i32 %mult.0183, 10 %exitcond195.not = icmp eq i64 %inc71, %len br i1 %exitcond195.not, label %if.end73.loopexit, label %land.rhs57, !llvm.loop !929 diff --git a/bench/eastl/optimized/EADateTime.cpp.ll b/bench/eastl/optimized/EADateTime.cpp.ll index b3eeea61a8f..fa3f3489b3c 100644 --- a/bench/eastl/optimized/EADateTime.cpp.ll +++ b/bench/eastl/optimized/EADateTime.cpp.ll @@ -4246,8 +4246,8 @@ sw.bb: ; preds = %FormatBegin br i1 %cmp25.not, label %sw.epilog, label %return for.body: ; preds = %for.body.preheader, %for.inc - %indvars.iv593 = phi i64 [ %indvars.iv.next594, %for.inc ], [ 0, %for.body.preheader ] - %arrayidx = getelementptr inbounds [7 x ptr], ptr %mDay, i64 0, i64 %indvars.iv593 + %indvars.iv592 = phi i64 [ %indvars.iv.next593, %for.inc ], [ 0, %for.body.preheader ] + %arrayidx = getelementptr inbounds [7 x ptr], ptr %mDay, i64 0, i64 %indvars.iv592 %12 = load ptr, ptr %arrayidx, align 8 %call31 = tail call noundef i64 @_ZN2EA4StdC6StrlenEPKc(ptr noundef %12) %call35 = tail call noundef i32 @_ZN2EA4StdC8StrnicmpEPKcS2_m(ptr noundef %12, ptr noundef %p.0512, i64 noundef %call31) @@ -4255,7 +4255,7 @@ for.body: ; preds = %for.body.preheader, br i1 %cmp36, label %if.end51, label %if.end38 if.end38: ; preds = %for.body - %arrayidx40 = getelementptr inbounds [7 x ptr], ptr %spec.store.select, i64 0, i64 %indvars.iv593 + %arrayidx40 = getelementptr inbounds [7 x ptr], ptr %spec.store.select, i64 0, i64 %indvars.iv592 %13 = load ptr, ptr %arrayidx40, align 8 %call41 = tail call noundef i64 @_ZN2EA4StdC6StrlenEPKc(ptr noundef %13) %call45 = tail call noundef i32 @_ZN2EA4StdC8StrnicmpEPKcS2_m(ptr noundef %13, ptr noundef %p.0512, i64 noundef %call41) @@ -4263,13 +4263,13 @@ if.end38: ; preds = %for.body br i1 %cmp46, label %if.end51, label %for.inc for.inc: ; preds = %if.end38 - %indvars.iv.next594 = add nuw nsw i64 %indvars.iv593, 1 - %exitcond596.not = icmp eq i64 %indvars.iv.next594, 7 - br i1 %exitcond596.not, label %return, label %for.body, !llvm.loop !102 + %indvars.iv.next593 = add nuw nsw i64 %indvars.iv592, 1 + %exitcond595.not = icmp eq i64 %indvars.iv.next593, 7 + br i1 %exitcond595.not, label %return, label %for.body, !llvm.loop !102 if.end51: ; preds = %for.body, %if.end38 %len.3419.ph = phi i64 [ %call31, %for.body ], [ %call41, %if.end38 ] - %14 = trunc nuw nsw i64 %indvars.iv593 to i32 + %14 = trunc nuw nsw i64 %indvars.iv592 to i32 store i32 %14, ptr %tm_wday199, align 8 %add.ptr = getelementptr inbounds i8, ptr %p.0512, i64 %len.3419.ph br label %sw.epilog @@ -4363,7 +4363,7 @@ sw.bb93: ; preds = %FormatBegin br i1 %or.cond.i, label %do.body.i.preheader, label %return do.body.i.preheader: ; preds = %sw.bb93 - %scevgep591 = getelementptr i8, ptr %p.0512, i64 2 + %scevgep590 = getelementptr i8, ptr %p.0512, i64 2 br label %do.body.i do.body.i: ; preds = %do.body.i.preheader, %land.lhs.true4.i @@ -4389,7 +4389,7 @@ land.lhs.true4.i: ; preds = %do.body.i br i1 %or.cond14.i, label %do.end.i, label %do.body.i, !llvm.loop !104 do.end.i: ; preds = %land.lhs.true4.i, %do.body.i - %incdec.ptr.i.lcssa = phi ptr [ %incdec.ptr.i, %land.lhs.true4.i ], [ %scevgep591, %do.body.i ] + %incdec.ptr.i.lcssa = phi ptr [ %incdec.ptr.i, %land.lhs.true4.i ], [ %scevgep590, %do.body.i ] %or.cond15.i = icmp ugt i32 %add.i, 99 br i1 %or.cond15.i, label %return, label %if.end96 @@ -4417,7 +4417,7 @@ sw.bb103: ; preds = %FormatBegin, %Forma br i1 %or.cond.i73, label %do.body.i75.preheader, label %return do.body.i75.preheader: ; preds = %sw.bb103 - %scevgep590 = getelementptr i8, ptr %p.0512, i64 2 + %scevgep589 = getelementptr i8, ptr %p.0512, i64 2 br label %do.body.i75 do.body.i75: ; preds = %do.body.i75.preheader, %land.lhs.true4.i85 @@ -4443,7 +4443,7 @@ land.lhs.true4.i85: ; preds = %do.body.i75 br i1 %or.cond14.i90, label %do.end.i91, label %do.body.i75, !llvm.loop !104 do.end.i91: ; preds = %land.lhs.true4.i85, %do.body.i75 - %incdec.ptr.i80.lcssa = phi ptr [ %incdec.ptr.i80, %land.lhs.true4.i85 ], [ %scevgep590, %do.body.i75 ] + %incdec.ptr.i80.lcssa = phi ptr [ %incdec.ptr.i80, %land.lhs.true4.i85 ], [ %scevgep589, %do.body.i75 ] %36 = add i32 %add.i83, -32 %or.cond15.i94 = icmp ult i32 %36, -31 br i1 %or.cond15.i94, label %return, label %_ZN2EA4StdCL7ReadIntERPKcRiii.exit96 @@ -4464,7 +4464,7 @@ sw.bb112: ; preds = %FormatBegin br i1 %or.cond.i97, label %do.body.i99.preheader, label %return do.body.i99.preheader: ; preds = %sw.bb112 - %scevgep589 = getelementptr i8, ptr %p.0512, i64 2 + %scevgep588 = getelementptr i8, ptr %p.0512, i64 2 br label %do.body.i99 do.body.i99: ; preds = %do.body.i99.preheader, %land.lhs.true4.i109 @@ -4490,7 +4490,7 @@ land.lhs.true4.i109: ; preds = %do.body.i99 br i1 %or.cond14.i114, label %do.end.i115, label %do.body.i99, !llvm.loop !104 do.end.i115: ; preds = %land.lhs.true4.i109, %do.body.i99 - %incdec.ptr.i104.lcssa = phi ptr [ %incdec.ptr.i104, %land.lhs.true4.i109 ], [ %scevgep589, %do.body.i99 ] + %incdec.ptr.i104.lcssa = phi ptr [ %incdec.ptr.i104, %land.lhs.true4.i109 ], [ %scevgep588, %do.body.i99 ] %or.cond15.i118 = icmp ugt i32 %add.i107, 23 br i1 %or.cond15.i118, label %return, label %_ZN2EA4StdCL7ReadIntERPKcRiii.exit120 @@ -4505,7 +4505,7 @@ sw.bb116: ; preds = %FormatBegin br i1 %or.cond.i121, label %do.body.i123.preheader, label %return do.body.i123.preheader: ; preds = %sw.bb116 - %scevgep588 = getelementptr i8, ptr %p.0512, i64 2 + %scevgep587 = getelementptr i8, ptr %p.0512, i64 2 br label %do.body.i123 do.body.i123: ; preds = %do.body.i123.preheader, %land.lhs.true4.i133 @@ -4531,7 +4531,7 @@ land.lhs.true4.i133: ; preds = %do.body.i123 br i1 %or.cond14.i138, label %do.end.i139, label %do.body.i123, !llvm.loop !104 do.end.i139: ; preds = %land.lhs.true4.i133, %do.body.i123 - %incdec.ptr.i128.lcssa = phi ptr [ %incdec.ptr.i128, %land.lhs.true4.i133 ], [ %scevgep588, %do.body.i123 ] + %incdec.ptr.i128.lcssa = phi ptr [ %incdec.ptr.i128, %land.lhs.true4.i133 ], [ %scevgep587, %do.body.i123 ] %47 = add i32 %add.i131, -13 %or.cond15.i142 = icmp ult i32 %47, -12 br i1 %or.cond15.i142, label %return, label %_ZN2EA4StdCL7ReadIntERPKcRiii.exit144 @@ -4547,7 +4547,7 @@ sw.bb121: ; preds = %FormatBegin br i1 %or.cond.i145, label %do.body.i147.preheader, label %return do.body.i147.preheader: ; preds = %sw.bb121 - %scevgep587 = getelementptr i8, ptr %p.0512, i64 3 + %scevgep586 = getelementptr i8, ptr %p.0512, i64 3 br label %do.body.i147 do.body.i147: ; preds = %do.body.i147.preheader, %land.lhs.true4.i157 @@ -4573,7 +4573,7 @@ land.lhs.true4.i157: ; preds = %do.body.i147 br i1 %or.cond14.i162, label %do.end.i163, label %do.body.i147, !llvm.loop !104 do.end.i163: ; preds = %land.lhs.true4.i157, %do.body.i147 - %incdec.ptr.i152.lcssa = phi ptr [ %incdec.ptr.i152, %land.lhs.true4.i157 ], [ %scevgep587, %do.body.i147 ] + %incdec.ptr.i152.lcssa = phi ptr [ %incdec.ptr.i152, %land.lhs.true4.i157 ], [ %scevgep586, %do.body.i147 ] %53 = add i32 %add.i155, -367 %or.cond15.i166 = icmp ult i32 %53, -366 br i1 %or.cond15.i166, label %return, label %if.end124 @@ -4590,7 +4590,7 @@ sw.bb125: ; preds = %FormatBegin br i1 %or.cond.i169, label %do.body.i171.preheader, label %return do.body.i171.preheader: ; preds = %sw.bb125 - %scevgep586 = getelementptr i8, ptr %p.0512, i64 2 + %scevgep585 = getelementptr i8, ptr %p.0512, i64 2 br label %do.body.i171 do.body.i171: ; preds = %do.body.i171.preheader, %land.lhs.true4.i181 @@ -4616,7 +4616,7 @@ land.lhs.true4.i181: ; preds = %do.body.i171 br i1 %or.cond14.i186, label %do.end.i187, label %do.body.i171, !llvm.loop !104 do.end.i187: ; preds = %land.lhs.true4.i181, %do.body.i171 - %incdec.ptr.i176.lcssa = phi ptr [ %incdec.ptr.i176, %land.lhs.true4.i181 ], [ %scevgep586, %do.body.i171 ] + %incdec.ptr.i176.lcssa = phi ptr [ %incdec.ptr.i176, %land.lhs.true4.i181 ], [ %scevgep585, %do.body.i171 ] %or.cond15.i190 = icmp ugt i32 %add.i179, 59 br i1 %or.cond15.i190, label %return, label %_ZN2EA4StdCL7ReadIntERPKcRiii.exit192 @@ -4631,7 +4631,7 @@ sw.bb129: ; preds = %FormatBegin br i1 %or.cond.i193, label %do.body.i195.preheader, label %return do.body.i195.preheader: ; preds = %sw.bb129 - %scevgep585 = getelementptr i8, ptr %p.0512, i64 2 + %scevgep584 = getelementptr i8, ptr %p.0512, i64 2 br label %do.body.i195 do.body.i195: ; preds = %do.body.i195.preheader, %land.lhs.true4.i205 @@ -4657,7 +4657,7 @@ land.lhs.true4.i205: ; preds = %do.body.i195 br i1 %or.cond14.i210, label %do.end.i211, label %do.body.i195, !llvm.loop !104 do.end.i211: ; preds = %land.lhs.true4.i205, %do.body.i195 - %incdec.ptr.i200.lcssa = phi ptr [ %incdec.ptr.i200, %land.lhs.true4.i205 ], [ %scevgep585, %do.body.i195 ] + %incdec.ptr.i200.lcssa = phi ptr [ %incdec.ptr.i200, %land.lhs.true4.i205 ], [ %scevgep584, %do.body.i195 ] %64 = add i32 %add.i203, -13 %or.cond15.i214 = icmp ult i32 %64, -12 br i1 %or.cond15.i214, label %return, label %if.end132 @@ -4740,7 +4740,7 @@ sw.bb188: ; preds = %FormatBegin br i1 %or.cond.i220, label %do.body.i222.preheader, label %return do.body.i222.preheader: ; preds = %sw.bb188 - %scevgep584 = getelementptr i8, ptr %p.0512, i64 2 + %scevgep583 = getelementptr i8, ptr %p.0512, i64 2 br label %do.body.i222 do.body.i222: ; preds = %do.body.i222.preheader, %land.lhs.true4.i232 @@ -4766,7 +4766,7 @@ land.lhs.true4.i232: ; preds = %do.body.i222 br i1 %or.cond14.i237, label %do.end.i238, label %do.body.i222, !llvm.loop !104 do.end.i238: ; preds = %land.lhs.true4.i232, %do.body.i222 - %incdec.ptr.i227.lcssa = phi ptr [ %incdec.ptr.i227, %land.lhs.true4.i232 ], [ %scevgep584, %do.body.i222 ] + %incdec.ptr.i227.lcssa = phi ptr [ %incdec.ptr.i227, %land.lhs.true4.i232 ], [ %scevgep583, %do.body.i222 ] %or.cond15.i241 = icmp ugt i32 %add.i230, 61 br i1 %or.cond15.i241, label %return, label %_ZN2EA4StdCL7ReadIntERPKcRiii.exit243 @@ -4781,18 +4781,14 @@ sw.bb192: ; preds = %FormatBegin sw.bb198: ; preds = %FormatBegin %77 = load i8, ptr %p.0512, align 1 - %78 = add i8 %77, -48 - %or.cond.i244 = icmp ult i8 %78, 10 - br i1 %or.cond.i244, label %do.end.i262, label %return + %78 = add i8 %77, -55 + %or.cond = icmp ult i8 %78, -7 + br i1 %or.cond, label %return, label %_ZN2EA4StdCL7ReadIntERPKcRiii.exit267 -do.end.i262: ; preds = %sw.bb198 +_ZN2EA4StdCL7ReadIntERPKcRiii.exit267: ; preds = %sw.bb198 %conv3.i252 = zext nneg i8 %77 to i32 %add.i254 = add nsw i32 %conv3.i252, -48 - %or.cond15.i265 = icmp ugt i32 %add.i254, 6 - br i1 %or.cond15.i265, label %return, label %_ZN2EA4StdCL7ReadIntERPKcRiii.exit267 - -_ZN2EA4StdCL7ReadIntERPKcRiii.exit267: ; preds = %do.end.i262 - %scevgep583 = getelementptr i8, ptr %p.0512, i64 1 + %incdec.ptr.i251 = getelementptr inbounds i8, ptr %p.0512, i64 1 store i32 %add.i254, ptr %tm_wday199, align 4 br label %sw.epilog @@ -5012,14 +5008,14 @@ if.else235: ; preds = %if.end230 br label %sw.epilog sw.epilog: ; preds = %FormatBegin, %FormatBegin, %while.cond136, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit267, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit243, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit192, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit144, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit120, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit96, %if.then232, %if.else235, %_ZN2EA4StdCL9ParseTimeEbRPKcP2tmPKNS0_10TimeLocaleE.exit, %_ZN2EA4StdCL9ParseDateEbRPKcP2tmPKNS0_10TimeLocaleE.exit, %sw.bb192, %sw.bb183, %sw.bb178, %sw.bb107, %if.then98, %if.else, %if.end88, %sw.bb, %if.then225, %if.end217, %if.end174, %if.end157, %if.end132, %if.end124, %if.end81, %if.end51 - %p.2 = phi ptr [ %incdec.ptr.i309.lcssa, %if.then225 ], [ %incdec.ptr.i309.lcssa, %if.then232 ], [ %incdec.ptr.i309.lcssa, %if.else235 ], [ %incdec.ptr.i285.lcssa, %if.end217 ], [ %call1.i274, %_ZN2EA4StdCL9ParseTimeEbRPKcP2tmPKNS0_10TimeLocaleE.exit ], [ %call1.i, %_ZN2EA4StdCL9ParseDateEbRPKcP2tmPKNS0_10TimeLocaleE.exit ], [ %scevgep583, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit267 ], [ %call193, %sw.bb192 ], [ %incdec.ptr.i227.lcssa, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit243 ], [ %call184, %sw.bb183 ], [ %call179, %sw.bb178 ], [ %add.ptr158, %if.end157 ], [ %add.ptr175, %if.end174 ], [ %incdec.ptr.i200.lcssa, %if.end132 ], [ %incdec.ptr.i176.lcssa, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit192 ], [ %incdec.ptr.i152.lcssa, %if.end124 ], [ %incdec.ptr.i128.lcssa, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit144 ], [ %incdec.ptr.i104.lcssa, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit120 ], [ %call108, %sw.bb107 ], [ %incdec.ptr.i80.lcssa, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit96 ], [ %incdec.ptr.i.lcssa, %if.then98 ], [ %incdec.ptr.i.lcssa, %if.else ], [ %call89, %if.end88 ], [ %add.ptr82, %if.end81 ], [ %add.ptr, %if.end51 ], [ %incdec.ptr23, %sw.bb ], [ %p.3, %while.cond136 ], [ %p.0512, %FormatBegin ], [ %p.0512, %FormatBegin ] + %p.2 = phi ptr [ %incdec.ptr.i309.lcssa, %if.then225 ], [ %incdec.ptr.i309.lcssa, %if.then232 ], [ %incdec.ptr.i309.lcssa, %if.else235 ], [ %incdec.ptr.i285.lcssa, %if.end217 ], [ %call1.i274, %_ZN2EA4StdCL9ParseTimeEbRPKcP2tmPKNS0_10TimeLocaleE.exit ], [ %call1.i, %_ZN2EA4StdCL9ParseDateEbRPKcP2tmPKNS0_10TimeLocaleE.exit ], [ %incdec.ptr.i251, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit267 ], [ %call193, %sw.bb192 ], [ %incdec.ptr.i227.lcssa, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit243 ], [ %call184, %sw.bb183 ], [ %call179, %sw.bb178 ], [ %add.ptr158, %if.end157 ], [ %add.ptr175, %if.end174 ], [ %incdec.ptr.i200.lcssa, %if.end132 ], [ %incdec.ptr.i176.lcssa, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit192 ], [ %incdec.ptr.i152.lcssa, %if.end124 ], [ %incdec.ptr.i128.lcssa, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit144 ], [ %incdec.ptr.i104.lcssa, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit120 ], [ %call108, %sw.bb107 ], [ %incdec.ptr.i80.lcssa, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit96 ], [ %incdec.ptr.i.lcssa, %if.then98 ], [ %incdec.ptr.i.lcssa, %if.else ], [ %call89, %if.end88 ], [ %add.ptr82, %if.end81 ], [ %add.ptr, %if.end51 ], [ %incdec.ptr23, %sw.bb ], [ %p.3, %while.cond136 ], [ %p.0512, %FormatBegin ], [ %p.0512, %FormatBegin ] %bSplitYear.1 = phi i8 [ %bSplitYear.0.ph521, %if.then225 ], [ 1, %if.then232 ], [ 1, %if.else235 ], [ %bSplitYear.0.ph521, %if.end217 ], [ %bSplitYear.0.ph521, %_ZN2EA4StdCL9ParseTimeEbRPKcP2tmPKNS0_10TimeLocaleE.exit ], [ %bSplitYear.0.ph521, %_ZN2EA4StdCL9ParseDateEbRPKcP2tmPKNS0_10TimeLocaleE.exit ], [ %bSplitYear.0.ph521, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit267 ], [ %bSplitYear.0.ph521, %sw.bb192 ], [ %bSplitYear.0.ph521, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit243 ], [ %bSplitYear.0.ph521, %sw.bb183 ], [ %bSplitYear.0.ph521, %sw.bb178 ], [ %bSplitYear.0.ph521, %if.end157 ], [ %bSplitYear.0.ph521, %if.end174 ], [ %bSplitYear.0.ph521, %if.end132 ], [ %bSplitYear.0.ph521, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit192 ], [ %bSplitYear.0.ph521, %if.end124 ], [ %bSplitYear.0.ph521, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit144 ], [ %bSplitYear.0.ph521, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit120 ], [ %bSplitYear.0.ph521, %sw.bb107 ], [ %bSplitYear.0.ph521, %_ZN2EA4StdCL7ReadIntERPKcRiii.exit96 ], [ %bSplitYear.0.ph521, %if.then98 ], [ 1, %if.else ], [ %bSplitYear.0.ph521, %if.end88 ], [ %bSplitYear.0.ph521, %if.end81 ], [ %bSplitYear.0.ph521, %if.end51 ], [ %bSplitYear.0.ph521, %sw.bb ], [ %bSplitYear.0.ph521, %while.cond136 ], [ %bSplitYear.0.ph521, %FormatBegin ], [ %bSplitYear.0.ph521, %FormatBegin ] %105 = load i8, ptr %incdec.ptr20, align 1 %cmp.not511 = icmp eq i8 %105, 0 br i1 %cmp.not511, label %return, label %while.body.lr.ph, !llvm.loop !101 -return: ; preds = %sw.epilog, %sw.bb220, %do.end.i320, %sw.bb213, %do.end.i296, %sw.bb198, %do.end.i262, %sw.bb188, %do.end.i238, %sw.bb129, %do.end.i211, %sw.bb125, %do.end.i187, %sw.bb121, %do.end.i163, %sw.bb116, %do.end.i139, %sw.bb112, %do.end.i115, %sw.bb103, %do.end.i91, %sw.bb93, %do.end.i, %_ZN2EA4StdCL9ParseTimeEbRPKcP2tmPKNS0_10TimeLocaleE.exit, %_ZN2EA4StdCL9ParseDateEbRPKcP2tmPKNS0_10TimeLocaleE.exit, %sw.bb192, %sw.bb183, %sw.bb178, %if.else159, %if.end170, %sw.bb107, %if.end88, %sw.bb, %if.then12, %while.cond.backedge, %FormatBegin, %for.inc76, %for.inc, %entry - %retval.0 = phi ptr [ %pTimeString, %entry ], [ null, %for.inc ], [ null, %for.inc76 ], [ null, %FormatBegin ], [ %p.0.be, %while.cond.backedge ], [ null, %if.then12 ], [ %p.2, %sw.epilog ], [ null, %sw.bb220 ], [ null, %do.end.i320 ], [ null, %sw.bb213 ], [ null, %do.end.i296 ], [ null, %sw.bb198 ], [ null, %do.end.i262 ], [ null, %sw.bb188 ], [ null, %do.end.i238 ], [ null, %sw.bb129 ], [ null, %do.end.i211 ], [ null, %sw.bb125 ], [ null, %do.end.i187 ], [ null, %sw.bb121 ], [ null, %do.end.i163 ], [ null, %sw.bb116 ], [ null, %do.end.i139 ], [ null, %sw.bb112 ], [ null, %do.end.i115 ], [ null, %sw.bb103 ], [ null, %do.end.i91 ], [ null, %sw.bb93 ], [ null, %do.end.i ], [ null, %_ZN2EA4StdCL9ParseTimeEbRPKcP2tmPKNS0_10TimeLocaleE.exit ], [ null, %_ZN2EA4StdCL9ParseDateEbRPKcP2tmPKNS0_10TimeLocaleE.exit ], [ null, %sw.bb192 ], [ null, %sw.bb183 ], [ null, %sw.bb178 ], [ null, %if.else159 ], [ null, %if.end170 ], [ null, %sw.bb107 ], [ null, %if.end88 ], [ null, %sw.bb ] +return: ; preds = %sw.epilog, %sw.bb220, %do.end.i320, %sw.bb213, %do.end.i296, %sw.bb198, %sw.bb188, %do.end.i238, %sw.bb129, %do.end.i211, %sw.bb125, %do.end.i187, %sw.bb121, %do.end.i163, %sw.bb116, %do.end.i139, %sw.bb112, %do.end.i115, %sw.bb103, %do.end.i91, %sw.bb93, %do.end.i, %_ZN2EA4StdCL9ParseTimeEbRPKcP2tmPKNS0_10TimeLocaleE.exit, %_ZN2EA4StdCL9ParseDateEbRPKcP2tmPKNS0_10TimeLocaleE.exit, %sw.bb192, %sw.bb183, %sw.bb178, %if.else159, %if.end170, %sw.bb107, %if.end88, %sw.bb, %if.then12, %while.cond.backedge, %FormatBegin, %for.inc76, %for.inc, %entry + %retval.0 = phi ptr [ %pTimeString, %entry ], [ null, %for.inc ], [ null, %for.inc76 ], [ null, %FormatBegin ], [ %p.0.be, %while.cond.backedge ], [ null, %if.then12 ], [ %p.2, %sw.epilog ], [ null, %sw.bb220 ], [ null, %do.end.i320 ], [ null, %sw.bb213 ], [ null, %do.end.i296 ], [ null, %sw.bb198 ], [ null, %sw.bb188 ], [ null, %do.end.i238 ], [ null, %sw.bb129 ], [ null, %do.end.i211 ], [ null, %sw.bb125 ], [ null, %do.end.i187 ], [ null, %sw.bb121 ], [ null, %do.end.i163 ], [ null, %sw.bb116 ], [ null, %do.end.i139 ], [ null, %sw.bb112 ], [ null, %do.end.i115 ], [ null, %sw.bb103 ], [ null, %do.end.i91 ], [ null, %sw.bb93 ], [ null, %do.end.i ], [ null, %_ZN2EA4StdCL9ParseTimeEbRPKcP2tmPKNS0_10TimeLocaleE.exit ], [ null, %_ZN2EA4StdCL9ParseDateEbRPKcP2tmPKNS0_10TimeLocaleE.exit ], [ null, %sw.bb192 ], [ null, %sw.bb183 ], [ null, %sw.bb178 ], [ null, %if.else159 ], [ null, %if.end170 ], [ null, %sw.bb107 ], [ null, %if.end88 ], [ null, %sw.bb ] ret ptr %retval.0 } diff --git a/bench/faiss/optimized/lattice_Zn.cpp.ll b/bench/faiss/optimized/lattice_Zn.cpp.ll index fe304e4c263..fc087e1bf67 100644 --- a/bench/faiss/optimized/lattice_Zn.cpp.ll +++ b/bench/faiss/optimized/lattice_Zn.cpp.ll @@ -5498,7 +5498,7 @@ define noundef i64 @_ZNK5faiss16ZnSphereCodecRec15encode_centroidEPKf(ptr nocapt _ZNSt6vectorImSaImEE17_S_check_init_lenEmRKS0_.exit.i: ; preds = %2 %.not.i.i.i.i = icmp eq i32 %4, 0 - br i1 %.not.i.i.i.i, label %.preheader77, label %.noexc47 + br i1 %.not.i.i.i.i, label %.preheader78, label %.noexc47 .noexc47: ; preds = %_ZNSt6vectorImSaImEE17_S_check_init_lenEmRKS0_.exit.i %7 = shl nuw nsw i64 %5, 3 @@ -5532,15 +5532,15 @@ _ZSt6fill_nIPimiET_S1_T0_RKT1_.exit.loopexit.i.i.i.i.i: ; preds = %.noexc51 %wide.trip.count = zext nneg i32 %4 to i64 br label %.lr.ph -.preheader77: ; preds = %39, %_ZNSt6vectorImSaImEE17_S_check_init_lenEmRKS0_.exit.i +.preheader78: ; preds = %39, %_ZNSt6vectorImSaImEE17_S_check_init_lenEmRKS0_.exit.i %.sroa.0.0101 = phi ptr [ null, %_ZNSt6vectorImSaImEE17_S_check_init_lenEmRKS0_.exit.i ], [ %14, %39 ] %.sroa.063.07699 = phi ptr [ null, %_ZNSt6vectorImSaImEE17_S_check_init_lenEmRKS0_.exit.i ], [ %8, %39 ] %17 = getelementptr inbounds i8, ptr %0, i64 24 %18 = load i32, ptr %17, align 8 - %.not82 = icmp slt i32 %18, 1 - br i1 %.not82, label %._crit_edge85, label %.preheader.lr.ph + %.not83 = icmp slt i32 %18, 1 + br i1 %.not83, label %._crit_edge86, label %.preheader.lr.ph -.preheader.lr.ph: ; preds = %.preheader77 +.preheader.lr.ph: ; preds = %.preheader78 %19 = getelementptr inbounds i8, ptr %0, i64 56 %20 = getelementptr inbounds i8, ptr %0, i64 20 %21 = load i32, ptr %20, align 4 @@ -5583,25 +5583,25 @@ _ZNSt6vectorImSaImEED2Ev.exit: ; preds = %12 39: ; preds = %30, %33 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count - br i1 %exitcond.not, label %.preheader77, label %.lr.ph, !llvm.loop !82 + br i1 %exitcond.not, label %.preheader78, label %.lr.ph, !llvm.loop !82 .preheader: ; preds = %.preheader.lr.ph, %._crit_edge - %.04184.in = phi i32 [ %4, %.preheader.lr.ph ], [ %.04184, %._crit_edge ] - %.04383 = phi i32 [ 1, %.preheader.lr.ph ], [ %70, %._crit_edge ] - %.04184 = lshr i32 %.04184.in, 1 - %.not = icmp ult i32 %.04184.in, 2 - br i1 %.not, label %._crit_edge, label %.lr.ph80 - -.lr.ph80: ; preds = %.preheader - %40 = mul nsw i32 %22, %.04383 - %41 = add nsw i32 %.04383, -1 + %.0417785.in = phi i32 [ %4, %.preheader.lr.ph ], [ %.0417785, %._crit_edge ] + %.04384 = phi i32 [ 1, %.preheader.lr.ph ], [ %70, %._crit_edge ] + %.0417785 = lshr i32 %.0417785.in, 1 + %.not88 = icmp ult i32 %.0417785.in, 2 + br i1 %.not88, label %._crit_edge, label %.lr.ph81 + +.lr.ph81: ; preds = %.preheader + %40 = mul nsw i32 %22, %.04384 + %41 = add nsw i32 %.04384, -1 %42 = mul nsw i32 %22, %41 - %wide.trip.count92 = zext nneg i32 %.04184 to i64 + %wide.trip.count93 = zext nneg i32 %.0417785 to i64 br label %43 -43: ; preds = %.lr.ph80, %43 - %indvars.iv89 = phi i64 [ 0, %.lr.ph80 ], [ %indvars.iv.next90, %43 ] - %44 = shl nuw nsw i64 %indvars.iv89, 1 +43: ; preds = %.lr.ph81, %43 + %indvars.iv90 = phi i64 [ 0, %.lr.ph81 ], [ %indvars.iv.next91, %43 ] + %44 = shl nuw nsw i64 %indvars.iv90, 1 %45 = getelementptr inbounds i32, ptr %.sroa.0.0101, i64 %44 %46 = load i32, ptr %45, align 4 %47 = or disjoint i64 %44, 1 @@ -5625,29 +5625,29 @@ _ZNSt6vectorImSaImEED2Ev.exit: ; preds = %12 %65 = mul i64 %64, %51 %66 = add i64 %60, %53 %67 = add i64 %66, %65 - %68 = getelementptr inbounds i64, ptr %.sroa.063.07699, i64 %indvars.iv89 + %68 = getelementptr inbounds i64, ptr %.sroa.063.07699, i64 %indvars.iv90 store i64 %67, ptr %68, align 8 - %69 = getelementptr inbounds i32, ptr %.sroa.0.0101, i64 %indvars.iv89 + %69 = getelementptr inbounds i32, ptr %.sroa.0.0101, i64 %indvars.iv90 store i32 %54, ptr %69, align 4 - %indvars.iv.next90 = add nuw nsw i64 %indvars.iv89, 1 - %exitcond93.not = icmp eq i64 %indvars.iv.next90, %wide.trip.count92 - br i1 %exitcond93.not, label %._crit_edge, label %43, !llvm.loop !83 + %indvars.iv.next91 = add nuw nsw i64 %indvars.iv90, 1 + %exitcond94.not = icmp eq i64 %indvars.iv.next91, %wide.trip.count93 + br i1 %exitcond94.not, label %._crit_edge, label %43, !llvm.loop !83 ._crit_edge: ; preds = %43, %.preheader - %70 = add nuw i32 %.04383, 1 - %exitcond94.not = icmp eq i32 %.04383, %18 - br i1 %exitcond94.not, label %._crit_edge85, label %.preheader, !llvm.loop !84 + %70 = add nuw i32 %.04384, 1 + %exitcond95.not = icmp eq i32 %.04384, %18 + br i1 %exitcond95.not, label %._crit_edge86, label %.preheader, !llvm.loop !84 -._crit_edge85: ; preds = %._crit_edge, %.preheader77 +._crit_edge86: ; preds = %._crit_edge, %.preheader78 %71 = load i64, ptr %.sroa.063.07699, align 8 %.not.i.i.i52 = icmp eq ptr %.sroa.0.0101, null br i1 %.not.i.i.i52, label %_ZNSt6vectorImSaImEED2Ev.exit54, label %72 -72: ; preds = %._crit_edge85 +72: ; preds = %._crit_edge86 tail call void @_ZdlPv(ptr noundef nonnull %.sroa.0.0101) #24 br label %_ZNSt6vectorImSaImEED2Ev.exit54 -_ZNSt6vectorImSaImEED2Ev.exit54: ; preds = %._crit_edge85, %72 +_ZNSt6vectorImSaImEED2Ev.exit54: ; preds = %._crit_edge86, %72 tail call void @_ZdlPv(ptr noundef nonnull %.sroa.063.07699) #24 ret i64 %71 } diff --git a/bench/fmt/optimized/chrono-test.cc.ll b/bench/fmt/optimized/chrono-test.cc.ll index b1ec48cf81b..2b96cc5d9cd 100644 --- a/bench/fmt/optimized/chrono-test.cc.ll +++ b/bench/fmt/optimized/chrono-test.cc.ll @@ -83645,9 +83645,9 @@ _ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcE %idx.ext.i.i = sext i32 %sub.i.i to i64 %add.ptr.i.i = getelementptr inbounds i8, ptr %buffer.i, i64 %idx.ext.i.i %cmp119.i.i = icmp ugt i64 %0, 99 - br i1 %cmp119.i.i, label %while.body.i.i.preheader, label %while.end.i.i + br i1 %cmp119.i.i, label %while.body.i.i, label %while.end.i.i -while.body.i.i.preheader: ; preds = %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit +while.body.i.i: ; preds = %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit %add.ptr2.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i, i64 -2 %rem.i.i = urem i64 %0, 100 %mul.i.i.i = shl nuw nsw i64 %rem.i.i, 1 @@ -83655,11 +83655,11 @@ while.body.i.i.preheader: ; preds = %_ZSt6fill_nISt20bac %14 = load i16, ptr %arrayidx.i.i.i, align 1 store i16 %14, ptr %add.ptr2.i.i, align 1 %div.i.i42 = udiv i64 %0, 100 - br label %while.end.i.i + br label %while.end.i.i, !llvm.loop !2222 -while.end.i.i: ; preds = %while.body.i.i.preheader, %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit - %out.addr.0.lcssa.i.i = phi ptr [ %add.ptr.i.i, %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit ], [ %add.ptr2.i.i, %while.body.i.i.preheader ] - %value.addr.0.lcssa.i.i = phi i64 [ %0, %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit ], [ %div.i.i42, %while.body.i.i.preheader ] +while.end.i.i: ; preds = %while.body.i.i, %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit + %out.addr.0.lcssa.i.i = phi ptr [ %add.ptr.i.i, %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit ], [ %add.ptr2.i.i, %while.body.i.i ] + %value.addr.0.lcssa.i.i = phi i64 [ %0, %_ZSt6fill_nISt20back_insert_iteratorIN3fmt3v1019basic_memory_bufferIcLm500ESaIcEEEEicET_S7_T0_RKT1_.exit ], [ %div.i.i42, %while.body.i.i ] %cmp4.i.i = icmp ult i64 %value.addr.0.lcssa.i.i, 10 br i1 %cmp4.i.i, label %if.then.i.i, label %if.end.i.i @@ -83806,9 +83806,9 @@ _ZN3fmt3v106detail5pow10Ej.exit: ; preds = %cond.false.i, %if.t %idx.ext.i.i80 = sext i32 %sub45 to i64 %add.ptr.i.i81 = getelementptr inbounds i8, ptr %buffer.i79, i64 %idx.ext.i.i80 %cmp119.i.i82 = icmp ugt i64 %div, 99 - br i1 %cmp119.i.i82, label %while.end.i.i83.loopexit, label %while.end.i.i83 + br i1 %cmp119.i.i82, label %while.body.i.i115, label %while.end.i.i83 -while.end.i.i83.loopexit: ; preds = %_ZN3fmt3v106detail5pow10Ej.exit +while.body.i.i115: ; preds = %_ZN3fmt3v106detail5pow10Ej.exit %add.ptr2.i.i118 = getelementptr inbounds i8, ptr %add.ptr.i.i81, i64 -2 %rem.i.i119 = urem i64 %div, 100 %mul.i.i.i120 = shl nuw nsw i64 %rem.i.i119, 1 @@ -83816,11 +83816,11 @@ while.end.i.i83.loopexit: ; preds = %_ZN3fmt3v106detail5 %31 = load i16, ptr %arrayidx.i.i.i121, align 1 store i16 %31, ptr %add.ptr2.i.i118, align 1 %div.i.i122 = udiv i64 %div, 100 - br label %while.end.i.i83 + br label %while.end.i.i83, !llvm.loop !2222 -while.end.i.i83: ; preds = %while.end.i.i83.loopexit, %_ZN3fmt3v106detail5pow10Ej.exit - %out.addr.0.lcssa.i.i84 = phi ptr [ %add.ptr.i.i81, %_ZN3fmt3v106detail5pow10Ej.exit ], [ %add.ptr2.i.i118, %while.end.i.i83.loopexit ] - %value.addr.0.lcssa.i.i85 = phi i64 [ %div, %_ZN3fmt3v106detail5pow10Ej.exit ], [ %div.i.i122, %while.end.i.i83.loopexit ] +while.end.i.i83: ; preds = %while.body.i.i115, %_ZN3fmt3v106detail5pow10Ej.exit + %out.addr.0.lcssa.i.i84 = phi ptr [ %add.ptr.i.i81, %_ZN3fmt3v106detail5pow10Ej.exit ], [ %add.ptr2.i.i118, %while.body.i.i115 ] + %value.addr.0.lcssa.i.i85 = phi i64 [ %div, %_ZN3fmt3v106detail5pow10Ej.exit ], [ %div.i.i122, %while.body.i.i115 ] %cmp4.i.i86 = icmp ult i64 %value.addr.0.lcssa.i.i85, 10 br i1 %cmp4.i.i86, label %if.then.i.i112, label %if.end.i.i87 @@ -83883,9 +83883,9 @@ if.end: ; preds = %_ZSt6fill_nISt20bac %idx.ext.i.i126 = sext i32 %sub.i.i to i64 %add.ptr.i.i127 = getelementptr inbounds i8, ptr %buffer.i125, i64 %idx.ext.i.i126 %cmp119.i.i128 = icmp ugt i64 %0, 99 - br i1 %cmp119.i.i128, label %while.body.i.i161.preheader, label %while.end.i.i129 + br i1 %cmp119.i.i128, label %while.body.i.i161, label %while.end.i.i129 -while.body.i.i161.preheader: ; preds = %if.end +while.body.i.i161: ; preds = %if.end %add.ptr2.i.i164 = getelementptr inbounds i8, ptr %add.ptr.i.i127, i64 -2 %rem.i.i165 = urem i64 %0, 100 %mul.i.i.i166 = shl nuw nsw i64 %rem.i.i165, 1 @@ -83893,11 +83893,11 @@ while.body.i.i161.preheader: ; preds = %if.end %40 = load i16, ptr %arrayidx.i.i.i167, align 1 store i16 %40, ptr %add.ptr2.i.i164, align 1 %div.i.i168 = udiv i64 %0, 100 - br label %while.end.i.i129 + br label %while.end.i.i129, !llvm.loop !2222 -while.end.i.i129: ; preds = %while.body.i.i161.preheader, %if.end - %out.addr.0.lcssa.i.i130 = phi ptr [ %add.ptr.i.i127, %if.end ], [ %add.ptr2.i.i164, %while.body.i.i161.preheader ] - %value.addr.0.lcssa.i.i131 = phi i64 [ %0, %if.end ], [ %div.i.i168, %while.body.i.i161.preheader ] +while.end.i.i129: ; preds = %while.body.i.i161, %if.end + %out.addr.0.lcssa.i.i130 = phi ptr [ %add.ptr.i.i127, %if.end ], [ %add.ptr2.i.i164, %while.body.i.i161 ] + %value.addr.0.lcssa.i.i131 = phi i64 [ %0, %if.end ], [ %div.i.i168, %while.body.i.i161 ] %cmp4.i.i132 = icmp ult i64 %value.addr.0.lcssa.i.i131, 10 br i1 %cmp4.i.i132, label %if.then.i.i158, label %if.end.i.i133 @@ -141440,9 +141440,9 @@ if.end10: ; preds = %_ZN3fmt3v106detail1 %idx.ext.i.i = ashr i64 %add.i.i, 32 %add.ptr.i.i = getelementptr inbounds i8, ptr %buffer.i, i64 %idx.ext.i.i %cmp119.i.i = icmp ugt i8 %value, 99 - br i1 %cmp119.i.i, label %while.body.i.i.preheader, label %while.end.i.i + br i1 %cmp119.i.i, label %while.body.i.i, label %while.end.i.i -while.body.i.i.preheader: ; preds = %if.end10 +while.body.i.i: ; preds = %if.end10 %add.ptr2.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i, i64 -2 %rem.i.i = urem i32 %conv1.i, 100 %14 = shl nuw nsw i32 %rem.i.i, 1 @@ -141451,11 +141451,11 @@ while.body.i.i.preheader: ; preds = %if.end10 %15 = load i16, ptr %arrayidx.i.i.i10, align 1 store i16 %15, ptr %add.ptr2.i.i, align 1 %div.i.i = udiv i32 %conv1.i, 100 - br label %while.end.i.i + br label %while.end.i.i, !llvm.loop !2506 -while.end.i.i: ; preds = %while.body.i.i.preheader, %if.end10 - %out.addr.0.lcssa.i.i = phi ptr [ %add.ptr.i.i, %if.end10 ], [ %add.ptr2.i.i, %while.body.i.i.preheader ] - %value.addr.0.lcssa.i.i = phi i32 [ %conv1.i, %if.end10 ], [ %div.i.i, %while.body.i.i.preheader ] +while.end.i.i: ; preds = %while.body.i.i, %if.end10 + %out.addr.0.lcssa.i.i = phi ptr [ %add.ptr.i.i, %if.end10 ], [ %add.ptr2.i.i, %while.body.i.i ] + %value.addr.0.lcssa.i.i = phi i32 [ %conv1.i, %if.end10 ], [ %div.i.i, %while.body.i.i ] %cmp4.i.i = icmp ult i32 %value.addr.0.lcssa.i.i, 10 br i1 %cmp4.i.i, label %if.then.i.i, label %if.end.i.i @@ -150959,9 +150959,9 @@ if.end10: ; preds = %_ZN3fmt3v106detail1 %idx.ext.i.i = ashr i64 %add.i.i, 32 %add.ptr.i.i = getelementptr inbounds i8, ptr %buffer.i, i64 %idx.ext.i.i %cmp119.i.i = icmp ugt i8 %value, 99 - br i1 %cmp119.i.i, label %while.body.i.i.preheader, label %while.end.i.i + br i1 %cmp119.i.i, label %while.body.i.i, label %while.end.i.i -while.body.i.i.preheader: ; preds = %if.end10 +while.body.i.i: ; preds = %if.end10 %add.ptr2.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i, i64 -2 %rem.i.i = urem i32 %conv1.i, 100 %14 = shl nuw nsw i32 %rem.i.i, 1 @@ -150970,11 +150970,11 @@ while.body.i.i.preheader: ; preds = %if.end10 %15 = load i16, ptr %arrayidx.i.i.i10, align 1 store i16 %15, ptr %add.ptr2.i.i, align 1 %div.i.i = udiv i32 %conv1.i, 100 - br label %while.end.i.i + br label %while.end.i.i, !llvm.loop !2506 -while.end.i.i: ; preds = %while.body.i.i.preheader, %if.end10 - %out.addr.0.lcssa.i.i = phi ptr [ %add.ptr.i.i, %if.end10 ], [ %add.ptr2.i.i, %while.body.i.i.preheader ] - %value.addr.0.lcssa.i.i = phi i32 [ %conv1.i, %if.end10 ], [ %div.i.i, %while.body.i.i.preheader ] +while.end.i.i: ; preds = %while.body.i.i, %if.end10 + %out.addr.0.lcssa.i.i = phi ptr [ %add.ptr.i.i, %if.end10 ], [ %add.ptr2.i.i, %while.body.i.i ] + %value.addr.0.lcssa.i.i = phi i32 [ %conv1.i, %if.end10 ], [ %div.i.i, %while.body.i.i ] %cmp4.i.i = icmp ult i32 %value.addr.0.lcssa.i.i, 10 br i1 %cmp4.i.i, label %if.then.i.i, label %if.end.i.i @@ -168280,9 +168280,9 @@ if.end10: ; preds = %_ZN3fmt3v106detail1 %idx.ext.i.i = ashr i64 %add.i.i, 32 %add.ptr.i.i = getelementptr inbounds i8, ptr %buffer.i, i64 %idx.ext.i.i %cmp119.i.i = icmp ugt i8 %value, 99 - br i1 %cmp119.i.i, label %while.body.i.i.preheader, label %while.end.i.i + br i1 %cmp119.i.i, label %while.body.i.i, label %while.end.i.i -while.body.i.i.preheader: ; preds = %if.end10 +while.body.i.i: ; preds = %if.end10 %add.ptr2.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i, i64 -2 %rem.i.i = urem i32 %conv1.i, 100 %14 = shl nuw nsw i32 %rem.i.i, 1 @@ -168291,11 +168291,11 @@ while.body.i.i.preheader: ; preds = %if.end10 %15 = load i16, ptr %arrayidx.i.i.i10, align 1 store i16 %15, ptr %add.ptr2.i.i, align 1 %div.i.i = udiv i32 %conv1.i, 100 - br label %while.end.i.i + br label %while.end.i.i, !llvm.loop !2506 -while.end.i.i: ; preds = %while.body.i.i.preheader, %if.end10 - %out.addr.0.lcssa.i.i = phi ptr [ %add.ptr.i.i, %if.end10 ], [ %add.ptr2.i.i, %while.body.i.i.preheader ] - %value.addr.0.lcssa.i.i = phi i32 [ %conv1.i, %if.end10 ], [ %div.i.i, %while.body.i.i.preheader ] +while.end.i.i: ; preds = %while.body.i.i, %if.end10 + %out.addr.0.lcssa.i.i = phi ptr [ %add.ptr.i.i, %if.end10 ], [ %add.ptr2.i.i, %while.body.i.i ] + %value.addr.0.lcssa.i.i = phi i32 [ %conv1.i, %if.end10 ], [ %div.i.i, %while.body.i.i ] %cmp4.i.i = icmp ult i32 %value.addr.0.lcssa.i.i, 10 br i1 %cmp4.i.i, label %if.then.i.i, label %if.end.i.i diff --git a/bench/glslang/optimized/PpScanner.cpp.ll b/bench/glslang/optimized/PpScanner.cpp.ll index f5fee12f079..6d9e3d921dc 100644 --- a/bench/glslang/optimized/PpScanner.cpp.ll +++ b/bench/glslang/optimized/PpScanner.cpp.ll @@ -175,17 +175,17 @@ define noundef range(i32 158, 161) i32 @_ZN7glslang10TPpContext11lFloatConstEiiP %24 = sub nsw i32 %.0159.lcssa, %.0158.lcssa %25 = icmp slt i32 %24, 16 %26 = icmp slt i32 %.0158.lcssa, %.0159.lcssa - %or.cond414 = and i1 %25, %26 - br i1 %or.cond414, label %.lr.ph387, label %.loopexit381 + %or.cond413 = and i1 %25, %26 + br i1 %or.cond413, label %.lr.ph386, label %.loopexit380 -.lr.ph387: ; preds = %.critedge2 +.lr.ph386: ; preds = %.critedge2 %27 = zext i32 %.0158.lcssa to i64 br label %28 -28: ; preds = %.lr.ph387, %28 - %indvars.iv423 = phi i64 [ %27, %.lr.ph387 ], [ %indvars.iv.next424, %28 ] - %.1165385 = phi i64 [ 0, %.lr.ph387 ], [ %34, %28 ] - %29 = mul i64 %.1165385, 10 +28: ; preds = %.lr.ph386, %28 + %indvars.iv423 = phi i64 [ %27, %.lr.ph386 ], [ %indvars.iv.next424, %28 ] + %.1165384 = phi i64 [ 0, %.lr.ph386 ], [ %34, %28 ] + %29 = mul i64 %.1165384, 10 %30 = getelementptr inbounds [1025 x i8], ptr %8, i64 0, i64 %indvars.iv423 %31 = load i8, ptr %30, align 1 %32 = sext i8 %31 to i64 @@ -194,15 +194,15 @@ define noundef range(i32 158, 161) i32 @_ZN7glslang10TPpContext11lFloatConstEiiP %indvars.iv.next424 = add nuw nsw i64 %indvars.iv423, 1 %35 = trunc nuw i64 %indvars.iv.next424 to i32 %36 = icmp sgt i32 %.0159.lcssa, %35 - br i1 %36, label %28, label %.loopexit381, !llvm.loop !7 + br i1 %36, label %28, label %.loopexit380, !llvm.loop !7 -.loopexit381: ; preds = %28, %.critedge2 +.loopexit380: ; preds = %28, %.critedge2 %.0164 = phi i64 [ 0, %.critedge2 ], [ %34, %28 ] %37 = sub nsw i32 %1, %.0159.lcssa %38 = icmp eq i32 %2, 46 br i1 %38, label %39, label %._crit_edge.thread -39: ; preds = %.loopexit381 +39: ; preds = %.loopexit380 %40 = icmp slt i32 %1, 1025 br i1 %40, label %41, label %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit" @@ -353,29 +353,29 @@ define noundef range(i32 158, 161) i32 @_ZN7glslang10TPpContext11lFloatConstEiiP 126: ; preds = %104, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit" %.1 = phi i32 [ %.2, %104 ], [ %51, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit" ] %127 = icmp eq i32 %.1, 48 - br i1 %127, label %.lr.ph390, label %.preheader379 + br i1 %127, label %.lr.ph389, label %.preheader378 -.preheader379: ; preds = %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit241", %126 +.preheader378: ; preds = %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit241", %126 %.1324.lcssa = phi i32 [ %.8, %126 ], [ %.12, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit241" ] %.3.lcssa = phi i32 [ %.1, %126 ], [ %141, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit241" ] %128 = add i32 %.3.lcssa, -48 %129 = icmp ult i32 %128, 10 - br i1 %129, label %.lr.ph396, label %._crit_edge.thread + br i1 %129, label %.lr.ph395, label %._crit_edge.thread -.lr.ph390: ; preds = %126, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit241" - %.1324389 = phi i32 [ %.12, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit241" ], [ %.8, %126 ] - %130 = icmp slt i32 %.1324389, 1025 +.lr.ph389: ; preds = %126, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit241" + %.1324388 = phi i32 [ %.12, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit241" ], [ %.8, %126 ] + %130 = icmp slt i32 %.1324388, 1025 br i1 %130, label %131, label %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit241" -131: ; preds = %.lr.ph390 - %132 = add nsw i32 %.1324389, 1 - %133 = sext i32 %.1324389 to i64 +131: ; preds = %.lr.ph389 + %132 = add nsw i32 %.1324388, 1 + %133 = sext i32 %.1324388 to i64 %134 = getelementptr inbounds [1025 x i8], ptr %8, i64 0, i64 %133 store i8 48, ptr %134, align 1 br label %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit241" -"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit241": ; preds = %.lr.ph390, %131 - %.12 = phi i32 [ %132, %131 ], [ %.1324389, %.lr.ph390 ] +"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit241": ; preds = %.lr.ph389, %131 + %.12 = phi i32 [ %132, %131 ], [ %.1324388, %.lr.ph389 ] %135 = load ptr, ptr %44, align 8 %136 = getelementptr inbounds i8, ptr %135, i64 -8 %137 = load ptr, ptr %136, align 8 @@ -384,27 +384,27 @@ define noundef range(i32 158, 161) i32 @_ZN7glslang10TPpContext11lFloatConstEiiP %140 = load ptr, ptr %139, align 8 %141 = tail call noundef i32 %140(ptr noundef nonnull align 8 dereferenceable(24) %137) #13 %142 = icmp eq i32 %141, 48 - br i1 %142, label %.lr.ph390, label %.preheader379, !llvm.loop !8 + br i1 %142, label %.lr.ph389, label %.preheader378, !llvm.loop !8 -.lr.ph396: ; preds = %.preheader379, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit242" - %.4395 = phi i32 [ %155, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit242" ], [ %.3.lcssa, %.preheader379 ] - %.0156394 = phi i32 [ %spec.select, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit242" ], [ %.1324.lcssa, %.preheader379 ] - %.2325393 = phi i32 [ %.13, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit242" ], [ %.1324.lcssa, %.preheader379 ] - %143 = icmp slt i32 %.2325393, 1025 +.lr.ph395: ; preds = %.preheader378, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit242" + %.4394 = phi i32 [ %155, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit242" ], [ %.3.lcssa, %.preheader378 ] + %.0156393 = phi i32 [ %spec.select, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit242" ], [ %.1324.lcssa, %.preheader378 ] + %.2325392 = phi i32 [ %.13, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit242" ], [ %.1324.lcssa, %.preheader378 ] + %143 = icmp slt i32 %.2325392, 1025 br i1 %143, label %144, label %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit242" -144: ; preds = %.lr.ph396 - %145 = trunc nuw i32 %.4395 to i8 - %146 = add nsw i32 %.2325393, 1 - %147 = sext i32 %.2325393 to i64 +144: ; preds = %.lr.ph395 + %145 = trunc nuw i32 %.4394 to i8 + %146 = add nsw i32 %.2325392, 1 + %147 = sext i32 %.2325392 to i64 %148 = getelementptr inbounds [1025 x i8], ptr %8, i64 0, i64 %147 store i8 %145, ptr %148, align 1 br label %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit242" -"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit242": ; preds = %.lr.ph396, %144 - %.13 = phi i32 [ %146, %144 ], [ %.2325393, %.lr.ph396 ] - %.not195 = icmp eq i32 %.4395, 48 - %spec.select = select i1 %.not195, i32 %.0156394, i32 %.13 +"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit242": ; preds = %.lr.ph395, %144 + %.13 = phi i32 [ %146, %144 ], [ %.2325392, %.lr.ph395 ] + %.not195 = icmp eq i32 %.4394, 48 + %spec.select = select i1 %.not195, i32 %.0156393, i32 %.13 %149 = load ptr, ptr %44, align 8 %150 = getelementptr inbounds i8, ptr %149, i64 -8 %151 = load ptr, ptr %150, align 8 @@ -414,7 +414,7 @@ define noundef range(i32 158, 161) i32 @_ZN7glslang10TPpContext11lFloatConstEiiP %155 = tail call noundef i32 %154(ptr noundef nonnull align 8 dereferenceable(24) %151) #13 %156 = add i32 %155, -48 %157 = icmp ult i32 %156, 10 - br i1 %157, label %.lr.ph396, label %._crit_edge, !llvm.loop !9 + br i1 %157, label %.lr.ph395, label %._crit_edge, !llvm.loop !9 ._crit_edge: ; preds = %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit242" %158 = icmp sgt i32 %spec.select, %.1324.lcssa @@ -427,41 +427,41 @@ define noundef range(i32 158, 161) i32 @_ZN7glslang10TPpContext11lFloatConstEiiP %163 = icmp slt i32 %162, 16 %narrow = and i1 %25, %163 %164 = icmp slt i32 %.0159.lcssa, %spec.select - %or.cond415 = and i1 %narrow, %164 - br i1 %or.cond415, label %.lr.ph402, label %.loopexit378 + %or.cond414 = and i1 %narrow, %164 + br i1 %or.cond414, label %.lr.ph401, label %.loopexit377 -.lr.ph402: ; preds = %159 +.lr.ph401: ; preds = %159 %165 = sext i32 %.0159.lcssa to i64 %wide.trip.count429 = sext i32 %spec.select to i64 br label %166 -166: ; preds = %.lr.ph402, %166 - %indvars.iv426 = phi i64 [ %165, %.lr.ph402 ], [ %indvars.iv.next427, %166 ] - %.4168400 = phi i64 [ %.0164, %.lr.ph402 ], [ %.5169, %166 ] +166: ; preds = %.lr.ph401, %166 + %indvars.iv426 = phi i64 [ %165, %.lr.ph401 ], [ %indvars.iv.next427, %166 ] + %.4168399 = phi i64 [ %.0164, %.lr.ph401 ], [ %.5169, %166 ] %167 = getelementptr inbounds [1025 x i8], ptr %8, i64 0, i64 %indvars.iv426 %168 = load i8, ptr %167, align 1 %.not194 = icmp eq i8 %168, 46 %169 = sext i8 %168 to i64 - %170 = mul i64 %.4168400, 10 + %170 = mul i64 %.4168399, 10 %171 = add i64 %170, -48 %172 = add i64 %171, %169 - %.5169 = select i1 %.not194, i64 %.4168400, i64 %172 + %.5169 = select i1 %.not194, i64 %.4168399, i64 %172 %indvars.iv.next427 = add nsw i64 %indvars.iv426, 1 %exitcond430.not = icmp eq i64 %indvars.iv.next427, %wide.trip.count429 - br i1 %exitcond430.not, label %.loopexit378, label %166, !llvm.loop !10 + br i1 %exitcond430.not, label %.loopexit377, label %166, !llvm.loop !10 -.loopexit378: ; preds = %166, %159 +.loopexit377: ; preds = %166, %159 %.3167 = phi i64 [ %.0164, %159 ], [ %.5169, %166 ] %173 = sub nsw i32 %.8, %spec.select br label %._crit_edge.thread -._crit_edge.thread: ; preds = %.preheader379, %._crit_edge, %.loopexit378, %.loopexit381 - %.0323 = phi i32 [ %.13, %.loopexit378 ], [ %.13, %._crit_edge ], [ %1, %.loopexit381 ], [ %.1324.lcssa, %.preheader379 ] - %.0173 = phi i32 [ %162, %.loopexit378 ], [ %24, %._crit_edge ], [ %24, %.loopexit381 ], [ %24, %.preheader379 ] - %.0170 = phi i1 [ %narrow, %.loopexit378 ], [ %25, %._crit_edge ], [ %25, %.loopexit381 ], [ %25, %.preheader379 ] - %.2166 = phi i64 [ %.3167, %.loopexit378 ], [ %.0164, %._crit_edge ], [ %.0164, %.loopexit381 ], [ %.0164, %.preheader379 ] - %.0162 = phi i32 [ %173, %.loopexit378 ], [ %37, %._crit_edge ], [ %37, %.loopexit381 ], [ %37, %.preheader379 ] - %.0139 = phi i32 [ %155, %.loopexit378 ], [ %155, %._crit_edge ], [ %2, %.loopexit381 ], [ %.3.lcssa, %.preheader379 ] +._crit_edge.thread: ; preds = %.preheader378, %._crit_edge, %.loopexit377, %.loopexit380 + %.0323 = phi i32 [ %.13, %.loopexit377 ], [ %.13, %._crit_edge ], [ %1, %.loopexit380 ], [ %.1324.lcssa, %.preheader378 ] + %.0173 = phi i32 [ %162, %.loopexit377 ], [ %24, %._crit_edge ], [ %24, %.loopexit380 ], [ %24, %.preheader378 ] + %.0170 = phi i1 [ %narrow, %.loopexit377 ], [ %25, %._crit_edge ], [ %25, %.loopexit380 ], [ %25, %.preheader378 ] + %.2166 = phi i64 [ %.3167, %.loopexit377 ], [ %.0164, %._crit_edge ], [ %.0164, %.loopexit380 ], [ %.0164, %.preheader378 ] + %.0162 = phi i32 [ %173, %.loopexit377 ], [ %37, %._crit_edge ], [ %37, %.loopexit380 ], [ %37, %.preheader378 ] + %.0139 = phi i32 [ %155, %.loopexit377 ], [ %155, %._crit_edge ], [ %2, %.loopexit380 ], [ %.3.lcssa, %.preheader378 ] %174 = and i32 %.0139, -33 %or.cond6 = icmp eq i32 %174, 69 br i1 %or.cond6, label %175, label %.thread333 @@ -524,30 +524,30 @@ define noundef range(i32 158, 161) i32 @_ZN7glslang10TPpContext11lFloatConstEiiP %.6 = phi i32 [ %189, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit243" ], [ %205, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit244" ] %207 = add i32 %.6, -48 %or.cond12 = icmp ult i32 %207, 10 - br i1 %or.cond12, label %.lr.ph407, label %227 + br i1 %or.cond12, label %.lr.ph406, label %227 -.lr.ph407: ; preds = %206, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit245" +.lr.ph406: ; preds = %206, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit245" %208 = phi i32 [ %225, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit245" ], [ %207, %206 ] - %.7406 = phi i32 [ %224, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit245" ], [ %.6, %206 ] - %.1144405 = phi i32 [ %.2145, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit245" ], [ 0, %206 ] - %.5328404 = phi i32 [ %.16, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit245" ], [ %.4327, %206 ] - %209 = icmp slt i32 %.1144405, 500 - %210 = mul nsw i32 %.1144405, 10 + %.7405 = phi i32 [ %224, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit245" ], [ %.6, %206 ] + %.1144404 = phi i32 [ %.2145, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit245" ], [ 0, %206 ] + %.5328403 = phi i32 [ %.16, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit245" ], [ %.4327, %206 ] + %209 = icmp slt i32 %.1144404, 500 + %210 = mul nsw i32 %.1144404, 10 %211 = add nsw i32 %208, %210 - %.2145 = select i1 %209, i32 %211, i32 %.1144405 - %212 = icmp slt i32 %.5328404, 1025 + %.2145 = select i1 %209, i32 %211, i32 %.1144404 + %212 = icmp slt i32 %.5328403, 1025 br i1 %212, label %213, label %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit245" -213: ; preds = %.lr.ph407 - %214 = trunc nuw i32 %.7406 to i8 - %215 = add nsw i32 %.5328404, 1 - %216 = sext i32 %.5328404 to i64 +213: ; preds = %.lr.ph406 + %214 = trunc nuw i32 %.7405 to i8 + %215 = add nsw i32 %.5328403, 1 + %216 = sext i32 %.5328403 to i64 %217 = getelementptr inbounds [1025 x i8], ptr %8, i64 0, i64 %216 store i8 %214, ptr %217, align 1 br label %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit245" -"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit245": ; preds = %.lr.ph407, %213 - %.16 = phi i32 [ %215, %213 ], [ %.5328404, %.lr.ph407 ] +"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit245": ; preds = %.lr.ph406, %213 + %.16 = phi i32 [ %215, %213 ], [ %.5328403, %.lr.ph406 ] %218 = load ptr, ptr %182, align 8 %219 = getelementptr inbounds i8, ptr %218, i64 -8 %220 = load ptr, ptr %219, align 8 @@ -557,7 +557,7 @@ define noundef range(i32 158, 161) i32 @_ZN7glslang10TPpContext11lFloatConstEiiP %224 = tail call noundef i32 %223(ptr noundef nonnull align 8 dereferenceable(24) %220) #13 %225 = add i32 %224, -48 %226 = icmp ult i32 %225, 10 - br i1 %226, label %.lr.ph407, label %.loopexit376, !llvm.loop !11 + br i1 %226, label %.lr.ph406, label %.loopexit375, !llvm.loop !11 227: ; preds = %206 %228 = getelementptr inbounds i8, ptr %0, i64 256 @@ -566,29 +566,29 @@ define noundef range(i32 158, 161) i32 @_ZN7glslang10TPpContext11lFloatConstEiiP %231 = getelementptr inbounds i8, ptr %230, i64 360 %232 = load ptr, ptr %231, align 8 tail call void (ptr, ptr, ptr, ptr, ptr, ...) %232(ptr noundef nonnull align 8 dereferenceable(1280) %229, ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.2) #13 - br label %.loopexit376 + br label %.loopexit375 -.loopexit376: ; preds = %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit245", %227 +.loopexit375: ; preds = %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit245", %227 %.3326 = phi i32 [ %.4327, %227 ], [ %.16, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit245" ] %.0143 = phi i32 [ 0, %227 ], [ %.2145, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit245" ] %.5 = phi i32 [ %.6, %227 ], [ %224, %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit245" ] %233 = trunc nuw i8 %.1153 to i1 br i1 %233, label %234, label %.thread333 -234: ; preds = %.loopexit376 +234: ; preds = %.loopexit375 %235 = sub nsw i32 %.0143, %.0162 br label %238 -.thread333: ; preds = %75, %57, %._crit_edge.thread, %.loopexit376 - %.0162463 = phi i32 [ %.0162, %.loopexit376 ], [ %.0162, %._crit_edge.thread ], [ %37, %57 ], [ %37, %75 ] - %.2166462 = phi i64 [ %.2166, %.loopexit376 ], [ %.2166, %._crit_edge.thread ], [ %.0164, %57 ], [ %.0164, %75 ] - %.0170460 = phi i1 [ %.0170, %.loopexit376 ], [ %.0170, %._crit_edge.thread ], [ %25, %57 ], [ %25, %75 ] - %.0173458 = phi i32 [ %.0173, %.loopexit376 ], [ %.0173, %._crit_edge.thread ], [ %24, %57 ], [ %24, %75 ] - %.5346 = phi i32 [ %.5, %.loopexit376 ], [ %.0139, %._crit_edge.thread ], [ 35, %57 ], [ 35, %75 ] - %.0143344 = phi i32 [ %.0143, %.loopexit376 ], [ 0, %._crit_edge.thread ], [ 0, %57 ], [ 0, %75 ] - %.0152343 = phi i8 [ %.1153, %.loopexit376 ], [ 0, %._crit_edge.thread ], [ 0, %57 ], [ 0, %75 ] - %.1161342 = phi i1 [ true, %.loopexit376 ], [ %38, %._crit_edge.thread ], [ true, %57 ], [ true, %75 ] - %.3326340 = phi i32 [ %.3326, %.loopexit376 ], [ %.0323, %._crit_edge.thread ], [ %.8, %57 ], [ %.8, %75 ] +.thread333: ; preds = %75, %57, %._crit_edge.thread, %.loopexit375 + %.0162463 = phi i32 [ %.0162, %.loopexit375 ], [ %.0162, %._crit_edge.thread ], [ %37, %57 ], [ %37, %75 ] + %.2166462 = phi i64 [ %.2166, %.loopexit375 ], [ %.2166, %._crit_edge.thread ], [ %.0164, %57 ], [ %.0164, %75 ] + %.0170460 = phi i1 [ %.0170, %.loopexit375 ], [ %.0170, %._crit_edge.thread ], [ %25, %57 ], [ %25, %75 ] + %.0173458 = phi i32 [ %.0173, %.loopexit375 ], [ %.0173, %._crit_edge.thread ], [ %24, %57 ], [ %24, %75 ] + %.5346 = phi i32 [ %.5, %.loopexit375 ], [ %.0139, %._crit_edge.thread ], [ 35, %57 ], [ 35, %75 ] + %.0143344 = phi i32 [ %.0143, %.loopexit375 ], [ 0, %._crit_edge.thread ], [ 0, %57 ], [ 0, %75 ] + %.0152343 = phi i8 [ %.1153, %.loopexit375 ], [ 0, %._crit_edge.thread ], [ 0, %57 ], [ 0, %75 ] + %.1161342 = phi i1 [ true, %.loopexit375 ], [ %38, %._crit_edge.thread ], [ true, %57 ], [ true, %75 ] + %.3326340 = phi i32 [ %.3326, %.loopexit375 ], [ %.0323, %._crit_edge.thread ], [ %.8, %57 ], [ %.8, %75 ] %236 = add nsw i32 %.0143344, %.0162463 %237 = icmp slt i32 %236, 0 %spec.select197 = select i1 %237, i8 1, i8 %.0152343 @@ -613,17 +613,17 @@ define noundef range(i32 158, 161) i32 @_ZN7glslang10TPpContext11lFloatConstEiiP br i1 %242, label %.preheader, label %.loopexit .preheader: ; preds = %241, %.preheader - %.0142413 = phi double [ %245, %.preheader ], [ 1.000000e+01, %241 ] - %.5148412 = phi i32 [ %246, %.preheader ], [ %.3146, %241 ] - %.1150411 = phi double [ %.2151, %.preheader ], [ 1.000000e+00, %241 ] - %243 = and i32 %.5148412, 1 + %.0142412 = phi double [ %245, %.preheader ], [ 1.000000e+01, %241 ] + %.5148411 = phi i32 [ %246, %.preheader ], [ %.3146, %241 ] + %.1150410 = phi double [ %.2151, %.preheader ], [ 1.000000e+00, %241 ] + %243 = and i32 %.5148411, 1 %.not193 = icmp eq i32 %243, 0 - %244 = fmul double %.1150411, %.0142413 - %.2151 = select i1 %.not193, double %.1150411, double %244 - %245 = fmul double %.0142413, %.0142413 - %246 = lshr i32 %.5148412, 1 - %.not366 = icmp ult i32 %.5148412, 2 - br i1 %.not366, label %.loopexit, label %.preheader, !llvm.loop !12 + %244 = fmul double %.1150410, %.0142412 + %.2151 = select i1 %.not193, double %.1150410, double %244 + %245 = fmul double %.0142412, %.0142412 + %246 = lshr i32 %.5148411, 1 + %.not415 = icmp ult i32 %.5148411, 2 + br i1 %.not415, label %.loopexit, label %.preheader, !llvm.loop !12 .loopexit: ; preds = %.preheader, %241, %238 %.0149 = phi double [ 1.000000e+00, %241 ], [ 0.000000e+00, %238 ], [ %.2151, %.preheader ] @@ -724,8 +724,8 @@ define noundef range(i32 158, 161) i32 @_ZN7glslang10TPpContext11lFloatConstEiiP %303 = sext i32 %.3326339 to i64 %304 = getelementptr inbounds [1025 x i8], ptr %8, i64 0, i64 %303 store i8 %302, ptr %304, align 1 - %.not369 = icmp eq i32 %.3326339, 1024 - br i1 %.not369, label %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit247.thread", label %305 + %.not368 = icmp eq i32 %.3326339, 1024 + br i1 %.not368, label %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit247.thread", label %305 305: ; preds = %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit246" %306 = add nsw i32 %.3326339, 1 @@ -775,8 +775,8 @@ define noundef range(i32 158, 161) i32 @_ZN7glslang10TPpContext11lFloatConstEiiP 335: ; preds = %330, %322 %.pr350 = phi i1 [ %334, %330 ], [ false, %322 ] - %brmerge372 = or i1 %.1161341, %.pr350 - br i1 %brmerge372, label %.thread351, label %336 + %brmerge371 = or i1 %.1161341, %.pr350 + br i1 %brmerge371, label %.thread351, label %336 336: ; preds = %335 %337 = load ptr, ptr %323, align 8 @@ -837,8 +837,8 @@ define noundef range(i32 158, 161) i32 @_ZN7glslang10TPpContext11lFloatConstEiiP %373 = sext i32 %.3326339 to i64 %374 = getelementptr inbounds [1025 x i8], ptr %8, i64 0, i64 %373 store i8 %372, ptr %374, align 1 - %.not368 = icmp eq i32 %.3326339, 1024 - br i1 %.not368, label %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit247.thread", label %375 + %.not367 = icmp eq i32 %.3326339, 1024 + br i1 %.not367, label %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit247.thread", label %375 375: ; preds = %"_ZZN7glslang10TPpContext11lFloatConstEiiPNS_8TPpTokenEENK3$_0clEi.exit249" %376 = add nsw i32 %.3326339, 1 @@ -880,8 +880,8 @@ define noundef range(i32 158, 161) i32 @_ZN7glslang10TPpContext11lFloatConstEiiP %398 = getelementptr inbounds i8, ptr %397, i64 208 %399 = load i32, ptr %398, align 8 %400 = and i32 %399, 1 - %.not367 = icmp eq i32 %400, 0 - br i1 %.not367, label %401, label %403 + %.not366 = icmp eq i32 %400, 0 + br i1 %.not366, label %401, label %403 401: ; preds = %396 tail call void @_ZN7glslang14TParseVersions15profileRequiresERKNS_10TSourceLocEiiPKcS5_(ptr noundef nonnull align 8 dereferenceable(224) %397, ptr noundef nonnull align 8 dereferenceable(24) %3, i32 noundef -9, i32 noundef 120, ptr noundef null, ptr noundef nonnull @.str.8) #13 @@ -891,8 +891,8 @@ define noundef range(i32 158, 161) i32 @_ZN7glslang10TPpContext11lFloatConstEiiP 403: ; preds = %401, %396 %.pr356 = phi i1 [ %402, %401 ], [ false, %396 ] - %brmerge374 = or i1 %.1161341, %.pr356 - br i1 %brmerge374, label %.thread358, label %404 + %brmerge373 = or i1 %.1161341, %.pr356 + br i1 %brmerge373, label %.thread358, label %404 404: ; preds = %403 %405 = load ptr, ptr %393, align 8 diff --git a/bench/hyperscan/optimized/dfa_min.cpp.ll b/bench/hyperscan/optimized/dfa_min.cpp.ll index d94f268e1dd..ea2c186da02 100644 --- a/bench/hyperscan/optimized/dfa_min.cpp.ll +++ b/bench/hyperscan/optimized/dfa_min.cpp.ll @@ -6652,19 +6652,19 @@ if.end.i44: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i48: ; preds = %if.end.i44, %while.body.i.i.i.i48 %x.addr.012.i.i.i.i49 = phi i64 [ %spec.select8.i.i.i.i57, %while.body.i.i.i.i48 ], [ %sub1.i.i46, %if.end.i44 ] %result.011.i.i.i.i50 = phi i32 [ %spec.select7.i.i.i.i56, %while.body.i.i.i.i48 ], [ 0, %if.end.i44 ] - %n.addr.010.i.i.i.i51 = phi i32 [ %div.i.i.i.i54, %while.body.i.i.i.i48 ], [ 32, %if.end.i44 ] + %n.addr.010.i.i.i.i51 = phi i32 [ %div.i1.i.i.i54, %while.body.i.i.i.i48 ], [ 32, %if.end.i44 ] %sh_prom.i.i.i.i52 = zext nneg i32 %n.addr.010.i.i.i.i51 to i64 %shr.i.i.i4.i = lshr i64 %x.addr.012.i.i.i.i49, %sh_prom.i.i.i.i52 %tobool.not.i.i.i.i53 = icmp eq i64 %shr.i.i.i4.i, 0 - %div.i.i.i.i54 = sdiv i32 %n.addr.010.i.i.i.i51, 2 + %div.i1.i.i.i54 = lshr i32 %n.addr.010.i.i.i.i51, 1 %add.i.i.i.i55 = select i1 %tobool.not.i.i.i.i53, i32 0, i32 %n.addr.010.i.i.i.i51 - %spec.select7.i.i.i.i56 = add nsw i32 %add.i.i.i.i55, %result.011.i.i.i.i50 + %spec.select7.i.i.i.i56 = add nuw nsw i32 %add.i.i.i.i55, %result.011.i.i.i.i50 %spec.select8.i.i.i.i57 = select i1 %tobool.not.i.i.i.i53, i64 %x.addr.012.i.i.i.i49, i64 %shr.i.i.i4.i %cmp.not.i.i.i.i58 = icmp eq i64 %spec.select8.i.i.i.i57, 1 br i1 %cmp.not.i.i.i.i58, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i59, label %while.body.i.i.i.i48 _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i59: ; preds = %while.body.i.i.i.i48 - %18 = sext i32 %spec.select7.i.i.i.i56 to i64 + %18 = zext nneg i32 %spec.select7.i.i.i.i56 to i64 br label %_ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit _ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit: ; preds = %if.end.i44, %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i59 @@ -6778,19 +6778,19 @@ cond.true.i: ; preds = %if.end.i while.body.i.i.i.i: ; preds = %cond.true.i, %while.body.i.i.i.i %x.addr.012.i.i.i.i = phi i64 [ %spec.select8.i.i.i.i, %while.body.i.i.i.i ], [ %sub1.i.i, %cond.true.i ] %result.011.i.i.i.i = phi i32 [ %spec.select7.i.i.i.i, %while.body.i.i.i.i ], [ 0, %cond.true.i ] - %n.addr.010.i.i.i.i = phi i32 [ %div.i.i.i.i, %while.body.i.i.i.i ], [ 32, %cond.true.i ] + %n.addr.010.i.i.i.i = phi i32 [ %div.i1.i.i.i, %while.body.i.i.i.i ], [ 32, %cond.true.i ] %sh_prom.i.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i to i64 %shr.i.i.i.i = lshr i64 %x.addr.012.i.i.i.i, %sh_prom.i.i.i.i %tobool.not.i.i.i.i15 = icmp eq i64 %shr.i.i.i.i, 0 - %div.i.i.i.i = sdiv i32 %n.addr.010.i.i.i.i, 2 + %div.i1.i.i.i = lshr i32 %n.addr.010.i.i.i.i, 1 %add.i.i.i.i = select i1 %tobool.not.i.i.i.i15, i32 0, i32 %n.addr.010.i.i.i.i - %spec.select7.i.i.i.i = add nsw i32 %add.i.i.i.i, %result.011.i.i.i.i + %spec.select7.i.i.i.i = add nuw nsw i32 %add.i.i.i.i, %result.011.i.i.i.i %spec.select8.i.i.i.i = select i1 %tobool.not.i.i.i.i15, i64 %x.addr.012.i.i.i.i, i64 %shr.i.i.i.i %cmp.not.i.i.i.i = icmp eq i64 %spec.select8.i.i.i.i, 1 br i1 %cmp.not.i.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i, label %while.body.i.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i: ; preds = %while.body.i.i.i.i - %26 = sext i32 %spec.select7.i.i.i.i to i64 + %26 = zext nneg i32 %spec.select7.i.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i, %cond.true.i @@ -6910,19 +6910,19 @@ if.end.i87: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i93: ; preds = %if.end.i87, %while.body.i.i.i.i93 %x.addr.012.i.i.i.i94 = phi i64 [ %spec.select8.i.i.i.i103, %while.body.i.i.i.i93 ], [ %sub1.i.i91, %if.end.i87 ] %result.011.i.i.i.i95 = phi i32 [ %spec.select7.i.i.i.i102, %while.body.i.i.i.i93 ], [ 0, %if.end.i87 ] - %n.addr.010.i.i.i.i96 = phi i32 [ %div.i.i.i.i100, %while.body.i.i.i.i93 ], [ 32, %if.end.i87 ] + %n.addr.010.i.i.i.i96 = phi i32 [ %div.i1.i.i.i100, %while.body.i.i.i.i93 ], [ 32, %if.end.i87 ] %sh_prom.i.i.i.i97 = zext nneg i32 %n.addr.010.i.i.i.i96 to i64 %shr.i.i.i4.i98 = lshr i64 %x.addr.012.i.i.i.i94, %sh_prom.i.i.i.i97 %tobool.not.i.i.i.i99 = icmp eq i64 %shr.i.i.i4.i98, 0 - %div.i.i.i.i100 = sdiv i32 %n.addr.010.i.i.i.i96, 2 + %div.i1.i.i.i100 = lshr i32 %n.addr.010.i.i.i.i96, 1 %add.i.i.i.i101 = select i1 %tobool.not.i.i.i.i99, i32 0, i32 %n.addr.010.i.i.i.i96 - %spec.select7.i.i.i.i102 = add nsw i32 %add.i.i.i.i101, %result.011.i.i.i.i95 + %spec.select7.i.i.i.i102 = add nuw nsw i32 %add.i.i.i.i101, %result.011.i.i.i.i95 %spec.select8.i.i.i.i103 = select i1 %tobool.not.i.i.i.i99, i64 %x.addr.012.i.i.i.i94, i64 %shr.i.i.i4.i98 %cmp.not.i.i.i.i104 = icmp eq i64 %spec.select8.i.i.i.i103, 1 br i1 %cmp.not.i.i.i.i104, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i105, label %while.body.i.i.i.i93 _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i105: ; preds = %while.body.i.i.i.i93 - %35 = sext i32 %spec.select7.i.i.i.i102 to i64 + %35 = zext nneg i32 %spec.select7.i.i.i.i102 to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i106 _ZN5boost6detail10lowest_bitImEEiT_.exit.i106: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i105, %if.end.i87 diff --git a/bench/hyperscan/optimized/ng_execute.cpp.ll b/bench/hyperscan/optimized/ng_execute.cpp.ll index d9013c9f3dc..069f871a7a4 100644 --- a/bench/hyperscan/optimized/ng_execute.cpp.ll +++ b/bench/hyperscan/optimized/ng_execute.cpp.ll @@ -630,19 +630,19 @@ cond.true.i: ; preds = %if.end.i while.body.i.i.i.i: ; preds = %cond.true.i, %while.body.i.i.i.i %x.addr.012.i.i.i.i = phi i64 [ %spec.select8.i.i.i.i, %while.body.i.i.i.i ], [ %sub1.i.i, %cond.true.i ] %result.011.i.i.i.i = phi i32 [ %spec.select7.i.i.i.i, %while.body.i.i.i.i ], [ 0, %cond.true.i ] - %n.addr.010.i.i.i.i = phi i32 [ %div.i.i.i.i, %while.body.i.i.i.i ], [ 32, %cond.true.i ] + %n.addr.010.i.i.i.i = phi i32 [ %div.i1.i.i.i, %while.body.i.i.i.i ], [ 32, %cond.true.i ] %sh_prom.i.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i to i64 %shr.i.i.i.i = lshr i64 %x.addr.012.i.i.i.i, %sh_prom.i.i.i.i %tobool.not.i.i.i.i = icmp eq i64 %shr.i.i.i.i, 0 - %div.i.i.i.i = sdiv i32 %n.addr.010.i.i.i.i, 2 + %div.i1.i.i.i = lshr i32 %n.addr.010.i.i.i.i, 1 %add.i.i.i.i = select i1 %tobool.not.i.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i - %spec.select7.i.i.i.i = add nsw i32 %add.i.i.i.i, %result.011.i.i.i.i + %spec.select7.i.i.i.i = add nuw nsw i32 %add.i.i.i.i, %result.011.i.i.i.i %spec.select8.i.i.i.i = select i1 %tobool.not.i.i.i.i, i64 %x.addr.012.i.i.i.i, i64 %shr.i.i.i.i %cmp.not.i.i.i.i = icmp eq i64 %spec.select8.i.i.i.i, 1 br i1 %cmp.not.i.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i, label %while.body.i.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i: ; preds = %while.body.i.i.i.i - %4 = sext i32 %spec.select7.i.i.i.i to i64 + %4 = zext nneg i32 %spec.select7.i.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i, %cond.true.i @@ -2676,19 +2676,19 @@ if.end.i875.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i881.i.i: ; preds = %if.end.i875.i.i, %while.body.i.i.i.i881.i.i %x.addr.012.i.i.i.i882.i.i = phi i64 [ %spec.select8.i.i.i.i891.i.i, %while.body.i.i.i.i881.i.i ], [ %sub1.i.i879.i.i, %if.end.i875.i.i ] %result.011.i.i.i.i883.i.i = phi i32 [ %spec.select7.i.i.i.i890.i.i, %while.body.i.i.i.i881.i.i ], [ 0, %if.end.i875.i.i ] - %n.addr.010.i.i.i.i884.i.i = phi i32 [ %div.i.i.i.i888.i.i, %while.body.i.i.i.i881.i.i ], [ 32, %if.end.i875.i.i ] + %n.addr.010.i.i.i.i884.i.i = phi i32 [ %div.i1.i.i.i888.i.i, %while.body.i.i.i.i881.i.i ], [ 32, %if.end.i875.i.i ] %sh_prom.i.i.i.i885.i.i = zext nneg i32 %n.addr.010.i.i.i.i884.i.i to i64 %shr.i.i.i4.i886.i.i = lshr i64 %x.addr.012.i.i.i.i882.i.i, %sh_prom.i.i.i.i885.i.i %tobool.not.i.i.i.i887.i.i = icmp eq i64 %shr.i.i.i4.i886.i.i, 0 - %div.i.i.i.i888.i.i = sdiv i32 %n.addr.010.i.i.i.i884.i.i, 2 + %div.i1.i.i.i888.i.i = lshr i32 %n.addr.010.i.i.i.i884.i.i, 1 %add.i.i.i.i889.i.i = select i1 %tobool.not.i.i.i.i887.i.i, i32 0, i32 %n.addr.010.i.i.i.i884.i.i - %spec.select7.i.i.i.i890.i.i = add nsw i32 %add.i.i.i.i889.i.i, %result.011.i.i.i.i883.i.i + %spec.select7.i.i.i.i890.i.i = add nuw nsw i32 %add.i.i.i.i889.i.i, %result.011.i.i.i.i883.i.i %spec.select8.i.i.i.i891.i.i = select i1 %tobool.not.i.i.i.i887.i.i, i64 %x.addr.012.i.i.i.i882.i.i, i64 %shr.i.i.i4.i886.i.i %cmp.not.i.i.i.i892.i.i = icmp eq i64 %spec.select8.i.i.i.i891.i.i, 1 br i1 %cmp.not.i.i.i.i892.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i893.i.i, label %while.body.i.i.i.i881.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i893.i.i: ; preds = %while.body.i.i.i.i881.i.i - %135 = sext i32 %spec.select7.i.i.i.i890.i.i to i64 + %135 = zext nneg i32 %spec.select7.i.i.i.i890.i.i to i64 br label %call.i.i.noexc672.i.i call.i.i.noexc672.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i893.i.i, %if.end.i875.i.i @@ -2752,19 +2752,19 @@ cond.true.i.i647.i.i: ; preds = %if.end.i.i642.i.i while.body.i.i.i.i.i651.i.i: ; preds = %cond.true.i.i647.i.i, %while.body.i.i.i.i.i651.i.i %x.addr.012.i.i.i.i.i652.i.i = phi i64 [ %spec.select8.i.i.i.i.i661.i.i, %while.body.i.i.i.i.i651.i.i ], [ %sub1.i.i.i649.i.i, %cond.true.i.i647.i.i ] %result.011.i.i.i.i.i653.i.i = phi i32 [ %spec.select7.i.i.i.i.i660.i.i, %while.body.i.i.i.i.i651.i.i ], [ 0, %cond.true.i.i647.i.i ] - %n.addr.010.i.i.i.i.i654.i.i = phi i32 [ %div.i.i.i.i.i658.i.i, %while.body.i.i.i.i.i651.i.i ], [ 32, %cond.true.i.i647.i.i ] + %n.addr.010.i.i.i.i.i654.i.i = phi i32 [ %div.i1.i.i.i.i658.i.i, %while.body.i.i.i.i.i651.i.i ], [ 32, %cond.true.i.i647.i.i ] %sh_prom.i.i.i.i.i655.i.i = zext nneg i32 %n.addr.010.i.i.i.i.i654.i.i to i64 %shr.i.i.i.i.i656.i.i = lshr i64 %x.addr.012.i.i.i.i.i652.i.i, %sh_prom.i.i.i.i.i655.i.i %tobool.not.i.i.i.i.i657.i.i = icmp eq i64 %shr.i.i.i.i.i656.i.i, 0 - %div.i.i.i.i.i658.i.i = sdiv i32 %n.addr.010.i.i.i.i.i654.i.i, 2 + %div.i1.i.i.i.i658.i.i = lshr i32 %n.addr.010.i.i.i.i.i654.i.i, 1 %add.i.i.i.i.i659.i.i = select i1 %tobool.not.i.i.i.i.i657.i.i, i32 0, i32 %n.addr.010.i.i.i.i.i654.i.i - %spec.select7.i.i.i.i.i660.i.i = add nsw i32 %add.i.i.i.i.i659.i.i, %result.011.i.i.i.i.i653.i.i + %spec.select7.i.i.i.i.i660.i.i = add nuw nsw i32 %add.i.i.i.i.i659.i.i, %result.011.i.i.i.i.i653.i.i %spec.select8.i.i.i.i.i661.i.i = select i1 %tobool.not.i.i.i.i.i657.i.i, i64 %x.addr.012.i.i.i.i.i652.i.i, i64 %shr.i.i.i.i.i656.i.i %cmp.not.i.i.i.i.i662.i.i = icmp eq i64 %spec.select8.i.i.i.i.i661.i.i, 1 br i1 %cmp.not.i.i.i.i.i662.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i663.i.i, label %while.body.i.i.i.i.i651.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i663.i.i: ; preds = %while.body.i.i.i.i.i651.i.i - %143 = sext i32 %spec.select7.i.i.i.i.i660.i.i to i64 + %143 = zext nneg i32 %spec.select7.i.i.i.i.i660.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i.i664.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i.i664.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i663.i.i, %cond.true.i.i647.i.i @@ -2887,19 +2887,19 @@ if.end.i794.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i800.i.i: ; preds = %if.end.i794.i.i, %while.body.i.i.i.i800.i.i %x.addr.012.i.i.i.i801.i.i = phi i64 [ %spec.select8.i.i.i.i810.i.i, %while.body.i.i.i.i800.i.i ], [ %sub1.i.i798.i.i, %if.end.i794.i.i ] %result.011.i.i.i.i802.i.i = phi i32 [ %spec.select7.i.i.i.i809.i.i, %while.body.i.i.i.i800.i.i ], [ 0, %if.end.i794.i.i ] - %n.addr.010.i.i.i.i803.i.i = phi i32 [ %div.i.i.i.i807.i.i, %while.body.i.i.i.i800.i.i ], [ 32, %if.end.i794.i.i ] + %n.addr.010.i.i.i.i803.i.i = phi i32 [ %div.i1.i.i.i807.i.i, %while.body.i.i.i.i800.i.i ], [ 32, %if.end.i794.i.i ] %sh_prom.i.i.i.i804.i.i = zext nneg i32 %n.addr.010.i.i.i.i803.i.i to i64 %shr.i.i.i4.i805.i.i = lshr i64 %x.addr.012.i.i.i.i801.i.i, %sh_prom.i.i.i.i804.i.i %tobool.not.i.i.i.i806.i.i = icmp eq i64 %shr.i.i.i4.i805.i.i, 0 - %div.i.i.i.i807.i.i = sdiv i32 %n.addr.010.i.i.i.i803.i.i, 2 + %div.i1.i.i.i807.i.i = lshr i32 %n.addr.010.i.i.i.i803.i.i, 1 %add.i.i.i.i808.i.i = select i1 %tobool.not.i.i.i.i806.i.i, i32 0, i32 %n.addr.010.i.i.i.i803.i.i - %spec.select7.i.i.i.i809.i.i = add nsw i32 %add.i.i.i.i808.i.i, %result.011.i.i.i.i802.i.i + %spec.select7.i.i.i.i809.i.i = add nuw nsw i32 %add.i.i.i.i808.i.i, %result.011.i.i.i.i802.i.i %spec.select8.i.i.i.i810.i.i = select i1 %tobool.not.i.i.i.i806.i.i, i64 %x.addr.012.i.i.i.i801.i.i, i64 %shr.i.i.i4.i805.i.i %cmp.not.i.i.i.i811.i.i = icmp eq i64 %spec.select8.i.i.i.i810.i.i, 1 br i1 %cmp.not.i.i.i.i811.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i812.i.i, label %while.body.i.i.i.i800.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i812.i.i: ; preds = %while.body.i.i.i.i800.i.i - %153 = sext i32 %spec.select7.i.i.i.i809.i.i to i64 + %153 = zext nneg i32 %spec.select7.i.i.i.i809.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i813.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i813.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i812.i.i, %if.end.i794.i.i @@ -3016,19 +3016,19 @@ if.end.i713.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i719.i.i: ; preds = %if.end.i713.i.i, %while.body.i.i.i.i719.i.i %x.addr.012.i.i.i.i720.i.i = phi i64 [ %spec.select8.i.i.i.i729.i.i, %while.body.i.i.i.i719.i.i ], [ %sub1.i.i717.i.i, %if.end.i713.i.i ] %result.011.i.i.i.i721.i.i = phi i32 [ %spec.select7.i.i.i.i728.i.i, %while.body.i.i.i.i719.i.i ], [ 0, %if.end.i713.i.i ] - %n.addr.010.i.i.i.i722.i.i = phi i32 [ %div.i.i.i.i726.i.i, %while.body.i.i.i.i719.i.i ], [ 32, %if.end.i713.i.i ] + %n.addr.010.i.i.i.i722.i.i = phi i32 [ %div.i1.i.i.i726.i.i, %while.body.i.i.i.i719.i.i ], [ 32, %if.end.i713.i.i ] %sh_prom.i.i.i.i723.i.i = zext nneg i32 %n.addr.010.i.i.i.i722.i.i to i64 %shr.i.i.i4.i724.i.i = lshr i64 %x.addr.012.i.i.i.i720.i.i, %sh_prom.i.i.i.i723.i.i %tobool.not.i.i.i.i725.i.i = icmp eq i64 %shr.i.i.i4.i724.i.i, 0 - %div.i.i.i.i726.i.i = sdiv i32 %n.addr.010.i.i.i.i722.i.i, 2 + %div.i1.i.i.i726.i.i = lshr i32 %n.addr.010.i.i.i.i722.i.i, 1 %add.i.i.i.i727.i.i = select i1 %tobool.not.i.i.i.i725.i.i, i32 0, i32 %n.addr.010.i.i.i.i722.i.i - %spec.select7.i.i.i.i728.i.i = add nsw i32 %add.i.i.i.i727.i.i, %result.011.i.i.i.i721.i.i + %spec.select7.i.i.i.i728.i.i = add nuw nsw i32 %add.i.i.i.i727.i.i, %result.011.i.i.i.i721.i.i %spec.select8.i.i.i.i729.i.i = select i1 %tobool.not.i.i.i.i725.i.i, i64 %x.addr.012.i.i.i.i720.i.i, i64 %shr.i.i.i4.i724.i.i %cmp.not.i.i.i.i730.i.i = icmp eq i64 %spec.select8.i.i.i.i729.i.i, 1 br i1 %cmp.not.i.i.i.i730.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i731.i.i, label %while.body.i.i.i.i719.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i731.i.i: ; preds = %while.body.i.i.i.i719.i.i - %162 = sext i32 %spec.select7.i.i.i.i728.i.i to i64 + %162 = zext nneg i32 %spec.select7.i.i.i.i728.i.i to i64 br label %call.i.i.noexc.i.i call.i.i.noexc.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i731.i.i, %if.end.i713.i.i @@ -3161,19 +3161,19 @@ cond.true.i.i612.i.i: ; preds = %if.end.i.i608.i.i while.body.i.i.i.i.i613.i.i: ; preds = %cond.true.i.i612.i.i, %while.body.i.i.i.i.i613.i.i %x.addr.012.i.i.i.i.i.i.i = phi i64 [ %spec.select8.i.i.i.i.i.i.i, %while.body.i.i.i.i.i613.i.i ], [ %sub1.i.i.i.i.i, %cond.true.i.i612.i.i ] %result.011.i.i.i.i.i.i.i = phi i32 [ %spec.select7.i.i.i.i.i.i.i, %while.body.i.i.i.i.i613.i.i ], [ 0, %cond.true.i.i612.i.i ] - %n.addr.010.i.i.i.i.i.i.i = phi i32 [ %div.i.i.i.i.i.i.i, %while.body.i.i.i.i.i613.i.i ], [ 32, %cond.true.i.i612.i.i ] + %n.addr.010.i.i.i.i.i.i.i = phi i32 [ %div.i1.i.i.i.i.i.i, %while.body.i.i.i.i.i613.i.i ], [ 32, %cond.true.i.i612.i.i ] %sh_prom.i.i.i.i.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i.i.i.i to i64 %shr.i.i.i.i.i.i.i = lshr i64 %x.addr.012.i.i.i.i.i.i.i, %sh_prom.i.i.i.i.i.i.i %tobool.not.i.i.i.i.i614.i.i = icmp eq i64 %shr.i.i.i.i.i.i.i, 0 - %div.i.i.i.i.i.i.i = sdiv i32 %n.addr.010.i.i.i.i.i.i.i, 2 + %div.i1.i.i.i.i.i.i = lshr i32 %n.addr.010.i.i.i.i.i.i.i, 1 %add.i.i.i.i.i.i.i = select i1 %tobool.not.i.i.i.i.i614.i.i, i32 0, i32 %n.addr.010.i.i.i.i.i.i.i - %spec.select7.i.i.i.i.i.i.i = add nsw i32 %add.i.i.i.i.i.i.i, %result.011.i.i.i.i.i.i.i + %spec.select7.i.i.i.i.i.i.i = add nuw nsw i32 %add.i.i.i.i.i.i.i, %result.011.i.i.i.i.i.i.i %spec.select8.i.i.i.i.i.i.i = select i1 %tobool.not.i.i.i.i.i614.i.i, i64 %x.addr.012.i.i.i.i.i.i.i, i64 %shr.i.i.i.i.i.i.i %cmp.not.i.i.i.i.i615.i.i = icmp eq i64 %spec.select8.i.i.i.i.i.i.i, 1 br i1 %cmp.not.i.i.i.i.i615.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i, label %while.body.i.i.i.i.i613.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i: ; preds = %while.body.i.i.i.i.i613.i.i - %186 = sext i32 %spec.select7.i.i.i.i.i.i.i to i64 + %186 = zext nneg i32 %spec.select7.i.i.i.i.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i, %cond.true.i.i612.i.i @@ -3292,19 +3292,19 @@ if.end.i.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i.i.i: ; preds = %if.end.i.i.i, %while.body.i.i.i.i.i.i %x.addr.012.i.i.i.i.i.i = phi i64 [ %spec.select8.i.i.i.i.i.i, %while.body.i.i.i.i.i.i ], [ %sub1.i.i.i.i, %if.end.i.i.i ] %result.011.i.i.i.i.i.i = phi i32 [ %spec.select7.i.i.i.i.i.i, %while.body.i.i.i.i.i.i ], [ 0, %if.end.i.i.i ] - %n.addr.010.i.i.i.i.i.i = phi i32 [ %div.i.i.i.i.i.i, %while.body.i.i.i.i.i.i ], [ 32, %if.end.i.i.i ] + %n.addr.010.i.i.i.i.i.i = phi i32 [ %div.i1.i.i.i.i.i, %while.body.i.i.i.i.i.i ], [ 32, %if.end.i.i.i ] %sh_prom.i.i.i.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i.i.i to i64 %shr.i.i.i4.i.i.i = lshr i64 %x.addr.012.i.i.i.i.i.i, %sh_prom.i.i.i.i.i.i %tobool.not.i.i.i.i686.i.i = icmp eq i64 %shr.i.i.i4.i.i.i, 0 - %div.i.i.i.i.i.i = sdiv i32 %n.addr.010.i.i.i.i.i.i, 2 + %div.i1.i.i.i.i.i = lshr i32 %n.addr.010.i.i.i.i.i.i, 1 %add.i.i.i.i.i.i = select i1 %tobool.not.i.i.i.i686.i.i, i32 0, i32 %n.addr.010.i.i.i.i.i.i - %spec.select7.i.i.i.i.i.i = add nsw i32 %add.i.i.i.i.i.i, %result.011.i.i.i.i.i.i + %spec.select7.i.i.i.i.i.i = add nuw nsw i32 %add.i.i.i.i.i.i, %result.011.i.i.i.i.i.i %spec.select8.i.i.i.i.i.i = select i1 %tobool.not.i.i.i.i686.i.i, i64 %x.addr.012.i.i.i.i.i.i, i64 %shr.i.i.i4.i.i.i %cmp.not.i.i.i.i687.i.i = icmp eq i64 %spec.select8.i.i.i.i.i.i, 1 br i1 %cmp.not.i.i.i.i687.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i, label %while.body.i.i.i.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i: ; preds = %while.body.i.i.i.i.i.i - %195 = sext i32 %spec.select7.i.i.i.i.i.i to i64 + %195 = zext nneg i32 %spec.select7.i.i.i.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i, %if.end.i.i.i @@ -5490,19 +5490,19 @@ if.end: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i: ; preds = %if.end, %while.body.i.i.i %x.addr.012.i.i.i = phi i64 [ %spec.select8.i.i.i, %while.body.i.i.i ], [ %sub1.i, %if.end ] %result.011.i.i.i = phi i32 [ %spec.select7.i.i.i, %while.body.i.i.i ], [ 0, %if.end ] - %n.addr.010.i.i.i = phi i32 [ %div.i.i.i, %while.body.i.i.i ], [ 32, %if.end ] + %n.addr.010.i.i.i = phi i32 [ %div.i1.i.i, %while.body.i.i.i ], [ 32, %if.end ] %sh_prom.i.i.i = zext nneg i32 %n.addr.010.i.i.i to i64 %shr.i.i.i4 = lshr i64 %x.addr.012.i.i.i, %sh_prom.i.i.i %tobool.not.i.i.i = icmp eq i64 %shr.i.i.i4, 0 - %div.i.i.i = sdiv i32 %n.addr.010.i.i.i, 2 + %div.i1.i.i = lshr i32 %n.addr.010.i.i.i, 1 %add.i.i.i = select i1 %tobool.not.i.i.i, i32 0, i32 %n.addr.010.i.i.i - %spec.select7.i.i.i = add nsw i32 %add.i.i.i, %result.011.i.i.i + %spec.select7.i.i.i = add nuw nsw i32 %add.i.i.i, %result.011.i.i.i %spec.select8.i.i.i = select i1 %tobool.not.i.i.i, i64 %x.addr.012.i.i.i, i64 %shr.i.i.i4 %cmp.not.i.i.i = icmp eq i64 %spec.select8.i.i.i, 1 br i1 %cmp.not.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit, label %while.body.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit: ; preds = %while.body.i.i.i - %10 = sext i32 %spec.select7.i.i.i to i64 + %10 = zext nneg i32 %spec.select7.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit _ZN5boost6detail10lowest_bitImEEiT_.exit: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit, %if.end @@ -5985,19 +5985,19 @@ cond.true.i: ; preds = %if.end.i while.body.i.i.i.i: ; preds = %cond.true.i, %while.body.i.i.i.i %x.addr.012.i.i.i.i = phi i64 [ %spec.select8.i.i.i.i, %while.body.i.i.i.i ], [ %sub1.i.i, %cond.true.i ] %result.011.i.i.i.i = phi i32 [ %spec.select7.i.i.i.i, %while.body.i.i.i.i ], [ 0, %cond.true.i ] - %n.addr.010.i.i.i.i = phi i32 [ %div.i.i.i.i, %while.body.i.i.i.i ], [ 32, %cond.true.i ] + %n.addr.010.i.i.i.i = phi i32 [ %div.i1.i.i.i, %while.body.i.i.i.i ], [ 32, %cond.true.i ] %sh_prom.i.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i to i64 %shr.i.i.i.i = lshr i64 %x.addr.012.i.i.i.i, %sh_prom.i.i.i.i %tobool.not.i.i.i.i = icmp eq i64 %shr.i.i.i.i, 0 - %div.i.i.i.i = sdiv i32 %n.addr.010.i.i.i.i, 2 + %div.i1.i.i.i = lshr i32 %n.addr.010.i.i.i.i, 1 %add.i.i.i.i = select i1 %tobool.not.i.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i - %spec.select7.i.i.i.i = add nsw i32 %add.i.i.i.i, %result.011.i.i.i.i + %spec.select7.i.i.i.i = add nuw nsw i32 %add.i.i.i.i, %result.011.i.i.i.i %spec.select8.i.i.i.i = select i1 %tobool.not.i.i.i.i, i64 %x.addr.012.i.i.i.i, i64 %shr.i.i.i.i %cmp.not.i.i.i.i = icmp eq i64 %spec.select8.i.i.i.i, 1 br i1 %cmp.not.i.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i, label %while.body.i.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i: ; preds = %while.body.i.i.i.i - %13 = sext i32 %spec.select7.i.i.i.i to i64 + %13 = zext nneg i32 %spec.select7.i.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i, %cond.true.i @@ -6114,19 +6114,19 @@ cond.true.i: ; preds = %if.end.i while.body.i.i.i.i: ; preds = %cond.true.i, %while.body.i.i.i.i %x.addr.012.i.i.i.i = phi i64 [ %spec.select8.i.i.i.i, %while.body.i.i.i.i ], [ %sub1.i.i, %cond.true.i ] %result.011.i.i.i.i = phi i32 [ %spec.select7.i.i.i.i, %while.body.i.i.i.i ], [ 0, %cond.true.i ] - %n.addr.010.i.i.i.i = phi i32 [ %div.i.i.i.i, %while.body.i.i.i.i ], [ 32, %cond.true.i ] + %n.addr.010.i.i.i.i = phi i32 [ %div.i1.i.i.i, %while.body.i.i.i.i ], [ 32, %cond.true.i ] %sh_prom.i.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i to i64 %shr.i.i.i.i = lshr i64 %x.addr.012.i.i.i.i, %sh_prom.i.i.i.i %tobool.not.i.i.i.i = icmp eq i64 %shr.i.i.i.i, 0 - %div.i.i.i.i = sdiv i32 %n.addr.010.i.i.i.i, 2 + %div.i1.i.i.i = lshr i32 %n.addr.010.i.i.i.i, 1 %add.i.i.i.i = select i1 %tobool.not.i.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i - %spec.select7.i.i.i.i = add nsw i32 %add.i.i.i.i, %result.011.i.i.i.i + %spec.select7.i.i.i.i = add nuw nsw i32 %add.i.i.i.i, %result.011.i.i.i.i %spec.select8.i.i.i.i = select i1 %tobool.not.i.i.i.i, i64 %x.addr.012.i.i.i.i, i64 %shr.i.i.i.i %cmp.not.i.i.i.i = icmp eq i64 %spec.select8.i.i.i.i, 1 br i1 %cmp.not.i.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i, label %while.body.i.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i: ; preds = %while.body.i.i.i.i - %15 = sext i32 %spec.select7.i.i.i.i to i64 + %15 = zext nneg i32 %spec.select7.i.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i, %cond.true.i diff --git a/bench/hyperscan/optimized/ng_haig.cpp.ll b/bench/hyperscan/optimized/ng_haig.cpp.ll index fea351c4c39..cf50b2c4146 100644 --- a/bench/hyperscan/optimized/ng_haig.cpp.ll +++ b/bench/hyperscan/optimized/ng_haig.cpp.ll @@ -1025,24 +1025,24 @@ cond.true.i.i.i.i.i: ; preds = %if.end.i.i.i.i.i while.body.i.i.i.i.i36.i.i.i: ; preds = %cond.true.i.i.i.i.i, %while.body.i.i.i.i.i36.i.i.i %x.addr.012.i.i.i.i.i.i.i.i = phi i64 [ %spec.select8.i.i.i.i.i.i.i.i, %while.body.i.i.i.i.i36.i.i.i ], [ %sub1.i.i.i.i.i.i, %cond.true.i.i.i.i.i ] %result.011.i.i.i.i.i.i.i.i = phi i32 [ %spec.select7.i.i.i.i.i.i.i.i, %while.body.i.i.i.i.i36.i.i.i ], [ 0, %cond.true.i.i.i.i.i ] - %n.addr.010.i.i.i.i.i.i.i.i = phi i32 [ %div.i.i.i.i.i.i.i.i, %while.body.i.i.i.i.i36.i.i.i ], [ 32, %cond.true.i.i.i.i.i ] + %n.addr.010.i.i.i.i.i.i.i.i = phi i32 [ %div.i1.i.i.i.i.i.i.i, %while.body.i.i.i.i.i36.i.i.i ], [ 32, %cond.true.i.i.i.i.i ] %sh_prom.i.i.i.i.i.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i.i.i.i.i to i64 %shr.i.i.i.i.i37.i.i.i = lshr i64 %x.addr.012.i.i.i.i.i.i.i.i, %sh_prom.i.i.i.i.i.i.i.i %tobool.not.i.i.i.i.i38.i.i.i = icmp eq i64 %shr.i.i.i.i.i37.i.i.i, 0 - %div.i.i.i.i.i.i.i.i = sdiv i32 %n.addr.010.i.i.i.i.i.i.i.i, 2 + %div.i1.i.i.i.i.i.i.i = lshr i32 %n.addr.010.i.i.i.i.i.i.i.i, 1 %add.i.i.i.i.i.i.i.i = select i1 %tobool.not.i.i.i.i.i38.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i.i.i.i.i - %spec.select7.i.i.i.i.i.i.i.i = add nsw i32 %add.i.i.i.i.i.i.i.i, %result.011.i.i.i.i.i.i.i.i + %spec.select7.i.i.i.i.i.i.i.i = add nuw nsw i32 %add.i.i.i.i.i.i.i.i, %result.011.i.i.i.i.i.i.i.i %spec.select8.i.i.i.i.i.i.i.i = select i1 %tobool.not.i.i.i.i.i38.i.i.i, i64 %x.addr.012.i.i.i.i.i.i.i.i, i64 %shr.i.i.i.i.i37.i.i.i %cmp.not.i.i.i.i.i.i.i.i = icmp eq i64 %spec.select8.i.i.i.i.i.i.i.i, 1 br i1 %cmp.not.i.i.i.i.i.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i.i, label %while.body.i.i.i.i.i36.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i.i: ; preds = %while.body.i.i.i.i.i36.i.i.i - %61 = sext i32 %spec.select7.i.i.i.i.i.i.i.i to i64 + %61 = zext nneg i32 %spec.select7.i.i.i.i.i.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i.i.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i.i.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i.i, %cond.true.i.i.i.i.i %result.0.lcssa.i.i.i.i.i.i.i.i = phi i64 [ 0, %cond.true.i.i.i.i.i ], [ %61, %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i.i ] - %add.i.i.i.i.i = add nsw i64 %result.0.lcssa.i.i.i.i.i.i.i.i, %inc.i.i.i.i.i + %add.i.i.i.i.i = add nuw nsw i64 %result.0.lcssa.i.i.i.i.i.i.i.i, %inc.i.i.i.i.i br label %_ZNK5boost14dynamic_bitsetImSaImEE9find_nextEm.exit.i.i.i.i cond.false.i.i.i.i.i: ; preds = %if.end.i.i.i.i.i @@ -1259,19 +1259,19 @@ if.end.i149.i.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i155.i.i.i: ; preds = %if.end.i149.i.i.i, %while.body.i.i.i.i155.i.i.i %x.addr.012.i.i.i.i156.i.i.i = phi i64 [ %spec.select8.i.i.i.i165.i.i.i, %while.body.i.i.i.i155.i.i.i ], [ %sub1.i.i153.i.i.i, %if.end.i149.i.i.i ] %result.011.i.i.i.i157.i.i.i = phi i32 [ %spec.select7.i.i.i.i164.i.i.i, %while.body.i.i.i.i155.i.i.i ], [ 0, %if.end.i149.i.i.i ] - %n.addr.010.i.i.i.i158.i.i.i = phi i32 [ %div.i.i.i.i162.i.i.i, %while.body.i.i.i.i155.i.i.i ], [ 32, %if.end.i149.i.i.i ] + %n.addr.010.i.i.i.i158.i.i.i = phi i32 [ %div.i1.i.i.i162.i.i.i, %while.body.i.i.i.i155.i.i.i ], [ 32, %if.end.i149.i.i.i ] %sh_prom.i.i.i.i159.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i158.i.i.i to i64 %shr.i.i.i4.i160.i.i.i = lshr i64 %x.addr.012.i.i.i.i156.i.i.i, %sh_prom.i.i.i.i159.i.i.i %tobool.not.i.i.i.i161.i.i.i = icmp eq i64 %shr.i.i.i4.i160.i.i.i, 0 - %div.i.i.i.i162.i.i.i = sdiv i32 %n.addr.010.i.i.i.i158.i.i.i, 2 + %div.i1.i.i.i162.i.i.i = lshr i32 %n.addr.010.i.i.i.i158.i.i.i, 1 %add.i.i.i.i163.i.i.i = select i1 %tobool.not.i.i.i.i161.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i158.i.i.i - %spec.select7.i.i.i.i164.i.i.i = add nsw i32 %add.i.i.i.i163.i.i.i, %result.011.i.i.i.i157.i.i.i + %spec.select7.i.i.i.i164.i.i.i = add nuw nsw i32 %add.i.i.i.i163.i.i.i, %result.011.i.i.i.i157.i.i.i %spec.select8.i.i.i.i165.i.i.i = select i1 %tobool.not.i.i.i.i161.i.i.i, i64 %x.addr.012.i.i.i.i156.i.i.i, i64 %shr.i.i.i4.i160.i.i.i %cmp.not.i.i.i.i166.i.i.i = icmp eq i64 %spec.select8.i.i.i.i165.i.i.i, 1 br i1 %cmp.not.i.i.i.i166.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i167.i.i.i, label %while.body.i.i.i.i155.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i167.i.i.i: ; preds = %while.body.i.i.i.i155.i.i.i - %79 = sext i32 %spec.select7.i.i.i.i164.i.i.i to i64 + %79 = zext nneg i32 %spec.select7.i.i.i.i164.i.i.i to i64 br label %call.i.i.noexc91.i.i.i call.i.i.noexc91.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i167.i.i.i, %if.end.i149.i.i.i @@ -1329,24 +1329,24 @@ cond.true.i.i67.i.i.i: ; preds = %if.end.i.i60.i.i.i while.body.i.i.i.i.i71.i.i.i: ; preds = %cond.true.i.i67.i.i.i, %while.body.i.i.i.i.i71.i.i.i %x.addr.012.i.i.i.i.i72.i.i.i = phi i64 [ %spec.select8.i.i.i.i.i81.i.i.i, %while.body.i.i.i.i.i71.i.i.i ], [ %sub1.i.i.i69.i.i.i, %cond.true.i.i67.i.i.i ] %result.011.i.i.i.i.i73.i.i.i = phi i32 [ %spec.select7.i.i.i.i.i80.i.i.i, %while.body.i.i.i.i.i71.i.i.i ], [ 0, %cond.true.i.i67.i.i.i ] - %n.addr.010.i.i.i.i.i74.i.i.i = phi i32 [ %div.i.i.i.i.i78.i.i.i, %while.body.i.i.i.i.i71.i.i.i ], [ 32, %cond.true.i.i67.i.i.i ] + %n.addr.010.i.i.i.i.i74.i.i.i = phi i32 [ %div.i1.i.i.i.i78.i.i.i, %while.body.i.i.i.i.i71.i.i.i ], [ 32, %cond.true.i.i67.i.i.i ] %sh_prom.i.i.i.i.i75.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i.i74.i.i.i to i64 %shr.i.i.i.i.i76.i.i.i = lshr i64 %x.addr.012.i.i.i.i.i72.i.i.i, %sh_prom.i.i.i.i.i75.i.i.i %tobool.not.i.i.i.i.i77.i.i.i = icmp eq i64 %shr.i.i.i.i.i76.i.i.i, 0 - %div.i.i.i.i.i78.i.i.i = sdiv i32 %n.addr.010.i.i.i.i.i74.i.i.i, 2 + %div.i1.i.i.i.i78.i.i.i = lshr i32 %n.addr.010.i.i.i.i.i74.i.i.i, 1 %add.i.i.i.i.i79.i.i.i = select i1 %tobool.not.i.i.i.i.i77.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i.i74.i.i.i - %spec.select7.i.i.i.i.i80.i.i.i = add nsw i32 %add.i.i.i.i.i79.i.i.i, %result.011.i.i.i.i.i73.i.i.i + %spec.select7.i.i.i.i.i80.i.i.i = add nuw nsw i32 %add.i.i.i.i.i79.i.i.i, %result.011.i.i.i.i.i73.i.i.i %spec.select8.i.i.i.i.i81.i.i.i = select i1 %tobool.not.i.i.i.i.i77.i.i.i, i64 %x.addr.012.i.i.i.i.i72.i.i.i, i64 %shr.i.i.i.i.i76.i.i.i %cmp.not.i.i.i.i.i82.i.i.i = icmp eq i64 %spec.select8.i.i.i.i.i81.i.i.i, 1 br i1 %cmp.not.i.i.i.i.i82.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i83.i.i.i, label %while.body.i.i.i.i.i71.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i83.i.i.i: ; preds = %while.body.i.i.i.i.i71.i.i.i - %84 = sext i32 %spec.select7.i.i.i.i.i80.i.i.i to i64 + %84 = zext nneg i32 %spec.select7.i.i.i.i.i80.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i.i84.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i.i84.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i83.i.i.i, %cond.true.i.i67.i.i.i %result.0.lcssa.i.i.i.i.i85.i.i.i = phi i64 [ 0, %cond.true.i.i67.i.i.i ], [ %84, %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i83.i.i.i ] - %add.i.i86.i.i.i = add nsw i64 %result.0.lcssa.i.i.i.i.i85.i.i.i, %inc.i.i61.i.i.i + %add.i.i86.i.i.i = add nuw nsw i64 %result.0.lcssa.i.i.i.i.i85.i.i.i, %inc.i.i61.i.i.i br label %_ZNK5boost14dynamic_bitsetImSaImEE9find_nextEm.exit.i87.i.i.i cond.false.i.i89.i.i.i: ; preds = %if.end.i.i60.i.i.i @@ -1460,19 +1460,19 @@ if.end.i120.i.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i121.i.i.i: ; preds = %if.end.i120.i.i.i, %while.body.i.i.i.i121.i.i.i %x.addr.012.i.i.i.i.i.i.i = phi i64 [ %spec.select8.i.i.i.i.i.i.i, %while.body.i.i.i.i121.i.i.i ], [ %sub1.i.i.i.i.i, %if.end.i120.i.i.i ] %result.011.i.i.i.i.i.i.i = phi i32 [ %spec.select7.i.i.i.i.i.i.i, %while.body.i.i.i.i121.i.i.i ], [ 0, %if.end.i120.i.i.i ] - %n.addr.010.i.i.i.i.i.i.i = phi i32 [ %div.i.i.i.i.i.i.i, %while.body.i.i.i.i121.i.i.i ], [ 32, %if.end.i120.i.i.i ] + %n.addr.010.i.i.i.i.i.i.i = phi i32 [ %div.i1.i.i.i.i.i.i, %while.body.i.i.i.i121.i.i.i ], [ 32, %if.end.i120.i.i.i ] %sh_prom.i.i.i.i.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i.i.i.i to i64 %shr.i.i.i4.i.i.i.i = lshr i64 %x.addr.012.i.i.i.i.i.i.i, %sh_prom.i.i.i.i.i.i.i %tobool.not.i.i.i.i122.i.i.i = icmp eq i64 %shr.i.i.i4.i.i.i.i, 0 - %div.i.i.i.i.i.i.i = sdiv i32 %n.addr.010.i.i.i.i.i.i.i, 2 + %div.i1.i.i.i.i.i.i = lshr i32 %n.addr.010.i.i.i.i.i.i.i, 1 %add.i.i.i.i.i.i.i = select i1 %tobool.not.i.i.i.i122.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i.i.i.i - %spec.select7.i.i.i.i.i.i.i = add nsw i32 %add.i.i.i.i.i.i.i, %result.011.i.i.i.i.i.i.i + %spec.select7.i.i.i.i.i.i.i = add nuw nsw i32 %add.i.i.i.i.i.i.i, %result.011.i.i.i.i.i.i.i %spec.select8.i.i.i.i.i.i.i = select i1 %tobool.not.i.i.i.i122.i.i.i, i64 %x.addr.012.i.i.i.i.i.i.i, i64 %shr.i.i.i4.i.i.i.i %cmp.not.i.i.i.i.i.i.i = icmp eq i64 %spec.select8.i.i.i.i.i.i.i, 1 br i1 %cmp.not.i.i.i.i.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i, label %while.body.i.i.i.i121.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i: ; preds = %while.body.i.i.i.i121.i.i.i - %93 = sext i32 %spec.select7.i.i.i.i.i.i.i to i64 + %93 = zext nneg i32 %spec.select7.i.i.i.i.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i, %if.end.i120.i.i.i @@ -4744,19 +4744,19 @@ cond.true.i.i.i.i: ; preds = %if.end.i.i.i.i while.body.i.i.i.i.i156.i.i: ; preds = %cond.true.i.i.i.i, %while.body.i.i.i.i.i156.i.i %x.addr.012.i.i.i.i.i.i.i = phi i64 [ %spec.select8.i.i.i.i.i.i.i, %while.body.i.i.i.i.i156.i.i ], [ %sub1.i.i.i.i.i, %cond.true.i.i.i.i ] %result.011.i.i.i.i.i.i.i = phi i32 [ %spec.select7.i.i.i.i.i.i.i, %while.body.i.i.i.i.i156.i.i ], [ 0, %cond.true.i.i.i.i ] - %n.addr.010.i.i.i.i.i.i.i = phi i32 [ %div.i.i.i.i.i.i.i, %while.body.i.i.i.i.i156.i.i ], [ 32, %cond.true.i.i.i.i ] + %n.addr.010.i.i.i.i.i.i.i = phi i32 [ %div.i1.i.i.i.i.i.i, %while.body.i.i.i.i.i156.i.i ], [ 32, %cond.true.i.i.i.i ] %sh_prom.i.i.i.i.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i.i.i.i to i64 %shr.i.i.i.i.i157.i.i = lshr i64 %x.addr.012.i.i.i.i.i.i.i, %sh_prom.i.i.i.i.i.i.i %tobool.not.i.i.i.i.i158.i.i = icmp eq i64 %shr.i.i.i.i.i157.i.i, 0 - %div.i.i.i.i.i.i.i = sdiv i32 %n.addr.010.i.i.i.i.i.i.i, 2 + %div.i1.i.i.i.i.i.i = lshr i32 %n.addr.010.i.i.i.i.i.i.i, 1 %add.i.i.i.i9.i.i.i = select i1 %tobool.not.i.i.i.i.i158.i.i, i32 0, i32 %n.addr.010.i.i.i.i.i.i.i - %spec.select7.i.i.i.i.i.i.i = add nsw i32 %add.i.i.i.i9.i.i.i, %result.011.i.i.i.i.i.i.i + %spec.select7.i.i.i.i.i.i.i = add nuw nsw i32 %add.i.i.i.i9.i.i.i, %result.011.i.i.i.i.i.i.i %spec.select8.i.i.i.i.i.i.i = select i1 %tobool.not.i.i.i.i.i158.i.i, i64 %x.addr.012.i.i.i.i.i.i.i, i64 %shr.i.i.i.i.i157.i.i %cmp.not.i.i.i.i.i.i.i = icmp eq i64 %spec.select8.i.i.i.i.i.i.i, 1 br i1 %cmp.not.i.i.i.i.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i, label %while.body.i.i.i.i.i156.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i: ; preds = %while.body.i.i.i.i.i156.i.i - %92 = sext i32 %spec.select7.i.i.i.i.i.i.i to i64 + %92 = zext nneg i32 %spec.select7.i.i.i.i.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i, %cond.true.i.i.i.i @@ -6218,19 +6218,19 @@ if.end.i518.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i524.i: ; preds = %if.end.i518.i, %while.body.i.i.i.i524.i %x.addr.012.i.i.i.i525.i = phi i64 [ %spec.select8.i.i.i.i534.i, %while.body.i.i.i.i524.i ], [ %sub1.i.i522.i, %if.end.i518.i ] %result.011.i.i.i.i526.i = phi i32 [ %spec.select7.i.i.i.i533.i, %while.body.i.i.i.i524.i ], [ 0, %if.end.i518.i ] - %n.addr.010.i.i.i.i527.i = phi i32 [ %div.i.i.i.i531.i, %while.body.i.i.i.i524.i ], [ 32, %if.end.i518.i ] + %n.addr.010.i.i.i.i527.i = phi i32 [ %div.i1.i.i.i531.i, %while.body.i.i.i.i524.i ], [ 32, %if.end.i518.i ] %sh_prom.i.i.i.i528.i = zext nneg i32 %n.addr.010.i.i.i.i527.i to i64 %shr.i.i.i4.i529.i = lshr i64 %x.addr.012.i.i.i.i525.i, %sh_prom.i.i.i.i528.i %tobool.not.i.i.i.i530.i = icmp eq i64 %shr.i.i.i4.i529.i, 0 - %div.i.i.i.i531.i = sdiv i32 %n.addr.010.i.i.i.i527.i, 2 + %div.i1.i.i.i531.i = lshr i32 %n.addr.010.i.i.i.i527.i, 1 %add.i.i.i.i532.i = select i1 %tobool.not.i.i.i.i530.i, i32 0, i32 %n.addr.010.i.i.i.i527.i - %spec.select7.i.i.i.i533.i = add nsw i32 %add.i.i.i.i532.i, %result.011.i.i.i.i526.i + %spec.select7.i.i.i.i533.i = add nuw nsw i32 %add.i.i.i.i532.i, %result.011.i.i.i.i526.i %spec.select8.i.i.i.i534.i = select i1 %tobool.not.i.i.i.i530.i, i64 %x.addr.012.i.i.i.i525.i, i64 %shr.i.i.i4.i529.i %cmp.not.i.i.i.i535.i = icmp eq i64 %spec.select8.i.i.i.i534.i, 1 br i1 %cmp.not.i.i.i.i535.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i536.i, label %while.body.i.i.i.i524.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i536.i: ; preds = %while.body.i.i.i.i524.i - %242 = sext i32 %spec.select7.i.i.i.i533.i to i64 + %242 = zext nneg i32 %spec.select7.i.i.i.i533.i to i64 br label %for.cond10.preheader.i.i.i for.cond10.preheader.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i536.i, %if.end.i518.i @@ -6380,19 +6380,19 @@ cond.true.i.i.i.i111: ; preds = %if.end.i.i.i.i107 while.body.i.i.i.i49.i.i.i: ; preds = %cond.true.i.i.i.i111, %while.body.i.i.i.i49.i.i.i %x.addr.012.i.i.i.i.i.i.i115 = phi i64 [ %spec.select8.i.i.i.i.i.i.i123, %while.body.i.i.i.i49.i.i.i ], [ %sub1.i.i.i.i.i113, %cond.true.i.i.i.i111 ] %result.011.i.i.i.i.i.i.i116 = phi i32 [ %spec.select7.i.i.i.i.i.i.i122, %while.body.i.i.i.i49.i.i.i ], [ 0, %cond.true.i.i.i.i111 ] - %n.addr.010.i.i.i.i.i.i.i117 = phi i32 [ %div.i.i.i.i.i.i.i120, %while.body.i.i.i.i49.i.i.i ], [ 32, %cond.true.i.i.i.i111 ] + %n.addr.010.i.i.i.i.i.i.i117 = phi i32 [ %div.i1.i.i.i.i.i.i120, %while.body.i.i.i.i49.i.i.i ], [ 32, %cond.true.i.i.i.i111 ] %sh_prom.i.i.i.i.i.i.i118 = zext nneg i32 %n.addr.010.i.i.i.i.i.i.i117 to i64 %shr.i.i.i.i50.i.i.i = lshr i64 %x.addr.012.i.i.i.i.i.i.i115, %sh_prom.i.i.i.i.i.i.i118 %tobool.not.i.i.i.i.i.i.i119 = icmp eq i64 %shr.i.i.i.i50.i.i.i, 0 - %div.i.i.i.i.i.i.i120 = sdiv i32 %n.addr.010.i.i.i.i.i.i.i117, 2 + %div.i1.i.i.i.i.i.i120 = lshr i32 %n.addr.010.i.i.i.i.i.i.i117, 1 %add.i.i.i.i.i.i.i121 = select i1 %tobool.not.i.i.i.i.i.i.i119, i32 0, i32 %n.addr.010.i.i.i.i.i.i.i117 - %spec.select7.i.i.i.i.i.i.i122 = add nsw i32 %add.i.i.i.i.i.i.i121, %result.011.i.i.i.i.i.i.i116 + %spec.select7.i.i.i.i.i.i.i122 = add nuw nsw i32 %add.i.i.i.i.i.i.i121, %result.011.i.i.i.i.i.i.i116 %spec.select8.i.i.i.i.i.i.i123 = select i1 %tobool.not.i.i.i.i.i.i.i119, i64 %x.addr.012.i.i.i.i.i.i.i115, i64 %shr.i.i.i.i50.i.i.i %cmp.not.i.i.i.i.i.i260.i = icmp eq i64 %spec.select8.i.i.i.i.i.i.i123, 1 br i1 %cmp.not.i.i.i.i.i.i260.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i124, label %while.body.i.i.i.i49.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i124: ; preds = %while.body.i.i.i.i49.i.i.i - %262 = sext i32 %spec.select7.i.i.i.i.i.i.i122 to i64 + %262 = zext nneg i32 %spec.select7.i.i.i.i.i.i.i122 to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i.i.i.i125 _ZN5boost6detail10lowest_bitImEEiT_.exit.i.i.i.i125: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i124, %cond.true.i.i.i.i111 @@ -6515,19 +6515,19 @@ if.end.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i487.i: ; preds = %if.end.i.i, %while.body.i.i.i.i487.i %x.addr.012.i.i.i.i.i = phi i64 [ %spec.select8.i.i.i.i.i, %while.body.i.i.i.i487.i ], [ %sub1.i.i.i, %if.end.i.i ] %result.011.i.i.i.i.i = phi i32 [ %spec.select7.i.i.i.i.i, %while.body.i.i.i.i487.i ], [ 0, %if.end.i.i ] - %n.addr.010.i.i.i.i.i = phi i32 [ %div.i.i.i.i.i, %while.body.i.i.i.i487.i ], [ 32, %if.end.i.i ] + %n.addr.010.i.i.i.i.i = phi i32 [ %div.i1.i.i.i.i, %while.body.i.i.i.i487.i ], [ 32, %if.end.i.i ] %sh_prom.i.i.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i.i to i64 %shr.i.i.i4.i.i = lshr i64 %x.addr.012.i.i.i.i.i, %sh_prom.i.i.i.i.i %tobool.not.i.i.i.i488.i = icmp eq i64 %shr.i.i.i4.i.i, 0 - %div.i.i.i.i.i = sdiv i32 %n.addr.010.i.i.i.i.i, 2 + %div.i1.i.i.i.i = lshr i32 %n.addr.010.i.i.i.i.i, 1 %add.i.i.i.i489.i = select i1 %tobool.not.i.i.i.i488.i, i32 0, i32 %n.addr.010.i.i.i.i.i - %spec.select7.i.i.i.i.i = add nsw i32 %add.i.i.i.i489.i, %result.011.i.i.i.i.i + %spec.select7.i.i.i.i.i = add nuw nsw i32 %add.i.i.i.i489.i, %result.011.i.i.i.i.i %spec.select8.i.i.i.i.i = select i1 %tobool.not.i.i.i.i488.i, i64 %x.addr.012.i.i.i.i.i, i64 %shr.i.i.i4.i.i %cmp.not.i.i.i.i490.i = icmp eq i64 %spec.select8.i.i.i.i.i, 1 br i1 %cmp.not.i.i.i.i490.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i, label %while.body.i.i.i.i487.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i: ; preds = %while.body.i.i.i.i487.i - %272 = sext i32 %spec.select7.i.i.i.i.i to i64 + %272 = zext nneg i32 %spec.select7.i.i.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i, %if.end.i.i @@ -6684,19 +6684,19 @@ if.end.i303.i.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i307.i.i.i: ; preds = %if.end.i303.i.i.i, %while.body.i.i.i.i307.i.i.i %x.addr.012.i.i.i.i308.i.i.i = phi i64 [ %spec.select8.i.i.i.i316.i.i.i, %while.body.i.i.i.i307.i.i.i ], [ %sub1.i.i305.i.i.i, %if.end.i303.i.i.i ] %result.011.i.i.i.i309.i.i.i = phi i32 [ %spec.select7.i.i.i.i315.i.i.i, %while.body.i.i.i.i307.i.i.i ], [ 0, %if.end.i303.i.i.i ] - %n.addr.010.i.i.i.i310.i.i.i = phi i32 [ %div.i.i.i.i313.i.i.i, %while.body.i.i.i.i307.i.i.i ], [ 32, %if.end.i303.i.i.i ] + %n.addr.010.i.i.i.i310.i.i.i = phi i32 [ %div.i1.i.i.i313.i.i.i, %while.body.i.i.i.i307.i.i.i ], [ 32, %if.end.i303.i.i.i ] %sh_prom.i.i.i.i311.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i310.i.i.i to i64 %shr.i.i.i4.i.i.i.i = lshr i64 %x.addr.012.i.i.i.i308.i.i.i, %sh_prom.i.i.i.i311.i.i.i %tobool.not.i.i.i.i312.i.i.i = icmp eq i64 %shr.i.i.i4.i.i.i.i, 0 - %div.i.i.i.i313.i.i.i = sdiv i32 %n.addr.010.i.i.i.i310.i.i.i, 2 + %div.i1.i.i.i313.i.i.i = lshr i32 %n.addr.010.i.i.i.i310.i.i.i, 1 %add.i.i.i.i314.i.i.i = select i1 %tobool.not.i.i.i.i312.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i310.i.i.i - %spec.select7.i.i.i.i315.i.i.i = add nsw i32 %add.i.i.i.i314.i.i.i, %result.011.i.i.i.i309.i.i.i + %spec.select7.i.i.i.i315.i.i.i = add nuw nsw i32 %add.i.i.i.i314.i.i.i, %result.011.i.i.i.i309.i.i.i %spec.select8.i.i.i.i316.i.i.i = select i1 %tobool.not.i.i.i.i312.i.i.i, i64 %x.addr.012.i.i.i.i308.i.i.i, i64 %shr.i.i.i4.i.i.i.i %cmp.not.i.i.i.i317.i.i.i = icmp eq i64 %spec.select8.i.i.i.i316.i.i.i, 1 br i1 %cmp.not.i.i.i.i317.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i318.i.i.i, label %while.body.i.i.i.i307.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i318.i.i.i: ; preds = %while.body.i.i.i.i307.i.i.i - %285 = sext i32 %spec.select7.i.i.i.i315.i.i.i to i64 + %285 = zext nneg i32 %spec.select7.i.i.i.i315.i.i.i to i64 br label %_ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit60.i.i.i _ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit60.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i318.i.i.i, %if.end.i303.i.i.i @@ -6793,19 +6793,19 @@ cond.true.i84.i.i.i: ; preds = %if.end.i77.i.i.i while.body.i.i.i.i88.i.i.i: ; preds = %cond.true.i84.i.i.i, %while.body.i.i.i.i88.i.i.i %x.addr.012.i.i.i.i89.i.i.i = phi i64 [ %spec.select8.i.i.i.i98.i.i.i, %while.body.i.i.i.i88.i.i.i ], [ %sub1.i.i86.i.i.i, %cond.true.i84.i.i.i ] %result.011.i.i.i.i90.i.i.i = phi i32 [ %spec.select7.i.i.i.i97.i.i.i, %while.body.i.i.i.i88.i.i.i ], [ 0, %cond.true.i84.i.i.i ] - %n.addr.010.i.i.i.i91.i.i.i = phi i32 [ %div.i.i.i.i95.i.i.i, %while.body.i.i.i.i88.i.i.i ], [ 32, %cond.true.i84.i.i.i ] + %n.addr.010.i.i.i.i91.i.i.i = phi i32 [ %div.i1.i.i.i95.i.i.i, %while.body.i.i.i.i88.i.i.i ], [ 32, %cond.true.i84.i.i.i ] %sh_prom.i.i.i.i92.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i91.i.i.i to i64 %shr.i.i.i.i93.i.i.i = lshr i64 %x.addr.012.i.i.i.i89.i.i.i, %sh_prom.i.i.i.i92.i.i.i %tobool.not.i.i.i.i94.i.i.i = icmp eq i64 %shr.i.i.i.i93.i.i.i, 0 - %div.i.i.i.i95.i.i.i = sdiv i32 %n.addr.010.i.i.i.i91.i.i.i, 2 + %div.i1.i.i.i95.i.i.i = lshr i32 %n.addr.010.i.i.i.i91.i.i.i, 1 %add.i.i.i.i96.i.i.i = select i1 %tobool.not.i.i.i.i94.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i91.i.i.i - %spec.select7.i.i.i.i97.i.i.i = add nsw i32 %add.i.i.i.i96.i.i.i, %result.011.i.i.i.i90.i.i.i + %spec.select7.i.i.i.i97.i.i.i = add nuw nsw i32 %add.i.i.i.i96.i.i.i, %result.011.i.i.i.i90.i.i.i %spec.select8.i.i.i.i98.i.i.i = select i1 %tobool.not.i.i.i.i94.i.i.i, i64 %x.addr.012.i.i.i.i89.i.i.i, i64 %shr.i.i.i.i93.i.i.i %cmp.not.i.i.i.i99.i.i.i = icmp eq i64 %spec.select8.i.i.i.i98.i.i.i, 1 br i1 %cmp.not.i.i.i.i99.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i100.i.i.i, label %while.body.i.i.i.i88.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i100.i.i.i: ; preds = %while.body.i.i.i.i88.i.i.i - %300 = sext i32 %spec.select7.i.i.i.i97.i.i.i to i64 + %300 = zext nneg i32 %spec.select7.i.i.i.i97.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i101.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i101.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i100.i.i.i, %cond.true.i84.i.i.i @@ -6928,19 +6928,19 @@ if.end.i348.i.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i354.i.i.i: ; preds = %if.end.i348.i.i.i, %while.body.i.i.i.i354.i.i.i %x.addr.012.i.i.i.i355.i.i.i = phi i64 [ %spec.select8.i.i.i.i364.i.i.i, %while.body.i.i.i.i354.i.i.i ], [ %sub1.i.i352.i.i.i, %if.end.i348.i.i.i ] %result.011.i.i.i.i356.i.i.i = phi i32 [ %spec.select7.i.i.i.i363.i.i.i, %while.body.i.i.i.i354.i.i.i ], [ 0, %if.end.i348.i.i.i ] - %n.addr.010.i.i.i.i357.i.i.i = phi i32 [ %div.i.i.i.i361.i.i.i, %while.body.i.i.i.i354.i.i.i ], [ 32, %if.end.i348.i.i.i ] + %n.addr.010.i.i.i.i357.i.i.i = phi i32 [ %div.i1.i.i.i361.i.i.i, %while.body.i.i.i.i354.i.i.i ], [ 32, %if.end.i348.i.i.i ] %sh_prom.i.i.i.i358.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i357.i.i.i to i64 %shr.i.i.i4.i359.i.i.i = lshr i64 %x.addr.012.i.i.i.i355.i.i.i, %sh_prom.i.i.i.i358.i.i.i %tobool.not.i.i.i.i360.i.i.i = icmp eq i64 %shr.i.i.i4.i359.i.i.i, 0 - %div.i.i.i.i361.i.i.i = sdiv i32 %n.addr.010.i.i.i.i357.i.i.i, 2 + %div.i1.i.i.i361.i.i.i = lshr i32 %n.addr.010.i.i.i.i357.i.i.i, 1 %add.i.i.i.i362.i.i.i = select i1 %tobool.not.i.i.i.i360.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i357.i.i.i - %spec.select7.i.i.i.i363.i.i.i = add nsw i32 %add.i.i.i.i362.i.i.i, %result.011.i.i.i.i356.i.i.i + %spec.select7.i.i.i.i363.i.i.i = add nuw nsw i32 %add.i.i.i.i362.i.i.i, %result.011.i.i.i.i356.i.i.i %spec.select8.i.i.i.i364.i.i.i = select i1 %tobool.not.i.i.i.i360.i.i.i, i64 %x.addr.012.i.i.i.i355.i.i.i, i64 %shr.i.i.i4.i359.i.i.i %cmp.not.i.i.i.i365.i.i.i = icmp eq i64 %spec.select8.i.i.i.i364.i.i.i, 1 br i1 %cmp.not.i.i.i.i365.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i366.i.i.i, label %while.body.i.i.i.i354.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i366.i.i.i: ; preds = %while.body.i.i.i.i354.i.i.i - %310 = sext i32 %spec.select7.i.i.i.i363.i.i.i to i64 + %310 = zext nneg i32 %spec.select7.i.i.i.i363.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i367.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i367.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i366.i.i.i, %if.end.i348.i.i.i @@ -7083,19 +7083,19 @@ if.end.i429.i.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i435.i.i.i: ; preds = %if.end.i429.i.i.i, %while.body.i.i.i.i435.i.i.i %x.addr.012.i.i.i.i436.i.i.i = phi i64 [ %spec.select8.i.i.i.i445.i.i.i, %while.body.i.i.i.i435.i.i.i ], [ %sub1.i.i433.i.i.i, %if.end.i429.i.i.i ] %result.011.i.i.i.i437.i.i.i = phi i32 [ %spec.select7.i.i.i.i444.i.i.i, %while.body.i.i.i.i435.i.i.i ], [ 0, %if.end.i429.i.i.i ] - %n.addr.010.i.i.i.i438.i.i.i = phi i32 [ %div.i.i.i.i442.i.i.i, %while.body.i.i.i.i435.i.i.i ], [ 32, %if.end.i429.i.i.i ] + %n.addr.010.i.i.i.i438.i.i.i = phi i32 [ %div.i1.i.i.i442.i.i.i, %while.body.i.i.i.i435.i.i.i ], [ 32, %if.end.i429.i.i.i ] %sh_prom.i.i.i.i439.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i438.i.i.i to i64 %shr.i.i.i4.i440.i.i.i = lshr i64 %x.addr.012.i.i.i.i436.i.i.i, %sh_prom.i.i.i.i439.i.i.i %tobool.not.i.i.i.i441.i.i.i = icmp eq i64 %shr.i.i.i4.i440.i.i.i, 0 - %div.i.i.i.i442.i.i.i = sdiv i32 %n.addr.010.i.i.i.i438.i.i.i, 2 + %div.i1.i.i.i442.i.i.i = lshr i32 %n.addr.010.i.i.i.i438.i.i.i, 1 %add.i.i.i.i443.i.i.i = select i1 %tobool.not.i.i.i.i441.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i438.i.i.i - %spec.select7.i.i.i.i444.i.i.i = add nsw i32 %add.i.i.i.i443.i.i.i, %result.011.i.i.i.i437.i.i.i + %spec.select7.i.i.i.i444.i.i.i = add nuw nsw i32 %add.i.i.i.i443.i.i.i, %result.011.i.i.i.i437.i.i.i %spec.select8.i.i.i.i445.i.i.i = select i1 %tobool.not.i.i.i.i441.i.i.i, i64 %x.addr.012.i.i.i.i436.i.i.i, i64 %shr.i.i.i4.i440.i.i.i %cmp.not.i.i.i.i446.i.i.i = icmp eq i64 %spec.select8.i.i.i.i445.i.i.i, 1 br i1 %cmp.not.i.i.i.i446.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i447.i.i.i, label %while.body.i.i.i.i435.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i447.i.i.i: ; preds = %while.body.i.i.i.i435.i.i.i - %324 = sext i32 %spec.select7.i.i.i.i444.i.i.i to i64 + %324 = zext nneg i32 %spec.select7.i.i.i.i444.i.i.i to i64 br label %_ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit113.i.i.i _ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit113.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i447.i.i.i, %if.end.i429.i.i.i @@ -7222,19 +7222,19 @@ cond.true.i144.i.i.i: ; preds = %if.end.i137.i.i.i while.body.i.i.i.i148.i.i.i: ; preds = %cond.true.i144.i.i.i, %while.body.i.i.i.i148.i.i.i %x.addr.012.i.i.i.i149.i.i.i = phi i64 [ %spec.select8.i.i.i.i158.i.i.i, %while.body.i.i.i.i148.i.i.i ], [ %sub1.i.i146.i.i.i, %cond.true.i144.i.i.i ] %result.011.i.i.i.i150.i.i.i = phi i32 [ %spec.select7.i.i.i.i157.i.i.i, %while.body.i.i.i.i148.i.i.i ], [ 0, %cond.true.i144.i.i.i ] - %n.addr.010.i.i.i.i151.i.i.i = phi i32 [ %div.i.i.i.i155.i.i.i, %while.body.i.i.i.i148.i.i.i ], [ 32, %cond.true.i144.i.i.i ] + %n.addr.010.i.i.i.i151.i.i.i = phi i32 [ %div.i1.i.i.i155.i.i.i, %while.body.i.i.i.i148.i.i.i ], [ 32, %cond.true.i144.i.i.i ] %sh_prom.i.i.i.i152.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i151.i.i.i to i64 %shr.i.i.i.i153.i.i.i = lshr i64 %x.addr.012.i.i.i.i149.i.i.i, %sh_prom.i.i.i.i152.i.i.i %tobool.not.i.i.i.i154.i.i.i = icmp eq i64 %shr.i.i.i.i153.i.i.i, 0 - %div.i.i.i.i155.i.i.i = sdiv i32 %n.addr.010.i.i.i.i151.i.i.i, 2 + %div.i1.i.i.i155.i.i.i = lshr i32 %n.addr.010.i.i.i.i151.i.i.i, 1 %add.i.i.i.i156.i.i.i = select i1 %tobool.not.i.i.i.i154.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i151.i.i.i - %spec.select7.i.i.i.i157.i.i.i = add nsw i32 %add.i.i.i.i156.i.i.i, %result.011.i.i.i.i150.i.i.i + %spec.select7.i.i.i.i157.i.i.i = add nuw nsw i32 %add.i.i.i.i156.i.i.i, %result.011.i.i.i.i150.i.i.i %spec.select8.i.i.i.i158.i.i.i = select i1 %tobool.not.i.i.i.i154.i.i.i, i64 %x.addr.012.i.i.i.i149.i.i.i, i64 %shr.i.i.i.i153.i.i.i %cmp.not.i.i.i.i159.i.i.i = icmp eq i64 %spec.select8.i.i.i.i158.i.i.i, 1 br i1 %cmp.not.i.i.i.i159.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i160.i.i.i, label %while.body.i.i.i.i148.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i160.i.i.i: ; preds = %while.body.i.i.i.i148.i.i.i - %339 = sext i32 %spec.select7.i.i.i.i157.i.i.i to i64 + %339 = zext nneg i32 %spec.select7.i.i.i.i157.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i161.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i161.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i160.i.i.i, %cond.true.i144.i.i.i @@ -7357,19 +7357,19 @@ if.end.i510.i.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i516.i.i.i: ; preds = %if.end.i510.i.i.i, %while.body.i.i.i.i516.i.i.i %x.addr.012.i.i.i.i517.i.i.i = phi i64 [ %spec.select8.i.i.i.i526.i.i.i, %while.body.i.i.i.i516.i.i.i ], [ %sub1.i.i514.i.i.i, %if.end.i510.i.i.i ] %result.011.i.i.i.i518.i.i.i = phi i32 [ %spec.select7.i.i.i.i525.i.i.i, %while.body.i.i.i.i516.i.i.i ], [ 0, %if.end.i510.i.i.i ] - %n.addr.010.i.i.i.i519.i.i.i = phi i32 [ %div.i.i.i.i523.i.i.i, %while.body.i.i.i.i516.i.i.i ], [ 32, %if.end.i510.i.i.i ] + %n.addr.010.i.i.i.i519.i.i.i = phi i32 [ %div.i1.i.i.i523.i.i.i, %while.body.i.i.i.i516.i.i.i ], [ 32, %if.end.i510.i.i.i ] %sh_prom.i.i.i.i520.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i519.i.i.i to i64 %shr.i.i.i4.i521.i.i.i = lshr i64 %x.addr.012.i.i.i.i517.i.i.i, %sh_prom.i.i.i.i520.i.i.i %tobool.not.i.i.i.i522.i.i.i = icmp eq i64 %shr.i.i.i4.i521.i.i.i, 0 - %div.i.i.i.i523.i.i.i = sdiv i32 %n.addr.010.i.i.i.i519.i.i.i, 2 + %div.i1.i.i.i523.i.i.i = lshr i32 %n.addr.010.i.i.i.i519.i.i.i, 1 %add.i.i.i.i524.i.i.i = select i1 %tobool.not.i.i.i.i522.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i519.i.i.i - %spec.select7.i.i.i.i525.i.i.i = add nsw i32 %add.i.i.i.i524.i.i.i, %result.011.i.i.i.i518.i.i.i + %spec.select7.i.i.i.i525.i.i.i = add nuw nsw i32 %add.i.i.i.i524.i.i.i, %result.011.i.i.i.i518.i.i.i %spec.select8.i.i.i.i526.i.i.i = select i1 %tobool.not.i.i.i.i522.i.i.i, i64 %x.addr.012.i.i.i.i517.i.i.i, i64 %shr.i.i.i4.i521.i.i.i %cmp.not.i.i.i.i527.i.i.i = icmp eq i64 %spec.select8.i.i.i.i526.i.i.i, 1 br i1 %cmp.not.i.i.i.i527.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i528.i.i.i, label %while.body.i.i.i.i516.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i528.i.i.i: ; preds = %while.body.i.i.i.i516.i.i.i - %349 = sext i32 %spec.select7.i.i.i.i525.i.i.i to i64 + %349 = zext nneg i32 %spec.select7.i.i.i.i525.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i529.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i529.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i528.i.i.i, %if.end.i510.i.i.i @@ -7607,19 +7607,19 @@ if.end.i591.i.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i597.i.i.i: ; preds = %if.end.i591.i.i.i, %while.body.i.i.i.i597.i.i.i %x.addr.012.i.i.i.i598.i.i.i = phi i64 [ %spec.select8.i.i.i.i607.i.i.i, %while.body.i.i.i.i597.i.i.i ], [ %sub1.i.i595.i.i.i, %if.end.i591.i.i.i ] %result.011.i.i.i.i599.i.i.i = phi i32 [ %spec.select7.i.i.i.i606.i.i.i, %while.body.i.i.i.i597.i.i.i ], [ 0, %if.end.i591.i.i.i ] - %n.addr.010.i.i.i.i600.i.i.i = phi i32 [ %div.i.i.i.i604.i.i.i, %while.body.i.i.i.i597.i.i.i ], [ 32, %if.end.i591.i.i.i ] + %n.addr.010.i.i.i.i600.i.i.i = phi i32 [ %div.i1.i.i.i604.i.i.i, %while.body.i.i.i.i597.i.i.i ], [ 32, %if.end.i591.i.i.i ] %sh_prom.i.i.i.i601.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i600.i.i.i to i64 %shr.i.i.i4.i602.i.i.i = lshr i64 %x.addr.012.i.i.i.i598.i.i.i, %sh_prom.i.i.i.i601.i.i.i %tobool.not.i.i.i.i603.i.i.i = icmp eq i64 %shr.i.i.i4.i602.i.i.i, 0 - %div.i.i.i.i604.i.i.i = sdiv i32 %n.addr.010.i.i.i.i600.i.i.i, 2 + %div.i1.i.i.i604.i.i.i = lshr i32 %n.addr.010.i.i.i.i600.i.i.i, 1 %add.i.i.i.i605.i.i.i = select i1 %tobool.not.i.i.i.i603.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i600.i.i.i - %spec.select7.i.i.i.i606.i.i.i = add nsw i32 %add.i.i.i.i605.i.i.i, %result.011.i.i.i.i599.i.i.i + %spec.select7.i.i.i.i606.i.i.i = add nuw nsw i32 %add.i.i.i.i605.i.i.i, %result.011.i.i.i.i599.i.i.i %spec.select8.i.i.i.i607.i.i.i = select i1 %tobool.not.i.i.i.i603.i.i.i, i64 %x.addr.012.i.i.i.i598.i.i.i, i64 %shr.i.i.i4.i602.i.i.i %cmp.not.i.i.i.i608.i.i.i = icmp eq i64 %spec.select8.i.i.i.i607.i.i.i, 1 br i1 %cmp.not.i.i.i.i608.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i609.i.i.i, label %while.body.i.i.i.i597.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i609.i.i.i: ; preds = %while.body.i.i.i.i597.i.i.i - %379 = sext i32 %spec.select7.i.i.i.i606.i.i.i to i64 + %379 = zext nneg i32 %spec.select7.i.i.i.i606.i.i.i to i64 br label %_ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit212.i.i.i _ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit212.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i609.i.i.i, %if.end.i591.i.i.i @@ -7720,19 +7720,19 @@ cond.true.i263.i.i.i: ; preds = %if.end.i256.i.i.i while.body.i.i.i.i267.i.i.i: ; preds = %cond.true.i263.i.i.i, %while.body.i.i.i.i267.i.i.i %x.addr.012.i.i.i.i268.i.i.i = phi i64 [ %spec.select8.i.i.i.i277.i.i.i, %while.body.i.i.i.i267.i.i.i ], [ %sub1.i.i265.i.i.i, %cond.true.i263.i.i.i ] %result.011.i.i.i.i269.i.i.i = phi i32 [ %spec.select7.i.i.i.i276.i.i.i, %while.body.i.i.i.i267.i.i.i ], [ 0, %cond.true.i263.i.i.i ] - %n.addr.010.i.i.i.i270.i.i.i = phi i32 [ %div.i.i.i.i274.i.i.i, %while.body.i.i.i.i267.i.i.i ], [ 32, %cond.true.i263.i.i.i ] + %n.addr.010.i.i.i.i270.i.i.i = phi i32 [ %div.i1.i.i.i274.i.i.i, %while.body.i.i.i.i267.i.i.i ], [ 32, %cond.true.i263.i.i.i ] %sh_prom.i.i.i.i271.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i270.i.i.i to i64 %shr.i.i.i.i272.i.i.i = lshr i64 %x.addr.012.i.i.i.i268.i.i.i, %sh_prom.i.i.i.i271.i.i.i %tobool.not.i.i.i.i273.i.i.i = icmp eq i64 %shr.i.i.i.i272.i.i.i, 0 - %div.i.i.i.i274.i.i.i = sdiv i32 %n.addr.010.i.i.i.i270.i.i.i, 2 + %div.i1.i.i.i274.i.i.i = lshr i32 %n.addr.010.i.i.i.i270.i.i.i, 1 %add.i.i.i.i275.i.i.i = select i1 %tobool.not.i.i.i.i273.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i270.i.i.i - %spec.select7.i.i.i.i276.i.i.i = add nsw i32 %add.i.i.i.i275.i.i.i, %result.011.i.i.i.i269.i.i.i + %spec.select7.i.i.i.i276.i.i.i = add nuw nsw i32 %add.i.i.i.i275.i.i.i, %result.011.i.i.i.i269.i.i.i %spec.select8.i.i.i.i277.i.i.i = select i1 %tobool.not.i.i.i.i273.i.i.i, i64 %x.addr.012.i.i.i.i268.i.i.i, i64 %shr.i.i.i.i272.i.i.i %cmp.not.i.i.i.i278.i.i.i = icmp eq i64 %spec.select8.i.i.i.i277.i.i.i, 1 br i1 %cmp.not.i.i.i.i278.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i279.i.i.i, label %while.body.i.i.i.i267.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i279.i.i.i: ; preds = %while.body.i.i.i.i267.i.i.i - %395 = sext i32 %spec.select7.i.i.i.i276.i.i.i to i64 + %395 = zext nneg i32 %spec.select7.i.i.i.i276.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i280.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i280.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i279.i.i.i, %cond.true.i263.i.i.i @@ -7855,19 +7855,19 @@ if.end.i672.i.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i678.i.i.i: ; preds = %if.end.i672.i.i.i, %while.body.i.i.i.i678.i.i.i %x.addr.012.i.i.i.i679.i.i.i = phi i64 [ %spec.select8.i.i.i.i688.i.i.i, %while.body.i.i.i.i678.i.i.i ], [ %sub1.i.i676.i.i.i, %if.end.i672.i.i.i ] %result.011.i.i.i.i680.i.i.i = phi i32 [ %spec.select7.i.i.i.i687.i.i.i, %while.body.i.i.i.i678.i.i.i ], [ 0, %if.end.i672.i.i.i ] - %n.addr.010.i.i.i.i681.i.i.i = phi i32 [ %div.i.i.i.i685.i.i.i, %while.body.i.i.i.i678.i.i.i ], [ 32, %if.end.i672.i.i.i ] + %n.addr.010.i.i.i.i681.i.i.i = phi i32 [ %div.i1.i.i.i685.i.i.i, %while.body.i.i.i.i678.i.i.i ], [ 32, %if.end.i672.i.i.i ] %sh_prom.i.i.i.i682.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i681.i.i.i to i64 %shr.i.i.i4.i683.i.i.i = lshr i64 %x.addr.012.i.i.i.i679.i.i.i, %sh_prom.i.i.i.i682.i.i.i %tobool.not.i.i.i.i684.i.i.i = icmp eq i64 %shr.i.i.i4.i683.i.i.i, 0 - %div.i.i.i.i685.i.i.i = sdiv i32 %n.addr.010.i.i.i.i681.i.i.i, 2 + %div.i1.i.i.i685.i.i.i = lshr i32 %n.addr.010.i.i.i.i681.i.i.i, 1 %add.i.i.i.i686.i.i.i = select i1 %tobool.not.i.i.i.i684.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i681.i.i.i - %spec.select7.i.i.i.i687.i.i.i = add nsw i32 %add.i.i.i.i686.i.i.i, %result.011.i.i.i.i680.i.i.i + %spec.select7.i.i.i.i687.i.i.i = add nuw nsw i32 %add.i.i.i.i686.i.i.i, %result.011.i.i.i.i680.i.i.i %spec.select8.i.i.i.i688.i.i.i = select i1 %tobool.not.i.i.i.i684.i.i.i, i64 %x.addr.012.i.i.i.i679.i.i.i, i64 %shr.i.i.i4.i683.i.i.i %cmp.not.i.i.i.i689.i.i.i = icmp eq i64 %spec.select8.i.i.i.i688.i.i.i, 1 br i1 %cmp.not.i.i.i.i689.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i690.i.i.i, label %while.body.i.i.i.i678.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i690.i.i.i: ; preds = %while.body.i.i.i.i678.i.i.i - %405 = sext i32 %spec.select7.i.i.i.i687.i.i.i to i64 + %405 = zext nneg i32 %spec.select7.i.i.i.i687.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i691.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i691.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i690.i.i.i, %if.end.i672.i.i.i @@ -9402,19 +9402,19 @@ cond.true.i.i: ; preds = %if.end.i.i218 while.body.i.i.i.i.i224: ; preds = %cond.true.i.i, %while.body.i.i.i.i.i224 %x.addr.012.i.i.i.i.i225 = phi i64 [ %spec.select8.i.i.i.i.i232, %while.body.i.i.i.i.i224 ], [ %sub1.i.i.i222, %cond.true.i.i ] %result.011.i.i.i.i.i226 = phi i32 [ %spec.select7.i.i.i.i.i231, %while.body.i.i.i.i.i224 ], [ 0, %cond.true.i.i ] - %n.addr.010.i.i.i.i.i227 = phi i32 [ %div.i.i.i.i.i230, %while.body.i.i.i.i.i224 ], [ 32, %cond.true.i.i ] + %n.addr.010.i.i.i.i.i227 = phi i32 [ %div.i1.i.i.i.i230, %while.body.i.i.i.i.i224 ], [ 32, %cond.true.i.i ] %sh_prom.i.i.i.i.i228 = zext nneg i32 %n.addr.010.i.i.i.i.i227 to i64 %shr.i.i.i.i.i229 = lshr i64 %x.addr.012.i.i.i.i.i225, %sh_prom.i.i.i.i.i228 %tobool.not.i.i.i.i10.i = icmp eq i64 %shr.i.i.i.i.i229, 0 - %div.i.i.i.i.i230 = sdiv i32 %n.addr.010.i.i.i.i.i227, 2 + %div.i1.i.i.i.i230 = lshr i32 %n.addr.010.i.i.i.i.i227, 1 %add.i.i.i.i11.i = select i1 %tobool.not.i.i.i.i10.i, i32 0, i32 %n.addr.010.i.i.i.i.i227 - %spec.select7.i.i.i.i.i231 = add nsw i32 %add.i.i.i.i11.i, %result.011.i.i.i.i.i226 + %spec.select7.i.i.i.i.i231 = add nuw nsw i32 %add.i.i.i.i11.i, %result.011.i.i.i.i.i226 %spec.select8.i.i.i.i.i232 = select i1 %tobool.not.i.i.i.i10.i, i64 %x.addr.012.i.i.i.i.i225, i64 %shr.i.i.i.i.i229 %cmp.not.i.i.i.i12.i = icmp eq i64 %spec.select8.i.i.i.i.i232, 1 br i1 %cmp.not.i.i.i.i12.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i233, label %while.body.i.i.i.i.i224 _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i233: ; preds = %while.body.i.i.i.i.i224 - %614 = sext i32 %spec.select7.i.i.i.i.i231 to i64 + %614 = zext nneg i32 %spec.select7.i.i.i.i.i231 to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i.i234 _ZN5boost6detail10lowest_bitImEEiT_.exit.i.i234: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i233, %cond.true.i.i @@ -16249,19 +16249,19 @@ if.end: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i: ; preds = %if.end, %while.body.i.i.i %x.addr.012.i.i.i = phi i64 [ %spec.select8.i.i.i, %while.body.i.i.i ], [ %sub1.i, %if.end ] %result.011.i.i.i = phi i32 [ %spec.select7.i.i.i, %while.body.i.i.i ], [ 0, %if.end ] - %n.addr.010.i.i.i = phi i32 [ %div.i.i.i, %while.body.i.i.i ], [ 32, %if.end ] + %n.addr.010.i.i.i = phi i32 [ %div.i1.i.i, %while.body.i.i.i ], [ 32, %if.end ] %sh_prom.i.i.i = zext nneg i32 %n.addr.010.i.i.i to i64 %shr.i.i.i4 = lshr i64 %x.addr.012.i.i.i, %sh_prom.i.i.i %tobool.not.i.i.i = icmp eq i64 %shr.i.i.i4, 0 - %div.i.i.i = sdiv i32 %n.addr.010.i.i.i, 2 + %div.i1.i.i = lshr i32 %n.addr.010.i.i.i, 1 %add.i.i.i = select i1 %tobool.not.i.i.i, i32 0, i32 %n.addr.010.i.i.i - %spec.select7.i.i.i = add nsw i32 %add.i.i.i, %result.011.i.i.i + %spec.select7.i.i.i = add nuw nsw i32 %add.i.i.i, %result.011.i.i.i %spec.select8.i.i.i = select i1 %tobool.not.i.i.i, i64 %x.addr.012.i.i.i, i64 %shr.i.i.i4 %cmp.not.i.i.i = icmp eq i64 %spec.select8.i.i.i, 1 br i1 %cmp.not.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit, label %while.body.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit: ; preds = %while.body.i.i.i - %10 = sext i32 %spec.select7.i.i.i to i64 + %10 = zext nneg i32 %spec.select7.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit _ZN5boost6detail10lowest_bitImEEiT_.exit: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit, %if.end @@ -19565,19 +19565,19 @@ cond.true.i: ; preds = %if.end.i while.body.i.i.i.i: ; preds = %cond.true.i, %while.body.i.i.i.i %x.addr.012.i.i.i.i = phi i64 [ %spec.select8.i.i.i.i, %while.body.i.i.i.i ], [ %sub1.i.i, %cond.true.i ] %result.011.i.i.i.i = phi i32 [ %spec.select7.i.i.i.i, %while.body.i.i.i.i ], [ 0, %cond.true.i ] - %n.addr.010.i.i.i.i = phi i32 [ %div.i.i.i.i, %while.body.i.i.i.i ], [ 32, %cond.true.i ] + %n.addr.010.i.i.i.i = phi i32 [ %div.i1.i.i.i, %while.body.i.i.i.i ], [ 32, %cond.true.i ] %sh_prom.i.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i to i64 %shr.i.i.i.i = lshr i64 %x.addr.012.i.i.i.i, %sh_prom.i.i.i.i %tobool.not.i.i.i.i = icmp eq i64 %shr.i.i.i.i, 0 - %div.i.i.i.i = sdiv i32 %n.addr.010.i.i.i.i, 2 + %div.i1.i.i.i = lshr i32 %n.addr.010.i.i.i.i, 1 %add.i.i.i.i = select i1 %tobool.not.i.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i - %spec.select7.i.i.i.i = add nsw i32 %add.i.i.i.i, %result.011.i.i.i.i + %spec.select7.i.i.i.i = add nuw nsw i32 %add.i.i.i.i, %result.011.i.i.i.i %spec.select8.i.i.i.i = select i1 %tobool.not.i.i.i.i, i64 %x.addr.012.i.i.i.i, i64 %shr.i.i.i.i %cmp.not.i.i.i.i = icmp eq i64 %spec.select8.i.i.i.i, 1 br i1 %cmp.not.i.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i, label %while.body.i.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i: ; preds = %while.body.i.i.i.i - %25 = sext i32 %spec.select7.i.i.i.i to i64 + %25 = zext nneg i32 %spec.select7.i.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i, %cond.true.i @@ -22213,19 +22213,19 @@ if.end.i13: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i17: ; preds = %if.end.i13, %while.body.i.i.i.i17 %x.addr.012.i.i.i.i18 = phi i64 [ %spec.select8.i.i.i.i26, %while.body.i.i.i.i17 ], [ %sub1.i.i15, %if.end.i13 ] %result.011.i.i.i.i19 = phi i32 [ %spec.select7.i.i.i.i25, %while.body.i.i.i.i17 ], [ 0, %if.end.i13 ] - %n.addr.010.i.i.i.i20 = phi i32 [ %div.i.i.i.i23, %while.body.i.i.i.i17 ], [ 32, %if.end.i13 ] + %n.addr.010.i.i.i.i20 = phi i32 [ %div.i1.i.i.i23, %while.body.i.i.i.i17 ], [ 32, %if.end.i13 ] %sh_prom.i.i.i.i21 = zext nneg i32 %n.addr.010.i.i.i.i20 to i64 %shr.i.i.i4.i = lshr i64 %x.addr.012.i.i.i.i18, %sh_prom.i.i.i.i21 %tobool.not.i.i.i.i22 = icmp eq i64 %shr.i.i.i4.i, 0 - %div.i.i.i.i23 = sdiv i32 %n.addr.010.i.i.i.i20, 2 + %div.i1.i.i.i23 = lshr i32 %n.addr.010.i.i.i.i20, 1 %add.i.i.i.i24 = select i1 %tobool.not.i.i.i.i22, i32 0, i32 %n.addr.010.i.i.i.i20 - %spec.select7.i.i.i.i25 = add nsw i32 %add.i.i.i.i24, %result.011.i.i.i.i19 + %spec.select7.i.i.i.i25 = add nuw nsw i32 %add.i.i.i.i24, %result.011.i.i.i.i19 %spec.select8.i.i.i.i26 = select i1 %tobool.not.i.i.i.i22, i64 %x.addr.012.i.i.i.i18, i64 %shr.i.i.i4.i %cmp.not.i.i.i.i27 = icmp eq i64 %spec.select8.i.i.i.i26, 1 br i1 %cmp.not.i.i.i.i27, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i28, label %while.body.i.i.i.i17 _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i28: ; preds = %while.body.i.i.i.i17 - %11 = sext i32 %spec.select7.i.i.i.i25 to i64 + %11 = zext nneg i32 %spec.select7.i.i.i.i25 to i64 br label %_ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit _ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit: ; preds = %if.end.i13, %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i28 @@ -22485,19 +22485,19 @@ cond.true.i: ; preds = %if.end.i while.body.i.i.i.i: ; preds = %cond.true.i, %while.body.i.i.i.i %x.addr.012.i.i.i.i = phi i64 [ %spec.select8.i.i.i.i, %while.body.i.i.i.i ], [ %sub1.i.i, %cond.true.i ] %result.011.i.i.i.i = phi i32 [ %spec.select7.i.i.i.i, %while.body.i.i.i.i ], [ 0, %cond.true.i ] - %n.addr.010.i.i.i.i = phi i32 [ %div.i.i.i.i, %while.body.i.i.i.i ], [ 32, %cond.true.i ] + %n.addr.010.i.i.i.i = phi i32 [ %div.i1.i.i.i, %while.body.i.i.i.i ], [ 32, %cond.true.i ] %sh_prom.i.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i to i64 %shr.i.i.i.i = lshr i64 %x.addr.012.i.i.i.i, %sh_prom.i.i.i.i %tobool.not.i.i.i.i = icmp eq i64 %shr.i.i.i.i, 0 - %div.i.i.i.i = sdiv i32 %n.addr.010.i.i.i.i, 2 + %div.i1.i.i.i = lshr i32 %n.addr.010.i.i.i.i, 1 %add.i.i.i.i = select i1 %tobool.not.i.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i - %spec.select7.i.i.i.i = add nsw i32 %add.i.i.i.i, %result.011.i.i.i.i + %spec.select7.i.i.i.i = add nuw nsw i32 %add.i.i.i.i, %result.011.i.i.i.i %spec.select8.i.i.i.i = select i1 %tobool.not.i.i.i.i, i64 %x.addr.012.i.i.i.i, i64 %shr.i.i.i.i %cmp.not.i.i.i.i = icmp eq i64 %spec.select8.i.i.i.i, 1 br i1 %cmp.not.i.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i, label %while.body.i.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i: ; preds = %while.body.i.i.i.i - %42 = sext i32 %spec.select7.i.i.i.i to i64 + %42 = zext nneg i32 %spec.select7.i.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i, %cond.true.i @@ -22620,19 +22620,19 @@ if.end.i61: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i67: ; preds = %if.end.i61, %while.body.i.i.i.i67 %x.addr.012.i.i.i.i68 = phi i64 [ %spec.select8.i.i.i.i77, %while.body.i.i.i.i67 ], [ %sub1.i.i65, %if.end.i61 ] %result.011.i.i.i.i69 = phi i32 [ %spec.select7.i.i.i.i76, %while.body.i.i.i.i67 ], [ 0, %if.end.i61 ] - %n.addr.010.i.i.i.i70 = phi i32 [ %div.i.i.i.i74, %while.body.i.i.i.i67 ], [ 32, %if.end.i61 ] + %n.addr.010.i.i.i.i70 = phi i32 [ %div.i1.i.i.i74, %while.body.i.i.i.i67 ], [ 32, %if.end.i61 ] %sh_prom.i.i.i.i71 = zext nneg i32 %n.addr.010.i.i.i.i70 to i64 %shr.i.i.i4.i72 = lshr i64 %x.addr.012.i.i.i.i68, %sh_prom.i.i.i.i71 %tobool.not.i.i.i.i73 = icmp eq i64 %shr.i.i.i4.i72, 0 - %div.i.i.i.i74 = sdiv i32 %n.addr.010.i.i.i.i70, 2 + %div.i1.i.i.i74 = lshr i32 %n.addr.010.i.i.i.i70, 1 %add.i.i.i.i75 = select i1 %tobool.not.i.i.i.i73, i32 0, i32 %n.addr.010.i.i.i.i70 - %spec.select7.i.i.i.i76 = add nsw i32 %add.i.i.i.i75, %result.011.i.i.i.i69 + %spec.select7.i.i.i.i76 = add nuw nsw i32 %add.i.i.i.i75, %result.011.i.i.i.i69 %spec.select8.i.i.i.i77 = select i1 %tobool.not.i.i.i.i73, i64 %x.addr.012.i.i.i.i68, i64 %shr.i.i.i4.i72 %cmp.not.i.i.i.i78 = icmp eq i64 %spec.select8.i.i.i.i77, 1 br i1 %cmp.not.i.i.i.i78, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i79, label %while.body.i.i.i.i67 _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i79: ; preds = %while.body.i.i.i.i67 - %52 = sext i32 %spec.select7.i.i.i.i76 to i64 + %52 = zext nneg i32 %spec.select7.i.i.i.i76 to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i80 _ZN5boost6detail10lowest_bitImEEiT_.exit.i80: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i79, %if.end.i61 diff --git a/bench/hyperscan/optimized/ng_mcclellan.cpp.ll b/bench/hyperscan/optimized/ng_mcclellan.cpp.ll index 5060cd35e8d..bc15f7bac9b 100644 --- a/bench/hyperscan/optimized/ng_mcclellan.cpp.ll +++ b/bench/hyperscan/optimized/ng_mcclellan.cpp.ll @@ -2377,24 +2377,24 @@ cond.true.i.i.i.i: ; preds = %if.end.i.i.i.i while.body.i.i.i.i.i14.i.i: ; preds = %cond.true.i.i.i.i, %while.body.i.i.i.i.i14.i.i %x.addr.012.i.i.i.i.i.i.i = phi i64 [ %spec.select8.i.i.i.i.i.i.i, %while.body.i.i.i.i.i14.i.i ], [ %sub1.i.i.i.i.i, %cond.true.i.i.i.i ] %result.011.i.i.i.i.i.i.i = phi i32 [ %spec.select7.i.i.i.i.i.i.i, %while.body.i.i.i.i.i14.i.i ], [ 0, %cond.true.i.i.i.i ] - %n.addr.010.i.i.i.i.i.i.i = phi i32 [ %div.i.i.i.i.i.i.i, %while.body.i.i.i.i.i14.i.i ], [ 32, %cond.true.i.i.i.i ] + %n.addr.010.i.i.i.i.i.i.i = phi i32 [ %div.i1.i.i.i.i.i.i, %while.body.i.i.i.i.i14.i.i ], [ 32, %cond.true.i.i.i.i ] %sh_prom.i.i.i.i.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i.i.i.i to i64 %shr.i.i.i.i.i15.i.i = lshr i64 %x.addr.012.i.i.i.i.i.i.i, %sh_prom.i.i.i.i.i.i.i %tobool.not.i.i.i.i.i.i.i = icmp eq i64 %shr.i.i.i.i.i15.i.i, 0 - %div.i.i.i.i.i.i.i = sdiv i32 %n.addr.010.i.i.i.i.i.i.i, 2 + %div.i1.i.i.i.i.i.i = lshr i32 %n.addr.010.i.i.i.i.i.i.i, 1 %add.i.i.i.i.i.i.i = select i1 %tobool.not.i.i.i.i.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i.i.i.i - %spec.select7.i.i.i.i.i.i.i = add nsw i32 %add.i.i.i.i.i.i.i, %result.011.i.i.i.i.i.i.i + %spec.select7.i.i.i.i.i.i.i = add nuw nsw i32 %add.i.i.i.i.i.i.i, %result.011.i.i.i.i.i.i.i %spec.select8.i.i.i.i.i.i.i = select i1 %tobool.not.i.i.i.i.i.i.i, i64 %x.addr.012.i.i.i.i.i.i.i, i64 %shr.i.i.i.i.i15.i.i %cmp.not.i.i.i.i.i.i.i = icmp eq i64 %spec.select8.i.i.i.i.i.i.i, 1 br i1 %cmp.not.i.i.i.i.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i, label %while.body.i.i.i.i.i14.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i: ; preds = %while.body.i.i.i.i.i14.i.i - %52 = sext i32 %spec.select7.i.i.i.i.i.i.i to i64 + %52 = zext nneg i32 %spec.select7.i.i.i.i.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i, %cond.true.i.i.i.i %result.0.lcssa.i.i.i.i.i.i.i = phi i64 [ 0, %cond.true.i.i.i.i ], [ %52, %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i ] - %add.i.i.i.i = add nsw i64 %result.0.lcssa.i.i.i.i.i.i.i, %inc.i.i.i.i + %add.i.i.i.i = add nuw nsw i64 %result.0.lcssa.i.i.i.i.i.i.i, %inc.i.i.i.i br label %_ZNK5boost14dynamic_bitsetImSaImEE9find_nextEm.exit.i.i.i cond.false.i.i.i.i: ; preds = %if.end.i.i.i.i @@ -2512,19 +2512,19 @@ if.end.i94.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i95.i.i: ; preds = %if.end.i94.i.i, %while.body.i.i.i.i95.i.i %x.addr.012.i.i.i.i.i.i = phi i64 [ %spec.select8.i.i.i.i.i.i, %while.body.i.i.i.i95.i.i ], [ %sub1.i.i.i.i, %if.end.i94.i.i ] %result.011.i.i.i.i.i.i = phi i32 [ %spec.select7.i.i.i.i.i.i, %while.body.i.i.i.i95.i.i ], [ 0, %if.end.i94.i.i ] - %n.addr.010.i.i.i.i.i.i = phi i32 [ %div.i.i.i.i.i.i, %while.body.i.i.i.i95.i.i ], [ 32, %if.end.i94.i.i ] + %n.addr.010.i.i.i.i.i.i = phi i32 [ %div.i1.i.i.i.i.i, %while.body.i.i.i.i95.i.i ], [ 32, %if.end.i94.i.i ] %sh_prom.i.i.i.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i.i.i to i64 %shr.i.i.i4.i.i.i = lshr i64 %x.addr.012.i.i.i.i.i.i, %sh_prom.i.i.i.i.i.i %tobool.not.i.i.i.i96.i.i = icmp eq i64 %shr.i.i.i4.i.i.i, 0 - %div.i.i.i.i.i.i = sdiv i32 %n.addr.010.i.i.i.i.i.i, 2 + %div.i1.i.i.i.i.i = lshr i32 %n.addr.010.i.i.i.i.i.i, 1 %add.i.i.i.i.i.i = select i1 %tobool.not.i.i.i.i96.i.i, i32 0, i32 %n.addr.010.i.i.i.i.i.i - %spec.select7.i.i.i.i.i.i = add nsw i32 %add.i.i.i.i.i.i, %result.011.i.i.i.i.i.i + %spec.select7.i.i.i.i.i.i = add nuw nsw i32 %add.i.i.i.i.i.i, %result.011.i.i.i.i.i.i %spec.select8.i.i.i.i.i.i = select i1 %tobool.not.i.i.i.i96.i.i, i64 %x.addr.012.i.i.i.i.i.i, i64 %shr.i.i.i4.i.i.i %cmp.not.i.i.i.i.i.i = icmp eq i64 %spec.select8.i.i.i.i.i.i, 1 br i1 %cmp.not.i.i.i.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i, label %while.body.i.i.i.i95.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i: ; preds = %while.body.i.i.i.i95.i.i - %62 = sext i32 %spec.select7.i.i.i.i.i.i to i64 + %62 = zext nneg i32 %spec.select7.i.i.i.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i, %if.end.i94.i.i @@ -2752,19 +2752,19 @@ if.end.i214.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i220.i.i: ; preds = %if.end.i214.i.i, %while.body.i.i.i.i220.i.i %x.addr.012.i.i.i.i221.i.i = phi i64 [ %spec.select8.i.i.i.i230.i.i, %while.body.i.i.i.i220.i.i ], [ %sub1.i.i218.i.i, %if.end.i214.i.i ] %result.011.i.i.i.i222.i.i = phi i32 [ %spec.select7.i.i.i.i229.i.i, %while.body.i.i.i.i220.i.i ], [ 0, %if.end.i214.i.i ] - %n.addr.010.i.i.i.i223.i.i = phi i32 [ %div.i.i.i.i227.i.i, %while.body.i.i.i.i220.i.i ], [ 32, %if.end.i214.i.i ] + %n.addr.010.i.i.i.i223.i.i = phi i32 [ %div.i1.i.i.i227.i.i, %while.body.i.i.i.i220.i.i ], [ 32, %if.end.i214.i.i ] %sh_prom.i.i.i.i224.i.i = zext nneg i32 %n.addr.010.i.i.i.i223.i.i to i64 %shr.i.i.i4.i225.i.i = lshr i64 %x.addr.012.i.i.i.i221.i.i, %sh_prom.i.i.i.i224.i.i %tobool.not.i.i.i.i226.i.i = icmp eq i64 %shr.i.i.i4.i225.i.i, 0 - %div.i.i.i.i227.i.i = sdiv i32 %n.addr.010.i.i.i.i223.i.i, 2 + %div.i1.i.i.i227.i.i = lshr i32 %n.addr.010.i.i.i.i223.i.i, 1 %add.i.i.i.i228.i.i = select i1 %tobool.not.i.i.i.i226.i.i, i32 0, i32 %n.addr.010.i.i.i.i223.i.i - %spec.select7.i.i.i.i229.i.i = add nsw i32 %add.i.i.i.i228.i.i, %result.011.i.i.i.i222.i.i + %spec.select7.i.i.i.i229.i.i = add nuw nsw i32 %add.i.i.i.i228.i.i, %result.011.i.i.i.i222.i.i %spec.select8.i.i.i.i230.i.i = select i1 %tobool.not.i.i.i.i226.i.i, i64 %x.addr.012.i.i.i.i221.i.i, i64 %shr.i.i.i4.i225.i.i %cmp.not.i.i.i.i231.i.i = icmp eq i64 %spec.select8.i.i.i.i230.i.i, 1 br i1 %cmp.not.i.i.i.i231.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i232.i.i, label %while.body.i.i.i.i220.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i232.i.i: ; preds = %while.body.i.i.i.i220.i.i - %85 = sext i32 %spec.select7.i.i.i.i229.i.i to i64 + %85 = zext nneg i32 %spec.select7.i.i.i.i229.i.i to i64 br label %call.i.i.noexc74.i.i call.i.i.noexc74.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i232.i.i, %if.end.i214.i.i @@ -2820,24 +2820,24 @@ cond.true.i.i49.i.i: ; preds = %if.end.i.i42.i.i while.body.i.i.i.i.i53.i.i: ; preds = %cond.true.i.i49.i.i, %while.body.i.i.i.i.i53.i.i %x.addr.012.i.i.i.i.i54.i.i = phi i64 [ %spec.select8.i.i.i.i.i63.i.i, %while.body.i.i.i.i.i53.i.i ], [ %sub1.i.i.i51.i.i, %cond.true.i.i49.i.i ] %result.011.i.i.i.i.i55.i.i = phi i32 [ %spec.select7.i.i.i.i.i62.i.i, %while.body.i.i.i.i.i53.i.i ], [ 0, %cond.true.i.i49.i.i ] - %n.addr.010.i.i.i.i.i56.i.i = phi i32 [ %div.i.i.i.i.i60.i.i, %while.body.i.i.i.i.i53.i.i ], [ 32, %cond.true.i.i49.i.i ] + %n.addr.010.i.i.i.i.i56.i.i = phi i32 [ %div.i1.i.i.i.i60.i.i, %while.body.i.i.i.i.i53.i.i ], [ 32, %cond.true.i.i49.i.i ] %sh_prom.i.i.i.i.i57.i.i = zext nneg i32 %n.addr.010.i.i.i.i.i56.i.i to i64 %shr.i.i.i.i.i58.i.i = lshr i64 %x.addr.012.i.i.i.i.i54.i.i, %sh_prom.i.i.i.i.i57.i.i %tobool.not.i.i.i.i.i59.i.i = icmp eq i64 %shr.i.i.i.i.i58.i.i, 0 - %div.i.i.i.i.i60.i.i = sdiv i32 %n.addr.010.i.i.i.i.i56.i.i, 2 + %div.i1.i.i.i.i60.i.i = lshr i32 %n.addr.010.i.i.i.i.i56.i.i, 1 %add.i.i.i.i.i61.i.i = select i1 %tobool.not.i.i.i.i.i59.i.i, i32 0, i32 %n.addr.010.i.i.i.i.i56.i.i - %spec.select7.i.i.i.i.i62.i.i = add nsw i32 %add.i.i.i.i.i61.i.i, %result.011.i.i.i.i.i55.i.i + %spec.select7.i.i.i.i.i62.i.i = add nuw nsw i32 %add.i.i.i.i.i61.i.i, %result.011.i.i.i.i.i55.i.i %spec.select8.i.i.i.i.i63.i.i = select i1 %tobool.not.i.i.i.i.i59.i.i, i64 %x.addr.012.i.i.i.i.i54.i.i, i64 %shr.i.i.i.i.i58.i.i %cmp.not.i.i.i.i.i64.i.i = icmp eq i64 %spec.select8.i.i.i.i.i63.i.i, 1 br i1 %cmp.not.i.i.i.i.i64.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i65.i.i, label %while.body.i.i.i.i.i53.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i65.i.i: ; preds = %while.body.i.i.i.i.i53.i.i - %89 = sext i32 %spec.select7.i.i.i.i.i62.i.i to i64 + %89 = zext nneg i32 %spec.select7.i.i.i.i.i62.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i.i66.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i.i66.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i65.i.i, %cond.true.i.i49.i.i %result.0.lcssa.i.i.i.i.i67.i.i = phi i64 [ 0, %cond.true.i.i49.i.i ], [ %89, %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i65.i.i ] - %add.i.i68.i.i = add nsw i64 %result.0.lcssa.i.i.i.i.i67.i.i, %inc.i.i43.i.i + %add.i.i68.i.i = add nuw nsw i64 %result.0.lcssa.i.i.i.i.i67.i.i, %inc.i.i43.i.i br label %_ZNK5boost14dynamic_bitsetImSaImEE9find_nextEm.exit.i69.i.i cond.false.i.i72.i.i: ; preds = %if.end.i.i42.i.i @@ -2951,19 +2951,19 @@ if.end.i133.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i139.i.i: ; preds = %if.end.i133.i.i, %while.body.i.i.i.i139.i.i %x.addr.012.i.i.i.i140.i.i = phi i64 [ %spec.select8.i.i.i.i149.i.i, %while.body.i.i.i.i139.i.i ], [ %sub1.i.i137.i.i, %if.end.i133.i.i ] %result.011.i.i.i.i141.i.i = phi i32 [ %spec.select7.i.i.i.i148.i.i, %while.body.i.i.i.i139.i.i ], [ 0, %if.end.i133.i.i ] - %n.addr.010.i.i.i.i142.i.i = phi i32 [ %div.i.i.i.i146.i.i, %while.body.i.i.i.i139.i.i ], [ 32, %if.end.i133.i.i ] + %n.addr.010.i.i.i.i142.i.i = phi i32 [ %div.i1.i.i.i146.i.i, %while.body.i.i.i.i139.i.i ], [ 32, %if.end.i133.i.i ] %sh_prom.i.i.i.i143.i.i = zext nneg i32 %n.addr.010.i.i.i.i142.i.i to i64 %shr.i.i.i4.i144.i.i = lshr i64 %x.addr.012.i.i.i.i140.i.i, %sh_prom.i.i.i.i143.i.i %tobool.not.i.i.i.i145.i.i = icmp eq i64 %shr.i.i.i4.i144.i.i, 0 - %div.i.i.i.i146.i.i = sdiv i32 %n.addr.010.i.i.i.i142.i.i, 2 + %div.i1.i.i.i146.i.i = lshr i32 %n.addr.010.i.i.i.i142.i.i, 1 %add.i.i.i.i147.i.i = select i1 %tobool.not.i.i.i.i145.i.i, i32 0, i32 %n.addr.010.i.i.i.i142.i.i - %spec.select7.i.i.i.i148.i.i = add nsw i32 %add.i.i.i.i147.i.i, %result.011.i.i.i.i141.i.i + %spec.select7.i.i.i.i148.i.i = add nuw nsw i32 %add.i.i.i.i147.i.i, %result.011.i.i.i.i141.i.i %spec.select8.i.i.i.i149.i.i = select i1 %tobool.not.i.i.i.i145.i.i, i64 %x.addr.012.i.i.i.i140.i.i, i64 %shr.i.i.i4.i144.i.i %cmp.not.i.i.i.i150.i.i = icmp eq i64 %spec.select8.i.i.i.i149.i.i, 1 br i1 %cmp.not.i.i.i.i150.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i151.i.i, label %while.body.i.i.i.i139.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i151.i.i: ; preds = %while.body.i.i.i.i139.i.i - %98 = sext i32 %spec.select7.i.i.i.i148.i.i to i64 + %98 = zext nneg i32 %spec.select7.i.i.i.i148.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i152.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i152.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i151.i.i, %if.end.i133.i.i @@ -7226,19 +7226,19 @@ if.end.i520.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i526.i: ; preds = %if.end.i520.i, %while.body.i.i.i.i526.i %x.addr.012.i.i.i.i527.i = phi i64 [ %spec.select8.i.i.i.i536.i, %while.body.i.i.i.i526.i ], [ %sub1.i.i524.i, %if.end.i520.i ] %result.011.i.i.i.i528.i = phi i32 [ %spec.select7.i.i.i.i535.i, %while.body.i.i.i.i526.i ], [ 0, %if.end.i520.i ] - %n.addr.010.i.i.i.i529.i = phi i32 [ %div.i.i.i.i533.i, %while.body.i.i.i.i526.i ], [ 32, %if.end.i520.i ] + %n.addr.010.i.i.i.i529.i = phi i32 [ %div.i1.i.i.i533.i, %while.body.i.i.i.i526.i ], [ 32, %if.end.i520.i ] %sh_prom.i.i.i.i530.i = zext nneg i32 %n.addr.010.i.i.i.i529.i to i64 %shr.i.i.i4.i531.i = lshr i64 %x.addr.012.i.i.i.i527.i, %sh_prom.i.i.i.i530.i %tobool.not.i.i.i.i532.i = icmp eq i64 %shr.i.i.i4.i531.i, 0 - %div.i.i.i.i533.i = sdiv i32 %n.addr.010.i.i.i.i529.i, 2 + %div.i1.i.i.i533.i = lshr i32 %n.addr.010.i.i.i.i529.i, 1 %add.i.i.i.i534.i = select i1 %tobool.not.i.i.i.i532.i, i32 0, i32 %n.addr.010.i.i.i.i529.i - %spec.select7.i.i.i.i535.i = add nsw i32 %add.i.i.i.i534.i, %result.011.i.i.i.i528.i + %spec.select7.i.i.i.i535.i = add nuw nsw i32 %add.i.i.i.i534.i, %result.011.i.i.i.i528.i %spec.select8.i.i.i.i536.i = select i1 %tobool.not.i.i.i.i532.i, i64 %x.addr.012.i.i.i.i527.i, i64 %shr.i.i.i4.i531.i %cmp.not.i.i.i.i537.i = icmp eq i64 %spec.select8.i.i.i.i536.i, 1 br i1 %cmp.not.i.i.i.i537.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i538.i, label %while.body.i.i.i.i526.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i538.i: ; preds = %while.body.i.i.i.i526.i - %585 = sext i32 %spec.select7.i.i.i.i535.i to i64 + %585 = zext nneg i32 %spec.select7.i.i.i.i535.i to i64 br label %for.cond10.preheader.i.i.i for.cond10.preheader.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i538.i, %if.end.i520.i @@ -7387,19 +7387,19 @@ cond.true.i.i.i.i608: ; preds = %if.end.i.i.i.i604 while.body.i.i.i.i49.i.i.i: ; preds = %cond.true.i.i.i.i608, %while.body.i.i.i.i49.i.i.i %x.addr.012.i.i.i.i.i.i.i612 = phi i64 [ %spec.select8.i.i.i.i.i.i.i620, %while.body.i.i.i.i49.i.i.i ], [ %sub1.i.i.i.i.i610, %cond.true.i.i.i.i608 ] %result.011.i.i.i.i.i.i.i613 = phi i32 [ %spec.select7.i.i.i.i.i.i.i619, %while.body.i.i.i.i49.i.i.i ], [ 0, %cond.true.i.i.i.i608 ] - %n.addr.010.i.i.i.i.i.i.i614 = phi i32 [ %div.i.i.i.i.i.i.i617, %while.body.i.i.i.i49.i.i.i ], [ 32, %cond.true.i.i.i.i608 ] + %n.addr.010.i.i.i.i.i.i.i614 = phi i32 [ %div.i1.i.i.i.i.i.i617, %while.body.i.i.i.i49.i.i.i ], [ 32, %cond.true.i.i.i.i608 ] %sh_prom.i.i.i.i.i.i.i615 = zext nneg i32 %n.addr.010.i.i.i.i.i.i.i614 to i64 %shr.i.i.i.i50.i.i.i = lshr i64 %x.addr.012.i.i.i.i.i.i.i612, %sh_prom.i.i.i.i.i.i.i615 %tobool.not.i.i.i.i.i.i.i616 = icmp eq i64 %shr.i.i.i.i50.i.i.i, 0 - %div.i.i.i.i.i.i.i617 = sdiv i32 %n.addr.010.i.i.i.i.i.i.i614, 2 + %div.i1.i.i.i.i.i.i617 = lshr i32 %n.addr.010.i.i.i.i.i.i.i614, 1 %add.i.i.i.i.i.i.i618 = select i1 %tobool.not.i.i.i.i.i.i.i616, i32 0, i32 %n.addr.010.i.i.i.i.i.i.i614 - %spec.select7.i.i.i.i.i.i.i619 = add nsw i32 %add.i.i.i.i.i.i.i618, %result.011.i.i.i.i.i.i.i613 + %spec.select7.i.i.i.i.i.i.i619 = add nuw nsw i32 %add.i.i.i.i.i.i.i618, %result.011.i.i.i.i.i.i.i613 %spec.select8.i.i.i.i.i.i.i620 = select i1 %tobool.not.i.i.i.i.i.i.i616, i64 %x.addr.012.i.i.i.i.i.i.i612, i64 %shr.i.i.i.i50.i.i.i %cmp.not.i.i.i.i.i.i278.i = icmp eq i64 %spec.select8.i.i.i.i.i.i.i620, 1 br i1 %cmp.not.i.i.i.i.i.i278.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i621, label %while.body.i.i.i.i49.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i621: ; preds = %while.body.i.i.i.i49.i.i.i - %605 = sext i32 %spec.select7.i.i.i.i.i.i.i619 to i64 + %605 = zext nneg i32 %spec.select7.i.i.i.i.i.i.i619 to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i.i.i.i622 _ZN5boost6detail10lowest_bitImEEiT_.exit.i.i.i.i622: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i.i.i621, %cond.true.i.i.i.i608 @@ -7522,19 +7522,19 @@ if.end.i488.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i489.i: ; preds = %if.end.i488.i, %while.body.i.i.i.i489.i %x.addr.012.i.i.i.i.i = phi i64 [ %spec.select8.i.i.i.i.i, %while.body.i.i.i.i489.i ], [ %sub1.i.i.i, %if.end.i488.i ] %result.011.i.i.i.i.i = phi i32 [ %spec.select7.i.i.i.i.i, %while.body.i.i.i.i489.i ], [ 0, %if.end.i488.i ] - %n.addr.010.i.i.i.i.i = phi i32 [ %div.i.i.i.i.i, %while.body.i.i.i.i489.i ], [ 32, %if.end.i488.i ] + %n.addr.010.i.i.i.i.i = phi i32 [ %div.i1.i.i.i.i, %while.body.i.i.i.i489.i ], [ 32, %if.end.i488.i ] %sh_prom.i.i.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i.i to i64 %shr.i.i.i4.i.i = lshr i64 %x.addr.012.i.i.i.i.i, %sh_prom.i.i.i.i.i %tobool.not.i.i.i.i490.i = icmp eq i64 %shr.i.i.i4.i.i, 0 - %div.i.i.i.i.i = sdiv i32 %n.addr.010.i.i.i.i.i, 2 + %div.i1.i.i.i.i = lshr i32 %n.addr.010.i.i.i.i.i, 1 %add.i.i.i.i491.i = select i1 %tobool.not.i.i.i.i490.i, i32 0, i32 %n.addr.010.i.i.i.i.i - %spec.select7.i.i.i.i.i = add nsw i32 %add.i.i.i.i491.i, %result.011.i.i.i.i.i + %spec.select7.i.i.i.i.i = add nuw nsw i32 %add.i.i.i.i491.i, %result.011.i.i.i.i.i %spec.select8.i.i.i.i.i = select i1 %tobool.not.i.i.i.i490.i, i64 %x.addr.012.i.i.i.i.i, i64 %shr.i.i.i4.i.i %cmp.not.i.i.i.i492.i = icmp eq i64 %spec.select8.i.i.i.i.i, 1 br i1 %cmp.not.i.i.i.i492.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i, label %while.body.i.i.i.i489.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i: ; preds = %while.body.i.i.i.i489.i - %615 = sext i32 %spec.select7.i.i.i.i.i to i64 + %615 = zext nneg i32 %spec.select7.i.i.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i, %if.end.i488.i @@ -7691,19 +7691,19 @@ if.end.i303.i.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i307.i.i.i: ; preds = %if.end.i303.i.i.i, %while.body.i.i.i.i307.i.i.i %x.addr.012.i.i.i.i308.i.i.i = phi i64 [ %spec.select8.i.i.i.i316.i.i.i, %while.body.i.i.i.i307.i.i.i ], [ %sub1.i.i305.i.i.i, %if.end.i303.i.i.i ] %result.011.i.i.i.i309.i.i.i = phi i32 [ %spec.select7.i.i.i.i315.i.i.i, %while.body.i.i.i.i307.i.i.i ], [ 0, %if.end.i303.i.i.i ] - %n.addr.010.i.i.i.i310.i.i.i = phi i32 [ %div.i.i.i.i313.i.i.i, %while.body.i.i.i.i307.i.i.i ], [ 32, %if.end.i303.i.i.i ] + %n.addr.010.i.i.i.i310.i.i.i = phi i32 [ %div.i1.i.i.i313.i.i.i, %while.body.i.i.i.i307.i.i.i ], [ 32, %if.end.i303.i.i.i ] %sh_prom.i.i.i.i311.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i310.i.i.i to i64 %shr.i.i.i4.i.i.i.i = lshr i64 %x.addr.012.i.i.i.i308.i.i.i, %sh_prom.i.i.i.i311.i.i.i %tobool.not.i.i.i.i312.i.i.i = icmp eq i64 %shr.i.i.i4.i.i.i.i, 0 - %div.i.i.i.i313.i.i.i = sdiv i32 %n.addr.010.i.i.i.i310.i.i.i, 2 + %div.i1.i.i.i313.i.i.i = lshr i32 %n.addr.010.i.i.i.i310.i.i.i, 1 %add.i.i.i.i314.i.i.i = select i1 %tobool.not.i.i.i.i312.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i310.i.i.i - %spec.select7.i.i.i.i315.i.i.i = add nsw i32 %add.i.i.i.i314.i.i.i, %result.011.i.i.i.i309.i.i.i + %spec.select7.i.i.i.i315.i.i.i = add nuw nsw i32 %add.i.i.i.i314.i.i.i, %result.011.i.i.i.i309.i.i.i %spec.select8.i.i.i.i316.i.i.i = select i1 %tobool.not.i.i.i.i312.i.i.i, i64 %x.addr.012.i.i.i.i308.i.i.i, i64 %shr.i.i.i4.i.i.i.i %cmp.not.i.i.i.i317.i.i.i = icmp eq i64 %spec.select8.i.i.i.i316.i.i.i, 1 br i1 %cmp.not.i.i.i.i317.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i318.i.i.i, label %while.body.i.i.i.i307.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i318.i.i.i: ; preds = %while.body.i.i.i.i307.i.i.i - %628 = sext i32 %spec.select7.i.i.i.i315.i.i.i to i64 + %628 = zext nneg i32 %spec.select7.i.i.i.i315.i.i.i to i64 br label %_ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit60.i.i.i _ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit60.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i318.i.i.i, %if.end.i303.i.i.i @@ -7800,19 +7800,19 @@ cond.true.i84.i.i.i: ; preds = %if.end.i77.i.i.i while.body.i.i.i.i88.i.i.i: ; preds = %cond.true.i84.i.i.i, %while.body.i.i.i.i88.i.i.i %x.addr.012.i.i.i.i89.i.i.i = phi i64 [ %spec.select8.i.i.i.i98.i.i.i, %while.body.i.i.i.i88.i.i.i ], [ %sub1.i.i86.i.i.i, %cond.true.i84.i.i.i ] %result.011.i.i.i.i90.i.i.i = phi i32 [ %spec.select7.i.i.i.i97.i.i.i, %while.body.i.i.i.i88.i.i.i ], [ 0, %cond.true.i84.i.i.i ] - %n.addr.010.i.i.i.i91.i.i.i = phi i32 [ %div.i.i.i.i95.i.i.i, %while.body.i.i.i.i88.i.i.i ], [ 32, %cond.true.i84.i.i.i ] + %n.addr.010.i.i.i.i91.i.i.i = phi i32 [ %div.i1.i.i.i95.i.i.i, %while.body.i.i.i.i88.i.i.i ], [ 32, %cond.true.i84.i.i.i ] %sh_prom.i.i.i.i92.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i91.i.i.i to i64 %shr.i.i.i.i93.i.i.i = lshr i64 %x.addr.012.i.i.i.i89.i.i.i, %sh_prom.i.i.i.i92.i.i.i %tobool.not.i.i.i.i94.i.i.i = icmp eq i64 %shr.i.i.i.i93.i.i.i, 0 - %div.i.i.i.i95.i.i.i = sdiv i32 %n.addr.010.i.i.i.i91.i.i.i, 2 + %div.i1.i.i.i95.i.i.i = lshr i32 %n.addr.010.i.i.i.i91.i.i.i, 1 %add.i.i.i.i96.i.i.i = select i1 %tobool.not.i.i.i.i94.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i91.i.i.i - %spec.select7.i.i.i.i97.i.i.i = add nsw i32 %add.i.i.i.i96.i.i.i, %result.011.i.i.i.i90.i.i.i + %spec.select7.i.i.i.i97.i.i.i = add nuw nsw i32 %add.i.i.i.i96.i.i.i, %result.011.i.i.i.i90.i.i.i %spec.select8.i.i.i.i98.i.i.i = select i1 %tobool.not.i.i.i.i94.i.i.i, i64 %x.addr.012.i.i.i.i89.i.i.i, i64 %shr.i.i.i.i93.i.i.i %cmp.not.i.i.i.i99.i.i.i = icmp eq i64 %spec.select8.i.i.i.i98.i.i.i, 1 br i1 %cmp.not.i.i.i.i99.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i100.i.i.i, label %while.body.i.i.i.i88.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i100.i.i.i: ; preds = %while.body.i.i.i.i88.i.i.i - %643 = sext i32 %spec.select7.i.i.i.i97.i.i.i to i64 + %643 = zext nneg i32 %spec.select7.i.i.i.i97.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i101.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i101.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i100.i.i.i, %cond.true.i84.i.i.i @@ -7935,19 +7935,19 @@ if.end.i348.i.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i354.i.i.i: ; preds = %if.end.i348.i.i.i, %while.body.i.i.i.i354.i.i.i %x.addr.012.i.i.i.i355.i.i.i = phi i64 [ %spec.select8.i.i.i.i364.i.i.i, %while.body.i.i.i.i354.i.i.i ], [ %sub1.i.i352.i.i.i, %if.end.i348.i.i.i ] %result.011.i.i.i.i356.i.i.i = phi i32 [ %spec.select7.i.i.i.i363.i.i.i, %while.body.i.i.i.i354.i.i.i ], [ 0, %if.end.i348.i.i.i ] - %n.addr.010.i.i.i.i357.i.i.i = phi i32 [ %div.i.i.i.i361.i.i.i, %while.body.i.i.i.i354.i.i.i ], [ 32, %if.end.i348.i.i.i ] + %n.addr.010.i.i.i.i357.i.i.i = phi i32 [ %div.i1.i.i.i361.i.i.i, %while.body.i.i.i.i354.i.i.i ], [ 32, %if.end.i348.i.i.i ] %sh_prom.i.i.i.i358.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i357.i.i.i to i64 %shr.i.i.i4.i359.i.i.i = lshr i64 %x.addr.012.i.i.i.i355.i.i.i, %sh_prom.i.i.i.i358.i.i.i %tobool.not.i.i.i.i360.i.i.i = icmp eq i64 %shr.i.i.i4.i359.i.i.i, 0 - %div.i.i.i.i361.i.i.i = sdiv i32 %n.addr.010.i.i.i.i357.i.i.i, 2 + %div.i1.i.i.i361.i.i.i = lshr i32 %n.addr.010.i.i.i.i357.i.i.i, 1 %add.i.i.i.i362.i.i.i = select i1 %tobool.not.i.i.i.i360.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i357.i.i.i - %spec.select7.i.i.i.i363.i.i.i = add nsw i32 %add.i.i.i.i362.i.i.i, %result.011.i.i.i.i356.i.i.i + %spec.select7.i.i.i.i363.i.i.i = add nuw nsw i32 %add.i.i.i.i362.i.i.i, %result.011.i.i.i.i356.i.i.i %spec.select8.i.i.i.i364.i.i.i = select i1 %tobool.not.i.i.i.i360.i.i.i, i64 %x.addr.012.i.i.i.i355.i.i.i, i64 %shr.i.i.i4.i359.i.i.i %cmp.not.i.i.i.i365.i.i.i = icmp eq i64 %spec.select8.i.i.i.i364.i.i.i, 1 br i1 %cmp.not.i.i.i.i365.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i366.i.i.i, label %while.body.i.i.i.i354.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i366.i.i.i: ; preds = %while.body.i.i.i.i354.i.i.i - %653 = sext i32 %spec.select7.i.i.i.i363.i.i.i to i64 + %653 = zext nneg i32 %spec.select7.i.i.i.i363.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i367.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i367.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i366.i.i.i, %if.end.i348.i.i.i @@ -8089,19 +8089,19 @@ if.end.i429.i.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i435.i.i.i: ; preds = %if.end.i429.i.i.i, %while.body.i.i.i.i435.i.i.i %x.addr.012.i.i.i.i436.i.i.i = phi i64 [ %spec.select8.i.i.i.i445.i.i.i, %while.body.i.i.i.i435.i.i.i ], [ %sub1.i.i433.i.i.i, %if.end.i429.i.i.i ] %result.011.i.i.i.i437.i.i.i = phi i32 [ %spec.select7.i.i.i.i444.i.i.i, %while.body.i.i.i.i435.i.i.i ], [ 0, %if.end.i429.i.i.i ] - %n.addr.010.i.i.i.i438.i.i.i = phi i32 [ %div.i.i.i.i442.i.i.i, %while.body.i.i.i.i435.i.i.i ], [ 32, %if.end.i429.i.i.i ] + %n.addr.010.i.i.i.i438.i.i.i = phi i32 [ %div.i1.i.i.i442.i.i.i, %while.body.i.i.i.i435.i.i.i ], [ 32, %if.end.i429.i.i.i ] %sh_prom.i.i.i.i439.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i438.i.i.i to i64 %shr.i.i.i4.i440.i.i.i = lshr i64 %x.addr.012.i.i.i.i436.i.i.i, %sh_prom.i.i.i.i439.i.i.i %tobool.not.i.i.i.i441.i.i.i = icmp eq i64 %shr.i.i.i4.i440.i.i.i, 0 - %div.i.i.i.i442.i.i.i = sdiv i32 %n.addr.010.i.i.i.i438.i.i.i, 2 + %div.i1.i.i.i442.i.i.i = lshr i32 %n.addr.010.i.i.i.i438.i.i.i, 1 %add.i.i.i.i443.i.i.i = select i1 %tobool.not.i.i.i.i441.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i438.i.i.i - %spec.select7.i.i.i.i444.i.i.i = add nsw i32 %add.i.i.i.i443.i.i.i, %result.011.i.i.i.i437.i.i.i + %spec.select7.i.i.i.i444.i.i.i = add nuw nsw i32 %add.i.i.i.i443.i.i.i, %result.011.i.i.i.i437.i.i.i %spec.select8.i.i.i.i445.i.i.i = select i1 %tobool.not.i.i.i.i441.i.i.i, i64 %x.addr.012.i.i.i.i436.i.i.i, i64 %shr.i.i.i4.i440.i.i.i %cmp.not.i.i.i.i446.i.i.i = icmp eq i64 %spec.select8.i.i.i.i445.i.i.i, 1 br i1 %cmp.not.i.i.i.i446.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i447.i.i.i, label %while.body.i.i.i.i435.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i447.i.i.i: ; preds = %while.body.i.i.i.i435.i.i.i - %667 = sext i32 %spec.select7.i.i.i.i444.i.i.i to i64 + %667 = zext nneg i32 %spec.select7.i.i.i.i444.i.i.i to i64 br label %_ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit113.i.i.i _ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit113.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i447.i.i.i, %if.end.i429.i.i.i @@ -8228,19 +8228,19 @@ cond.true.i144.i.i.i: ; preds = %if.end.i137.i.i.i while.body.i.i.i.i148.i.i.i: ; preds = %cond.true.i144.i.i.i, %while.body.i.i.i.i148.i.i.i %x.addr.012.i.i.i.i149.i.i.i = phi i64 [ %spec.select8.i.i.i.i158.i.i.i, %while.body.i.i.i.i148.i.i.i ], [ %sub1.i.i146.i.i.i, %cond.true.i144.i.i.i ] %result.011.i.i.i.i150.i.i.i = phi i32 [ %spec.select7.i.i.i.i157.i.i.i, %while.body.i.i.i.i148.i.i.i ], [ 0, %cond.true.i144.i.i.i ] - %n.addr.010.i.i.i.i151.i.i.i = phi i32 [ %div.i.i.i.i155.i.i.i, %while.body.i.i.i.i148.i.i.i ], [ 32, %cond.true.i144.i.i.i ] + %n.addr.010.i.i.i.i151.i.i.i = phi i32 [ %div.i1.i.i.i155.i.i.i, %while.body.i.i.i.i148.i.i.i ], [ 32, %cond.true.i144.i.i.i ] %sh_prom.i.i.i.i152.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i151.i.i.i to i64 %shr.i.i.i.i153.i.i.i = lshr i64 %x.addr.012.i.i.i.i149.i.i.i, %sh_prom.i.i.i.i152.i.i.i %tobool.not.i.i.i.i154.i.i.i = icmp eq i64 %shr.i.i.i.i153.i.i.i, 0 - %div.i.i.i.i155.i.i.i = sdiv i32 %n.addr.010.i.i.i.i151.i.i.i, 2 + %div.i1.i.i.i155.i.i.i = lshr i32 %n.addr.010.i.i.i.i151.i.i.i, 1 %add.i.i.i.i156.i.i.i = select i1 %tobool.not.i.i.i.i154.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i151.i.i.i - %spec.select7.i.i.i.i157.i.i.i = add nsw i32 %add.i.i.i.i156.i.i.i, %result.011.i.i.i.i150.i.i.i + %spec.select7.i.i.i.i157.i.i.i = add nuw nsw i32 %add.i.i.i.i156.i.i.i, %result.011.i.i.i.i150.i.i.i %spec.select8.i.i.i.i158.i.i.i = select i1 %tobool.not.i.i.i.i154.i.i.i, i64 %x.addr.012.i.i.i.i149.i.i.i, i64 %shr.i.i.i.i153.i.i.i %cmp.not.i.i.i.i159.i.i.i = icmp eq i64 %spec.select8.i.i.i.i158.i.i.i, 1 br i1 %cmp.not.i.i.i.i159.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i160.i.i.i, label %while.body.i.i.i.i148.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i160.i.i.i: ; preds = %while.body.i.i.i.i148.i.i.i - %682 = sext i32 %spec.select7.i.i.i.i157.i.i.i to i64 + %682 = zext nneg i32 %spec.select7.i.i.i.i157.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i161.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i161.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i160.i.i.i, %cond.true.i144.i.i.i @@ -8363,19 +8363,19 @@ if.end.i510.i.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i516.i.i.i: ; preds = %if.end.i510.i.i.i, %while.body.i.i.i.i516.i.i.i %x.addr.012.i.i.i.i517.i.i.i = phi i64 [ %spec.select8.i.i.i.i526.i.i.i, %while.body.i.i.i.i516.i.i.i ], [ %sub1.i.i514.i.i.i, %if.end.i510.i.i.i ] %result.011.i.i.i.i518.i.i.i = phi i32 [ %spec.select7.i.i.i.i525.i.i.i, %while.body.i.i.i.i516.i.i.i ], [ 0, %if.end.i510.i.i.i ] - %n.addr.010.i.i.i.i519.i.i.i = phi i32 [ %div.i.i.i.i523.i.i.i, %while.body.i.i.i.i516.i.i.i ], [ 32, %if.end.i510.i.i.i ] + %n.addr.010.i.i.i.i519.i.i.i = phi i32 [ %div.i1.i.i.i523.i.i.i, %while.body.i.i.i.i516.i.i.i ], [ 32, %if.end.i510.i.i.i ] %sh_prom.i.i.i.i520.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i519.i.i.i to i64 %shr.i.i.i4.i521.i.i.i = lshr i64 %x.addr.012.i.i.i.i517.i.i.i, %sh_prom.i.i.i.i520.i.i.i %tobool.not.i.i.i.i522.i.i.i = icmp eq i64 %shr.i.i.i4.i521.i.i.i, 0 - %div.i.i.i.i523.i.i.i = sdiv i32 %n.addr.010.i.i.i.i519.i.i.i, 2 + %div.i1.i.i.i523.i.i.i = lshr i32 %n.addr.010.i.i.i.i519.i.i.i, 1 %add.i.i.i.i524.i.i.i = select i1 %tobool.not.i.i.i.i522.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i519.i.i.i - %spec.select7.i.i.i.i525.i.i.i = add nsw i32 %add.i.i.i.i524.i.i.i, %result.011.i.i.i.i518.i.i.i + %spec.select7.i.i.i.i525.i.i.i = add nuw nsw i32 %add.i.i.i.i524.i.i.i, %result.011.i.i.i.i518.i.i.i %spec.select8.i.i.i.i526.i.i.i = select i1 %tobool.not.i.i.i.i522.i.i.i, i64 %x.addr.012.i.i.i.i517.i.i.i, i64 %shr.i.i.i4.i521.i.i.i %cmp.not.i.i.i.i527.i.i.i = icmp eq i64 %spec.select8.i.i.i.i526.i.i.i, 1 br i1 %cmp.not.i.i.i.i527.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i528.i.i.i, label %while.body.i.i.i.i516.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i528.i.i.i: ; preds = %while.body.i.i.i.i516.i.i.i - %692 = sext i32 %spec.select7.i.i.i.i525.i.i.i to i64 + %692 = zext nneg i32 %spec.select7.i.i.i.i525.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i529.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i529.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i528.i.i.i, %if.end.i510.i.i.i @@ -8613,19 +8613,19 @@ if.end.i591.i.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i597.i.i.i: ; preds = %if.end.i591.i.i.i, %while.body.i.i.i.i597.i.i.i %x.addr.012.i.i.i.i598.i.i.i = phi i64 [ %spec.select8.i.i.i.i607.i.i.i, %while.body.i.i.i.i597.i.i.i ], [ %sub1.i.i595.i.i.i, %if.end.i591.i.i.i ] %result.011.i.i.i.i599.i.i.i = phi i32 [ %spec.select7.i.i.i.i606.i.i.i, %while.body.i.i.i.i597.i.i.i ], [ 0, %if.end.i591.i.i.i ] - %n.addr.010.i.i.i.i600.i.i.i = phi i32 [ %div.i.i.i.i604.i.i.i, %while.body.i.i.i.i597.i.i.i ], [ 32, %if.end.i591.i.i.i ] + %n.addr.010.i.i.i.i600.i.i.i = phi i32 [ %div.i1.i.i.i604.i.i.i, %while.body.i.i.i.i597.i.i.i ], [ 32, %if.end.i591.i.i.i ] %sh_prom.i.i.i.i601.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i600.i.i.i to i64 %shr.i.i.i4.i602.i.i.i = lshr i64 %x.addr.012.i.i.i.i598.i.i.i, %sh_prom.i.i.i.i601.i.i.i %tobool.not.i.i.i.i603.i.i.i = icmp eq i64 %shr.i.i.i4.i602.i.i.i, 0 - %div.i.i.i.i604.i.i.i = sdiv i32 %n.addr.010.i.i.i.i600.i.i.i, 2 + %div.i1.i.i.i604.i.i.i = lshr i32 %n.addr.010.i.i.i.i600.i.i.i, 1 %add.i.i.i.i605.i.i.i = select i1 %tobool.not.i.i.i.i603.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i600.i.i.i - %spec.select7.i.i.i.i606.i.i.i = add nsw i32 %add.i.i.i.i605.i.i.i, %result.011.i.i.i.i599.i.i.i + %spec.select7.i.i.i.i606.i.i.i = add nuw nsw i32 %add.i.i.i.i605.i.i.i, %result.011.i.i.i.i599.i.i.i %spec.select8.i.i.i.i607.i.i.i = select i1 %tobool.not.i.i.i.i603.i.i.i, i64 %x.addr.012.i.i.i.i598.i.i.i, i64 %shr.i.i.i4.i602.i.i.i %cmp.not.i.i.i.i608.i.i.i = icmp eq i64 %spec.select8.i.i.i.i607.i.i.i, 1 br i1 %cmp.not.i.i.i.i608.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i609.i.i.i, label %while.body.i.i.i.i597.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i609.i.i.i: ; preds = %while.body.i.i.i.i597.i.i.i - %722 = sext i32 %spec.select7.i.i.i.i606.i.i.i to i64 + %722 = zext nneg i32 %spec.select7.i.i.i.i606.i.i.i to i64 br label %_ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit212.i.i.i _ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit212.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i609.i.i.i, %if.end.i591.i.i.i @@ -8726,19 +8726,19 @@ cond.true.i263.i.i.i: ; preds = %if.end.i256.i.i.i while.body.i.i.i.i267.i.i.i: ; preds = %cond.true.i263.i.i.i, %while.body.i.i.i.i267.i.i.i %x.addr.012.i.i.i.i268.i.i.i = phi i64 [ %spec.select8.i.i.i.i277.i.i.i, %while.body.i.i.i.i267.i.i.i ], [ %sub1.i.i265.i.i.i, %cond.true.i263.i.i.i ] %result.011.i.i.i.i269.i.i.i = phi i32 [ %spec.select7.i.i.i.i276.i.i.i, %while.body.i.i.i.i267.i.i.i ], [ 0, %cond.true.i263.i.i.i ] - %n.addr.010.i.i.i.i270.i.i.i = phi i32 [ %div.i.i.i.i274.i.i.i, %while.body.i.i.i.i267.i.i.i ], [ 32, %cond.true.i263.i.i.i ] + %n.addr.010.i.i.i.i270.i.i.i = phi i32 [ %div.i1.i.i.i274.i.i.i, %while.body.i.i.i.i267.i.i.i ], [ 32, %cond.true.i263.i.i.i ] %sh_prom.i.i.i.i271.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i270.i.i.i to i64 %shr.i.i.i.i272.i.i.i = lshr i64 %x.addr.012.i.i.i.i268.i.i.i, %sh_prom.i.i.i.i271.i.i.i %tobool.not.i.i.i.i273.i.i.i = icmp eq i64 %shr.i.i.i.i272.i.i.i, 0 - %div.i.i.i.i274.i.i.i = sdiv i32 %n.addr.010.i.i.i.i270.i.i.i, 2 + %div.i1.i.i.i274.i.i.i = lshr i32 %n.addr.010.i.i.i.i270.i.i.i, 1 %add.i.i.i.i275.i.i.i = select i1 %tobool.not.i.i.i.i273.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i270.i.i.i - %spec.select7.i.i.i.i276.i.i.i = add nsw i32 %add.i.i.i.i275.i.i.i, %result.011.i.i.i.i269.i.i.i + %spec.select7.i.i.i.i276.i.i.i = add nuw nsw i32 %add.i.i.i.i275.i.i.i, %result.011.i.i.i.i269.i.i.i %spec.select8.i.i.i.i277.i.i.i = select i1 %tobool.not.i.i.i.i273.i.i.i, i64 %x.addr.012.i.i.i.i268.i.i.i, i64 %shr.i.i.i.i272.i.i.i %cmp.not.i.i.i.i278.i.i.i = icmp eq i64 %spec.select8.i.i.i.i277.i.i.i, 1 br i1 %cmp.not.i.i.i.i278.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i279.i.i.i, label %while.body.i.i.i.i267.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i279.i.i.i: ; preds = %while.body.i.i.i.i267.i.i.i - %738 = sext i32 %spec.select7.i.i.i.i276.i.i.i to i64 + %738 = zext nneg i32 %spec.select7.i.i.i.i276.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i280.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i280.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i279.i.i.i, %cond.true.i263.i.i.i @@ -8861,19 +8861,19 @@ if.end.i672.i.i.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i678.i.i.i: ; preds = %if.end.i672.i.i.i, %while.body.i.i.i.i678.i.i.i %x.addr.012.i.i.i.i679.i.i.i = phi i64 [ %spec.select8.i.i.i.i688.i.i.i, %while.body.i.i.i.i678.i.i.i ], [ %sub1.i.i676.i.i.i, %if.end.i672.i.i.i ] %result.011.i.i.i.i680.i.i.i = phi i32 [ %spec.select7.i.i.i.i687.i.i.i, %while.body.i.i.i.i678.i.i.i ], [ 0, %if.end.i672.i.i.i ] - %n.addr.010.i.i.i.i681.i.i.i = phi i32 [ %div.i.i.i.i685.i.i.i, %while.body.i.i.i.i678.i.i.i ], [ 32, %if.end.i672.i.i.i ] + %n.addr.010.i.i.i.i681.i.i.i = phi i32 [ %div.i1.i.i.i685.i.i.i, %while.body.i.i.i.i678.i.i.i ], [ 32, %if.end.i672.i.i.i ] %sh_prom.i.i.i.i682.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i681.i.i.i to i64 %shr.i.i.i4.i683.i.i.i = lshr i64 %x.addr.012.i.i.i.i679.i.i.i, %sh_prom.i.i.i.i682.i.i.i %tobool.not.i.i.i.i684.i.i.i = icmp eq i64 %shr.i.i.i4.i683.i.i.i, 0 - %div.i.i.i.i685.i.i.i = sdiv i32 %n.addr.010.i.i.i.i681.i.i.i, 2 + %div.i1.i.i.i685.i.i.i = lshr i32 %n.addr.010.i.i.i.i681.i.i.i, 1 %add.i.i.i.i686.i.i.i = select i1 %tobool.not.i.i.i.i684.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i681.i.i.i - %spec.select7.i.i.i.i687.i.i.i = add nsw i32 %add.i.i.i.i686.i.i.i, %result.011.i.i.i.i680.i.i.i + %spec.select7.i.i.i.i687.i.i.i = add nuw nsw i32 %add.i.i.i.i686.i.i.i, %result.011.i.i.i.i680.i.i.i %spec.select8.i.i.i.i688.i.i.i = select i1 %tobool.not.i.i.i.i684.i.i.i, i64 %x.addr.012.i.i.i.i679.i.i.i, i64 %shr.i.i.i4.i683.i.i.i %cmp.not.i.i.i.i689.i.i.i = icmp eq i64 %spec.select8.i.i.i.i688.i.i.i, 1 br i1 %cmp.not.i.i.i.i689.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i690.i.i.i, label %while.body.i.i.i.i678.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i690.i.i.i: ; preds = %while.body.i.i.i.i678.i.i.i - %748 = sext i32 %spec.select7.i.i.i.i687.i.i.i to i64 + %748 = zext nneg i32 %spec.select7.i.i.i.i687.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i691.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i691.i.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i690.i.i.i, %if.end.i672.i.i.i @@ -11375,19 +11375,19 @@ if.end: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i: ; preds = %if.end, %while.body.i.i.i %x.addr.012.i.i.i = phi i64 [ %spec.select8.i.i.i, %while.body.i.i.i ], [ %sub1.i, %if.end ] %result.011.i.i.i = phi i32 [ %spec.select7.i.i.i, %while.body.i.i.i ], [ 0, %if.end ] - %n.addr.010.i.i.i = phi i32 [ %div.i.i.i, %while.body.i.i.i ], [ 32, %if.end ] + %n.addr.010.i.i.i = phi i32 [ %div.i1.i.i, %while.body.i.i.i ], [ 32, %if.end ] %sh_prom.i.i.i = zext nneg i32 %n.addr.010.i.i.i to i64 %shr.i.i.i4 = lshr i64 %x.addr.012.i.i.i, %sh_prom.i.i.i %tobool.not.i.i.i = icmp eq i64 %shr.i.i.i4, 0 - %div.i.i.i = sdiv i32 %n.addr.010.i.i.i, 2 + %div.i1.i.i = lshr i32 %n.addr.010.i.i.i, 1 %add.i.i.i = select i1 %tobool.not.i.i.i, i32 0, i32 %n.addr.010.i.i.i - %spec.select7.i.i.i = add nsw i32 %add.i.i.i, %result.011.i.i.i + %spec.select7.i.i.i = add nuw nsw i32 %add.i.i.i, %result.011.i.i.i %spec.select8.i.i.i = select i1 %tobool.not.i.i.i, i64 %x.addr.012.i.i.i, i64 %shr.i.i.i4 %cmp.not.i.i.i = icmp eq i64 %spec.select8.i.i.i, 1 br i1 %cmp.not.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit, label %while.body.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit: ; preds = %while.body.i.i.i - %10 = sext i32 %spec.select7.i.i.i to i64 + %10 = zext nneg i32 %spec.select7.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit _ZN5boost6detail10lowest_bitImEEiT_.exit: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit, %if.end @@ -17519,19 +17519,19 @@ if.end.i13: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i17: ; preds = %if.end.i13, %while.body.i.i.i.i17 %x.addr.012.i.i.i.i18 = phi i64 [ %spec.select8.i.i.i.i26, %while.body.i.i.i.i17 ], [ %sub1.i.i15, %if.end.i13 ] %result.011.i.i.i.i19 = phi i32 [ %spec.select7.i.i.i.i25, %while.body.i.i.i.i17 ], [ 0, %if.end.i13 ] - %n.addr.010.i.i.i.i20 = phi i32 [ %div.i.i.i.i23, %while.body.i.i.i.i17 ], [ 32, %if.end.i13 ] + %n.addr.010.i.i.i.i20 = phi i32 [ %div.i1.i.i.i23, %while.body.i.i.i.i17 ], [ 32, %if.end.i13 ] %sh_prom.i.i.i.i21 = zext nneg i32 %n.addr.010.i.i.i.i20 to i64 %shr.i.i.i4.i = lshr i64 %x.addr.012.i.i.i.i18, %sh_prom.i.i.i.i21 %tobool.not.i.i.i.i22 = icmp eq i64 %shr.i.i.i4.i, 0 - %div.i.i.i.i23 = sdiv i32 %n.addr.010.i.i.i.i20, 2 + %div.i1.i.i.i23 = lshr i32 %n.addr.010.i.i.i.i20, 1 %add.i.i.i.i24 = select i1 %tobool.not.i.i.i.i22, i32 0, i32 %n.addr.010.i.i.i.i20 - %spec.select7.i.i.i.i25 = add nsw i32 %add.i.i.i.i24, %result.011.i.i.i.i19 + %spec.select7.i.i.i.i25 = add nuw nsw i32 %add.i.i.i.i24, %result.011.i.i.i.i19 %spec.select8.i.i.i.i26 = select i1 %tobool.not.i.i.i.i22, i64 %x.addr.012.i.i.i.i18, i64 %shr.i.i.i4.i %cmp.not.i.i.i.i27 = icmp eq i64 %spec.select8.i.i.i.i26, 1 br i1 %cmp.not.i.i.i.i27, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i28, label %while.body.i.i.i.i17 _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i28: ; preds = %while.body.i.i.i.i17 - %11 = sext i32 %spec.select7.i.i.i.i25 to i64 + %11 = zext nneg i32 %spec.select7.i.i.i.i25 to i64 br label %_ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit _ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit: ; preds = %if.end.i13, %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i28 @@ -17791,19 +17791,19 @@ cond.true.i: ; preds = %if.end.i while.body.i.i.i.i: ; preds = %cond.true.i, %while.body.i.i.i.i %x.addr.012.i.i.i.i = phi i64 [ %spec.select8.i.i.i.i, %while.body.i.i.i.i ], [ %sub1.i.i, %cond.true.i ] %result.011.i.i.i.i = phi i32 [ %spec.select7.i.i.i.i, %while.body.i.i.i.i ], [ 0, %cond.true.i ] - %n.addr.010.i.i.i.i = phi i32 [ %div.i.i.i.i, %while.body.i.i.i.i ], [ 32, %cond.true.i ] + %n.addr.010.i.i.i.i = phi i32 [ %div.i1.i.i.i, %while.body.i.i.i.i ], [ 32, %cond.true.i ] %sh_prom.i.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i to i64 %shr.i.i.i.i = lshr i64 %x.addr.012.i.i.i.i, %sh_prom.i.i.i.i %tobool.not.i.i.i.i = icmp eq i64 %shr.i.i.i.i, 0 - %div.i.i.i.i = sdiv i32 %n.addr.010.i.i.i.i, 2 + %div.i1.i.i.i = lshr i32 %n.addr.010.i.i.i.i, 1 %add.i.i.i.i = select i1 %tobool.not.i.i.i.i, i32 0, i32 %n.addr.010.i.i.i.i - %spec.select7.i.i.i.i = add nsw i32 %add.i.i.i.i, %result.011.i.i.i.i + %spec.select7.i.i.i.i = add nuw nsw i32 %add.i.i.i.i, %result.011.i.i.i.i %spec.select8.i.i.i.i = select i1 %tobool.not.i.i.i.i, i64 %x.addr.012.i.i.i.i, i64 %shr.i.i.i.i %cmp.not.i.i.i.i = icmp eq i64 %spec.select8.i.i.i.i, 1 br i1 %cmp.not.i.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i, label %while.body.i.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i: ; preds = %while.body.i.i.i.i - %42 = sext i32 %spec.select7.i.i.i.i to i64 + %42 = zext nneg i32 %spec.select7.i.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i, %cond.true.i @@ -17926,19 +17926,19 @@ if.end.i61: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i67: ; preds = %if.end.i61, %while.body.i.i.i.i67 %x.addr.012.i.i.i.i68 = phi i64 [ %spec.select8.i.i.i.i77, %while.body.i.i.i.i67 ], [ %sub1.i.i65, %if.end.i61 ] %result.011.i.i.i.i69 = phi i32 [ %spec.select7.i.i.i.i76, %while.body.i.i.i.i67 ], [ 0, %if.end.i61 ] - %n.addr.010.i.i.i.i70 = phi i32 [ %div.i.i.i.i74, %while.body.i.i.i.i67 ], [ 32, %if.end.i61 ] + %n.addr.010.i.i.i.i70 = phi i32 [ %div.i1.i.i.i74, %while.body.i.i.i.i67 ], [ 32, %if.end.i61 ] %sh_prom.i.i.i.i71 = zext nneg i32 %n.addr.010.i.i.i.i70 to i64 %shr.i.i.i4.i72 = lshr i64 %x.addr.012.i.i.i.i68, %sh_prom.i.i.i.i71 %tobool.not.i.i.i.i73 = icmp eq i64 %shr.i.i.i4.i72, 0 - %div.i.i.i.i74 = sdiv i32 %n.addr.010.i.i.i.i70, 2 + %div.i1.i.i.i74 = lshr i32 %n.addr.010.i.i.i.i70, 1 %add.i.i.i.i75 = select i1 %tobool.not.i.i.i.i73, i32 0, i32 %n.addr.010.i.i.i.i70 - %spec.select7.i.i.i.i76 = add nsw i32 %add.i.i.i.i75, %result.011.i.i.i.i69 + %spec.select7.i.i.i.i76 = add nuw nsw i32 %add.i.i.i.i75, %result.011.i.i.i.i69 %spec.select8.i.i.i.i77 = select i1 %tobool.not.i.i.i.i73, i64 %x.addr.012.i.i.i.i68, i64 %shr.i.i.i4.i72 %cmp.not.i.i.i.i78 = icmp eq i64 %spec.select8.i.i.i.i77, 1 br i1 %cmp.not.i.i.i.i78, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i79, label %while.body.i.i.i.i67 _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i79: ; preds = %while.body.i.i.i.i67 - %52 = sext i32 %spec.select7.i.i.i.i76 to i64 + %52 = zext nneg i32 %spec.select7.i.i.i.i76 to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i80 _ZN5boost6detail10lowest_bitImEEiT_.exit.i80: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i79, %if.end.i61 diff --git a/bench/hyperscan/optimized/ng_squash.cpp.ll b/bench/hyperscan/optimized/ng_squash.cpp.ll index 8e9d1362623..16e8ab872b2 100644 --- a/bench/hyperscan/optimized/ng_squash.cpp.ll +++ b/bench/hyperscan/optimized/ng_squash.cpp.ll @@ -1046,19 +1046,19 @@ if.end.i954: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i958: ; preds = %if.end.i954, %while.body.i.i.i.i958 %x.addr.012.i.i.i.i959 = phi i64 [ %spec.select8.i.i.i.i967, %while.body.i.i.i.i958 ], [ %sub1.i.i956, %if.end.i954 ] %result.011.i.i.i.i960 = phi i32 [ %spec.select7.i.i.i.i966, %while.body.i.i.i.i958 ], [ 0, %if.end.i954 ] - %n.addr.010.i.i.i.i961 = phi i32 [ %div.i.i.i.i964, %while.body.i.i.i.i958 ], [ 32, %if.end.i954 ] + %n.addr.010.i.i.i.i961 = phi i32 [ %div.i1.i.i.i964, %while.body.i.i.i.i958 ], [ 32, %if.end.i954 ] %sh_prom.i.i.i.i962 = zext nneg i32 %n.addr.010.i.i.i.i961 to i64 %shr.i.i.i4.i = lshr i64 %x.addr.012.i.i.i.i959, %sh_prom.i.i.i.i962 %tobool.not.i.i.i.i963 = icmp eq i64 %shr.i.i.i4.i, 0 - %div.i.i.i.i964 = sdiv i32 %n.addr.010.i.i.i.i961, 2 + %div.i1.i.i.i964 = lshr i32 %n.addr.010.i.i.i.i961, 1 %add.i.i.i.i965 = select i1 %tobool.not.i.i.i.i963, i32 0, i32 %n.addr.010.i.i.i.i961 - %spec.select7.i.i.i.i966 = add nsw i32 %add.i.i.i.i965, %result.011.i.i.i.i960 + %spec.select7.i.i.i.i966 = add nuw nsw i32 %add.i.i.i.i965, %result.011.i.i.i.i960 %spec.select8.i.i.i.i967 = select i1 %tobool.not.i.i.i.i963, i64 %x.addr.012.i.i.i.i959, i64 %shr.i.i.i4.i %cmp.not.i.i.i.i968 = icmp eq i64 %spec.select8.i.i.i.i967, 1 br i1 %cmp.not.i.i.i.i968, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i969, label %while.body.i.i.i.i958 _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i969: ; preds = %while.body.i.i.i.i958 - %76 = sext i32 %spec.select7.i.i.i.i966 to i64 + %76 = zext nneg i32 %spec.select7.i.i.i.i966 to i64 br label %_ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit _ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit: ; preds = %if.end.i954, %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i969 @@ -1277,19 +1277,19 @@ cond.true.i: ; preds = %if.end.i283 while.body.i.i.i.i287: ; preds = %cond.true.i, %while.body.i.i.i.i287 %x.addr.012.i.i.i.i = phi i64 [ %spec.select8.i.i.i.i, %while.body.i.i.i.i287 ], [ %sub1.i.i, %cond.true.i ] %result.011.i.i.i.i = phi i32 [ %spec.select7.i.i.i.i, %while.body.i.i.i.i287 ], [ 0, %cond.true.i ] - %n.addr.010.i.i.i.i = phi i32 [ %div.i.i.i.i, %while.body.i.i.i.i287 ], [ 32, %cond.true.i ] + %n.addr.010.i.i.i.i = phi i32 [ %div.i1.i.i.i, %while.body.i.i.i.i287 ], [ 32, %cond.true.i ] %sh_prom.i.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i to i64 %shr.i.i.i.i = lshr i64 %x.addr.012.i.i.i.i, %sh_prom.i.i.i.i %tobool.not.i.i.i.i288 = icmp eq i64 %shr.i.i.i.i, 0 - %div.i.i.i.i = sdiv i32 %n.addr.010.i.i.i.i, 2 + %div.i1.i.i.i = lshr i32 %n.addr.010.i.i.i.i, 1 %add.i.i.i.i = select i1 %tobool.not.i.i.i.i288, i32 0, i32 %n.addr.010.i.i.i.i - %spec.select7.i.i.i.i = add nsw i32 %add.i.i.i.i, %result.011.i.i.i.i + %spec.select7.i.i.i.i = add nuw nsw i32 %add.i.i.i.i, %result.011.i.i.i.i %spec.select8.i.i.i.i = select i1 %tobool.not.i.i.i.i288, i64 %x.addr.012.i.i.i.i, i64 %shr.i.i.i.i %cmp.not.i.i.i.i289 = icmp eq i64 %spec.select8.i.i.i.i, 1 br i1 %cmp.not.i.i.i.i289, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i, label %while.body.i.i.i.i287 _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i: ; preds = %while.body.i.i.i.i287 - %91 = sext i32 %spec.select7.i.i.i.i to i64 + %91 = zext nneg i32 %spec.select7.i.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i, %cond.true.i @@ -1409,19 +1409,19 @@ if.end.i1091: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i1097: ; preds = %if.end.i1091, %while.body.i.i.i.i1097 %x.addr.012.i.i.i.i1098 = phi i64 [ %spec.select8.i.i.i.i1107, %while.body.i.i.i.i1097 ], [ %sub1.i.i1095, %if.end.i1091 ] %result.011.i.i.i.i1099 = phi i32 [ %spec.select7.i.i.i.i1106, %while.body.i.i.i.i1097 ], [ 0, %if.end.i1091 ] - %n.addr.010.i.i.i.i1100 = phi i32 [ %div.i.i.i.i1104, %while.body.i.i.i.i1097 ], [ 32, %if.end.i1091 ] + %n.addr.010.i.i.i.i1100 = phi i32 [ %div.i1.i.i.i1104, %while.body.i.i.i.i1097 ], [ 32, %if.end.i1091 ] %sh_prom.i.i.i.i1101 = zext nneg i32 %n.addr.010.i.i.i.i1100 to i64 %shr.i.i.i4.i1102 = lshr i64 %x.addr.012.i.i.i.i1098, %sh_prom.i.i.i.i1101 %tobool.not.i.i.i.i1103 = icmp eq i64 %shr.i.i.i4.i1102, 0 - %div.i.i.i.i1104 = sdiv i32 %n.addr.010.i.i.i.i1100, 2 + %div.i1.i.i.i1104 = lshr i32 %n.addr.010.i.i.i.i1100, 1 %add.i.i.i.i1105 = select i1 %tobool.not.i.i.i.i1103, i32 0, i32 %n.addr.010.i.i.i.i1100 - %spec.select7.i.i.i.i1106 = add nsw i32 %add.i.i.i.i1105, %result.011.i.i.i.i1099 + %spec.select7.i.i.i.i1106 = add nuw nsw i32 %add.i.i.i.i1105, %result.011.i.i.i.i1099 %spec.select8.i.i.i.i1107 = select i1 %tobool.not.i.i.i.i1103, i64 %x.addr.012.i.i.i.i1098, i64 %shr.i.i.i4.i1102 %cmp.not.i.i.i.i1108 = icmp eq i64 %spec.select8.i.i.i.i1107, 1 br i1 %cmp.not.i.i.i.i1108, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i1109, label %while.body.i.i.i.i1097 _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i1109: ; preds = %while.body.i.i.i.i1097 - %100 = sext i32 %spec.select7.i.i.i.i1106 to i64 + %100 = zext nneg i32 %spec.select7.i.i.i.i1106 to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i1110 _ZN5boost6detail10lowest_bitImEEiT_.exit.i1110: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i1109, %if.end.i1091 @@ -1559,19 +1559,19 @@ if.end.i1172: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i1178: ; preds = %if.end.i1172, %while.body.i.i.i.i1178 %x.addr.012.i.i.i.i1179 = phi i64 [ %spec.select8.i.i.i.i1188, %while.body.i.i.i.i1178 ], [ %sub1.i.i1176, %if.end.i1172 ] %result.011.i.i.i.i1180 = phi i32 [ %spec.select7.i.i.i.i1187, %while.body.i.i.i.i1178 ], [ 0, %if.end.i1172 ] - %n.addr.010.i.i.i.i1181 = phi i32 [ %div.i.i.i.i1185, %while.body.i.i.i.i1178 ], [ 32, %if.end.i1172 ] + %n.addr.010.i.i.i.i1181 = phi i32 [ %div.i1.i.i.i1185, %while.body.i.i.i.i1178 ], [ 32, %if.end.i1172 ] %sh_prom.i.i.i.i1182 = zext nneg i32 %n.addr.010.i.i.i.i1181 to i64 %shr.i.i.i4.i1183 = lshr i64 %x.addr.012.i.i.i.i1179, %sh_prom.i.i.i.i1182 %tobool.not.i.i.i.i1184 = icmp eq i64 %shr.i.i.i4.i1183, 0 - %div.i.i.i.i1185 = sdiv i32 %n.addr.010.i.i.i.i1181, 2 + %div.i1.i.i.i1185 = lshr i32 %n.addr.010.i.i.i.i1181, 1 %add.i.i.i.i1186 = select i1 %tobool.not.i.i.i.i1184, i32 0, i32 %n.addr.010.i.i.i.i1181 - %spec.select7.i.i.i.i1187 = add nsw i32 %add.i.i.i.i1186, %result.011.i.i.i.i1180 + %spec.select7.i.i.i.i1187 = add nuw nsw i32 %add.i.i.i.i1186, %result.011.i.i.i.i1180 %spec.select8.i.i.i.i1188 = select i1 %tobool.not.i.i.i.i1184, i64 %x.addr.012.i.i.i.i1179, i64 %shr.i.i.i4.i1183 %cmp.not.i.i.i.i1189 = icmp eq i64 %spec.select8.i.i.i.i1188, 1 br i1 %cmp.not.i.i.i.i1189, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i1190, label %while.body.i.i.i.i1178 _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i1190: ; preds = %while.body.i.i.i.i1178 - %110 = sext i32 %spec.select7.i.i.i.i1187 to i64 + %110 = zext nneg i32 %spec.select7.i.i.i.i1187 to i64 br label %_ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit296 _ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit296: ; preds = %if.end.i1172, %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i1190 @@ -2088,19 +2088,19 @@ cond.true.i480: ; preds = %if.end.i473 while.body.i.i.i.i484: ; preds = %cond.true.i480, %while.body.i.i.i.i484 %x.addr.012.i.i.i.i485 = phi i64 [ %spec.select8.i.i.i.i494, %while.body.i.i.i.i484 ], [ %sub1.i.i482, %cond.true.i480 ] %result.011.i.i.i.i486 = phi i32 [ %spec.select7.i.i.i.i493, %while.body.i.i.i.i484 ], [ 0, %cond.true.i480 ] - %n.addr.010.i.i.i.i487 = phi i32 [ %div.i.i.i.i491, %while.body.i.i.i.i484 ], [ 32, %cond.true.i480 ] + %n.addr.010.i.i.i.i487 = phi i32 [ %div.i1.i.i.i491, %while.body.i.i.i.i484 ], [ 32, %cond.true.i480 ] %sh_prom.i.i.i.i488 = zext nneg i32 %n.addr.010.i.i.i.i487 to i64 %shr.i.i.i.i489 = lshr i64 %x.addr.012.i.i.i.i485, %sh_prom.i.i.i.i488 %tobool.not.i.i.i.i490 = icmp eq i64 %shr.i.i.i.i489, 0 - %div.i.i.i.i491 = sdiv i32 %n.addr.010.i.i.i.i487, 2 + %div.i1.i.i.i491 = lshr i32 %n.addr.010.i.i.i.i487, 1 %add.i.i.i.i492 = select i1 %tobool.not.i.i.i.i490, i32 0, i32 %n.addr.010.i.i.i.i487 - %spec.select7.i.i.i.i493 = add nsw i32 %add.i.i.i.i492, %result.011.i.i.i.i486 + %spec.select7.i.i.i.i493 = add nuw nsw i32 %add.i.i.i.i492, %result.011.i.i.i.i486 %spec.select8.i.i.i.i494 = select i1 %tobool.not.i.i.i.i490, i64 %x.addr.012.i.i.i.i485, i64 %shr.i.i.i.i489 %cmp.not.i.i.i.i495 = icmp eq i64 %spec.select8.i.i.i.i494, 1 br i1 %cmp.not.i.i.i.i495, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i496, label %while.body.i.i.i.i484 _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i496: ; preds = %while.body.i.i.i.i484 - %162 = sext i32 %spec.select7.i.i.i.i493 to i64 + %162 = zext nneg i32 %spec.select7.i.i.i.i493 to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i497 _ZN5boost6detail10lowest_bitImEEiT_.exit.i497: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i496, %cond.true.i480 @@ -2220,19 +2220,19 @@ if.end.i1345: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i1351: ; preds = %if.end.i1345, %while.body.i.i.i.i1351 %x.addr.012.i.i.i.i1352 = phi i64 [ %spec.select8.i.i.i.i1361, %while.body.i.i.i.i1351 ], [ %sub1.i.i1349, %if.end.i1345 ] %result.011.i.i.i.i1353 = phi i32 [ %spec.select7.i.i.i.i1360, %while.body.i.i.i.i1351 ], [ 0, %if.end.i1345 ] - %n.addr.010.i.i.i.i1354 = phi i32 [ %div.i.i.i.i1358, %while.body.i.i.i.i1351 ], [ 32, %if.end.i1345 ] + %n.addr.010.i.i.i.i1354 = phi i32 [ %div.i1.i.i.i1358, %while.body.i.i.i.i1351 ], [ 32, %if.end.i1345 ] %sh_prom.i.i.i.i1355 = zext nneg i32 %n.addr.010.i.i.i.i1354 to i64 %shr.i.i.i4.i1356 = lshr i64 %x.addr.012.i.i.i.i1352, %sh_prom.i.i.i.i1355 %tobool.not.i.i.i.i1357 = icmp eq i64 %shr.i.i.i4.i1356, 0 - %div.i.i.i.i1358 = sdiv i32 %n.addr.010.i.i.i.i1354, 2 + %div.i1.i.i.i1358 = lshr i32 %n.addr.010.i.i.i.i1354, 1 %add.i.i.i.i1359 = select i1 %tobool.not.i.i.i.i1357, i32 0, i32 %n.addr.010.i.i.i.i1354 - %spec.select7.i.i.i.i1360 = add nsw i32 %add.i.i.i.i1359, %result.011.i.i.i.i1353 + %spec.select7.i.i.i.i1360 = add nuw nsw i32 %add.i.i.i.i1359, %result.011.i.i.i.i1353 %spec.select8.i.i.i.i1361 = select i1 %tobool.not.i.i.i.i1357, i64 %x.addr.012.i.i.i.i1352, i64 %shr.i.i.i4.i1356 %cmp.not.i.i.i.i1362 = icmp eq i64 %spec.select8.i.i.i.i1361, 1 br i1 %cmp.not.i.i.i.i1362, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i1363, label %while.body.i.i.i.i1351 _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i1363: ; preds = %while.body.i.i.i.i1351 - %171 = sext i32 %spec.select7.i.i.i.i1360 to i64 + %171 = zext nneg i32 %spec.select7.i.i.i.i1360 to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i1364 _ZN5boost6detail10lowest_bitImEEiT_.exit.i1364: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i1363, %if.end.i1345 @@ -3000,19 +3000,19 @@ if.end.i62.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i66.i: ; preds = %if.end.i62.i, %while.body.i.i.i.i66.i %x.addr.012.i.i.i.i67.i = phi i64 [ %spec.select8.i.i.i.i75.i, %while.body.i.i.i.i66.i ], [ %sub1.i.i64.i, %if.end.i62.i ] %result.011.i.i.i.i68.i = phi i32 [ %spec.select7.i.i.i.i74.i, %while.body.i.i.i.i66.i ], [ 0, %if.end.i62.i ] - %n.addr.010.i.i.i.i69.i = phi i32 [ %div.i.i.i.i72.i, %while.body.i.i.i.i66.i ], [ 32, %if.end.i62.i ] + %n.addr.010.i.i.i.i69.i = phi i32 [ %div.i1.i.i.i72.i, %while.body.i.i.i.i66.i ], [ 32, %if.end.i62.i ] %sh_prom.i.i.i.i70.i = zext nneg i32 %n.addr.010.i.i.i.i69.i to i64 %shr.i.i.i4.i.i = lshr i64 %x.addr.012.i.i.i.i67.i, %sh_prom.i.i.i.i70.i %tobool.not.i.i.i.i71.i = icmp eq i64 %shr.i.i.i4.i.i, 0 - %div.i.i.i.i72.i = sdiv i32 %n.addr.010.i.i.i.i69.i, 2 + %div.i1.i.i.i72.i = lshr i32 %n.addr.010.i.i.i.i69.i, 1 %add.i.i.i.i73.i = select i1 %tobool.not.i.i.i.i71.i, i32 0, i32 %n.addr.010.i.i.i.i69.i - %spec.select7.i.i.i.i74.i = add nsw i32 %add.i.i.i.i73.i, %result.011.i.i.i.i68.i + %spec.select7.i.i.i.i74.i = add nuw nsw i32 %add.i.i.i.i73.i, %result.011.i.i.i.i68.i %spec.select8.i.i.i.i75.i = select i1 %tobool.not.i.i.i.i71.i, i64 %x.addr.012.i.i.i.i67.i, i64 %shr.i.i.i4.i.i %cmp.not.i.i.i.i76.i = icmp eq i64 %spec.select8.i.i.i.i75.i, 1 br i1 %cmp.not.i.i.i.i76.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i77.i, label %while.body.i.i.i.i66.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i77.i: ; preds = %while.body.i.i.i.i66.i - %246 = sext i32 %spec.select7.i.i.i.i74.i to i64 + %246 = zext nneg i32 %spec.select7.i.i.i.i74.i to i64 br label %_ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit.i _ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i77.i, %if.end.i62.i @@ -3141,19 +3141,19 @@ cond.true.i.i: ; preds = %if.end.i.i while.body.i.i.i.i.i721: ; preds = %cond.true.i.i, %while.body.i.i.i.i.i721 %x.addr.012.i.i.i.i.i = phi i64 [ %spec.select8.i.i.i.i.i, %while.body.i.i.i.i.i721 ], [ %sub1.i.i.i, %cond.true.i.i ] %result.011.i.i.i.i.i = phi i32 [ %spec.select7.i.i.i.i.i, %while.body.i.i.i.i.i721 ], [ 0, %cond.true.i.i ] - %n.addr.010.i.i.i.i.i = phi i32 [ %div.i.i.i.i.i, %while.body.i.i.i.i.i721 ], [ 32, %cond.true.i.i ] + %n.addr.010.i.i.i.i.i = phi i32 [ %div.i1.i.i.i.i, %while.body.i.i.i.i.i721 ], [ 32, %cond.true.i.i ] %sh_prom.i.i.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i.i to i64 %shr.i.i.i.i.i = lshr i64 %x.addr.012.i.i.i.i.i, %sh_prom.i.i.i.i.i %tobool.not.i.i.i.i32.i = icmp eq i64 %shr.i.i.i.i.i, 0 - %div.i.i.i.i.i = sdiv i32 %n.addr.010.i.i.i.i.i, 2 + %div.i1.i.i.i.i = lshr i32 %n.addr.010.i.i.i.i.i, 1 %add.i.i.i.i.i = select i1 %tobool.not.i.i.i.i32.i, i32 0, i32 %n.addr.010.i.i.i.i.i - %spec.select7.i.i.i.i.i = add nsw i32 %add.i.i.i.i.i, %result.011.i.i.i.i.i + %spec.select7.i.i.i.i.i = add nuw nsw i32 %add.i.i.i.i.i, %result.011.i.i.i.i.i %spec.select8.i.i.i.i.i = select i1 %tobool.not.i.i.i.i32.i, i64 %x.addr.012.i.i.i.i.i, i64 %shr.i.i.i.i.i %cmp.not.i.i.i.i33.i = icmp eq i64 %spec.select8.i.i.i.i.i, 1 br i1 %cmp.not.i.i.i.i33.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i, label %while.body.i.i.i.i.i721 _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i: ; preds = %while.body.i.i.i.i.i721 - %263 = sext i32 %spec.select7.i.i.i.i.i to i64 + %263 = zext nneg i32 %spec.select7.i.i.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i.i, %cond.true.i.i @@ -3273,19 +3273,19 @@ if.end.i108.i: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i114.i: ; preds = %if.end.i108.i, %while.body.i.i.i.i114.i %x.addr.012.i.i.i.i115.i = phi i64 [ %spec.select8.i.i.i.i124.i, %while.body.i.i.i.i114.i ], [ %sub1.i.i112.i, %if.end.i108.i ] %result.011.i.i.i.i116.i = phi i32 [ %spec.select7.i.i.i.i123.i, %while.body.i.i.i.i114.i ], [ 0, %if.end.i108.i ] - %n.addr.010.i.i.i.i117.i = phi i32 [ %div.i.i.i.i121.i, %while.body.i.i.i.i114.i ], [ 32, %if.end.i108.i ] + %n.addr.010.i.i.i.i117.i = phi i32 [ %div.i1.i.i.i121.i, %while.body.i.i.i.i114.i ], [ 32, %if.end.i108.i ] %sh_prom.i.i.i.i118.i = zext nneg i32 %n.addr.010.i.i.i.i117.i to i64 %shr.i.i.i4.i119.i = lshr i64 %x.addr.012.i.i.i.i115.i, %sh_prom.i.i.i.i118.i %tobool.not.i.i.i.i120.i = icmp eq i64 %shr.i.i.i4.i119.i, 0 - %div.i.i.i.i121.i = sdiv i32 %n.addr.010.i.i.i.i117.i, 2 + %div.i1.i.i.i121.i = lshr i32 %n.addr.010.i.i.i.i117.i, 1 %add.i.i.i.i122.i = select i1 %tobool.not.i.i.i.i120.i, i32 0, i32 %n.addr.010.i.i.i.i117.i - %spec.select7.i.i.i.i123.i = add nsw i32 %add.i.i.i.i122.i, %result.011.i.i.i.i116.i + %spec.select7.i.i.i.i123.i = add nuw nsw i32 %add.i.i.i.i122.i, %result.011.i.i.i.i116.i %spec.select8.i.i.i.i124.i = select i1 %tobool.not.i.i.i.i120.i, i64 %x.addr.012.i.i.i.i115.i, i64 %shr.i.i.i4.i119.i %cmp.not.i.i.i.i125.i = icmp eq i64 %spec.select8.i.i.i.i124.i, 1 br i1 %cmp.not.i.i.i.i125.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i126.i, label %while.body.i.i.i.i114.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i126.i: ; preds = %while.body.i.i.i.i114.i - %272 = sext i32 %spec.select7.i.i.i.i123.i to i64 + %272 = zext nneg i32 %spec.select7.i.i.i.i123.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i127.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i127.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i126.i, %if.end.i108.i @@ -4142,19 +4142,19 @@ cond.true.i: ; preds = %if.end.i while.body.i.i.i.i: ; preds = %cond.true.i, %while.body.i.i.i.i %x.addr.012.i.i.i.i = phi i64 [ %spec.select8.i.i.i.i, %while.body.i.i.i.i ], [ %sub1.i.i, %cond.true.i ] %result.011.i.i.i.i = phi i32 [ %spec.select7.i.i.i.i, %while.body.i.i.i.i ], [ 0, %cond.true.i ] - %n.addr.010.i.i.i.i = phi i32 [ %div.i.i.i.i, %while.body.i.i.i.i ], [ 32, %cond.true.i ] + %n.addr.010.i.i.i.i = phi i32 [ %div.i1.i.i.i, %while.body.i.i.i.i ], [ 32, %cond.true.i ] %sh_prom.i.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i to i64 %shr.i.i.i.i = lshr i64 %x.addr.012.i.i.i.i, %sh_prom.i.i.i.i %tobool.not.i.i.i.i118 = icmp eq i64 %shr.i.i.i.i, 0 - %div.i.i.i.i = sdiv i32 %n.addr.010.i.i.i.i, 2 + %div.i1.i.i.i = lshr i32 %n.addr.010.i.i.i.i, 1 %add.i.i.i.i = select i1 %tobool.not.i.i.i.i118, i32 0, i32 %n.addr.010.i.i.i.i - %spec.select7.i.i.i.i = add nsw i32 %add.i.i.i.i, %result.011.i.i.i.i + %spec.select7.i.i.i.i = add nuw nsw i32 %add.i.i.i.i, %result.011.i.i.i.i %spec.select8.i.i.i.i = select i1 %tobool.not.i.i.i.i118, i64 %x.addr.012.i.i.i.i, i64 %shr.i.i.i.i %cmp.not.i.i.i.i119 = icmp eq i64 %spec.select8.i.i.i.i, 1 br i1 %cmp.not.i.i.i.i119, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i, label %while.body.i.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i: ; preds = %while.body.i.i.i.i - %63 = sext i32 %spec.select7.i.i.i.i to i64 + %63 = zext nneg i32 %spec.select7.i.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i, %cond.true.i @@ -4737,19 +4737,19 @@ if.end.i95: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i99: ; preds = %if.end.i95, %while.body.i.i.i.i99 %x.addr.012.i.i.i.i100 = phi i64 [ %spec.select8.i.i.i.i108, %while.body.i.i.i.i99 ], [ %sub1.i.i97, %if.end.i95 ] %result.011.i.i.i.i101 = phi i32 [ %spec.select7.i.i.i.i107, %while.body.i.i.i.i99 ], [ 0, %if.end.i95 ] - %n.addr.010.i.i.i.i102 = phi i32 [ %div.i.i.i.i105, %while.body.i.i.i.i99 ], [ 32, %if.end.i95 ] + %n.addr.010.i.i.i.i102 = phi i32 [ %div.i1.i.i.i105, %while.body.i.i.i.i99 ], [ 32, %if.end.i95 ] %sh_prom.i.i.i.i103 = zext nneg i32 %n.addr.010.i.i.i.i102 to i64 %shr.i.i.i4.i = lshr i64 %x.addr.012.i.i.i.i100, %sh_prom.i.i.i.i103 %tobool.not.i.i.i.i104 = icmp eq i64 %shr.i.i.i4.i, 0 - %div.i.i.i.i105 = sdiv i32 %n.addr.010.i.i.i.i102, 2 + %div.i1.i.i.i105 = lshr i32 %n.addr.010.i.i.i.i102, 1 %add.i.i.i.i106 = select i1 %tobool.not.i.i.i.i104, i32 0, i32 %n.addr.010.i.i.i.i102 - %spec.select7.i.i.i.i107 = add nsw i32 %add.i.i.i.i106, %result.011.i.i.i.i101 + %spec.select7.i.i.i.i107 = add nuw nsw i32 %add.i.i.i.i106, %result.011.i.i.i.i101 %spec.select8.i.i.i.i108 = select i1 %tobool.not.i.i.i.i104, i64 %x.addr.012.i.i.i.i100, i64 %shr.i.i.i4.i %cmp.not.i.i.i.i109 = icmp eq i64 %spec.select8.i.i.i.i108, 1 br i1 %cmp.not.i.i.i.i109, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i110, label %while.body.i.i.i.i99 _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i110: ; preds = %while.body.i.i.i.i99 - %39 = sext i32 %spec.select7.i.i.i.i107 to i64 + %39 = zext nneg i32 %spec.select7.i.i.i.i107 to i64 br label %_ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit _ZNK5boost14dynamic_bitsetImSaImEE10find_firstEv.exit: ; preds = %if.end.i95, %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i110 @@ -4840,19 +4840,19 @@ cond.true.i: ; preds = %if.end.i while.body.i.i.i.i: ; preds = %cond.true.i, %while.body.i.i.i.i %x.addr.012.i.i.i.i = phi i64 [ %spec.select8.i.i.i.i, %while.body.i.i.i.i ], [ %sub1.i.i, %cond.true.i ] %result.011.i.i.i.i = phi i32 [ %spec.select7.i.i.i.i, %while.body.i.i.i.i ], [ 0, %cond.true.i ] - %n.addr.010.i.i.i.i = phi i32 [ %div.i.i.i.i, %while.body.i.i.i.i ], [ 32, %cond.true.i ] + %n.addr.010.i.i.i.i = phi i32 [ %div.i1.i.i.i, %while.body.i.i.i.i ], [ 32, %cond.true.i ] %sh_prom.i.i.i.i = zext nneg i32 %n.addr.010.i.i.i.i to i64 %shr.i.i.i.i = lshr i64 %x.addr.012.i.i.i.i, %sh_prom.i.i.i.i %tobool.not.i.i.i.i71 = icmp eq i64 %shr.i.i.i.i, 0 - %div.i.i.i.i = sdiv i32 %n.addr.010.i.i.i.i, 2 + %div.i1.i.i.i = lshr i32 %n.addr.010.i.i.i.i, 1 %add.i.i.i.i = select i1 %tobool.not.i.i.i.i71, i32 0, i32 %n.addr.010.i.i.i.i - %spec.select7.i.i.i.i = add nsw i32 %add.i.i.i.i, %result.011.i.i.i.i + %spec.select7.i.i.i.i = add nuw nsw i32 %add.i.i.i.i, %result.011.i.i.i.i %spec.select8.i.i.i.i = select i1 %tobool.not.i.i.i.i71, i64 %x.addr.012.i.i.i.i, i64 %shr.i.i.i.i %cmp.not.i.i.i.i72 = icmp eq i64 %spec.select8.i.i.i.i, 1 br i1 %cmp.not.i.i.i.i72, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i, label %while.body.i.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i: ; preds = %while.body.i.i.i.i - %46 = sext i32 %spec.select7.i.i.i.i to i64 + %46 = zext nneg i32 %spec.select7.i.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i _ZN5boost6detail10lowest_bitImEEiT_.exit.i: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i, %cond.true.i @@ -4972,19 +4972,19 @@ if.end.i138: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i.i144: ; preds = %if.end.i138, %while.body.i.i.i.i144 %x.addr.012.i.i.i.i145 = phi i64 [ %spec.select8.i.i.i.i154, %while.body.i.i.i.i144 ], [ %sub1.i.i142, %if.end.i138 ] %result.011.i.i.i.i146 = phi i32 [ %spec.select7.i.i.i.i153, %while.body.i.i.i.i144 ], [ 0, %if.end.i138 ] - %n.addr.010.i.i.i.i147 = phi i32 [ %div.i.i.i.i151, %while.body.i.i.i.i144 ], [ 32, %if.end.i138 ] + %n.addr.010.i.i.i.i147 = phi i32 [ %div.i1.i.i.i151, %while.body.i.i.i.i144 ], [ 32, %if.end.i138 ] %sh_prom.i.i.i.i148 = zext nneg i32 %n.addr.010.i.i.i.i147 to i64 %shr.i.i.i4.i149 = lshr i64 %x.addr.012.i.i.i.i145, %sh_prom.i.i.i.i148 %tobool.not.i.i.i.i150 = icmp eq i64 %shr.i.i.i4.i149, 0 - %div.i.i.i.i151 = sdiv i32 %n.addr.010.i.i.i.i147, 2 + %div.i1.i.i.i151 = lshr i32 %n.addr.010.i.i.i.i147, 1 %add.i.i.i.i152 = select i1 %tobool.not.i.i.i.i150, i32 0, i32 %n.addr.010.i.i.i.i147 - %spec.select7.i.i.i.i153 = add nsw i32 %add.i.i.i.i152, %result.011.i.i.i.i146 + %spec.select7.i.i.i.i153 = add nuw nsw i32 %add.i.i.i.i152, %result.011.i.i.i.i146 %spec.select8.i.i.i.i154 = select i1 %tobool.not.i.i.i.i150, i64 %x.addr.012.i.i.i.i145, i64 %shr.i.i.i4.i149 %cmp.not.i.i.i.i155 = icmp eq i64 %spec.select8.i.i.i.i154, 1 br i1 %cmp.not.i.i.i.i155, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i156, label %while.body.i.i.i.i144 _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i156: ; preds = %while.body.i.i.i.i144 - %55 = sext i32 %spec.select7.i.i.i.i153 to i64 + %55 = zext nneg i32 %spec.select7.i.i.i.i153 to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit.i157 _ZN5boost6detail10lowest_bitImEEiT_.exit.i157: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit.i156, %if.end.i138 @@ -9617,19 +9617,19 @@ if.end: ; preds = %_ZSt7find_ifIN9__gn while.body.i.i.i: ; preds = %if.end, %while.body.i.i.i %x.addr.012.i.i.i = phi i64 [ %spec.select8.i.i.i, %while.body.i.i.i ], [ %sub1.i, %if.end ] %result.011.i.i.i = phi i32 [ %spec.select7.i.i.i, %while.body.i.i.i ], [ 0, %if.end ] - %n.addr.010.i.i.i = phi i32 [ %div.i.i.i, %while.body.i.i.i ], [ 32, %if.end ] + %n.addr.010.i.i.i = phi i32 [ %div.i1.i.i, %while.body.i.i.i ], [ 32, %if.end ] %sh_prom.i.i.i = zext nneg i32 %n.addr.010.i.i.i to i64 %shr.i.i.i4 = lshr i64 %x.addr.012.i.i.i, %sh_prom.i.i.i %tobool.not.i.i.i = icmp eq i64 %shr.i.i.i4, 0 - %div.i.i.i = sdiv i32 %n.addr.010.i.i.i, 2 + %div.i1.i.i = lshr i32 %n.addr.010.i.i.i, 1 %add.i.i.i = select i1 %tobool.not.i.i.i, i32 0, i32 %n.addr.010.i.i.i - %spec.select7.i.i.i = add nsw i32 %add.i.i.i, %result.011.i.i.i + %spec.select7.i.i.i = add nuw nsw i32 %add.i.i.i, %result.011.i.i.i %spec.select8.i.i.i = select i1 %tobool.not.i.i.i, i64 %x.addr.012.i.i.i, i64 %shr.i.i.i4 %cmp.not.i.i.i = icmp eq i64 %spec.select8.i.i.i, 1 br i1 %cmp.not.i.i.i, label %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit, label %while.body.i.i.i _ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit: ; preds = %while.body.i.i.i - %10 = sext i32 %spec.select7.i.i.i to i64 + %10 = zext nneg i32 %spec.select7.i.i.i to i64 br label %_ZN5boost6detail10lowest_bitImEEiT_.exit _ZN5boost6detail10lowest_bitImEEiT_.exit: ; preds = %_ZN5boost6detail10lowest_bitImEEiT_.exit.loopexit, %if.end diff --git a/bench/icu/optimized/number_decimalquantity.ll b/bench/icu/optimized/number_decimalquantity.ll index eb5f86c23fe..e821e49b5ae 100644 --- a/bench/icu/optimized/number_decimalquantity.ll +++ b/bench/icu/optimized/number_decimalquantity.ll @@ -3377,15 +3377,14 @@ _ZN6icu_756number4impl15DecimalQuantity14ensureCapacityEv.exit: ; preds = %if.th for.body: ; preds = %_ZN6icu_756number4impl15DecimalQuantity14ensureCapacityEv.exit, %for.body %indvars.iv = phi i64 [ 0, %_ZN6icu_756number4impl15DecimalQuantity14ensureCapacityEv.exit ], [ %indvars.iv.next, %for.body ] %n.addr.017 = phi i64 [ %n, %_ZN6icu_756number4impl15DecimalQuantity14ensureCapacityEv.exit ], [ %div, %for.body ] - %rem = srem i64 %n.addr.017, 10 - %conv = trunc nsw i64 %rem to i8 + %rem = urem i64 %n.addr.017, 10 + %conv = trunc nuw nsw i64 %rem to i8 %3 = load ptr, ptr %fBCD, align 8 %arrayidx = getelementptr inbounds i8, ptr %3, i64 %indvars.iv store i8 %conv, ptr %arrayidx, align 1 - %div = sdiv i64 %n.addr.017, 10 + %div = udiv i64 %n.addr.017, 10 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %n.addr.017.off = add i64 %n.addr.017, 9 - %cmp2.not = icmp ult i64 %n.addr.017.off, 19 + %cmp2.not = icmp ult i64 %n.addr.017, 10 br i1 %cmp2.not, label %for.end, label %for.body, !llvm.loop !18 for.end: ; preds = %for.body diff --git a/bench/libquic/optimized/mul.c.ll b/bench/libquic/optimized/mul.c.ll index 7c02031b553..7b287fac852 100644 --- a/bench/libquic/optimized/mul.c.ll +++ b/bench/libquic/optimized/mul.c.ll @@ -333,27 +333,27 @@ if.then132: ; preds = %if.else123 br label %if.end174 for.cond: ; preds = %if.else123, %if.else154 - %i.0 = phi i32 [ %div140248, %if.else154 ], [ %div242, %if.else123 ] - %div140248 = lshr i32 %i.0, 1 - %or.cond243 = icmp slt i32 %div140248, %tna.tnb - br i1 %or.cond243, label %if.then145, label %if.else154 + %i.0 = phi i32 [ %div140243, %if.else154 ], [ %div242, %if.else123 ] + %div140243 = lshr i32 %i.0, 1 + %or.cond244 = icmp slt i32 %div140243, %tna.tnb + br i1 %or.cond244, label %if.then145, label %if.else154 if.then145: ; preds = %for.cond - %sub152 = sub nsw i32 %tna, %div140248 - %sub153 = sub nsw i32 %tnb, %div140248 - tail call fastcc void @bn_mul_part_recursive(ptr noundef nonnull %arrayidx108, ptr noundef nonnull %arrayidx, ptr noundef nonnull %arrayidx3, i32 noundef %div140248, i32 noundef %sub152, i32 noundef %sub153, ptr noundef nonnull %arrayidx72) + %sub152 = sub nsw i32 %tna, %div140243 + %sub153 = sub nsw i32 %tnb, %div140243 + tail call fastcc void @bn_mul_part_recursive(ptr noundef nonnull %arrayidx108, ptr noundef nonnull %arrayidx, ptr noundef nonnull %arrayidx3, i32 noundef %div140243, i32 noundef %sub152, i32 noundef %sub153, ptr noundef nonnull %arrayidx72) br label %if.end174 if.else154: ; preds = %for.cond - %cmp155 = icmp eq i32 %div140248, %tna - %cmp158 = icmp eq i32 %div140248, %tnb - %or.cond244 = or i1 %cmp155, %cmp158 - br i1 %or.cond244, label %if.then160, label %for.cond + %cmp155 = icmp eq i32 %div140243, %tna + %cmp158 = icmp eq i32 %div140243, %tnb + %or.cond245 = or i1 %cmp155, %cmp158 + br i1 %or.cond245, label %if.then160, label %for.cond if.then160: ; preds = %if.else154 - %sub167 = sub nsw i32 %tna, %div140248 - %sub168 = sub nsw i32 %tnb, %div140248 - tail call fastcc void @bn_mul_recursive(ptr noundef nonnull %arrayidx108, ptr noundef nonnull %arrayidx, ptr noundef nonnull %arrayidx3, i32 noundef %div140248, i32 noundef %sub167, i32 noundef %sub168, ptr noundef nonnull %arrayidx72) + %sub167 = sub nsw i32 %tna, %div140243 + %sub168 = sub nsw i32 %tnb, %div140243 + tail call fastcc void @bn_mul_recursive(ptr noundef nonnull %arrayidx108, ptr noundef nonnull %arrayidx, ptr noundef nonnull %arrayidx3, i32 noundef %div140243, i32 noundef %sub167, i32 noundef %sub168, ptr noundef nonnull %arrayidx72) br label %if.end174 if.end174: ; preds = %if.then86, %if.then132, %if.then160, %if.then145, %if.then106, %if.then52 diff --git a/bench/llvm/optimized/AArch64BaseInfo.cpp.ll b/bench/llvm/optimized/AArch64BaseInfo.cpp.ll index bb12be32d9f..5837073683c 100644 --- a/bench/llvm/optimized/AArch64BaseInfo.cpp.ll +++ b/bench/llvm/optimized/AArch64BaseInfo.cpp.ll @@ -3940,8 +3940,8 @@ _ZN4llvm6utostrB5cxx11Emb.exit: 52: ; preds = %_ZN4llvm6utostrB5cxx11Emb.exit %53 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv(ptr noundef nonnull align 8 dereferenceable(32) %21) #10, !noalias !46 - %.not.i17 = icmp ugt i64 %49, %53 - br i1 %.not.i17, label %56, label %54 + %.not.i = icmp ugt i64 %49, %53 + br i1 %.not.i, label %56, label %54 54: ; preds = %52 %55 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmRKS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(32) %18) #10, !noalias !46 @@ -3961,37 +3961,37 @@ _ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) %59 = getelementptr inbounds i8, ptr %6, i64 21 %60 = icmp eq i32 %28, 0 - br i1 %60, label %.thread.i23, label %.lr.ph.i18.preheader + br i1 %60, label %.thread.i17, label %.lr.ph.i14.preheader -.lr.ph.i18.preheader: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit +.lr.ph.i14.preheader: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit %61 = zext nneg i32 %28 to i64 - br label %.lr.ph.i18 + br label %.lr.ph.i14 -.thread.i23: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit +.thread.i17: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit %62 = getelementptr inbounds i8, ptr %6, i64 20 store i8 48, ptr %62, align 4, !noalias !52 - br label %_ZN4llvm6utostrB5cxx11Emb.exit24 + br label %_ZN4llvm6utostrB5cxx11Emb.exit18 -.lr.ph.i18: ; preds = %.lr.ph.i18.preheader, %.lr.ph.i18 - %.111.i19 = phi ptr [ %66, %.lr.ph.i18 ], [ %59, %.lr.ph.i18.preheader ] - %.0810.i20 = phi i64 [ %67, %.lr.ph.i18 ], [ %61, %.lr.ph.i18.preheader ] - %63 = urem i64 %.0810.i20, 10 +.lr.ph.i14: ; preds = %.lr.ph.i14.preheader, %.lr.ph.i14 + %.111.i = phi ptr [ %66, %.lr.ph.i14 ], [ %59, %.lr.ph.i14.preheader ] + %.0810.i = phi i64 [ %67, %.lr.ph.i14 ], [ %61, %.lr.ph.i14.preheader ] + %63 = urem i64 %.0810.i, 10 %64 = trunc nuw nsw i64 %63 to i8 %65 = or disjoint i8 %64, 48 - %66 = getelementptr inbounds i8, ptr %.111.i19, i64 -1 + %66 = getelementptr inbounds i8, ptr %.111.i, i64 -1 store i8 %65, ptr %66, align 1, !noalias !52 - %67 = udiv i64 %.0810.i20, 10 - %.not.i21 = icmp ult i64 %.0810.i20, 10 - br i1 %.not.i21, label %_ZN4llvm6utostrB5cxx11Emb.exit24, label %.lr.ph.i18, !llvm.loop !55 + %67 = udiv i64 %.0810.i, 10 + %.not.i15 = icmp ult i64 %.0810.i, 10 + br i1 %.not.i15, label %_ZN4llvm6utostrB5cxx11Emb.exit18, label %.lr.ph.i14, !llvm.loop !55 -_ZN4llvm6utostrB5cxx11Emb.exit24: ; preds = %.lr.ph.i18, %.thread.i23 - %.1.lcssa.i22 = phi ptr [ %62, %.thread.i23 ], [ %66, %.lr.ph.i18 ] +_ZN4llvm6utostrB5cxx11Emb.exit18: ; preds = %.lr.ph.i14, %.thread.i17 + %.1.lcssa.i16 = phi ptr [ %62, %.thread.i17 ], [ %66, %.lr.ph.i14 ] call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #10, !noalias !52 %68 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %22) #10 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef %68, ptr noundef nonnull align 1 dereferenceable(1) %7) #10 %69 = getelementptr inbounds nuw i8, ptr %22, i64 8 store i64 0, ptr %69, align 8, !alias.scope !52 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull %.1.lcssa.i22, ptr noundef nonnull %59) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull %.1.lcssa.i16, ptr noundef nonnull %59) call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #10 call void @llvm.lifetime.end.p0(i64 21, ptr nonnull %6) call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) @@ -4002,22 +4002,22 @@ _ZN4llvm6utostrB5cxx11Emb.exit24: ; preds = %.lr.ph.i18, %.threa %74 = icmp ugt i64 %72, %73 br i1 %74, label %75, label %79 -75: ; preds = %_ZN4llvm6utostrB5cxx11Emb.exit24 +75: ; preds = %_ZN4llvm6utostrB5cxx11Emb.exit18 %76 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv(ptr noundef nonnull align 8 dereferenceable(32) %22) #10, !noalias !56 - %.not.i26 = icmp ugt i64 %72, %76 - br i1 %.not.i26, label %79, label %77 + %.not.i20 = icmp ugt i64 %72, %76 + br i1 %.not.i20, label %79, label %77 77: ; preds = %75 %78 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmRKS4_(ptr noundef nonnull align 8 dereferenceable(32) %22, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(32) %16) #10, !noalias !56 - br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit27 + br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit21 -79: ; preds = %75, %_ZN4llvm6utostrB5cxx11Emb.exit24 +79: ; preds = %75, %_ZN4llvm6utostrB5cxx11Emb.exit18 %80 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %22) #10, !noalias !56 - br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit27 + br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit21 -_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit27: ; preds = %77, %79 - %.sink.i25 = phi ptr [ %80, %79 ], [ %78, %77 ] - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %.sink.i25) #10 +_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit21: ; preds = %77, %79 + %.sink.i19 = phi ptr [ %80, %79 ], [ %78, %77 ] + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %.sink.i19) #10 %81 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.1340) #10, !noalias !59 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %81) #10 call void @llvm.experimental.noalias.scope.decl(metadata !62) @@ -4025,37 +4025,37 @@ _ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) %82 = getelementptr inbounds i8, ptr %4, i64 21 %83 = icmp eq i32 %30, 0 - br i1 %83, label %.thread.i33, label %.lr.ph.i28.preheader + br i1 %83, label %.thread.i27, label %.lr.ph.i22.preheader -.lr.ph.i28.preheader: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit27 +.lr.ph.i22.preheader: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit21 %84 = zext nneg i32 %30 to i64 - br label %.lr.ph.i28 + br label %.lr.ph.i22 -.thread.i33: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit27 +.thread.i27: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit21 %85 = getelementptr inbounds i8, ptr %4, i64 20 store i8 48, ptr %85, align 4, !noalias !62 - br label %_ZN4llvm6utostrB5cxx11Emb.exit34 + br label %_ZN4llvm6utostrB5cxx11Emb.exit28 -.lr.ph.i28: ; preds = %.lr.ph.i28.preheader, %.lr.ph.i28 - %.111.i29 = phi ptr [ %89, %.lr.ph.i28 ], [ %82, %.lr.ph.i28.preheader ] - %.0810.i30 = phi i64 [ %90, %.lr.ph.i28 ], [ %84, %.lr.ph.i28.preheader ] - %86 = urem i64 %.0810.i30, 10 +.lr.ph.i22: ; preds = %.lr.ph.i22.preheader, %.lr.ph.i22 + %.111.i23 = phi ptr [ %89, %.lr.ph.i22 ], [ %82, %.lr.ph.i22.preheader ] + %.0810.i24 = phi i64 [ %90, %.lr.ph.i22 ], [ %84, %.lr.ph.i22.preheader ] + %86 = urem i64 %.0810.i24, 10 %87 = trunc nuw nsw i64 %86 to i8 %88 = or disjoint i8 %87, 48 - %89 = getelementptr inbounds i8, ptr %.111.i29, i64 -1 + %89 = getelementptr inbounds i8, ptr %.111.i23, i64 -1 store i8 %88, ptr %89, align 1, !noalias !62 - %90 = udiv i64 %.0810.i30, 10 - %.not.i31 = icmp ult i64 %.0810.i30, 10 - br i1 %.not.i31, label %_ZN4llvm6utostrB5cxx11Emb.exit34, label %.lr.ph.i28, !llvm.loop !55 + %90 = udiv i64 %.0810.i24, 10 + %.not.i25 = icmp ult i64 %.0810.i24, 10 + br i1 %.not.i25, label %_ZN4llvm6utostrB5cxx11Emb.exit28, label %.lr.ph.i22, !llvm.loop !55 -_ZN4llvm6utostrB5cxx11Emb.exit34: ; preds = %.lr.ph.i28, %.thread.i33 - %.1.lcssa.i32 = phi ptr [ %85, %.thread.i33 ], [ %89, %.lr.ph.i28 ] +_ZN4llvm6utostrB5cxx11Emb.exit28: ; preds = %.lr.ph.i22, %.thread.i27 + %.1.lcssa.i26 = phi ptr [ %85, %.thread.i27 ], [ %89, %.lr.ph.i22 ] call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #10, !noalias !62 %91 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %23) #10 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef %91, ptr noundef nonnull align 1 dereferenceable(1) %5) #10 %92 = getelementptr inbounds nuw i8, ptr %23, i64 8 store i64 0, ptr %92, align 8, !alias.scope !62 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull %.1.lcssa.i32, ptr noundef nonnull %82) + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull %.1.lcssa.i26, ptr noundef nonnull %82) call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #10 call void @llvm.lifetime.end.p0(i64 21, ptr nonnull %4) call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) @@ -4066,22 +4066,22 @@ _ZN4llvm6utostrB5cxx11Emb.exit34: ; preds = %.lr.ph.i28, %.threa %97 = icmp ugt i64 %95, %96 br i1 %97, label %98, label %102 -98: ; preds = %_ZN4llvm6utostrB5cxx11Emb.exit34 +98: ; preds = %_ZN4llvm6utostrB5cxx11Emb.exit28 %99 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv(ptr noundef nonnull align 8 dereferenceable(32) %23) #10, !noalias !65 - %.not.i36 = icmp ugt i64 %95, %99 - br i1 %.not.i36, label %102, label %100 + %.not.i30 = icmp ugt i64 %95, %99 + br i1 %.not.i30, label %102, label %100 100: ; preds = %98 %101 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmRKS4_(ptr noundef nonnull align 8 dereferenceable(32) %23, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(32) %14) #10, !noalias !65 - br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit37 + br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit31 -102: ; preds = %98, %_ZN4llvm6utostrB5cxx11Emb.exit34 +102: ; preds = %98, %_ZN4llvm6utostrB5cxx11Emb.exit28 %103 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %23) #10, !noalias !65 - br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit37 + br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit31 -_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit37: ; preds = %100, %102 - %.sink.i35 = phi ptr [ %103, %102 ], [ %101, %100 ] - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %.sink.i35) #10 +_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit31: ; preds = %100, %102 + %.sink.i29 = phi ptr [ %103, %102 ], [ %101, %100 ] + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %.sink.i29) #10 %104 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.1339) #10, !noalias !68 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %104) #10 call void @llvm.experimental.noalias.scope.decl(metadata !71) @@ -4109,22 +4109,22 @@ _ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit %116 = icmp ugt i64 %114, %115 br i1 %116, label %117, label %121 -117: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit37 +117: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit31 %118 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv(ptr noundef nonnull align 8 dereferenceable(32) %24) #10, !noalias !74 - %.not.i46 = icmp ugt i64 %114, %118 - br i1 %.not.i46, label %121, label %119 + %.not.i40 = icmp ugt i64 %114, %118 + br i1 %.not.i40, label %121, label %119 119: ; preds = %117 %120 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6insertEmRKS4_(ptr noundef nonnull align 8 dereferenceable(32) %24, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(32) %12) #10, !noalias !74 - br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit47 + br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit41 -121: ; preds = %117, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit37 +121: ; preds = %117, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit31 %122 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %24) #10, !noalias !74 - br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit47 + br label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit41 -_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit47: ; preds = %119, %121 - %.sink.i45 = phi ptr [ %122, %121 ], [ %120, %119 ] - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %.sink.i45) #10 +_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_.exit41: ; preds = %119, %121 + %.sink.i39 = phi ptr [ %122, %121 ], [ %120, %119 ] + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %.sink.i39) #10 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #10 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #10 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #10 diff --git a/bench/llvm/optimized/X86ISelLowering.cpp.ll b/bench/llvm/optimized/X86ISelLowering.cpp.ll index ff4e13acb88..8482883df34 100644 --- a/bench/llvm/optimized/X86ISelLowering.cpp.ll +++ b/bench/llvm/optimized/X86ISelLowering.cpp.ll @@ -236315,11 +236315,16 @@ _ZNK4llvm3MVT14is128BitVectorEv.exit: ; preds = %8 %70 = getelementptr inbounds nuw i8, ptr %16, i64 8 %71 = select i1 %53, i32 680, i32 681 %umax = tail call i64 @llvm.umax.i64(i64 %68, i64 1) - br label %72 + br label %74 + +72: ; preds = %"_ZZL30lowerShuffleAsPermuteAndUnpackRKN4llvm5SDLocENS_3MVTENS_7SDValueES4_NS_8ArrayRefIiEERKNS_12X86SubtargetERNS_12SelectionDAGEENK3$_2clEii.exit" + %73 = lshr i32 %.072, 1 + %.not = icmp slt i32 %73, %61 + br i1 %.not, label %._crit_edge.loopexit, label %74, !llvm.loop !2018 -72: ; preds = %.lr.ph, %149 - %.072 = phi i32 [ 64, %.lr.ph ], [ %150, %149 ] - %73 = sdiv i32 %.072, %61 +74: ; preds = %.lr.ph, %72 + %.072 = phi i32 [ 64, %.lr.ph ], [ %73, %72 ] + %75 = sdiv i32 %.072, %61 call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %11) call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %12) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) @@ -236332,176 +236337,169 @@ _ZNK4llvm3MVT14is128BitVectorEv.exit: ; preds = %8 call void @_ZN4llvm15SmallVectorImplIiE6assignEmi(ptr noundef nonnull align 8 dereferenceable(16) %12, i64 noundef %62, i32 noundef -1) br i1 %65, label %.lr.ph.i.preheader, label %._crit_edge.i -.lr.ph.i.preheader: ; preds = %72 - %74 = load ptr, ptr %6, align 8 +.lr.ph.i.preheader: ; preds = %74 + %76 = load ptr, ptr %6, align 8 br label %.lr.ph.i -.lr.ph.i: ; preds = %.lr.ph.i.preheader, %95 - %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %95 ], [ 0, %.lr.ph.i.preheader ] - %75 = getelementptr inbounds i32, ptr %74, i64 %indvars.iv.i - %76 = load i32, ptr %75, align 4 - %77 = icmp slt i32 %76, 0 - br i1 %77, label %95, label %78 - -78: ; preds = %.lr.ph.i - %79 = trunc nuw nsw i64 %indvars.iv.i to i32 - %80 = sdiv i32 %79, %73 - %81 = srem i32 %79, %73 - %82 = trunc i32 %80 to i1 - %83 = icmp sge i32 %76, %27 - %.not.not.i = xor i1 %83, %82 - br i1 %.not.not.i, label %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit86.i, label %84 - -84: ; preds = %78 - %85 = and i32 %80, 1 - %86 = icmp eq i32 %85, 0 - %87 = urem i32 %76, %27 - %88 = sdiv i32 %80, 2 - %89 = mul nsw i32 %88, %73 - %90 = add i32 %89, %67 - %91 = add i32 %90, %81 - %92 = sext i32 %91 to i64 +.lr.ph.i: ; preds = %.lr.ph.i.preheader, %97 + %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %97 ], [ 0, %.lr.ph.i.preheader ] + %77 = getelementptr inbounds i32, ptr %76, i64 %indvars.iv.i + %78 = load i32, ptr %77, align 4 + %79 = icmp slt i32 %78, 0 + br i1 %79, label %97, label %80 + +80: ; preds = %.lr.ph.i + %81 = trunc nuw nsw i64 %indvars.iv.i to i32 + %82 = sdiv i32 %81, %75 + %83 = srem i32 %81, %75 + %84 = trunc i32 %82 to i1 + %85 = icmp sge i32 %78, %27 + %.not.not.i = xor i1 %85, %84 + br i1 %.not.not.i, label %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit86.i, label %86 + +86: ; preds = %80 + %87 = and i32 %82, 1 + %88 = icmp eq i32 %87, 0 + %89 = urem i32 %78, %27 + %90 = sdiv i32 %82, 2 + %91 = mul nsw i32 %90, %75 + %92 = add i32 %91, %67 + %93 = add i32 %92, %83 + %94 = sext i32 %93 to i64 %.val.i = load ptr, ptr %11, align 8 %.val115.i = load ptr, ptr %12, align 8 - %93 = select i1 %86, ptr %.val.i, ptr %.val115.i - %94 = getelementptr inbounds i32, ptr %93, i64 %92 - store i32 %87, ptr %94, align 4 - br label %95 + %95 = select i1 %88, ptr %.val.i, ptr %.val115.i + %96 = getelementptr inbounds i32, ptr %95, i64 %94 + store i32 %89, ptr %96, align 4 + br label %97 -95: ; preds = %84, %.lr.ph.i +97: ; preds = %86, %.lr.ph.i %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond.not = icmp eq i64 %indvars.iv.next.i, %umax - br i1 %exitcond.not, label %._crit_edge.i, label %.lr.ph.i, !llvm.loop !2018 + br i1 %exitcond.not, label %._crit_edge.i, label %.lr.ph.i, !llvm.loop !2019 -._crit_edge.i: ; preds = %95, %72 - br i1 %or.cond64, label %96, label %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit.thread.i +._crit_edge.i: ; preds = %97, %74 + br i1 %or.cond64, label %98, label %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit.thread.i -96: ; preds = %._crit_edge.i - %97 = load ptr, ptr %11, align 8 - %98 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %11) #34 - %99 = trunc i64 %98 to i32 - %100 = icmp slt i32 %99, 1 - br i1 %100, label %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit.thread.i, label %.lr.ph.preheader.i.i +98: ; preds = %._crit_edge.i + %99 = load ptr, ptr %11, align 8 + %100 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %11) #34 + %101 = trunc i64 %100 to i32 + %102 = icmp slt i32 %101, 1 + br i1 %102, label %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit.thread.i, label %.lr.ph.preheader.i.i -.lr.ph.preheader.i.i: ; preds = %96 - %wide.trip.count.i.i = and i64 %98, 2147483647 +.lr.ph.preheader.i.i: ; preds = %98 + %wide.trip.count.i.i = and i64 %100, 2147483647 br label %.lr.ph.i.i -101: ; preds = %.lr.ph.i.i +103: ; preds = %.lr.ph.i.i %indvars.iv.next.i.i = add nuw nsw i64 %indvars.iv.i.i, 1 %exitcond.not.i.i = icmp eq i64 %indvars.iv.next.i.i, %wide.trip.count.i.i br i1 %exitcond.not.i.i, label %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit.thread.i, label %.lr.ph.i.i, !llvm.loop !1970 -.lr.ph.i.i: ; preds = %101, %.lr.ph.preheader.i.i - %indvars.iv.i.i = phi i64 [ 0, %.lr.ph.preheader.i.i ], [ %indvars.iv.next.i.i, %101 ] - %102 = getelementptr inbounds i32, ptr %97, i64 %indvars.iv.i.i - %103 = load i32, ptr %102, align 4 - %104 = icmp slt i32 %103, 0 - %105 = zext i32 %103 to i64 - %.not.i.i = icmp eq i64 %indvars.iv.i.i, %105 - %or.cond.i.i = or i1 %104, %.not.i.i - br i1 %or.cond.i.i, label %101, label %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit.i +.lr.ph.i.i: ; preds = %103, %.lr.ph.preheader.i.i + %indvars.iv.i.i = phi i64 [ 0, %.lr.ph.preheader.i.i ], [ %indvars.iv.next.i.i, %103 ] + %104 = getelementptr inbounds i32, ptr %99, i64 %indvars.iv.i.i + %105 = load i32, ptr %104, align 4 + %106 = icmp slt i32 %105, 0 + %107 = zext i32 %105 to i64 + %.not.i.i = icmp eq i64 %indvars.iv.i.i, %107 + %or.cond.i.i = or i1 %106, %.not.i.i + br i1 %or.cond.i.i, label %103, label %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit.i _ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit.i: ; preds = %.lr.ph.i.i - %106 = load ptr, ptr %12, align 8 - %107 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %12) #34 - %108 = trunc i64 %107 to i32 - %109 = icmp slt i32 %108, 1 - br i1 %109, label %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit.thread.i, label %.lr.ph.preheader.i77.i + %108 = load ptr, ptr %12, align 8 + %109 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %12) #34 + %110 = trunc i64 %109 to i32 + %111 = icmp slt i32 %110, 1 + br i1 %111, label %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit.thread.i, label %.lr.ph.preheader.i77.i .lr.ph.preheader.i77.i: ; preds = %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit.i - %wide.trip.count.i78.i = and i64 %107, 2147483647 + %wide.trip.count.i78.i = and i64 %109, 2147483647 br label %.lr.ph.i79.i -110: ; preds = %.lr.ph.i79.i +112: ; preds = %.lr.ph.i79.i %indvars.iv.next.i84.i = add nuw nsw i64 %indvars.iv.i80.i, 1 %exitcond.not.i85.i = icmp eq i64 %indvars.iv.next.i84.i, %wide.trip.count.i78.i br i1 %exitcond.not.i85.i, label %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit.thread.i, label %.lr.ph.i79.i, !llvm.loop !1970 -.lr.ph.i79.i: ; preds = %110, %.lr.ph.preheader.i77.i - %indvars.iv.i80.i = phi i64 [ 0, %.lr.ph.preheader.i77.i ], [ %indvars.iv.next.i84.i, %110 ] - %111 = getelementptr inbounds i32, ptr %106, i64 %indvars.iv.i80.i - %112 = load i32, ptr %111, align 4 - %113 = icmp slt i32 %112, 0 - %114 = zext i32 %112 to i64 - %.not.i81.i = icmp eq i64 %indvars.iv.i80.i, %114 - %or.cond.i82.i = or i1 %113, %.not.i81.i - br i1 %or.cond.i82.i, label %110, label %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit86.i +.lr.ph.i79.i: ; preds = %112, %.lr.ph.preheader.i77.i + %indvars.iv.i80.i = phi i64 [ 0, %.lr.ph.preheader.i77.i ], [ %indvars.iv.next.i84.i, %112 ] + %113 = getelementptr inbounds i32, ptr %108, i64 %indvars.iv.i80.i + %114 = load i32, ptr %113, align 4 + %115 = icmp slt i32 %114, 0 + %116 = zext i32 %114 to i64 + %.not.i81.i = icmp eq i64 %indvars.iv.i80.i, %116 + %or.cond.i82.i = or i1 %115, %.not.i81.i + br i1 %or.cond.i82.i, label %112, label %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit86.i -_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit.thread.i: ; preds = %101, %110, %._crit_edge.i, %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit.i, %96 +_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit.thread.i: ; preds = %103, %112, %._crit_edge.i, %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit.i, %98 %.sroa.056.0.copyload.i = load ptr, ptr %17, align 8 %.sroa.257.0.copyload.i = load i32, ptr %23, align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %10, i8 0, i64 16, i1 false) - %115 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTE(ptr noundef nonnull align 8 dereferenceable(904) %7, i32 noundef 51, ptr noundef nonnull align 8 dereferenceable(12) %10, i16 %1, ptr null) #34 - %116 = load ptr, ptr %10, align 8 - %.not.i.i.i.i.i.i.i = icmp eq ptr %116, null - br i1 %.not.i.i.i.i.i.i.i, label %_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit.i, label %117 + %117 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTE(ptr noundef nonnull align 8 dereferenceable(904) %7, i32 noundef 51, ptr noundef nonnull align 8 dereferenceable(12) %10, i16 %1, ptr null) #34 + %118 = load ptr, ptr %10, align 8 + %.not.i.i.i.i.i.i.i = icmp eq ptr %118, null + br i1 %.not.i.i.i.i.i.i.i, label %_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit.i, label %119 -117: ; preds = %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit.thread.i - call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull %10, ptr noundef nonnull align 4 dereferenceable(8) %116) #34 +119: ; preds = %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit.thread.i + call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull %10, ptr noundef nonnull align 4 dereferenceable(8) %118) #34 br label %_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit.i -_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit.i: ; preds = %117, %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit.thread.i +_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit.i: ; preds = %119, %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit.thread.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) - %.fca.0.extract51.i = extractvalue { ptr, i32 } %115, 0 - %.fca.1.extract52.i = extractvalue { ptr, i32 } %115, 1 + %.fca.0.extract51.i = extractvalue { ptr, i32 } %117, 0 + %.fca.1.extract52.i = extractvalue { ptr, i32 } %117, 1 store ptr %.fca.0.extract51.i, ptr %13, align 8 store i32 %.fca.1.extract52.i, ptr %.sroa.254.0..sroa_idx.i, align 8 - %118 = load ptr, ptr %11, align 8 - store ptr %118, ptr %14, align 8 - %119 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %11) #34 - store i64 %119, ptr %69, align 8 - %120 = call { ptr, i32 } @_ZN4llvm12SelectionDAG16getVectorShuffleENS_3EVTERKNS_5SDLocENS_7SDValueES5_NS_8ArrayRefIiEE(ptr noundef nonnull align 8 dereferenceable(904) %7, i16 %1, ptr null, ptr noundef nonnull align 8 dereferenceable(12) %0, ptr %.sroa.056.0.copyload.i, i32 %.sroa.257.0.copyload.i, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %13, ptr noundef nonnull byval(%"class.llvm::ArrayRef.416") align 8 %14) #34 - %.fca.0.extract47.i = extractvalue { ptr, i32 } %120, 0 - %.fca.1.extract48.i = extractvalue { ptr, i32 } %120, 1 + %120 = load ptr, ptr %11, align 8 + store ptr %120, ptr %14, align 8 + %121 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %11) #34 + store i64 %121, ptr %69, align 8 + %122 = call { ptr, i32 } @_ZN4llvm12SelectionDAG16getVectorShuffleENS_3EVTERKNS_5SDLocENS_7SDValueES5_NS_8ArrayRefIiEE(ptr noundef nonnull align 8 dereferenceable(904) %7, i16 %1, ptr null, ptr noundef nonnull align 8 dereferenceable(12) %0, ptr %.sroa.056.0.copyload.i, i32 %.sroa.257.0.copyload.i, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %13, ptr noundef nonnull byval(%"class.llvm::ArrayRef.416") align 8 %14) #34 + %.fca.0.extract47.i = extractvalue { ptr, i32 } %122, 0 + %.fca.1.extract48.i = extractvalue { ptr, i32 } %122, 1 store ptr %.fca.0.extract47.i, ptr %17, align 8 store i32 %.fca.1.extract48.i, ptr %23, align 8 %.sroa.041.0.copyload.i = load ptr, ptr %18, align 8 %.sroa.242.0.copyload.i = load i32, ptr %24, align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %9, i8 0, i64 16, i1 false) - %121 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTE(ptr noundef nonnull align 8 dereferenceable(904) %7, i32 noundef 51, ptr noundef nonnull align 8 dereferenceable(12) %9, i16 %1, ptr null) #34 - %122 = load ptr, ptr %9, align 8 - %.not.i.i.i.i.i.i87.i = icmp eq ptr %122, null - br i1 %.not.i.i.i.i.i.i87.i, label %_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit88.i, label %123 + %123 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTE(ptr noundef nonnull align 8 dereferenceable(904) %7, i32 noundef 51, ptr noundef nonnull align 8 dereferenceable(12) %9, i16 %1, ptr null) #34 + %124 = load ptr, ptr %9, align 8 + %.not.i.i.i.i.i.i87.i = icmp eq ptr %124, null + br i1 %.not.i.i.i.i.i.i87.i, label %_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit88.i, label %125 -123: ; preds = %_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit.i - call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull %9, ptr noundef nonnull align 4 dereferenceable(8) %122) #34 +125: ; preds = %_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit.i + call void @_ZN4llvm16MetadataTracking7untrackEPvRNS_8MetadataE(ptr noundef nonnull %9, ptr noundef nonnull align 4 dereferenceable(8) %124) #34 br label %_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit88.i -_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit88.i: ; preds = %123, %_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit.i +_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit88.i: ; preds = %125, %_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) - %.fca.0.extract36.i = extractvalue { ptr, i32 } %121, 0 - %.fca.1.extract37.i = extractvalue { ptr, i32 } %121, 1 + %.fca.0.extract36.i = extractvalue { ptr, i32 } %123, 0 + %.fca.1.extract37.i = extractvalue { ptr, i32 } %123, 1 store ptr %.fca.0.extract36.i, ptr %15, align 8 store i32 %.fca.1.extract37.i, ptr %.sroa.239.0..sroa_idx.i, align 8 - %124 = load ptr, ptr %12, align 8 - store ptr %124, ptr %16, align 8 - %125 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %12) #34 - store i64 %125, ptr %70, align 8 - %126 = call { ptr, i32 } @_ZN4llvm12SelectionDAG16getVectorShuffleENS_3EVTERKNS_5SDLocENS_7SDValueES5_NS_8ArrayRefIiEE(ptr noundef nonnull align 8 dereferenceable(904) %7, i16 %1, ptr null, ptr noundef nonnull align 8 dereferenceable(12) %0, ptr %.sroa.041.0.copyload.i, i32 %.sroa.242.0.copyload.i, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %15, ptr noundef nonnull byval(%"class.llvm::ArrayRef.416") align 8 %16) #34 - %.fca.0.extract32.i = extractvalue { ptr, i32 } %126, 0 - %.fca.1.extract33.i = extractvalue { ptr, i32 } %126, 1 + %126 = load ptr, ptr %12, align 8 + store ptr %126, ptr %16, align 8 + %127 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %12) #34 + store i64 %127, ptr %70, align 8 + %128 = call { ptr, i32 } @_ZN4llvm12SelectionDAG16getVectorShuffleENS_3EVTERKNS_5SDLocENS_7SDValueES5_NS_8ArrayRefIiEE(ptr noundef nonnull align 8 dereferenceable(904) %7, i16 %1, ptr null, ptr noundef nonnull align 8 dereferenceable(12) %0, ptr %.sroa.041.0.copyload.i, i32 %.sroa.242.0.copyload.i, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %15, ptr noundef nonnull byval(%"class.llvm::ArrayRef.416") align 8 %16) #34 + %.fca.0.extract32.i = extractvalue { ptr, i32 } %128, 0 + %.fca.1.extract33.i = extractvalue { ptr, i32 } %128, 1 store ptr %.fca.0.extract32.i, ptr %18, align 8 store i32 %.fca.1.extract33.i, ptr %24, align 8 - switch i32 %.072, label %134 [ + switch i32 %.072, label %135 [ i32 1, label %_ZN4llvm3MVT12getIntegerVTEj.exit.i - i32 2, label %127 - i32 4, label %128 - i32 8, label %129 - i32 16, label %130 - i32 32, label %131 - i32 64, label %132 - i32 128, label %133 + i32 2, label %129 + i32 4, label %130 + i32 8, label %131 + i32 16, label %132 + i32 32, label %133 + i32 64, label %134 ] -127: ; preds = %_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit88.i - br label %_ZN4llvm3MVT12getIntegerVTEj.exit.i - -128: ; preds = %_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit88.i - br label %_ZN4llvm3MVT12getIntegerVTEj.exit.i - 129: ; preds = %_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit88.i br label %_ZN4llvm3MVT12getIntegerVTEj.exit.i @@ -236520,55 +236518,58 @@ _ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit88.i: ; preds = %123, %_ZN4llvm12Se 134: ; preds = %_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit88.i br label %_ZN4llvm3MVT12getIntegerVTEj.exit.i -_ZN4llvm3MVT12getIntegerVTEj.exit.i: ; preds = %134, %133, %132, %131, %130, %129, %128, %127, %_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit88.i - %.sroa.0.0.i.i54 = phi i16 [ 0, %134 ], [ 9, %133 ], [ 8, %132 ], [ 7, %131 ], [ 6, %130 ], [ 5, %129 ], [ 4, %128 ], [ 3, %127 ], [ 2, %_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit88.i ] - %135 = sdiv i32 %27, %73 - %136 = call i16 @_ZN4llvm3MVT11getVectorVTES0_j(i16 %.sroa.0.0.i.i54, i32 noundef %135) +135: ; preds = %_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit88.i + br label %_ZN4llvm3MVT12getIntegerVTEj.exit.i + +_ZN4llvm3MVT12getIntegerVTEj.exit.i: ; preds = %135, %134, %133, %132, %131, %130, %129, %_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit88.i + %.sroa.0.0.i.i54 = phi i16 [ 0, %135 ], [ 8, %134 ], [ 7, %133 ], [ 6, %132 ], [ 5, %131 ], [ 4, %130 ], [ 3, %129 ], [ 2, %_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE.exit88.i ] + %136 = sdiv i32 %27, %75 + %137 = call i16 @_ZN4llvm3MVT11getVectorVTES0_j(i16 %.sroa.0.0.i.i54, i32 noundef %136) %.sroa.022.0.copyload.i = load ptr, ptr %17, align 8 %.sroa.223.0.copyload.i = load i32, ptr %23, align 8 - %137 = call { ptr, i32 } @_ZN4llvm12SelectionDAG10getBitcastENS_3EVTENS_7SDValueE(ptr noundef nonnull align 8 dereferenceable(904) %7, i16 %136, ptr null, ptr %.sroa.022.0.copyload.i, i32 %.sroa.223.0.copyload.i) #34 - %.fca.0.extract18.i = extractvalue { ptr, i32 } %137, 0 - %.fca.1.extract19.i = extractvalue { ptr, i32 } %137, 1 + %138 = call { ptr, i32 } @_ZN4llvm12SelectionDAG10getBitcastENS_3EVTENS_7SDValueE(ptr noundef nonnull align 8 dereferenceable(904) %7, i16 %137, ptr null, ptr %.sroa.022.0.copyload.i, i32 %.sroa.223.0.copyload.i) #34 + %.fca.0.extract18.i = extractvalue { ptr, i32 } %138, 0 + %.fca.1.extract19.i = extractvalue { ptr, i32 } %138, 1 store ptr %.fca.0.extract18.i, ptr %17, align 8 store i32 %.fca.1.extract19.i, ptr %23, align 8 %.sroa.013.0.copyload.i = load ptr, ptr %18, align 8 %.sroa.214.0.copyload.i = load i32, ptr %24, align 8 - %138 = call { ptr, i32 } @_ZN4llvm12SelectionDAG10getBitcastENS_3EVTENS_7SDValueE(ptr noundef nonnull align 8 dereferenceable(904) %7, i16 %136, ptr null, ptr %.sroa.013.0.copyload.i, i32 %.sroa.214.0.copyload.i) #34 - %.fca.0.extract9.i = extractvalue { ptr, i32 } %138, 0 - %.fca.1.extract10.i = extractvalue { ptr, i32 } %138, 1 + %139 = call { ptr, i32 } @_ZN4llvm12SelectionDAG10getBitcastENS_3EVTENS_7SDValueE(ptr noundef nonnull align 8 dereferenceable(904) %7, i16 %137, ptr null, ptr %.sroa.013.0.copyload.i, i32 %.sroa.214.0.copyload.i) #34 + %.fca.0.extract9.i = extractvalue { ptr, i32 } %139, 0 + %.fca.1.extract10.i = extractvalue { ptr, i32 } %139, 1 store ptr %.fca.0.extract9.i, ptr %18, align 8 store i32 %.fca.1.extract10.i, ptr %24, align 8 - %139 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_(ptr noundef nonnull align 8 dereferenceable(904) %7, i32 noundef %71, ptr noundef nonnull align 8 dereferenceable(12) %0, i16 %136, ptr null, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %17, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %18) #34 - %.fca.0.extract1.i = extractvalue { ptr, i32 } %139, 0 - %.fca.1.extract2.i = extractvalue { ptr, i32 } %139, 1 - %140 = call { ptr, i32 } @_ZN4llvm12SelectionDAG10getBitcastENS_3EVTENS_7SDValueE(ptr noundef nonnull align 8 dereferenceable(904) %7, i16 %1, ptr null, ptr %.fca.0.extract1.i, i32 %.fca.1.extract2.i) #34 - %.fca.0.extract.i = extractvalue { ptr, i32 } %140, 0 - %.fca.1.extract.i = extractvalue { ptr, i32 } %140, 1 + %140 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_(ptr noundef nonnull align 8 dereferenceable(904) %7, i32 noundef %71, ptr noundef nonnull align 8 dereferenceable(12) %0, i16 %137, ptr null, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %17, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %18) #34 + %.fca.0.extract1.i = extractvalue { ptr, i32 } %140, 0 + %.fca.1.extract2.i = extractvalue { ptr, i32 } %140, 1 + %141 = call { ptr, i32 } @_ZN4llvm12SelectionDAG10getBitcastENS_3EVTENS_7SDValueE(ptr noundef nonnull align 8 dereferenceable(904) %7, i16 %1, ptr null, ptr %.fca.0.extract1.i, i32 %.fca.1.extract2.i) #34 + %.fca.0.extract.i = extractvalue { ptr, i32 } %141, 0 + %.fca.1.extract.i = extractvalue { ptr, i32 } %141, 1 br label %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit86.i -_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit86.i: ; preds = %78, %.lr.ph.i79.i, %_ZN4llvm3MVT12getIntegerVTEj.exit.i - %.sroa.6.0.i = phi i32 [ %.fca.1.extract.i, %_ZN4llvm3MVT12getIntegerVTEj.exit.i ], [ 0, %.lr.ph.i79.i ], [ 0, %78 ] - %.sroa.0109.0.i = phi ptr [ %.fca.0.extract.i, %_ZN4llvm3MVT12getIntegerVTEj.exit.i ], [ null, %.lr.ph.i79.i ], [ null, %78 ] - %141 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %12) #34 - %142 = load ptr, ptr %12, align 8 - %143 = icmp eq ptr %142, %64 - br i1 %143, label %_ZN4llvm11SmallVectorIiLj16EED2Ev.exit.i, label %144 +_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit86.i: ; preds = %80, %.lr.ph.i79.i, %_ZN4llvm3MVT12getIntegerVTEj.exit.i + %.sroa.6.0.i = phi i32 [ %.fca.1.extract.i, %_ZN4llvm3MVT12getIntegerVTEj.exit.i ], [ 0, %.lr.ph.i79.i ], [ 0, %80 ] + %.sroa.0109.0.i = phi ptr [ %.fca.0.extract.i, %_ZN4llvm3MVT12getIntegerVTEj.exit.i ], [ null, %.lr.ph.i79.i ], [ null, %80 ] + %142 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %12) #34 + %143 = load ptr, ptr %12, align 8 + %144 = icmp eq ptr %143, %64 + br i1 %144, label %_ZN4llvm11SmallVectorIiLj16EED2Ev.exit.i, label %145 -144: ; preds = %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit86.i - call void @free(ptr noundef %142) #34 +145: ; preds = %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit86.i + call void @free(ptr noundef %143) #34 br label %_ZN4llvm11SmallVectorIiLj16EED2Ev.exit.i -_ZN4llvm11SmallVectorIiLj16EED2Ev.exit.i: ; preds = %144, %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit86.i - %145 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %11) #34 - %146 = load ptr, ptr %11, align 8 - %147 = icmp eq ptr %146, %63 - br i1 %147, label %"_ZZL30lowerShuffleAsPermuteAndUnpackRKN4llvm5SDLocENS_3MVTENS_7SDValueES4_NS_8ArrayRefIiEERKNS_12X86SubtargetERNS_12SelectionDAGEENK3$_2clEii.exit", label %148 +_ZN4llvm11SmallVectorIiLj16EED2Ev.exit.i: ; preds = %145, %_ZL17isNoopShuffleMaskN4llvm8ArrayRefIiEE.exit86.i + %146 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %11) #34 + %147 = load ptr, ptr %11, align 8 + %148 = icmp eq ptr %147, %63 + br i1 %148, label %"_ZZL30lowerShuffleAsPermuteAndUnpackRKN4llvm5SDLocENS_3MVTENS_7SDValueES4_NS_8ArrayRefIiEERKNS_12X86SubtargetERNS_12SelectionDAGEENK3$_2clEii.exit", label %149 -148: ; preds = %_ZN4llvm11SmallVectorIiLj16EED2Ev.exit.i - call void @free(ptr noundef %146) #34 +149: ; preds = %_ZN4llvm11SmallVectorIiLj16EED2Ev.exit.i + call void @free(ptr noundef %147) #34 br label %"_ZZL30lowerShuffleAsPermuteAndUnpackRKN4llvm5SDLocENS_3MVTENS_7SDValueES4_NS_8ArrayRefIiEERKNS_12X86SubtargetERNS_12SelectionDAGEENK3$_2clEii.exit" -"_ZZL30lowerShuffleAsPermuteAndUnpackRKN4llvm5SDLocENS_3MVTENS_7SDValueES4_NS_8ArrayRefIiEERKNS_12X86SubtargetERNS_12SelectionDAGEENK3$_2clEii.exit": ; preds = %_ZN4llvm11SmallVectorIiLj16EED2Ev.exit.i, %148 +"_ZZL30lowerShuffleAsPermuteAndUnpackRKN4llvm5SDLocENS_3MVTENS_7SDValueES4_NS_8ArrayRefIiEERKNS_12X86SubtargetERNS_12SelectionDAGEENK3$_2clEii.exit": ; preds = %_ZN4llvm11SmallVectorIiLj16EED2Ev.exit.i, %149 call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %11) call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %12) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) @@ -236576,93 +236577,88 @@ _ZN4llvm11SmallVectorIiLj16EED2Ev.exit.i: ; preds = %144, %_ZL17isNoopSh call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) %.not65 = icmp eq ptr %.sroa.0109.0.i, null - br i1 %.not65, label %149, label %_ZNK4llvm3MVT15isFloatingPointEv.exit.thread + br i1 %.not65, label %72, label %_ZNK4llvm3MVT15isFloatingPointEv.exit.thread -149: ; preds = %"_ZZL30lowerShuffleAsPermuteAndUnpackRKN4llvm5SDLocENS_3MVTENS_7SDValueES4_NS_8ArrayRefIiEERKNS_12X86SubtargetERNS_12SelectionDAGEENK3$_2clEii.exit" - %150 = sdiv i32 %.072, 2 - %.not = icmp slt i32 %150, %61 - br i1 %.not, label %._crit_edge.loopexit, label %72, !llvm.loop !2019 - -._crit_edge.loopexit: ; preds = %149 +._crit_edge.loopexit: ; preds = %72 %.pre = load ptr, ptr %17, align 8 br label %._crit_edge ._crit_edge: ; preds = %._crit_edge.loopexit, %"_ZN4llvm8count_ifIRNS_8ArrayRefIiEEZL30lowerShuffleAsPermuteAndUnpackRKNS_5SDLocENS_3MVTENS_7SDValueES8_S2_RKNS_12X86SubtargetERNS_12SelectionDAGEE3$_1EEDaOT_T0_.exit.thread" - %151 = phi ptr [ %.pre, %._crit_edge.loopexit ], [ %2, %"_ZN4llvm8count_ifIRNS_8ArrayRefIiEEZL30lowerShuffleAsPermuteAndUnpackRKNS_5SDLocENS_3MVTENS_7SDValueES8_S2_RKNS_12X86SubtargetERNS_12SelectionDAGEE3$_1EEDaOT_T0_.exit.thread" ] - %152 = call noundef zeroext i1 @_ZN4llvm3ISD21isBuildVectorAllZerosEPKNS_6SDNodeE(ptr noundef %151) #34 - br i1 %152, label %_ZNK4llvm3MVT15isFloatingPointEv.exit.thread, label %153 - -153: ; preds = %._crit_edge - %154 = load ptr, ptr %18, align 8 - %155 = call noundef zeroext i1 @_ZN4llvm3ISD21isBuildVectorAllZerosEPKNS_6SDNodeE(ptr noundef %154) #34 - %.not67 = xor i1 %155, true + %150 = phi ptr [ %.pre, %._crit_edge.loopexit ], [ %2, %"_ZN4llvm8count_ifIRNS_8ArrayRefIiEEZL30lowerShuffleAsPermuteAndUnpackRKNS_5SDLocENS_3MVTENS_7SDValueES8_S2_RKNS_12X86SubtargetERNS_12SelectionDAGEE3$_1EEDaOT_T0_.exit.thread" ] + %151 = call noundef zeroext i1 @_ZN4llvm3ISD21isBuildVectorAllZerosEPKNS_6SDNodeE(ptr noundef %150) #34 + br i1 %151, label %_ZNK4llvm3MVT15isFloatingPointEv.exit.thread, label %152 + +152: ; preds = %._crit_edge + %153 = load ptr, ptr %18, align 8 + %154 = call noundef zeroext i1 @_ZN4llvm3ISD21isBuildVectorAllZerosEPKNS_6SDNodeE(ptr noundef %153) #34 + %.not67 = xor i1 %154, true %or.cond = select i1 %55, i1 true, i1 %54 %or.cond68 = select i1 %.not67, i1 %or.cond, i1 false - br i1 %or.cond68, label %156, label %_ZNK4llvm3MVT15isFloatingPointEv.exit.thread + br i1 %or.cond68, label %155, label %_ZNK4llvm3MVT15isFloatingPointEv.exit.thread -156: ; preds = %153 +155: ; preds = %152 %.neg = sdiv i32 %27, -2 %.neg41 = select i1 %55, i32 %.neg, i32 0 - %157 = and i64 %26, 4294967295 + %156 = and i64 %26, 4294967295 store i32 -1, ptr %20, align 4 - call void @_ZN4llvm11SmallVectorIiLj32EEC2EmRKi(ptr noundef nonnull align 8 dereferenceable(144) %19, i64 noundef %157, ptr noundef nonnull align 4 dereferenceable(4) %20) - %158 = icmp sgt i32 %27, 0 - br i1 %158, label %.lr.ph75, label %._crit_edge76 + call void @_ZN4llvm11SmallVectorIiLj32EEC2EmRKi(ptr noundef nonnull align 8 dereferenceable(144) %19, i64 noundef %156, ptr noundef nonnull align 4 dereferenceable(4) %20) + %157 = icmp sgt i32 %27, 0 + br i1 %157, label %.lr.ph75, label %._crit_edge76 -.lr.ph75: ; preds = %156 - %159 = load ptr, ptr %6, align 8 +.lr.ph75: ; preds = %155 + %158 = load ptr, ptr %6, align 8 %wide.trip.count = and i64 %26, 2147483647 - br label %160 - -160: ; preds = %.lr.ph75, %173 - %indvars.iv = phi i64 [ 0, %.lr.ph75 ], [ %indvars.iv.next, %173 ] - %161 = getelementptr inbounds i32, ptr %159, i64 %indvars.iv - %162 = load i32, ptr %161, align 4 - %163 = icmp slt i32 %162, 0 - br i1 %163, label %173, label %164 + br label %159 -164: ; preds = %160 - %165 = urem i32 %162, %27 - %166 = add i32 %165, %.neg41 - %167 = shl nsw i32 %166, 1 - %168 = icmp sge i32 %162, %27 - %169 = zext i1 %168 to i32 - %170 = or disjoint i32 %167, %169 - %171 = load ptr, ptr %19, align 8 - %172 = getelementptr inbounds i32, ptr %171, i64 %indvars.iv - store i32 %170, ptr %172, align 4 - br label %173 +159: ; preds = %.lr.ph75, %172 + %indvars.iv = phi i64 [ 0, %.lr.ph75 ], [ %indvars.iv.next, %172 ] + %160 = getelementptr inbounds i32, ptr %158, i64 %indvars.iv + %161 = load i32, ptr %160, align 4 + %162 = icmp slt i32 %161, 0 + br i1 %162, label %172, label %163 + +163: ; preds = %159 + %164 = urem i32 %161, %27 + %165 = add i32 %164, %.neg41 + %166 = shl nsw i32 %165, 1 + %167 = icmp sge i32 %161, %27 + %168 = zext i1 %167 to i32 + %169 = or disjoint i32 %166, %168 + %170 = load ptr, ptr %19, align 8 + %171 = getelementptr inbounds i32, ptr %170, i64 %indvars.iv + store i32 %169, ptr %171, align 4 + br label %172 -173: ; preds = %160, %164 +172: ; preds = %159, %163 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond84.not = icmp eq i64 %indvars.iv.next, %wide.trip.count - br i1 %exitcond84.not, label %._crit_edge76, label %160, !llvm.loop !2020 - -._crit_edge76: ; preds = %173, %156 - %174 = select i1 %55, i32 681, i32 680 - %175 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_(ptr noundef nonnull align 8 dereferenceable(904) %7, i32 noundef %174, ptr noundef nonnull align 8 dereferenceable(12) %0, i16 %1, ptr null, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %17, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %18) #34 - %.fca.0.extract7 = extractvalue { ptr, i32 } %175, 0 - %.fca.1.extract8 = extractvalue { ptr, i32 } %175, 1 - %176 = call { ptr, i32 } @_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE(ptr noundef nonnull align 8 dereferenceable(904) %7, i16 %1, ptr null) - %.fca.0.extract2 = extractvalue { ptr, i32 } %176, 0 - %.fca.1.extract3 = extractvalue { ptr, i32 } %176, 1 + br i1 %exitcond84.not, label %._crit_edge76, label %159, !llvm.loop !2020 + +._crit_edge76: ; preds = %172, %155 + %173 = select i1 %55, i32 681, i32 680 + %174 = call { ptr, i32 } @_ZN4llvm12SelectionDAG7getNodeEjRKNS_5SDLocENS_3EVTENS_7SDValueES5_(ptr noundef nonnull align 8 dereferenceable(904) %7, i32 noundef %173, ptr noundef nonnull align 8 dereferenceable(12) %0, i16 %1, ptr null, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %17, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %18) #34 + %.fca.0.extract7 = extractvalue { ptr, i32 } %174, 0 + %.fca.1.extract8 = extractvalue { ptr, i32 } %174, 1 + %175 = call { ptr, i32 } @_ZN4llvm12SelectionDAG8getUNDEFENS_3EVTE(ptr noundef nonnull align 8 dereferenceable(904) %7, i16 %1, ptr null) + %.fca.0.extract2 = extractvalue { ptr, i32 } %175, 0 + %.fca.1.extract3 = extractvalue { ptr, i32 } %175, 1 store ptr %.fca.0.extract2, ptr %21, align 8 %.sroa.25.0..sroa_idx = getelementptr inbounds i8, ptr %21, i64 8 store i32 %.fca.1.extract3, ptr %.sroa.25.0..sroa_idx, align 8 - %177 = load ptr, ptr %19, align 8 - store ptr %177, ptr %22, align 8 - %178 = getelementptr inbounds nuw i8, ptr %22, i64 8 - %179 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %19) #34 - store i64 %179, ptr %178, align 8 - %180 = call { ptr, i32 } @_ZN4llvm12SelectionDAG16getVectorShuffleENS_3EVTERKNS_5SDLocENS_7SDValueES5_NS_8ArrayRefIiEE(ptr noundef nonnull align 8 dereferenceable(904) %7, i16 %1, ptr null, ptr noundef nonnull align 8 dereferenceable(12) %0, ptr %.fca.0.extract7, i32 %.fca.1.extract8, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %21, ptr noundef nonnull byval(%"class.llvm::ArrayRef.416") align 8 %22) #34 - %.fca.0.extract = extractvalue { ptr, i32 } %180, 0 - %.fca.1.extract = extractvalue { ptr, i32 } %180, 1 + %176 = load ptr, ptr %19, align 8 + store ptr %176, ptr %22, align 8 + %177 = getelementptr inbounds nuw i8, ptr %22, i64 8 + %178 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %19) #34 + store i64 %178, ptr %177, align 8 + %179 = call { ptr, i32 } @_ZN4llvm12SelectionDAG16getVectorShuffleENS_3EVTERKNS_5SDLocENS_7SDValueES5_NS_8ArrayRefIiEE(ptr noundef nonnull align 8 dereferenceable(904) %7, i16 %1, ptr null, ptr noundef nonnull align 8 dereferenceable(12) %0, ptr %.fca.0.extract7, i32 %.fca.1.extract8, ptr noundef nonnull byval(%"class.llvm::SDValue") align 8 %21, ptr noundef nonnull byval(%"class.llvm::ArrayRef.416") align 8 %22) #34 + %.fca.0.extract = extractvalue { ptr, i32 } %179, 0 + %.fca.1.extract = extractvalue { ptr, i32 } %179, 1 call void @_ZN4llvm11SmallVectorIiLj32EED2Ev(ptr noundef nonnull align 8 dereferenceable(144) %19) #34 br label %_ZNK4llvm3MVT15isFloatingPointEv.exit.thread -_ZNK4llvm3MVT15isFloatingPointEv.exit.thread: ; preds = %"_ZZL30lowerShuffleAsPermuteAndUnpackRKN4llvm5SDLocENS_3MVTENS_7SDValueES4_NS_8ArrayRefIiEERKNS_12X86SubtargetERNS_12SelectionDAGEENK3$_2clEii.exit", %8, %._crit_edge, %153, %_ZNK4llvm3MVT14is128BitVectorEv.exit, %33, %._crit_edge76 - %.sroa.10.1 = phi i32 [ %.fca.1.extract, %._crit_edge76 ], [ 0, %33 ], [ 0, %_ZNK4llvm3MVT14is128BitVectorEv.exit ], [ 0, %153 ], [ 0, %._crit_edge ], [ 0, %8 ], [ %.sroa.6.0.i, %"_ZZL30lowerShuffleAsPermuteAndUnpackRKN4llvm5SDLocENS_3MVTENS_7SDValueES4_NS_8ArrayRefIiEERKNS_12X86SubtargetERNS_12SelectionDAGEENK3$_2clEii.exit" ] - %.sroa.026.1 = phi ptr [ %.fca.0.extract, %._crit_edge76 ], [ null, %33 ], [ null, %_ZNK4llvm3MVT14is128BitVectorEv.exit ], [ null, %153 ], [ null, %._crit_edge ], [ null, %8 ], [ %.sroa.0109.0.i, %"_ZZL30lowerShuffleAsPermuteAndUnpackRKN4llvm5SDLocENS_3MVTENS_7SDValueES4_NS_8ArrayRefIiEERKNS_12X86SubtargetERNS_12SelectionDAGEENK3$_2clEii.exit" ] +_ZNK4llvm3MVT15isFloatingPointEv.exit.thread: ; preds = %"_ZZL30lowerShuffleAsPermuteAndUnpackRKN4llvm5SDLocENS_3MVTENS_7SDValueES4_NS_8ArrayRefIiEERKNS_12X86SubtargetERNS_12SelectionDAGEENK3$_2clEii.exit", %8, %._crit_edge, %152, %_ZNK4llvm3MVT14is128BitVectorEv.exit, %33, %._crit_edge76 + %.sroa.10.1 = phi i32 [ %.fca.1.extract, %._crit_edge76 ], [ 0, %33 ], [ 0, %_ZNK4llvm3MVT14is128BitVectorEv.exit ], [ 0, %152 ], [ 0, %._crit_edge ], [ 0, %8 ], [ %.sroa.6.0.i, %"_ZZL30lowerShuffleAsPermuteAndUnpackRKN4llvm5SDLocENS_3MVTENS_7SDValueES4_NS_8ArrayRefIiEERKNS_12X86SubtargetERNS_12SelectionDAGEENK3$_2clEii.exit" ] + %.sroa.026.1 = phi ptr [ %.fca.0.extract, %._crit_edge76 ], [ null, %33 ], [ null, %_ZNK4llvm3MVT14is128BitVectorEv.exit ], [ null, %152 ], [ null, %._crit_edge ], [ null, %8 ], [ %.sroa.0109.0.i, %"_ZZL30lowerShuffleAsPermuteAndUnpackRKN4llvm5SDLocENS_3MVTENS_7SDValueES4_NS_8ArrayRefIiEERKNS_12X86SubtargetERNS_12SelectionDAGEENK3$_2clEii.exit" ] %.fca.0.insert = insertvalue { ptr, i32 } poison, ptr %.sroa.026.1, 0 %.fca.1.insert = insertvalue { ptr, i32 } %.fca.0.insert, i32 %.sroa.10.1, 1 ret { ptr, i32 } %.fca.1.insert diff --git a/bench/opencv/optimized/graycodepattern.cpp.ll b/bench/opencv/optimized/graycodepattern.cpp.ll index beadf20091e..8da7a399df2 100644 --- a/bench/opencv/optimized/graycodepattern.cpp.ll +++ b/bench/opencv/optimized/graycodepattern.cpp.ll @@ -378,7 +378,7 @@ _ZNSt6vectorIN2cv3MatESaIS1_EE6resizeEm.exit: ; preds = %16, %18, %20, %_ZSt resume { ptr, i32 } %43 .preheader: ; preds = %._crit_edge103, %.lr.ph105, %.preheader94 - %44 = phi i32 [ %27, %.preheader94 ], [ %27, %.lr.ph105 ], [ %99, %._crit_edge103 ] + %44 = phi i32 [ %27, %.preheader94 ], [ %27, %.lr.ph105 ], [ %95, %._crit_edge103 ] %45 = getelementptr inbounds i8, ptr %0, i64 12 %46 = load i32, ptr %45, align 4 %47 = icmp sgt i32 %46, 0 @@ -392,9 +392,9 @@ _ZNSt6vectorIN2cv3MatESaIS1_EE6resizeEm.exit: ; preds = %16, %18, %20, %_ZSt br i1 %.not123, label %._crit_edge119, label %.lr.ph118.split .lr.ph105.split: ; preds = %.lr.ph105, %._crit_edge103 - %51 = phi i32 [ %99, %._crit_edge103 ], [ %27, %.lr.ph105 ] - %52 = phi i64 [ %100, %._crit_edge103 ], [ %31, %.lr.ph105 ] - %53 = phi i64 [ %101, %._crit_edge103 ], [ 1, %.lr.ph105 ] + %51 = phi i32 [ %95, %._crit_edge103 ], [ %27, %.lr.ph105 ] + %52 = phi i64 [ %96, %._crit_edge103 ], [ %31, %.lr.ph105 ] + %53 = phi i64 [ %97, %._crit_edge103 ], [ 1, %.lr.ph105 ] %indvars.iv128 = phi i64 [ %indvars.iv.next129, %._crit_edge103 ], [ 0, %.lr.ph105 ] %.not122 = icmp eq i64 %53, 0 br i1 %.not122, label %._crit_edge103, label %.lr.ph102 @@ -405,200 +405,180 @@ _ZNSt6vectorIN2cv3MatESaIS1_EE6resizeEm.exit: ; preds = %16, %18, %20, %_ZSt br label %56 56: ; preds = %.lr.ph102, %._crit_edge - %57 = phi i64 [ %52, %.lr.ph102 ], [ %96, %._crit_edge ] - %.076100 = phi i64 [ 0, %.lr.ph102 ], [ %97, %._crit_edge ] + %57 = phi i64 [ %52, %.lr.ph102 ], [ %92, %._crit_edge ] + %.076100 = phi i64 [ 0, %.lr.ph102 ], [ %93, %._crit_edge ] %.07799 = phi i32 [ %55, %.lr.ph102 ], [ %59, %._crit_edge ] %.07898 = phi i32 [ %54, %.lr.ph102 ], [ %58, %._crit_edge ] - %58 = sdiv i32 %.07898, 2 - %59 = srem i32 %58, 2 + %58 = lshr i32 %.07898, 1 + %59 = and i32 %58, 1 %60 = icmp eq i32 %59, 0 - %61 = icmp eq i32 %.07799, 1 - %or.cond = and i1 %61, %60 - br i1 %or.cond, label %66, label %62 - -62: ; preds = %56 - %63 = icmp ne i32 %59, 1 - %64 = icmp ne i32 %.07799, 0 - %or.cond3.not = or i1 %64, %63 - %not.or.cond3.not = xor i1 %or.cond3.not, true - %spec.select84 = sext i1 %not.or.cond3.not to i8 - %65 = sext i1 %or.cond3.not to i8 - br label %66 - -66: ; preds = %62, %56 - %.not82 = phi i8 [ 0, %56 ], [ %65, %62 ] - %.080 = phi i8 [ -1, %56 ], [ %spec.select84, %62 ] - %67 = load i32, ptr %30, align 4 - %68 = icmp sgt i32 %67, 0 - br i1 %68, label %.lr.ph97, label %._crit_edge - -.lr.ph97: ; preds = %66, %.lr.ph97 - %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph97 ], [ 0, %66 ] - %69 = load i64, ptr %29, align 8 - %70 = sub i64 %69, %.076100 - %71 = load ptr, ptr %5, align 8 - %.idx92 = mul i64 %70, 192 - %72 = getelementptr i8, ptr %71, i64 %.idx92 - %73 = getelementptr i8, ptr %72, i64 -176 - %74 = load ptr, ptr %73, align 8 - %75 = getelementptr i8, ptr %72, i64 -120 - %76 = load ptr, ptr %75, align 8 - %77 = load i64, ptr %76, align 8 - %78 = mul i64 %77, %indvars.iv - %79 = getelementptr inbounds i8, ptr %74, i64 %78 - %80 = getelementptr inbounds i8, ptr %79, i64 %indvars.iv128 - store i8 %.080, ptr %80, align 1 - %81 = load i64, ptr %29, align 8 - %82 = sub i64 %81, %.076100 - %83 = load ptr, ptr %5, align 8 - %.idx93 = mul i64 %82, 192 - %84 = getelementptr i8, ptr %83, i64 %.idx93 - %85 = getelementptr i8, ptr %84, i64 -80 - %86 = load ptr, ptr %85, align 8 - %87 = getelementptr i8, ptr %84, i64 -24 - %88 = load ptr, ptr %87, align 8 - %89 = load i64, ptr %88, align 8 - %90 = mul i64 %89, %indvars.iv - %91 = getelementptr inbounds i8, ptr %86, i64 %90 - %92 = getelementptr inbounds i8, ptr %91, i64 %indvars.iv128 - store i8 %.not82, ptr %92, align 1 + %61 = icmp ne i32 %.07799, 0 + %narrow = xor i1 %61, %60 + %.not82 = sext i1 %narrow to i8 + %62 = xor i1 %61, %60 + %narrow144 = xor i1 %62, true + %.080 = sext i1 %narrow144 to i8 + %63 = load i32, ptr %30, align 4 + %64 = icmp sgt i32 %63, 0 + br i1 %64, label %.lr.ph97, label %._crit_edge + +.lr.ph97: ; preds = %56, %.lr.ph97 + %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph97 ], [ 0, %56 ] + %65 = load i64, ptr %29, align 8 + %66 = sub i64 %65, %.076100 + %67 = load ptr, ptr %5, align 8 + %.idx92 = mul i64 %66, 192 + %68 = getelementptr i8, ptr %67, i64 %.idx92 + %69 = getelementptr i8, ptr %68, i64 -176 + %70 = load ptr, ptr %69, align 8 + %71 = getelementptr i8, ptr %68, i64 -120 + %72 = load ptr, ptr %71, align 8 + %73 = load i64, ptr %72, align 8 + %74 = mul i64 %73, %indvars.iv + %75 = getelementptr inbounds i8, ptr %70, i64 %74 + %76 = getelementptr inbounds i8, ptr %75, i64 %indvars.iv128 + store i8 %.080, ptr %76, align 1 + %77 = load i64, ptr %29, align 8 + %78 = sub i64 %77, %.076100 + %79 = load ptr, ptr %5, align 8 + %.idx93 = mul i64 %78, 192 + %80 = getelementptr i8, ptr %79, i64 %.idx93 + %81 = getelementptr i8, ptr %80, i64 -80 + %82 = load ptr, ptr %81, align 8 + %83 = getelementptr i8, ptr %80, i64 -24 + %84 = load ptr, ptr %83, align 8 + %85 = load i64, ptr %84, align 8 + %86 = mul i64 %85, %indvars.iv + %87 = getelementptr inbounds i8, ptr %82, i64 %86 + %88 = getelementptr inbounds i8, ptr %87, i64 %indvars.iv128 + store i8 %.not82, ptr %88, align 1 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %93 = load i32, ptr %30, align 4 - %94 = sext i32 %93 to i64 - %95 = icmp slt i64 %indvars.iv.next, %94 - br i1 %95, label %.lr.ph97, label %._crit_edge.loopexit, !llvm.loop !7 + %89 = load i32, ptr %30, align 4 + %90 = sext i32 %89 to i64 + %91 = icmp slt i64 %indvars.iv.next, %90 + br i1 %91, label %.lr.ph97, label %._crit_edge.loopexit, !llvm.loop !7 ._crit_edge.loopexit: ; preds = %.lr.ph97 %.pre = load i64, ptr %29, align 8 br label %._crit_edge -._crit_edge: ; preds = %._crit_edge.loopexit, %66 - %96 = phi i64 [ %.pre, %._crit_edge.loopexit ], [ %57, %66 ] - %97 = add nuw i64 %.076100, 1 - %98 = icmp ult i64 %97, %96 - br i1 %98, label %56, label %._crit_edge103.loopexit, !llvm.loop !8 +._crit_edge: ; preds = %._crit_edge.loopexit, %56 + %92 = phi i64 [ %.pre, %._crit_edge.loopexit ], [ %57, %56 ] + %93 = add nuw i64 %.076100, 1 + %94 = icmp ult i64 %93, %92 + br i1 %94, label %56, label %._crit_edge103.loopexit, !llvm.loop !8 ._crit_edge103.loopexit: ; preds = %._crit_edge %.pre137 = load i32, ptr %26, align 8 br label %._crit_edge103 ._crit_edge103: ; preds = %._crit_edge103.loopexit, %.lr.ph105.split - %99 = phi i32 [ %.pre137, %._crit_edge103.loopexit ], [ %51, %.lr.ph105.split ] - %100 = phi i64 [ %96, %._crit_edge103.loopexit ], [ %52, %.lr.ph105.split ] - %101 = phi i64 [ %96, %._crit_edge103.loopexit ], [ 0, %.lr.ph105.split ] + %95 = phi i32 [ %.pre137, %._crit_edge103.loopexit ], [ %51, %.lr.ph105.split ] + %96 = phi i64 [ %92, %._crit_edge103.loopexit ], [ %52, %.lr.ph105.split ] + %97 = phi i64 [ %92, %._crit_edge103.loopexit ], [ 0, %.lr.ph105.split ] %indvars.iv.next129 = add nuw nsw i64 %indvars.iv128, 1 - %102 = sext i32 %99 to i64 - %103 = icmp slt i64 %indvars.iv.next129, %102 - br i1 %103, label %.lr.ph105.split, label %.preheader, !llvm.loop !9 + %98 = sext i32 %95 to i64 + %99 = icmp slt i64 %indvars.iv.next129, %98 + br i1 %99, label %.lr.ph105.split, label %.preheader, !llvm.loop !9 .lr.ph118.split: ; preds = %.lr.ph118, %._crit_edge116 - %104 = phi i32 [ %158, %._crit_edge116 ], [ %46, %.lr.ph118 ] - %105 = phi i64 [ %159, %._crit_edge116 ], [ %50, %.lr.ph118 ] - %106 = phi i32 [ %160, %._crit_edge116 ], [ %44, %.lr.ph118 ] - %107 = phi i64 [ %161, %._crit_edge116 ], [ 1, %.lr.ph118 ] + %100 = phi i32 [ %150, %._crit_edge116 ], [ %46, %.lr.ph118 ] + %101 = phi i64 [ %151, %._crit_edge116 ], [ %50, %.lr.ph118 ] + %102 = phi i32 [ %152, %._crit_edge116 ], [ %44, %.lr.ph118 ] + %103 = phi i64 [ %153, %._crit_edge116 ], [ 1, %.lr.ph118 ] %indvars.iv134 = phi i64 [ %indvars.iv.next135, %._crit_edge116 ], [ 0, %.lr.ph118 ] - %.not124 = icmp eq i64 %107, 0 + %.not124 = icmp eq i64 %103, 0 br i1 %.not124, label %._crit_edge116, label %.lr.ph115 .lr.ph115: ; preds = %.lr.ph118.split - %108 = trunc nuw nsw i64 %indvars.iv134 to i32 - %109 = and i32 %108, 1 - br label %110 + %104 = trunc nuw nsw i64 %indvars.iv134 to i32 + %105 = and i32 %104, 1 + br label %106 -110: ; preds = %.lr.ph115, %._crit_edge109 - %111 = phi i64 [ %105, %.lr.ph115 ], [ %154, %._crit_edge109 ] - %112 = phi i32 [ %106, %.lr.ph115 ], [ %155, %._crit_edge109 ] +106: ; preds = %.lr.ph115, %._crit_edge109 + %107 = phi i64 [ %101, %.lr.ph115 ], [ %146, %._crit_edge109 ] + %108 = phi i32 [ %102, %.lr.ph115 ], [ %147, %._crit_edge109 ] %.070.neg113 = phi i64 [ 0, %.lr.ph115 ], [ %.070.neg, %._crit_edge109 ] - %.070112 = phi i64 [ 0, %.lr.ph115 ], [ %156, %._crit_edge109 ] - %.071111 = phi i32 [ %109, %.lr.ph115 ], [ %114, %._crit_edge109 ] - %.072110 = phi i32 [ %108, %.lr.ph115 ], [ %113, %._crit_edge109 ] - %113 = sdiv i32 %.072110, 2 - %114 = srem i32 %113, 2 - %115 = icmp eq i32 %114, 0 - %116 = icmp eq i32 %.071111, 1 - %or.cond5 = and i1 %116, %115 - br i1 %or.cond5, label %121, label %117 - -117: ; preds = %110 - %118 = icmp ne i32 %114, 1 - %119 = icmp ne i32 %.071111, 0 - %or.cond7.not = or i1 %119, %118 - %not.or.cond7.not = xor i1 %or.cond7.not, true - %spec.select86 = sext i1 %not.or.cond7.not to i8 - %120 = sext i1 %or.cond7.not to i8 - br label %121 - -121: ; preds = %117, %110 - %.not = phi i8 [ 0, %110 ], [ %120, %117 ] - %.1 = phi i8 [ -1, %110 ], [ %spec.select86, %117 ] - %122 = icmp sgt i32 %112, 0 - br i1 %122, label %.lr.ph108, label %._crit_edge109 - -.lr.ph108: ; preds = %121, %.lr.ph108 - %indvars.iv131 = phi i64 [ %indvars.iv.next132, %.lr.ph108 ], [ 0, %121 ] - %123 = load i64, ptr %48, align 8 - %124 = add i64 %123, %.070.neg113 - %125 = load i64, ptr %49, align 8 - %126 = add i64 %124, %125 - %127 = load ptr, ptr %5, align 8 - %.idx = mul i64 %126, 192 - %128 = getelementptr i8, ptr %127, i64 %.idx - %129 = getelementptr i8, ptr %128, i64 -176 - %130 = load ptr, ptr %129, align 8 - %131 = getelementptr i8, ptr %128, i64 -120 - %132 = load ptr, ptr %131, align 8 - %133 = load i64, ptr %132, align 8 - %134 = mul i64 %133, %indvars.iv134 - %135 = getelementptr inbounds i8, ptr %130, i64 %134 - %136 = getelementptr inbounds i8, ptr %135, i64 %indvars.iv131 - store i8 %.1, ptr %136, align 1 - %137 = load i64, ptr %48, align 8 - %138 = add i64 %137, %.070.neg113 - %139 = load i64, ptr %49, align 8 - %140 = add i64 %138, %139 - %141 = load ptr, ptr %5, align 8 - %.idx89 = mul i64 %140, 192 - %142 = getelementptr i8, ptr %141, i64 %.idx89 - %143 = getelementptr i8, ptr %142, i64 -80 - %144 = load ptr, ptr %143, align 8 - %145 = getelementptr i8, ptr %142, i64 -24 - %146 = load ptr, ptr %145, align 8 - %147 = load i64, ptr %146, align 8 - %148 = mul i64 %147, %indvars.iv134 - %149 = getelementptr inbounds i8, ptr %144, i64 %148 - %150 = getelementptr inbounds i8, ptr %149, i64 %indvars.iv131 - store i8 %.not, ptr %150, align 1 + %.070112 = phi i64 [ 0, %.lr.ph115 ], [ %148, %._crit_edge109 ] + %.071111 = phi i32 [ %105, %.lr.ph115 ], [ %110, %._crit_edge109 ] + %.072110 = phi i32 [ %104, %.lr.ph115 ], [ %109, %._crit_edge109 ] + %109 = lshr i32 %.072110, 1 + %110 = and i32 %109, 1 + %111 = icmp eq i32 %110, 0 + %112 = icmp ne i32 %.071111, 0 + %narrow145 = xor i1 %112, %111 + %.not = sext i1 %narrow145 to i8 + %113 = xor i1 %112, %111 + %narrow146 = xor i1 %113, true + %.1 = sext i1 %narrow146 to i8 + %114 = icmp sgt i32 %108, 0 + br i1 %114, label %.lr.ph108, label %._crit_edge109 + +.lr.ph108: ; preds = %106, %.lr.ph108 + %indvars.iv131 = phi i64 [ %indvars.iv.next132, %.lr.ph108 ], [ 0, %106 ] + %115 = load i64, ptr %48, align 8 + %116 = add i64 %115, %.070.neg113 + %117 = load i64, ptr %49, align 8 + %118 = add i64 %116, %117 + %119 = load ptr, ptr %5, align 8 + %.idx = mul i64 %118, 192 + %120 = getelementptr i8, ptr %119, i64 %.idx + %121 = getelementptr i8, ptr %120, i64 -176 + %122 = load ptr, ptr %121, align 8 + %123 = getelementptr i8, ptr %120, i64 -120 + %124 = load ptr, ptr %123, align 8 + %125 = load i64, ptr %124, align 8 + %126 = mul i64 %125, %indvars.iv134 + %127 = getelementptr inbounds i8, ptr %122, i64 %126 + %128 = getelementptr inbounds i8, ptr %127, i64 %indvars.iv131 + store i8 %.1, ptr %128, align 1 + %129 = load i64, ptr %48, align 8 + %130 = add i64 %129, %.070.neg113 + %131 = load i64, ptr %49, align 8 + %132 = add i64 %130, %131 + %133 = load ptr, ptr %5, align 8 + %.idx89 = mul i64 %132, 192 + %134 = getelementptr i8, ptr %133, i64 %.idx89 + %135 = getelementptr i8, ptr %134, i64 -80 + %136 = load ptr, ptr %135, align 8 + %137 = getelementptr i8, ptr %134, i64 -24 + %138 = load ptr, ptr %137, align 8 + %139 = load i64, ptr %138, align 8 + %140 = mul i64 %139, %indvars.iv134 + %141 = getelementptr inbounds i8, ptr %136, i64 %140 + %142 = getelementptr inbounds i8, ptr %141, i64 %indvars.iv131 + store i8 %.not, ptr %142, align 1 %indvars.iv.next132 = add nuw nsw i64 %indvars.iv131, 1 - %151 = load i32, ptr %26, align 8 - %152 = sext i32 %151 to i64 - %153 = icmp slt i64 %indvars.iv.next132, %152 - br i1 %153, label %.lr.ph108, label %._crit_edge109.loopexit, !llvm.loop !11 + %143 = load i32, ptr %26, align 8 + %144 = sext i32 %143 to i64 + %145 = icmp slt i64 %indvars.iv.next132, %144 + br i1 %145, label %.lr.ph108, label %._crit_edge109.loopexit, !llvm.loop !11 ._crit_edge109.loopexit: ; preds = %.lr.ph108 %.pre138 = load i64, ptr %48, align 8 br label %._crit_edge109 -._crit_edge109: ; preds = %._crit_edge109.loopexit, %121 - %154 = phi i64 [ %.pre138, %._crit_edge109.loopexit ], [ %111, %121 ] - %155 = phi i32 [ %151, %._crit_edge109.loopexit ], [ %112, %121 ] - %156 = add nuw i64 %.070112, 1 +._crit_edge109: ; preds = %._crit_edge109.loopexit, %106 + %146 = phi i64 [ %.pre138, %._crit_edge109.loopexit ], [ %107, %106 ] + %147 = phi i32 [ %143, %._crit_edge109.loopexit ], [ %108, %106 ] + %148 = add nuw i64 %.070112, 1 %.070.neg = xor i64 %.070112, -1 - %157 = icmp ult i64 %156, %154 - br i1 %157, label %110, label %._crit_edge116.loopexit, !llvm.loop !12 + %149 = icmp ult i64 %148, %146 + br i1 %149, label %106, label %._crit_edge116.loopexit, !llvm.loop !12 ._crit_edge116.loopexit: ; preds = %._crit_edge109 %.pre139 = load i32, ptr %45, align 4 br label %._crit_edge116 ._crit_edge116: ; preds = %._crit_edge116.loopexit, %.lr.ph118.split - %158 = phi i32 [ %.pre139, %._crit_edge116.loopexit ], [ %104, %.lr.ph118.split ] - %159 = phi i64 [ %154, %._crit_edge116.loopexit ], [ %105, %.lr.ph118.split ] - %160 = phi i32 [ %155, %._crit_edge116.loopexit ], [ %106, %.lr.ph118.split ] - %161 = phi i64 [ %154, %._crit_edge116.loopexit ], [ 0, %.lr.ph118.split ] + %150 = phi i32 [ %.pre139, %._crit_edge116.loopexit ], [ %100, %.lr.ph118.split ] + %151 = phi i64 [ %146, %._crit_edge116.loopexit ], [ %101, %.lr.ph118.split ] + %152 = phi i32 [ %147, %._crit_edge116.loopexit ], [ %102, %.lr.ph118.split ] + %153 = phi i64 [ %146, %._crit_edge116.loopexit ], [ 0, %.lr.ph118.split ] %indvars.iv.next135 = add nuw nsw i64 %indvars.iv134, 1 - %162 = sext i32 %158 to i64 - %163 = icmp slt i64 %indvars.iv.next135, %162 - br i1 %163, label %.lr.ph118.split, label %._crit_edge119, !llvm.loop !13 + %154 = sext i32 %150 to i64 + %155 = icmp slt i64 %indvars.iv.next135, %154 + br i1 %155, label %.lr.ph118.split, label %._crit_edge119, !llvm.loop !13 ._crit_edge119: ; preds = %._crit_edge116, %.lr.ph118, %.preheader ret i1 true diff --git a/bench/openjdk/optimized/img_globals.ll b/bench/openjdk/optimized/img_globals.ll index bc061cf1e61..ff146634b56 100644 --- a/bench/openjdk/optimized/img_globals.ll +++ b/bench/openjdk/optimized/img_globals.ll @@ -10,7 +10,7 @@ define void @make_uns_ordered_dither_array(ptr nocapture noundef %0, i32 noundef .preheader52: ; preds = %2, %18 %.055 = phi i32 [ 1, %2 ], [ %19, %18 ] - %3 = zext nneg i32 %.055 to i64 + %3 = zext i32 %.055 to i64 br label %.preheader51 .preheader51: ; preds = %.preheader52, %17 @@ -80,87 +80,87 @@ define hidden void @make_sgn_ordered_dither_array(ptr nocapture noundef %0, i32 store i8 0, ptr %0, align 1 br label %.preheader54 -.preheader54: ; preds = %3, %19 - %.059 = phi i32 [ 1, %3 ], [ %20, %19 ] - %4 = zext nneg i32 %.059 to i64 - %wide.trip.count72 = zext nneg i32 %.059 to i64 +.preheader54: ; preds = %3, %17 + %.059 = phi i32 [ 1, %3 ], [ %18, %17 ] + %4 = sext i32 %.059 to i64 + %wide.trip.count72 = zext i32 %.059 to i64 + %invariant.gep89 = getelementptr i8, ptr %0, i64 %4 + %invariant.gep91 = getelementptr i8, ptr %0, i64 %4 br label %.preheader53 -.preheader52: ; preds = %19 +.preheader52: ; preds = %17 %5 = sub nsw i32 %2, %1 br label %.preheader -.preheader53: ; preds = %.preheader54, %18 - %indvars.iv67 = phi i64 [ 0, %.preheader54 ], [ %indvars.iv.next68, %18 ] +.preheader53: ; preds = %.preheader54, %16 + %indvars.iv67 = phi i64 [ 0, %.preheader54 ], [ %indvars.iv.next68, %16 ] %6 = shl i64 %indvars.iv67, 3 %7 = add nuw nsw i64 %indvars.iv67, %4 %8 = shl i64 %7, 3 - %9 = or disjoint i64 %8, %4 - %10 = or disjoint i64 %6, %4 %invariant.gep = getelementptr i8, ptr %0, i64 %6 - %invariant.gep79 = getelementptr i8, ptr %0, i64 %9 - %invariant.gep81 = getelementptr i8, ptr %0, i64 %10 - %invariant.gep83 = getelementptr i8, ptr %0, i64 %8 - br label %11 + %gep90 = getelementptr i8, ptr %invariant.gep89, i64 %8 + %gep92 = getelementptr i8, ptr %invariant.gep91, i64 %6 + %invariant.gep87 = getelementptr i8, ptr %0, i64 %8 + br label %9 -11: ; preds = %.preheader53, %11 - %indvars.iv = phi i64 [ 0, %.preheader53 ], [ %indvars.iv.next, %11 ] +9: ; preds = %.preheader53, %9 + %indvars.iv = phi i64 [ 0, %.preheader53 ], [ %indvars.iv.next, %9 ] %gep = getelementptr i8, ptr %invariant.gep, i64 %indvars.iv - %12 = load i8, ptr %gep, align 1 - %13 = shl i8 %12, 2 - store i8 %13, ptr %gep, align 1 - %14 = or disjoint i8 %13, 1 - %gep80 = getelementptr i8, ptr %invariant.gep79, i64 %indvars.iv - store i8 %14, ptr %gep80, align 1 - %15 = load i8, ptr %gep, align 1 - %16 = add i8 %15, 2 - %gep82 = getelementptr i8, ptr %invariant.gep81, i64 %indvars.iv - store i8 %16, ptr %gep82, align 1 - %17 = add i8 %15, 3 - %gep84 = getelementptr i8, ptr %invariant.gep83, i64 %indvars.iv - store i8 %17, ptr %gep84, align 1 + %10 = load i8, ptr %gep, align 1 + %11 = shl i8 %10, 2 + store i8 %11, ptr %gep, align 1 + %12 = or disjoint i8 %11, 1 + %gep82 = getelementptr i8, ptr %gep90, i64 %indvars.iv + store i8 %12, ptr %gep82, align 1 + %13 = load i8, ptr %gep, align 1 + %14 = add i8 %13, 2 + %gep86 = getelementptr i8, ptr %gep92, i64 %indvars.iv + store i8 %14, ptr %gep86, align 1 + %15 = add i8 %13, 3 + %gep88 = getelementptr i8, ptr %invariant.gep87, i64 %indvars.iv + store i8 %15, ptr %gep88, align 1 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count72 - br i1 %exitcond.not, label %18, label %11, !llvm.loop !12 + br i1 %exitcond.not, label %16, label %9, !llvm.loop !12 -18: ; preds = %11 +16: ; preds = %9 %indvars.iv.next68 = add nuw nsw i64 %indvars.iv67, 1 %exitcond73.not = icmp eq i64 %indvars.iv.next68, %wide.trip.count72 - br i1 %exitcond73.not, label %19, label %.preheader53, !llvm.loop !13 - -19: ; preds = %18 - %20 = shl nuw nsw i32 %.059, 1 - %21 = icmp ult i32 %.059, 4 - br i1 %21, label %.preheader54, label %.preheader52, !llvm.loop !14 - -.preheader: ; preds = %.preheader52, %32 - %.163 = phi i32 [ 0, %.preheader52 ], [ %23, %32 ] - %.15162 = phi i32 [ 0, %.preheader52 ], [ %33, %32 ] - %22 = sext i32 %.163 to i64 - %23 = add i32 %.163, 8 - br label %24 - -24: ; preds = %.preheader, %24 - %indvars.iv74 = phi i64 [ %22, %.preheader ], [ %indvars.iv.next75, %24 ] - %25 = getelementptr inbounds i8, ptr %0, i64 %indvars.iv74 - %26 = load i8, ptr %25, align 1 - %27 = sext i8 %26 to i32 - %28 = mul nsw i32 %5, %27 - %29 = sdiv i32 %28, 64 - %30 = add nsw i32 %29, %1 - %31 = trunc i32 %30 to i8 - store i8 %31, ptr %25, align 1 + br i1 %exitcond73.not, label %17, label %.preheader53, !llvm.loop !13 + +17: ; preds = %16 + %18 = shl nuw nsw i32 %.059, 1 + %19 = icmp ult i32 %.059, 4 + br i1 %19, label %.preheader54, label %.preheader52, !llvm.loop !14 + +.preheader: ; preds = %.preheader52, %30 + %.163 = phi i32 [ 0, %.preheader52 ], [ %21, %30 ] + %.15162 = phi i32 [ 0, %.preheader52 ], [ %31, %30 ] + %20 = sext i32 %.163 to i64 + %21 = add i32 %.163, 8 + br label %22 + +22: ; preds = %.preheader, %22 + %indvars.iv74 = phi i64 [ %20, %.preheader ], [ %indvars.iv.next75, %22 ] + %23 = getelementptr inbounds i8, ptr %0, i64 %indvars.iv74 + %24 = load i8, ptr %23, align 1 + %25 = sext i8 %24 to i32 + %26 = mul nsw i32 %5, %25 + %27 = sdiv i32 %26, 64 + %28 = add nsw i32 %27, %1 + %29 = trunc i32 %28 to i8 + store i8 %29, ptr %23, align 1 %indvars.iv.next75 = add nsw i64 %indvars.iv74, 1 %lftr.wideiv = trunc i64 %indvars.iv.next75 to i32 - %exitcond77.not = icmp eq i32 %23, %lftr.wideiv - br i1 %exitcond77.not, label %32, label %24, !llvm.loop !15 + %exitcond77.not = icmp eq i32 %21, %lftr.wideiv + br i1 %exitcond77.not, label %30, label %22, !llvm.loop !15 -32: ; preds = %24 - %33 = add nuw nsw i32 %.15162, 1 - %exitcond78.not = icmp eq i32 %33, 8 - br i1 %exitcond78.not, label %34, label %.preheader, !llvm.loop !16 +30: ; preds = %22 + %31 = add nuw nsw i32 %.15162, 1 + %exitcond78.not = icmp eq i32 %31, 8 + br i1 %exitcond78.not, label %32, label %.preheader, !llvm.loop !16 -34: ; preds = %32 +32: ; preds = %30 ret void } diff --git a/bench/openmpi/optimized/coll_base_reduce_scatter_block.ll b/bench/openmpi/optimized/coll_base_reduce_scatter_block.ll index 8ebd13143e6..cad0b559f8e 100644 --- a/bench/openmpi/optimized/coll_base_reduce_scatter_block.ll +++ b/bench/openmpi/optimized/coll_base_reduce_scatter_block.ll @@ -1521,13 +1521,13 @@ ompi_datatype_copy_content_same_ddt.exit.thread: ; preds = %116, %123, %121, %1 %161 = or disjoint i32 %160, 1 %162 = add nsw i32 %158, %131 %163 = select i1 %159, i32 %161, i32 %162 - %164 = sdiv i32 %.0212319, 2 + %164 = lshr i32 %.0212319, 1 %165 = and i32 %.0217317, %.0211 %166 = icmp eq i32 %165, 0 - %167 = add nsw i32 %164, %.0213318 + %167 = add nuw nsw i32 %164, %.0213318 %.1216 = select i1 %166, i32 %.0213318, i32 %167 %.1214 = select i1 %166, i32 %167, i32 %.0213318 - %168 = add nsw i32 %.1214, %164 + %168 = add nuw nsw i32 %.1214, %164 %.not299 = icmp sgt i32 %131, %.1214 br i1 %.not299, label %169, label %ompi_range_sum.exit @@ -1536,7 +1536,7 @@ ompi_datatype_copy_content_same_ddt.exit.thread: ; preds = %116, %123, %121, %1 br i1 %170, label %171, label %173 171: ; preds = %169 - %172 = shl nsw i32 %164, 1 + %172 = and i32 %.0212319, 2147483646 br label %ompi_range_sum.exit 173: ; preds = %169 @@ -1551,7 +1551,7 @@ ompi_range_sum.exit: ; preds = %157, %171, %173 %.0.i280 = phi i32 [ %172, %171 ], [ %177, %173 ], [ %164, %157 ] %178 = sext i32 %.0.i280 to i64 %179 = mul nsw i64 %178, %16 - %180 = add nsw i32 %.1216, %164 + %180 = add nuw nsw i32 %.1216, %164 %.not300 = icmp sgt i32 %131, %.1216 br i1 %.not300, label %181, label %ompi_range_sum.exit283 @@ -1560,7 +1560,7 @@ ompi_range_sum.exit: ; preds = %157, %171, %173 br i1 %182, label %183, label %185 183: ; preds = %181 - %184 = shl nsw i32 %164, 1 + %184 = and i32 %.0212319, 2147483646 br label %ompi_range_sum.exit283 185: ; preds = %181 @@ -1575,11 +1575,11 @@ ompi_range_sum.exit283: ; preds = %ompi_range_sum.exit %.0.i281 = phi i32 [ %184, %183 ], [ %189, %185 ], [ %164, %ompi_range_sum.exit ] %190 = sext i32 %.0.i281 to i64 %191 = mul nsw i64 %190, %16 - %192 = shl nsw i32 %.1214, 1 + %192 = shl nuw nsw i32 %.1214, 1 %193 = add nsw i32 %.1214, %131 %194 = select i1 %.not299, i32 %192, i32 %193 %195 = sext i32 %194 to i64 - %196 = shl nsw i32 %.1216, 1 + %196 = shl nuw nsw i32 %.1216, 1 %197 = add nsw i32 %.1216, %131 %198 = select i1 %.not300, i32 %196, i32 %197 %199 = sext i32 %198 to i64 @@ -1637,13 +1637,13 @@ ompi_coll_base_sendrecv.exit: ; preds = %205, %209 br i1 %220, label %225, label %._crit_edge._crit_edge ._crit_edge._crit_edge: ; preds = %._crit_edge - %.pre = shl nsw i32 %.0213.lcssa, 1 + %.pre = shl nuw nsw i32 %.0213.lcssa, 1 %.pre338 = add nsw i32 %.0213.lcssa, %131 br label %235 225: ; preds = %._crit_edge %.not247.not = icmp slt i32 %.0213.lcssa, %131 - %226 = shl nsw i32 %.0213.lcssa, 1 + %226 = shl nuw nsw i32 %.0213.lcssa, 1 %227 = add nsw i32 %.0213.lcssa, %131 %228 = select i1 %.not247.not, i32 %226, i32 %227 %229 = sext i32 %228 to i64 diff --git a/bench/postgres/optimized/freespace.ll b/bench/postgres/optimized/freespace.ll index 14636ab935d..65de781126c 100644 --- a/bench/postgres/optimized/freespace.ll +++ b/bench/postgres/optimized/freespace.ll @@ -802,7 +802,7 @@ define internal fastcc zeroext i8 @fsm_vacuum_page(ptr noundef %0, i64 %1, i32 n 8: ; preds = %5 store i8 1, ptr %4, align 1 - br label %64 + br label %63 9: ; preds = %5 store i8 0, ptr %4, align 1 @@ -855,84 +855,83 @@ BufferGetPage.exit: ; preds = %11, %17 br i1 %31, label %.lr.ph, label %._crit_edge, !llvm.loop !8 ._crit_edge: ; preds = %.lr.ph - %32 = and i64 %29, 4294967295 - %33 = trunc nuw nsw i64 %30 to i32 - %34 = lshr i64 %.sroa.018.0.in76, 32 - %.lhs.trunc = trunc nuw i64 %34 to i32 - %35 = urem i32 %.lhs.trunc, 4069 - %.sroa.3.0 = trunc i64 %29 to i32 + %32 = trunc nuw nsw i64 %30 to i32 + %33 = lshr i64 %.sroa.018.0.in76, 32 + %.lhs.trunc = trunc nuw i64 %33 to i32 + %34 = urem i32 %.lhs.trunc, 4069 + %.sroa.3.0 = trunc nuw nsw i64 %29 to i32 %.sroa.4.0 = trunc nuw nsw i64 %28 to i32 - %36 = icmp eq i64 %28, %.sroa.5.0.extract.shift - %37 = icmp sgt i32 %.sroa.4.0, %.sroa.5.0.extract.trunc - %. = select i1 %37, i32 4069, i32 0 - %.060 = select i1 %36, i32 %35, i32 %. - %38 = icmp eq i64 %32, %.sroa.5.0.extract.shift - %39 = icmp sgt i32 %.sroa.3.0, %.sroa.5.0.extract.trunc - %.64 = select i1 %39, i32 4068, i32 -1 - %.059 = select i1 %38, i32 %33, i32 %.64 + %35 = icmp eq i64 %28, %.sroa.5.0.extract.shift + %36 = icmp sgt i32 %.sroa.4.0, %.sroa.5.0.extract.trunc + %. = select i1 %36, i32 4069, i32 0 + %.060 = select i1 %35, i32 %34, i32 %. + %37 = icmp eq i64 %29, %.sroa.5.0.extract.shift + %38 = icmp sgt i32 %.sroa.3.0, %.sroa.5.0.extract.trunc + %.64 = select i1 %38, i32 4068, i32 -1 + %.059 = select i1 %37, i32 %32, i32 %.64 %.not82 = icmp sgt i32 %.060, %.059 br i1 %.not82, label %.loopexit, label %.lr.ph85 .lr.ph85: ; preds = %._crit_edge - %40 = add i64 %1, 4294967295 - %41 = mul nuw nsw i64 %.sroa.5.0.extract.shift, 4069 - %.sroa.01.0.insert.ext.i = and i64 %40, 4294967295 - br label %42 - -42: ; preds = %.lr.ph85, %60 - %.06183 = phi i32 [ %.060, %.lr.ph85 ], [ %61, %60 ] - %43 = load volatile i32, ptr @InterruptPending, align 4 - %.not62 = icmp eq i32 %43, 0 - br i1 %.not62, label %45, label %44 - -44: ; preds = %42 + %39 = add i64 %1, 4294967295 + %40 = mul nuw nsw i64 %.sroa.5.0.extract.shift, 4069 + %.sroa.01.0.insert.ext.i = and i64 %39, 4294967295 + br label %41 + +41: ; preds = %.lr.ph85, %59 + %.06183 = phi i32 [ %.060, %.lr.ph85 ], [ %60, %59 ] + %42 = load volatile i32, ptr @InterruptPending, align 4 + %.not62 = icmp eq i32 %42, 0 + br i1 %.not62, label %44, label %43 + +43: ; preds = %41 tail call void @ProcessInterrupts() #6 - br label %45 - -45: ; preds = %42, %44 - %46 = load i8, ptr %6, align 1 - %47 = trunc i8 %46 to i1 - br i1 %47, label %54, label %48 - -48: ; preds = %45 - %49 = and i32 %.06183, 65535 - %50 = zext nneg i32 %49 to i64 - %51 = add nuw nsw i64 %41, %50 - %.sroa.22.0.insert.ext.i = shl i64 %51, 32 + br label %44 + +44: ; preds = %41, %43 + %45 = load i8, ptr %6, align 1 + %46 = trunc i8 %45 to i1 + br i1 %46, label %53, label %47 + +47: ; preds = %44 + %48 = and i32 %.06183, 65535 + %49 = zext nneg i32 %48 to i64 + %50 = add nuw nsw i64 %40, %49 + %.sroa.22.0.insert.ext.i = shl i64 %50, 32 %.sroa.01.0.insert.insert.i = or disjoint i64 %.sroa.22.0.insert.ext.i, %.sroa.01.0.insert.ext.i - %52 = call fastcc zeroext i8 @fsm_vacuum_page(ptr noundef %0, i64 %.sroa.01.0.insert.insert.i, i32 noundef %2, i32 noundef %3, ptr noundef %6) - %53 = zext i8 %52 to i32 - br label %54 - -54: ; preds = %45, %48 - %.058 = phi i32 [ %53, %48 ], [ 0, %45 ] - %55 = tail call zeroext i8 @fsm_get_avail(ptr noundef %.0.i.i, i32 noundef %.06183) #6 - %56 = zext i8 %55 to i32 - %.not63 = icmp eq i32 %.058, %56 - br i1 %.not63, label %60, label %57 - -57: ; preds = %54 + %51 = call fastcc zeroext i8 @fsm_vacuum_page(ptr noundef %0, i64 %.sroa.01.0.insert.insert.i, i32 noundef %2, i32 noundef %3, ptr noundef %6) + %52 = zext i8 %51 to i32 + br label %53 + +53: ; preds = %44, %47 + %.058 = phi i32 [ %52, %47 ], [ 0, %44 ] + %54 = tail call zeroext i8 @fsm_get_avail(ptr noundef %.0.i.i, i32 noundef %.06183) #6 + %55 = zext i8 %54 to i32 + %.not63 = icmp eq i32 %.058, %55 + br i1 %.not63, label %59, label %56 + +56: ; preds = %53 tail call void @LockBuffer(i32 noundef %7, i32 noundef 2) #6 - %58 = trunc nuw i32 %.058 to i8 - %59 = tail call zeroext i1 @fsm_set_avail(ptr noundef %.0.i.i, i32 noundef %.06183, i8 noundef zeroext %58) #6 + %57 = trunc nuw i32 %.058 to i8 + %58 = tail call zeroext i1 @fsm_set_avail(ptr noundef %.0.i.i, i32 noundef %.06183, i8 noundef zeroext %57) #6 tail call void @MarkBufferDirtyHint(i32 noundef %7, i1 noundef zeroext false) #6 tail call void @LockBuffer(i32 noundef %7, i32 noundef 0) #6 - br label %60 + br label %59 -60: ; preds = %54, %57 - %61 = add i32 %.06183, 1 +59: ; preds = %53, %56 + %60 = add i32 %.06183, 1 %exitcond.not = icmp eq i32 %.06183, %.059 - br i1 %exitcond.not, label %.loopexit, label %42, !llvm.loop !9 + br i1 %exitcond.not, label %.loopexit, label %41, !llvm.loop !9 -.loopexit: ; preds = %60, %._crit_edge, %BufferGetPage.exit - %62 = tail call zeroext i8 @fsm_get_max_avail(ptr noundef %.0.i.i) #6 - %63 = getelementptr i8, ptr %.0.i.i, i64 24 - store i32 0, ptr %63, align 4 +.loopexit: ; preds = %59, %._crit_edge, %BufferGetPage.exit + %61 = tail call zeroext i8 @fsm_get_max_avail(ptr noundef %.0.i.i) #6 + %62 = getelementptr i8, ptr %.0.i.i, i64 24 + store i32 0, ptr %62, align 4 tail call void @ReleaseBuffer(i32 noundef %7) #6 - br label %64 + br label %63 -64: ; preds = %.loopexit, %8 - %.0 = phi i8 [ %62, %.loopexit ], [ 0, %8 ] +63: ; preds = %.loopexit, %8 + %.0 = phi i8 [ %61, %.loopexit ], [ 0, %8 ] ret i8 %.0 } diff --git a/bench/stb/optimized/stb_include.c.ll b/bench/stb/optimized/stb_include.c.ll index cdae9b9f2e0..4ec3d3ab280 100644 --- a/bench/stb/optimized/stb_include.c.ll +++ b/bench/stb/optimized/stb_include.c.ll @@ -419,9 +419,9 @@ for.body.lr.ph: ; preds = %entry %cmp70.not = icmp eq ptr %filename, null %cond = select i1 %cmp70.not, ptr @.str.10, ptr %filename %wide.trip.count = zext nneg i32 %call to i64 - br label %stb_include_itoa.exit + br label %for.body -stb_include_itoa.exit: ; preds = %stb_include_itoa.exit70, %for.body.lr.ph +for.body: ; preds = %for.body.lr.ph, %stb_include_itoa.exit70 %indvars.iv = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next, %stb_include_itoa.exit70 ] %last.0112 = phi i64 [ 0, %for.body.lr.ph ], [ %conv79, %stb_include_itoa.exit70 ] %text.0111 = phi ptr [ null, %for.body.lr.ph ], [ %call.i72, %stb_include_itoa.exit70 ] @@ -449,11 +449,11 @@ stb_include_itoa.exit: ; preds = %stb_include_itoa.ex %cmp13 = icmp eq ptr %1, null br i1 %cmp13, label %if.end, label %if.else -if.else: ; preds = %stb_include_itoa.exit +if.else: ; preds = %for.body %call21 = call ptr @strcat(ptr noundef nonnull dereferenceable(1) %temp, ptr noundef nonnull dereferenceable(1) %1) #16 br label %if.end -if.end: ; preds = %stb_include_itoa.exit, %if.else +if.end: ; preds = %for.body, %if.else %strlen33 = call i64 @strlen(ptr nonnull dereferenceable(1) %temp) %endptr34 = getelementptr inbounds i8, ptr %temp, i64 %strlen33 store i16 34, ptr %endptr34, align 1 @@ -572,7 +572,7 @@ stb_include_itoa.exit70: ; preds = %for.body5.i58 %conv79 = sext i32 %6 to i64 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count - br i1 %exitcond.not, label %for.end, label %stb_include_itoa.exit, !llvm.loop !15 + br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !15 for.end: ; preds = %stb_include_itoa.exit70, %entry %textlen.0.lcssa = phi i64 [ 0, %entry ], [ %add.i71, %stb_include_itoa.exit70 ] diff --git a/bench/stb/optimized/stb_vorbis.c.ll b/bench/stb/optimized/stb_vorbis.c.ll index f5e4c54c66a..9cdaa681adf 100644 --- a/bench/stb/optimized/stb_vorbis.c.ll +++ b/bench/stb/optimized/stb_vorbis.c.ll @@ -10920,8 +10920,8 @@ for.body1426: ; preds = %for.body1426.prehea %temp.01180 = phi i32 [ %215, %for.body1426.preheader ], [ %div1438, %for.body1426 ] %indvars.iv.next1350 = add nsw i64 %indvars.iv1349, -1 %conv1428 = zext i8 %216 to i32 - %rem1429 = srem i32 %temp.01180, %conv1428 - %conv1430 = trunc i32 %rem1429 to i8 + %rem1429 = urem i32 %temp.01180, %conv1428 + %conv1430 = trunc nuw i32 %rem1429 to i8 %217 = load ptr, ptr %classdata, align 8 %arrayidx1433 = getelementptr inbounds ptr, ptr %217, i64 %indvars.iv1352 %218 = load ptr, ptr %arrayidx1433, align 8 @@ -10929,7 +10929,7 @@ for.body1426: ; preds = %for.body1426.prehea store i8 %conv1430, ptr %arrayidx1435, align 1 %219 = load i8, ptr %classifications, align 4 %conv1437 = zext i8 %219 to i32 - %div1438 = sdiv i32 %temp.01180, %conv1437 + %div1438 = udiv i32 %temp.01180, %conv1437 %cmp1424 = icmp ugt i64 %indvars.iv1349, 1 br i1 %cmp1424, label %for.body1426, label %for.inc1441, !llvm.loop !115 diff --git a/bench/tomlplusplus/optimized/toml.cpp.ll b/bench/tomlplusplus/optimized/toml.cpp.ll index 384b2dc5a10..96d9dcb9340 100644 --- a/bench/tomlplusplus/optimized/toml.cpp.ll +++ b/bench/tomlplusplus/optimized/toml.cpp.ll @@ -2651,8 +2651,8 @@ if.end.i.i.i: ; preds = %if.end6.i if.end5.i.i.i: ; preds = %if.end.i.i.i %cmp6.i.i.i = icmp ult i16 %0, 1000 %cmp11.i.i.i = icmp ult i16 %0, 10000 - %spec.select.i = select i1 %cmp11.i.i.i, i32 4, i32 5 - %retval.0.i.i.i.ph = select i1 %cmp6.i.i.i, i32 3, i32 %spec.select.i + %..i = select i1 %cmp11.i.i.i, i32 4, i32 5 + %retval.0.i.i.i.ph = select i1 %cmp6.i.i.i, i32 3, i32 %..i %sub.i.i.i = add nsw i32 %retval.0.i.i.i.ph, -1 br label %while.body.i.i.i @@ -2681,11 +2681,11 @@ while.body.i.i.i: ; preds = %while.body.i.i.i, % br i1 %cmp.i9.i.i, label %while.body.i.i.i, label %while.end.i.i.i.loopexit, !llvm.loop !35 while.end.i.i.i.loopexit: ; preds = %while.body.i.i.i - %conv.i23.i125 = zext nneg i32 %retval.0.i.i.i.ph to i64 + %conv.i23.i124 = zext nneg i32 %retval.0.i.i.i.ph to i64 br label %while.end.i.i.i while.end.i.i.i: ; preds = %while.end.i.i.i.loopexit, %if.end6.i, %if.end.i.i.i - %conv.i23.i128 = phi i64 [ 1, %if.end6.i ], [ 2, %if.end.i.i.i ], [ %conv.i23.i125, %while.end.i.i.i.loopexit ] + %conv.i23.i127 = phi i64 [ 1, %if.end6.i ], [ 2, %if.end.i.i.i ], [ %conv.i23.i124, %while.end.i.i.i.loopexit ] %__val.addr.0.lcssa.i.i.i = phi i32 [ %conv.i, %if.end6.i ], [ %conv.i, %if.end.i.i.i ], [ %div.i.i.i, %while.end.i.i.i.loopexit ] %cmp9.i.i.i = icmp ugt i32 %__val.addr.0.lcssa.i.i.i, 9 br i1 %cmp9.i.i.i, label %if.then.i.i.i, label %if.else.i.i.i @@ -2711,18 +2711,18 @@ if.else.i.i.i: ; preds = %while.end.i.i.i _ZSt12__to_chars_iItENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit: ; preds = %if.then.i.i.i, %if.else.i.i.i %.sink.i = phi i8 [ %conv.i.i.i, %if.else.i.i.i ], [ %4, %if.then.i.i.i ] store i8 %.sink.i, ptr %buf.i.i, align 16 - %cmp1617.i.i = icmp ult i64 %conv.i23.i128, 4 + %cmp1617.i.i = icmp ult i64 %conv.i23.i127, 4 br i1 %cmp1617.i.i, label %for.body17.i.i, label %for.end21.i.i for.body17.i.i: ; preds = %_ZSt12__to_chars_iItENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit, %for.body17.i.i - %i14.018.i.i = phi i64 [ %inc20.i.i, %for.body17.i.i ], [ %conv.i23.i128, %_ZSt12__to_chars_iItENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit ] + %i14.018.i.i = phi i64 [ %inc20.i.i, %for.body17.i.i ], [ %conv.i23.i127, %_ZSt12__to_chars_iItENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit ] %call18.i.i = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo3putEc(ptr noundef nonnull align 8 dereferenceable(8) %stream, i8 noundef signext 48) %inc20.i.i = add nuw nsw i64 %i14.018.i.i, 1 %exitcond.not = icmp eq i64 %inc20.i.i, 4 br i1 %exitcond.not, label %for.end21.i.i, label %for.body17.i.i, !llvm.loop !24 for.end21.i.i: ; preds = %for.body17.i.i, %_ZSt12__to_chars_iItENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit - %call.i15.i.i = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5writeEPKcl(ptr noundef nonnull align 8 dereferenceable(8) %stream, ptr noundef nonnull %buf.i.i, i64 noundef %conv.i23.i128) + %call.i15.i.i = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5writeEPKcl(ptr noundef nonnull align 8 dereferenceable(8) %stream, ptr noundef nonnull %buf.i.i, i64 noundef %conv.i23.i127) br label %_ZN4toml2v34impl15print_to_streamERSotNS0_11value_flagsEm.exit _ZN4toml2v34impl15print_to_streamERSotNS0_11value_flagsEm.exit: ; preds = %for.body.i.i, %for.end21.i.i @@ -2745,25 +2745,25 @@ if.end6.i56: ; preds = %_ZN4toml2v34impl15p %cmp19.i.i.i57 = icmp ult i8 %6, 10 %cmp3.i.i.i58 = icmp ult i8 %6, 100 %7 = select i1 %cmp3.i.i.i58, i64 2, i64 3 - %conv.i23.i62 = select i1 %cmp19.i.i.i57, i64 1, i64 %7 - %cmp14.i.i.i63 = icmp ugt i8 %6, 99 - br i1 %cmp14.i.i.i63, label %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit, label %while.end.i.i.i64 + %conv.i23.i61 = select i1 %cmp19.i.i.i57, i64 1, i64 %7 + %cmp14.i.i.i62 = icmp ugt i8 %6, 99 + br i1 %cmp14.i.i.i62, label %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit, label %while.end.i.i.i63 -while.end.i.i.i64: ; preds = %if.end6.i56 - %cmp9.i.i.i65 = icmp ugt i8 %6, 9 - br i1 %cmp9.i.i.i65, label %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit.thread, label %for.body17.i.i19 +while.end.i.i.i63: ; preds = %if.end6.i56 + %cmp9.i.i.i64 = icmp ugt i8 %6, 9 + br i1 %cmp9.i.i.i64, label %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit.thread, label %for.body17.i.i19 -_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit.thread: ; preds = %while.end.i.i.i64 +_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit.thread: ; preds = %while.end.i.i.i63 %8 = shl nuw i8 %6, 1 %9 = or disjoint i8 %8, 1 - %idxprom13.i.i.i75 = zext i8 %9 to i64 - %arrayidx14.i.i.i76 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom13.i.i.i75 - %10 = load i8, ptr %arrayidx14.i.i.i76, align 1 - %arrayidx15.i.i.i77 = getelementptr inbounds i8, ptr %buf.i.i7, i64 1 - store i8 %10, ptr %arrayidx15.i.i.i77, align 1 - %idxprom16.i.i.i78 = zext i8 %8 to i64 - %arrayidx17.i.i.i79 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom16.i.i.i78 - %11 = load i8, ptr %arrayidx17.i.i.i79, align 2 + %idxprom13.i.i.i74 = zext i8 %9 to i64 + %arrayidx14.i.i.i75 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom13.i.i.i74 + %10 = load i8, ptr %arrayidx14.i.i.i75, align 1 + %arrayidx15.i.i.i76 = getelementptr inbounds i8, ptr %buf.i.i7, i64 1 + store i8 %10, ptr %arrayidx15.i.i.i76, align 1 + %idxprom16.i.i.i77 = zext i8 %8 to i64 + %arrayidx17.i.i.i78 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom16.i.i.i77 + %11 = load i8, ptr %arrayidx17.i.i.i78, align 2 store i8 %11, ptr %buf.i.i7, align 1 br label %for.end21.i.i16 @@ -2772,28 +2772,28 @@ _ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvI %12 = shl nuw i8 %rem.i.i110.i, 1 %div.i.i111.i = udiv i8 %6, 100 %13 = or disjoint i8 %12, 1 - %idxprom.i.i.i80 = zext i8 %13 to i64 - %arrayidx.i.i.i81 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom.i.i.i80 - %14 = load i8, ptr %arrayidx.i.i.i81, align 1 - %.sroa.gep130.sroa.gep132 = getelementptr inbounds i8, ptr %buf.i.i7, i64 2 - store i8 %14, ptr %.sroa.gep130.sroa.gep132, align 1 - %idxprom3.i.i.i83 = zext i8 %12 to i64 - %arrayidx4.i.i.i84 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom3.i.i.i83 - %15 = load i8, ptr %arrayidx4.i.i.i84, align 2 - %.sroa.gep130.sroa.gep = getelementptr inbounds i8, ptr %buf.i.i7, i64 1 - store i8 %15, ptr %.sroa.gep130.sroa.gep, align 1 - %conv.i.i.i67 = or disjoint i8 %div.i.i111.i, 48 - store i8 %conv.i.i.i67, ptr %buf.i.i7, align 1 + %idxprom.i.i.i79 = zext i8 %13 to i64 + %arrayidx.i.i.i80 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom.i.i.i79 + %14 = load i8, ptr %arrayidx.i.i.i80, align 1 + %.sroa.gep129.sroa.gep131 = getelementptr inbounds i8, ptr %buf.i.i7, i64 2 + store i8 %14, ptr %.sroa.gep129.sroa.gep131, align 1 + %idxprom3.i.i.i82 = zext i8 %12 to i64 + %arrayidx4.i.i.i83 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom3.i.i.i82 + %15 = load i8, ptr %arrayidx4.i.i.i83, align 2 + %.sroa.gep129.sroa.gep = getelementptr inbounds i8, ptr %buf.i.i7, i64 1 + store i8 %15, ptr %.sroa.gep129.sroa.gep, align 1 + %conv.i.i.i66 = or disjoint i8 %div.i.i111.i, 48 + store i8 %conv.i.i.i66, ptr %buf.i.i7, align 1 br label %for.end21.i.i16 -for.body17.i.i19: ; preds = %while.end.i.i.i64 - %conv.i.i.i67143 = or disjoint i8 %6, 48 - store i8 %conv.i.i.i67143, ptr %buf.i.i7, align 1 +for.body17.i.i19: ; preds = %while.end.i.i.i63 + %conv.i.i.i66142 = or disjoint i8 %6, 48 + store i8 %conv.i.i.i66142, ptr %buf.i.i7, align 1 %call18.i.i21 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo3putEc(ptr noundef nonnull align 8 dereferenceable(8) %stream, i8 noundef signext 48) br label %for.end21.i.i16, !llvm.loop !21 for.end21.i.i16: ; preds = %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit, %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit.thread, %for.body17.i.i19 - %call.i15.i.i18 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5writeEPKcl(ptr noundef nonnull align 8 dereferenceable(8) %stream, ptr noundef nonnull %buf.i.i7, i64 noundef %conv.i23.i62) + %call.i15.i.i18 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5writeEPKcl(ptr noundef nonnull align 8 dereferenceable(8) %stream, ptr noundef nonnull %buf.i.i7, i64 noundef %conv.i23.i61) br label %_ZN4toml2v34impl15print_to_streamERSohNS0_11value_flagsEm.exit _ZN4toml2v34impl15print_to_streamERSohNS0_11value_flagsEm.exit: ; preds = %for.body.i.i25, %for.end21.i.i16 @@ -2803,7 +2803,7 @@ _ZN4toml2v34impl15print_to_streamERSohNS0_11value_flagsEm.exit: ; preds = %for.b %16 = load i8, ptr %day, align 1 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %buf.i.i30) %tobool.not.i.i31 = icmp eq i8 %16, 0 - br i1 %tobool.not.i.i31, label %for.body.i.i48, label %if.end6.i88 + br i1 %tobool.not.i.i31, label %for.body.i.i48, label %if.end6.i87 for.body.i.i48: ; preds = %_ZN4toml2v34impl15print_to_streamERSohNS0_11value_flagsEm.exit, %for.body.i.i48 %i.021.i.i49 = phi i64 [ %inc.i.i51, %for.body.i.i48 ], [ 0, %_ZN4toml2v34impl15print_to_streamERSohNS0_11value_flagsEm.exit ] @@ -2812,59 +2812,59 @@ for.body.i.i48: ; preds = %_ZN4toml2v34impl15p %exitcond22.not.i.i52 = icmp eq i64 %inc.i.i51, 2 br i1 %exitcond22.not.i.i52, label %_ZN4toml2v34impl15print_to_streamERSohNS0_11value_flagsEm.exit53, label %for.body.i.i48, !llvm.loop !20 -if.end6.i88: ; preds = %_ZN4toml2v34impl15print_to_streamERSohNS0_11value_flagsEm.exit - %cmp19.i.i.i89 = icmp ult i8 %16, 10 - %cmp3.i.i.i90 = icmp ult i8 %16, 100 - %17 = select i1 %cmp3.i.i.i90, i64 2, i64 3 - %conv.i23.i94 = select i1 %cmp19.i.i.i89, i64 1, i64 %17 - %cmp14.i.i.i95 = icmp ugt i8 %16, 99 - br i1 %cmp14.i.i.i95, label %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit123, label %while.end.i.i.i96 +if.end6.i87: ; preds = %_ZN4toml2v34impl15print_to_streamERSohNS0_11value_flagsEm.exit + %cmp19.i.i.i88 = icmp ult i8 %16, 10 + %cmp3.i.i.i89 = icmp ult i8 %16, 100 + %17 = select i1 %cmp3.i.i.i89, i64 2, i64 3 + %conv.i23.i93 = select i1 %cmp19.i.i.i88, i64 1, i64 %17 + %cmp14.i.i.i94 = icmp ugt i8 %16, 99 + br i1 %cmp14.i.i.i94, label %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit122, label %while.end.i.i.i95 -while.end.i.i.i96: ; preds = %if.end6.i88 - %cmp9.i.i.i97 = icmp ugt i8 %16, 9 - br i1 %cmp9.i.i.i97, label %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit123.thread, label %for.body17.i.i42 +while.end.i.i.i95: ; preds = %if.end6.i87 + %cmp9.i.i.i96 = icmp ugt i8 %16, 9 + br i1 %cmp9.i.i.i96, label %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit122.thread, label %for.body17.i.i42 -_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit123.thread: ; preds = %while.end.i.i.i96 +_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit122.thread: ; preds = %while.end.i.i.i95 %18 = shl nuw i8 %16, 1 %19 = or disjoint i8 %18, 1 - %idxprom13.i.i.i109 = zext i8 %19 to i64 - %arrayidx14.i.i.i110 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom13.i.i.i109 - %20 = load i8, ptr %arrayidx14.i.i.i110, align 1 - %arrayidx15.i.i.i111 = getelementptr inbounds i8, ptr %buf.i.i30, i64 1 - store i8 %20, ptr %arrayidx15.i.i.i111, align 1 - %idxprom16.i.i.i112 = zext i8 %18 to i64 - %arrayidx17.i.i.i113 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom16.i.i.i112 - %21 = load i8, ptr %arrayidx17.i.i.i113, align 2 + %idxprom13.i.i.i108 = zext i8 %19 to i64 + %arrayidx14.i.i.i109 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom13.i.i.i108 + %20 = load i8, ptr %arrayidx14.i.i.i109, align 1 + %arrayidx15.i.i.i110 = getelementptr inbounds i8, ptr %buf.i.i30, i64 1 + store i8 %20, ptr %arrayidx15.i.i.i110, align 1 + %idxprom16.i.i.i111 = zext i8 %18 to i64 + %arrayidx17.i.i.i112 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom16.i.i.i111 + %21 = load i8, ptr %arrayidx17.i.i.i112, align 2 store i8 %21, ptr %buf.i.i30, align 1 br label %for.end21.i.i39 -_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit123: ; preds = %if.end6.i88 - %rem.i.i110.i115 = urem i8 %16, 100 - %22 = shl nuw i8 %rem.i.i110.i115, 1 - %div.i.i111.i116 = udiv i8 %16, 100 +_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit122: ; preds = %if.end6.i87 + %rem.i.i110.i114 = urem i8 %16, 100 + %22 = shl nuw i8 %rem.i.i110.i114, 1 + %div.i.i111.i115 = udiv i8 %16, 100 %23 = or disjoint i8 %22, 1 - %idxprom.i.i.i117 = zext i8 %23 to i64 - %arrayidx.i.i.i118 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom.i.i.i117 - %24 = load i8, ptr %arrayidx.i.i.i118, align 1 - %.sroa.gep135.sroa.gep138 = getelementptr inbounds i8, ptr %buf.i.i30, i64 2 - store i8 %24, ptr %.sroa.gep135.sroa.gep138, align 1 - %idxprom3.i.i.i120 = zext i8 %22 to i64 - %arrayidx4.i.i.i121 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom3.i.i.i120 - %25 = load i8, ptr %arrayidx4.i.i.i121, align 2 - %.sroa.gep135.sroa.gep = getelementptr inbounds i8, ptr %buf.i.i30, i64 1 - store i8 %25, ptr %.sroa.gep135.sroa.gep, align 1 - %conv.i.i.i100 = or disjoint i8 %div.i.i111.i116, 48 - store i8 %conv.i.i.i100, ptr %buf.i.i30, align 1 + %idxprom.i.i.i116 = zext i8 %23 to i64 + %arrayidx.i.i.i117 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom.i.i.i116 + %24 = load i8, ptr %arrayidx.i.i.i117, align 1 + %.sroa.gep134.sroa.gep137 = getelementptr inbounds i8, ptr %buf.i.i30, i64 2 + store i8 %24, ptr %.sroa.gep134.sroa.gep137, align 1 + %idxprom3.i.i.i119 = zext i8 %22 to i64 + %arrayidx4.i.i.i120 = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIjEEvPcjT_E8__digits, i64 0, i64 %idxprom3.i.i.i119 + %25 = load i8, ptr %arrayidx4.i.i.i120, align 2 + %.sroa.gep134.sroa.gep = getelementptr inbounds i8, ptr %buf.i.i30, i64 1 + store i8 %25, ptr %.sroa.gep134.sroa.gep, align 1 + %conv.i.i.i99 = or disjoint i8 %div.i.i111.i115, 48 + store i8 %conv.i.i.i99, ptr %buf.i.i30, align 1 br label %for.end21.i.i39 -for.body17.i.i42: ; preds = %while.end.i.i.i96 - %conv.i.i.i100147 = or disjoint i8 %16, 48 - store i8 %conv.i.i.i100147, ptr %buf.i.i30, align 1 +for.body17.i.i42: ; preds = %while.end.i.i.i95 + %conv.i.i.i99146 = or disjoint i8 %16, 48 + store i8 %conv.i.i.i99146, ptr %buf.i.i30, align 1 %call18.i.i44 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo3putEc(ptr noundef nonnull align 8 dereferenceable(8) %stream, i8 noundef signext 48) br label %for.end21.i.i39, !llvm.loop !21 -for.end21.i.i39: ; preds = %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit123, %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit123.thread, %for.body17.i.i42 - %call.i15.i.i41 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5writeEPKcl(ptr noundef nonnull align 8 dereferenceable(8) %stream, ptr noundef nonnull %buf.i.i30, i64 noundef %conv.i23.i94) +for.end21.i.i39: ; preds = %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit122, %_ZSt12__to_chars_iIhENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xES2_IS6_nEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yES2_IS6_oEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSP_S4_i.exit122.thread, %for.body17.i.i42 + %call.i15.i.i41 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5writeEPKcl(ptr noundef nonnull align 8 dereferenceable(8) %stream, ptr noundef nonnull %buf.i.i30, i64 noundef %conv.i23.i93) br label %_ZN4toml2v34impl15print_to_streamERSohNS0_11value_flagsEm.exit53 _ZN4toml2v34impl15print_to_streamERSohNS0_11value_flagsEm.exit53: ; preds = %for.body.i.i48, %for.end21.i.i39 @@ -39988,11 +39988,11 @@ if.end5.i.i: ; preds = %if.end.i.i if.end9.i.i: ; preds = %if.end5.i.i %cmp11.i.i = icmp ult i16 %__value, 10000 - %spec.select = select i1 %cmp11.i.i, i32 4, i32 5 + %. = select i1 %cmp11.i.i, i32 4, i32 5 br label %_ZNSt8__detail14__to_chars_lenIjEEjT_i.exit.i _ZNSt8__detail14__to_chars_lenIjEEjT_i.exit.i: ; preds = %if.end9.i.i, %if.end5.i.i, %if.end.i.i, %sw.bb7 - %retval.0.i.i = phi i32 [ 1, %sw.bb7 ], [ 2, %if.end.i.i ], [ 3, %if.end5.i.i ], [ %spec.select, %if.end9.i.i ] + %retval.0.i.i = phi i32 [ 1, %sw.bb7 ], [ 2, %if.end.i.i ], [ 3, %if.end5.i.i ], [ %., %if.end9.i.i ] %sub.ptr.lhs.cast.i20 = ptrtoint ptr %__last to i64 %sub.ptr.rhs.cast.i21 = ptrtoint ptr %__first to i64 %sub.ptr.sub.i22 = sub i64 %sub.ptr.lhs.cast.i20, %sub.ptr.rhs.cast.i21 diff --git a/bench/vcpkg/optimized/strings.cpp.ll b/bench/vcpkg/optimized/strings.cpp.ll index 52d9f6bf881..2ed33ab9300 100644 --- a/bench/vcpkg/optimized/strings.cpp.ll +++ b/bench/vcpkg/optimized/strings.cpp.ll @@ -4566,30 +4566,30 @@ define linkonce_odr dso_local ptr @_ZNK3fmt3v106detail6concatINS1_9code_unitIcEE %60 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.0.0.copyload.i, i64 noundef 0) %61 = getelementptr inbounds i8, ptr %60, i64 %58 %.not405 = icmp ult i16 %33, 2 - br i1 %.not405, label %.loopexit527, label %.lr.ph553.preheader + br i1 %.not405, label %.loopexit527, label %.lr.ph550.preheader -.lr.ph553.preheader: ; preds = %57 +.lr.ph550.preheader: ; preds = %57 %62 = and i32 %36, 16777215 - br label %.lr.ph553 - -.lr.ph553: ; preds = %.lr.ph553.preheader, %.lr.ph553 - %.1370552 = phi ptr [ %64, %.lr.ph553 ], [ %61, %.lr.ph553.preheader ] - %.0371551 = phi i32 [ %65, %.lr.ph553 ], [ %62, %.lr.ph553.preheader ] - %63 = trunc i32 %.0371551 to i8 - %64 = getelementptr inbounds i8, ptr %.1370552, i64 1 - store i8 %63, ptr %.1370552, align 1 - %65 = lshr i32 %.0371551, 8 - %.not406 = icmp ult i32 %.0371551, 256 - br i1 %.not406, label %.loopexit527, label %.lr.ph553, !llvm.loop !88 - -.loopexit527: ; preds = %.lr.ph553, %57 - %.0369 = phi ptr [ %61, %57 ], [ %64, %.lr.ph553 ] + br label %.lr.ph550 + +.lr.ph550: ; preds = %.lr.ph550.preheader, %.lr.ph550 + %.1370549 = phi ptr [ %64, %.lr.ph550 ], [ %61, %.lr.ph550.preheader ] + %.0371548 = phi i32 [ %65, %.lr.ph550 ], [ %62, %.lr.ph550.preheader ] + %63 = trunc i32 %.0371548 to i8 + %64 = getelementptr inbounds i8, ptr %.1370549, i64 1 + store i8 %63, ptr %.1370549, align 1 + %65 = lshr i32 %.0371548, 8 + %.not406 = icmp ult i32 %.0371548, 256 + br i1 %.not406, label %.loopexit527, label %.lr.ph550, !llvm.loop !88 + +.loopexit527: ; preds = %.lr.ph550, %57 + %.0369 = phi ptr [ %61, %57 ], [ %64, %.lr.ph550 ] %66 = ashr i64 %46, 32 %67 = getelementptr inbounds i8, ptr %.0369, i64 %66 %68 = icmp ugt i8 %19, 99 - br i1 %68, label %.lr.ph.i.i.preheader, label %._crit_edge.i.i + br i1 %68, label %.lr.ph.i.i, label %._crit_edge.i.i -.lr.ph.i.i.preheader: ; preds = %.loopexit527 +.lr.ph.i.i: ; preds = %.loopexit527 %69 = getelementptr inbounds i8, ptr %67, i64 -2 %70 = urem i32 %.sroa.0172.0.extract.trunc, 100 %71 = shl nuw nsw i32 %70, 1 @@ -4598,11 +4598,11 @@ define linkonce_odr dso_local ptr @_ZNK3fmt3v106detail6concatINS1_9code_unitIcEE %74 = load i16, ptr %73, align 1 store i16 %74, ptr %69, align 1 %75 = udiv i32 %.sroa.0172.0.extract.trunc, 100 - br label %._crit_edge.i.i + br label %._crit_edge.i.i, !llvm.loop !89 -._crit_edge.i.i: ; preds = %.lr.ph.i.i.preheader, %.loopexit527 - %.023.lcssa.i.i = phi ptr [ %67, %.loopexit527 ], [ %69, %.lr.ph.i.i.preheader ] - %.0.lcssa.i.i = phi i32 [ %.sroa.0172.0.extract.trunc, %.loopexit527 ], [ %75, %.lr.ph.i.i.preheader ] +._crit_edge.i.i: ; preds = %.lr.ph.i.i, %.loopexit527 + %.023.lcssa.i.i = phi ptr [ %67, %.loopexit527 ], [ %69, %.lr.ph.i.i ] + %.0.lcssa.i.i = phi i32 [ %.sroa.0172.0.extract.trunc, %.loopexit527 ], [ %75, %.lr.ph.i.i ] %76 = icmp ult i32 %.0.lcssa.i.i, 10 br i1 %76, label %77, label %81 @@ -4702,21 +4702,21 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit: ; preds %131 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.0.0.copyload.i, i64 noundef 0) %132 = getelementptr inbounds i8, ptr %131, i64 %129 %133 = and i32 %.0519, 16777215 - %.not404545 = icmp eq i32 %133, 0 - br i1 %.not404545, label %.loopexit529, label %.lr.ph548 - -.lr.ph548: ; preds = %128, %.lr.ph548 - %.1364547 = phi ptr [ %135, %.lr.ph548 ], [ %132, %128 ] - %.0365546 = phi i32 [ %136, %.lr.ph548 ], [ %133, %128 ] - %134 = trunc i32 %.0365546 to i8 - %135 = getelementptr inbounds i8, ptr %.1364547, i64 1 - store i8 %134, ptr %.1364547, align 1 - %136 = lshr i32 %.0365546, 8 - %.not404 = icmp ult i32 %.0365546, 256 - br i1 %.not404, label %.loopexit529, label %.lr.ph548, !llvm.loop !89 - -.loopexit529: ; preds = %.lr.ph548, %128 - %.0363 = phi ptr [ %132, %128 ], [ %135, %.lr.ph548 ] + %.not404542 = icmp eq i32 %133, 0 + br i1 %.not404542, label %.loopexit529, label %.lr.ph545 + +.lr.ph545: ; preds = %128, %.lr.ph545 + %.1364544 = phi ptr [ %135, %.lr.ph545 ], [ %132, %128 ] + %.0365543 = phi i32 [ %136, %.lr.ph545 ], [ %133, %128 ] + %134 = trunc i32 %.0365543 to i8 + %135 = getelementptr inbounds i8, ptr %.1364544, i64 1 + store i8 %134, ptr %.1364544, align 1 + %136 = lshr i32 %.0365543, 8 + %.not404 = icmp ult i32 %.0365543, 256 + br i1 %.not404, label %.loopexit529, label %.lr.ph545, !llvm.loop !90 + +.loopexit529: ; preds = %.lr.ph545, %128 + %.0363 = phi ptr [ %132, %128 ], [ %135, %.lr.ph545 ] %137 = getelementptr inbounds i8, ptr %.0363, i64 %.sroa.2136.0.insert.ext %.str.13..str.14.i.i = select i1 %106, ptr @.str.13, ptr @.str.14 br label %138 @@ -4732,7 +4732,7 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit: ; preds store i8 %142, ptr %143, align 1 %144 = lshr i32 %.09.i.i, 4 %.not.i.i = icmp ult i32 %.09.i.i, 16 - br i1 %.not.i.i, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %138, !llvm.loop !90 + br i1 %.not.i.i, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %138, !llvm.loop !91 145: ; preds = %115 %146 = and i16 %31, 15 @@ -4814,21 +4814,21 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit411: ; pr %187 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.0.0.copyload.i, i64 noundef 0) %188 = getelementptr inbounds i8, ptr %187, i64 %185 %189 = and i32 %.1520, 16777215 - %.not401540 = icmp eq i32 %189, 0 - br i1 %.not401540, label %.loopexit531, label %.lr.ph543 - -.lr.ph543: ; preds = %184, %.lr.ph543 - %.1358542 = phi ptr [ %191, %.lr.ph543 ], [ %188, %184 ] - %.0359541 = phi i32 [ %192, %.lr.ph543 ], [ %189, %184 ] - %190 = trunc i32 %.0359541 to i8 - %191 = getelementptr inbounds i8, ptr %.1358542, i64 1 - store i8 %190, ptr %.1358542, align 1 - %192 = lshr i32 %.0359541, 8 - %.not401 = icmp ult i32 %.0359541, 256 - br i1 %.not401, label %.loopexit531, label %.lr.ph543, !llvm.loop !91 - -.loopexit531: ; preds = %.lr.ph543, %184 - %.0357 = phi ptr [ %188, %184 ], [ %191, %.lr.ph543 ] + %.not401537 = icmp eq i32 %189, 0 + br i1 %.not401537, label %.loopexit531, label %.lr.ph540 + +.lr.ph540: ; preds = %184, %.lr.ph540 + %.1358539 = phi ptr [ %191, %.lr.ph540 ], [ %188, %184 ] + %.0359538 = phi i32 [ %192, %.lr.ph540 ], [ %189, %184 ] + %190 = trunc i32 %.0359538 to i8 + %191 = getelementptr inbounds i8, ptr %.1358539, i64 1 + store i8 %190, ptr %.1358539, align 1 + %192 = lshr i32 %.0359538, 8 + %.not401 = icmp ult i32 %.0359538, 256 + br i1 %.not401, label %.loopexit531, label %.lr.ph540, !llvm.loop !92 + +.loopexit531: ; preds = %.lr.ph540, %184 + %.0357 = phi ptr [ %188, %184 ], [ %191, %.lr.ph540 ] %193 = getelementptr inbounds i8, ptr %.0357, i64 %.sroa.2127.0.insert.ext br label %194 @@ -4842,7 +4842,7 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit411: ; pr store i8 %197, ptr %198, align 1 %199 = lshr i32 %.08.i.i, 1 %.not.i.i414 = icmp ult i32 %.08.i.i, 2 - br i1 %.not.i.i414, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %194, !llvm.loop !92 + br i1 %.not.i.i414, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %194, !llvm.loop !93 200: ; preds = %172 %201 = and i16 %31, 15 @@ -4925,18 +4925,18 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit415: ; pr 240: ; preds = %232 %241 = call noundef ptr @_ZN3fmt3v106detail7reserveINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnNSt9enable_ifIXsr13is_contiguousIT_EE5valueEiE4typeELi0EEEPNSA_10value_typeESt20back_insert_iteratorISA_Em(ptr %.sroa.0.0.copyload.i, i64 noundef %239) %242 = and i32 %.2521, 16777215 - %.not398537 = icmp eq i32 %242, 0 - br i1 %.not398537, label %.loopexit533, label %.lr.ph + %.not398534 = icmp eq i32 %242, 0 + br i1 %.not398534, label %.loopexit533, label %.lr.ph .lr.ph: ; preds = %240, %.lr.ph - %.1352539 = phi ptr [ %244, %.lr.ph ], [ %241, %240 ] - %.0353538 = phi i32 [ %245, %.lr.ph ], [ %242, %240 ] - %243 = trunc i32 %.0353538 to i8 - %244 = getelementptr inbounds i8, ptr %.1352539, i64 1 - store i8 %243, ptr %.1352539, align 1 - %245 = lshr i32 %.0353538, 8 - %.not398 = icmp ult i32 %.0353538, 256 - br i1 %.not398, label %.loopexit533, label %.lr.ph, !llvm.loop !93 + %.1352536 = phi ptr [ %244, %.lr.ph ], [ %241, %240 ] + %.0353535 = phi i32 [ %245, %.lr.ph ], [ %242, %240 ] + %243 = trunc i32 %.0353535 to i8 + %244 = getelementptr inbounds i8, ptr %.1352536, i64 1 + store i8 %243, ptr %.1352536, align 1 + %245 = lshr i32 %.0353535, 8 + %.not398 = icmp ult i32 %.0353535, 256 + br i1 %.not398, label %.loopexit533, label %.lr.ph, !llvm.loop !94 .loopexit533: ; preds = %.lr.ph, %240 %.0351 = phi ptr [ %241, %240 ], [ %244, %.lr.ph ] @@ -4953,7 +4953,7 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit415: ; pr store i8 %250, ptr %251, align 1 %252 = lshr i32 %.08.i.i417, 3 %.not.i.i419 = icmp ult i32 %.08.i.i417, 8 - br i1 %.not.i.i419, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %247, !llvm.loop !94 + br i1 %.not.i.i419, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %247, !llvm.loop !95 253: ; preds = %232 %254 = and i16 %31, 15 @@ -5058,30 +5058,30 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit420: ; pr %307 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef 0) %308 = getelementptr inbounds i8, ptr %307, i64 %305 %.not393 = icmp ult i16 %279, 2 - br i1 %.not393, label %.loopexit, label %.lr.ph573.preheader + br i1 %.not393, label %.loopexit, label %.lr.ph570.preheader -.lr.ph573.preheader: ; preds = %304 +.lr.ph570.preheader: ; preds = %304 %309 = and i32 %282, 16777215 - br label %.lr.ph573 - -.lr.ph573: ; preds = %.lr.ph573.preheader, %.lr.ph573 - %.1367572 = phi ptr [ %311, %.lr.ph573 ], [ %308, %.lr.ph573.preheader ] - %.0368571 = phi i32 [ %312, %.lr.ph573 ], [ %309, %.lr.ph573.preheader ] - %310 = trunc i32 %.0368571 to i8 - %311 = getelementptr inbounds i8, ptr %.1367572, i64 1 - store i8 %310, ptr %.1367572, align 1 - %312 = lshr i32 %.0368571, 8 - %.not394 = icmp ult i32 %.0368571, 256 - br i1 %.not394, label %.loopexit, label %.lr.ph573, !llvm.loop !88 - -.loopexit: ; preds = %.lr.ph573, %304 - %.0366 = phi ptr [ %308, %304 ], [ %311, %.lr.ph573 ] + br label %.lr.ph570 + +.lr.ph570: ; preds = %.lr.ph570.preheader, %.lr.ph570 + %.1367569 = phi ptr [ %311, %.lr.ph570 ], [ %308, %.lr.ph570.preheader ] + %.0368568 = phi i32 [ %312, %.lr.ph570 ], [ %309, %.lr.ph570.preheader ] + %310 = trunc i32 %.0368568 to i8 + %311 = getelementptr inbounds i8, ptr %.1367569, i64 1 + store i8 %310, ptr %.1367569, align 1 + %312 = lshr i32 %.0368568, 8 + %.not394 = icmp ult i32 %.0368568, 256 + br i1 %.not394, label %.loopexit, label %.lr.ph570, !llvm.loop !88 + +.loopexit: ; preds = %.lr.ph570, %304 + %.0366 = phi ptr [ %308, %304 ], [ %311, %.lr.ph570 ] %313 = ashr i64 %292, 32 %314 = getelementptr inbounds i8, ptr %.0366, i64 %313 %315 = icmp ugt i8 %19, 99 - br i1 %315, label %.lr.ph.i.i429.preheader, label %._crit_edge.i.i426 + br i1 %315, label %.lr.ph.i.i429, label %._crit_edge.i.i426 -.lr.ph.i.i429.preheader: ; preds = %.loopexit +.lr.ph.i.i429: ; preds = %.loopexit %316 = getelementptr inbounds i8, ptr %314, i64 -2 %317 = urem i32 %.sroa.0115.0.extract.trunc, 100 %318 = shl nuw nsw i32 %317, 1 @@ -5090,11 +5090,11 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit420: ; pr %321 = load i16, ptr %320, align 1 store i16 %321, ptr %316, align 1 %322 = udiv i32 %.sroa.0115.0.extract.trunc, 100 - br label %._crit_edge.i.i426 + br label %._crit_edge.i.i426, !llvm.loop !89 -._crit_edge.i.i426: ; preds = %.lr.ph.i.i429.preheader, %.loopexit - %.023.lcssa.i.i427 = phi ptr [ %314, %.loopexit ], [ %316, %.lr.ph.i.i429.preheader ] - %.0.lcssa.i.i428 = phi i32 [ %.sroa.0115.0.extract.trunc, %.loopexit ], [ %322, %.lr.ph.i.i429.preheader ] +._crit_edge.i.i426: ; preds = %.lr.ph.i.i429, %.loopexit + %.023.lcssa.i.i427 = phi ptr [ %314, %.loopexit ], [ %316, %.lr.ph.i.i429 ] + %.0.lcssa.i.i428 = phi i32 [ %.sroa.0115.0.extract.trunc, %.loopexit ], [ %322, %.lr.ph.i.i429 ] %323 = icmp ult i32 %.0.lcssa.i.i428, 10 br i1 %323, label %324, label %328 @@ -5195,21 +5195,21 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit433: ; pr %379 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef 0) %380 = getelementptr inbounds i8, ptr %379, i64 %377 %381 = and i32 %.0517, 16777215 - %.not392565 = icmp eq i32 %381, 0 - br i1 %.not392565, label %.loopexit522, label %.lr.ph568 - -.lr.ph568: ; preds = %376, %.lr.ph568 - %.1361567 = phi ptr [ %383, %.lr.ph568 ], [ %380, %376 ] - %.0362566 = phi i32 [ %384, %.lr.ph568 ], [ %381, %376 ] - %382 = trunc i32 %.0362566 to i8 - %383 = getelementptr inbounds i8, ptr %.1361567, i64 1 - store i8 %382, ptr %.1361567, align 1 - %384 = lshr i32 %.0362566, 8 - %.not392 = icmp ult i32 %.0362566, 256 - br i1 %.not392, label %.loopexit522, label %.lr.ph568, !llvm.loop !89 - -.loopexit522: ; preds = %.lr.ph568, %376 - %.0360 = phi ptr [ %380, %376 ], [ %383, %.lr.ph568 ] + %.not392562 = icmp eq i32 %381, 0 + br i1 %.not392562, label %.loopexit522, label %.lr.ph565 + +.lr.ph565: ; preds = %376, %.lr.ph565 + %.1361564 = phi ptr [ %383, %.lr.ph565 ], [ %380, %376 ] + %.0362563 = phi i32 [ %384, %.lr.ph565 ], [ %381, %376 ] + %382 = trunc i32 %.0362563 to i8 + %383 = getelementptr inbounds i8, ptr %.1361564, i64 1 + store i8 %382, ptr %.1361564, align 1 + %384 = lshr i32 %.0362563, 8 + %.not392 = icmp ult i32 %.0362563, 256 + br i1 %.not392, label %.loopexit522, label %.lr.ph565, !llvm.loop !90 + +.loopexit522: ; preds = %.lr.ph565, %376 + %.0360 = phi ptr [ %380, %376 ], [ %383, %.lr.ph565 ] %385 = getelementptr inbounds i8, ptr %.0360, i64 %.sroa.280.0.insert.ext %.str.13..str.14.i.i435 = select i1 %353, ptr @.str.13, ptr @.str.14 br label %386 @@ -5225,7 +5225,7 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit433: ; pr store i8 %390, ptr %391, align 1 %392 = lshr i32 %.09.i.i436, 4 %.not.i.i438 = icmp ult i32 %.09.i.i436, 16 - br i1 %.not.i.i438, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %386, !llvm.loop !90 + br i1 %.not.i.i438, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %386, !llvm.loop !91 393: ; preds = %362 %394 = and i16 %277, 15 @@ -5308,21 +5308,21 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit440: ; pr %436 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1, i64 noundef 0) %437 = getelementptr inbounds i8, ptr %436, i64 %434 %438 = and i32 %.1518, 16777215 - %.not389560 = icmp eq i32 %438, 0 - br i1 %.not389560, label %.loopexit524, label %.lr.ph563 - -.lr.ph563: ; preds = %433, %.lr.ph563 - %.1355562 = phi ptr [ %440, %.lr.ph563 ], [ %437, %433 ] - %.0356561 = phi i32 [ %441, %.lr.ph563 ], [ %438, %433 ] - %439 = trunc i32 %.0356561 to i8 - %440 = getelementptr inbounds i8, ptr %.1355562, i64 1 - store i8 %439, ptr %.1355562, align 1 - %441 = lshr i32 %.0356561, 8 - %.not389 = icmp ult i32 %.0356561, 256 - br i1 %.not389, label %.loopexit524, label %.lr.ph563, !llvm.loop !91 - -.loopexit524: ; preds = %.lr.ph563, %433 - %.0354 = phi ptr [ %437, %433 ], [ %440, %.lr.ph563 ] + %.not389557 = icmp eq i32 %438, 0 + br i1 %.not389557, label %.loopexit524, label %.lr.ph560 + +.lr.ph560: ; preds = %433, %.lr.ph560 + %.1355559 = phi ptr [ %440, %.lr.ph560 ], [ %437, %433 ] + %.0356558 = phi i32 [ %441, %.lr.ph560 ], [ %438, %433 ] + %439 = trunc i32 %.0356558 to i8 + %440 = getelementptr inbounds i8, ptr %.1355559, i64 1 + store i8 %439, ptr %.1355559, align 1 + %441 = lshr i32 %.0356558, 8 + %.not389 = icmp ult i32 %.0356558, 256 + br i1 %.not389, label %.loopexit524, label %.lr.ph560, !llvm.loop !92 + +.loopexit524: ; preds = %.lr.ph560, %433 + %.0354 = phi ptr [ %437, %433 ], [ %440, %.lr.ph560 ] %442 = getelementptr inbounds i8, ptr %.0354, i64 %.sroa.272.0.insert.ext br label %443 @@ -5336,7 +5336,7 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit440: ; pr store i8 %446, ptr %447, align 1 %448 = lshr i32 %.08.i.i442, 1 %.not.i.i444 = icmp ult i32 %.08.i.i442, 2 - br i1 %.not.i.i444, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %443, !llvm.loop !92 + br i1 %.not.i.i444, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %443, !llvm.loop !93 449: ; preds = %420 %450 = and i16 %277, 15 @@ -5388,11 +5388,11 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit446: ; pr %473 = and i16 %277, 128 %.not384 = icmp eq i16 %473, 0 %.phi.trans.insert = getelementptr inbounds i8, ptr %0, i64 12 - %.pre599 = load i32, ptr %.phi.trans.insert, align 4 + %.pre592 = load i32, ptr %.phi.trans.insert, align 4 br i1 %.not384, label %._crit_edge, label %474 474: ; preds = %467 - %475 = icmp sle i32 %.pre599, %472 + %475 = icmp sle i32 %.pre592, %472 %476 = icmp ne i8 %19, 0 %or.cond3 = select i1 %475, i1 %476, i1 false br i1 %or.cond3, label %477, label %._crit_edge @@ -5409,7 +5409,7 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit446: ; pr %.sroa.2.0.insert.ext = zext nneg i8 %narrow.i448 to i64 %.sroa.2.0.insert.shift = shl nuw nsw i64 %.sroa.2.0.insert.ext, 32 %481 = load i32, ptr %18, align 8 - %482 = add nsw i32 %.pre599, 1 + %482 = add nsw i32 %.pre592, 1 %483 = or i32 %482, %481 %484 = icmp eq i32 %483, 0 %485 = lshr i32 %.2, 24 @@ -5420,21 +5420,21 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit446: ; pr 488: ; preds = %._crit_edge %489 = call noundef ptr @_ZN3fmt3v106detail7reserveINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnNSt9enable_ifIXsr13is_contiguousIT_EE5valueEiE4typeELi0EEEPNSA_10value_typeESt20back_insert_iteratorISA_Em(ptr %1, i64 noundef %487) %490 = and i32 %.2, 16777215 - %.not386555 = icmp eq i32 %490, 0 - br i1 %.not386555, label %.loopexit526, label %.lr.ph558 - -.lr.ph558: ; preds = %488, %.lr.ph558 - %.1557 = phi ptr [ %492, %.lr.ph558 ], [ %489, %488 ] - %.0350556 = phi i32 [ %493, %.lr.ph558 ], [ %490, %488 ] - %491 = trunc i32 %.0350556 to i8 - %492 = getelementptr inbounds i8, ptr %.1557, i64 1 - store i8 %491, ptr %.1557, align 1 - %493 = lshr i32 %.0350556, 8 - %.not386 = icmp ult i32 %.0350556, 256 - br i1 %.not386, label %.loopexit526, label %.lr.ph558, !llvm.loop !93 - -.loopexit526: ; preds = %.lr.ph558, %488 - %.0 = phi ptr [ %489, %488 ], [ %492, %.lr.ph558 ] + %.not386552 = icmp eq i32 %490, 0 + br i1 %.not386552, label %.loopexit526, label %.lr.ph555 + +.lr.ph555: ; preds = %488, %.lr.ph555 + %.1554 = phi ptr [ %492, %.lr.ph555 ], [ %489, %488 ] + %.0350553 = phi i32 [ %493, %.lr.ph555 ], [ %490, %488 ] + %491 = trunc i32 %.0350553 to i8 + %492 = getelementptr inbounds i8, ptr %.1554, i64 1 + store i8 %491, ptr %.1554, align 1 + %493 = lshr i32 %.0350553, 8 + %.not386 = icmp ult i32 %.0350553, 256 + br i1 %.not386, label %.loopexit526, label %.lr.ph555, !llvm.loop !94 + +.loopexit526: ; preds = %.lr.ph555, %488 + %.0 = phi ptr [ %489, %488 ], [ %492, %.lr.ph555 ] %494 = getelementptr inbounds i8, ptr %.0, i64 %.sroa.2.0.insert.ext br label %495 @@ -5448,7 +5448,7 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit446: ; pr store i8 %498, ptr %499, align 1 %500 = lshr i32 %.08.i.i450, 3 %.not.i.i452 = icmp ult i32 %.08.i.i450, 8 - br i1 %.not.i.i452, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %495, !llvm.loop !94 + br i1 %.not.i.i452, label %_ZZN3fmt3v106detail9write_intIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEjEET0_SB_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEENKUlPcE_clESL_.exit, label %495, !llvm.loop !95 501: ; preds = %._crit_edge %502 = and i16 %277, 15 @@ -5465,13 +5465,13 @@ _ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit446: ; pr br label %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit454 509: ; preds = %501 - %510 = icmp sgt i32 %.pre599, %472 + %510 = icmp sgt i32 %.pre592, %472 br i1 %510, label %511, label %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit454 511: ; preds = %509 - %512 = add nuw i32 %.pre599, %485 + %512 = add nuw i32 %.pre592, %485 %513 = zext i32 %512 to i64 - %514 = sub nsw i32 %.pre599, %472 + %514 = sub nsw i32 %.pre592, %472 %515 = zext i32 %514 to i64 br label %_ZN3fmt3v106detail14write_int_dataIcEC2EijRKNS0_12format_specsIcEE.exit454 @@ -5520,12 +5520,12 @@ define linkonce_odr dso_local void @_ZN3fmt3v106detail19handle_dynamic_specINS1_ 7: ; preds = %3 %8 = getelementptr inbounds i8, ptr %1, i64 8 %9 = load i32, ptr %8, align 8 - tail call void @llvm.experimental.noalias.scope.decl(metadata !95) - tail call void @llvm.experimental.noalias.scope.decl(metadata !98) + tail call void @llvm.experimental.noalias.scope.decl(metadata !96) + tail call void @llvm.experimental.noalias.scope.decl(metadata !99) %10 = getelementptr inbounds i8, ptr %2, i64 8 - tail call void @llvm.experimental.noalias.scope.decl(metadata !101) + tail call void @llvm.experimental.noalias.scope.decl(metadata !102) %11 = getelementptr inbounds i8, ptr %4, i64 16 - %12 = load i64, ptr %10, align 8, !noalias !104 + %12 = load i64, ptr %10, align 8, !noalias !105 %13 = icmp sgt i64 %12, -1 br i1 %13, label %17, label %14 @@ -5544,13 +5544,13 @@ define linkonce_odr dso_local void @_ZN3fmt3v106detail19handle_dynamic_specINS1_ %22 = lshr i64 %12, %21 %23 = trunc i64 %22 to i32 %24 = and i32 %23, 15 - store i32 %24, ptr %11, align 16, !alias.scope !104 + store i32 %24, ptr %11, align 16, !alias.scope !105 %25 = icmp eq i32 %24, 0 br i1 %25, label %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread.i, label %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread5.i _ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread5.i: ; preds = %19 %26 = getelementptr inbounds i8, ptr %2, i64 16 - %27 = load ptr, ptr %26, align 8, !noalias !104 + %27 = load ptr, ptr %26, align 8, !noalias !105 %28 = sext i32 %9 to i64 %29 = getelementptr inbounds %"class.fmt::v10::detail::value", ptr %27, i64 %28 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %4, ptr noundef nonnull align 16 dereferenceable(16) %29, i64 16, i1 false) @@ -5558,16 +5558,16 @@ _ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_s _ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.i: ; preds = %14 %30 = getelementptr inbounds i8, ptr %2, i64 16 - %31 = load ptr, ptr %30, align 8, !noalias !104 + %31 = load ptr, ptr %30, align 8, !noalias !105 %32 = sext i32 %9 to i64 %33 = getelementptr inbounds %"class.fmt::v10::basic_format_arg", ptr %31, i64 %32 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(20) %4, ptr noundef nonnull align 16 dereferenceable(20) %33, i64 20, i1 false) - %.pr.pre.i = load i32, ptr %11, align 16, !alias.scope !95 + %.pr.pre.i = load i32, ptr %11, align 16, !alias.scope !96 %34 = icmp eq i32 %.pr.pre.i, 0 br i1 %34, label %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread.i, label %_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_.exit _ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread.i: ; preds = %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.i, %19, %17, %14 - tail call void @_ZN3fmt3v106detail18throw_format_errorEPKc(ptr noundef nonnull @.str.6) #29, !noalias !95 + tail call void @_ZN3fmt3v106detail18throw_format_errorEPKc(ptr noundef nonnull @.str.6) #29, !noalias !96 unreachable _ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_.exit: ; preds = %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread5.i, %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.i @@ -5582,7 +5582,7 @@ _ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorIN %38 = getelementptr inbounds i8, ptr %2, i64 8 call void @_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getIcEENS0_16basic_format_argISB_EENS0_17basic_string_viewIT_EE(ptr dead_on_unwind nonnull writable sret(%"class.fmt::v10::basic_format_arg") align 16 %5, ptr noundef nonnull align 8 dereferenceable(16) %38, ptr %.sroa.0.0.copyload, i64 %.sroa.2.0.copyload) %39 = getelementptr inbounds i8, ptr %5, i64 16 - %40 = load i32, ptr %39, align 16, !alias.scope !105 + %40 = load i32, ptr %39, align 16, !alias.scope !106 %.not.i = icmp eq i32 %40, 0 br i1 %.not.i, label %41, label %_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEENS0_17basic_string_viewIcEEEEDTcldtfp_3argfp0_EERT_T0_.exit @@ -5616,12 +5616,12 @@ define linkonce_odr dso_local void @_ZN3fmt3v106detail19handle_dynamic_specINS1_ 7: ; preds = %3 %8 = getelementptr inbounds i8, ptr %1, i64 8 %9 = load i32, ptr %8, align 8 - tail call void @llvm.experimental.noalias.scope.decl(metadata !108) - tail call void @llvm.experimental.noalias.scope.decl(metadata !111) + tail call void @llvm.experimental.noalias.scope.decl(metadata !109) + tail call void @llvm.experimental.noalias.scope.decl(metadata !112) %10 = getelementptr inbounds i8, ptr %2, i64 8 - tail call void @llvm.experimental.noalias.scope.decl(metadata !114) + tail call void @llvm.experimental.noalias.scope.decl(metadata !115) %11 = getelementptr inbounds i8, ptr %4, i64 16 - %12 = load i64, ptr %10, align 8, !noalias !117 + %12 = load i64, ptr %10, align 8, !noalias !118 %13 = icmp sgt i64 %12, -1 br i1 %13, label %17, label %14 @@ -5640,13 +5640,13 @@ define linkonce_odr dso_local void @_ZN3fmt3v106detail19handle_dynamic_specINS1_ %22 = lshr i64 %12, %21 %23 = trunc i64 %22 to i32 %24 = and i32 %23, 15 - store i32 %24, ptr %11, align 16, !alias.scope !117 + store i32 %24, ptr %11, align 16, !alias.scope !118 %25 = icmp eq i32 %24, 0 br i1 %25, label %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread.i, label %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread5.i _ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread5.i: ; preds = %19 %26 = getelementptr inbounds i8, ptr %2, i64 16 - %27 = load ptr, ptr %26, align 8, !noalias !117 + %27 = load ptr, ptr %26, align 8, !noalias !118 %28 = sext i32 %9 to i64 %29 = getelementptr inbounds %"class.fmt::v10::detail::value", ptr %27, i64 %28 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %4, ptr noundef nonnull align 16 dereferenceable(16) %29, i64 16, i1 false) @@ -5654,16 +5654,16 @@ _ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_s _ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.i: ; preds = %14 %30 = getelementptr inbounds i8, ptr %2, i64 16 - %31 = load ptr, ptr %30, align 8, !noalias !117 + %31 = load ptr, ptr %30, align 8, !noalias !118 %32 = sext i32 %9 to i64 %33 = getelementptr inbounds %"class.fmt::v10::basic_format_arg", ptr %31, i64 %32 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(20) %4, ptr noundef nonnull align 16 dereferenceable(20) %33, i64 20, i1 false) - %.pr.pre.i = load i32, ptr %11, align 16, !alias.scope !108 + %.pr.pre.i = load i32, ptr %11, align 16, !alias.scope !109 %34 = icmp eq i32 %.pr.pre.i, 0 br i1 %34, label %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread.i, label %_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_.exit _ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread.i: ; preds = %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.i, %19, %17, %14 - tail call void @_ZN3fmt3v106detail18throw_format_errorEPKc(ptr noundef nonnull @.str.6) #29, !noalias !108 + tail call void @_ZN3fmt3v106detail18throw_format_errorEPKc(ptr noundef nonnull @.str.6) #29, !noalias !109 unreachable _ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_.exit: ; preds = %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.thread5.i, %_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi.exit.i @@ -5678,7 +5678,7 @@ _ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorIN %38 = getelementptr inbounds i8, ptr %2, i64 8 call void @_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getIcEENS0_16basic_format_argISB_EENS0_17basic_string_viewIT_EE(ptr dead_on_unwind nonnull writable sret(%"class.fmt::v10::basic_format_arg") align 16 %5, ptr noundef nonnull align 8 dereferenceable(16) %38, ptr %.sroa.0.0.copyload, i64 %.sroa.2.0.copyload) %39 = getelementptr inbounds i8, ptr %5, i64 16 - %40 = load i32, ptr %39, align 16, !alias.scope !118 + %40 = load i32, ptr %39, align 16, !alias.scope !119 %.not.i = icmp eq i32 %40, 0 br i1 %.not.i, label %41, label %_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEENS0_17basic_string_viewIcEEEEDTcldtfp_3argfp0_EERT_T0_.exit @@ -5870,7 +5870,7 @@ _ZN3fmt3v10eqENS0_17basic_string_viewIcEES2_.exit.i: ; preds = %15 _ZN3fmt3v10eqENS0_17basic_string_viewIcEES2_.exit.thread.i: ; preds = %_ZN3fmt3v10eqENS0_17basic_string_viewIcEES2_.exit.i, %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i.i %22 = add nuw i64 %.01316.i, 1 %exitcond.not.i = icmp eq i64 %22, %13 - br i1 %exitcond.not.i, label %_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE6get_idIcEEiNS0_17basic_string_viewIT_EE.exit.thread, label %15, !llvm.loop !121 + br i1 %exitcond.not.i, label %_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE6get_idIcEEiNS0_17basic_string_viewIT_EE.exit.thread, label %15, !llvm.loop !122 _ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE6get_idIcEEiNS0_17basic_string_viewIT_EE.exit: ; preds = %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i.i, %_ZN3fmt3v10eqENS0_17basic_string_viewIcEES2_.exit.i %23 = getelementptr inbounds %"struct.fmt::v10::detail::named_arg_info", ptr %14, i64 %.01316.i, i32 1 @@ -5880,7 +5880,7 @@ _ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_itera 26: ; preds = %_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE6get_idIcEEiNS0_17basic_string_viewIT_EE.exit %27 = getelementptr inbounds i8, ptr %0, i64 16 - store i32 0, ptr %27, align 16, !alias.scope !122 + store i32 0, ptr %27, align 16, !alias.scope !123 %28 = icmp sgt i64 %5, -1 br i1 %28, label %35, label %29 @@ -5905,7 +5905,7 @@ _ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_itera %40 = lshr i64 %5, %39 %41 = trunc i64 %40 to i32 %42 = and i32 %41, 15 - store i32 %42, ptr %27, align 16, !alias.scope !122 + store i32 %42, ptr %27, align 16, !alias.scope !123 %43 = icmp eq i32 %42, 0 br i1 %43, label %_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi.exit, label %44 @@ -6122,7 +6122,7 @@ _ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_co %36 = getelementptr inbounds i8, ptr %.01517.i, i64 %31 %37 = add nuw nsw i64 %.018.i, 1 %exitcond.not.i = icmp eq i64 %37, %17 - br i1 %exitcond.not.i, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, !llvm.loop !125 + br i1 %exitcond.not.i, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, !llvm.loop !126 _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit: ; preds = %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, %33, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.us.preheader.i, %5 %.0 = phi ptr [ %28, %5 ], [ %35, %33 ], [ %scevgep.i, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.us.preheader.i ], [ %36, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i ] @@ -6139,7 +6139,7 @@ _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit: ; preds = %_ZN3fmt3 store i8 %40, ptr %.069.i, align 1 %42 = lshr i32 %.010.i, 8 %.not.i30 = icmp ult i32 %.010.i, 256 - br i1 %.not.i30, label %._crit_edge.i, label %.lr.ph.i29, !llvm.loop !126 + br i1 %.not.i30, label %._crit_edge.i, label %.lr.ph.i29, !llvm.loop !127 ._crit_edge.i: ; preds = %.lr.ph.i29, %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit %.06.lcssa.i = phi ptr [ %.0, %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit ], [ %41, %.lr.ph.i29 ] @@ -6168,7 +6168,7 @@ _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit: ; preds = %_ZN3fmt3 store i16 %58, ptr %53, align 1 %59 = udiv i32 %.025.i.i.i, 100 %60 = icmp ugt i32 %.025.i.i.i, 9999 - br i1 %60, label %.lr.ph.i.i.i, label %._crit_edge.i.i.i, !llvm.loop !127 + br i1 %60, label %.lr.ph.i.i.i, label %._crit_edge.i.i.i, !llvm.loop !89 ._crit_edge.i.i.i: ; preds = %.lr.ph.i.i.i, %._crit_edge.i %.023.lcssa.i.i.i = phi ptr [ %51, %._crit_edge.i ], [ %53, %.lr.ph.i.i.i ] @@ -6216,7 +6216,7 @@ _ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_co %77 = getelementptr inbounds i8, ptr %.01517.i37, i64 %74 %78 = add nuw i64 %.018.i36, 1 %exitcond.not.i38 = icmp eq i64 %78, %18 - br i1 %exitcond.not.i38, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, !llvm.loop !125 + br i1 %exitcond.not.i38, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, !llvm.loop !126 _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42: ; preds = %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, %72, %75, %_ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit ret ptr %0 @@ -6277,7 +6277,7 @@ _ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_co %36 = getelementptr inbounds i8, ptr %.01517.i, i64 %31 %37 = add nuw nsw i64 %.018.i, 1 %exitcond.not.i = icmp eq i64 %37, %17 - br i1 %exitcond.not.i, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, !llvm.loop !125 + br i1 %exitcond.not.i, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, !llvm.loop !126 _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit: ; preds = %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, %33, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.us.preheader.i, %5 %.0 = phi ptr [ %28, %5 ], [ %35, %33 ], [ %scevgep.i, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.us.preheader.i ], [ %36, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i ] @@ -6325,7 +6325,7 @@ _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit: ; preds = %_ZN3fmt3 store i8 %59, ptr %60, align 1 %61 = lshr i32 %.09.i.i.i, 4 %.not.i.i.i = icmp ult i32 %.09.i.i.i, 16 - br i1 %.not.i.i.i, label %_ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE0_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit, label %55, !llvm.loop !90 + br i1 %.not.i.i.i, label %_ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE0_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit, label %55, !llvm.loop !91 _ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE0_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit: ; preds = %55 %.not28 = icmp eq i64 %8, %17 @@ -6351,7 +6351,7 @@ _ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_co %67 = getelementptr inbounds i8, ptr %.01517.i37, i64 %64 %68 = add nuw i64 %.018.i36, 1 %exitcond.not.i38 = icmp eq i64 %68, %18 - br i1 %exitcond.not.i38, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, !llvm.loop !125 + br i1 %exitcond.not.i38, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, !llvm.loop !126 _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42: ; preds = %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, %62, %65, %_ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE0_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit ret ptr %0 @@ -6412,7 +6412,7 @@ _ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_co %36 = getelementptr inbounds i8, ptr %.01517.i, i64 %31 %37 = add nuw nsw i64 %.018.i, 1 %exitcond.not.i = icmp eq i64 %37, %17 - br i1 %exitcond.not.i, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, !llvm.loop !125 + br i1 %exitcond.not.i, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, !llvm.loop !126 _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit: ; preds = %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, %33, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.us.preheader.i, %5 %.0 = phi ptr [ %28, %5 ], [ %35, %33 ], [ %scevgep.i, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.us.preheader.i ], [ %36, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i ] @@ -6455,7 +6455,7 @@ _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit: ; preds = %_ZN3fmt3 store i8 %55, ptr %56, align 1 %57 = lshr i32 %.08.i.i.i, 1 %.not.i.i.i = icmp ult i32 %.08.i.i.i, 2 - br i1 %.not.i.i.i, label %_ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE1_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit, label %52, !llvm.loop !92 + br i1 %.not.i.i.i, label %_ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE1_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit, label %52, !llvm.loop !93 _ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE1_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit: ; preds = %52 %.not28 = icmp eq i64 %8, %17 @@ -6481,7 +6481,7 @@ _ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_co %63 = getelementptr inbounds i8, ptr %.01517.i37, i64 %60 %64 = add nuw i64 %.018.i36, 1 %exitcond.not.i38 = icmp eq i64 %64, %18 - br i1 %exitcond.not.i38, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, !llvm.loop !125 + br i1 %exitcond.not.i38, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, !llvm.loop !126 _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42: ; preds = %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, %58, %61, %_ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE1_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit ret ptr %0 @@ -6542,7 +6542,7 @@ _ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_co %36 = getelementptr inbounds i8, ptr %.01517.i, i64 %31 %37 = add nuw nsw i64 %.018.i, 1 %exitcond.not.i = icmp eq i64 %37, %17 - br i1 %exitcond.not.i, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, !llvm.loop !125 + br i1 %exitcond.not.i, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, !llvm.loop !126 _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit: ; preds = %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, %33, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.us.preheader.i, %5 %.0 = phi ptr [ %28, %5 ], [ %35, %33 ], [ %scevgep.i, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.us.preheader.i ], [ %36, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i ] @@ -6585,7 +6585,7 @@ _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit: ; preds = %_ZN3fmt3 store i8 %55, ptr %56, align 1 %57 = lshr i32 %.08.i.i.i, 3 %.not.i.i.i = icmp ult i32 %.08.i.i.i, 8 - br i1 %.not.i.i.i, label %_ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE2_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit, label %52, !llvm.loop !94 + br i1 %.not.i.i.i, label %_ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE2_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit, label %52, !llvm.loop !95 _ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE2_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit: ; preds = %52 %.not28 = icmp eq i64 %8, %17 @@ -6611,7 +6611,7 @@ _ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_co %63 = getelementptr inbounds i8, ptr %.01517.i37, i64 %60 %64 = add nuw i64 %.018.i36, 1 %exitcond.not.i38 = icmp eq i64 %64, %18 - br i1 %exitcond.not.i38, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, !llvm.loop !125 + br i1 %exitcond.not.i38, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, !llvm.loop !126 _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit42: ; preds = %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i35, %58, %61, %_ZZN3fmt3v106detail9write_intISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcZNS1_9write_intIcSA_jEET0_SC_NS1_13write_int_argIT1_EERKNS0_12format_specsIT_EENS1_10locale_refEEUlPcE2_EESH_SH_ijRKNSG_ISC_EESE_ENKUlSM_E_clESM_.exit ret ptr %0 @@ -6674,7 +6674,7 @@ _ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_co %38 = getelementptr inbounds i8, ptr %.01517.i, i64 %33 %39 = add nuw nsw i64 %.018.i, 1 %exitcond.not.i = icmp eq i64 %39, %19 - br i1 %exitcond.not.i, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, !llvm.loop !125 + br i1 %exitcond.not.i, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, !llvm.loop !126 _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit: ; preds = %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i, %35, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.us.preheader.i, %5 %.0 = phi ptr [ %30, %5 ], [ %37, %35 ], [ %scevgep.i, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.us.preheader.i ], [ %38, %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i ] @@ -6766,7 +6766,7 @@ _ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_co %67 = getelementptr inbounds i8, ptr %.01517.i35, i64 %64 %68 = add nuw i64 %.018.i34, 1 %exitcond.not.i36 = icmp eq i64 %68, %20 - br i1 %exitcond.not.i36, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit40, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i33, !llvm.loop !125 + br i1 %exitcond.not.i36, label %_ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit40, label %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i33, !llvm.loop !126 _ZN3fmt3v106detail4fillIPccEET_S4_mRKNS1_6fill_tIT0_EE.exit40: ; preds = %_ZN3fmt3v106detail8copy_strIcKccTnNSt9enable_ifIXaasr3std7is_sameINSt12remove_constIT0_E4typeET1_EE5valuesr7is_charIS9_EE5valueEiE4typeELi0EEEPS9_PS6_SD_SC_.exit.i33, %62, %65, %_ZZN3fmt3v106detail10write_charIcSt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEET0_SB_T_RKNS0_12format_specsISC_EEENKUlPcE_clESH_.exit ret ptr %0 @@ -6823,7 +6823,7 @@ define linkonce_odr dso_local noundef ptr @_ZN3fmt3v106detail16write_escaped_cpI store i8 %22, ptr %23, align 1 %24 = lshr i32 %.09.i.i, 4 %.not.i.i = icmp ult i32 %.09.i.i, 16 - br i1 %.not.i.i, label %_ZN3fmt3v106detail15write_codepointILm2EcPcEET1_S4_cj.exit, label %18, !llvm.loop !90 + br i1 %.not.i.i, label %_ZN3fmt3v106detail15write_codepointILm2EcPcEET1_S4_cj.exit, label %18, !llvm.loop !91 _ZN3fmt3v106detail15write_codepointILm2EcPcEET1_S4_cj.exit: ; preds = %18 %25 = getelementptr inbounds i8, ptr %0, i64 2 @@ -6857,7 +6857,7 @@ _ZN3fmt3v106detail15write_codepointILm2EcPcEET1_S4_cj.exit: ; preds = %18 store i8 %37, ptr %38, align 1 %39 = lshr i32 %.09.i.i35, 4 %.not.i.i37 = icmp ult i32 %.09.i.i35, 16 - br i1 %.not.i.i37, label %_ZN3fmt3v106detail15write_codepointILm4EcPcEET1_S4_cj.exit, label %33, !llvm.loop !90 + br i1 %.not.i.i37, label %_ZN3fmt3v106detail15write_codepointILm4EcPcEET1_S4_cj.exit, label %33, !llvm.loop !91 _ZN3fmt3v106detail15write_codepointILm4EcPcEET1_S4_cj.exit: ; preds = %33 %40 = getelementptr inbounds i8, ptr %0, i64 2 @@ -6891,7 +6891,7 @@ _ZN3fmt3v106detail15write_codepointILm4EcPcEET1_S4_cj.exit: ; preds = %33 store i8 %52, ptr %53, align 1 %54 = lshr i32 %.09.i.i38, 4 %.not.i.i40 = icmp ult i32 %.09.i.i38, 16 - br i1 %.not.i.i40, label %_ZN3fmt3v106detail15write_codepointILm8EcPcEET1_S4_cj.exit, label %48, !llvm.loop !90 + br i1 %.not.i.i40, label %_ZN3fmt3v106detail15write_codepointILm8EcPcEET1_S4_cj.exit, label %48, !llvm.loop !91 _ZN3fmt3v106detail15write_codepointILm8EcPcEET1_S4_cj.exit: ; preds = %48 %55 = getelementptr inbounds i8, ptr %0, i64 2 @@ -6935,7 +6935,7 @@ _ZN3fmt3v106detail15write_codepointILm8EcPcEET1_S4_cj.exit: ; preds = %48 store i8 %71, ptr %72, align 1 %73 = lshr i32 %.09.i.i41, 4 %.not.i.i43 = icmp ult i32 %.09.i.i41, 16 - br i1 %.not.i.i43, label %_ZN3fmt3v106detail15write_codepointILm2EcPcEET1_S4_cj.exit44, label %67, !llvm.loop !90 + br i1 %.not.i.i43, label %_ZN3fmt3v106detail15write_codepointILm2EcPcEET1_S4_cj.exit44, label %67, !llvm.loop !91 _ZN3fmt3v106detail15write_codepointILm2EcPcEET1_S4_cj.exit44: ; preds = %67 %74 = getelementptr inbounds i8, ptr %.148, i64 2 @@ -8932,7 +8932,7 @@ define linkonce_odr dso_local i64 @_ZN3fmt3v106detail16write_escaped_cpINS1_17co store i8 %17, ptr %18, align 1 %19 = lshr i32 %.09.i.i, 4 %.not.i.i = icmp ult i32 %.09.i.i, 16 - br i1 %.not.i.i, label %_ZN3fmt3v106detail15write_codepointILm2EcNS1_17counting_iteratorEEET1_S4_cj.exit, label %13, !llvm.loop !90 + br i1 %.not.i.i, label %_ZN3fmt3v106detail15write_codepointILm2EcNS1_17counting_iteratorEEET1_S4_cj.exit, label %13, !llvm.loop !91 _ZN3fmt3v106detail15write_codepointILm2EcNS1_17counting_iteratorEEET1_S4_cj.exit: ; preds = %13 %20 = add i64 %0, 4 @@ -8959,7 +8959,7 @@ _ZN3fmt3v106detail15write_codepointILm2EcNS1_17counting_iteratorEEET1_S4_cj.exit store i8 %29, ptr %30, align 1 %31 = lshr i32 %.09.i.i27, 4 %.not.i.i29 = icmp ult i32 %.09.i.i27, 16 - br i1 %.not.i.i29, label %_ZN3fmt3v106detail15write_codepointILm4EcNS1_17counting_iteratorEEET1_S4_cj.exit, label %25, !llvm.loop !90 + br i1 %.not.i.i29, label %_ZN3fmt3v106detail15write_codepointILm4EcNS1_17counting_iteratorEEET1_S4_cj.exit, label %25, !llvm.loop !91 _ZN3fmt3v106detail15write_codepointILm4EcNS1_17counting_iteratorEEET1_S4_cj.exit: ; preds = %25 %32 = add i64 %0, 6 @@ -8986,7 +8986,7 @@ _ZN3fmt3v106detail15write_codepointILm4EcNS1_17counting_iteratorEEET1_S4_cj.exit store i8 %41, ptr %42, align 1 %43 = lshr i32 %.09.i.i30, 4 %.not.i.i32 = icmp ult i32 %.09.i.i30, 16 - br i1 %.not.i.i32, label %_ZN3fmt3v106detail15write_codepointILm8EcNS1_17counting_iteratorEEET1_S4_cj.exit, label %37, !llvm.loop !90 + br i1 %.not.i.i32, label %_ZN3fmt3v106detail15write_codepointILm8EcNS1_17counting_iteratorEEET1_S4_cj.exit, label %37, !llvm.loop !91 _ZN3fmt3v106detail15write_codepointILm8EcNS1_17counting_iteratorEEET1_S4_cj.exit: ; preds = %37 %44 = add i64 %0, 10 @@ -9023,7 +9023,7 @@ _ZN3fmt3v106detail15write_codepointILm8EcNS1_17counting_iteratorEEET1_S4_cj.exit store i8 %57, ptr %58, align 1 %59 = lshr i32 %.09.i.i33, 4 %.not.i.i35 = icmp ult i32 %.09.i.i33, 16 - br i1 %.not.i.i35, label %_ZN3fmt3v106detail15write_codepointILm2EcNS1_17counting_iteratorEEET1_S4_cj.exit36, label %53, !llvm.loop !90 + br i1 %.not.i.i35, label %_ZN3fmt3v106detail15write_codepointILm2EcNS1_17counting_iteratorEEET1_S4_cj.exit36, label %53, !llvm.loop !91 _ZN3fmt3v106detail15write_codepointILm2EcNS1_17counting_iteratorEEET1_S4_cj.exit36: ; preds = %53 %60 = add i64 %.sroa.044.156, 4 @@ -9783,7 +9783,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v106detail6bufferIcEEEaSEOc.exit7: ; preds = % store i8 %33, ptr %34, align 1 %35 = lshr i32 %.09.i, 4 %.not.i = icmp ult i32 %.09.i, 16 - br i1 %.not.i, label %_ZN3fmt3v106detail11format_uintILj4EcjEEPT0_S4_T1_ib.exit, label %29, !llvm.loop !90 + br i1 %.not.i, label %_ZN3fmt3v106detail11format_uintILj4EcjEEPT0_S4_T1_ib.exit, label %29, !llvm.loop !91 _ZN3fmt3v106detail11format_uintILj4EcjEEPT0_S4_T1_ib.exit: ; preds = %29 %.pre.i.i8 = load i64, ptr %5, align 8 @@ -9897,7 +9897,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v106detail6bufferIcEEEaSEOc.exit7: ; preds = % store i8 %33, ptr %34, align 1 %35 = lshr i32 %.09.i, 4 %.not.i = icmp ult i32 %.09.i, 16 - br i1 %.not.i, label %_ZN3fmt3v106detail11format_uintILj4EcjEEPT0_S4_T1_ib.exit, label %29, !llvm.loop !90 + br i1 %.not.i, label %_ZN3fmt3v106detail11format_uintILj4EcjEEPT0_S4_T1_ib.exit, label %29, !llvm.loop !91 _ZN3fmt3v106detail11format_uintILj4EcjEEPT0_S4_T1_ib.exit: ; preds = %29 %.pre.i.i8 = load i64, ptr %5, align 8 @@ -10011,7 +10011,7 @@ _ZNSt20back_insert_iteratorIN3fmt3v106detail6bufferIcEEEaSEOc.exit7: ; preds = % store i8 %33, ptr %34, align 1 %35 = lshr i32 %.09.i, 4 %.not.i = icmp ult i32 %.09.i, 16 - br i1 %.not.i, label %_ZN3fmt3v106detail11format_uintILj4EcjEEPT0_S4_T1_ib.exit, label %29, !llvm.loop !90 + br i1 %.not.i, label %_ZN3fmt3v106detail11format_uintILj4EcjEEPT0_S4_T1_ib.exit, label %29, !llvm.loop !91 _ZN3fmt3v106detail11format_uintILj4EcjEEPT0_S4_T1_ib.exit: ; preds = %29 %.pre.i.i8 = load i64, ptr %5, align 8 @@ -11195,37 +11195,37 @@ attributes #31 = { nounwind willreturn memory(none) } !92 = distinct !{!92, !6} !93 = distinct !{!93, !6} !94 = distinct !{!94, !6} -!95 = !{!96} -!96 = distinct !{!96, !97, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_: argument 0"} -!97 = distinct !{!97, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_"} -!98 = !{!99} -!99 = distinct !{!99, !100, !"_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi: argument 0"} -!100 = distinct !{!100, !"_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi"} -!101 = !{!102} -!102 = distinct !{!102, !103, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi: argument 0"} -!103 = distinct !{!103, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi"} -!104 = !{!102, !99, !96} -!105 = !{!106} -!106 = distinct !{!106, !107, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEENS0_17basic_string_viewIcEEEEDTcldtfp_3argfp0_EERT_T0_: argument 0"} -!107 = distinct !{!107, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEENS0_17basic_string_viewIcEEEEDTcldtfp_3argfp0_EERT_T0_"} -!108 = !{!109} -!109 = distinct !{!109, !110, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_: argument 0"} -!110 = distinct !{!110, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_"} -!111 = !{!112} -!112 = distinct !{!112, !113, !"_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi: argument 0"} -!113 = distinct !{!113, !"_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi"} -!114 = !{!115} -!115 = distinct !{!115, !116, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi: argument 0"} -!116 = distinct !{!116, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi"} -!117 = !{!115, !112, !109} -!118 = !{!119} -!119 = distinct !{!119, !120, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEENS0_17basic_string_viewIcEEEEDTcldtfp_3argfp0_EERT_T0_: argument 0"} -!120 = distinct !{!120, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEENS0_17basic_string_viewIcEEEEDTcldtfp_3argfp0_EERT_T0_"} -!121 = distinct !{!121, !6} -!122 = !{!123} -!123 = distinct !{!123, !124, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi: argument 0"} -!124 = distinct !{!124, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi"} -!125 = distinct !{!125, !6} +!95 = distinct !{!95, !6} +!96 = !{!97} +!97 = distinct !{!97, !98, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_: argument 0"} +!98 = distinct !{!98, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_"} +!99 = !{!100} +!100 = distinct !{!100, !101, !"_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi: argument 0"} +!101 = distinct !{!101, !"_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi"} +!102 = !{!103} +!103 = distinct !{!103, !104, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi: argument 0"} +!104 = distinct !{!104, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi"} +!105 = !{!103, !100, !97} +!106 = !{!107} +!107 = distinct !{!107, !108, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEENS0_17basic_string_viewIcEEEEDTcldtfp_3argfp0_EERT_T0_: argument 0"} +!108 = distinct !{!108, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEENS0_17basic_string_viewIcEEEEDTcldtfp_3argfp0_EERT_T0_"} +!109 = !{!110} +!110 = distinct !{!110, !111, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_: argument 0"} +!111 = distinct !{!111, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEiEEDTcldtfp_3argfp0_EERT_T0_"} +!112 = !{!113} +!113 = distinct !{!113, !114, !"_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi: argument 0"} +!114 = distinct !{!114, !"_ZNK3fmt3v1020basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcE3argEi"} +!115 = !{!116} +!116 = distinct !{!116, !117, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi: argument 0"} +!117 = distinct !{!117, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi"} +!118 = !{!116, !113, !110} +!119 = !{!120} +!120 = distinct !{!120, !121, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEENS0_17basic_string_viewIcEEEEDTcldtfp_3argfp0_EERT_T0_: argument 0"} +!121 = distinct !{!121, !"_ZN3fmt3v106detail7get_argINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEENS0_17basic_string_viewIcEEEEDTcldtfp_3argfp0_EERT_T0_"} +!122 = distinct !{!122, !6} +!123 = !{!124} +!124 = distinct !{!124, !125, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi: argument 0"} +!125 = distinct !{!125, !"_ZNK3fmt3v1017basic_format_argsINS0_20basic_format_contextISt20back_insert_iteratorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcEEE3getEi"} !126 = distinct !{!126, !6} !127 = distinct !{!127, !6} !128 = distinct !{!128, !6} diff --git a/bench/velox/optimized/CastExpr.cpp.ll b/bench/velox/optimized/CastExpr.cpp.ll index e674d0add88..176f44c59f3 100644 --- a/bench/velox/optimized/CastExpr.cpp.ll +++ b/bench/velox/optimized/CastExpr.cpp.ll @@ -38368,7 +38368,7 @@ while.end.i.i.i: ; preds = %while.body.i.i.i, % br i1 %cmp10.i7.i.i, label %if.then.i.i.i, label %if.else.i.i.i if.then.i.i.i: ; preds = %while.end.i.i.i - %__val.addr.0.tr.i.i.i = trunc nuw i128 %__val.addr.0.lcssa.i.i.i to i64 + %__val.addr.0.tr.i.i.i = trunc nuw nsw i128 %__val.addr.0.lcssa.i.i.i to i64 %7 = shl nuw nsw i64 %__val.addr.0.tr.i.i.i, 1 %idxprom14.i.i.i = or disjoint i64 %7, 1 %arrayidx15.i.i.i = getelementptr inbounds [201 x i8], ptr @_ZZNSt8__detail18__to_chars_10_implIoEEvPcjT_E8__digits, i64 0, i64 %idxprom14.i.i.i @@ -680640,7 +680640,7 @@ nrvo.skipdtor: ; preds = %_ZN5folly8toAppendI define linkonce_odr noundef i64 @_ZN5folly6detail18unsafeTelescope128EPcS1_o(ptr noundef %outb, ptr noundef %oute, i64 noundef %x.coerce0, i64 noundef %x.coerce1) local_unnamed_addr #0 comdat { entry: %cmp.not = icmp eq i64 %x.coerce1, 0 - br i1 %cmp.not, label %for.body.i.i.i94, label %if.then + br i1 %cmp.not, label %for.body.i.i.i93, label %if.then if.then: ; preds = %entry %x.sroa.0.0.insert.ext = zext i64 %x.coerce0 to i128 @@ -680736,224 +680736,224 @@ _ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit: ; preds = %_ZN5fo br label %while.body.i.i.i10 while.body.i.i.i10: ; preds = %while.body.i.i.i10, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit - %v.addr.i.i.09.i = phi i64 [ %conv8, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit ], [ %div.i.i.i12, %while.body.i.i.i10 ] + %v.addr.i.i.09.i = phi i64 [ %conv8, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit ], [ %div.i.i.i, %while.body.i.i.i10 ] %pos.i.i.08.i = phi i64 [ 19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit ], [ %sub.i.i.i11, %while.body.i.i.i10 ] %sub.i.i.i11 = add nsw i64 %pos.i.i.08.i, -2 - %div.i.i.i12 = udiv i64 %v.addr.i.i.09.i, 100 - %rem.i.i.i13 = urem i64 %v.addr.i.i.09.i, 100 - %arrayidx.i.i.i14 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i.i13 - %5 = load i16, ptr %arrayidx.i.i.i14, align 2 - %add.ptr.i.i.i15 = getelementptr inbounds i8, ptr %add.ptr.i, i64 %sub.i.i.i11 - store i16 %5, ptr %add.ptr.i.i.i15, align 1 + %div.i.i.i = udiv i64 %v.addr.i.i.09.i, 100 + %rem.i.i.i12 = urem i64 %v.addr.i.i.09.i, 100 + %arrayidx.i.i.i13 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i.i12 + %5 = load i16, ptr %arrayidx.i.i.i13, align 2 + %add.ptr.i.i.i14 = getelementptr inbounds i8, ptr %add.ptr.i, i64 %sub.i.i.i11 + store i16 %5, ptr %add.ptr.i.i.i14, align 1 %cmp.i.i.i = icmp ugt i64 %sub.i.i.i11, 2 br i1 %cmp.i.i.i, label %while.body.i.i.i10, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit, !llvm.loop !730 _ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit: ; preds = %while.body.i.i.i10 - %arrayidx2.i.i.i16 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i.i12 - %6 = load i16, ptr %arrayidx2.i.i.i16, align 2 + %arrayidx2.i.i.i15 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i.i + %6 = load i16, ptr %arrayidx2.i.i.i15, align 2 %7 = lshr i16 %6, 8 - %conv4.i.i.i17 = trunc nuw i16 %7 to i8 - store i8 %conv4.i.i.i17, ptr %add.ptr.i, align 1 - %add.ptr.i18 = getelementptr i8, ptr %add.ptr.i, i64 19 - br label %while.body.i.i.i19 - -while.body.i.i.i19: ; preds = %while.body.i.i.i19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit - %v.addr.i.i.09.i20 = phi i64 [ %conv, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit ], [ %div.i.i.i23, %while.body.i.i.i19 ] - %pos.i.i.08.i21 = phi i64 [ 19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit ], [ %sub.i.i.i22, %while.body.i.i.i19 ] - %sub.i.i.i22 = add nsw i64 %pos.i.i.08.i21, -2 - %div.i.i.i23 = udiv i64 %v.addr.i.i.09.i20, 100 - %rem.i.i.i24 = urem i64 %v.addr.i.i.09.i20, 100 - %arrayidx.i.i.i25 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i.i24 - %8 = load i16, ptr %arrayidx.i.i.i25, align 2 - %add.ptr.i.i.i26 = getelementptr inbounds i8, ptr %add.ptr.i18, i64 %sub.i.i.i22 - store i16 %8, ptr %add.ptr.i.i.i26, align 1 - %cmp.i.i.i27 = icmp ugt i64 %sub.i.i.i22, 2 - br i1 %cmp.i.i.i27, label %while.body.i.i.i19, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit32, !llvm.loop !730 - -_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit32: ; preds = %while.body.i.i.i19 - %arrayidx2.i.i.i28 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i.i23 - %9 = load i16, ptr %arrayidx2.i.i.i28, align 2 + %conv4.i.i.i16 = trunc nuw i16 %7 to i8 + store i8 %conv4.i.i.i16, ptr %add.ptr.i, align 1 + %add.ptr.i17 = getelementptr i8, ptr %add.ptr.i, i64 19 + br label %while.body.i.i.i18 + +while.body.i.i.i18: ; preds = %while.body.i.i.i18, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit + %v.addr.i.i.09.i19 = phi i64 [ %conv, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit ], [ %div.i.i.i22, %while.body.i.i.i18 ] + %pos.i.i.08.i20 = phi i64 [ 19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit ], [ %sub.i.i.i21, %while.body.i.i.i18 ] + %sub.i.i.i21 = add nsw i64 %pos.i.i.08.i20, -2 + %div.i.i.i22 = udiv i64 %v.addr.i.i.09.i19, 100 + %rem.i.i.i23 = urem i64 %v.addr.i.i.09.i19, 100 + %arrayidx.i.i.i24 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i.i23 + %8 = load i16, ptr %arrayidx.i.i.i24, align 2 + %add.ptr.i.i.i25 = getelementptr inbounds i8, ptr %add.ptr.i17, i64 %sub.i.i.i21 + store i16 %8, ptr %add.ptr.i.i.i25, align 1 + %cmp.i.i.i26 = icmp ugt i64 %sub.i.i.i21, 2 + br i1 %cmp.i.i.i26, label %while.body.i.i.i18, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit31, !llvm.loop !730 + +_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit31: ; preds = %while.body.i.i.i18 + %arrayidx2.i.i.i27 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i.i22 + %9 = load i16, ptr %arrayidx2.i.i.i27, align 2 %10 = lshr i16 %9, 8 - %conv4.i.i.i29 = trunc nuw i16 %10 to i8 - store i8 %conv4.i.i.i29, ptr %add.ptr.i18, align 1 - %add.i31 = add i64 %retval.i.0.i, 38 + %conv4.i.i.i28 = trunc nuw i16 %10 to i8 + store i8 %conv4.i.i.i28, ptr %add.ptr.i17, align 1 + %add.i30 = add i64 %retval.i.0.i, 38 br label %return if.end: ; preds = %if.then %coerce10.sroa.0.0.extract.trunc = trunc i128 %div to i64 - br label %for.body.i.i.i33 - -for.body.i.i.i33: ; preds = %if.end.i.i.i37, %if.end - %i.i.i.020.i34 = phi i64 [ 0, %if.end ], [ %inc.i.i.i38, %if.end.i.i.i37 ] - %arrayidx.i.i.i35 = getelementptr inbounds [20 x i64], ptr @_ZN5folly6detail15to_ascii_powersILm10EmE4dataE, i64 0, i64 %i.i.i.020.i34 - %11 = load i64, ptr %arrayidx.i.i.i35, align 8 - %cmp1.i.i.i36 = icmp ugt i64 %11, %coerce10.sroa.0.0.extract.trunc - br i1 %cmp1.i.i.i36, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i68, label %if.end.i.i.i37 - -if.end.i.i.i37: ; preds = %for.body.i.i.i33 - %inc.i.i.i38 = add nuw nsw i64 %i.i.i.020.i34, 1 - %exitcond.not.i39 = icmp eq i64 %inc.i.i.i38, 20 - br i1 %exitcond.not.i39, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i40, label %for.body.i.i.i33, !llvm.loop !729 - -_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i68: ; preds = %for.body.i.i.i33 - %add.i.i.i69 = tail call i64 @llvm.umax.i64(i64 %i.i.i.020.i34, i64 1) - %cmp.i.i70 = icmp ult ptr %oute, %outb - %sub.ptr.lhs.cast.i.i71 = ptrtoint ptr %oute to i64 - %sub.ptr.rhs.cast.i.i72 = ptrtoint ptr %outb to i64 - %sub.ptr.sub.i.i73 = sub i64 %sub.ptr.lhs.cast.i.i71, %sub.ptr.rhs.cast.i.i72 - %cmp1.i.i74 = icmp ult i64 %sub.ptr.sub.i.i73, %add.i.i.i69 - %or.cond.i75 = or i1 %cmp.i.i70, %cmp1.i.i74 - br i1 %or.cond.i75, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78, label %while.cond.i.i.preheader.i76 - -_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i40: ; preds = %if.end.i.i.i37 - %cmp.i27.i41 = icmp ult ptr %oute, %outb - %sub.ptr.lhs.cast.i28.i42 = ptrtoint ptr %oute to i64 - %sub.ptr.rhs.cast.i29.i43 = ptrtoint ptr %outb to i64 - %sub.ptr.sub.i30.i44 = sub i64 %sub.ptr.lhs.cast.i28.i42, %sub.ptr.rhs.cast.i29.i43 - %cmp1.i31.i45 = icmp ult i64 %sub.ptr.sub.i30.i44, 20 - %or.cond32.i46 = or i1 %cmp.i27.i41, %cmp1.i31.i45 - br i1 %or.cond32.i46, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78, label %while.body.i.i.preheader.i47 - -while.cond.i.i.preheader.i76: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i68 - %cmp.i.i621.i77 = icmp ugt i64 %i.i.i.020.i34, 2 - br i1 %cmp.i.i621.i77, label %while.body.i.i.preheader.i47, label %while.end.i.i.i58 - -while.body.i.i.preheader.i47: ; preds = %while.cond.i.i.preheader.i76, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i40 - %retval.i.i.03336.i48 = phi i64 [ %add.i.i.i69, %while.cond.i.i.preheader.i76 ], [ 20, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i40 ] - br label %while.body.i.i.i49 - -while.body.i.i.i49: ; preds = %while.body.i.i.i49, %while.body.i.i.preheader.i47 - %v.addr.i.i3.023.i50 = phi i64 [ %div.i.i.i53, %while.body.i.i.i49 ], [ %coerce10.sroa.0.0.extract.trunc, %while.body.i.i.preheader.i47 ] - %pos.i.i.022.i51 = phi i64 [ %sub.i.i.i52, %while.body.i.i.i49 ], [ %retval.i.i.03336.i48, %while.body.i.i.preheader.i47 ] - %sub.i.i.i52 = add i64 %pos.i.i.022.i51, -2 - %div.i.i.i53 = udiv i64 %v.addr.i.i3.023.i50, 100 - %rem.i.i.i54 = urem i64 %v.addr.i.i3.023.i50, 100 - %arrayidx.i.i9.i55 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i.i54 - %12 = load i16, ptr %arrayidx.i.i9.i55, align 2 - %add.ptr.i.i.i56 = getelementptr inbounds i8, ptr %outb, i64 %sub.i.i.i52 - store i16 %12, ptr %add.ptr.i.i.i56, align 1 - %cmp.i.i6.i57 = icmp ugt i64 %sub.i.i.i52, 2 - br i1 %cmp.i.i6.i57, label %while.body.i.i.i49, label %while.end.i.i.i58, !llvm.loop !730 - -while.end.i.i.i58: ; preds = %while.body.i.i.i49, %while.cond.i.i.preheader.i76 - %retval.i.i.03337.i59 = phi i64 [ %add.i.i.i69, %while.cond.i.i.preheader.i76 ], [ %retval.i.i.03336.i48, %while.body.i.i.i49 ] - %pos.i.i.0.lcssa.i60 = phi i64 [ %add.i.i.i69, %while.cond.i.i.preheader.i76 ], [ %sub.i.i.i52, %while.body.i.i.i49 ] - %v.addr.i.i3.0.lcssa.i61 = phi i64 [ %coerce10.sroa.0.0.extract.trunc, %while.cond.i.i.preheader.i76 ], [ %div.i.i.i53, %while.body.i.i.i49 ] - %arrayidx2.i.i.i62 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %v.addr.i.i3.0.lcssa.i61 - %13 = load i16, ptr %arrayidx2.i.i.i62, align 2 - %cmp3.i.i.i63 = icmp eq i64 %pos.i.i.0.lcssa.i60, 2 - br i1 %cmp3.i.i.i63, label %if.then.i.i8.i67, label %if.else.i.i.i64 - -if.then.i.i8.i67: ; preds = %while.end.i.i.i58 + br label %for.body.i.i.i32 + +for.body.i.i.i32: ; preds = %if.end.i.i.i36, %if.end + %i.i.i.020.i33 = phi i64 [ 0, %if.end ], [ %inc.i.i.i37, %if.end.i.i.i36 ] + %arrayidx.i.i.i34 = getelementptr inbounds [20 x i64], ptr @_ZN5folly6detail15to_ascii_powersILm10EmE4dataE, i64 0, i64 %i.i.i.020.i33 + %11 = load i64, ptr %arrayidx.i.i.i34, align 8 + %cmp1.i.i.i35 = icmp ugt i64 %11, %coerce10.sroa.0.0.extract.trunc + br i1 %cmp1.i.i.i35, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i67, label %if.end.i.i.i36 + +if.end.i.i.i36: ; preds = %for.body.i.i.i32 + %inc.i.i.i37 = add nuw nsw i64 %i.i.i.020.i33, 1 + %exitcond.not.i38 = icmp eq i64 %inc.i.i.i37, 20 + br i1 %exitcond.not.i38, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i39, label %for.body.i.i.i32, !llvm.loop !729 + +_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i67: ; preds = %for.body.i.i.i32 + %add.i.i.i68 = tail call i64 @llvm.umax.i64(i64 %i.i.i.020.i33, i64 1) + %cmp.i.i69 = icmp ult ptr %oute, %outb + %sub.ptr.lhs.cast.i.i70 = ptrtoint ptr %oute to i64 + %sub.ptr.rhs.cast.i.i71 = ptrtoint ptr %outb to i64 + %sub.ptr.sub.i.i72 = sub i64 %sub.ptr.lhs.cast.i.i70, %sub.ptr.rhs.cast.i.i71 + %cmp1.i.i73 = icmp ult i64 %sub.ptr.sub.i.i72, %add.i.i.i68 + %or.cond.i74 = or i1 %cmp.i.i69, %cmp1.i.i73 + br i1 %or.cond.i74, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit77, label %while.cond.i.i.preheader.i75 + +_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i39: ; preds = %if.end.i.i.i36 + %cmp.i27.i40 = icmp ult ptr %oute, %outb + %sub.ptr.lhs.cast.i28.i41 = ptrtoint ptr %oute to i64 + %sub.ptr.rhs.cast.i29.i42 = ptrtoint ptr %outb to i64 + %sub.ptr.sub.i30.i43 = sub i64 %sub.ptr.lhs.cast.i28.i41, %sub.ptr.rhs.cast.i29.i42 + %cmp1.i31.i44 = icmp ult i64 %sub.ptr.sub.i30.i43, 20 + %or.cond32.i45 = or i1 %cmp.i27.i40, %cmp1.i31.i44 + br i1 %or.cond32.i45, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit77, label %while.body.i.i.preheader.i46 + +while.cond.i.i.preheader.i75: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i67 + %cmp.i.i621.i76 = icmp ugt i64 %i.i.i.020.i33, 2 + br i1 %cmp.i.i621.i76, label %while.body.i.i.preheader.i46, label %while.end.i.i.i57 + +while.body.i.i.preheader.i46: ; preds = %while.cond.i.i.preheader.i75, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i39 + %retval.i.i.03336.i47 = phi i64 [ %add.i.i.i68, %while.cond.i.i.preheader.i75 ], [ 20, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i39 ] + br label %while.body.i.i.i48 + +while.body.i.i.i48: ; preds = %while.body.i.i.i48, %while.body.i.i.preheader.i46 + %v.addr.i.i3.023.i49 = phi i64 [ %div.i.i.i52, %while.body.i.i.i48 ], [ %coerce10.sroa.0.0.extract.trunc, %while.body.i.i.preheader.i46 ] + %pos.i.i.022.i50 = phi i64 [ %sub.i.i.i51, %while.body.i.i.i48 ], [ %retval.i.i.03336.i47, %while.body.i.i.preheader.i46 ] + %sub.i.i.i51 = add i64 %pos.i.i.022.i50, -2 + %div.i.i.i52 = udiv i64 %v.addr.i.i3.023.i49, 100 + %rem.i.i.i53 = urem i64 %v.addr.i.i3.023.i49, 100 + %arrayidx.i.i9.i54 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i.i53 + %12 = load i16, ptr %arrayidx.i.i9.i54, align 2 + %add.ptr.i.i.i55 = getelementptr inbounds i8, ptr %outb, i64 %sub.i.i.i51 + store i16 %12, ptr %add.ptr.i.i.i55, align 1 + %cmp.i.i6.i56 = icmp ugt i64 %sub.i.i.i51, 2 + br i1 %cmp.i.i6.i56, label %while.body.i.i.i48, label %while.end.i.i.i57, !llvm.loop !730 + +while.end.i.i.i57: ; preds = %while.body.i.i.i48, %while.cond.i.i.preheader.i75 + %retval.i.i.03337.i58 = phi i64 [ %add.i.i.i68, %while.cond.i.i.preheader.i75 ], [ %retval.i.i.03336.i47, %while.body.i.i.i48 ] + %pos.i.i.0.lcssa.i59 = phi i64 [ %add.i.i.i68, %while.cond.i.i.preheader.i75 ], [ %sub.i.i.i51, %while.body.i.i.i48 ] + %v.addr.i.i3.0.lcssa.i60 = phi i64 [ %coerce10.sroa.0.0.extract.trunc, %while.cond.i.i.preheader.i75 ], [ %div.i.i.i52, %while.body.i.i.i48 ] + %arrayidx2.i.i.i61 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %v.addr.i.i3.0.lcssa.i60 + %13 = load i16, ptr %arrayidx2.i.i.i61, align 2 + %cmp3.i.i.i62 = icmp eq i64 %pos.i.i.0.lcssa.i59, 2 + br i1 %cmp3.i.i.i62, label %if.then.i.i8.i66, label %if.else.i.i.i63 + +if.then.i.i8.i66: ; preds = %while.end.i.i.i57 store i16 %13, ptr %outb, align 1 - br label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78 + br label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit77 -if.else.i.i.i64: ; preds = %while.end.i.i.i58 +if.else.i.i.i63: ; preds = %while.end.i.i.i57 %14 = lshr i16 %13, 8 - %conv4.i.i.i65 = trunc nuw i16 %14 to i8 - store i8 %conv4.i.i.i65, ptr %outb, align 1 - br label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78 - -_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i68, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i40, %if.then.i.i8.i67, %if.else.i.i.i64 - %retval.i.0.i66 = phi i64 [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i68 ], [ %retval.i.i.03337.i59, %if.else.i.i.i64 ], [ %retval.i.i.03337.i59, %if.then.i.i8.i67 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i40 ] - %add.ptr.i79 = getelementptr inbounds i8, ptr %outb, i64 %retval.i.0.i66 - br label %while.body.i.i.i80 - -while.body.i.i.i80: ; preds = %while.body.i.i.i80, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78 - %v.addr.i.i.09.i81 = phi i64 [ %conv, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78 ], [ %div.i.i.i84, %while.body.i.i.i80 ] - %pos.i.i.08.i82 = phi i64 [ 19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78 ], [ %sub.i.i.i83, %while.body.i.i.i80 ] - %sub.i.i.i83 = add nsw i64 %pos.i.i.08.i82, -2 - %div.i.i.i84 = udiv i64 %v.addr.i.i.09.i81, 100 - %rem.i.i.i85 = urem i64 %v.addr.i.i.09.i81, 100 - %arrayidx.i.i.i86 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i.i85 - %15 = load i16, ptr %arrayidx.i.i.i86, align 2 - %add.ptr.i.i.i87 = getelementptr inbounds i8, ptr %add.ptr.i79, i64 %sub.i.i.i83 - store i16 %15, ptr %add.ptr.i.i.i87, align 1 - %cmp.i.i.i88 = icmp ugt i64 %sub.i.i.i83, 2 - br i1 %cmp.i.i.i88, label %while.body.i.i.i80, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit93, !llvm.loop !730 - -_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit93: ; preds = %while.body.i.i.i80 - %arrayidx2.i.i.i89 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i.i84 - %16 = load i16, ptr %arrayidx2.i.i.i89, align 2 + %conv4.i.i.i64 = trunc nuw i16 %14 to i8 + store i8 %conv4.i.i.i64, ptr %outb, align 1 + br label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit77 + +_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit77: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i67, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i39, %if.then.i.i8.i66, %if.else.i.i.i63 + %retval.i.0.i65 = phi i64 [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i67 ], [ %retval.i.i.03337.i58, %if.else.i.i.i63 ], [ %retval.i.i.03337.i58, %if.then.i.i8.i66 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i39 ] + %add.ptr.i78 = getelementptr inbounds i8, ptr %outb, i64 %retval.i.0.i65 + br label %while.body.i.i.i79 + +while.body.i.i.i79: ; preds = %while.body.i.i.i79, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit77 + %v.addr.i.i.09.i80 = phi i64 [ %conv, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit77 ], [ %div.i.i.i83, %while.body.i.i.i79 ] + %pos.i.i.08.i81 = phi i64 [ 19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit77 ], [ %sub.i.i.i82, %while.body.i.i.i79 ] + %sub.i.i.i82 = add nsw i64 %pos.i.i.08.i81, -2 + %div.i.i.i83 = udiv i64 %v.addr.i.i.09.i80, 100 + %rem.i.i.i84 = urem i64 %v.addr.i.i.09.i80, 100 + %arrayidx.i.i.i85 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i.i84 + %15 = load i16, ptr %arrayidx.i.i.i85, align 2 + %add.ptr.i.i.i86 = getelementptr inbounds i8, ptr %add.ptr.i78, i64 %sub.i.i.i82 + store i16 %15, ptr %add.ptr.i.i.i86, align 1 + %cmp.i.i.i87 = icmp ugt i64 %sub.i.i.i82, 2 + br i1 %cmp.i.i.i87, label %while.body.i.i.i79, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit92, !llvm.loop !730 + +_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit92: ; preds = %while.body.i.i.i79 + %arrayidx2.i.i.i88 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i.i83 + %16 = load i16, ptr %arrayidx2.i.i.i88, align 2 %17 = lshr i16 %16, 8 - %conv4.i.i.i90 = trunc nuw i16 %17 to i8 - store i8 %conv4.i.i.i90, ptr %add.ptr.i79, align 1 - %add.i92 = add i64 %retval.i.0.i66, 19 + %conv4.i.i.i89 = trunc nuw i16 %17 to i8 + store i8 %conv4.i.i.i89, ptr %add.ptr.i78, align 1 + %add.i91 = add i64 %retval.i.0.i65, 19 br label %return -for.body.i.i.i94: ; preds = %entry, %if.end.i.i.i98 - %i.i.i.020.i95 = phi i64 [ %inc.i.i.i99, %if.end.i.i.i98 ], [ 0, %entry ] - %arrayidx.i.i.i96 = getelementptr inbounds [20 x i64], ptr @_ZN5folly6detail15to_ascii_powersILm10EmE4dataE, i64 0, i64 %i.i.i.020.i95 - %18 = load i64, ptr %arrayidx.i.i.i96, align 8 - %cmp1.i.i.i97 = icmp ult i64 %x.coerce0, %18 - br i1 %cmp1.i.i.i97, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i129, label %if.end.i.i.i98 - -if.end.i.i.i98: ; preds = %for.body.i.i.i94 - %inc.i.i.i99 = add nuw nsw i64 %i.i.i.020.i95, 1 - %exitcond.not.i100 = icmp eq i64 %inc.i.i.i99, 20 - br i1 %exitcond.not.i100, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i101, label %for.body.i.i.i94, !llvm.loop !729 - -_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i129: ; preds = %for.body.i.i.i94 - %add.i.i.i130 = tail call i64 @llvm.umax.i64(i64 %i.i.i.020.i95, i64 1) - %cmp.i.i131 = icmp ult ptr %oute, %outb - %sub.ptr.lhs.cast.i.i132 = ptrtoint ptr %oute to i64 - %sub.ptr.rhs.cast.i.i133 = ptrtoint ptr %outb to i64 - %sub.ptr.sub.i.i134 = sub i64 %sub.ptr.lhs.cast.i.i132, %sub.ptr.rhs.cast.i.i133 - %cmp1.i.i135 = icmp ult i64 %sub.ptr.sub.i.i134, %add.i.i.i130 - %or.cond.i136 = or i1 %cmp.i.i131, %cmp1.i.i135 - br i1 %or.cond.i136, label %return, label %while.cond.i.i.preheader.i137 - -_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i101: ; preds = %if.end.i.i.i98 - %cmp.i27.i102 = icmp ult ptr %oute, %outb - %sub.ptr.lhs.cast.i28.i103 = ptrtoint ptr %oute to i64 - %sub.ptr.rhs.cast.i29.i104 = ptrtoint ptr %outb to i64 - %sub.ptr.sub.i30.i105 = sub i64 %sub.ptr.lhs.cast.i28.i103, %sub.ptr.rhs.cast.i29.i104 - %cmp1.i31.i106 = icmp ult i64 %sub.ptr.sub.i30.i105, 20 - %or.cond32.i107 = or i1 %cmp.i27.i102, %cmp1.i31.i106 - br i1 %or.cond32.i107, label %return, label %while.body.i.i.preheader.i108 - -while.cond.i.i.preheader.i137: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i129 - %cmp.i.i621.i138 = icmp ugt i64 %i.i.i.020.i95, 2 - br i1 %cmp.i.i621.i138, label %while.body.i.i.preheader.i108, label %while.end.i.i.i119 - -while.body.i.i.preheader.i108: ; preds = %while.cond.i.i.preheader.i137, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i101 - %retval.i.i.03336.i109 = phi i64 [ %add.i.i.i130, %while.cond.i.i.preheader.i137 ], [ 20, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i101 ] - br label %while.body.i.i.i110 - -while.body.i.i.i110: ; preds = %while.body.i.i.i110, %while.body.i.i.preheader.i108 - %v.addr.i.i3.023.i111 = phi i64 [ %div.i.i.i114, %while.body.i.i.i110 ], [ %x.coerce0, %while.body.i.i.preheader.i108 ] - %pos.i.i.022.i112 = phi i64 [ %sub.i.i.i113, %while.body.i.i.i110 ], [ %retval.i.i.03336.i109, %while.body.i.i.preheader.i108 ] - %sub.i.i.i113 = add i64 %pos.i.i.022.i112, -2 - %div.i.i.i114 = udiv i64 %v.addr.i.i3.023.i111, 100 - %rem.i.i.i115 = urem i64 %v.addr.i.i3.023.i111, 100 - %arrayidx.i.i9.i116 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i.i115 - %19 = load i16, ptr %arrayidx.i.i9.i116, align 2 - %add.ptr.i.i.i117 = getelementptr inbounds i8, ptr %outb, i64 %sub.i.i.i113 - store i16 %19, ptr %add.ptr.i.i.i117, align 1 - %cmp.i.i6.i118 = icmp ugt i64 %sub.i.i.i113, 2 - br i1 %cmp.i.i6.i118, label %while.body.i.i.i110, label %while.end.i.i.i119, !llvm.loop !730 - -while.end.i.i.i119: ; preds = %while.body.i.i.i110, %while.cond.i.i.preheader.i137 - %retval.i.i.03337.i120 = phi i64 [ %add.i.i.i130, %while.cond.i.i.preheader.i137 ], [ %retval.i.i.03336.i109, %while.body.i.i.i110 ] - %pos.i.i.0.lcssa.i121 = phi i64 [ %add.i.i.i130, %while.cond.i.i.preheader.i137 ], [ %sub.i.i.i113, %while.body.i.i.i110 ] - %v.addr.i.i3.0.lcssa.i122 = phi i64 [ %x.coerce0, %while.cond.i.i.preheader.i137 ], [ %div.i.i.i114, %while.body.i.i.i110 ] - %arrayidx2.i.i.i123 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %v.addr.i.i3.0.lcssa.i122 - %20 = load i16, ptr %arrayidx2.i.i.i123, align 2 - %cmp3.i.i.i124 = icmp eq i64 %pos.i.i.0.lcssa.i121, 2 - br i1 %cmp3.i.i.i124, label %if.then.i.i8.i128, label %if.else.i.i.i125 - -if.then.i.i8.i128: ; preds = %while.end.i.i.i119 +for.body.i.i.i93: ; preds = %entry, %if.end.i.i.i97 + %i.i.i.020.i94 = phi i64 [ %inc.i.i.i98, %if.end.i.i.i97 ], [ 0, %entry ] + %arrayidx.i.i.i95 = getelementptr inbounds [20 x i64], ptr @_ZN5folly6detail15to_ascii_powersILm10EmE4dataE, i64 0, i64 %i.i.i.020.i94 + %18 = load i64, ptr %arrayidx.i.i.i95, align 8 + %cmp1.i.i.i96 = icmp ult i64 %x.coerce0, %18 + br i1 %cmp1.i.i.i96, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i128, label %if.end.i.i.i97 + +if.end.i.i.i97: ; preds = %for.body.i.i.i93 + %inc.i.i.i98 = add nuw nsw i64 %i.i.i.020.i94, 1 + %exitcond.not.i99 = icmp eq i64 %inc.i.i.i98, 20 + br i1 %exitcond.not.i99, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i100, label %for.body.i.i.i93, !llvm.loop !729 + +_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i128: ; preds = %for.body.i.i.i93 + %add.i.i.i129 = tail call i64 @llvm.umax.i64(i64 %i.i.i.020.i94, i64 1) + %cmp.i.i130 = icmp ult ptr %oute, %outb + %sub.ptr.lhs.cast.i.i131 = ptrtoint ptr %oute to i64 + %sub.ptr.rhs.cast.i.i132 = ptrtoint ptr %outb to i64 + %sub.ptr.sub.i.i133 = sub i64 %sub.ptr.lhs.cast.i.i131, %sub.ptr.rhs.cast.i.i132 + %cmp1.i.i134 = icmp ult i64 %sub.ptr.sub.i.i133, %add.i.i.i129 + %or.cond.i135 = or i1 %cmp.i.i130, %cmp1.i.i134 + br i1 %or.cond.i135, label %return, label %while.cond.i.i.preheader.i136 + +_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i100: ; preds = %if.end.i.i.i97 + %cmp.i27.i101 = icmp ult ptr %oute, %outb + %sub.ptr.lhs.cast.i28.i102 = ptrtoint ptr %oute to i64 + %sub.ptr.rhs.cast.i29.i103 = ptrtoint ptr %outb to i64 + %sub.ptr.sub.i30.i104 = sub i64 %sub.ptr.lhs.cast.i28.i102, %sub.ptr.rhs.cast.i29.i103 + %cmp1.i31.i105 = icmp ult i64 %sub.ptr.sub.i30.i104, 20 + %or.cond32.i106 = or i1 %cmp.i27.i101, %cmp1.i31.i105 + br i1 %or.cond32.i106, label %return, label %while.body.i.i.preheader.i107 + +while.cond.i.i.preheader.i136: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i128 + %cmp.i.i621.i137 = icmp ugt i64 %i.i.i.020.i94, 2 + br i1 %cmp.i.i621.i137, label %while.body.i.i.preheader.i107, label %while.end.i.i.i118 + +while.body.i.i.preheader.i107: ; preds = %while.cond.i.i.preheader.i136, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i100 + %retval.i.i.03336.i108 = phi i64 [ %add.i.i.i129, %while.cond.i.i.preheader.i136 ], [ 20, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i100 ] + br label %while.body.i.i.i109 + +while.body.i.i.i109: ; preds = %while.body.i.i.i109, %while.body.i.i.preheader.i107 + %v.addr.i.i3.023.i110 = phi i64 [ %div.i.i.i113, %while.body.i.i.i109 ], [ %x.coerce0, %while.body.i.i.preheader.i107 ] + %pos.i.i.022.i111 = phi i64 [ %sub.i.i.i112, %while.body.i.i.i109 ], [ %retval.i.i.03336.i108, %while.body.i.i.preheader.i107 ] + %sub.i.i.i112 = add i64 %pos.i.i.022.i111, -2 + %div.i.i.i113 = udiv i64 %v.addr.i.i3.023.i110, 100 + %rem.i.i.i114 = urem i64 %v.addr.i.i3.023.i110, 100 + %arrayidx.i.i9.i115 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i.i114 + %19 = load i16, ptr %arrayidx.i.i9.i115, align 2 + %add.ptr.i.i.i116 = getelementptr inbounds i8, ptr %outb, i64 %sub.i.i.i112 + store i16 %19, ptr %add.ptr.i.i.i116, align 1 + %cmp.i.i6.i117 = icmp ugt i64 %sub.i.i.i112, 2 + br i1 %cmp.i.i6.i117, label %while.body.i.i.i109, label %while.end.i.i.i118, !llvm.loop !730 + +while.end.i.i.i118: ; preds = %while.body.i.i.i109, %while.cond.i.i.preheader.i136 + %retval.i.i.03337.i119 = phi i64 [ %add.i.i.i129, %while.cond.i.i.preheader.i136 ], [ %retval.i.i.03336.i108, %while.body.i.i.i109 ] + %pos.i.i.0.lcssa.i120 = phi i64 [ %add.i.i.i129, %while.cond.i.i.preheader.i136 ], [ %sub.i.i.i112, %while.body.i.i.i109 ] + %v.addr.i.i3.0.lcssa.i121 = phi i64 [ %x.coerce0, %while.cond.i.i.preheader.i136 ], [ %div.i.i.i113, %while.body.i.i.i109 ] + %arrayidx2.i.i.i122 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %v.addr.i.i3.0.lcssa.i121 + %20 = load i16, ptr %arrayidx2.i.i.i122, align 2 + %cmp3.i.i.i123 = icmp eq i64 %pos.i.i.0.lcssa.i120, 2 + br i1 %cmp3.i.i.i123, label %if.then.i.i8.i127, label %if.else.i.i.i124 + +if.then.i.i8.i127: ; preds = %while.end.i.i.i118 store i16 %20, ptr %outb, align 1 br label %return -if.else.i.i.i125: ; preds = %while.end.i.i.i119 +if.else.i.i.i124: ; preds = %while.end.i.i.i118 %21 = lshr i16 %20, 8 - %conv4.i.i.i126 = trunc nuw i16 %21 to i8 - store i8 %conv4.i.i.i126, ptr %outb, align 1 + %conv4.i.i.i125 = trunc nuw i16 %21 to i8 + store i8 %conv4.i.i.i125, ptr %outb, align 1 br label %return -return: ; preds = %if.else.i.i.i125, %if.then.i.i8.i128, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i101, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i129, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit93, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit32 - %p.0 = phi i64 [ %add.i92, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit93 ], [ %add.i31, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit32 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i129 ], [ %retval.i.i.03337.i120, %if.else.i.i.i125 ], [ %retval.i.i.03337.i120, %if.then.i.i8.i128 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i101 ] +return: ; preds = %if.else.i.i.i124, %if.then.i.i8.i127, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i100, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i128, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit92, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit31 + %p.0 = phi i64 [ %add.i91, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit92 ], [ %add.i30, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit31 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.i128 ], [ %retval.i.i.03337.i119, %if.else.i.i.i124 ], [ %retval.i.i.03337.i119, %if.then.i.i8.i127 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i.thread.i100 ] ret i64 %p.0 } diff --git a/bench/velox/optimized/TimestampConversion.cpp.ll b/bench/velox/optimized/TimestampConversion.cpp.ll index a25e6bc3d50..e816db7fe4b 100644 --- a/bench/velox/optimized/TimestampConversion.cpp.ll +++ b/bench/velox/optimized/TimestampConversion.cpp.ll @@ -1277,20 +1277,19 @@ land.rhs56: ; preds = %if.then53, %for.bod %17 = phi i64 [ %inc65, %for.body ], [ %inc54, %if.then53 ] %arrayidx57 = getelementptr inbounds i8, ptr %buf, i64 %17 %18 = load i8, ptr %arrayidx57, align 1 - %19 = add i8 %18, -48 + %.fr = freeze i8 %18 + %19 = add i8 %.fr, -48 %20 = icmp ult i8 %19, 10 br i1 %20, label %for.body, label %if.end66.loopexit for.body: ; preds = %land.rhs56 - %cmp60 = icmp sgt i32 %mult.076, 0 - %conv63 = zext nneg i8 %18 to i32 + %conv63 = zext nneg i8 %.fr to i32 %sub = add nsw i32 %conv63, -48 - %mul = mul nsw i32 %sub, %mult.076 - %add = select i1 %cmp60, i32 %mul, i32 0 - %micros.2 = add nsw i32 %add, %micros.175 + %mul = mul nuw nsw i32 %sub, %mult.076 + %micros.2 = add nuw nsw i32 %mul, %micros.175 %inc65 = add i64 %17, 1 store i64 %inc65, ptr %pos, align 8 - %div = sdiv i32 %mult.076, 10 + %div = udiv i32 %mult.076, 10 %exitcond84.not = icmp eq i64 %inc65, %len br i1 %exitcond84.not, label %if.end66.loopexit, label %land.rhs56, !llvm.loop !9 diff --git a/bench/velox/optimized/md5.cpp.ll b/bench/velox/optimized/md5.cpp.ll index 0a4fdcee8a3..e17199e7544 100644 --- a/bench/velox/optimized/md5.cpp.ll +++ b/bench/velox/optimized/md5.cpp.ll @@ -1299,7 +1299,7 @@ declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm(pt define linkonce_odr noundef i64 @_ZN5folly6detail18unsafeTelescope128EPcS1_o(ptr noundef %outb, ptr noundef %oute, i64 noundef %x.coerce0, i64 noundef %x.coerce1) local_unnamed_addr #5 comdat { entry: %cmp.not = icmp eq i64 %x.coerce1, 0 - br i1 %cmp.not, label %for.body.i.i95, label %if.then + br i1 %cmp.not, label %for.body.i.i94, label %if.then if.then: ; preds = %entry %x.sroa.0.0.insert.ext = zext i64 %x.coerce0 to i128 @@ -1395,224 +1395,224 @@ _ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit: ; preds = %_ZN5fo br label %while.body.i.i10 while.body.i.i10: ; preds = %while.body.i.i10, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit - %v.addr.i3.09.i = phi i64 [ %conv8, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit ], [ %div.i.i12, %while.body.i.i10 ] + %v.addr.i3.09.i = phi i64 [ %conv8, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit ], [ %div.i.i, %while.body.i.i10 ] %pos.i.08.i = phi i64 [ 19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit ], [ %sub.i.i11, %while.body.i.i10 ] %sub.i.i11 = add nsw i64 %pos.i.08.i, -2 - %div.i.i12 = udiv i64 %v.addr.i3.09.i, 100 - %rem.i.i13 = urem i64 %v.addr.i3.09.i, 100 - %arrayidx.i.i14 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i13 - %5 = load i16, ptr %arrayidx.i.i14, align 2 - %add.ptr.i.i15 = getelementptr inbounds i8, ptr %add.ptr.i, i64 %sub.i.i11 - store i16 %5, ptr %add.ptr.i.i15, align 1 - %cmp.i.i16 = icmp ugt i64 %sub.i.i11, 2 - br i1 %cmp.i.i16, label %while.body.i.i10, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit, !llvm.loop !30 + %div.i.i = udiv i64 %v.addr.i3.09.i, 100 + %rem.i.i12 = urem i64 %v.addr.i3.09.i, 100 + %arrayidx.i.i13 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i12 + %5 = load i16, ptr %arrayidx.i.i13, align 2 + %add.ptr.i.i14 = getelementptr inbounds i8, ptr %add.ptr.i, i64 %sub.i.i11 + store i16 %5, ptr %add.ptr.i.i14, align 1 + %cmp.i.i15 = icmp ugt i64 %sub.i.i11, 2 + br i1 %cmp.i.i15, label %while.body.i.i10, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit, !llvm.loop !30 _ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit: ; preds = %while.body.i.i10 - %arrayidx2.i.i17 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i12 - %6 = load i16, ptr %arrayidx2.i.i17, align 2 + %arrayidx2.i.i16 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i + %6 = load i16, ptr %arrayidx2.i.i16, align 2 %7 = lshr i16 %6, 8 - %conv4.i.i18 = trunc nuw i16 %7 to i8 - store i8 %conv4.i.i18, ptr %add.ptr.i, align 1 - %add.ptr.i19 = getelementptr i8, ptr %add.ptr.i, i64 19 - br label %while.body.i.i20 - -while.body.i.i20: ; preds = %while.body.i.i20, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit - %v.addr.i3.09.i21 = phi i64 [ %conv, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit ], [ %div.i.i24, %while.body.i.i20 ] - %pos.i.08.i22 = phi i64 [ 19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit ], [ %sub.i.i23, %while.body.i.i20 ] - %sub.i.i23 = add nsw i64 %pos.i.08.i22, -2 - %div.i.i24 = udiv i64 %v.addr.i3.09.i21, 100 - %rem.i.i25 = urem i64 %v.addr.i3.09.i21, 100 - %arrayidx.i.i26 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i25 - %8 = load i16, ptr %arrayidx.i.i26, align 2 - %add.ptr.i.i27 = getelementptr inbounds i8, ptr %add.ptr.i19, i64 %sub.i.i23 - store i16 %8, ptr %add.ptr.i.i27, align 1 - %cmp.i.i28 = icmp ugt i64 %sub.i.i23, 2 - br i1 %cmp.i.i28, label %while.body.i.i20, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit33, !llvm.loop !30 - -_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit33: ; preds = %while.body.i.i20 - %arrayidx2.i.i29 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i24 - %9 = load i16, ptr %arrayidx2.i.i29, align 2 + %conv4.i.i17 = trunc nuw i16 %7 to i8 + store i8 %conv4.i.i17, ptr %add.ptr.i, align 1 + %add.ptr.i18 = getelementptr i8, ptr %add.ptr.i, i64 19 + br label %while.body.i.i19 + +while.body.i.i19: ; preds = %while.body.i.i19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit + %v.addr.i3.09.i20 = phi i64 [ %conv, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit ], [ %div.i.i23, %while.body.i.i19 ] + %pos.i.08.i21 = phi i64 [ 19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit ], [ %sub.i.i22, %while.body.i.i19 ] + %sub.i.i22 = add nsw i64 %pos.i.08.i21, -2 + %div.i.i23 = udiv i64 %v.addr.i3.09.i20, 100 + %rem.i.i24 = urem i64 %v.addr.i3.09.i20, 100 + %arrayidx.i.i25 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i24 + %8 = load i16, ptr %arrayidx.i.i25, align 2 + %add.ptr.i.i26 = getelementptr inbounds i8, ptr %add.ptr.i18, i64 %sub.i.i22 + store i16 %8, ptr %add.ptr.i.i26, align 1 + %cmp.i.i27 = icmp ugt i64 %sub.i.i22, 2 + br i1 %cmp.i.i27, label %while.body.i.i19, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit32, !llvm.loop !30 + +_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit32: ; preds = %while.body.i.i19 + %arrayidx2.i.i28 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i23 + %9 = load i16, ptr %arrayidx2.i.i28, align 2 %10 = lshr i16 %9, 8 - %conv4.i.i30 = trunc nuw i16 %10 to i8 - store i8 %conv4.i.i30, ptr %add.ptr.i19, align 1 - %add.i32 = add i64 %retval.i.0.i, 38 + %conv4.i.i29 = trunc nuw i16 %10 to i8 + store i8 %conv4.i.i29, ptr %add.ptr.i18, align 1 + %add.i31 = add i64 %retval.i.0.i, 38 br label %return if.end: ; preds = %if.then %coerce10.sroa.0.0.extract.trunc = trunc i128 %div to i64 - br label %for.body.i.i34 - -for.body.i.i34: ; preds = %if.end.i11.i38, %if.end - %i.i.020.i35 = phi i64 [ 0, %if.end ], [ %inc.i.i39, %if.end.i11.i38 ] - %arrayidx.i.i36 = getelementptr inbounds [20 x i64], ptr @_ZN5folly6detail15to_ascii_powersILm10EmE4dataE, i64 0, i64 %i.i.020.i35 - %11 = load i64, ptr %arrayidx.i.i36, align 8 - %cmp1.i10.i37 = icmp ugt i64 %11, %coerce10.sroa.0.0.extract.trunc - br i1 %cmp1.i10.i37, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i69, label %if.end.i11.i38 - -if.end.i11.i38: ; preds = %for.body.i.i34 - %inc.i.i39 = add nuw nsw i64 %i.i.020.i35, 1 - %exitcond.not.i40 = icmp eq i64 %inc.i.i39, 20 - br i1 %exitcond.not.i40, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i41, label %for.body.i.i34, !llvm.loop !29 - -_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i69: ; preds = %for.body.i.i34 - %add.i.i70 = tail call i64 @llvm.umax.i64(i64 %i.i.020.i35, i64 1) - %cmp.i.i71 = icmp ult ptr %oute, %outb - %sub.ptr.lhs.cast.i.i72 = ptrtoint ptr %oute to i64 - %sub.ptr.rhs.cast.i.i73 = ptrtoint ptr %outb to i64 - %sub.ptr.sub.i.i74 = sub i64 %sub.ptr.lhs.cast.i.i72, %sub.ptr.rhs.cast.i.i73 - %cmp1.i.i75 = icmp ult i64 %sub.ptr.sub.i.i74, %add.i.i70 - %or.cond.i76 = or i1 %cmp.i.i71, %cmp1.i.i75 - br i1 %or.cond.i76, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit79, label %while.cond.i.preheader.i77 - -_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i41: ; preds = %if.end.i11.i38 - %cmp.i27.i42 = icmp ult ptr %oute, %outb - %sub.ptr.lhs.cast.i28.i43 = ptrtoint ptr %oute to i64 - %sub.ptr.rhs.cast.i29.i44 = ptrtoint ptr %outb to i64 - %sub.ptr.sub.i30.i45 = sub i64 %sub.ptr.lhs.cast.i28.i43, %sub.ptr.rhs.cast.i29.i44 - %cmp1.i31.i46 = icmp ult i64 %sub.ptr.sub.i30.i45, 20 - %or.cond32.i47 = or i1 %cmp.i27.i42, %cmp1.i31.i46 - br i1 %or.cond32.i47, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit79, label %while.body.i.preheader.i48 - -while.cond.i.preheader.i77: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i69 - %cmp.i1521.i78 = icmp ugt i64 %i.i.020.i35, 2 - br i1 %cmp.i1521.i78, label %while.body.i.preheader.i48, label %while.end.i.i59 - -while.body.i.preheader.i48: ; preds = %while.cond.i.preheader.i77, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i41 - %retval.i7.03336.i49 = phi i64 [ %add.i.i70, %while.cond.i.preheader.i77 ], [ 20, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i41 ] - br label %while.body.i.i50 - -while.body.i.i50: ; preds = %while.body.i.i50, %while.body.i.preheader.i48 - %v.addr.i14.023.i51 = phi i64 [ %div.i.i54, %while.body.i.i50 ], [ %coerce10.sroa.0.0.extract.trunc, %while.body.i.preheader.i48 ] - %pos.i.022.i52 = phi i64 [ %sub.i.i53, %while.body.i.i50 ], [ %retval.i7.03336.i49, %while.body.i.preheader.i48 ] - %sub.i.i53 = add i64 %pos.i.022.i52, -2 - %div.i.i54 = udiv i64 %v.addr.i14.023.i51, 100 - %rem.i.i55 = urem i64 %v.addr.i14.023.i51, 100 - %arrayidx.i19.i56 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i55 - %12 = load i16, ptr %arrayidx.i19.i56, align 2 - %add.ptr.i.i57 = getelementptr inbounds i8, ptr %outb, i64 %sub.i.i53 - store i16 %12, ptr %add.ptr.i.i57, align 1 - %cmp.i15.i58 = icmp ugt i64 %sub.i.i53, 2 - br i1 %cmp.i15.i58, label %while.body.i.i50, label %while.end.i.i59, !llvm.loop !30 - -while.end.i.i59: ; preds = %while.body.i.i50, %while.cond.i.preheader.i77 - %retval.i7.03337.i60 = phi i64 [ %add.i.i70, %while.cond.i.preheader.i77 ], [ %retval.i7.03336.i49, %while.body.i.i50 ] - %pos.i.0.lcssa.i61 = phi i64 [ %add.i.i70, %while.cond.i.preheader.i77 ], [ %sub.i.i53, %while.body.i.i50 ] - %v.addr.i14.0.lcssa.i62 = phi i64 [ %coerce10.sroa.0.0.extract.trunc, %while.cond.i.preheader.i77 ], [ %div.i.i54, %while.body.i.i50 ] - %arrayidx2.i.i63 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %v.addr.i14.0.lcssa.i62 - %13 = load i16, ptr %arrayidx2.i.i63, align 2 - %cmp3.i.i64 = icmp eq i64 %pos.i.0.lcssa.i61, 2 - br i1 %cmp3.i.i64, label %if.then.i18.i68, label %if.else.i.i65 - -if.then.i18.i68: ; preds = %while.end.i.i59 + br label %for.body.i.i33 + +for.body.i.i33: ; preds = %if.end.i11.i37, %if.end + %i.i.020.i34 = phi i64 [ 0, %if.end ], [ %inc.i.i38, %if.end.i11.i37 ] + %arrayidx.i.i35 = getelementptr inbounds [20 x i64], ptr @_ZN5folly6detail15to_ascii_powersILm10EmE4dataE, i64 0, i64 %i.i.020.i34 + %11 = load i64, ptr %arrayidx.i.i35, align 8 + %cmp1.i10.i36 = icmp ugt i64 %11, %coerce10.sroa.0.0.extract.trunc + br i1 %cmp1.i10.i36, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i68, label %if.end.i11.i37 + +if.end.i11.i37: ; preds = %for.body.i.i33 + %inc.i.i38 = add nuw nsw i64 %i.i.020.i34, 1 + %exitcond.not.i39 = icmp eq i64 %inc.i.i38, 20 + br i1 %exitcond.not.i39, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i40, label %for.body.i.i33, !llvm.loop !29 + +_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i68: ; preds = %for.body.i.i33 + %add.i.i69 = tail call i64 @llvm.umax.i64(i64 %i.i.020.i34, i64 1) + %cmp.i.i70 = icmp ult ptr %oute, %outb + %sub.ptr.lhs.cast.i.i71 = ptrtoint ptr %oute to i64 + %sub.ptr.rhs.cast.i.i72 = ptrtoint ptr %outb to i64 + %sub.ptr.sub.i.i73 = sub i64 %sub.ptr.lhs.cast.i.i71, %sub.ptr.rhs.cast.i.i72 + %cmp1.i.i74 = icmp ult i64 %sub.ptr.sub.i.i73, %add.i.i69 + %or.cond.i75 = or i1 %cmp.i.i70, %cmp1.i.i74 + br i1 %or.cond.i75, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78, label %while.cond.i.preheader.i76 + +_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i40: ; preds = %if.end.i11.i37 + %cmp.i27.i41 = icmp ult ptr %oute, %outb + %sub.ptr.lhs.cast.i28.i42 = ptrtoint ptr %oute to i64 + %sub.ptr.rhs.cast.i29.i43 = ptrtoint ptr %outb to i64 + %sub.ptr.sub.i30.i44 = sub i64 %sub.ptr.lhs.cast.i28.i42, %sub.ptr.rhs.cast.i29.i43 + %cmp1.i31.i45 = icmp ult i64 %sub.ptr.sub.i30.i44, 20 + %or.cond32.i46 = or i1 %cmp.i27.i41, %cmp1.i31.i45 + br i1 %or.cond32.i46, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78, label %while.body.i.preheader.i47 + +while.cond.i.preheader.i76: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i68 + %cmp.i1521.i77 = icmp ugt i64 %i.i.020.i34, 2 + br i1 %cmp.i1521.i77, label %while.body.i.preheader.i47, label %while.end.i.i58 + +while.body.i.preheader.i47: ; preds = %while.cond.i.preheader.i76, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i40 + %retval.i7.03336.i48 = phi i64 [ %add.i.i69, %while.cond.i.preheader.i76 ], [ 20, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i40 ] + br label %while.body.i.i49 + +while.body.i.i49: ; preds = %while.body.i.i49, %while.body.i.preheader.i47 + %v.addr.i14.023.i50 = phi i64 [ %div.i.i53, %while.body.i.i49 ], [ %coerce10.sroa.0.0.extract.trunc, %while.body.i.preheader.i47 ] + %pos.i.022.i51 = phi i64 [ %sub.i.i52, %while.body.i.i49 ], [ %retval.i7.03336.i48, %while.body.i.preheader.i47 ] + %sub.i.i52 = add i64 %pos.i.022.i51, -2 + %div.i.i53 = udiv i64 %v.addr.i14.023.i50, 100 + %rem.i.i54 = urem i64 %v.addr.i14.023.i50, 100 + %arrayidx.i19.i55 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i54 + %12 = load i16, ptr %arrayidx.i19.i55, align 2 + %add.ptr.i.i56 = getelementptr inbounds i8, ptr %outb, i64 %sub.i.i52 + store i16 %12, ptr %add.ptr.i.i56, align 1 + %cmp.i15.i57 = icmp ugt i64 %sub.i.i52, 2 + br i1 %cmp.i15.i57, label %while.body.i.i49, label %while.end.i.i58, !llvm.loop !30 + +while.end.i.i58: ; preds = %while.body.i.i49, %while.cond.i.preheader.i76 + %retval.i7.03337.i59 = phi i64 [ %add.i.i69, %while.cond.i.preheader.i76 ], [ %retval.i7.03336.i48, %while.body.i.i49 ] + %pos.i.0.lcssa.i60 = phi i64 [ %add.i.i69, %while.cond.i.preheader.i76 ], [ %sub.i.i52, %while.body.i.i49 ] + %v.addr.i14.0.lcssa.i61 = phi i64 [ %coerce10.sroa.0.0.extract.trunc, %while.cond.i.preheader.i76 ], [ %div.i.i53, %while.body.i.i49 ] + %arrayidx2.i.i62 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %v.addr.i14.0.lcssa.i61 + %13 = load i16, ptr %arrayidx2.i.i62, align 2 + %cmp3.i.i63 = icmp eq i64 %pos.i.0.lcssa.i60, 2 + br i1 %cmp3.i.i63, label %if.then.i18.i67, label %if.else.i.i64 + +if.then.i18.i67: ; preds = %while.end.i.i58 store i16 %13, ptr %outb, align 1 - br label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit79 + br label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78 -if.else.i.i65: ; preds = %while.end.i.i59 +if.else.i.i64: ; preds = %while.end.i.i58 %14 = lshr i16 %13, 8 - %conv4.i.i66 = trunc nuw i16 %14 to i8 - store i8 %conv4.i.i66, ptr %outb, align 1 - br label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit79 - -_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit79: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i69, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i41, %if.then.i18.i68, %if.else.i.i65 - %retval.i.0.i67 = phi i64 [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i69 ], [ %retval.i7.03337.i60, %if.else.i.i65 ], [ %retval.i7.03337.i60, %if.then.i18.i68 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i41 ] - %add.ptr.i80 = getelementptr inbounds i8, ptr %outb, i64 %retval.i.0.i67 - br label %while.body.i.i81 - -while.body.i.i81: ; preds = %while.body.i.i81, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit79 - %v.addr.i3.09.i82 = phi i64 [ %conv, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit79 ], [ %div.i.i85, %while.body.i.i81 ] - %pos.i.08.i83 = phi i64 [ 19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit79 ], [ %sub.i.i84, %while.body.i.i81 ] - %sub.i.i84 = add nsw i64 %pos.i.08.i83, -2 - %div.i.i85 = udiv i64 %v.addr.i3.09.i82, 100 - %rem.i.i86 = urem i64 %v.addr.i3.09.i82, 100 - %arrayidx.i.i87 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i86 - %15 = load i16, ptr %arrayidx.i.i87, align 2 - %add.ptr.i.i88 = getelementptr inbounds i8, ptr %add.ptr.i80, i64 %sub.i.i84 - store i16 %15, ptr %add.ptr.i.i88, align 1 - %cmp.i.i89 = icmp ugt i64 %sub.i.i84, 2 - br i1 %cmp.i.i89, label %while.body.i.i81, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit94, !llvm.loop !30 - -_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit94: ; preds = %while.body.i.i81 - %arrayidx2.i.i90 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i85 - %16 = load i16, ptr %arrayidx2.i.i90, align 2 + %conv4.i.i65 = trunc nuw i16 %14 to i8 + store i8 %conv4.i.i65, ptr %outb, align 1 + br label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78 + +_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i68, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i40, %if.then.i18.i67, %if.else.i.i64 + %retval.i.0.i66 = phi i64 [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i68 ], [ %retval.i7.03337.i59, %if.else.i.i64 ], [ %retval.i7.03337.i59, %if.then.i18.i67 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i40 ] + %add.ptr.i79 = getelementptr inbounds i8, ptr %outb, i64 %retval.i.0.i66 + br label %while.body.i.i80 + +while.body.i.i80: ; preds = %while.body.i.i80, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78 + %v.addr.i3.09.i81 = phi i64 [ %conv, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78 ], [ %div.i.i84, %while.body.i.i80 ] + %pos.i.08.i82 = phi i64 [ 19, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUloE_clEo.exit78 ], [ %sub.i.i83, %while.body.i.i80 ] + %sub.i.i83 = add nsw i64 %pos.i.08.i82, -2 + %div.i.i84 = udiv i64 %v.addr.i3.09.i81, 100 + %rem.i.i85 = urem i64 %v.addr.i3.09.i81, 100 + %arrayidx.i.i86 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i85 + %15 = load i16, ptr %arrayidx.i.i86, align 2 + %add.ptr.i.i87 = getelementptr inbounds i8, ptr %add.ptr.i79, i64 %sub.i.i83 + store i16 %15, ptr %add.ptr.i.i87, align 1 + %cmp.i.i88 = icmp ugt i64 %sub.i.i83, 2 + br i1 %cmp.i.i88, label %while.body.i.i80, label %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit93, !llvm.loop !30 + +_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit93: ; preds = %while.body.i.i80 + %arrayidx2.i.i89 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %div.i.i84 + %16 = load i16, ptr %arrayidx2.i.i89, align 2 %17 = lshr i16 %16, 8 - %conv4.i.i91 = trunc nuw i16 %17 to i8 - store i8 %conv4.i.i91, ptr %add.ptr.i80, align 1 - %add.i93 = add i64 %retval.i.0.i67, 19 + %conv4.i.i90 = trunc nuw i16 %17 to i8 + store i8 %conv4.i.i90, ptr %add.ptr.i79, align 1 + %add.i92 = add i64 %retval.i.0.i66, 19 br label %return -for.body.i.i95: ; preds = %entry, %if.end.i11.i99 - %i.i.020.i96 = phi i64 [ %inc.i.i100, %if.end.i11.i99 ], [ 0, %entry ] - %arrayidx.i.i97 = getelementptr inbounds [20 x i64], ptr @_ZN5folly6detail15to_ascii_powersILm10EmE4dataE, i64 0, i64 %i.i.020.i96 - %18 = load i64, ptr %arrayidx.i.i97, align 8 - %cmp1.i10.i98 = icmp ult i64 %x.coerce0, %18 - br i1 %cmp1.i10.i98, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i130, label %if.end.i11.i99 - -if.end.i11.i99: ; preds = %for.body.i.i95 - %inc.i.i100 = add nuw nsw i64 %i.i.020.i96, 1 - %exitcond.not.i101 = icmp eq i64 %inc.i.i100, 20 - br i1 %exitcond.not.i101, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i102, label %for.body.i.i95, !llvm.loop !29 - -_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i130: ; preds = %for.body.i.i95 - %add.i.i131 = tail call i64 @llvm.umax.i64(i64 %i.i.020.i96, i64 1) - %cmp.i.i132 = icmp ult ptr %oute, %outb - %sub.ptr.lhs.cast.i.i133 = ptrtoint ptr %oute to i64 - %sub.ptr.rhs.cast.i.i134 = ptrtoint ptr %outb to i64 - %sub.ptr.sub.i.i135 = sub i64 %sub.ptr.lhs.cast.i.i133, %sub.ptr.rhs.cast.i.i134 - %cmp1.i.i136 = icmp ult i64 %sub.ptr.sub.i.i135, %add.i.i131 - %or.cond.i137 = or i1 %cmp.i.i132, %cmp1.i.i136 - br i1 %or.cond.i137, label %return, label %while.cond.i.preheader.i138 - -_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i102: ; preds = %if.end.i11.i99 - %cmp.i27.i103 = icmp ult ptr %oute, %outb - %sub.ptr.lhs.cast.i28.i104 = ptrtoint ptr %oute to i64 - %sub.ptr.rhs.cast.i29.i105 = ptrtoint ptr %outb to i64 - %sub.ptr.sub.i30.i106 = sub i64 %sub.ptr.lhs.cast.i28.i104, %sub.ptr.rhs.cast.i29.i105 - %cmp1.i31.i107 = icmp ult i64 %sub.ptr.sub.i30.i106, 20 - %or.cond32.i108 = or i1 %cmp.i27.i103, %cmp1.i31.i107 - br i1 %or.cond32.i108, label %return, label %while.body.i.preheader.i109 - -while.cond.i.preheader.i138: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i130 - %cmp.i1521.i139 = icmp ugt i64 %i.i.020.i96, 2 - br i1 %cmp.i1521.i139, label %while.body.i.preheader.i109, label %while.end.i.i120 - -while.body.i.preheader.i109: ; preds = %while.cond.i.preheader.i138, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i102 - %retval.i7.03336.i110 = phi i64 [ %add.i.i131, %while.cond.i.preheader.i138 ], [ 20, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i102 ] - br label %while.body.i.i111 - -while.body.i.i111: ; preds = %while.body.i.i111, %while.body.i.preheader.i109 - %v.addr.i14.023.i112 = phi i64 [ %div.i.i115, %while.body.i.i111 ], [ %x.coerce0, %while.body.i.preheader.i109 ] - %pos.i.022.i113 = phi i64 [ %sub.i.i114, %while.body.i.i111 ], [ %retval.i7.03336.i110, %while.body.i.preheader.i109 ] - %sub.i.i114 = add i64 %pos.i.022.i113, -2 - %div.i.i115 = udiv i64 %v.addr.i14.023.i112, 100 - %rem.i.i116 = urem i64 %v.addr.i14.023.i112, 100 - %arrayidx.i19.i117 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i116 - %19 = load i16, ptr %arrayidx.i19.i117, align 2 - %add.ptr.i.i118 = getelementptr inbounds i8, ptr %outb, i64 %sub.i.i114 - store i16 %19, ptr %add.ptr.i.i118, align 1 - %cmp.i15.i119 = icmp ugt i64 %sub.i.i114, 2 - br i1 %cmp.i15.i119, label %while.body.i.i111, label %while.end.i.i120, !llvm.loop !30 - -while.end.i.i120: ; preds = %while.body.i.i111, %while.cond.i.preheader.i138 - %retval.i7.03337.i121 = phi i64 [ %add.i.i131, %while.cond.i.preheader.i138 ], [ %retval.i7.03336.i110, %while.body.i.i111 ] - %pos.i.0.lcssa.i122 = phi i64 [ %add.i.i131, %while.cond.i.preheader.i138 ], [ %sub.i.i114, %while.body.i.i111 ] - %v.addr.i14.0.lcssa.i123 = phi i64 [ %x.coerce0, %while.cond.i.preheader.i138 ], [ %div.i.i115, %while.body.i.i111 ] - %arrayidx2.i.i124 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %v.addr.i14.0.lcssa.i123 - %20 = load i16, ptr %arrayidx2.i.i124, align 2 - %cmp3.i.i125 = icmp eq i64 %pos.i.0.lcssa.i122, 2 - br i1 %cmp3.i.i125, label %if.then.i18.i129, label %if.else.i.i126 - -if.then.i18.i129: ; preds = %while.end.i.i120 +for.body.i.i94: ; preds = %entry, %if.end.i11.i98 + %i.i.020.i95 = phi i64 [ %inc.i.i99, %if.end.i11.i98 ], [ 0, %entry ] + %arrayidx.i.i96 = getelementptr inbounds [20 x i64], ptr @_ZN5folly6detail15to_ascii_powersILm10EmE4dataE, i64 0, i64 %i.i.020.i95 + %18 = load i64, ptr %arrayidx.i.i96, align 8 + %cmp1.i10.i97 = icmp ult i64 %x.coerce0, %18 + br i1 %cmp1.i10.i97, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i129, label %if.end.i11.i98 + +if.end.i11.i98: ; preds = %for.body.i.i94 + %inc.i.i99 = add nuw nsw i64 %i.i.020.i95, 1 + %exitcond.not.i100 = icmp eq i64 %inc.i.i99, 20 + br i1 %exitcond.not.i100, label %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i101, label %for.body.i.i94, !llvm.loop !29 + +_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i129: ; preds = %for.body.i.i94 + %add.i.i130 = tail call i64 @llvm.umax.i64(i64 %i.i.020.i95, i64 1) + %cmp.i.i131 = icmp ult ptr %oute, %outb + %sub.ptr.lhs.cast.i.i132 = ptrtoint ptr %oute to i64 + %sub.ptr.rhs.cast.i.i133 = ptrtoint ptr %outb to i64 + %sub.ptr.sub.i.i134 = sub i64 %sub.ptr.lhs.cast.i.i132, %sub.ptr.rhs.cast.i.i133 + %cmp1.i.i135 = icmp ult i64 %sub.ptr.sub.i.i134, %add.i.i130 + %or.cond.i136 = or i1 %cmp.i.i131, %cmp1.i.i135 + br i1 %or.cond.i136, label %return, label %while.cond.i.preheader.i137 + +_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i101: ; preds = %if.end.i11.i98 + %cmp.i27.i102 = icmp ult ptr %oute, %outb + %sub.ptr.lhs.cast.i28.i103 = ptrtoint ptr %oute to i64 + %sub.ptr.rhs.cast.i29.i104 = ptrtoint ptr %outb to i64 + %sub.ptr.sub.i30.i105 = sub i64 %sub.ptr.lhs.cast.i28.i103, %sub.ptr.rhs.cast.i29.i104 + %cmp1.i31.i106 = icmp ult i64 %sub.ptr.sub.i30.i105, 20 + %or.cond32.i107 = or i1 %cmp.i27.i102, %cmp1.i31.i106 + br i1 %or.cond32.i107, label %return, label %while.body.i.preheader.i108 + +while.cond.i.preheader.i137: ; preds = %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i129 + %cmp.i1521.i138 = icmp ugt i64 %i.i.020.i95, 2 + br i1 %cmp.i1521.i138, label %while.body.i.preheader.i108, label %while.end.i.i119 + +while.body.i.preheader.i108: ; preds = %while.cond.i.preheader.i137, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i101 + %retval.i7.03336.i109 = phi i64 [ %add.i.i130, %while.cond.i.preheader.i137 ], [ 20, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i101 ] + br label %while.body.i.i110 + +while.body.i.i110: ; preds = %while.body.i.i110, %while.body.i.preheader.i108 + %v.addr.i14.023.i111 = phi i64 [ %div.i.i114, %while.body.i.i110 ], [ %x.coerce0, %while.body.i.preheader.i108 ] + %pos.i.022.i112 = phi i64 [ %sub.i.i113, %while.body.i.i110 ], [ %retval.i7.03336.i109, %while.body.i.preheader.i108 ] + %sub.i.i113 = add i64 %pos.i.022.i112, -2 + %div.i.i114 = udiv i64 %v.addr.i14.023.i111, 100 + %rem.i.i115 = urem i64 %v.addr.i14.023.i111, 100 + %arrayidx.i19.i116 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %rem.i.i115 + %19 = load i16, ptr %arrayidx.i19.i116, align 2 + %add.ptr.i.i117 = getelementptr inbounds i8, ptr %outb, i64 %sub.i.i113 + store i16 %19, ptr %add.ptr.i.i117, align 1 + %cmp.i15.i118 = icmp ugt i64 %sub.i.i113, 2 + br i1 %cmp.i15.i118, label %while.body.i.i110, label %while.end.i.i119, !llvm.loop !30 + +while.end.i.i119: ; preds = %while.body.i.i110, %while.cond.i.preheader.i137 + %retval.i7.03337.i120 = phi i64 [ %add.i.i130, %while.cond.i.preheader.i137 ], [ %retval.i7.03336.i109, %while.body.i.i110 ] + %pos.i.0.lcssa.i121 = phi i64 [ %add.i.i130, %while.cond.i.preheader.i137 ], [ %sub.i.i113, %while.body.i.i110 ] + %v.addr.i14.0.lcssa.i122 = phi i64 [ %x.coerce0, %while.cond.i.preheader.i137 ], [ %div.i.i114, %while.body.i.i110 ] + %arrayidx2.i.i123 = getelementptr inbounds [100 x i16], ptr @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE, i64 0, i64 %v.addr.i14.0.lcssa.i122 + %20 = load i16, ptr %arrayidx2.i.i123, align 2 + %cmp3.i.i124 = icmp eq i64 %pos.i.0.lcssa.i121, 2 + br i1 %cmp3.i.i124, label %if.then.i18.i128, label %if.else.i.i125 + +if.then.i18.i128: ; preds = %while.end.i.i119 store i16 %20, ptr %outb, align 1 br label %return -if.else.i.i126: ; preds = %while.end.i.i120 +if.else.i.i125: ; preds = %while.end.i.i119 %21 = lshr i16 %20, 8 - %conv4.i.i127 = trunc nuw i16 %21 to i8 - store i8 %conv4.i.i127, ptr %outb, align 1 + %conv4.i.i126 = trunc nuw i16 %21 to i8 + store i8 %conv4.i.i126, ptr %outb, align 1 br label %return -return: ; preds = %if.else.i.i126, %if.then.i18.i129, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i102, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i130, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit94, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit33 - %p.0 = phi i64 [ %add.i93, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit94 ], [ %add.i32, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit33 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i130 ], [ %retval.i7.03337.i121, %if.else.i.i126 ], [ %retval.i7.03337.i121, %if.then.i18.i129 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i102 ] +return: ; preds = %if.else.i.i125, %if.then.i18.i128, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i101, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i129, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit93, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit32 + %p.0 = phi i64 [ %add.i92, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit93 ], [ %add.i31, %_ZZN5folly6detail18unsafeTelescope128EPcS1_oENKUlmE_clEm.exit32 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.i129 ], [ %retval.i7.03337.i120, %if.else.i.i125 ], [ %retval.i7.03337.i120, %if.then.i18.i128 ], [ 0, %_ZN5folly6detail19to_ascii_size_arrayILm10EEEmm.exit.thread.i101 ] ret i64 %p.0 } diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index 820278fb20a..51ef45f685d 100755 --- a/scripts/setup_pre_commit_patch.sh +++ b/scripts/setup_pre_commit_patch.sh @@ -2,7 +2,7 @@ set -euo pipefail shopt -s inherit_errexit -export GITHUB_PATCH_ID="/llvm-project/commit/" +export GITHUB_PATCH_ID=llvm/llvm-project/pull/108973 # Please rebase manually # git fetch origin