diff --git a/bench/abc/optimized/cmdUtils.ll b/bench/abc/optimized/cmdUtils.ll index 2869c6a947d..e9bd27241c2 100644 --- a/bench/abc/optimized/cmdUtils.ll +++ b/bench/abc/optimized/cmdUtils.ll @@ -418,10 +418,8 @@ define ptr @CmdSplitLine(ptr noundef readonly captures(none) %0, ptr noundef %1, br label %.preheader76, !llvm.loop !51 37: ; preds = %.preheader76, %28 - %.058.lcssa = phi i32 [ %.058, %.preheader76 ], [ 0, %28 ] - %.0.lcssa = phi i32 [ %.0, %.preheader76 ], [ 0, %28 ] - %38 = icmp ne i32 %.058.lcssa, 0 - %39 = icmp ne i32 %.0.lcssa, 0 + %38 = icmp ne i32 %.058, 0 + %39 = icmp ne i32 %.0, 0 %or.cond6 = select i1 %38, i1 true, i1 %39 br i1 %or.cond6, label %40, label %43 diff --git a/bench/abc/optimized/nwkSpeedup.ll b/bench/abc/optimized/nwkSpeedup.ll index b5ad08eedc0..d312cb6ca71 100644 --- a/bench/abc/optimized/nwkSpeedup.ll +++ b/bench/abc/optimized/nwkSpeedup.ll @@ -836,39 +836,43 @@ define ptr @Nwk_ManSpeedup(ptr noundef %0, i32 noundef %1, i32 noundef %2, i32 n %exitcond.not = icmp eq i64 %indvars.iv.next452, %wide.trip.count br i1 %exitcond.not, label %.critedge4, label %71, !llvm.loop !75 -.critedge4: ; preds = %71, %82, %.preheader400 - %.1237.lcssa = phi i32 [ %.0236413, %.preheader400 ], [ %.2238, %82 ], [ %.1237407, %71 ] - %83 = getelementptr inbounds nuw i8, ptr %61, i64 36 - %84 = load i32, ptr %83, align 4, !tbaa !73 - %85 = sext i32 %84 to i64 - %86 = getelementptr inbounds i32, ptr %calloc, i64 %85 - %87 = load i32, ptr %86, align 4, !tbaa !68 - %88 = and i32 %87, 1431655765 - %89 = lshr i32 %87, 1 - %90 = and i32 %89, 1431655765 - %91 = add nuw i32 %90, %88 - %92 = and i32 %91, 858993459 - %93 = lshr i32 %91, 2 - %94 = and i32 %93, 858993459 - %95 = add nuw nsw i32 %94, %92 - %96 = and i32 %95, 117901063 - %97 = lshr i32 %95, 4 - %98 = and i32 %97, 117901063 - %99 = add nuw nsw i32 %98, %96 - %100 = and i32 %99, 983055 - %101 = lshr i32 %99, 8 - %102 = and i32 %101, 983055 - %103 = add nuw nsw i32 %102, %100 - %104 = and i32 %103, 31 - %105 = lshr i32 %103, 16 - %106 = add i32 %105, %.0234414 - %107 = add i32 %106, %104 - %108 = freeze i32 %.1237.lcssa +.critedge4: ; preds = %82, %71 + %.1237.lcssa = phi i32 [ %.1237407, %71 ], [ %.2238, %82 ] + %83 = freeze i32 %.1237.lcssa + br label %.critedge4 + +.critedge4:; preds = %.critedge4.loopexit, %.preheader400 + %.1237.lcssa = phi i32 [ %.0236413, %.preheader400 ], [ %83, %.critedge4.loopexit ] + %84 = getelementptr inbounds nuw i8, ptr %61, i64 36 + %85 = load i32, ptr %84, align 4, !tbaa !73 + %86 = sext i32 %85 to i64 + %87 = getelementptr inbounds i32, ptr %calloc, i64 %86 + %88 = load i32, ptr %87, align 4, !tbaa !68 + %89 = and i32 %88, 1431655765 + %90 = lshr i32 %88, 1 + %91 = and i32 %90, 1431655765 + %92 = add nuw i32 %91, %89 + %93 = and i32 %92, 858993459 + %94 = lshr i32 %92, 2 + %95 = and i32 %94, 858993459 + %96 = add nuw nsw i32 %95, %93 + %97 = and i32 %96, 117901063 + %98 = lshr i32 %96, 4 + %99 = and i32 %98, 117901063 + %100 = add nuw nsw i32 %99, %97 + %101 = and i32 %100, 983055 + %102 = lshr i32 %100, 8 + %103 = and i32 %102, 983055 + %104 = add nuw nsw i32 %103, %101 + %105 = and i32 %104, 31 + %106 = lshr i32 %104, 16 + %107 = add i32 %106, %.0234414 + %108 = add i32 %107, %105 br label %109 109: ; preds = %.critedge4, %63, %59 - %.3239 = phi i32 [ %.0236413, %59 ], [ %108, %.critedge4 ], [ %.0236413, %63 ] - %.1235 = phi i32 [ %.0234414, %59 ], [ %107, %.critedge4 ], [ %.0234414, %63 ] + %.3239 = phi i32 [ %.0236413, %59 ], [ %.1237.lcssa, %.critedge4 ], [ %.0236413, %63 ] + %.1235 = phi i32 [ %.0234414, %59 ], [ %108, %.critedge4 ], [ %.0234414, %63 ] %indvars.iv.next455 = add nuw nsw i64 %indvars.iv454, 1 %exitcond458.not = icmp eq i64 %indvars.iv.next455, %wide.trip.count457 br i1 %exitcond458.not, label %.critedge2, label %59, !llvm.loop !76 diff --git a/bench/abseil-cpp/optimized/int128_test.ll b/bench/abseil-cpp/optimized/int128_test.ll index ef1efb05618..a0ca0fb0ef4 100644 --- a/bench/abseil-cpp/optimized/int128_test.ll +++ b/bench/abseil-cpp/optimized/int128_test.ll @@ -71751,8 +71751,7 @@ _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE store i64 %.sroa.2.0.extract.trunc.i1134, ptr %1047, align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %92) #27 %.sroa.01.0.insert.insert.i1132.frozen = freeze i128 %.sroa.01.0.insert.insert.i1132 - %.frozen = freeze i128 %1104 - %1106 = sdiv i128 %.sroa.01.0.insert.insert.i1132.frozen, %.frozen + %1106 = sdiv i128 %.sroa.01.0.insert.insert.i1132.frozen, %1104 %.sroa.2.0.extract.shift.i1146 = lshr i128 %1106, 64 %.sroa.2.0.extract.trunc.i1147 = trunc nuw i128 %.sroa.2.0.extract.shift.i1146 to i64 %.sroa.012.0.extract.trunc.i1148 = trunc i128 %1106 to i64 @@ -72264,7 +72263,7 @@ _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEP store i64 %.sroa.0.0.insert.ext.i16.i, ptr %101, align 16 store i64 %.sroa.2.0.extract.shift.i1246, ptr %1060, align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %102) #27 - %1256 = mul i128 %1106, %.frozen + %1256 = mul i128 %1106, %1104 %.decomposed1644 = sub i128 %.sroa.01.0.insert.insert.i1132.frozen, %1256 %.sroa.2.0.extract.shift.i1257 = lshr i128 %.decomposed1644, 64 %.sroa.2.0.extract.trunc.i1258 = trunc nuw i128 %.sroa.2.0.extract.shift.i1257 to i64 diff --git a/bench/actix-rs/optimized/3k33h0ss7dy62evb.ll b/bench/actix-rs/optimized/3k33h0ss7dy62evb.ll index 94bf2579e46..89797eefaa4 100644 --- a/bench/actix-rs/optimized/3k33h0ss7dy62evb.ll +++ b/bench/actix-rs/optimized/3k33h0ss7dy62evb.ll @@ -1321,7 +1321,7 @@ define hidden { ptr, i64 } @"_ZN4core3str21_$LT$impl$u20$str$GT$12trim_matches17 %.not35 = phi i1 [ true, %2 ], [ true, %32 ], [ false, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h0eeeb9eb726f10eeE.llvm.906605461179275197.exit.i.i" ], [ false, %49 ], [ false, %47 ] %.sroa.4.033 = phi ptr [ %0, %2 ], [ %34, %32 ], [ %.sink18.i.i, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h0eeeb9eb726f10eeE.llvm.906605461179275197.exit.i.i" ], [ %.sink18.i.i, %49 ], [ %.sink18.i.i, %47 ] %.sroa.16.131 = phi i64 [ 0, %2 ], [ %.sroa.16.0, %32 ], [ %46, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h0eeeb9eb726f10eeE.llvm.906605461179275197.exit.i.i" ], [ %46, %49 ], [ %46, %47 ] - %.sroa.415.029 = phi i64 [ undef, %2 ], [ undef, %32 ], [ %.sroa.16.0, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h0eeeb9eb726f10eeE.llvm.906605461179275197.exit.i.i" ], [ %.sroa.16.0, %49 ], [ %.sroa.16.0, %47 ] + %.sroa.415.029 = phi i64 [ undef, %2 ], [ %.sroa.16.0, %47 ], [ %.sroa.16.0, %49 ], [ %.sroa.16.0, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h0eeeb9eb726f10eeE.llvm.906605461179275197.exit.i.i" ], [ %.sroa.16.0, %32 ] %70 = phi i64 [ 0, %2 ], [ 0, %32 ], [ %46, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h0eeeb9eb726f10eeE.llvm.906605461179275197.exit.i.i" ], [ %46, %49 ], [ %46, %47 ] %71 = icmp eq ptr %.sroa.4.033, %3 br i1 %71, label %.loopexit, label %.lr.ph.i9 diff --git a/bench/assimp/optimized/3DSConverter.ll b/bench/assimp/optimized/3DSConverter.ll index 9c3644a98ab..77a479d5fcb 100644 --- a/bench/assimp/optimized/3DSConverter.ll +++ b/bench/assimp/optimized/3DSConverter.ll @@ -163,9 +163,9 @@ define hidden void @_ZN6Assimp19Discreet3DSImporter22ReplaceDefaultMaterialEv(pt br label %21 ._crit_edge77: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit - %13 = icmp eq i32 %.127.fr, -842150451 + %13 = icmp eq i32 %.127, -842150451 %14 = trunc nuw i64 %99 to i32 - %spec.select = select i1 %13, i32 %14, i32 %.127.fr + %spec.select = select i1 %13, i32 %14, i32 %.127 br label %._crit_edge77.thread ._crit_edge77.thread: ; preds = %._crit_edge77, %1 @@ -181,7 +181,7 @@ define hidden void @_ZN6Assimp19Discreet3DSImporter22ReplaceDefaultMaterialEv(pt 21: ; preds = %.lr.ph76, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit %22 = phi ptr [ %10, %.lr.ph76 ], [ %95, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit ] %23 = phi i64 [ 0, %.lr.ph76 ], [ %91, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit ] - %.02674 = phi i32 [ -842150451, %.lr.ph76 ], [ %.127.fr, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit ] + %.02674 = phi i32 [ -842150451, %.lr.ph76 ], [ %.127, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit ] %.02972 = phi i32 [ 0, %.lr.ph76 ], [ %90, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit ] call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #26 %24 = getelementptr inbounds nuw %"struct.Assimp::D3DS::Material", ptr %22, i64 %23, i32 1 @@ -305,7 +305,6 @@ _ZNK6Assimp19Discreet3DSImporter16ContainsTexturesEj.exit.thread: ; preds = %61, 83: ; preds = %_ZNK6Assimp19Discreet3DSImporter16ContainsTexturesEj.exit.thread, %_ZNK6Assimp19Discreet3DSImporter16ContainsTexturesEj.exit, %48, %57, %._crit_edge %.127 = phi i32 [ %.02674, %._crit_edge ], [ %.02674, %57 ], [ %.02674, %48 ], [ %.02674, %_ZNK6Assimp19Discreet3DSImporter16ContainsTexturesEj.exit.thread ], [ %.02972, %_ZNK6Assimp19Discreet3DSImporter16ContainsTexturesEj.exit ] - %.127.fr = freeze i32 %.127 %84 = load ptr, ptr %3, align 8 %85 = icmp eq ptr %84, %11 br i1 %85, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i diff --git a/bench/assimp/optimized/ComputeUVMappingProcess.ll b/bench/assimp/optimized/ComputeUVMappingProcess.ll index c99e63a1a49..6796b06d1ec 100644 --- a/bench/assimp/optimized/ComputeUVMappingProcess.ll +++ b/bench/assimp/optimized/ComputeUVMappingProcess.ll @@ -117,7 +117,7 @@ define hidden void @_Z13RemoveUVSeamsP6aiMeshP10aiVector3tIfE(ptr noundef readon %wide.trip.count = zext i32 %9 to i64 br label %31 -13: ; preds = %46 +13: ; preds = %42 %.not = icmp eq i32 %.175, %9 %.not81 = icmp eq i32 %.173, %9 %or.cond82 = select i1 %.not, i1 true, i1 %.not81 @@ -125,55 +125,44 @@ define hidden void @_Z13RemoveUVSeamsP6aiMeshP10aiVector3tIfE(ptr noundef readon .lr.ph: ; preds = %13 %or.cond5 = select i1 %.169, i1 %.171, i1 false - %or.cond5.fr = freeze i1 %or.cond5 - br i1 %or.cond5.fr, label %.lr.ph.split.us, label %.lr.ph.split + br i1 %or.cond5, label %.lr.ph.split.us, label %.lr.ph.split .lr.ph.split.us: ; preds = %.lr.ph, %27 - %indvars.iv103 = phi i64 [ %indvars.iv.next104, %27 ], [ 0, %.lr.ph ] + %indvars.iv103 = phi i64 [ %indvars.iv.next104, %23 ], [ 0, %.lr.ph ] %14 = load ptr, ptr %11, align 8 %15 = getelementptr inbounds nuw i32, ptr %14, i64 %indvars.iv103 %16 = load i32, ptr %15, align 4 %17 = zext i32 %16 to i64 %18 = getelementptr inbounds nuw %class.aiVector3t, ptr %1, i64 %17 %19 = load float, ptr %18, align 4 - %20 = fcmp ule float %19, 0x3FECCCCCC0000000 - %or.cond.us = select i1 %20, i1 true, i1 %.171 - br i1 %or.cond.us, label %21, label %.sink.split + %20 = fcmp oge float %19, 0x3FEFAE1480000000 + %or.cond84.not.us = and i1 %.1, %20 + br i1 %or.cond84.not.us, label %23, label %21 21: ; preds = %.lr.ph.split.us - %22 = fcmp uge float %19, 0x3FB99999A0000000 - %or.cond3.us = select i1 %22, i1 true, i1 %.169 - br i1 %or.cond3.us, label %23, label %.sink.split - -23: ; preds = %21 - %24 = fcmp oge float %19, 0x3FEFAE1480000000 - %or.cond84.not.us = and i1 %.1, %24 - br i1 %or.cond84.not.us, label %.sink.split, label %25 - -25: ; preds = %23 - %26 = fcmp ugt float %19, 0x3F847AE140000000 - %or.cond85.us = or i1 %.1, %26 - br i1 %or.cond85.us, label %27, label %.sink.split - -.sink.split: ; preds = %23, %25, %21, %.lr.ph.split.us - %.sink = phi float [ 0.000000e+00, %.lr.ph.split.us ], [ 1.000000e+00, %21 ], [ 1.000000e+00, %25 ], [ 0.000000e+00, %23 ] + %22 = fcmp ugt float %19, 0x3F847AE140000000 + %or.cond85.us = or i1 %.1, %22 + br i1 %or.cond85.us, label %23, label %.sink.split + +23: ; preds = %.lr.ph.split.us, %21 + %.sink = phi float [ 1.000000e+00, %21 ], [ 0.000000e+00, %.lr.ph.split.us.preheader ] store float %.sink, ptr %18, align 4 br label %27 -27: ; preds = %.sink.split, %25 +27: ; preds = %.sink.split, %21 %indvars.iv.next104 = add nuw nsw i64 %indvars.iv103, 1 %28 = load i32, ptr %8, align 8 %29 = zext i32 %28 to i64 %30 = icmp samesign ult i64 %indvars.iv.next104, %29 br i1 %30, label %.lr.ph.split.us, label %.loopexit, !llvm.loop !3 -31: ; preds = %.preheader87, %46 - %indvars.iv = phi i64 [ 0, %.preheader87 ], [ %indvars.iv.next, %46 ] - %.06792 = phi i1 [ false, %.preheader87 ], [ %.1, %46 ] - %.06891 = phi i1 [ false, %.preheader87 ], [ %.169, %46 ] - %.07090 = phi i1 [ false, %.preheader87 ], [ %.171, %46 ] - %.07289 = phi i32 [ %9, %.preheader87 ], [ %.173, %46 ] - %.07488 = phi i32 [ %9, %.preheader87 ], [ %.175, %46 ] +31: ; preds = %.preheader87, %42 + %indvars.iv = phi i64 [ 0, %.preheader87 ], [ %indvars.iv.next, %42 ] + %.06792 = phi i1 [ false, %.preheader87 ], [ %.1, %42 ] + %.06891 = phi i1 [ false, %.preheader87 ], [ %.169, %42 ] + %.07090 = phi i1 [ false, %.preheader87 ], [ %.171, %42 ] + %.07289 = phi i32 [ %9, %.preheader87 ], [ %.173, %42 ] + %.07488 = phi i32 [ %9, %.preheader87 ], [ %.175, %42 ] %32 = getelementptr inbounds nuw i32, ptr %12, i64 %indvars.iv %33 = load i32, ptr %32, align 4 %34 = zext i32 %33 to i64 @@ -185,28 +174,29 @@ define hidden void @_Z13RemoveUVSeamsP6aiMeshP10aiVector3tIfE(ptr noundef readon %39 = trunc nuw i64 %indvars.iv to i32 %.175 = select i1 %37, i32 %39, i32 %.07488 %40 = and i1 %37, %not. - %.171 = select i1 %40, i1 true, i1 %.07090 - %41 = and i1 %37, %38 - %.1 = select i1 %41, i1 true, i1 %.06792 - %42 = fcmp ogt float %36, 0x3FECCCCCC0000000 - br i1 %42, label %43, label %46 - -43: ; preds = %31 - %44 = fcmp ult float %36, 0x3FEFAE1480000000 - br i1 %44, label %46, label %45 - -45: ; preds = %43 - br label %46 - -46: ; preds = %31, %45, %43 - %.173 = phi i32 [ %39, %45 ], [ %39, %43 ], [ %.07289, %31 ] - %.169 = phi i1 [ true, %45 ], [ %.06891, %43 ], [ %.06891, %31 ] + %.fr = freeze i1 %40 + %.171 = select i1 %.fr, i1 true, i1 %.07090 + %37 = and i1 %33, %34 + %.1 = select i1 %37, i1 true, i1 %.06792 + %38 = fcmp ogt float %36, 0x3FECCCCCC0000000 + br i1 %38, label %39, label %42 + +39:; preds = %31 + %40 = fcmp ult float %36, 0x3FEFAE1480000000 + br i1 %40, label %42, label %41 + +41:; preds = %39 + br label %42 + +42:; preds = %27, %41, %39 + %.169 = phi i32 [ %35, %41 ], [ %35, %39 ], [ %.07289, %27 ] + %.169 = phi i1 [ true, %41 ], [ %.06891, %39 ], [ %.06891, %27 ] %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 %13, label %31, !llvm.loop !6 .lr.ph.split: ; preds = %.lr.ph, %56 - %indvars.iv100 = phi i64 [ %indvars.iv.next101, %56 ], [ 0, %.lr.ph ] + %indvars.iv100 = phi i64 [ %indvars.iv.next101, %52 ], [ 0, %.lr.ph ] %47 = load ptr, ptr %11, align 8 %48 = getelementptr inbounds nuw i32, ptr %47, i64 %indvars.iv100 %49 = load i32, ptr %48, align 4 @@ -223,7 +213,7 @@ define hidden void @_Z13RemoveUVSeamsP6aiMeshP10aiVector3tIfE(ptr noundef readon br i1 %or.cond3, label %56, label %.sink.split110 .sink.split110: ; preds = %54, %.lr.ph.split - %.sink111 = phi float [ 0.000000e+00, %.lr.ph.split ], [ 1.000000e+00, %54 ] + %.sink111 = phi float [ 0.000000e+00, %.lr.ph.split ], [ 1.000000e+00, %50 ] store float %.sink111, ptr %51, align 4 br label %56 diff --git a/bench/boost/optimized/ipv6_address_rule.ll b/bench/boost/optimized/ipv6_address_rule.ll index 0a4630ea67e..576bfe7a881 100644 --- a/bench/boost/optimized/ipv6_address_rule.ll +++ b/bench/boost/optimized/ipv6_address_rule.ll @@ -90,7 +90,7 @@ define void @_ZNK5boost4urls22implementation_defined19ipv6_address_rule_t5parseE %.promoted = phi ptr [ %11, %4 ], [ %.promoted.pre, %.outer.backedge ] %.076.ph = phi ptr [ %11, %4 ], [ %.076.ph.be, %.outer.backedge ] %.074.ph = phi i1 [ false, %4 ], [ true, %.outer.backedge ] - %.072.ph = phi i32 [ -1, %4 ], [ %.072345, %.outer.backedge ] + %.072.ph = phi i32 [ -1, %4 ], [ %.072, %.outer.backedge ] %.0.ph = phi i32 [ 8, %4 ], [ %.0.ph.be, %.outer.backedge ] br label %12 @@ -295,7 +295,6 @@ _ZNKR5boost6system6resultINS_4urls6detail10h16_rule_t10value_typeENS0_10error_co br i1 %76, label %.thread245, label %.outer.backedge .outer.backedge: ; preds = %.cont195, %.cont - %.072345 = phi i32 [ %.072344, %.cont ], [ %.072, %.cont195 ] %.076.ph.be = phi ptr [ %13, %.cont ], [ %29, %.cont195 ] %.0.ph.be = phi i32 [ %159, %.cont ], [ %75, %.cont195 ] %.promoted.pre = load ptr, ptr %2, align 8, !tbaa !3 @@ -476,7 +475,6 @@ _ZN5boost4urls7grammar12hexdig_valueEc.exit: ; preds = %26 br i1 %.not273, label %_ZN5boost4urls7grammar12hexdig_valueEc.exit.thread, label %.thread258 _ZN5boost4urls7grammar12hexdig_valueEc.exit.thread: ; preds = %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %26, %_ZN5boost4urls7grammar12hexdig_valueEc.exit - %.072344 = phi i32 [ -1, %_ZN5boost4urls7grammar12hexdig_valueEc.exit ], [ %.072, %26 ], [ %.072, %26 ], [ %.072, %26 ], [ %.072, %26 ], [ %.072, %26 ], [ %.072, %26 ], [ %.072, %26 ], [ %.072, %26 ], [ %.072, %26 ], [ %.072, %26 ], [ %.072, %26 ], [ %.072, %26 ], [ %.072, %26 ], [ %.072, %26 ], [ %.072, %26 ], [ %.072, %26 ], [ %.072, %26 ], [ %.072, %26 ], [ %.072, %26 ], [ %.072, %26 ], [ %.072, %26 ], [ %.072, %26 ] br i1 %.074, label %161, label %145 145: ; preds = %_ZN5boost4urls7grammar12hexdig_valueEc.exit.thread @@ -558,9 +556,8 @@ _ZN5boost6system10error_codeC2ERKS1_PKNS_15source_locationE.exit132: ; preds = % br label %.thread232 .thread245: ; preds = %.cont, %.cont195, %.thread - %.072342 = phi i32 [ %.072, %.thread ], [ %.072344, %.cont ], [ %.072, %.cont195 ] %.1 = phi i32 [ %142, %.thread ], [ 0, %.cont195 ], [ 0, %.cont ] - %171 = icmp eq i32 %.072342, -1 + %171 = icmp eq i32 %.072, -1 br i1 %171, label %172, label %.thread258 172: ; preds = %.thread245 @@ -570,13 +567,12 @@ _ZN5boost6system10error_codeC2ERKS1_PKNS_15source_locationE.exit132: ; preds = % br label %.thread232 .thread258: ; preds = %_ZN5boost4urls7grammar12hexdig_valueEc.exit, %15, %.thread245 - %.072341 = phi i32 [ %.072342, %.thread245 ], [ %.072, %15 ], [ %.072, %_ZN5boost4urls7grammar12hexdig_valueEc.exit ] %.1262 = phi i32 [ %.1, %.thread245 ], [ %.0, %15 ], [ %.0, %_ZN5boost4urls7grammar12hexdig_valueEc.exit ] - %174 = icmp eq i32 %.072341, %.1262 + %174 = icmp eq i32 %.072, %.1262 br i1 %174, label %.thread258.thread, label %181 .thread258.thread: ; preds = %46, %.thread258 - %.1262267 = phi i32 [ %.072341, %.thread258 ], [ 0, %46 ] + %.1262267 = phi i32 [ %.072, %.thread258 ], [ 0, %46 ] %175 = shl i32 %.1262267, 1 %176 = sub i32 14, %175 %177 = sext i32 %176 to i64 @@ -587,7 +583,7 @@ _ZN5boost6system10error_codeC2ERKS1_PKNS_15source_locationE.exit132: ; preds = % br label %207 181: ; preds = %.thread258 - %182 = icmp eq i32 %.072341, 7 + %182 = icmp eq i32 %.072, 7 br i1 %182, label %183, label %191 183: ; preds = %181 @@ -603,9 +599,9 @@ _ZN5boost6system10error_codeC2ERKS1_PKNS_15source_locationE.exit132: ; preds = % br label %207 191: ; preds = %181 - %192 = shl i32 %.072341, 1 + %192 = shl i32 %.072, 1 %193 = sub i32 14, %192 - %194 = sub nsw i32 %.072341, %.1262 + %194 = sub nsw i32 %.072, %.1262 %195 = shl nsw i32 %194, 1 %196 = sub nsw i32 16, %195 %197 = sext i32 %196 to i64 diff --git a/bench/brotli/optimized/compress_fragment.ll b/bench/brotli/optimized/compress_fragment.ll index 6df11ed2523..0fb3fdb507c 100644 --- a/bench/brotli/optimized/compress_fragment.ll +++ b/bench/brotli/optimized/compress_fragment.ll @@ -332,14 +332,13 @@ UpdateBits.exit: ; preds = %UpdateBits.exit.loo %.0340.i = phi i32 [ -1, %108 ], [ %.0340.i.be, %.thread74.backedge ] %.0.i.pn = phi ptr [ %.0.i, %108 ], [ %.1325.i.be, %.thread74.backedge ] %.1325.i = phi ptr [ %.0324.i, %108 ], [ %.1325.i.be, %.thread74.backedge ] - %.0340.i.fr = freeze i32 %.0340.i %.0335.i = getelementptr inbounds nuw i8, ptr %.0.i.pn, i64 1 %.0348.i.in.in.in = load i64, ptr %.0335.i, align 1 %.0348.i.in.in = mul i64 %.0348.i.in.in.in, 8503243848024064 %.0348.i.in = lshr i64 %.0348.i.in.in, 55 - %115 = sext i32 %.0340.i.fr to i64 + %115 = sext i32 %.0340.i to i64 %116 = sub nsw i64 0, %115 - %117 = icmp sgt i32 %.0340.i.fr, 0 + %117 = icmp sgt i32 %.0340.i, 0 br i1 %117, label %.split.us.preheader, label %.split .split.us.preheader: ; preds = %.thread74 @@ -861,7 +860,7 @@ EmitInsertLen.exit: ; preds = %378, %353, %319, %2 br i1 %exitcond.not, label %EmitLiterals.exit, label %403, !llvm.loop !149 EmitLiterals.exit: ; preds = %403, %EmitInsertLen.exit - %423 = icmp eq i32 %.0340.i.fr, %215 + %423 = icmp eq i32 %.0340.i, %215 br i1 %423, label %424, label %440 424: ; preds = %EmitLiterals.exit @@ -941,7 +940,7 @@ EmitLiterals.exit: ; preds = %403, %EmitInsertLen 484: ; preds = %440, %424 %485 = phi i64 [ %437, %424 ], [ %480, %440 ] - %.3343.i = phi i32 [ %.0340.i.fr, %424 ], [ %215, %440 ] + %.3343.i = phi i32 [ %.0340.i, %424 ], [ %215, %440 ] store i64 %485, ptr %5, align 8, !tbaa !3, !noalias !33 %486 = icmp ult i64 %214, 12 br i1 %486, label %487, label %506 @@ -2340,14 +2339,13 @@ UpdateBits.exit: ; preds = %UpdateBits.exit.loo %.0340.i = phi i32 [ -1, %108 ], [ %.0340.i.be, %.thread74.backedge ] %.0.i.pn = phi ptr [ %.0.i, %108 ], [ %.1325.i.be, %.thread74.backedge ] %.1325.i = phi ptr [ %.0324.i, %108 ], [ %.1325.i.be, %.thread74.backedge ] - %.0340.i.fr = freeze i32 %.0340.i %.0335.i = getelementptr inbounds nuw i8, ptr %.0.i.pn, i64 1 %.0348.i.in.in.in = load i64, ptr %.0335.i, align 1 %.0348.i.in.in = mul i64 %.0348.i.in.in.in, 8503243848024064 %.0348.i.in = lshr i64 %.0348.i.in.in, 53 - %115 = sext i32 %.0340.i.fr to i64 + %115 = sext i32 %.0340.i to i64 %116 = sub nsw i64 0, %115 - %117 = icmp sgt i32 %.0340.i.fr, 0 + %117 = icmp sgt i32 %.0340.i, 0 br i1 %117, label %.split.us.preheader, label %.split .split.us.preheader: ; preds = %.thread74 @@ -2869,7 +2867,7 @@ EmitInsertLen.exit: ; preds = %378, %353, %319, %2 br i1 %exitcond.not, label %EmitLiterals.exit, label %403, !llvm.loop !149 EmitLiterals.exit: ; preds = %403, %EmitInsertLen.exit - %423 = icmp eq i32 %.0340.i.fr, %215 + %423 = icmp eq i32 %.0340.i, %215 br i1 %423, label %424, label %440 424: ; preds = %EmitLiterals.exit @@ -2949,7 +2947,7 @@ EmitLiterals.exit: ; preds = %403, %EmitInsertLen 484: ; preds = %440, %424 %485 = phi i64 [ %437, %424 ], [ %480, %440 ] - %.3343.i = phi i32 [ %.0340.i.fr, %424 ], [ %215, %440 ] + %.3343.i = phi i32 [ %.0340.i, %424 ], [ %215, %440 ] store i64 %485, ptr %5, align 8, !tbaa !3, !noalias !33 %486 = icmp ult i64 %214, 12 br i1 %486, label %487, label %506 @@ -4348,14 +4346,13 @@ UpdateBits.exit: ; preds = %UpdateBits.exit.loo %.0340.i = phi i32 [ -1, %108 ], [ %.0340.i.be, %.thread74.backedge ] %.0.i.pn = phi ptr [ %.0.i, %108 ], [ %.1325.i.be, %.thread74.backedge ] %.1325.i = phi ptr [ %.0324.i, %108 ], [ %.1325.i.be, %.thread74.backedge ] - %.0340.i.fr = freeze i32 %.0340.i %.0335.i = getelementptr inbounds nuw i8, ptr %.0.i.pn, i64 1 %.0348.i.in.in.in = load i64, ptr %.0335.i, align 1 %.0348.i.in.in = mul i64 %.0348.i.in.in.in, 8503243848024064 %.0348.i.in = lshr i64 %.0348.i.in.in, 51 - %115 = sext i32 %.0340.i.fr to i64 + %115 = sext i32 %.0340.i to i64 %116 = sub nsw i64 0, %115 - %117 = icmp sgt i32 %.0340.i.fr, 0 + %117 = icmp sgt i32 %.0340.i, 0 br i1 %117, label %.split.us.preheader, label %.split .split.us.preheader: ; preds = %.thread74 @@ -4877,7 +4874,7 @@ EmitInsertLen.exit: ; preds = %378, %353, %319, %2 br i1 %exitcond.not, label %EmitLiterals.exit, label %403, !llvm.loop !149 EmitLiterals.exit: ; preds = %403, %EmitInsertLen.exit - %423 = icmp eq i32 %.0340.i.fr, %215 + %423 = icmp eq i32 %.0340.i, %215 br i1 %423, label %424, label %440 424: ; preds = %EmitLiterals.exit @@ -4957,7 +4954,7 @@ EmitLiterals.exit: ; preds = %403, %EmitInsertLen 484: ; preds = %440, %424 %485 = phi i64 [ %437, %424 ], [ %480, %440 ] - %.3343.i = phi i32 [ %.0340.i.fr, %424 ], [ %215, %440 ] + %.3343.i = phi i32 [ %.0340.i, %424 ], [ %215, %440 ] store i64 %485, ptr %5, align 8, !tbaa !3, !noalias !33 %486 = icmp ult i64 %214, 12 br i1 %486, label %487, label %506 @@ -6356,14 +6353,13 @@ UpdateBits.exit: ; preds = %UpdateBits.exit.loo %.0340.i = phi i32 [ -1, %108 ], [ %.0340.i.be, %.thread74.backedge ] %.0.i.pn = phi ptr [ %.0.i, %108 ], [ %.1325.i.be, %.thread74.backedge ] %.1325.i = phi ptr [ %.0324.i, %108 ], [ %.1325.i.be, %.thread74.backedge ] - %.0340.i.fr = freeze i32 %.0340.i %.0335.i = getelementptr inbounds nuw i8, ptr %.0.i.pn, i64 1 %.0348.i.in.in.in = load i64, ptr %.0335.i, align 1 %.0348.i.in.in = mul i64 %.0348.i.in.in.in, 8503243848024064 %.0348.i.in = lshr i64 %.0348.i.in.in, 49 - %115 = sext i32 %.0340.i.fr to i64 + %115 = sext i32 %.0340.i to i64 %116 = sub nsw i64 0, %115 - %117 = icmp sgt i32 %.0340.i.fr, 0 + %117 = icmp sgt i32 %.0340.i, 0 br i1 %117, label %.split.us.preheader, label %.split .split.us.preheader: ; preds = %.thread74 @@ -6885,7 +6881,7 @@ EmitInsertLen.exit: ; preds = %378, %353, %319, %2 br i1 %exitcond.not, label %EmitLiterals.exit, label %403, !llvm.loop !149 EmitLiterals.exit: ; preds = %403, %EmitInsertLen.exit - %423 = icmp eq i32 %.0340.i.fr, %215 + %423 = icmp eq i32 %.0340.i, %215 br i1 %423, label %424, label %440 424: ; preds = %EmitLiterals.exit @@ -6965,7 +6961,7 @@ EmitLiterals.exit: ; preds = %403, %EmitInsertLen 484: ; preds = %440, %424 %485 = phi i64 [ %437, %424 ], [ %480, %440 ] - %.3343.i = phi i32 [ %.0340.i.fr, %424 ], [ %215, %440 ] + %.3343.i = phi i32 [ %.0340.i, %424 ], [ %215, %440 ] store i64 %485, ptr %5, align 8, !tbaa !3, !noalias !33 %486 = icmp ult i64 %214, 12 br i1 %486, label %487, label %506 diff --git a/bench/c3c/optimized/parse_expr.ll b/bench/c3c/optimized/parse_expr.ll index b958788eade..ddd7aa0da9f 100644 --- a/bench/c3c/optimized/parse_expr.ll +++ b/bench/c3c/optimized/parse_expr.ll @@ -2452,7 +2452,7 @@ define dso_local ptr @parse_integer(ptr noundef %0, ptr readnone captures(none) %82 = tail call { i64, i64 } @i128_add64(i64 %74, i64 %75, i64 noundef %81) #8 %83 = extractvalue { i64, i64 } %82, 0 %84 = extractvalue { i64, i64 } %82, 1 - %85 = add nsw i32 %.0213508, 1 + %85 = add i32 %.0213508, 1 br label %86 86: ; preds = %.lr.ph511, %71 @@ -3150,7 +3150,6 @@ read_int_suffix.exit: ; preds = %312, %294, %.lr.ph. %.0208 = phi i1 [ true, %29 ], [ true, %._crit_edge.i ], [ true, %.preheader.i14.i ], [ false, %50 ], [ false, %.preheader.i.i264 ], [ false, %67 ], [ true, %92 ], [ true, %96 ], [ true, %.preheader.i.i279 ], [ true, %113 ], [ true, %119 ], [ true, %._crit_edge.i270 ], [ true, %.preheader.i14.i271 ], [ false, %140 ], [ false, %144 ], [ false, %.preheader.i.i294 ], [ false, %161 ], [ false, %167 ], [ false, %._crit_edge.i285 ], [ false, %.preheader.i14.i286 ], [ true, %205 ], [ true, %209 ], [ true, %.preheader.i.i309 ], [ true, %226 ], [ true, %232 ], [ true, %._crit_edge.i300 ], [ true, %.preheader.i14.i301 ], [ false, %253 ], [ false, %257 ], [ false, %.preheader.i.i324 ], [ false, %274 ], [ false, %280 ], [ false, %._crit_edge.i315 ], [ false, %.preheader.i14.i316 ], [ true, %318 ], [ true, %322 ], [ true, %.preheader.i.i339 ], [ true, %339 ], [ true, %345 ], [ true, %._crit_edge.i330 ], [ true, %.preheader.i14.i331 ], [ false, %366 ], [ false, %370 ], [ false, %.preheader.i.i354 ], [ false, %387 ], [ false, %393 ], [ false, %._crit_edge.i345 ], [ false, %.preheader.i14.i346 ], [ true, %.lr.ph.i.i340 ], [ true, %332 ], [ true, %.lr.ph.i16.i333 ], [ true, %359 ], [ false, %.lr.ph.i.i355 ], [ false, %380 ], [ false, %.lr.ph.i16.i348 ], [ false, %407 ], [ false, %425 ], [ true, %.lr.ph.i16.i ], [ true, %43 ], [ false, %.lr.ph.i.i265 ], [ false, %60 ], [ true, %86 ], [ true, %.lr.ph.i.i280 ], [ true, %106 ], [ true, %.lr.ph.i16.i273 ], [ true, %133 ], [ false, %.lr.ph.i.i295 ], [ false, %154 ], [ false, %.lr.ph.i16.i288 ], [ false, %181 ], [ true, %199 ], [ true, %.lr.ph.i.i310 ], [ true, %219 ], [ true, %.lr.ph.i16.i303 ], [ true, %246 ], [ false, %.lr.ph.i.i325 ], [ false, %267 ], [ false, %.lr.ph.i16.i318 ], [ false, %294 ], [ true, %312 ] %.sroa.26.1 = phi i64 [ %.sroa.26.0509, %29 ], [ %.sroa.26.0509, %._crit_edge.i ], [ %.sroa.26.0509, %.preheader.i14.i ], [ %.sroa.26.0509, %50 ], [ %.sroa.26.0509, %.preheader.i.i264 ], [ %.sroa.26.0509, %67 ], [ %.sroa.26.3499, %92 ], [ %.sroa.26.3499, %96 ], [ %.sroa.26.3499, %.preheader.i.i279 ], [ %.sroa.26.3499, %113 ], [ %.sroa.26.3499, %119 ], [ %.sroa.26.3499, %._crit_edge.i270 ], [ %.sroa.26.3499, %.preheader.i14.i271 ], [ %.sroa.26.3499, %140 ], [ %.sroa.26.3499, %144 ], [ %.sroa.26.3499, %.preheader.i.i294 ], [ %.sroa.26.3499, %161 ], [ %.sroa.26.3499, %167 ], [ %.sroa.26.3499, %._crit_edge.i285 ], [ %.sroa.26.3499, %.preheader.i14.i286 ], [ %.sroa.26.5491, %205 ], [ %.sroa.26.5491, %209 ], [ %.sroa.26.5491, %.preheader.i.i309 ], [ %.sroa.26.5491, %226 ], [ %.sroa.26.5491, %232 ], [ %.sroa.26.5491, %._crit_edge.i300 ], [ %.sroa.26.5491, %.preheader.i14.i301 ], [ %.sroa.26.5491, %253 ], [ %.sroa.26.5491, %257 ], [ %.sroa.26.5491, %.preheader.i.i324 ], [ %.sroa.26.5491, %274 ], [ %.sroa.26.5491, %280 ], [ %.sroa.26.5491, %._crit_edge.i315 ], [ %.sroa.26.5491, %.preheader.i14.i316 ], [ %.sroa.26.7518, %318 ], [ %.sroa.26.7518, %322 ], [ %.sroa.26.7518, %.preheader.i.i339 ], [ %.sroa.26.7518, %339 ], [ %.sroa.26.7518, %345 ], [ %.sroa.26.7518, %._crit_edge.i330 ], [ %.sroa.26.7518, %.preheader.i14.i331 ], [ %.sroa.26.7518, %366 ], [ %.sroa.26.7518, %370 ], [ %.sroa.26.7518, %.preheader.i.i354 ], [ %.sroa.26.7518, %387 ], [ %.sroa.26.7518, %393 ], [ %.sroa.26.7518, %._crit_edge.i345 ], [ %.sroa.26.7518, %.preheader.i14.i346 ], [ %.sroa.26.7518, %.lr.ph.i.i340 ], [ %.sroa.26.7518, %332 ], [ %.sroa.26.7518, %.lr.ph.i16.i333 ], [ %.sroa.26.7518, %359 ], [ %.sroa.26.7518, %.lr.ph.i.i355 ], [ %.sroa.26.7518, %380 ], [ %.sroa.26.7518, %.lr.ph.i16.i348 ], [ %.sroa.26.7518, %407 ], [ %.sroa.26.8, %425 ], [ %.sroa.26.0509, %.lr.ph.i16.i ], [ %.sroa.26.0509, %43 ], [ %.sroa.26.0509, %.lr.ph.i.i265 ], [ %.sroa.26.0509, %60 ], [ %.sroa.26.2, %86 ], [ %.sroa.26.3499, %.lr.ph.i.i280 ], [ %.sroa.26.3499, %106 ], [ %.sroa.26.3499, %.lr.ph.i16.i273 ], [ %.sroa.26.3499, %133 ], [ %.sroa.26.3499, %.lr.ph.i.i295 ], [ %.sroa.26.3499, %154 ], [ %.sroa.26.3499, %.lr.ph.i16.i288 ], [ %.sroa.26.3499, %181 ], [ %.sroa.26.4, %199 ], [ %.sroa.26.5491, %.lr.ph.i.i310 ], [ %.sroa.26.5491, %219 ], [ %.sroa.26.5491, %.lr.ph.i16.i303 ], [ %.sroa.26.5491, %246 ], [ %.sroa.26.5491, %.lr.ph.i.i325 ], [ %.sroa.26.5491, %267 ], [ %.sroa.26.5491, %.lr.ph.i16.i318 ], [ %.sroa.26.5491, %294 ], [ %.sroa.26.6, %312 ] %.sroa.0119.1 = phi i64 [ %.sroa.0119.0510, %29 ], [ %.sroa.0119.0510, %._crit_edge.i ], [ %.sroa.0119.0510, %.preheader.i14.i ], [ %.sroa.0119.0510, %50 ], [ %.sroa.0119.0510, %.preheader.i.i264 ], [ %.sroa.0119.0510, %67 ], [ %.sroa.0119.3500, %92 ], [ %.sroa.0119.3500, %96 ], [ %.sroa.0119.3500, %.preheader.i.i279 ], [ %.sroa.0119.3500, %113 ], [ %.sroa.0119.3500, %119 ], [ %.sroa.0119.3500, %._crit_edge.i270 ], [ %.sroa.0119.3500, %.preheader.i14.i271 ], [ %.sroa.0119.3500, %140 ], [ %.sroa.0119.3500, %144 ], [ %.sroa.0119.3500, %.preheader.i.i294 ], [ %.sroa.0119.3500, %161 ], [ %.sroa.0119.3500, %167 ], [ %.sroa.0119.3500, %._crit_edge.i285 ], [ %.sroa.0119.3500, %.preheader.i14.i286 ], [ %.sroa.0119.5492, %205 ], [ %.sroa.0119.5492, %209 ], [ %.sroa.0119.5492, %.preheader.i.i309 ], [ %.sroa.0119.5492, %226 ], [ %.sroa.0119.5492, %232 ], [ %.sroa.0119.5492, %._crit_edge.i300 ], [ %.sroa.0119.5492, %.preheader.i14.i301 ], [ %.sroa.0119.5492, %253 ], [ %.sroa.0119.5492, %257 ], [ %.sroa.0119.5492, %.preheader.i.i324 ], [ %.sroa.0119.5492, %274 ], [ %.sroa.0119.5492, %280 ], [ %.sroa.0119.5492, %._crit_edge.i315 ], [ %.sroa.0119.5492, %.preheader.i14.i316 ], [ %.sroa.0119.7519, %318 ], [ %.sroa.0119.7519, %322 ], [ %.sroa.0119.7519, %.preheader.i.i339 ], [ %.sroa.0119.7519, %339 ], [ %.sroa.0119.7519, %345 ], [ %.sroa.0119.7519, %._crit_edge.i330 ], [ %.sroa.0119.7519, %.preheader.i14.i331 ], [ %.sroa.0119.7519, %366 ], [ %.sroa.0119.7519, %370 ], [ %.sroa.0119.7519, %.preheader.i.i354 ], [ %.sroa.0119.7519, %387 ], [ %.sroa.0119.7519, %393 ], [ %.sroa.0119.7519, %._crit_edge.i345 ], [ %.sroa.0119.7519, %.preheader.i14.i346 ], [ %.sroa.0119.7519, %.lr.ph.i.i340 ], [ %.sroa.0119.7519, %332 ], [ %.sroa.0119.7519, %.lr.ph.i16.i333 ], [ %.sroa.0119.7519, %359 ], [ %.sroa.0119.7519, %.lr.ph.i.i355 ], [ %.sroa.0119.7519, %380 ], [ %.sroa.0119.7519, %.lr.ph.i16.i348 ], [ %.sroa.0119.7519, %407 ], [ %.sroa.0119.8, %425 ], [ %.sroa.0119.0510, %.lr.ph.i16.i ], [ %.sroa.0119.0510, %43 ], [ %.sroa.0119.0510, %.lr.ph.i.i265 ], [ %.sroa.0119.0510, %60 ], [ %.sroa.0119.2, %86 ], [ %.sroa.0119.3500, %.lr.ph.i.i280 ], [ %.sroa.0119.3500, %106 ], [ %.sroa.0119.3500, %.lr.ph.i16.i273 ], [ %.sroa.0119.3500, %133 ], [ %.sroa.0119.3500, %.lr.ph.i.i295 ], [ %.sroa.0119.3500, %154 ], [ %.sroa.0119.3500, %.lr.ph.i16.i288 ], [ %.sroa.0119.3500, %181 ], [ %.sroa.0119.4, %199 ], [ %.sroa.0119.5492, %.lr.ph.i.i310 ], [ %.sroa.0119.5492, %219 ], [ %.sroa.0119.5492, %.lr.ph.i16.i303 ], [ %.sroa.0119.5492, %246 ], [ %.sroa.0119.5492, %.lr.ph.i.i325 ], [ %.sroa.0119.5492, %267 ], [ %.sroa.0119.5492, %.lr.ph.i16.i318 ], [ %.sroa.0119.5492, %294 ], [ %.sroa.0119.6, %312 ] - %.1214.fr = freeze i32 %.1214 %427 = trunc nuw i8 %.1223 to i1 br i1 %427, label %428, label %431 @@ -3164,7 +3163,7 @@ read_int_suffix.exit: ; preds = %312, %294, %.lr.ph. %432 = getelementptr inbounds nuw i8, ptr %6, i64 24 %433 = load i16, ptr %432, align 8 %434 = and i16 %433, -1024 - %435 = icmp sgt i32 %.1214.fr, 0 + %435 = icmp sgt i32 %.1214, 0 %spec.select829 = select i1 %435, i16 512, i16 0 %436 = or disjoint i16 %434, %spec.select829 %437 = or disjoint i16 %436, 1 @@ -3190,22 +3189,22 @@ is_power_of_two.exit: ; preds = %438 br label %528 446: ; preds = %431 - %.not241 = icmp eq i32 %.1214.fr, 0 + %.not241 = icmp eq i32 %.1214, 0 br i1 %.not241, label %453, label %447 447: ; preds = %446 - %448 = shl nsw i32 %.1214.fr, 2 - %449 = icmp sgt i32 %.1214.fr, 32 + %448 = shl nsw i32 %.1214, 2 + %449 = icmp sgt i32 %.1214, 32 br i1 %449, label %450, label %453 450: ; preds = %447 %451 = load i64, ptr %4, align 8 - tail call void (i64, ptr, ...) @sema_error_at(i64 %451, ptr noundef nonnull @.str.11, i32 noundef %.1214.fr) #8 + tail call void (i64, ptr, ...) @sema_error_at(i64 %451, ptr noundef nonnull @.str.11, i32 noundef %.1214) #8 %452 = load ptr, ptr @poisoned_expr, align 8 br label %528 453: ; preds = %447, %446 - %.1214624643663683 = phi i32 [ %.1214.fr, %447 ], [ 0, %446 ] + %.1214624643663683 = phi i32 [ %.1214, %447 ], [ 0, %446 ] %.2 = phi i32 [ %448, %447 ], [ 0, %446 ] %.not242 = icmp eq i32 %.0216, 0 br i1 %.not242, label %460, label %454 @@ -3267,7 +3266,7 @@ is_power_of_two.exit362: ; preds = %466 br i1 %.0208, label %485, label %488 .thread369: ; preds = %is_power_of_two.exit362, %is_power_of_two.exit - %.1214624643662 = phi i32 [ %.1214.fr, %is_power_of_two.exit ], [ %.1214624643663683, %is_power_of_two.exit362 ] + %.1214624643662 = phi i32 [ %.1214, %is_power_of_two.exit ], [ %.1214624643663683, %is_power_of_two.exit362 ] %.0216623644659 = phi i32 [ %.0216, %is_power_of_two.exit ], [ %.0216623644660684696, %is_power_of_two.exit362 ] %.0219622645656 = phi i32 [ %.0219, %is_power_of_two.exit ], [ %.0219622645657685695715, %is_power_of_two.exit362 ] %.1372 = phi i32 [ %.0210, %is_power_of_two.exit ], [ %467, %is_power_of_two.exit362 ] diff --git a/bench/clamav/optimized/list.ll b/bench/clamav/optimized/list.ll index 533e9aeb32d..487494fa921 100644 --- a/bench/clamav/optimized/list.ll +++ b/bench/clamav/optimized/list.ll @@ -106,7 +106,7 @@ define void @_Z11ListArchiveP11CommandData(ptr noundef %0) local_unnamed_addr #0 40: ; preds = %.lr.ph, %.thread166 %.0280 = phi i64 [ 0, %.lr.ph ], [ %.1, %.thread166 ] %.095279 = phi i64 [ 0, %.lr.ph ], [ %.196, %.thread166 ] - %.0137278 = phi i32 [ 0, %.lr.ph ], [ %150, %.thread166 ] + %.0137278 = phi i32 [ 0, %.lr.ph ], [ %.1138, %.thread166 ] %41 = load i8, ptr %24, align 2, !tbaa !7, !range !26, !noundef !27 %42 = trunc nuw i8 %41 to i1 br i1 %42, label %43, label %44 @@ -460,7 +460,6 @@ define void @_Z11ListArchiveP11CommandData(ptr noundef %0) local_unnamed_addr #0 %.1138 = phi i32 [ %.0137278, %46 ], [ %133, %.thread175 ], [ %.2139, %50 ] %.196 = phi i64 [ %.095279, %46 ], [ %.398, %.thread175 ], [ %.297, %50 ] %.1 = phi i64 [ %.0280, %46 ], [ %.3, %.thread175 ], [ %.2, %50 ] - %150 = freeze i32 %.1138 call void @_ZN7ArchiveD1Ev(ptr noundef nonnull align 8 dereferenceable(57108) %3) #6 call void @llvm.lifetime.end.p0(i64 57112, ptr nonnull %3) #6 %151 = call noundef zeroext i1 @_ZN11CommandData10GetArcNameEPwi(ptr noundef nonnull align 8 dereferenceable(100904) %0, ptr noundef nonnull %2, i32 noundef 2048) @@ -474,7 +473,7 @@ define void @_Z11ListArchiveP11CommandData(ptr noundef %0) local_unnamed_addr #0 resume { ptr, i32 } %.pn152.pn.pn.pn ._crit_edge.loopexit: ; preds = %.thread166 - %153 = icmp ult i32 %150, 2 + %153 = icmp ult i32 %.1138, 2 br label %._crit_edge ._crit_edge: ; preds = %._crit_edge.loopexit, %19 @@ -495,7 +494,7 @@ define void @_Z11ListArchiveP11CommandData(ptr noundef %0) local_unnamed_addr #0 br i1 %.0137.lcssa, label %164, label %switch.early.test switch.early.test: ; preds = %159 - switch i32 %13, label %160 [ + switch i32 %13, label %159 [ i32 84, label %164 i32 66, label %164 ] diff --git a/bench/clap-rs/optimized/5651dp9k16h53y8x.ll b/bench/clap-rs/optimized/5651dp9k16h53y8x.ll index 4e928d37ab5..229f0b33724 100644 --- a/bench/clap-rs/optimized/5651dp9k16h53y8x.ll +++ b/bench/clap-rs/optimized/5651dp9k16h53y8x.ll @@ -3811,7 +3811,7 @@ _ZN13anstyle_parse5state12state_change17h79664e659a8016d1E.exit.i.i.i.i.i: ; pre "_ZN104_$LT$core..iter..adapters..copied..Copied$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h2a010e15f52daa72E.exit.thread": ; preds = %2, %"_ZN104_$LT$core..iter..adapters..copied..Copied$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h2a010e15f52daa72E.exit" %switch54 = phi i64 [ %.020.i.i, %"_ZN104_$LT$core..iter..adapters..copied..Copied$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h2a010e15f52daa72E.exit" ], [ 0, %2 ] %30 = getelementptr inbounds i8, ptr %3, i64 %switch54 - %31 = sub nuw i64 %5, %switch54 + %31 = sub i64 %5, %switch54 store ptr %30, ptr %0, align 8 store i64 %31, ptr %4, align 8 store i8 12, ptr %1, align 1 @@ -3888,17 +3888,16 @@ _ZN13anstyle_parse5state12state_change17h79664e659a8016d1E.exit.i.i.i.i.i46: ; p "_ZN104_$LT$core..iter..adapters..copied..Copied$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h3be62512fddc7e1dE.exit.thread": ; preds = %.backedge.i.i, %"_ZN104_$LT$core..iter..adapters..copied..Copied$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h3be62512fddc7e1dE.exit" %switch3957 = phi i64 [ %switch39, %"_ZN104_$LT$core..iter..adapters..copied..Copied$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h3be62512fddc7e1dE.exit" ], [ %31, %.backedge.i.i ] - %switch3957.fr = freeze i64 %switch3957 - %49 = getelementptr inbounds i8, ptr %30, i64 %switch3957.fr - %50 = sub nuw i64 %31, %switch3957.fr + %49 = getelementptr inbounds i8, ptr %30, i64 %switch3957 + %50 = sub nuw i64 %31, %switch3957 store ptr %49, ptr %0, align 8 store i64 %50, ptr %4, align 8 - %51 = icmp eq i64 %switch3957.fr, 0 + %51 = icmp eq i64 %switch3957, 0 %spec.select = select i1 %51, ptr null, ptr %30 br label %52 52: ; preds = %"_ZN104_$LT$core..iter..adapters..copied..Copied$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h3be62512fddc7e1dE.exit.thread", %"_ZN104_$LT$core..iter..adapters..copied..Copied$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h3be62512fddc7e1dE.exit.thread.thread" - %switch395762 = phi i64 [ 0, %"_ZN104_$LT$core..iter..adapters..copied..Copied$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h3be62512fddc7e1dE.exit.thread.thread" ], [ %switch3957.fr, %"_ZN104_$LT$core..iter..adapters..copied..Copied$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h3be62512fddc7e1dE.exit.thread" ] + %switch395762 = phi i64 [ 0, %"_ZN104_$LT$core..iter..adapters..copied..Copied$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h3be62512fddc7e1dE.exit.thread.thread" ], [ %switch3957, %"_ZN104_$LT$core..iter..adapters..copied..Copied$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h3be62512fddc7e1dE.exit.thread" ] %53 = phi ptr [ null, %"_ZN104_$LT$core..iter..adapters..copied..Copied$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h3be62512fddc7e1dE.exit.thread.thread" ], [ %spec.select, %"_ZN104_$LT$core..iter..adapters..copied..Copied$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h3be62512fddc7e1dE.exit.thread" ] %54 = insertvalue { ptr, i64 } poison, ptr %53, 0 %55 = insertvalue { ptr, i64 } %54, i64 %switch395762, 1 diff --git a/bench/clap-rs/optimized/rh1bh36cvgkzipt.ll b/bench/clap-rs/optimized/rh1bh36cvgkzipt.ll index 6a4307465a7..b0be4411e12 100644 --- a/bench/clap-rs/optimized/rh1bh36cvgkzipt.ll +++ b/bench/clap-rs/optimized/rh1bh36cvgkzipt.ll @@ -2195,10 +2195,9 @@ define hidden { i64, i64 } @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$ br i1 %12, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17hb8e581e5a3fef0d9E.llvm.16538095213602398362.exit, label %5 _ZN4core4iter6traits8iterator8Iterator8try_fold17hb8e581e5a3fef0d9E.llvm.16538095213602398362.exit: ; preds = %5, %8 - %.sroa.3.0.i = phi i64 [ undef, %8 ], [ %.0.i, %5 ] %.sroa.0.0.i = phi i64 [ 0, %8 ], [ 1, %5 ] %14 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0.i, 0 - %15 = insertvalue { i64, i64 } %14, i64 %.sroa.3.0.i, 1 + %15 = insertvalue { i64, i64 } %14, i64 %.0.i, 1 ret { i64, i64 } %15 } @@ -2369,10 +2368,9 @@ define hidden { i64, i64 } @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$ br i1 %12, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h5ebf505020e22616E.llvm.16538095213602398362.exit, label %5 _ZN4core4iter6traits8iterator8Iterator8try_fold17h5ebf505020e22616E.llvm.16538095213602398362.exit: ; preds = %5, %8 - %.sroa.3.0.i = phi i64 [ undef, %8 ], [ %.0.i, %5 ] %.sroa.0.0.i = phi i64 [ 0, %8 ], [ 1, %5 ] %14 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0.i, 0 - %15 = insertvalue { i64, i64 } %14, i64 %.sroa.3.0.i, 1 + %15 = insertvalue { i64, i64 } %14, i64 %.0.i, 1 ret { i64, i64 } %15 } @@ -2593,10 +2591,9 @@ define hidden { i64, i64 } @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$ br i1 %12, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17hde81a876564a26adE.llvm.16538095213602398362.exit, label %5 _ZN4core4iter6traits8iterator8Iterator8try_fold17hde81a876564a26adE.llvm.16538095213602398362.exit: ; preds = %5, %8 - %.sroa.3.0.i = phi i64 [ undef, %8 ], [ %.0.i, %5 ] %.sroa.0.0.i = phi i64 [ 0, %8 ], [ 1, %5 ] %14 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0.i, 0 - %15 = insertvalue { i64, i64 } %14, i64 %.sroa.3.0.i, 1 + %15 = insertvalue { i64, i64 } %14, i64 %.0.i, 1 ret { i64, i64 } %15 } @@ -5628,10 +5625,9 @@ define hidden { i64, i64 } @_ZN4core4iter6traits8iterator8Iterator8try_fold17h5e br i1 %13, label %15, label %6 15: ; preds = %6, %9 - %.sroa.3.0 = phi i64 [ undef, %9 ], [ %.0, %6 ] %.sroa.0.0 = phi i64 [ 0, %9 ], [ 1, %6 ] %16 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0, 0 - %17 = insertvalue { i64, i64 } %16, i64 %.sroa.3.0, 1 + %17 = insertvalue { i64, i64 } %16, i64 %.0, 1 ret { i64, i64 } %17 } @@ -6582,10 +6578,9 @@ define hidden { i64, i64 } @_ZN4core4iter6traits8iterator8Iterator8try_fold17hb8 br i1 %13, label %15, label %6 15: ; preds = %6, %9 - %.sroa.3.0 = phi i64 [ undef, %9 ], [ %.0, %6 ] %.sroa.0.0 = phi i64 [ 0, %9 ], [ 1, %6 ] %16 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0, 0 - %17 = insertvalue { i64, i64 } %16, i64 %.sroa.3.0, 1 + %17 = insertvalue { i64, i64 } %16, i64 %.0, 1 ret { i64, i64 } %17 } @@ -6765,10 +6760,9 @@ define hidden { i64, i64 } @_ZN4core4iter6traits8iterator8Iterator8try_fold17hde br i1 %13, label %15, label %6 15: ; preds = %6, %9 - %.sroa.3.0 = phi i64 [ undef, %9 ], [ %.0, %6 ] %.sroa.0.0 = phi i64 [ 0, %9 ], [ 1, %6 ] %16 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0, 0 - %17 = insertvalue { i64, i64 } %16, i64 %.sroa.3.0, 1 + %17 = insertvalue { i64, i64 } %16, i64 %.0, 1 ret { i64, i64 } %17 } diff --git a/bench/coreutils-rs/optimized/jiqj5u7teuhb0o0.ll b/bench/coreutils-rs/optimized/jiqj5u7teuhb0o0.ll index cfe0d64e17c..81c6eb64284 100644 --- a/bench/coreutils-rs/optimized/jiqj5u7teuhb0o0.ll +++ b/bench/coreutils-rs/optimized/jiqj5u7teuhb0o0.ll @@ -3404,24 +3404,23 @@ define void @_ZN6uucore8features4mode14parse_symbolic17h114aebf567def38aE(ptr no _ZN6uucore8features4mode12parse_levels17h5bbba3b4385c9c7fE.exit: ; preds = %50, %54 %.013.lcssa.i = phi i32 [ %.01324.i, %50 ], [ %55, %54 ] %.0.lcssa.i = phi i64 [ %.025.i, %50 ], [ %56, %54 ] - %.0.lcssa.fr.i = freeze i64 %.0.lcssa.i - %58 = icmp eq i64 %.0.lcssa.fr.i, 0 + %58 = icmp eq i64 %.0.lcssa.i, 0 %spec.select.i = select i1 %58, i32 4095, i32 %.013.lcssa.i - %59 = icmp eq i64 %.0.lcssa.fr.i, %3 + %59 = icmp eq i64 %.0.lcssa.i, %3 br i1 %59, label %_ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit, label %60 60: ; preds = %_ZN6uucore8features4mode12parse_levels17h5bbba3b4385c9c7fE.exit br i1 %58, label %.lr.ph, label %61 61: ; preds = %60 - %.not.i.i = icmp ult i64 %.0.lcssa.fr.i, %3 + %.not.i.i = icmp ult i64 %.0.lcssa.i, %3 br i1 %.not.i.i, label %"_ZN4core3str21_$LT$impl$u20$str$GT$16is_char_boundary17ha03ab45daa8167cbE.exit.i", label %67 "_ZN4core3str21_$LT$impl$u20$str$GT$16is_char_boundary17ha03ab45daa8167cbE.exit.i": ; preds = %61 - %62 = getelementptr inbounds i8, ptr %2, i64 %.0.lcssa.fr.i + %62 = getelementptr inbounds i8, ptr %2, i64 %.0.lcssa.i %63 = load i8, ptr %62, align 1, !alias.scope !555, !noundef !4 %64 = icmp sgt i8 %63, -65 - %65 = sub nuw i64 %3, %.0.lcssa.fr.i + %65 = sub nuw i64 %3, %.0.lcssa.i br i1 %64, label %.lr.ph, label %67 _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit: ; preds = %6, %_ZN6uucore8features4mode12parse_levels17h5bbba3b4385c9c7fE.exit @@ -3446,12 +3445,12 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit: ; preds = %6, %_ZN6uucore8feat br label %82 67: ; preds = %61, %"_ZN4core3str21_$LT$impl$u20$str$GT$16is_char_boundary17ha03ab45daa8167cbE.exit.i" - tail call void @_ZN4core3str16slice_error_fail17he2ff12236fb0c056E(ptr noalias noundef nonnull readonly align 1 %2, i64 noundef %3, i64 noundef %.0.lcssa.fr.i, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.cbb7d0e693f74b45c4df53aa3040d056.150) #23 + tail call void @_ZN4core3str16slice_error_fail17he2ff12236fb0c056E(ptr noalias noundef nonnull readonly align 1 %2, i64 noundef %3, i64 noundef %.0.lcssa.i, i64 noundef %3, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.cbb7d0e693f74b45c4df53aa3040d056.150) #23 unreachable .lr.ph: ; preds = %60, %"_ZN4core3str21_$LT$impl$u20$str$GT$16is_char_boundary17ha03ab45daa8167cbE.exit.i" %68 = phi i64 [ %65, %"_ZN4core3str21_$LT$impl$u20$str$GT$16is_char_boundary17ha03ab45daa8167cbE.exit.i" ], [ %3, %60 ] - %69 = getelementptr inbounds i8, ptr %2, i64 %.0.lcssa.fr.i + %69 = getelementptr inbounds i8, ptr %2, i64 %.0.lcssa.i %70 = getelementptr inbounds nuw i8, ptr %8, i64 8 %71 = getelementptr inbounds nuw i8, ptr %8, i64 16 %72 = xor i32 %4, -1 @@ -3761,15 +3760,14 @@ _ZN6uucore8features4mode12parse_change17h6d6d6cffe623ab87E.exit.thread85: ; pred _ZN6uucore8features4mode12parse_change17h6d6d6cffe623ab87E.exit: ; preds = %181, %213, %137, %142 %.120.i = phi i32 [ %143, %142 ], [ %.01942.us.i, %137 ], [ %.2.ph.i, %213 ], [ %.01942.i, %181 ] %.1.i = phi i64 [ %144, %142 ], [ %.043.us.i, %137 ], [ %214, %213 ], [ %.043.i, %181 ] - %.1.fr.i = freeze i64 %.1.i - %216 = icmp eq i64 %.1.fr.i, 0 + %216 = icmp eq i64 %.1.i, 0 %spec.select.i55 = select i1 %216, i32 0, i32 %.120.i %.041 = and i32 %spec.select.i55, %73 br i1 %216, label %"_ZN4core3str6traits112_$LT$impl$u20$core..slice..index..SliceIndex$LT$str$GT$$u20$for$u20$core..ops..range..RangeFrom$LT$usize$GT$$GT$3get17hf6cdd76e6e44ad9cE.exit61", label %217 217: ; preds = %_ZN6uucore8features4mode12parse_change17h6d6d6cffe623ab87E.exit.thread85, %_ZN6uucore8features4mode12parse_change17h6d6d6cffe623ab87E.exit %.04189 = phi i32 [ %.04187, %_ZN6uucore8features4mode12parse_change17h6d6d6cffe623ab87E.exit.thread85 ], [ %.041, %_ZN6uucore8features4mode12parse_change17h6d6d6cffe623ab87E.exit ] - %.173.i88 = phi i64 [ %spec.store.select.i, %_ZN6uucore8features4mode12parse_change17h6d6d6cffe623ab87E.exit.thread85 ], [ %.1.fr.i, %_ZN6uucore8features4mode12parse_change17h6d6d6cffe623ab87E.exit ] + %.173.i88 = phi i64 [ %spec.store.select.i, %_ZN6uucore8features4mode12parse_change17h6d6d6cffe623ab87E.exit.thread85 ], [ %.1.i, %_ZN6uucore8features4mode12parse_change17h6d6d6cffe623ab87E.exit ] %.not.i.i58 = icmp ult i64 %.173.i88, %96 br i1 %.not.i.i58, label %"_ZN4core3str21_$LT$impl$u20$str$GT$16is_char_boundary17ha03ab45daa8167cbE.exit.i60", label %218 @@ -3823,7 +3821,7 @@ _ZN6uucore8features4mode12parse_change17h6d6d6cffe623ab87E.exit: ; preds = %181, %.142 = or i32 %.04184, %236 %237 = and i32 %.0124, %74 %238 = and i32 %.142, %spec.select.i - %239 = or i32 %238, %237 + %239 = or disjoint i32 %238, %237 br label %240 240: ; preds = %234, %230, %227 diff --git a/bench/cpython/optimized/initconfig.ll b/bench/cpython/optimized/initconfig.ll index 460c4a9b8c9..01acf23a94c 100644 --- a/bench/cpython/optimized/initconfig.ll +++ b/bench/cpython/optimized/initconfig.ll @@ -4900,7 +4900,6 @@ PyWideStringList_Insert.exit.i.i: ; preds = %292 br label %.thread111.i.i .thread111.i.i: ; preds = %289, %287, %284, %304, %297, %278, %253, %251, %241, %238, %.loopexit146.i.i, %216, %202 - %.sroa.0170.2377.i = phi i64 [ %.sroa.0170.2.i, %304 ], [ %.sroa.0170.2.i, %.loopexit146.i.i ], [ %.sroa.0170.2.i, %238 ], [ %.sroa.0170.2.i, %241 ], [ %.sroa.0170.2.i, %251 ], [ %.sroa.0170.2.i, %253 ], [ %.sroa.0170.2.i, %278 ], [ %.sroa.0170.2.i, %202 ], [ %.sroa.0170.2.i, %216 ], [ %.sroa.0170.2.i, %297 ], [ %.sroa.0170.2.i, %289 ], [ %.sroa.0170.2.i, %287 ], [ 9223372036854775807, %284 ] %.sroa.0114.0.i = phi i32 [ 2, %304 ], [ %.sroa.084.2.ph.i.i, %.loopexit146.i.i ], [ 2, %238 ], [ 2, %241 ], [ 2, %251 ], [ 2, %253 ], [ 2, %278 ], [ 1, %202 ], [ 1, %216 ], [ 1, %297 ], [ 1, %284 ], [ 1, %287 ], [ 1, %289 ] %.sroa.23.0.i = phi i32 [ 0, %304 ], [ %.sroa.6.2.ph.i.i, %.loopexit146.i.i ], [ 0, %238 ], [ 0, %241 ], [ 0, %251 ], [ 0, %253 ], [ 0, %278 ], [ 0, %202 ], [ 0, %216 ], [ 0, %297 ], [ 0, %284 ], [ 0, %287 ], [ 0, %289 ] %.sroa.28.0.i = phi ptr [ null, %304 ], [ %.sroa.885.2.ph.i.i, %.loopexit146.i.i ], [ null, %238 ], [ null, %241 ], [ null, %251 ], [ null, %253 ], [ null, %278 ], [ @__func__.config_parse_cmdline, %202 ], [ @__func__.config_parse_cmdline, %216 ], [ @__func__.PyWideStringList_Insert, %297 ], [ @__func__.PyWideStringList_Insert, %284 ], [ @__func__.PyWideStringList_Insert, %287 ], [ @__func__.PyWideStringList_Insert, %289 ] @@ -5184,8 +5183,8 @@ _PyWideStringList_Clear.exit.thread.i: ; preds = %411 br label %_PyWideStringList_Clear.exit45.i config_run_filename_abspath.exit26.i.thread: ; preds = %405, %402, %config_run_filename_abspath.exit26.i.thread150, %_PyWideStringList_Clear.exit25.i.i - %.sroa.0170.1.i = phi i64 [ %.sroa.0170.2.i, %_PyWideStringList_Clear.exit25.i.i ], [ 0, %config_run_filename_abspath.exit26.i.thread150 ], [ 0, %402 ], [ 0, %405 ] - %.sroa.10174.1.i = phi ptr [ %.sroa.10174.2.i, %_PyWideStringList_Clear.exit25.i.i ], [ null, %config_run_filename_abspath.exit26.i.thread150 ], [ null, %402 ], [ null, %405 ] + %.sroa.0170.1.i = phi i64 [ %.sroa.0170.2.i, %_PyWideStringList_Clear.exit25.i.i ], [ 0, %config_run_filename_abspath.exit26.i.thread148 ], [ 0, %402 ], [ 0, %405 ] + %.sroa.10174.1.i = phi ptr [ %.sroa.10174.2.i, %_PyWideStringList_Clear.exit25.i.i ], [ null, %config_run_filename_abspath.exit26.i.thread148 ], [ null, %402 ], [ null, %405 ] %417 = getelementptr inbounds nuw i8, ptr %1, i64 8 %418 = load i32, ptr %417, align 8, !tbaa !226, !noalias !328 %.not13.i = icmp eq i32 %418, 0 @@ -5844,16 +5843,16 @@ config_init_warnoptions.exit.i: ; preds = %635, %.loopexit.i.t br label %.thread188.i .thread188.i: ; preds = %337, %313, %.thread111.i.i, %config_init_warnoptions.exit.i, %config_init_env_warnoptions.exit.i.thread175, %config_init_env_warnoptions.exit.i.thread164, %config_run_filename_abspath.exit.i, %640, %config_init_env_warnoptions.exit.i.thread, %config_update_argv.exit.i - %.sroa.0.1 = phi i32 [ 0, %640 ], [ %.sroa.0.0217.i.i, %config_init_warnoptions.exit.i ], [ %.sroa.0.0.copyload, %config_init_env_warnoptions.exit.i.thread ], [ 1, %config_update_argv.exit.i ], [ 1, %config_run_filename_abspath.exit.i ], [ %.sroa.014.0.ph.i.i, %config_init_env_warnoptions.exit.i.thread164 ], [ 1, %config_init_env_warnoptions.exit.i.thread175 ], [ 1, %337 ], [ 2, %313 ], [ %.sroa.0114.0.i, %.thread111.i.i ] - %.sroa.13.1 = phi i32 [ 0, %640 ], [ %.sroa.15.sroa.0.0215.i.i, %config_init_warnoptions.exit.i ], [ %.sroa.13.0.copyload, %config_init_env_warnoptions.exit.i.thread ], [ 0, %config_update_argv.exit.i ], [ 0, %config_run_filename_abspath.exit.i ], [ %.sroa.815.0.ph.i.i, %config_init_env_warnoptions.exit.i.thread164 ], [ 0, %config_init_env_warnoptions.exit.i.thread175 ], [ 0, %337 ], [ 0, %313 ], [ %.sroa.23.0.i, %.thread111.i.i ] - %.sroa.20.1 = phi ptr [ null, %640 ], [ %.sroa.15.sroa.9.0213.i.i, %config_init_warnoptions.exit.i ], [ %.sroa.20.0.copyload, %config_init_env_warnoptions.exit.i.thread ], [ %.sroa.16.1.i, %config_update_argv.exit.i ], [ @__func__.config_run_filename_abspath, %config_run_filename_abspath.exit.i ], [ %.sroa.10.0.ph.i.i, %config_init_env_warnoptions.exit.i.thread164 ], [ @__func__.PyWideStringList_Insert, %config_init_env_warnoptions.exit.i.thread175 ], [ @__func__.config_parse_cmdline, %337 ], [ null, %313 ], [ %.sroa.28.0.i, %.thread111.i.i ] - %.sroa.26.1 = phi ptr [ null, %640 ], [ %.sroa.15.sroa.14.0211.i.i, %config_init_warnoptions.exit.i ], [ %.sroa.26.0.copyload, %config_init_env_warnoptions.exit.i.thread ], [ @.str, %config_update_argv.exit.i ], [ @.str, %config_run_filename_abspath.exit.i ], [ %.sroa.11.0.ph.i.i, %config_init_env_warnoptions.exit.i.thread164 ], [ @.str, %config_init_env_warnoptions.exit.i.thread175 ], [ @.str, %337 ], [ null, %313 ], [ %.sroa.33.0.i, %.thread111.i.i ] - %.sroa.32.1 = phi i32 [ 0, %640 ], [ %.sroa.15.sroa.19.0209.i.i, %config_init_warnoptions.exit.i ], [ %.sroa.32.0.copyload, %config_init_env_warnoptions.exit.i.thread ], [ 0, %config_update_argv.exit.i ], [ 0, %config_run_filename_abspath.exit.i ], [ %.sroa.12.0.ph.i.i, %config_init_env_warnoptions.exit.i.thread164 ], [ 0, %config_init_env_warnoptions.exit.i.thread175 ], [ 0, %337 ], [ 0, %313 ], [ %.sroa.38.0.i, %.thread111.i.i ] - %.sroa.38.1 = phi i32 [ 0, %640 ], [ %.sroa.15.sroa.24.0207.i.i, %config_init_warnoptions.exit.i ], [ %.sroa.38.0.copyload, %config_init_env_warnoptions.exit.i.thread ], [ 0, %config_update_argv.exit.i ], [ 0, %config_run_filename_abspath.exit.i ], [ %.sroa.1316.0.ph.i.i, %config_init_env_warnoptions.exit.i.thread164 ], [ 0, %config_init_env_warnoptions.exit.i.thread175 ], [ 0, %337 ], [ 0, %313 ], [ %.sroa.45.0.i, %.thread111.i.i ] - %.sroa.0170.0.i = phi i64 [ %.sroa.0170.1.i, %640 ], [ %.sroa.0170.1.i, %config_init_warnoptions.exit.i ], [ %.sroa.0170.1.i, %config_init_env_warnoptions.exit.i.thread ], [ %.sroa.0170.2.i, %config_update_argv.exit.i ], [ %.sroa.0170.2.i, %config_run_filename_abspath.exit.i ], [ %.sroa.0170.1.i, %config_init_env_warnoptions.exit.i.thread164 ], [ %.sroa.0170.1.i, %config_init_env_warnoptions.exit.i.thread175 ], [ %.sroa.0170.2.i, %337 ], [ %.sroa.0170.2.i, %313 ], [ %.sroa.0170.2377.i, %.thread111.i.i ] - %.sroa.10174.0.i = phi ptr [ %.sroa.10174.1.i, %640 ], [ %.sroa.10174.1.i, %config_init_warnoptions.exit.i ], [ %.sroa.10174.1.i, %config_init_env_warnoptions.exit.i.thread ], [ %.sroa.10174.2.i, %config_update_argv.exit.i ], [ %.sroa.10174.2.i, %config_run_filename_abspath.exit.i ], [ %.sroa.10174.1.i, %config_init_env_warnoptions.exit.i.thread164 ], [ %.sroa.10174.1.i, %config_init_env_warnoptions.exit.i.thread175 ], [ %.sroa.10174.2.i, %337 ], [ %.sroa.10174.2.i, %313 ], [ %.sroa.10174.2.i, %.thread111.i.i ] - %.sroa.0157.0.i = phi i64 [ %.sroa.0157.1.i, %640 ], [ %.sroa.0157.1.i, %config_init_warnoptions.exit.i ], [ %.sroa.0157.1.i, %config_init_env_warnoptions.exit.i.thread ], [ 0, %config_update_argv.exit.i ], [ 0, %config_run_filename_abspath.exit.i ], [ 0, %config_init_env_warnoptions.exit.i.thread164 ], [ %.sroa.0157.2.i, %config_init_env_warnoptions.exit.i.thread175 ], [ 0, %337 ], [ 0, %313 ], [ 0, %.thread111.i.i ] - %.sroa.10161.0.i = phi ptr [ %.sroa.10161.1.i, %640 ], [ %.sroa.10161.1.i, %config_init_warnoptions.exit.i ], [ %.sroa.10161.1.i, %config_init_env_warnoptions.exit.i.thread ], [ null, %config_update_argv.exit.i ], [ null, %config_run_filename_abspath.exit.i ], [ null, %config_init_env_warnoptions.exit.i.thread164 ], [ %.sroa.10161.2.i, %config_init_env_warnoptions.exit.i.thread175 ], [ null, %337 ], [ null, %313 ], [ null, %.thread111.i.i ] + %.sroa.0.1 = phi i32 [ 0, %640 ], [ %.sroa.0.0217.i.i, %config_init_warnoptions.exit.i ], [ %.sroa.0.0.copyload, %config_init_env_warnoptions.exit.i.thread ], [ 1, %config_update_argv.exit.i ], [ 1, %config_run_filename_abspath.exit.i ], [ %.sroa.014.0.ph.i.i, %config_init_env_warnoptions.exit.i.thread162 ], [ 1, %config_init_env_warnoptions.exit.i.thread173 ], [ 1, %337 ], [ 2, %313 ], [ %.sroa.0114.0.i, %.thread111.i.i ] + %.sroa.13.1 = phi i32 [ 0, %640 ], [ %.sroa.15.sroa.0.0215.i.i, %config_init_warnoptions.exit.i ], [ %.sroa.13.0.copyload, %config_init_env_warnoptions.exit.i.thread ], [ 0, %config_update_argv.exit.i ], [ 0, %config_run_filename_abspath.exit.i ], [ %.sroa.815.0.ph.i.i, %config_init_env_warnoptions.exit.i.thread162 ], [ 0, %config_init_env_warnoptions.exit.i.thread173 ], [ 0, %337 ], [ 0, %313 ], [ %.sroa.23.0.i, %.thread111.i.i ] + %.sroa.20.1 = phi ptr [ null, %640 ], [ %.sroa.15.sroa.9.0213.i.i, %config_init_warnoptions.exit.i ], [ %.sroa.20.0.copyload, %config_init_env_warnoptions.exit.i.thread ], [ %.sroa.16.1.i, %config_update_argv.exit.i ], [ @__func__.config_run_filename_abspath, %config_run_filename_abspath.exit.i ], [ %.sroa.10.0.ph.i.i, %config_init_env_warnoptions.exit.i.thread162 ], [ @__func__.PyWideStringList_Insert, %config_init_env_warnoptions.exit.i.thread173 ], [ @__func__.config_parse_cmdline, %337 ], [ null, %313 ], [ %.sroa.28.0.i, %.thread111.i.i ] + %.sroa.26.1 = phi ptr [ null, %640 ], [ %.sroa.15.sroa.14.0211.i.i, %config_init_warnoptions.exit.i ], [ %.sroa.26.0.copyload, %config_init_env_warnoptions.exit.i.thread ], [ @.str, %config_update_argv.exit.i ], [ @.str, %config_run_filename_abspath.exit.i ], [ %.sroa.11.0.ph.i.i, %config_init_env_warnoptions.exit.i.thread162 ], [ @.str, %config_init_env_warnoptions.exit.i.thread173 ], [ @.str, %337 ], [ null, %313 ], [ %.sroa.33.0.i, %.thread111.i.i ] + %.sroa.32.1 = phi i32 [ 0, %640 ], [ %.sroa.15.sroa.19.0209.i.i, %config_init_warnoptions.exit.i ], [ %.sroa.32.0.copyload, %config_init_env_warnoptions.exit.i.thread ], [ 0, %config_update_argv.exit.i ], [ 0, %config_run_filename_abspath.exit.i ], [ %.sroa.12.0.ph.i.i, %config_init_env_warnoptions.exit.i.thread162 ], [ 0, %config_init_env_warnoptions.exit.i.thread173 ], [ 0, %337 ], [ 0, %313 ], [ %.sroa.38.0.i, %.thread111.i.i ] + %.sroa.38.1 = phi i32 [ 0, %640 ], [ %.sroa.15.sroa.24.0207.i.i, %config_init_warnoptions.exit.i ], [ %.sroa.38.0.copyload, %config_init_env_warnoptions.exit.i.thread ], [ 0, %config_update_argv.exit.i ], [ 0, %config_run_filename_abspath.exit.i ], [ %.sroa.1316.0.ph.i.i, %config_init_env_warnoptions.exit.i.thread162 ], [ 0, %config_init_env_warnoptions.exit.i.thread173 ], [ 0, %337 ], [ 0, %313 ], [ %.sroa.45.0.i, %.thread111.i.i ] + %.sroa.0170.0.i = phi i64 [ %.sroa.0170.1.i, %640 ], [ %.sroa.0170.1.i, %config_init_warnoptions.exit.i ], [ %.sroa.0170.1.i, %config_init_env_warnoptions.exit.i.thread ], [ %.sroa.0170.2.i, %config_update_argv.exit.i ], [ %.sroa.0170.2.i, %config_run_filename_abspath.exit.i ], [ %.sroa.0170.1.i, %config_init_env_warnoptions.exit.i.thread162 ], [ %.sroa.0170.1.i, %config_init_env_warnoptions.exit.i.thread173 ], [ %.sroa.0170.2.i, %337 ], [ %.sroa.0170.2.i, %313 ], [ %.sroa.0170.2.i, %.thread111.i.i ] + %.sroa.10174.0.i = phi ptr [ %.sroa.10174.1.i, %640 ], [ %.sroa.10174.1.i, %config_init_warnoptions.exit.i ], [ %.sroa.10174.1.i, %config_init_env_warnoptions.exit.i.thread ], [ %.sroa.10174.2.i, %config_update_argv.exit.i ], [ %.sroa.10174.2.i, %config_run_filename_abspath.exit.i ], [ %.sroa.10174.1.i, %config_init_env_warnoptions.exit.i.thread162 ], [ %.sroa.10174.1.i, %config_init_env_warnoptions.exit.i.thread173 ], [ %.sroa.10174.2.i, %337 ], [ %.sroa.10174.2.i, %313 ], [ %.sroa.10174.2.i, %.thread111.i.i ] + %.sroa.0157.0.i = phi i64 [ %.sroa.0157.1.i, %640 ], [ %.sroa.0157.1.i, %config_init_warnoptions.exit.i ], [ %.sroa.0157.1.i, %config_init_env_warnoptions.exit.i.thread ], [ 0, %config_update_argv.exit.i ], [ 0, %config_run_filename_abspath.exit.i ], [ 0, %config_init_env_warnoptions.exit.i.thread162 ], [ %.sroa.0157.2.i, %config_init_env_warnoptions.exit.i.thread173 ], [ 0, %337 ], [ 0, %313 ], [ 0, %.thread111.i.i ] + %.sroa.10161.0.i = phi ptr [ %.sroa.10161.1.i, %640 ], [ %.sroa.10161.1.i, %config_init_warnoptions.exit.i ], [ %.sroa.10161.1.i, %config_init_env_warnoptions.exit.i.thread ], [ null, %config_update_argv.exit.i ], [ null, %config_run_filename_abspath.exit.i ], [ null, %config_init_env_warnoptions.exit.i.thread162 ], [ %.sroa.10161.2.i, %config_init_env_warnoptions.exit.i.thread173 ], [ null, %337 ], [ null, %313 ], [ null, %.thread111.i.i ] %641 = icmp sgt i64 %.sroa.0170.0.i, 0 br i1 %641, label %.lr.ph.i41.i, label %_PyWideStringList_Clear.exit.i diff --git a/bench/cpython/optimized/unicodedata.ll b/bench/cpython/optimized/unicodedata.ll index 39c9ccff5ee..7807897593e 100644 --- a/bench/cpython/optimized/unicodedata.ll +++ b/bench/cpython/optimized/unicodedata.ll @@ -2331,11 +2331,8 @@ _getrecord_ex.exit.i.i: ; preds = %PyUnicode_READ.exit is_normalized_quickcheck.exit.i: ; preds = %106, %78, %134 %.0.i.i = phi i32 [ %.335.i.i, %134 ], [ %.335.us74.i.i, %78 ], [ %.335.us90.i.i, %106 ] - %.0.i.fr.i = freeze i32 %.0.i.i - switch i32 %.0.i.fr.i, label %is_normalized_quickcheck.exit.thread.thread.i [ - i32 1, label %is_normalized_quickcheck.exit.thread29.i - i32 0, label %is_normalized_quickcheck.exit.thread.thread34.i - ] + %switch.i = icmp eq i32 %.0.i.i, 1 + br i1 %switch.i, label %is_normalized_quickcheck.exit.thread29.i, label %is_normalized_quickcheck.exit.thread.thread.i is_normalized_quickcheck.exit.thread29.i: ; preds = %is_normalized_quickcheck.exit.i, %PyObject_TypeCheck.exit.i.i %135 = select i1 %.023.i, ptr @nfc_nfkc, ptr @nfd_nfkd @@ -2365,11 +2362,8 @@ Py_DECREF.exit.i: ; preds = %145, %142, %139 %147 = select i1 %146, ptr @_Py_TrueStruct, ptr @_Py_FalseStruct br label %is_normalized_quickcheck.exit.thread.thread.i -is_normalized_quickcheck.exit.thread.thread34.i: ; preds = %is_normalized_quickcheck.exit.i, %_PyUnicode_DATA.exit.i.i, %PyObject_TypeCheck.exit.thread.i.i - br label %is_normalized_quickcheck.exit.thread.thread.i - -is_normalized_quickcheck.exit.thread.thread.i: ; preds = %99, %PyUnicode_READ.exit.thread.us84.i.i, %71, %PyUnicode_READ.exit.thread.us68.i.i, %127, %_getrecord_ex.exit.i.i, %is_normalized_quickcheck.exit.thread.thread34.i, %Py_DECREF.exit.i, %is_normalized_quickcheck.exit.i - %.021.i = phi ptr [ %147, %Py_DECREF.exit.i ], [ @_Py_TrueStruct, %is_normalized_quickcheck.exit.thread.thread34.i ], [ @_Py_FalseStruct, %is_normalized_quickcheck.exit.i ], [ @_Py_FalseStruct, %_getrecord_ex.exit.i.i ], [ @_Py_FalseStruct, %127 ], [ @_Py_FalseStruct, %PyUnicode_READ.exit.thread.us68.i.i ], [ @_Py_FalseStruct, %71 ], [ @_Py_FalseStruct, %PyUnicode_READ.exit.thread.us84.i.i ], [ @_Py_FalseStruct, %99 ] +is_normalized_quickcheck.exit.thread.thread34.i: ; preds = %99, %PyUnicode_READ.exit.thread.us84.i.i, %71, %PyUnicode_READ.exit.thread.us68.i.i, %127, %_getrecord_ex.exit.i.i, %Py_DECREF.exit.i, %is_normalized_quickcheck.exit.i, %_PyUnicode_DATA.exit.i.i, %PyObject_TypeCheck.exit.thread.i.i + %.021.i = phi ptr [ %147, %Py_DECREF.exit.i ], [ @_Py_TrueStruct, %is_normalized_quickcheck.exit.i ], [ @_Py_TrueStruct, %PyObject_TypeCheck.exit.thread.i.i ], [ @_Py_TrueStruct, %_PyUnicode_DATA.exit.i.i ], [ @_Py_FalseStruct, %_getrecord_ex.exit.i.i ], [ @_Py_FalseStruct, %127 ], [ @_Py_FalseStruct, %PyUnicode_READ.exit.thread.us68.i.i ], [ @_Py_FalseStruct, %71 ], [ @_Py_FalseStruct, %PyUnicode_READ.exit.thread.us84.i.i ], [ @_Py_FalseStruct, %99 ] %148 = load i32, ptr %.021.i, align 8, !tbaa !24 %149 = icmp slt i32 %148, 0 br i1 %149, label %unicodedata_UCD_is_normalized_impl.exit, label %150 diff --git a/bench/cpython/optimized/unicodeobject.ll b/bench/cpython/optimized/unicodeobject.ll index 61acd46ae02..1fdf07ae422 100644 --- a/bench/cpython/optimized/unicodeobject.ll +++ b/bench/cpython/optimized/unicodeobject.ll @@ -52876,13 +52876,12 @@ asciilib__factorize.exit.i: ; preds = %46 %49 = getelementptr inbounds nuw i8, ptr %5, i64 24 %50 = icmp sgt i64 %.1.us.i.i.i, %.1.i.i.i %..i.i = tail call i64 @llvm.smax.i64(i64 %.1.us.i.i.i, i64 %.1.i.i.i) - %.fr237.i = freeze i64 %..i.i %.0.sroa.speculated.i.i = select i1 %50, i64 %.132.us.i.i.i, i64 %.132.i.i.i store i64 %.0.sroa.speculated.i.i, ptr %49, align 8, !tbaa !182 %51 = getelementptr inbounds nuw i8, ptr %5, i64 16 - store i64 %.fr237.i, ptr %51, align 8, !tbaa !598 + store i64 %..i.i, ptr %51, align 8, !tbaa !598 %52 = getelementptr i8, ptr %2, i64 %.0.sroa.speculated.i.i - %bcmp.i = tail call i32 @bcmp(ptr nonnull %2, ptr %52, i64 %.fr237.i) + %bcmp.i = tail call i32 @bcmp(ptr nonnull %2, ptr %52, i64 %..i.i) %53 = icmp eq i32 %bcmp.i, 0 %54 = zext i1 %53 to i32 %55 = getelementptr inbounds nuw i8, ptr %5, i64 40 @@ -52890,8 +52889,8 @@ asciilib__factorize.exit.i: ; preds = %46 br i1 %53, label %.lr.ph.preheader.i, label %56 56: ; preds = %asciilib__factorize.exit.i - %57 = sub i64 %3, %.fr237.i - %..i = tail call i64 @llvm.smax.i64(i64 %.fr237.i, i64 %57) + %57 = sub i64 %3, %..i.i + %..i = tail call i64 @llvm.smax.i64(i64 %..i.i, i64 %57) %58 = add i64 %..i, 1 store i64 %58, ptr %49, align 8, !tbaa !600 br label %.lr.ph.preheader.i @@ -52952,7 +52951,7 @@ asciilib__preprocess.exit: ; preds = %78 %88 = getelementptr i8, ptr %0, i64 %3 %89 = getelementptr i8, ptr %88, i64 -1 %90 = getelementptr i8, ptr %0, i64 %1 - %91 = add i64 %73, %.fr237.i + %91 = add i64 %73, %..i.i %92 = tail call i64 @llvm.smin.i64(i64 %3, i64 %91) br i1 %53, label %.preheader182.i, label %143 @@ -52963,8 +52962,8 @@ asciilib__preprocess.exit: ; preds = %78 .preheader180.lr.ph.i: ; preds = %.preheader182.i %94 = sub nsw i64 0, %3 %95 = sub i64 %3, %59 - %96 = tail call i64 @llvm.smax.i64(i64 %.fr237.i, i64 %95) - %reass.sub = sub i64 %96, %.fr237.i + %96 = tail call i64 @llvm.smax.i64(i64 %..i.i, i64 %95) + %reass.sub = sub i64 %96, %..i.i %97 = add i64 %reass.sub, 1 br label %.preheader180.i @@ -52995,12 +52994,12 @@ asciilib__preprocess.exit: ; preds = %78 %.2128.i = phi ptr [ %.4130.i, %132 ], [ %104, %.preheader180.i ] %106 = getelementptr i8, ptr %.2128.i, i64 %94 %107 = getelementptr i8, ptr %106, i64 1 - %108 = tail call i64 @llvm.smax.i64(i64 %.fr237.i, i64 %.1144.i) + %108 = tail call i64 @llvm.smax.i64(i64 %..i.i, i64 %.1144.i) %109 = icmp slt i64 %108, %3 br i1 %109, label %.lr.ph.i5, label %.preheader177.i .preheader177.i: ; preds = %122, %.preheader178.i - %110 = icmp slt i64 %.1144.i, %.fr237.i + %110 = icmp slt i64 %.1144.i, %..i.i br i1 %110, label %.lr.ph199.i, label %.preheader177._crit_edge.i .lr.ph.i5: ; preds = %.preheader178.i, %122 @@ -53015,7 +53014,7 @@ asciilib__preprocess.exit: ; preds = %78 115: ; preds = %.lr.ph.i5 %116 = icmp slt i64 %.0135197.i, %92 %117 = getelementptr i8, ptr %.2128.i, i64 %73 - %118 = sub i64 %.0135197.i, %.fr237.i + %118 = sub i64 %.0135197.i, %..i.i %119 = getelementptr i8, ptr %.2128.i, i64 %118 %120 = getelementptr i8, ptr %119, i64 1 %.3129.i = select i1 %116, ptr %117, ptr %120 @@ -53033,7 +53032,7 @@ asciilib__preprocess.exit: ; preds = %78 124: ; preds = %.lr.ph199.i %125 = add i64 %.1136198.i, 1 - %exitcond275.not.i = icmp eq i64 %125, %.fr237.i + %exitcond275.not.i = icmp eq i64 %125, %..i.i br i1 %exitcond275.not.i, label %.preheader177._crit_edge.i, label %.lr.ph199.i, !llvm.loop !605 .lr.ph199.i: ; preds = %.preheader177.i, %124 @@ -53076,8 +53075,8 @@ asciilib__preprocess.exit: ; preds = %78 .preheader175.lr.ph.i: ; preds = %143 %146 = sub nsw i64 0, %3 - %147 = icmp slt i64 %.fr237.i, %3 - %.not152206.i = icmp sgt i64 %.fr237.i, 0 + %147 = icmp slt i64 %..i.i, %3 + %.not152206.i = icmp sgt i64 %..i.i, 0 br i1 %147, label %.preheader175.us.i, label %.preheader175.us215.i .preheader175.us.i: ; preds = %.preheader175.lr.ph.i, %.preheader175.us.i.backedge @@ -53109,7 +53108,7 @@ asciilib__preprocess.exit: ; preds = %78 158: ; preds = %.lr.ph208.us.i %159 = add nuw nsw i64 %.0207.us.i, 1 - %exitcond277.not.i = icmp eq i64 %159, %.fr237.i + %exitcond277.not.i = icmp eq i64 %159, %..i.i br i1 %exitcond277.not.i, label %.thread170.i, label %.lr.ph208.us.i, !llvm.loop !607 .lr.ph208.us.i: ; preds = %..preheader_crit_edge.us.i, %158 @@ -53126,7 +53125,7 @@ asciilib__preprocess.exit: ; preds = %78 br label %176 165: ; preds = %178, %.lr.ph205.us.i - %.0124203.us.i = phi i64 [ %.fr237.i, %.lr.ph205.us.i ], [ %179, %178 ] + %.0124203.us.i = phi i64 [ %..i.i, %.lr.ph205.us.i ], [ %179, %178 ] %166 = getelementptr i8, ptr %2, i64 %.0124203.us.i %167 = load i8, ptr %166, align 1, !tbaa !195 %168 = getelementptr i8, ptr %157, i64 %.0124203.us.i @@ -53137,7 +53136,7 @@ asciilib__preprocess.exit: ; preds = %78 170: ; preds = %165 %171 = icmp slt i64 %.0124203.us.i, %92 %172 = getelementptr i8, ptr %154, i64 %73 - %173 = sub i64 %.0124203.us.i, %.fr237.i + %173 = sub i64 %.0124203.us.i, %..i.i %174 = getelementptr i8, ptr %154, i64 %173 %175 = getelementptr i8, ptr %174, i64 1 %.7133.us.i = select i1 %171, ptr %172, ptr %175 @@ -53185,7 +53184,7 @@ asciilib__preprocess.exit: ; preds = %78 190: ; preds = %192 %191 = add nuw nsw i64 %.0207.us229.i, 1 - %exitcond276.not.i = icmp eq i64 %191, %.fr237.i + %exitcond276.not.i = icmp eq i64 %191, %..i.i br i1 %exitcond276.not.i, label %.thread170.i, label %192, !llvm.loop !607 192: ; preds = %190, %.preheader.us225.i diff --git a/bench/darktable/optimized/fuji_compressed.ll b/bench/darktable/optimized/fuji_compressed.ll index b6348381fa0..2a9ffe30179 100644 --- a/bench/darktable/optimized/fuji_compressed.ll +++ b/bench/darktable/optimized/fuji_compressed.ll @@ -975,15 +975,14 @@ define void @_ZN6LibRaw19copy_line_to_xtransEP21fuji_compressed_blockiii(ptr nou %50 = udiv i32 %49, 3 %51 = and i32 %50, 2147483646 %52 = urem i32 %41, 3 - %53 = and i32 %52, 1 - %54 = lshr i32 %52, 1 - %55 = add nuw nsw i32 %54, %53 - %56 = add nuw nsw i32 %55, %51 - %57 = zext nneg i32 %56 to i64 - %58 = getelementptr inbounds nuw i16, ptr %.038.us, i64 %57 - %59 = load i16, ptr %58, align 2, !tbaa !120 - %60 = getelementptr inbounds nuw i16, ptr %.03644.us, i64 %indvars.iv52 - store i16 %59, ptr %60, align 2, !tbaa !120 + %53 = lshr i32 %52, 1 + %54 = sub nsw i32 %52, %53 + %55 = add nuw nsw i32 %54, %51 + %56 = zext nneg i32 %55 to i64 + %57 = getelementptr inbounds nuw i16, ptr %.038.us, i64 %56 + %58 = load i16, ptr %57, align 2, !tbaa !120 + %59 = getelementptr inbounds nuw i16, ptr %.03644.us, i64 %indvars.iv52 + store i16 %58, ptr %59, align 2, !tbaa !120 %indvars.iv.next53 = add nuw nsw i64 %indvars.iv52, 1 %exitcond55.not = icmp eq i64 %indvars.iv.next53, %wide.trip.count br i1 %exitcond55.not, label %._crit_edge.us, label %40, !llvm.loop !121 @@ -3528,7 +3527,7 @@ define void @_ZN6LibRaw17fuji_decode_stripEP22fuji_compressed_paramsixjPh(ptr no br label %51 51: ; preds = %.lr.ph, %153 - %indvars.iv74 = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next75, %153 ] + %indvars.iv74 = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next75, %152 ] %52 = load i32, ptr %11, align 8, !tbaa !87 %.not58 = icmp eq i32 %52, 0 br i1 %.not58, label %53, label %_Z15init_main_gradsPK22fuji_compressed_paramsP21fuji_compressed_block.exit @@ -3701,15 +3700,14 @@ _Z15init_main_gradsPK22fuji_compressed_paramsP21fuji_compressed_block.exit: ; pr %132 = udiv i32 %131, 3 %133 = and i32 %132, 2147483646 %134 = urem i32 %123, 3 - %135 = and i32 %134, 1 - %136 = lshr i32 %134, 1 - %137 = add nuw nsw i32 %136, %135 - %138 = add nuw nsw i32 %137, %133 - %139 = zext nneg i32 %138 to i64 - %140 = getelementptr inbounds nuw i16, ptr %.038.us.i, i64 %139 - %141 = load i16, ptr %140, align 2, !tbaa !120 - %142 = getelementptr inbounds nuw i16, ptr %.03644.us.i, i64 %indvars.iv52.i - store i16 %141, ptr %142, align 2, !tbaa !120 + %135 = lshr i32 %134, 1 + %136 = sub nsw i32 %134, %135 + %137 = add nuw nsw i32 %136, %133 + %138 = zext nneg i32 %137 to i64 + %139 = getelementptr inbounds nuw i16, ptr %.038.us.i, i64 %138 + %140 = load i16, ptr %139, align 2, !tbaa !120 + %141 = getelementptr inbounds nuw i16, ptr %.03644.us.i, i64 %indvars.iv52.i + store i16 %140, ptr %141, align 2, !tbaa !120 %indvars.iv.next53.i = add nuw nsw i64 %indvars.iv52.i, 1 %exitcond55.not.i = icmp eq i64 %indvars.iv.next53.i, %wide.trip.count.i br i1 %exitcond55.not.i, label %._crit_edge.us.i, label %122, !llvm.loop !121 @@ -3756,7 +3754,7 @@ _ZN6LibRaw19copy_line_to_xtransEP21fuji_compressed_blockiii.exit: ; preds = %._c br i1 %156, label %51, label %._crit_edge, !llvm.loop !152 157: ; preds = %.preheader, %157 - %indvars.iv70 = phi i64 [ %indvars.iv.next71, %157 ], [ 0, %.preheader ] + %indvars.iv70 = phi i64 [ %indvars.iv.next71, %156 ], [ 0, %.preheader ] %158 = getelementptr inbounds nuw [3 x %struct.i_pair], ptr @__const._ZN6LibRaw17fuji_decode_stripEP22fuji_compressed_paramsixjPh.ztable, i64 0, i64 %indvars.iv70 %159 = load i32, ptr %158, align 8, !tbaa !148 %160 = sext i32 %159 to i64 diff --git a/bench/darktable/optimized/gaussian.ll b/bench/darktable/optimized/gaussian.ll index 26360d755eb..4088b4d91fd 100644 --- a/bench/darktable/optimized/gaussian.ll +++ b/bench/darktable/optimized/gaussian.ll @@ -1471,8 +1471,7 @@ _calc_9x9_gauss_coeffs.exit.i: ; preds = %51 %95 = icmp samesign ugt i64 %indvars.iv287.i, 3 %96 = icmp slt i64 %indvars.iv287.i, %93 %97 = trunc nuw nsw i64 %indvars.iv287.i to i32 - %.fr = freeze i1 %96 - %98 = and i1 %.fr, %95 + %98 = and i1 %96, %95 br i1 %98, label %.preheader269.us.i.split, label %.preheader267.us.preheader.i.us.preheader .preheader267.us.preheader.i.us.preheader: ; preds = %.preheader269.us.i diff --git a/bench/delta-rs/optimized/4say4x9grcidoih4.ll b/bench/delta-rs/optimized/4say4x9grcidoih4.ll index 1f9b3952d58..f470200e284 100644 --- a/bench/delta-rs/optimized/4say4x9grcidoih4.ll +++ b/bench/delta-rs/optimized/4say4x9grcidoih4.ll @@ -45439,9 +45439,9 @@ _ZN5serde2de7Visitor8visit_u817he5313fdf8c231b68E.exit.i.i.i.i.i.i.i: ; preds = 50: ; preds = %106, %74, %.loopexit.split-lp.i, %.loopexit.i %.sroa.16262.0477.i = phi ptr [ %.sroa.16262.0483.i, %74 ], [ %.sroa.16262.2.i, %106 ], [ %.sroa.16262.0483.i, %.loopexit.i ], [ %.sroa.16262.0479.i, %.loopexit.split-lp.i ] - %.sroa.0257.0456.i = phi i8 [ %.sroa.0257.0484.i, %74 ], [ %.sroa.0257.0.lcssa589.i, %106 ], [ %.sroa.0257.0484.lcssa.i, %.loopexit.i ], [ %.sroa.0257.0458.i, %.loopexit.split-lp.i ] + %.sroa.0257.0456.i = phi i8 [ %.sroa.0257.0484.i, %74 ], [ %.sroa.0257.2.i, %106 ], [ %.sroa.0257.0484.i, %.loopexit.i ], [ %.sroa.0257.0458.i, %.loopexit.split-lp.i ] %.sroa.16.0434.i = phi ptr [ %.sroa.16.0485.i, %74 ], [ %.sroa.16.3.i, %106 ], [ %.sroa.16.0485.i, %.loopexit.i ], [ %.sroa.16.0436.i, %.loopexit.split-lp.i ] - %.sroa.0.0411.i = phi i8 [ %.sroa.0.0486.i, %74 ], [ %.sroa.0.3.i, %106 ], [ %.sroa.0.0486.lcssa.i, %.loopexit.i ], [ %.sroa.0.0413.i, %.loopexit.split-lp.i ] + %.sroa.0.0411.i = phi i8 [ %.sroa.0.0486.i, %74 ], [ %.sroa.0.3.i, %106 ], [ %.sroa.0.0486.i, %.loopexit.i ], [ %.sroa.0.0413.i, %.loopexit.split-lp.i ] %.2163.i = phi i8 [ 1, %74 ], [ %.9.i, %106 ], [ 1, %.loopexit.i ], [ %.1162.ph.i, %.loopexit.split-lp.i ] %.2.i = phi i8 [ 1, %74 ], [ 0, %106 ], [ 1, %.loopexit.i ], [ %.1160.ph.i, %.loopexit.split-lp.i ] %.pn195.i = phi { ptr, i32 } [ %75, %74 ], [ %.pn186.i, %106 ], [ %lpad.loopexit.i, %.loopexit.i ], [ %lpad.loopexit.split-lp.i, %.loopexit.split-lp.i ] @@ -45449,8 +45449,6 @@ _ZN5serde2de7Visitor8visit_u817he5313fdf8c231b68E.exit.i.i.i.i.i.i.i: ; preds = br i1 %.not.i, label %143, label %168 .loopexit.i: ; preds = %_ZN5serde2de9MapAccess10next_value17hb974a42b8bb0ad59E.exit.i242.i, %_ZN5serde2de9MapAccess10next_value17hb974a42b8bb0ad59E.exit.i.i, %_ZN5serde2de9MapAccess10next_value17h2fd6e1780c61ccf2E.exit.i.i, %.invoke658.i, %.invoke.i, %33 - %.sroa.0.0486.lcssa.i = phi i8 [ %.sroa.0.0486.i, %33 ], [ %.sroa.0.0486.i, %_ZN5serde2de9MapAccess10next_value17h2fd6e1780c61ccf2E.exit.i.i ], [ 4, %_ZN5serde2de9MapAccess10next_value17hb974a42b8bb0ad59E.exit.i.i ], [ %.sroa.0.0486.i, %_ZN5serde2de9MapAccess10next_value17hb974a42b8bb0ad59E.exit.i242.i ], [ %.sroa.0.0486.i, %.invoke.i ], [ %.sroa.0.0486.i, %.invoke658.i ] - %.sroa.0257.0484.lcssa.i = phi i8 [ %.sroa.0257.0484.i, %33 ], [ %.sroa.0257.0484.i, %_ZN5serde2de9MapAccess10next_value17h2fd6e1780c61ccf2E.exit.i.i ], [ %.sroa.0257.0484.i, %_ZN5serde2de9MapAccess10next_value17hb974a42b8bb0ad59E.exit.i.i ], [ 4, %_ZN5serde2de9MapAccess10next_value17hb974a42b8bb0ad59E.exit.i242.i ], [ %.sroa.0257.0484.i, %.invoke.i ], [ %.sroa.0257.0484.i, %.invoke658.i ] %lpad.loopexit.i = landingpad { ptr, i32 } cleanup br label %50 @@ -45678,7 +45676,6 @@ _ZN5serde2de9MapAccess10next_value17hb974a42b8bb0ad59E.exit.i242.i: ; preds = %5 br label %116 106: ; preds = %129, %107 - %.sroa.0257.0.lcssa589.i = phi i8 [ %.sroa.0257.2.i, %107 ], [ 4, %129 ] %.9.i = phi i8 [ %.7168.i, %107 ], [ %.8169.i, %129 ] %.pn186.i = phi { ptr, i32 } [ %108, %107 ], [ %130, %129 ] invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h06f7a3c3528303c7E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %12) #43 @@ -46147,7 +46144,7 @@ _ZN5serde2de7Visitor8visit_u817ha4a94bc64773e702E.exit.i.i.i.i.i.i.i: ; preds = 52: ; preds = %123, %77, %.loopexit.split-lp.i, %.loopexit.i %.sroa.16.0427.i = phi ptr [ %.sroa.16.3.i, %123 ], [ %.sroa.16.0433.i, %77 ], [ %.sroa.16.0433.i, %.loopexit.i ], [ %.sroa.16.0429.i, %.loopexit.split-lp.i ] - %.sroa.0.0402.i = phi i8 [ %.sroa.0.3.i, %123 ], [ %.sroa.0.0434.i, %77 ], [ %.sroa.0.0434.lcssa.i, %.loopexit.i ], [ %.sroa.0.0404.i, %.loopexit.split-lp.i ] + %.sroa.0.0402.i = phi i8 [ %.sroa.0.3.i, %123 ], [ %.sroa.0.0434.i, %77 ], [ %.sroa.0.0434.i, %.loopexit.i ], [ %.sroa.0.0404.i, %.loopexit.split-lp.i ] %.2173.ph.i = phi i8 [ %.9.i, %123 ], [ 1, %77 ], [ 1, %.loopexit.i ], [ %.1172.ph.i, %.loopexit.split-lp.i ] %.2.ph.i = phi i8 [ 0, %123 ], [ 1, %77 ], [ 1, %.loopexit.i ], [ %.1170.ph.i, %.loopexit.split-lp.i ] %.pn200.ph.i = phi { ptr, i32 } [ %.pn.i, %123 ], [ %78, %77 ], [ %lpad.loopexit.i, %.loopexit.i ], [ %lpad.loopexit.split-lp.i, %.loopexit.split-lp.i ] @@ -46156,7 +46153,6 @@ _ZN5serde2de7Visitor8visit_u817ha4a94bc64773e702E.exit.i.i.i.i.i.i.i: ; preds = br i1 %.not202.i, label %161, label %186 .loopexit.i: ; preds = %100, %_ZN5serde2de9MapAccess10next_value17hc89d9153f46d7b6cE.exit.i.i, %_ZN5serde2de9MapAccess10next_value17h9651ccfe247da348E.exit.i.i, %.invoke560.i, %.invoke.i, %35 - %.sroa.0.0434.lcssa.i = phi i8 [ %.sroa.0.0434.i, %35 ], [ %.sroa.0.0434.i, %_ZN5serde2de9MapAccess10next_value17h9651ccfe247da348E.exit.i.i ], [ 4, %_ZN5serde2de9MapAccess10next_value17hc89d9153f46d7b6cE.exit.i.i ], [ %.sroa.0.0434.i, %100 ], [ %.sroa.0.0434.i, %.invoke.i ], [ %.sroa.0.0434.i, %.invoke560.i ] %lpad.loopexit.i = landingpad { ptr, i32 } cleanup br label %52 @@ -50535,7 +50531,7 @@ _ZN5serde2de7Visitor8visit_u817h6532dcb60acc2bcbE.exit.i.i.i.i.i.i.i: ; preds = .loopexit.i: ; preds = %.loopexit.i.loopexit, %.loopexit.i.loopexit.split-lp, %108, %83, %.loopexit.split-lp.i %.sroa.16.0319.i = phi ptr [ %.sroa.16.0324.i, %83 ], [ %.sroa.16.2.i, %108 ], [ %.sroa.16.0321.i, %.loopexit.split-lp.i ], [ %.sroa.16.0324.i, %.loopexit.i.loopexit.split-lp ], [ %.sroa.16.0324.i, %.loopexit.i.loopexit ] - %.sroa.0.0301.i = phi i8 [ %.sroa.0.0325.i, %83 ], [ %.sroa.0.2.i, %108 ], [ %.sroa.0.0303.i, %.loopexit.split-lp.i ], [ %.sroa.0.0325.lcssa.i.ph, %.loopexit.i.loopexit ], [ %.sroa.0.0325.i, %.loopexit.i.loopexit.split-lp ] + %.sroa.0.0301.i = phi i8 [ %.sroa.0.0325.i, %83 ], [ %.sroa.0.2.i, %108 ], [ %.sroa.0.0303.i, %.loopexit.split-lp.i ], [ %.sroa.0.0325.i, %.loopexit.i.loopexit.split-lp ], [ %.sroa.0.0325.i, %.loopexit.i.loopexit ] %.2126.i = phi i8 [ 1, %83 ], [ %.8.i, %108 ], [ %.1125.ph.i, %.loopexit.split-lp.i ], [ 1, %.loopexit.i.loopexit.split-lp ], [ 1, %.loopexit.i.loopexit ] %.2.i = phi i8 [ 1, %83 ], [ 0, %108 ], [ %.1123.ph.i, %.loopexit.split-lp.i ], [ 1, %.loopexit.i.loopexit.split-lp ], [ 1, %.loopexit.i.loopexit ] %.pn147.i = phi { ptr, i32 } [ %84, %83 ], [ %.pn.i, %108 ], [ %lpad.loopexit.split-lp.i, %.loopexit.split-lp.i ], [ %lpad.loopexit, %.loopexit.i.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.i.loopexit.split-lp ] @@ -50545,7 +50541,6 @@ _ZN5serde2de7Visitor8visit_u817h6532dcb60acc2bcbE.exit.i.i.i.i.i.i.i: ; preds = br i1 %or.cond5.i, label %157, label %142 .loopexit.i.loopexit: ; preds = %.invoke.i, %_ZN5serde2de9MapAccess10next_value17hbba2361a9e9cdc29E.exit.i.i, %_ZN5serde2de9MapAccess10next_value17hb23c050a9cffd9eaE.exit.i.i - %.sroa.0.0325.lcssa.i.ph = phi i8 [ %.sroa.0.0325.i, %.invoke.i ], [ 4, %_ZN5serde2de9MapAccess10next_value17hb23c050a9cffd9eaE.exit.i.i ], [ %.sroa.0.0325.i, %_ZN5serde2de9MapAccess10next_value17hbba2361a9e9cdc29E.exit.i.i ] %lpad.loopexit = landingpad { ptr, i32 } cleanup br label %.loopexit.i diff --git a/bench/elfshaker-rs/optimized/34r3nkcreq4js9gcfofcmkjs8.ll b/bench/elfshaker-rs/optimized/34r3nkcreq4js9gcfofcmkjs8.ll index d6ada3ebef1..89c5fe50ed2 100644 --- a/bench/elfshaker-rs/optimized/34r3nkcreq4js9gcfofcmkjs8.ll +++ b/bench/elfshaker-rs/optimized/34r3nkcreq4js9gcfofcmkjs8.ll @@ -1782,12 +1782,11 @@ define hidden { i64, i64 } @"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A 12: ; preds = %10, %15 %.val10.lcssa.sink = phi i64 [ %22, %15 ], [ %.val10, %10 ] - %.sroa.3.0 = phi i64 [ undef, %15 ], [ %.sroa.0.0, %10 ] %.sroa.02.0 = phi i64 [ 0, %15 ], [ 1, %10 ] %.val = load ptr, ptr %2, align 8, !nonnull !3, !align !14, !noundef !3 store i64 %.val10.lcssa.sink, ptr %.val, align 8 %13 = insertvalue { i64, i64 } poison, i64 %.sroa.02.0, 0 - %14 = insertvalue { i64, i64 } %13, i64 %.sroa.3.0, 1 + %14 = insertvalue { i64, i64 } %13, i64 %.sroa.0.0, 1 ret { i64, i64 } %14 15: ; preds = %10 @@ -1830,12 +1829,11 @@ define hidden { i64, i64 } @"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A 12: ; preds = %10, %15 %.val8.lcssa.sink = phi i64 [ %18, %15 ], [ %.val8, %10 ] - %.sroa.3.0 = phi i64 [ undef, %15 ], [ %.sroa.0.0, %10 ] %.sroa.02.0 = phi i64 [ 0, %15 ], [ 1, %10 ] %.val = load ptr, ptr %2, align 8, !nonnull !3, !align !14, !noundef !3 store i64 %.val8.lcssa.sink, ptr %.val, align 8 %13 = insertvalue { i64, i64 } poison, i64 %.sroa.02.0, 0 - %14 = insertvalue { i64, i64 } %13, i64 %.sroa.3.0, 1 + %14 = insertvalue { i64, i64 } %13, i64 %.sroa.0.0, 1 ret { i64, i64 } %14 15: ; preds = %10 diff --git a/bench/ffmpeg/optimized/dvaudiodec.ll b/bench/ffmpeg/optimized/dvaudiodec.ll index 1191bbec000..f0299efa71a 100644 --- a/bench/ffmpeg/optimized/dvaudiodec.ll +++ b/bench/ffmpeg/optimized/dvaudiodec.ll @@ -66,42 +66,44 @@ define internal range(i32 -22, 1) i32 @decode_init(ptr noundef %0) #0 { %24 = load i32, ptr %16, align 4, !tbaa !31 %.not = icmp eq i32 %24, 0 %25 = select i1 %.not, i32 15, i32 18 + %26 = mul nuw nsw i32 %25, 3 %.rhs.trunc = trunc nuw nsw i32 %25 to i16 - %26 = trunc nuw nsw i32 %25 to i16 - %.rhs.trunc41 = mul nuw nsw i16 %26, 3 %27 = load i32, ptr %21, align 4, !tbaa !33 - %28 = trunc i32 %27 to i16 - %29 = add i16 %28, 2 + %28 = add nsw i32 %27, 2 + %.rhs.trunc39 = trunc nuw nsw i32 %26 to i16 %30 = getelementptr inbounds nuw i8, ptr %3, i64 12 br label %31 31: ; preds = %14, %31 - %indvars.iv = phi i64 [ 0, %14 ], [ %indvars.iv.next, %31 ] + %indvars.iv = phi i64 [ 0, %14 ], [ %indvars.iv.next, %30 ] %.lhs.trunc = trunc i64 %indvars.iv to i16 - %32 = urem i16 %.lhs.trunc, 3 - %narrow = mul nuw nsw i16 %32, 21 - %33 = udiv i16 %.lhs.trunc, 3 - %narrow46 = mul nuw nsw i16 %33, 9 - %narrow47 = add nuw nsw i16 %narrow, %narrow46 - %34 = udiv i16 %.lhs.trunc, %.rhs.trunc - %.lhs.trunc38 = trunc i16 %34 to i8 - %35 = urem i8 %.lhs.trunc38, 3 - %.zext39 = zext nneg i8 %35 to i16 - %.lhs.trunc40 = add nuw i16 %narrow47, %.zext39 - %36 = urem i16 %.lhs.trunc40, %.rhs.trunc41 - %narrow48 = mul nuw nsw i16 %36, 80 - %37 = udiv i16 %.lhs.trunc, %.rhs.trunc41 - %38 = mul i16 %29, %37 - %39 = or disjoint i16 %narrow48, 8 - %40 = add i16 %39, %38 - %41 = getelementptr inbounds nuw [2000 x i16], ptr %30, i64 0, i64 %indvars.iv - store i16 %40, ptr %41, align 2, !tbaa !38 + %31 = udiv i16 %.lhs.trunc, 3 + %.zext = zext nneg i16 %31 to i32 + %32 = mul nsw i32 %.zext, -54 + %33 = trunc i64 %indvars.iv to i32 + %34 = mul i32 %33, 21 + %35 = add nsw i32 %32, %34 + %36 = udiv i16 %.lhs.trunc, %.rhs.trunc + %.lhs.trunc36 = trunc i16 %36 to i8 + %37 = urem i8 %.lhs.trunc36, 3 + %.zext37 = zext nneg i8 %37 to i32 + %38 = add nsw i32 %35, %.zext37 + %39 = urem i32 %38, %26 + %40 = mul nuw nsw i32 %39, 80 + %41 = udiv i16 %.lhs.trunc, %.rhs.trunc39 + %.zext40 = zext nneg i16 %41 to i32 + %42 = mul i32 %28, %.zext40 + %43 = add i32 %42, %40 + %44 = trunc i32 %43 to i16 + %45 = add i16 %44, 8 + %46 = getelementptr inbounds nuw [2000 x i16], ptr %29, i64 0, i64 %indvars.iv + store i16 %45, ptr %46, align 2, !tbaa !38 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, 2000 br i1 %exitcond.not, label %.loopexit, label %31, !llvm.loop !40 .loopexit: ; preds = %31, %8 - %.0 = phi i32 [ -22, %8 ], [ 0, %31 ] + %.0 = phi i32 [ -22, %8 ], [ 0, %30 ] ret i32 %.0 } diff --git a/bench/ffmpeg/optimized/edge_common.ll b/bench/ffmpeg/optimized/edge_common.ll index f664e379fbf..ff63cf649b2 100644 --- a/bench/ffmpeg/optimized/edge_common.ll +++ b/bench/ffmpeg/optimized/edge_common.ll @@ -963,34 +963,33 @@ define void @ff_double_threshold(i32 noundef %0, i32 noundef %1, i32 noundef %2, %.06483.us = phi ptr [ %71, %._crit_edge.us ], [ %6, %.preheader.us.preheader ] %16 = icmp ne i32 %.087.us, 0 %17 = icmp ne i32 %.087.us, %11 - %.fr.us = freeze i1 %17 - %18 = and i1 %.fr.us, %16 - br i1 %18, label %.lr.ph.split.us92.preheader, label %.lr.ph.split.us.us + %18 = and i1 %17, %16 + br i1 %18, label %.lr.ph.split.us91.preheader, label %.lr.ph.split.us.us -.lr.ph.split.us92.preheader: ; preds = %.preheader.us - %invariant.gep = getelementptr i8, ptr %.06483.us, i64 %13 - br label %.lr.ph.split.us92 +.lr.ph.split.us91.preheader: ; preds = %.preheader.us + %invariant.gep = getelementptr i8, ptr %.06482.us, i64 %13 + br label %.lr.ph.split.us91 -.lr.ph.split.us92: ; preds = %.lr.ph.split.us92.preheader, %68 - %indvars.iv96 = phi i64 [ 0, %.lr.ph.split.us92.preheader ], [ %indvars.iv.next97, %68 ] - %19 = getelementptr inbounds nuw i8, ptr %.06483.us, i64 %indvars.iv96 +.lr.ph.split.us91: ; preds = %.lr.ph.split.us91.preheader, %68 + %indvars.iv95 = phi i64 [ 0, %.lr.ph.split.us91.preheader ], [ %indvars.iv.next96, %68 ] + %19 = getelementptr inbounds nuw i8, ptr %.06482.us, i64 %indvars.iv95 %20 = load i8, ptr %19, align 1, !tbaa !4 %21 = zext i8 %20 to i32 %22 = icmp slt i32 %1, %21 br i1 %22, label %68, label %23 -23: ; preds = %.lr.ph.split.us92 - %.not.us90 = icmp eq i64 %indvars.iv96, 0 +23: ; preds = %.lr.ph.split.us91 + %.not.us90 = icmp eq i64 %indvars.iv95, 0 br i1 %.not.us90, label %67, label %24 24: ; preds = %23 - %25 = icmp ne i64 %indvars.iv96, %15 + %25 = icmp ne i64 %indvars.iv95, %15 %26 = icmp slt i32 %0, %21 %or.cond71.us = and i1 %25, %26 br i1 %or.cond71.us, label %27, label %67 27: ; preds = %24 - %28 = sub nsw i64 %indvars.iv96, %13 + %28 = sub nsw i64 %indvars.iv95, %13 %29 = getelementptr i8, ptr %.06483.us, i64 %28 %30 = getelementptr i8, ptr %29, i64 -1 %31 = load i8, ptr %30, align 1, !tbaa !4 @@ -1026,7 +1025,7 @@ define void @ff_double_threshold(i32 noundef %0, i32 noundef %1, i32 noundef %2, br i1 %52, label %68, label %53 53: ; preds = %48 - %gep = getelementptr i8, ptr %invariant.gep, i64 %indvars.iv96 + %gep = getelementptr i8, ptr %invariant.gep, i64 %indvars.iv95 %54 = getelementptr i8, ptr %gep, i64 -1 %55 = load i8, ptr %54, align 1, !tbaa !4 %56 = zext i8 %55 to i32 @@ -1049,13 +1048,13 @@ define void @ff_double_threshold(i32 noundef %0, i32 noundef %1, i32 noundef %2, 67: ; preds = %62, %24, %23 br label %68 -68: ; preds = %.lr.ph.split.us92, %27, %34, %38, %43, %48, %53, %58, %62, %67 - %.sink103 = phi i8 [ 0, %67 ], [ %20, %62 ], [ %20, %58 ], [ %20, %53 ], [ %20, %48 ], [ %20, %43 ], [ %20, %38 ], [ %20, %34 ], [ %20, %27 ], [ %20, %.lr.ph.split.us92 ] - %69 = getelementptr inbounds nuw i8, ptr %.06385.us, i64 %indvars.iv96 +68: ; preds = %.lr.ph.split.us91, %27, %34, %38, %43, %48, %53, %58, %62, %67 + %.sink103 = phi i8 [ 0, %67 ], [ %20, %62 ], [ %20, %58 ], [ %20, %53 ], [ %20, %48 ], [ %20, %43 ], [ %20, %38 ], [ %20, %34 ], [ %20, %27 ], [ %20, %.lr.ph.split.us91 ] + %69 = getelementptr inbounds nuw i8, ptr %.06385.us, i64 %indvars.iv95 store i8 %.sink103, ptr %69, align 1, !tbaa !4 - %indvars.iv.next97 = add nuw nsw i64 %indvars.iv96, 1 + %indvars.iv.next97 = add nuw nsw i64 %indvars.iv95, 1 %exitcond100.not = icmp eq i64 %indvars.iv.next97, %wide.trip.count99 - br i1 %exitcond100.not, label %._crit_edge.us, label %.lr.ph.split.us92, !llvm.loop !29 + br i1 %exitcond100.not, label %._crit_edge.us, label %.lr.ph.split.us91, !llvm.loop !29 ._crit_edge.us: ; preds = %.lr.ph.split.us.us, %68 %70 = getelementptr inbounds i8, ptr %.06385.us, i64 %12 diff --git a/bench/git/optimized/packfile.ll b/bench/git/optimized/packfile.ll index 770a88777c8..114a0aba85f 100644 --- a/bench/git/optimized/packfile.ll +++ b/bench/git/optimized/packfile.ll @@ -1378,7 +1378,6 @@ get_max_fd_limit.exit.i: ; preds = %21, %18 %.0634.i.i = phi i32 [ %.2.i.i, %find_lru_pack.exit.i.i ], [ 1, %.lr.ph.i ] %.0733.i.i = phi ptr [ %.29.i.i, %find_lru_pack.exit.i.i ], [ null, %.lr.ph.i ] %.01032.i.i = phi ptr [ %.212.i.i, %find_lru_pack.exit.i.i ], [ null, %.lr.ph.i ] - %.0634.fr.i.i = freeze i32 %.0634.i.i %.0733.fr.i.i = freeze ptr %.0733.i.i %30 = getelementptr inbounds nuw i8, ptr %.035.i.i, i64 144 %31 = load i32, ptr %30, align 8, !tbaa !36 @@ -1404,14 +1403,14 @@ get_max_fd_limit.exit.i: ; preds = %21, %18 %41 = load i64, ptr %40, align 8, !tbaa !37 %42 = icmp sgt i64 %39, %41 %spec.select61.i.i = select i1 %42, ptr %.01032.i.i, ptr %.035.i.i - %spec.select62.i.i = select i1 %42, i32 %.0634.fr.i.i, i32 0 + %spec.select62.i.i = select i1 %42, i32 %.0634.i.i, i32 0 br label %find_lru_pack.exit.i.i 43: ; preds = %33 br i1 %.not29.i.i.i, label %find_lru_pack.exit.i.i, label %.lr.ph.i.preheader.i.i .lr.ph.i.preheader.i.i: ; preds = %43 - %.not32.i.i.i = icmp eq i32 %.0634.fr.i.i, 0 + %.not32.i.i.i = icmp ne i32 %.0634.i.i, 0 %44 = getelementptr inbounds nuw i8, ptr %.0733.fr.i.i, i64 32 br i1 %.not28.i.i.i, label %.lr.ph.i.us.i.i, label %.lr.ph.i.preheader.split.i.i @@ -1421,12 +1420,12 @@ get_max_fd_limit.exit.i: ; preds = %21, %18 %.02537.i.us.i.i = phi ptr [ %53, %47 ], [ %35, %.lr.ph.i.preheader.i.i ] %45 = getelementptr inbounds nuw i8, ptr %.02537.i.us.i.i, i64 36 %46 = load i32, ptr %45, align 4, !tbaa !55 - %.not31.i.us.i.i = icmp ne i32 %46, 0 - %brmerge.not.i.i = and i1 %.not32.i.i.i, %.not31.i.us.i.i - br i1 %brmerge.not.i.i, label %find_lru_pack.exit.i.i, label %47 + %.not31.i.us.i.i = icmp eq i32 %46, 0 + %brmerge.i.i = select i1 %.not31.i.us.i.i, i1 true, i1 %.not32.i.i.i + br i1 %brmerge.i.i, label %47, label %find_lru_pack.exit.i.i 47: ; preds = %.lr.ph.i.us.i.i - %.039.i.us.mux.i.i = select i1 %.not31.i.us.i.i, i32 1, i32 %.039.i.us.i.i + %.039.i.us.mux.i.i = select i1 %.not31.i.us.i.i, i32 %.039.i.us.i.i, i32 1 %48 = getelementptr inbounds nuw i8, ptr %.02537.i.us.i.i, i64 32 %49 = load i32, ptr %48, align 8, !tbaa !85 %50 = getelementptr inbounds nuw i8, ptr %.02338.i.us.i.i, i64 32 @@ -1438,7 +1437,7 @@ get_max_fd_limit.exit.i: ; preds = %21, %18 br i1 %.not30.i.us.i.i, label %find_lru_pack.exit.i.i, label %.lr.ph.i.us.i.i, !llvm.loop !90 .lr.ph.i.preheader.split.i.i: ; preds = %.lr.ph.i.preheader.i.i - br i1 %.not32.i.i.i, label %.lr.ph.i.us16.i.i, label %.lr.ph.i.i.i + br i1 %.not32.i.i.i, label %.lr.ph.i.i.i, label %.lr.ph.i.us16.i.i .lr.ph.i.us16.i.i: ; preds = %.lr.ph.i.preheader.split.i.i, %66 %.02338.i.us18.i.i = phi ptr [ %spec.select.i.us22.i.i, %66 ], [ %35, %.lr.ph.i.preheader.split.i.i ] @@ -1480,7 +1479,7 @@ get_max_fd_limit.exit.i: ; preds = %21, %18 %73 = load i32, ptr %72, align 8, !tbaa !85 %74 = icmp ugt i32 %71, %73 %spec.select.i.i.i = select i1 %74, ptr %.02537.i.i.i, ptr %.02338.i.i.i - %75 = icmp eq i32 %.0634.fr.i.i, %spec.select.i.i + %75 = icmp eq i32 %.0634.i.i, %spec.select.i.i br i1 %75, label %76, label %81 76: ; preds = %.lr.ph.i.i.i @@ -1495,10 +1494,10 @@ get_max_fd_limit.exit.i: ; preds = %21, %18 %.not30.i.i.i = icmp eq ptr %82, null br i1 %.not30.i.i.i, label %find_lru_pack.exit.i.i, label %.lr.ph.i.i.i, !llvm.loop !93 -find_lru_pack.exit.i.i: ; preds = %81, %76, %66, %56, %.lr.ph.i.us16.i.i, %47, %.lr.ph.i.us.i.i, %43, %37, %36, %.lr.ph.i.i - %.212.i.i = phi ptr [ %.01032.i.i, %.lr.ph.i.i ], [ %.01032.i.i, %36 ], [ %.035.i.i, %43 ], [ %spec.select61.i.i, %37 ], [ %.035.i.i, %47 ], [ %.01032.i.i, %.lr.ph.i.us.i.i ], [ %.01032.i.i, %.lr.ph.i.us16.i.i ], [ %.01032.i.i, %56 ], [ %.035.i.i, %66 ], [ %.035.i.i, %81 ], [ %.01032.i.i, %76 ] - %.29.i.i = phi ptr [ %.0733.fr.i.i, %.lr.ph.i.i ], [ null, %36 ], [ null, %43 ], [ null, %37 ], [ %spec.select.i.us.i.i, %47 ], [ null, %.lr.ph.i.us.i.i ], [ %.0733.fr.i.i, %.lr.ph.i.us16.i.i ], [ %.0733.fr.i.i, %56 ], [ %spec.select.i.us22.i.i, %66 ], [ %spec.select.i.i.i, %81 ], [ %.0733.fr.i.i, %76 ] - %.2.i.i = phi i32 [ %.0634.fr.i.i, %.lr.ph.i.i ], [ %.0634.fr.i.i, %36 ], [ 0, %43 ], [ %spec.select62.i.i, %37 ], [ %.039.i.us.mux.i.i, %47 ], [ 0, %.lr.ph.i.us.i.i ], [ 0, %.lr.ph.i.us16.i.i ], [ 0, %56 ], [ 0, %66 ], [ %spec.select.i.i, %81 ], [ %.0634.fr.i.i, %76 ] +find_lru_pack.exit.i.i: ; preds = %66, %56, %.lr.ph.i.us16.i.i, %81, %76, %47, %.lr.ph.i.us.i.i, %43, %37, %36, %.lr.ph.i.i + %.212.i.i = phi ptr [ %.01032.i.i, %.lr.ph.i.i ], [ %.01032.i.i, %36 ], [ %.035.i.i, %43 ], [ %spec.select61.i.i, %37 ], [ %.035.i.i, %47 ], [ %.01032.i.i, %.lr.ph.i.us.i.i ], [ %.035.i.i, %81 ], [ %.01032.i.i, %76 ], [ %.01032.i.i, %.lr.ph.i.us16.i.i ], [ %.01032.i.i, %56 ], [ %.035.i.i, %66 ] + %.29.i.i = phi ptr [ %.0733.fr.i.i, %.lr.ph.i.i ], [ null, %36 ], [ null, %43 ], [ null, %37 ], [ %spec.select.i.us.i.i, %47 ], [ null, %.lr.ph.i.us.i.i ], [ %spec.select.i.i.i, %81 ], [ %.0733.fr.i.i, %76 ], [ %.0733.fr.i.i, %.lr.ph.i.us16.i.i ], [ %.0733.fr.i.i, %56 ], [ %spec.select.i.us22.i.i, %66 ] + %.2.i.i = phi i32 [ %.0634.i.i, %.lr.ph.i.i ], [ %.0634.i.i, %36 ], [ 0, %43 ], [ %spec.select62.i.i, %37 ], [ %.039.i.us.mux.i.i, %47 ], [ 0, %.lr.ph.i.us.i.i ], [ %spec.select.i.i, %81 ], [ %.0634.i.i, %76 ], [ 0, %.lr.ph.i.us16.i.i ], [ 0, %56 ], [ 0, %66 ] %83 = getelementptr inbounds nuw i8, ptr %.035.i.i, i64 16 %.0.i.i = load ptr, ptr %83, align 8, !tbaa !63 %.not.i.i = icmp eq ptr %.0.i.i, null diff --git a/bench/glslang/optimized/Initialize.ll b/bench/glslang/optimized/Initialize.ll index 2e77d47b3b5..0ce2324c677 100644 --- a/bench/glslang/optimized/Initialize.ll +++ b/bench/glslang/optimized/Initialize.ll @@ -18278,7 +18278,7 @@ define void @_ZN7glslang9TBuiltIns31add2ndGenerationSamplingImagingEi8EProfileRK %or.cond51.reass = and i1 %43, %invariant.op237.reass %46 = select i1 %43, i32 65536, i32 0 %invariant.op240.reass = or disjoint i32 %46, %invariant.op243 - br i1 %or.cond51.reass, label %.split.us, label %.preheader220.split.preheader + br i1 %or.cond51.reass, label %.loopexit222.thread, label %.preheader220.split.preheader .preheader220.split.preheader: ; preds = %.preheader220 %47 = or i32 %40, %.0193245 @@ -18479,13 +18479,13 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2E %exitcond267.not = icmp eq i32 %111, 9 br i1 %exitcond267.not, label %.split.us, label %.preheader220.split, !llvm.loop !26 -.split.us: ; preds = %.preheader220.split, %.loopexit, %.preheader220 +.split.us: ; preds = %.preheader220.split, %.loopexit br i1 %44, label %.preheader220, label %.loopexit222, !llvm.loop !27 .loopexit222: ; preds = %.split.us, %35 br i1 %37, label %35, label %.loopexit222.thread, !llvm.loop !28 -.loopexit222.thread: ; preds = %39, %.loopexit222 +.loopexit222.thread: ; preds = %39, %.loopexit222, %.preheader220 br i1 %32, label %.preheader223, label %112, !llvm.loop !29 112: ; preds = %.loopexit222.thread @@ -32561,7 +32561,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2E define void @_ZN7glslang9TBuiltIns18addGatherFunctionsENS_8TSamplerERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEEi8EProfile(ptr noundef nonnull align 8 captures(address) dereferenceable(876) %0, i32 %1, ptr noundef nonnull readonly align 8 captures(none) dereferenceable(40) %2, i32 noundef %3, i32 noundef %4) local_unnamed_addr #1 align 2 { %6 = alloca %"class.std::__cxx11::basic_string", align 8 %7 = alloca %"class.std::__cxx11::basic_string", align 8 - %8 = lshr i32 %1, 8 + %.fr = freeze i32 %1 + %8 = lshr i32 %.fr, 8 %trunc = trunc i32 %8 to i8 switch i8 %trunc, label %.loopexit1289 [ i8 2, label %9 @@ -32570,7 +32571,7 @@ define void @_ZN7glslang9TBuiltIns18addGatherFunctionsENS_8TSamplerERKNSt7__cxx1 ] 9: ; preds = %5, %5, %5 - %10 = and i32 %1, 262144 + %10 = and i32 %.fr, 262144 %.not1276 = icmp eq i32 %10, 0 br i1 %.not1276, label %11, label %.loopexit1289 @@ -32579,14 +32580,14 @@ define void @_ZN7glslang9TBuiltIns18addGatherFunctionsENS_8TSamplerERKNSt7__cxx1 br i1 %12, label %13, label %._crit_edge ._crit_edge: ; preds = %11 - %.pre1345 = and i32 %1, 255 - %.pre1346 = and i32 %1, 65280 + %.pre1345 = and i32 %.fr, 255 + %.pre1346 = and i32 %.fr, 65280 br label %17 13: ; preds = %11 - %14 = and i32 %1, 65280 + %14 = and i32 %.fr, 65280 %15 = icmp ne i32 %14, 1280 - %16 = and i32 %1, 255 + %16 = and i32 %.fr, 255 %.not = icmp eq i32 %16, 1 %or.cond105 = or i1 %15, %.not br i1 %or.cond105, label %17, label %.loopexit1289 @@ -32595,7 +32596,7 @@ define void @_ZN7glslang9TBuiltIns18addGatherFunctionsENS_8TSamplerERKNSt7__cxx1 %.pre-phi1347 = phi i32 [ %.pre1346, %._crit_edge ], [ %14, %13 ] %.pre-phi = phi i32 [ %.pre1345, %._crit_edge ], [ %16, %13 ] %.not97 = icmp eq i32 %.pre-phi, 3 - %18 = and i32 %1, 131072 + %18 = and i32 %.fr, 131072 %.not98 = icmp eq i32 %18, 0 %19 = icmp eq i32 %.pre-phi1347, 1024 %20 = icmp ne i32 %4, 8 @@ -32613,7 +32614,7 @@ define void @_ZN7glslang9TBuiltIns18addGatherFunctionsENS_8TSamplerERKNSt7__cxx1 %31 = and i32 %8, 255 %32 = zext nneg i32 %31 to i64 %33 = getelementptr inbounds nuw [9 x i32], ptr %30, i64 0, i64 %32 - %34 = lshr i32 %1, 16 + %34 = lshr i32 %.fr, 16 %.lobit102 = and i32 %34, 1 %35 = getelementptr inbounds nuw i8, ptr %0, i64 608 %36 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -32633,8 +32634,7 @@ define void @_ZN7glslang9TBuiltIns18addGatherFunctionsENS_8TSamplerERKNSt7__cxx1 %.not99 = icmp ne i32 %.0861297, 0 %or.cond1272 = and i1 %19, %.not99 %42 = icmp eq i32 %.0861297, 2 - %or.cond1272.fr = freeze i1 %or.cond1272 - br i1 %or.cond1272.fr, label %.split.us, label %.preheader1292.split + br i1 %or.cond1272, label %.split.us, label %.preheader1292.split .preheader1292.split: ; preds = %.preheader1292, %.loopexit1291 %43 = phi i1 [ false, %.loopexit1291 ], [ true, %.preheader1292 ] @@ -34667,8 +34667,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEED2E %.not92 = icmp ne i32 %.0821303, 0 %or.cond1274 = and i1 %19, %.not92 %735 = icmp eq i32 %.0821303, 2 - %or.cond1274.fr = freeze i1 %or.cond1274 - br i1 %or.cond1274.fr, label %.split1302.us, label %.preheader1282.split + br i1 %or.cond1274, label %.split1302.us, label %.preheader1282.split .preheader1282.split: ; preds = %.preheader1282, %.loopexit %736 = phi i1 [ false, %.loopexit ], [ true, %.preheader1282 ] diff --git a/bench/gromacs/optimized/reduce.ll b/bench/gromacs/optimized/reduce.ll index c343ef4652e..03b286f1611 100644 --- a/bench/gromacs/optimized/reduce.ll +++ b/bench/gromacs/optimized/reduce.ll @@ -106,10 +106,10 @@ define noundef i32 @_Z16tMPI_Reduce_fastPKvPviP14tmpi_datatype_7tMPI_OpiP10tmpi_ br label %45 45: ; preds = %.lr.ph, %101 - %.092135 = phi i32 [ 0, %.lr.ph ], [ %107, %101 ] - %.094134 = phi i32 [ 2, %.lr.ph ], [ %106, %101 ] - %.096133 = phi i32 [ 1, %.lr.ph ], [ %105, %101 ] - %.098132 = phi i32 [ %12, %.lr.ph ], [ %104, %101 ] + %.092135 = phi i32 [ 0, %.lr.ph ], [ %106, %101 ] + %.094134 = phi i32 [ 2, %.lr.ph ], [ %105, %101 ] + %.096133 = phi i32 [ 1, %.lr.ph ], [ %104, %101 ] + %.098132 = phi i32 [ %12, %.lr.ph ], [ %103, %101 ] %46 = add i32 %.094134, -1 %47 = and i32 %46, %15 %48 = icmp eq i32 %47, 0 @@ -211,13 +211,12 @@ _Z18tMPI_Reduce_run_opPvPKvS1_P14tmpi_datatype_i7tMPI_OpP10tmpi_comm_.exit: ; pr 101: ; preds = %73, %81, %79 %102 = lshr i32 %.098132, 1 - %103 = and i32 %.098132, 1 - %104 = add nuw nsw i32 %102, %103 - %105 = shl nsw i32 %.096133, 1 - %106 = shl nsw i32 %.094134, 1 - %107 = add nuw nsw i32 %.092135, 1 - %108 = icmp samesign ugt i32 %104, 1 - br i1 %108, label %45, label %.thread118 + %103 = sub nsw i32 %.098132, %102 + %104 = shl nsw i32 %.096133, 1 + %105 = shl nsw i32 %.094134, 1 + %106 = add nuw nsw i32 %.092135, 1 + %107 = icmp sgt i32 %103, 1 + br i1 %107, label %45, label %.thread118 .thread118: ; preds = %101, %_Z18tMPI_Reduce_run_opPvPKvS1_P14tmpi_datatype_i7tMPI_OpP10tmpi_comm_.exit, %33, %.thread125, %7, %31, %22, %18 %.0 = phi i32 [ %32, %31 ], [ %23, %22 ], [ %20, %18 ], [ 0, %7 ], [ 0, %.thread125 ], [ 0, %33 ], [ 0, %101 ], [ %72, %_Z18tMPI_Reduce_run_opPvPKvS1_P14tmpi_datatype_i7tMPI_OpP10tmpi_comm_.exit ] diff --git a/bench/html5ever-rs/optimized/427f68nqtcfpg289.ll b/bench/html5ever-rs/optimized/427f68nqtcfpg289.ll index e6709133a34..57aa3f9481d 100644 --- a/bench/html5ever-rs/optimized/427f68nqtcfpg289.ll +++ b/bench/html5ever-rs/optimized/427f68nqtcfpg289.ll @@ -1443,7 +1443,7 @@ default.unreachable35: ; preds = %"_ZN110_$LT$core..i %13 = add nuw nsw i64 %.sroa.8.0, 1 %14 = getelementptr inbounds nuw i8, ptr %.sroa.0.020, i64 8 %15 = tail call fastcc noundef i8 @"_ZN64_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..cmp..Ord$GT$3cmp17h5b2c506b06a9ee95E"(ptr noalias noundef readonly align 8 dereferenceable(8) %1, ptr noalias noundef readonly align 8 dereferenceable(8) %.sroa.0.020), !range !176 - switch i8 %15, label %default.unreachable35 [ + switch i8 %15, label %default.unreachable34 [ i8 -1, label %.loopexit.loopexit i8 0, label %.loopexit i8 1, label %11 @@ -1489,7 +1489,7 @@ default.unreachable35: ; preds = %"_ZN110_$LT$core..i %13 = add nuw nsw i64 %.sroa.8.0, 1 %14 = getelementptr inbounds nuw i8, ptr %.sroa.0.020, i64 8 %15 = tail call fastcc noundef i8 @"_ZN64_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..cmp..Ord$GT$3cmp17h5b2c506b06a9ee95E"(ptr noalias noundef readonly align 8 dereferenceable(8) %1, ptr noalias noundef readonly align 8 dereferenceable(8) %.sroa.0.020), !range !176 - switch i8 %15, label %default.unreachable35 [ + switch i8 %15, label %default.unreachable34 [ i8 -1, label %.loopexit.loopexit i8 0, label %.loopexit i8 1, label %11 diff --git a/bench/hyperscan/optimized/repeat.ll b/bench/hyperscan/optimized/repeat.ll index 8c25e8aa5b2..9b0f0e40ee1 100644 --- a/bench/hyperscan/optimized/repeat.ll +++ b/bench/hyperscan/optimized/repeat.ll @@ -2726,13 +2726,13 @@ get_lowhi_masks.exit.i: ; preds = %382, %324 367: ; preds = %get_lowhi_masks.exit.i %368 = shl i64 %.048.i68.i, 6 %369 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 range(i64 1, 0) %366, i1 true) - %370 = or disjoint i64 %369, %368 - %.fr83 = freeze i64 %370 + %.fr84 = freeze i64 %369 + %370 = or i64 %.fr84, %368 %371 = icmp eq i32 %.056.i66.i, %333 br i1 %371, label %.thread56.i, label %373 .thread56.i: ; preds = %367 - %372 = and i64 %.fr83, 4294967295 + %372 = and i64 %370, 4294967295 %.not53 = icmp eq i64 %372, 4294967295 br i1 %.not53, label %ringHasMatch.exit.thread, label %ringHasMatch.exit.thread48 @@ -2755,7 +2755,7 @@ get_lowhi_masks.exit.i: ; preds = %382, %324 382: ; preds = %378, %373 %.sink121.i = phi i32 [ 6, %378 ], [ -6, %373 ] %.157.i73.i = phi i32 [ %379, %378 ], [ %374, %373 ] - %.149.i75.i = phi i64 [ %381, %378 ], [ %.fr83, %373 ] + %.149.i75.i = phi i64 [ %381, %378 ], [ %370, %373 ] %.146.i76.i = phi i32 [ %380, %378 ], [ %.045.i69.i, %373 ] %383 = add i32 %.sink121.i, %.052.i67.i br label %get_lowhi_masks.exit.i diff --git a/bench/influxdb-rs/optimized/17ptp6pnu4b90vr6.ll b/bench/influxdb-rs/optimized/17ptp6pnu4b90vr6.ll index e2fcd8fb552..328cabd930a 100644 --- a/bench/influxdb-rs/optimized/17ptp6pnu4b90vr6.ll +++ b/bench/influxdb-rs/optimized/17ptp6pnu4b90vr6.ll @@ -268,10 +268,9 @@ define hidden { i64, i64 } @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$ br i1 %12, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h4063f5455e75fb5aE.llvm.171605402441639591.exit, label %5 _ZN4core4iter6traits8iterator8Iterator8try_fold17h4063f5455e75fb5aE.llvm.171605402441639591.exit: ; preds = %5, %8 - %.sroa.3.0.i = phi i64 [ undef, %8 ], [ %.0.i, %5 ] %.sroa.0.0.i = phi i64 [ 0, %8 ], [ 1, %5 ] %14 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0.i, 0 - %15 = insertvalue { i64, i64 } %14, i64 %.sroa.3.0.i, 1 + %15 = insertvalue { i64, i64 } %14, i64 %.0.i, 1 ret { i64, i64 } %15 } @@ -4491,10 +4490,9 @@ define hidden { i64, i64 } @_ZN4core4iter6traits8iterator8Iterator8try_fold17h40 br i1 %13, label %15, label %6 15: ; preds = %6, %9 - %.sroa.3.0 = phi i64 [ undef, %9 ], [ %.0, %6 ] %.sroa.0.0 = phi i64 [ 0, %9 ], [ 1, %6 ] %16 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0, 0 - %17 = insertvalue { i64, i64 } %16, i64 %.sroa.3.0, 1 + %17 = insertvalue { i64, i64 } %16, i64 %.0, 1 ret { i64, i64 } %17 } diff --git a/bench/lean4/optimized/mpn.ll b/bench/lean4/optimized/mpn.ll index a9499a6628f..63d7e6287b2 100644 --- a/bench/lean4/optimized/mpn.ll +++ b/bench/lean4/optimized/mpn.ll @@ -1245,12 +1245,13 @@ _ZN4lean10mpn_bufferC2EmRKj.exit88: ; preds = %.lr.ph, %_ZN4lean10 br i1 %98, label %_ZN4lean10mpn_bufferC2EmRKj.exit88, label %_ZN4lean10mpn_bufferC2EmRKj.exit88._crit_edge, !llvm.loop !46 99: ; preds = %.critedge4, %_ZN4lean10mpn_bufferC2EmRKj.exit88._crit_edge - %100 = phi i32 [ undef, %_ZN4lean10mpn_bufferC2EmRKj.exit88._crit_edge ], [ %157, %.critedge4 ] - %101 = phi ptr [ %88, %_ZN4lean10mpn_bufferC2EmRKj.exit88._crit_edge ], [ %.val50, %.critedge4 ] - %102 = phi ptr [ %87, %_ZN4lean10mpn_bufferC2EmRKj.exit88._crit_edge ], [ %111, %.critedge4 ] - %103 = phi i64 [ %.pre, %_ZN4lean10mpn_bufferC2EmRKj.exit88._crit_edge ], [ %171, %.critedge4 ] - %.039 = phi i64 [ 0, %_ZN4lean10mpn_bufferC2EmRKj.exit88._crit_edge ], [ %160, %.critedge4 ] - switch i64 %103, label %._crit_edge151 [ + %100 = phi i32 [ %157, %.critedge4 ], [ undef, %_ZN4lean10mpn_bufferC2EmRKj.exit88._crit_edge ] + %101 = phi ptr [ %.val50, %.critedge4 ], [ %88, %_ZN4lean10mpn_bufferC2EmRKj.exit88._crit_edge ] + %102 = phi ptr [ %111, %.critedge4 ], [ %87, %_ZN4lean10mpn_bufferC2EmRKj.exit88._crit_edge ] + %103 = phi i64 [ %171, %.critedge4 ], [ %.pre, %_ZN4lean10mpn_bufferC2EmRKj.exit88._crit_edge ] + %.039 = phi i64 [ %indvars.iv.next, %.critedge4 ], [ -1, %_ZN4lean10mpn_bufferC2EmRKj.exit88._crit_edge ] + %.039 = phi i64 [ %160, %.critedge4 ], [ 0, %_ZN4lean10mpn_bufferC2EmRKj.exit88._crit_edge ] + switch i64 %103, label %._crit_edge153 [ i64 0, label %.critedge i64 1, label %104 ] @@ -1266,7 +1267,7 @@ _ZN4lean10mpn_bufferC2EmRKj.exit88: ; preds = %.lr.ph, %_ZN4lean10 br i1 %.not, label %.critedge, label %107 107: ; preds = %._crit_edge151, %104 - %108 = phi ptr [ %.pre152, %._crit_edge151 ], [ %105, %104 ] + %108 = phi ptr [ %.pre152, %._crit_edge153 ], [ %105, %104 ] %109 = invoke fastcc noundef i64 @_ZN4leanL13div_normalizeEPKjmS1_mRNS_10mpn_bufferES3_(ptr noundef nonnull %108, i64 noundef %103, ptr noundef nonnull %9, i64 noundef 1, ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull align 8 dereferenceable(88) %7) to label %110 unwind label %.loopexit @@ -1423,17 +1424,21 @@ _ZN4leanL15div_unnormalizeERNS_10mpn_bufferES1_mPj.exit: ; preds = %.lr.ph4.i.pr .critedge4: ; preds = %.lr.ph131, %166, %_ZN4leanL15div_unnormalizeERNS_10mpn_bufferES1_mPj.exit %171 = phi i64 [ 0, %_ZN4leanL15div_unnormalizeERNS_10mpn_bufferES1_mPj.exit ], [ %163, %.lr.ph131 ], [ 0, %166 ] + %indvars.iv.next = add i64 %indvars.iv, 1 br label %99, !llvm.loop !48 .critedge: ; preds = %99, %104 %172 = getelementptr inbounds nuw i8, ptr %2, i64 %.039 store i8 0, ptr %172, align 1, !tbaa !32 %173 = add i64 %.039, -1 - %174 = lshr i64 %173, 1 - %175 = and i64 %173, 1 - %176 = add nuw i64 %174, %175 - %.not138 = icmp eq i64 %176, 0 - br i1 %.not138, label %._crit_edge, label %.lr.ph136 + %.not138 = icmp eq i64 %173, 0 + br i1 %.not138, label %._crit_edge, label %.lr.ph136.preheader + +.lr.ph136.preheader:; preds = %.critedge + %174 = lshr i64 %.039, 1 + %175 = sub i64 %indvars.iv, %174 + %umax = call i64 @llvm.umax.i64(i64 %175, i64 1) + br label %.lr.ph136 ._crit_edge: ; preds = %.lr.ph136, %.critedge call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #14 @@ -1449,7 +1454,7 @@ _ZN4leanL15div_unnormalizeERNS_10mpn_bufferES1_mPj.exit: ; preds = %.lr.ph4.i.pr br label %_ZN4lean6bufferIjLm16EED2Ev.exit _ZN4lean6bufferIjLm16EED2Ev.exit: ; preds = %._crit_edge, %177 - %180 = phi ptr [ %101, %._crit_edge ], [ %.pre150, %177 ] + %180 = phi ptr [ %101, %._crit_edge ], [ %.pre150, %176 ] call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %7) #14 %.not.i.i.i94 = icmp eq ptr %180, %89 br i1 %.not.i.i.i94, label %_ZN4lean6bufferIjLm16EED2Ev.exit95, label %181 @@ -1476,8 +1481,8 @@ _ZN4lean6bufferIjLm16EED2Ev.exit97: ; preds = %_ZN4lean6bufferIjLm call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %5) #14 br label %206 -.lr.ph136: ; preds = %.critedge, %.lr.ph136 - %.0135 = phi i64 [ %193, %.lr.ph136 ], [ 0, %.critedge ] +.lr.ph136: ; preds = %.lr.ph136.preheader, %.lr.ph136 + %.0135 = phi i64 [ %193, %.lr.ph136 ], [ 0, %.lr.ph136.preheader ] %188 = getelementptr inbounds nuw i8, ptr %2, i64 %.0135 %189 = sub i64 %173, %.0135 %190 = getelementptr inbounds nuw i8, ptr %2, i64 %189 @@ -1486,8 +1491,8 @@ _ZN4lean6bufferIjLm16EED2Ev.exit97: ; preds = %_ZN4lean6bufferIjLm store i8 %192, ptr %188, align 1, !tbaa !32 store i8 %191, ptr %190, align 1, !tbaa !32 %193 = add nuw i64 %.0135, 1 - %194 = icmp ult i64 %193, %176 - br i1 %194, label %.lr.ph136, label %._crit_edge, !llvm.loop !49 + %194 = icmp eq i64 %193, %umax + br i1 %194, label %._crit_edge, label %.lr.ph136, !llvm.loop !49 195: ; preds = %169 %196 = load i64, ptr %85, align 8, !tbaa !26 @@ -1506,9 +1511,9 @@ _ZN4lean6bufferIjLm16EED2Ev.exit97: ; preds = %_ZN4lean6bufferIjLm br label %.body.sink.split .body.sink.split: ; preds = %72, %199 - %.sink171 = phi i64 [ %200, %199 ], [ %53, %72 ] - %.sink = phi ptr [ %198, %199 ], [ %.pre.i.i54, %72 ] - %.pn45.pn.pn.ph = phi { ptr, i32 } [ %lpad.phi, %199 ], [ %73, %72 ] + %.sink171 = phi i64 [ %200, %197 ], [ %53, %72 ] + %.sink = phi ptr [ %198, %197 ], [ %.pre.i.i54, %72 ] + %.pn45.pn.pn.ph = phi { ptr, i32 } [ %lpad.phi, %197 ], [ %73, %72 ] %201 = shl i64 %.sink171, 2 call void @_ZdaPvm(ptr noundef %.sink, i64 noundef %201) #14 br label %.body diff --git a/bench/lean4/optimized/static.ll b/bench/lean4/optimized/static.ll index 02681751edd..9c36224476c 100644 --- a/bench/lean4/optimized/static.ll +++ b/bench/lean4/optimized/static.ll @@ -8571,8 +8571,8 @@ _Z20_mi_bitmap_try_claimPSt6atomicImEmmm.exit.i: ; preds = %.lr.ph.i.i br i1 %98, label %.preheader.i.i, label %_ZL20mi_arena_purge_rangeP10mi_arena_smmmm.exit.thread.i .preheader.i.i: ; preds = %_Z20_mi_bitmap_try_claimPSt6atomicImEmmm.exit.i, %377 - %.029.i.i = phi i64 [ %379, %377 ], [ %.046148.i, %_Z20_mi_bitmap_try_claimPSt6atomicImEmmm.exit.i ] - %.02328.i.i = phi i1 [ %.1.i.i, %377 ], [ false, %_Z20_mi_bitmap_try_claimPSt6atomicImEmmm.exit.i ] + %.029.i.i = phi i64 [ %379, %376 ], [ %.046148.i, %_Z20_mi_bitmap_try_claimPSt6atomicImEmmm.exit.i ] + %.02328.i.i = phi i1 [ %.1.i.i, %376 ], [ false, %_Z20_mi_bitmap_try_claimPSt6atomicImEmmm.exit.i ] br label %99 99: ; preds = %103, %.preheader.i.i @@ -9219,11 +9219,10 @@ _ZL15mi_bitmap_mask_mm.exit24.i.i19.i.i: ; preds = %_Z25_mi_bitmap_uncl _ZL14mi_arena_purgeP10mi_arena_smm.exit.i: ; preds = %373, %._crit_edge.i34.i.i, %._crit_edge.thread.i42.i.i, %_Z25_mi_bitmap_unclaim_acrossPSt6atomicImEmmm.exit.thread.thread.i.i, %_Z25_mi_bitmap_unclaim_acrossPSt6atomicImEmmm.exit.i.i, %_Z25_mi_bitmap_unclaim_acrossPSt6atomicImEmmm.exit.thread.i.i %375 = icmp eq i64 %.022.lcssa.i.i, %.145144.i %spec.select.i.i = select i1 %375, i1 true, i1 %.02328.i.i - %376 = freeze i1 %spec.select.i.i - br label %377 + br label %376 377: ; preds = %_ZL14mi_arena_purgeP10mi_arena_smm.exit.i, %.critedge.i.i - %.1.i.i = phi i1 [ %376, %_ZL14mi_arena_purgeP10mi_arena_smm.exit.i ], [ %.02328.i.i, %.critedge.i.i ] + %.1.i.i = phi i1 [ %spec.select.i.i, %_ZL14mi_arena_purgeP10mi_arena_smm.exit.i ], [ %.02328.i.i, %.critedge.i.i ] %378 = add i64 %.029.i.i, 1 %379 = add i64 %378, %.022.lcssa.i.i %380 = icmp ult i64 %379, %97 @@ -9308,7 +9307,7 @@ _ZL18mi_arena_try_purgeP10mi_arena_slb.exit: ; preds = %._crit_edge.i br label %_ZL18mi_arena_try_purgeP10mi_arena_slb.exit.thread _ZL18mi_arena_try_purgeP10mi_arena_slb.exit.thread: ; preds = %_ZSt39atomic_compare_exchange_strong_explicitIlEbPSt6atomicIT_EPNSt15__type_identityIS1_E4typeES6_St12memory_orderS8_.exit.i, %57, %50, %_ZL18mi_arena_try_purgeP10mi_arena_slb.exit, %411, %47, %_ZL20mi_arena_purge_delayv.exit.i - %.224.ph = phi i64 [ %.02251, %_ZL20mi_arena_purge_delayv.exit.i ], [ %.02251, %47 ], [ %.02251, %_ZL18mi_arena_try_purgeP10mi_arena_slb.exit ], [ %412, %411 ], [ %.02251, %50 ], [ %.02251, %57 ], [ %.02251, %_ZSt39atomic_compare_exchange_strong_explicitIlEbPSt6atomicIT_EPNSt15__type_identityIS1_E4typeES6_St12memory_orderS8_.exit.i ] + %.224.ph = phi i64 [ %.02251, %_ZL20mi_arena_purge_delayv.exit.i ], [ %.02251, %47 ], [ %.02251, %_ZL18mi_arena_try_purgeP10mi_arena_slb.exit ], [ %412, %410 ], [ %.02251, %50 ], [ %.02251, %57 ], [ %.02251, %_ZSt39atomic_compare_exchange_strong_explicitIlEbPSt6atomicIT_EPNSt15__type_identityIS1_E4typeES6_St12memory_orderS8_.exit.i ] %413 = add nuw i64 %.02052, 1 %exitcond.not = icmp eq i64 %413, %30 br i1 %exitcond.not, label %414, label %47, !llvm.loop !165 diff --git a/bench/libcxx/optimized/path.ll b/bench/libcxx/optimized/path.ll index db2898d2ce4..609ecd47f39 100644 --- a/bench/libcxx/optimized/path.ll +++ b/bench/libcxx/optimized/path.ll @@ -1038,7 +1038,7 @@ _ZNSt3__1eqB8ne210000IcNS_11char_traitsIcEELi1EEEbNS_17basic_string_viewIT_T0_EE store i64 %.sroa.6.0.i108.ph, ptr %.sroa.3.0..sroa_idx3.i, align 8, !tbaa !19 %40 = getelementptr inbounds nuw i8, ptr %.sroa.17.0, i64 16 store i8 %.0.i.ph, ptr %40, align 8, !tbaa !58 - %41 = getelementptr i8, ptr %.sroa.17.0, i64 24 + %41 = getelementptr inbounds nuw i8, ptr %.sroa.17.0, i64 24 br label %"_ZZNKSt3__14__fs10filesystem4path16lexically_normalEvENK3$_0clENS1_12PathPartKindENS_17basic_string_viewIcNS_11char_traitsIcEEEE.exit" 42: ; preds = %_ZNSt3__1eqB8ne210000IcNS_11char_traitsIcEELi1EEEbNS_17basic_string_viewIT_T0_EENS_15__type_identityIS6_E4typeE.exit14.thread.fold.split.i @@ -1080,24 +1080,20 @@ _ZNKSt3__16vectorINS_4pairINS_17basic_string_viewIcNS_11char_traitsIcEEEENS_4__f _ZNSt3__119__allocate_at_leastB8ne210000INS_9allocatorINS_4pairINS_17basic_string_viewIcNS_11char_traitsIcEEEENS_4__fs10filesystem12PathPartKindEEEEEEEDaRT_m.exit.i.i.i.i: ; preds = %_ZNKSt3__16vectorINS_4pairINS_17basic_string_viewIcNS_11char_traitsIcEEEENS_4__fs10filesystem12PathPartKindEEENS_9allocatorIS9_EEE11__recommendB8ne210000Em.exit.i.i.i %57 = mul nuw i64 %.0.i.i.i.i, 24 %58 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %57) #22 - to label %.noexc46 unwind label %.loopexit141 + to label %59 unwind label %.loopexit141 .noexc46: ; preds = %_ZNSt3__119__allocate_at_leastB8ne210000INS_9allocatorINS_4pairINS_17basic_string_viewIcNS_11char_traitsIcEEEENS_4__fs10filesystem12PathPartKindEEEEEEEDaRT_m.exit.i.i.i.i %59 = getelementptr inbounds nuw i8, ptr %58, i64 %45 - %60 = getelementptr inbounds nuw %"struct.std::__1::pair.2", ptr %58, i64 %.0.i.i.i.i store ptr %.sroa.0.0.i109.ph, ptr %59, align 8, !tbaa !13 %.sroa.3.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %59, i64 8 store i64 %.sroa.6.0.i108.ph, ptr %.sroa.3.0..sroa_idx.i, align 8, !tbaa !19 %61 = getelementptr inbounds nuw i8, ptr %59, i64 16 store i8 %.0.i.ph, ptr %61, align 8, !tbaa !58 - %62 = getelementptr i8, ptr %59, i64 24 - %.neg.i.i.i.i = sdiv i64 %45, -24 - %63 = getelementptr %"struct.std::__1::pair.2", ptr %59, i64 %.neg.i.i.i.i - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %63, ptr align 8 %.sroa.0.0, i64 %45, i1 false) - %.not.i4.i.i.i = icmp eq ptr %.sroa.0.0, null - br i1 %.not.i4.i.i.i, label %"_ZZNKSt3__14__fs10filesystem4path16lexically_normalEvENK3$_0clENS1_12PathPartKindENS_17basic_string_viewIcNS_11char_traitsIcEEEE.exit", label %64 - -64: ; preds = %.noexc46 + %.neg.i.i.i.i = sdiv exact i64 %45, -24 + %62 = getelementptr inbounds %"struct.std::__1::pair.2", ptr %60, i64 %.neg.i.i.i.i + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %62, ptr align 8 %.sroa.0.0, i64 %45, i1 false) + %63 = getelementptr inbounds nuw i8, ptr %60, i64 24 + %64 = getelementptr inbounds nuw %"struct.std::__1::pair.2", ptr %58, i64 %.0.i.i.i.i call void @_ZdlPvm(ptr noundef nonnull %.sroa.0.0, i64 noundef %51) #21 br label %"_ZZNKSt3__14__fs10filesystem4path16lexically_normalEvENK3$_0clENS1_12PathPartKindENS_17basic_string_viewIcNS_11char_traitsIcEEEE.exit" @@ -1114,7 +1110,7 @@ _ZNSt3__14__fs10filesystemL16ClassifyPathPartENS_17basic_string_viewIcNS_11char_ ] 68: ; preds = %"_ZZNKSt3__14__fs10filesystem4path16lexically_normalEvENK3$_1clEv.exit" - %69 = getelementptr i8, ptr %.sroa.17.0, i64 -24 + %69 = getelementptr inbounds i8, ptr %.sroa.17.0, i64 -24 %70 = getelementptr inbounds i8, ptr %.sroa.17.0, i64 -16 %71 = load i64, ptr %70, align 8, !tbaa !32 %72 = sub i64 %.0, %71 @@ -1141,7 +1137,7 @@ _ZNSt3__14__fs10filesystemL16ClassifyPathPartENS_17basic_string_viewIcNS_11char_ store i64 2, ptr %.sroa.3.0..sroa_idx3.i58, align 8, !tbaa !19 %76 = getelementptr inbounds nuw i8, ptr %.sroa.17.0, i64 16 store i8 4, ptr %76, align 8, !tbaa !58 - %77 = getelementptr i8, ptr %.sroa.17.0, i64 24 + %77 = getelementptr inbounds nuw i8, ptr %.sroa.17.0, i64 24 br label %"_ZZNKSt3__14__fs10filesystem4path16lexically_normalEvENK3$_0clENS1_12PathPartKindENS_17basic_string_viewIcNS_11char_traitsIcEEEE.exit" 78: ; preds = %.thread @@ -1183,33 +1179,29 @@ _ZNKSt3__16vectorINS_4pairINS_17basic_string_viewIcNS_11char_traitsIcEEEENS_4__f _ZNSt3__119__allocate_at_leastB8ne210000INS_9allocatorINS_4pairINS_17basic_string_viewIcNS_11char_traitsIcEEEENS_4__fs10filesystem12PathPartKindEEEEEEEDaRT_m.exit.i.i.i.i53: ; preds = %_ZNKSt3__16vectorINS_4pairINS_17basic_string_viewIcNS_11char_traitsIcEEEENS_4__fs10filesystem12PathPartKindEEENS_9allocatorIS9_EEE11__recommendB8ne210000Em.exit.i.i.i49 %93 = mul nuw i64 %.0.i.i.i.i52, 24 %94 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %93) #22 - to label %.noexc61 unwind label %.loopexit + to label %95 unwind label %.loopexit .noexc61: ; preds = %_ZNSt3__119__allocate_at_leastB8ne210000INS_9allocatorINS_4pairINS_17basic_string_viewIcNS_11char_traitsIcEEEENS_4__fs10filesystem12PathPartKindEEEEEEEDaRT_m.exit.i.i.i.i53 %95 = getelementptr inbounds nuw i8, ptr %94, i64 %81 - %96 = getelementptr inbounds nuw %"struct.std::__1::pair.2", ptr %94, i64 %.0.i.i.i.i52 - store ptr @.str.1, ptr %95, align 8, !tbaa !13 + store ptr @.str.1, ptr %96, align 8, !tbaa !13 %.sroa.3.0..sroa_idx.i54 = getelementptr inbounds nuw i8, ptr %95, i64 8 store i64 2, ptr %.sroa.3.0..sroa_idx.i54, align 8, !tbaa !19 %97 = getelementptr inbounds nuw i8, ptr %95, i64 16 store i8 4, ptr %97, align 8, !tbaa !58 - %98 = getelementptr i8, ptr %95, i64 24 - %.neg.i.i.i.i55 = sdiv i64 %81, -24 - %99 = getelementptr %"struct.std::__1::pair.2", ptr %95, i64 %.neg.i.i.i.i55 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %99, ptr align 8 %.sroa.0.0, i64 %81, i1 false) - %.not.i4.i.i.i56 = icmp eq ptr %.sroa.0.0, null - br i1 %.not.i4.i.i.i56, label %"_ZZNKSt3__14__fs10filesystem4path16lexically_normalEvENK3$_0clENS1_12PathPartKindENS_17basic_string_viewIcNS_11char_traitsIcEEEE.exit", label %100 - -100: ; preds = %.noexc61 + %.neg.i.i.i.i55 = sdiv exact i64 %81, -24 + %98 = getelementptr inbounds %"struct.std::__1::pair.2", ptr %96, i64 %.neg.i.i.i.i55 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %98, ptr align 8 %.sroa.0.0, i64 %81, i1 false) + %99 = getelementptr inbounds nuw i8, ptr %96, i64 24 + %100 = getelementptr inbounds nuw %"struct.std::__1::pair.2", ptr %94, i64 %.0.i.i.i.i52 call void @_ZdlPvm(ptr noundef nonnull %.sroa.0.0, i64 noundef %87) #21 br label %"_ZZNKSt3__14__fs10filesystem4path16lexically_normalEvENK3$_0clENS1_12PathPartKindENS_17basic_string_viewIcNS_11char_traitsIcEEEE.exit" -"_ZZNKSt3__14__fs10filesystem4path16lexically_normalEvENK3$_0clENS1_12PathPartKindENS_17basic_string_viewIcNS_11char_traitsIcEEEE.exit": ; preds = %"_ZZNKSt3__14__fs10filesystem4path16lexically_normalEvENK3$_1clEv.exit", %26, %_ZNSt3__1eqB8ne210000IcNS_11char_traitsIcEELi1EEEbNS_17basic_string_viewIT_T0_EENS_15__type_identityIS6_E4typeE.exit.i, %_ZNKSt3__14__fs10filesystem6parser10PathParserdeB8ne210000Ev.exit, %100, %.noexc61, %75, %64, %.noexc46, %39, %68 - %.sroa.0.2 = phi ptr [ %.sroa.0.0, %68 ], [ %.sroa.0.0, %39 ], [ %63, %.noexc46 ], [ %63, %64 ], [ %.sroa.0.0, %75 ], [ %99, %.noexc61 ], [ %99, %100 ], [ %.sroa.0.0, %_ZNKSt3__14__fs10filesystem6parser10PathParserdeB8ne210000Ev.exit ], [ %.sroa.0.0, %_ZNSt3__1eqB8ne210000IcNS_11char_traitsIcEELi1EEEbNS_17basic_string_viewIT_T0_EENS_15__type_identityIS6_E4typeE.exit.i ], [ %.sroa.0.0, %26 ], [ %.sroa.0.0, %"_ZZNKSt3__14__fs10filesystem4path16lexically_normalEvENK3$_1clEv.exit" ] - %.sroa.17.1 = phi ptr [ %69, %68 ], [ %41, %39 ], [ %62, %.noexc46 ], [ %62, %64 ], [ %77, %75 ], [ %98, %.noexc61 ], [ %98, %100 ], [ %.sroa.17.0, %_ZNKSt3__14__fs10filesystem6parser10PathParserdeB8ne210000Ev.exit ], [ %.sroa.17.0, %_ZNSt3__1eqB8ne210000IcNS_11char_traitsIcEELi1EEEbNS_17basic_string_viewIT_T0_EENS_15__type_identityIS6_E4typeE.exit.i ], [ %.sroa.17.0, %26 ], [ %.sroa.17.0, %"_ZZNKSt3__14__fs10filesystem4path16lexically_normalEvENK3$_1clEv.exit" ] - %.sroa.35.2 = phi ptr [ %.sroa.35.0, %68 ], [ %.sroa.35.0, %39 ], [ %60, %.noexc46 ], [ %60, %64 ], [ %.sroa.35.0, %75 ], [ %96, %.noexc61 ], [ %96, %100 ], [ %.sroa.35.0, %_ZNKSt3__14__fs10filesystem6parser10PathParserdeB8ne210000Ev.exit ], [ %.sroa.35.0, %_ZNSt3__1eqB8ne210000IcNS_11char_traitsIcEELi1EEEbNS_17basic_string_viewIT_T0_EENS_15__type_identityIS6_E4typeE.exit.i ], [ %.sroa.35.0, %26 ], [ %.sroa.35.0, %"_ZZNKSt3__14__fs10filesystem4path16lexically_normalEvENK3$_1clEv.exit" ] - %.1 = phi i64 [ %72, %68 ], [ %37, %39 ], [ %37, %.noexc46 ], [ %37, %64 ], [ %73, %75 ], [ %73, %.noexc61 ], [ %73, %100 ], [ %.0, %_ZNKSt3__14__fs10filesystem6parser10PathParserdeB8ne210000Ev.exit ], [ %.0, %_ZNSt3__1eqB8ne210000IcNS_11char_traitsIcEELi1EEEbNS_17basic_string_viewIT_T0_EENS_15__type_identityIS6_E4typeE.exit.i ], [ %.0, %26 ], [ %.0, %"_ZZNKSt3__14__fs10filesystem4path16lexically_normalEvENK3$_1clEv.exit" ] - %.125 = phi i1 [ true, %68 ], [ false, %39 ], [ false, %.noexc46 ], [ false, %64 ], [ false, %75 ], [ false, %.noexc61 ], [ false, %100 ], [ true, %_ZNKSt3__14__fs10filesystem6parser10PathParserdeB8ne210000Ev.exit ], [ true, %_ZNSt3__1eqB8ne210000IcNS_11char_traitsIcEELi1EEEbNS_17basic_string_viewIT_T0_EENS_15__type_identityIS6_E4typeE.exit.i ], [ true, %26 ], [ false, %"_ZZNKSt3__14__fs10filesystem4path16lexically_normalEvENK3$_1clEv.exit" ] +"_ZZNKSt3__14__fs10filesystem4path16lexically_normalEvENK3$_0clENS1_12PathPartKindENS_17basic_string_viewIcNS_11char_traitsIcEEEE.exit": ; preds = %"_ZZNKSt3__14__fs10filesystem4path16lexically_normalEvENK3$_1clEv.exit", %26, %_ZNSt3__1eqB8ne210000IcNS_11char_traitsIcEELi1EEEbNS_17basic_string_viewIT_T0_EENS_15__type_identityIS6_E4typeE.exit.i, %_ZNKSt3__14__fs10filesystem6parser10PathParserdeB8ne210000Ev.exit, %.noexc61, %75, %.noexc46, %39, %68 + %.sroa.0.2 = phi ptr [ %.sroa.0.0, %68 ], [ %.sroa.0.0, %39 ], [ %62, %59 ], [ %.sroa.0.0, %75 ], [ %98, %95 ], [ %.sroa.0.0, %_ZNKSt3__14__fs10filesystem6parser10PathParserdeB8ne210000Ev.exit ], [ %.sroa.0.0, %_ZNSt3__1eqB8ne210000IcNS_11char_traitsIcEELi1EEEbNS_17basic_string_viewIT_T0_EENS_15__type_identityIS6_E4typeE.exit.i ], [ %.sroa.0.0, %26 ], [ %.sroa.0.0, %"_ZZNKSt3__14__fs10filesystem4path16lexically_normalEvENK3$_1clEv.exit" ] + %.sroa.17.1 = phi ptr [ %69, %68 ], [ %41, %39 ], [ %63, %59 ], [ %77, %75 ], [ %99, %95 ], [ %.sroa.17.0, %_ZNKSt3__14__fs10filesystem6parser10PathParserdeB8ne210000Ev.exit ], [ %.sroa.17.0, %_ZNSt3__1eqB8ne210000IcNS_11char_traitsIcEELi1EEEbNS_17basic_string_viewIT_T0_EENS_15__type_identityIS6_E4typeE.exit.i ], [ %.sroa.17.0, %26 ], [ %.sroa.17.0, %"_ZZNKSt3__14__fs10filesystem4path16lexically_normalEvENK3$_1clEv.exit" ] + %.sroa.35.2 = phi ptr [ %.sroa.35.0, %68 ], [ %.sroa.35.0, %39 ], [ %64, %59 ], [ %.sroa.35.0, %75 ], [ %100, %95 ], [ %.sroa.35.0, %_ZNKSt3__14__fs10filesystem6parser10PathParserdeB8ne210000Ev.exit ], [ %.sroa.35.0, %_ZNSt3__1eqB8ne210000IcNS_11char_traitsIcEELi1EEEbNS_17basic_string_viewIT_T0_EENS_15__type_identityIS6_E4typeE.exit.i ], [ %.sroa.35.0, %26 ], [ %.sroa.35.0, %"_ZZNKSt3__14__fs10filesystem4path16lexically_normalEvENK3$_1clEv.exit" ] + %.1 = phi i64 [ %72, %68 ], [ %37, %39 ], [ %37, %59 ], [ %73, %75 ], [ %73, %95 ], [ %.0, %_ZNKSt3__14__fs10filesystem6parser10PathParserdeB8ne210000Ev.exit ], [ %.0, %_ZNSt3__1eqB8ne210000IcNS_11char_traitsIcEELi1EEEbNS_17basic_string_viewIT_T0_EENS_15__type_identityIS6_E4typeE.exit.i ], [ %.0, %26 ], [ %.0, %"_ZZNKSt3__14__fs10filesystem4path16lexically_normalEvENK3$_1clEv.exit" ] + %.125 = phi i1 [ true, %68 ], [ false, %39 ], [ false, %59 ], [ false, %75 ], [ false, %95 ], [ true, %_ZNKSt3__14__fs10filesystem6parser10PathParserdeB8ne210000Ev.exit ], [ true, %_ZNSt3__1eqB8ne210000IcNS_11char_traitsIcEELi1EEEbNS_17basic_string_viewIT_T0_EENS_15__type_identityIS6_E4typeE.exit.i ], [ true, %26 ], [ false, %"_ZZNKSt3__14__fs10filesystem4path16lexically_normalEvENK3$_1clEv.exit" ] call void @_ZNSt3__14__fs10filesystem6parser10PathParser9incrementB8ne210000Ev(ptr noundef nonnull align 8 dereferenceable(33) %3) #19 br label %26, !llvm.loop !61 @@ -1339,11 +1331,7 @@ _ZNSt3__14__fs10filesystem4pathdVB8ne210000INS_17basic_string_viewIcNS_11char_tr call void @_ZdlPvm(ptr noundef %155, i64 noundef %157) #21 br label %.body -_ZNSt3__14__fs10filesystem4pathC2B8ne210000IA2_cvEERKT_NS2_6formatE.exit: ; preds = %._crit_edge, %148, %102 - %.not.i.i74 = icmp eq ptr %.sroa.0.0, null - br i1 %.not.i.i74, label %_ZNSt3__14__fs10filesystem4pathC2B8ne210000ERKS2_.exit, label %158 - -158: ; preds = %_ZNSt3__14__fs10filesystem4pathC2B8ne210000IA2_cvEERKT_NS2_6formatE.exit +_ZNSt3__14__fs10filesystem4pathC2B8ne210000IA2_cvEERKT_NS2_6formatE.exit:; preds = %102, %148, %._crit_edge %159 = ptrtoint ptr %.sroa.35.0 to i64 %160 = ptrtoint ptr %.sroa.0.0 to i64 %161 = sub i64 %159, %160 @@ -1352,20 +1340,13 @@ _ZNSt3__14__fs10filesystem4pathC2B8ne210000IA2_cvEERKT_NS2_6formatE.exit: ; pred .body: ; preds = %101, %104, %108, %150, %153 %.pn28.pn.pn = phi { ptr, i32 } [ %.pn28, %101 ], [ %105, %108 ], [ %105, %104 ], [ %.pn, %150 ], [ %.pn, %153 ] - %.not.i.i75 = icmp eq ptr %.sroa.0.0, null - br i1 %.not.i.i75, label %_ZNSt3__16vectorINS_4pairINS_17basic_string_viewIcNS_11char_traitsIcEEEENS_4__fs10filesystem12PathPartKindEEENS_9allocatorIS9_EEED2B8ne210000Ev.exit76, label %162 - -162: ; preds = %.body - %163 = ptrtoint ptr %.sroa.35.0 to i64 - %164 = ptrtoint ptr %.sroa.0.0 to i64 - %165 = sub i64 %163, %164 - call void @_ZdlPvm(ptr noundef nonnull %.sroa.0.0, i64 noundef %165) #21 - br label %_ZNSt3__16vectorINS_4pairINS_17basic_string_viewIcNS_11char_traitsIcEEEENS_4__fs10filesystem12PathPartKindEEENS_9allocatorIS9_EEED2B8ne210000Ev.exit76 - -_ZNSt3__16vectorINS_4pairINS_17basic_string_viewIcNS_11char_traitsIcEEEENS_4__fs10filesystem12PathPartKindEEENS_9allocatorIS9_EEED2B8ne210000Ev.exit76: ; preds = %.body, %162 + %161 = ptrtoint ptr %.sroa.35.0 to i64 + %162 = ptrtoint ptr %.sroa.0.0 to i64 + %163 = sub i64 %161, %162 + call void @_ZdlPvm(ptr noundef nonnull %.sroa.0.0, i64 noundef %163) #21 resume { ptr, i32 } %.pn28.pn.pn -_ZNSt3__14__fs10filesystem4pathC2B8ne210000ERKS2_.exit: ; preds = %158, %_ZNSt3__14__fs10filesystem4pathC2B8ne210000IA2_cvEERKT_NS2_6formatE.exit, %14, %13 +_ZNSt3__14__fs10filesystem4pathC2B8ne210000ERKS2_.exit: ; preds = %_ZNSt3__14__fs10filesystem4pathC2B8ne210000IA2_cvEERKT_NS2_6formatE.exit, %14, %13 ret void } diff --git a/bench/libigl/optimized/sum.ll b/bench/libigl/optimized/sum.ll index c15ed8d29d5..6b6c6704915 100644 --- a/bench/libigl/optimized/sum.ll +++ b/bench/libigl/optimized/sum.ll @@ -356,10 +356,9 @@ _ZN5Eigen20SparseCompressedBaseINS_12SparseMatrixIbLi0EiEEE13InnerIteratorC2ERKS br i1 %exitcond15.not.i.us, label %._crit_edge.i.us, label %.lr.ph.split.us.i.us, !llvm.loop !53 ._crit_edge.i.us: ; preds = %.lr.ph.split.i.us.us, %.lr.ph.split.us.i.us, %_ZN5Eigen20SparseCompressedBaseINS_12SparseMatrixIbLi0EiEEE13InnerIteratorC2ERKS3_l.exit.i.us - %indvars.iv.next.i.us = add i64 %indvars.iv.i.us, 1 - %53 = and i64 %indvars.iv.next.i.us, 4294967295 - %54 = icmp samesign ugt i64 %18, %53 - br i1 %54, label %.lr.ph12.i.split.us, label %_ZN3igl8for_eachIbZNS_5reduxIbZNS_3sumIbN5Eigen6MatrixIiLin1ELi1ELi0ELin1ELi1EEEEEvRKNS3_12SparseMatrixIT_Li0EiEEiRNS3_15PlainObjectBaseIT0_EEEUliiE_S5_EEvSA_iRKSC_RNSB_IT1_EEEUliibE_EEvSA_SH_.exit, !llvm.loop !54 + %indvars.iv.next.i.us = add nuw nsw i64 %indvars.iv.i.us, 1 + %exitcond17.not.i.us = icmp eq i64 %indvars.iv.next.i.us, %18 + br i1 %exitcond17.not.i.us, label %_ZN3igl8for_eachIbZNS_5reduxIbZNS_3sumIbN5Eigen6MatrixIiLin1ELi1ELi0ELin1ELi1EEEEEvRKNS3_12SparseMatrixIT_Li0EiEEiRNS3_15PlainObjectBaseIT0_EEEUliiE_S5_EEvSA_iRKSC_RNSB_IT1_EEEUliibE_EEvSA_SH_.exit, label %.lr.ph12.i.split.us, !llvm.loop !54 .lr.ph.split.us.i.preheader.us: ; preds = %.lr.ph.i.us %.pre13.i.us.i.promoted = load i32, ptr %.pre13.i.i, align 4 @@ -392,15 +391,15 @@ _ZN5Eigen20SparseCompressedBaseINS_12SparseMatrixIbLi0EiEEE13InnerIteratorC2ERKS _ZN5Eigen20SparseCompressedBaseINS_12SparseMatrixIbLi0EiEEE13InnerIteratorC2ERKS3_l.exit.i.us15: ; preds = %.lr.ph12.i.split, %._crit_edge.i.us22 %indvars.iv.i.us14 = phi i64 [ %indvars.iv.next.i.us23, %._crit_edge.i.us22 ], [ 0, %.lr.ph12.i.split ] %66 = getelementptr inbounds nuw i32, ptr %25, i64 %indvars.iv.i.us14 + %65 = load i32, ptr %64, align 4, !tbaa !26 + %66 = getelementptr i8, ptr %64, i64 4 %67 = load i32, ptr %66, align 4, !tbaa !26 - %68 = getelementptr i8, ptr %66, i64 4 - %69 = load i32, ptr %68, align 4, !tbaa !26 - %70 = sext i32 %69 to i64 - %71 = icmp sgt i32 %69, %67 - br i1 %71, label %.lr.ph.i.us17, label %._crit_edge.i.us22 + %68 = sext i32 %67 to i64 + %69 = icmp sgt i32 %67, %65 + br i1 %69, label %.lr.ph.i.us17, label %._crit_edge.i.us22 .lr.ph.i.us17: ; preds = %_ZN5Eigen20SparseCompressedBaseINS_12SparseMatrixIbLi0EiEEE13InnerIteratorC2ERKS3_l.exit.i.us15 - %72 = sext i32 %67 to i64 + %72 = sext i32 %65 to i64 %73 = icmp eq i64 %indvars.iv.i.us14, 0 br i1 %73, label %.lr.ph.split.us.i.us18, label %.lr.ph.split.i.us @@ -417,7 +416,7 @@ _ZN5Eigen20SparseCompressedBaseINS_12SparseMatrixIbLi0EiEEE13InnerIteratorC2ERKS %82 = add nsw i32 %81, %78 store i32 %82, ptr %80, align 4, !tbaa !26 %83 = add nsw i64 %.sroa.8.09.i.us, 1 - %exitcond.not.i.us = icmp eq i64 %83, %70 + %exitcond.not.i.us = icmp eq i64 %83, %68 br i1 %exitcond.not.i.us, label %._crit_edge.i.us22, label %.lr.ph.split.i.us, !llvm.loop !56 .lr.ph.split.us.i.us18: ; preds = %.lr.ph.i.us17, %.lr.ph.split.us.i.us18 @@ -431,14 +430,13 @@ _ZN5Eigen20SparseCompressedBaseINS_12SparseMatrixIbLi0EiEEE13InnerIteratorC2ERKS %90 = getelementptr inbounds i32, ptr %.pre13.i.i, i64 %89 store i32 %88, ptr %90, align 4, !tbaa !26 %91 = add nsw i64 %.sroa.8.09.us.i.us19, 1 - %exitcond15.not.i.us21 = icmp eq i64 %91, %70 + %exitcond15.not.i.us21 = icmp eq i64 %91, %68 br i1 %exitcond15.not.i.us21, label %._crit_edge.i.us22, label %.lr.ph.split.us.i.us18, !llvm.loop !53 ._crit_edge.i.us22: ; preds = %.lr.ph.split.i.us, %.lr.ph.split.us.i.us18, %_ZN5Eigen20SparseCompressedBaseINS_12SparseMatrixIbLi0EiEEE13InnerIteratorC2ERKS3_l.exit.i.us15 - %indvars.iv.next.i.us23 = add i64 %indvars.iv.i.us14, 1 - %92 = and i64 %indvars.iv.next.i.us23, 4294967295 - %93 = icmp samesign ugt i64 %18, %92 - br i1 %93, label %_ZN5Eigen20SparseCompressedBaseINS_12SparseMatrixIbLi0EiEEE13InnerIteratorC2ERKS3_l.exit.i.us15, label %_ZN3igl8for_eachIbZNS_5reduxIbZNS_3sumIbN5Eigen6MatrixIiLin1ELi1ELi0ELin1ELi1EEEEEvRKNS3_12SparseMatrixIT_Li0EiEEiRNS3_15PlainObjectBaseIT0_EEEUliiE_S5_EEvSA_iRKSC_RNSB_IT1_EEEUliibE_EEvSA_SH_.exit, !llvm.loop !57 + %indvars.iv.next.i.us23 = add nuw nsw i64 %indvars.iv.i.us14, 1 + %exitcond17.not.i.us24 = icmp eq i64 %indvars.iv.next.i.us23, %18 + br i1 %exitcond17.not.i.us24, label %_ZN3igl8for_eachIbZNS_5reduxIbZNS_3sumIbN5Eigen6MatrixIiLin1ELi1ELi0ELin1ELi1EEEEEvRKNS3_12SparseMatrixIT_Li0EiEEiRNS3_15PlainObjectBaseIT0_EEEUliiE_S5_EEvSA_iRKSC_RNSB_IT1_EEEUliibE_EEvSA_SH_.exit, label %_ZN5Eigen20SparseCompressedBaseINS_12SparseMatrixIbLi0EiEEE13InnerIteratorC2ERKS3_l.exit.i.us15, !llvm.loop !57 _ZN5Eigen20SparseCompressedBaseINS_12SparseMatrixIbLi0EiEEE13InnerIteratorC2ERKS3_l.exit.i: ; preds = %.lr.ph12.i.split, %._crit_edge.i %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %._crit_edge.i ], [ 0, %.lr.ph12.i.split ] @@ -471,25 +469,24 @@ _ZN5Eigen20SparseCompressedBaseINS_12SparseMatrixIbLi0EiEEE13InnerIteratorC2ERKS br i1 %exitcond15.not.i, label %._crit_edge.i, label %.lr.ph.split.us.i, !llvm.loop !53 ._crit_edge.i: ; preds = %.lr.ph.split.i, %.lr.ph.split.us.i, %_ZN5Eigen20SparseCompressedBaseINS_12SparseMatrixIbLi0EiEEE13InnerIteratorC2ERKS3_l.exit.i - %indvars.iv.next.i = add i64 %indvars.iv.i, 1 - %111 = and i64 %indvars.iv.next.i, 4294967295 - %112 = icmp samesign ugt i64 %18, %111 - br i1 %112, label %_ZN5Eigen20SparseCompressedBaseINS_12SparseMatrixIbLi0EiEEE13InnerIteratorC2ERKS3_l.exit.i, label %_ZN3igl8for_eachIbZNS_5reduxIbZNS_3sumIbN5Eigen6MatrixIiLin1ELi1ELi0ELin1ELi1EEEEEvRKNS3_12SparseMatrixIT_Li0EiEEiRNS3_15PlainObjectBaseIT0_EEEUliiE_S5_EEvSA_iRKSC_RNSB_IT1_EEEUliibE_EEvSA_SH_.exit, !llvm.loop !58 + %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 + %exitcond17.not.i = icmp eq i64 %indvars.iv.next.i, %18 + br i1 %exitcond17.not.i, label %_ZN3igl8for_eachIbZNS_5reduxIbZNS_3sumIbN5Eigen6MatrixIiLin1ELi1ELi0ELin1ELi1EEEEEvRKNS3_12SparseMatrixIT_Li0EiEEiRNS3_15PlainObjectBaseIT0_EEEUliiE_S5_EEvSA_iRKSC_RNSB_IT1_EEEUliibE_EEvSA_SH_.exit, label %_ZN5Eigen20SparseCompressedBaseINS_12SparseMatrixIbLi0EiEEE13InnerIteratorC2ERKS3_l.exit.i, !llvm.loop !58 .lr.ph.split.i: ; preds = %.lr.ph.i, %.lr.ph.split.i - %.sroa.8.09.i = phi i64 [ %122, %.lr.ph.split.i ], [ %96, %.lr.ph.i ] + %.sroa.8.09.i = phi i64 [ %116, %.lr.ph.split.i ], [ %96, %.lr.ph.i ] %113 = getelementptr inbounds i32, ptr %23, i64 %.sroa.8.09.i + %108 = load i32, ptr %107, align 4, !tbaa !26 + %109 = getelementptr inbounds i8, ptr %21, i64 %.sroa.8.09.i + %110 = load i8, ptr %109, align 1, !tbaa !50, !range !51, !noundef !52 + %111 = zext nneg i8 %110 to i32 + %112 = sext i32 %108 to i64 + %113 = getelementptr inbounds i32, ptr %.pre13.i.i, i64 %112 %114 = load i32, ptr %113, align 4, !tbaa !26 - %115 = getelementptr inbounds i8, ptr %21, i64 %.sroa.8.09.i - %116 = load i8, ptr %115, align 1, !tbaa !50, !range !51, !noundef !52 - %117 = zext nneg i8 %116 to i32 - %118 = sext i32 %114 to i64 - %119 = getelementptr inbounds i32, ptr %.pre13.i.i, i64 %118 - %120 = load i32, ptr %119, align 4, !tbaa !26 - %121 = add nsw i32 %120, %117 - store i32 %121, ptr %119, align 4, !tbaa !26 - %122 = add nsw i64 %.sroa.8.09.i, 1 - %exitcond.not.i = icmp eq i64 %122, %100 + %115 = add nsw i32 %114, %111 + store i32 %115, ptr %113, align 4, !tbaa !26 + %116 = add nsw i64 %.sroa.8.09.i, 1 + %exitcond.not.i = icmp eq i64 %116, %96 br i1 %exitcond.not.i, label %._crit_edge.i, label %.lr.ph.split.i, !llvm.loop !56 _ZN3igl8for_eachIbZNS_5reduxIbZNS_3sumIbN5Eigen6MatrixIiLin1ELi1ELi0ELin1ELi1EEEEEvRKNS3_12SparseMatrixIT_Li0EiEEiRNS3_15PlainObjectBaseIT0_EEEUliiE_S5_EEvSA_iRKSC_RNSB_IT1_EEEUliibE_EEvSA_SH_.exit: ; preds = %._crit_edge.i, %._crit_edge.i.us22, %._crit_edge.i.us, %_ZN5Eigen15PlainObjectBaseINS_6MatrixIiLin1ELi1ELi0ELin1ELi1EEEEaSINS_14CwiseNullaryOpINS_8internal18scalar_constant_opIiEES2_EEEERS2_RKNS_9EigenBaseIT_EE.exit diff --git a/bench/libquic/optimized/p224-64.ll b/bench/libquic/optimized/p224-64.ll index 5e4bb0fa45d..2c59c7ec8ae 100644 --- a/bench/libquic/optimized/p224-64.ll +++ b/bench/libquic/optimized/p224-64.ll @@ -3081,8 +3081,7 @@ get_bit.exit79.i: ; preds = %155 %200 = or i64 %199, %198 %201 = lshr i64 %200, 2 %202 = or i64 %201, %200 - %.fr.i.i = freeze i64 %202 - %203 = and i64 %.fr.i.i, 3 + %203 = and i64 %202, 3 %204 = icmp eq i64 %203, 0 br i1 %204, label %.split.us.i.i, label %.split26.us.i.i @@ -3151,20 +3150,19 @@ get_bit.exit81.i: ; preds = %213, %212 br label %246 246: ; preds = %.split26.us.i90.i, %get_bit.exit81.i - %.02327.i88.i = phi i64 [ 0, %get_bit.exit81.i ], [ %261, %.split26.us.i90.i ] + %.02327.i88.i = phi i64 [ 0, %get_bit.exit81.i ], [ %261, %.split26.us.i89.i ] %247 = getelementptr inbounds nuw [3 x [4 x i64]], ptr @g_pre_comp, i64 %.02327.i88.i %248 = xor i64 %.02327.i88.i, %245 %249 = lshr i64 %248, 4 %250 = or i64 %249, %248 %251 = lshr i64 %250, 2 %252 = or i64 %251, %250 - %.fr.i89.i = freeze i64 %252 - %253 = and i64 %.fr.i89.i, 3 + %253 = and i64 %252, 3 %254 = icmp eq i64 %253, 0 br i1 %254, label %.split.us.i92.i, label %.split26.us.i90.i .split.us.i92.i: ; preds = %246, %.split.us.i92.i - %.024.us.i93.i = phi i64 [ %260, %.split.us.i92.i ], [ 0, %246 ] + %.024.us.i93.i = phi i64 [ %260, %.split.us.i91.i ], [ 0, %246 ] %255 = getelementptr inbounds nuw i64, ptr %247, i64 %.024.us.i93.i %256 = load i64, ptr %255, align 8, !tbaa !11 %257 = getelementptr inbounds nuw i64, ptr %12, i64 %.024.us.i93.i @@ -3185,7 +3183,7 @@ select_point.exit95.i: ; preds = %.split26.us.i90.i br label %262 262: ; preds = %select_point.exit95.i, %155 - %.1.i = phi i32 [ 0, %select_point.exit95.i ], [ %.067.i, %155 ] + %.1.i = phi i32 [ 0, %select_point.exit94.i ], [ %.067.i, %155 ] %263 = urem i64 %.066.i, 5 %264 = icmp eq i64 %263, 0 %or.cond73.i = select i1 %.not, i1 %264, i1 false @@ -3252,7 +3250,7 @@ get_bit.exit97.i: ; preds = %296, %.preheader.i br label %get_bit.exit99.i get_bit.exit99.i: ; preds = %305, %get_bit.exit97.i - %.0.i98.i = phi i8 [ %309, %305 ], [ 0, %get_bit.exit97.i ] + %.0.i98.i = phi i8 [ %309, %305 ], [ 0, %get_bit.exit96.i ] %310 = or disjoint i8 %.0.i98.i, %.0.i96.i br i1 %274, label %get_bit.exit101.i, label %311 @@ -3264,7 +3262,7 @@ get_bit.exit99.i: ; preds = %305, %get_bit.exit9 br label %get_bit.exit101.i get_bit.exit101.i: ; preds = %311, %get_bit.exit99.i - %.0.i100.i = phi i8 [ %315, %311 ], [ 0, %get_bit.exit99.i ] + %.0.i100.i = phi i8 [ %315, %311 ], [ 0, %get_bit.exit98.i ] %316 = or disjoint i8 %310, %.0.i100.i br i1 %280, label %get_bit.exit103.i, label %get_bit.exit103.thread.i @@ -3280,7 +3278,7 @@ get_bit.exit103.i: ; preds = %get_bit.exit101.i br i1 %285, label %get_bit.exit105.i, label %322 322: ; preds = %get_bit.exit103.i, %get_bit.exit103.thread.i - %323 = phi i8 [ %321, %get_bit.exit103.thread.i ], [ %316, %get_bit.exit103.i ] + %323 = phi i8 [ %321, %get_bit.exit102.thread.i ], [ %316, %get_bit.exit102.i ] %324 = load i8, ptr %287, align 1, !tbaa !6 %325 = lshr i8 %324, %289 %326 = shl i8 %325, 1 @@ -3288,8 +3286,8 @@ get_bit.exit103.i: ; preds = %get_bit.exit101.i br label %get_bit.exit105.i get_bit.exit105.i: ; preds = %322, %get_bit.exit103.i - %328 = phi i8 [ %323, %322 ], [ %316, %get_bit.exit103.i ] - %.0.i104.i = phi i8 [ %327, %322 ], [ 0, %get_bit.exit103.i ] + %328 = phi i8 [ %323, %322 ], [ %316, %get_bit.exit102.i ] + %.0.i104.i = phi i8 [ %327, %322 ], [ 0, %get_bit.exit102.i ] %329 = or disjoint i8 %.0.i104.i, %328 br i1 %291, label %get_bit.exit107.i, label %330 @@ -3300,7 +3298,7 @@ get_bit.exit105.i: ; preds = %322, %get_bit.exit1 br label %get_bit.exit107.i get_bit.exit107.i: ; preds = %330, %get_bit.exit105.i - %.0.i106.i = phi i8 [ %333, %330 ], [ 0, %get_bit.exit105.i ] + %.0.i106.i = phi i8 [ %333, %330 ], [ 0, %get_bit.exit104.i ] %334 = or disjoint i8 %329, %.0.i106.i call void @ec_GFp_nistp_recode_scalar_bits(ptr noundef nonnull %13, ptr noundef nonnull %14, i8 noundef zeroext %334) #10 %335 = load i8, ptr %14, align 1, !tbaa !6 @@ -3309,20 +3307,19 @@ get_bit.exit107.i: ; preds = %330, %get_bit.exit1 br label %337 337: ; preds = %.split26.us.i110.i, %get_bit.exit107.i - %.02327.i108.i = phi i64 [ 0, %get_bit.exit107.i ], [ %352, %.split26.us.i110.i ] + %.02327.i108.i = phi i64 [ 0, %get_bit.exit106.i ], [ %352, %.split26.us.i108.i ] %338 = getelementptr inbounds nuw [3 x [4 x i64]], ptr %.1138, i64 %.02327.i108.i %339 = xor i64 %.02327.i108.i, %336 %340 = lshr i64 %339, 4 %341 = or i64 %340, %339 %342 = lshr i64 %341, 2 %343 = or i64 %342, %341 - %.fr.i109.i = freeze i64 %343 - %344 = and i64 %.fr.i109.i, 3 + %344 = and i64 %343, 3 %345 = icmp eq i64 %344, 0 br i1 %345, label %.split.us.i112.i, label %.split26.us.i110.i .split.us.i112.i: ; preds = %337, %.split.us.i112.i - %.024.us.i113.i = phi i64 [ %351, %.split.us.i112.i ], [ 0, %337 ] + %.024.us.i113.i = phi i64 [ %351, %.split.us.i110.i ], [ 0, %337 ] %346 = getelementptr inbounds nuw i64, ptr %338, i64 %.024.us.i113.i %347 = load i64, ptr %346, align 8, !tbaa !11 %348 = getelementptr inbounds nuw i64, ptr %12, i64 %.024.us.i113.i @@ -3357,7 +3354,7 @@ select_point.exit115.i: ; preds = %.split26.us.i110.i br label %364 364: ; preds = %364, %select_point.exit115.i - %.010.i.i = phi i64 [ 0, %select_point.exit115.i ], [ %372, %364 ] + %.010.i.i = phi i64 [ 0, %select_point.exit113.i ], [ %372, %364 ] %365 = getelementptr inbounds nuw i64, ptr %146, i64 %.010.i.i %366 = load i64, ptr %365, align 8, !tbaa !11 %367 = getelementptr inbounds nuw i64, ptr %144, i64 %.010.i.i diff --git a/bench/libquic/optimized/p256-64.ll b/bench/libquic/optimized/p256-64.ll index 612ade599f6..b370777b00d 100644 --- a/bench/libquic/optimized/p256-64.ll +++ b/bench/libquic/optimized/p256-64.ll @@ -2646,8 +2646,7 @@ get_bit.exit.i: ; preds = %598 %630 = or i64 %629, %628 %631 = lshr i64 %630, 2 %632 = or i64 %631, %630 - %.fr.i.i = freeze i64 %632 - %633 = and i64 %.fr.i.i, 3 + %633 = and i64 %632, 3 %634 = icmp eq i64 %633, 0 br i1 %634, label %.split.us.i.i, label %.split26.us.i.i @@ -2746,20 +2745,19 @@ get_bit.exit85.i: ; preds = %643, %642 br label %692 692: ; preds = %.split26.us.i97.i, %get_bit.exit85.i - %.02327.i95.i = phi i64 [ 0, %get_bit.exit85.i ], [ %707, %.split26.us.i97.i ] + %.02327.i95.i = phi i64 [ 0, %get_bit.exit85.i ], [ %707, %.split26.us.i96.i ] %693 = getelementptr inbounds nuw [3 x [4 x i64]], ptr @g_pre_comp, i64 %.02327.i95.i %694 = xor i64 %.02327.i95.i, %691 %695 = lshr i64 %694, 4 %696 = or i64 %695, %694 %697 = lshr i64 %696, 2 %698 = or i64 %697, %696 - %.fr.i96.i = freeze i64 %698 - %699 = and i64 %.fr.i96.i, 3 + %699 = and i64 %698, 3 %700 = icmp eq i64 %699, 0 br i1 %700, label %.split.us.i99.i, label %.split26.us.i97.i .split.us.i99.i: ; preds = %692, %.split.us.i99.i - %.024.us.i100.i = phi i64 [ %706, %.split.us.i99.i ], [ 0, %692 ] + %.024.us.i100.i = phi i64 [ %706, %.split.us.i98.i ], [ 0, %692 ] %701 = getelementptr inbounds nuw i64, ptr %693, i64 %.024.us.i100.i %702 = load i64, ptr %701, align 8, !tbaa !18 %703 = getelementptr inbounds nuw i64, ptr %13, i64 %.024.us.i100.i @@ -2780,7 +2778,7 @@ select_point.exit102.i: ; preds = %.split26.us.i97.i br label %708 708: ; preds = %select_point.exit102.i, %598 - %.1.i = phi i32 [ 0, %select_point.exit102.i ], [ %.0.i, %598 ] + %.1.i = phi i32 [ 0, %select_point.exit101.i ], [ %.0.i, %598 ] %709 = urem i64 %.067.i, 5 %710 = icmp eq i64 %709, 0 %or.cond73.i = select i1 %.not, i1 %710, i1 false @@ -2848,7 +2846,7 @@ get_bit.exit105.i: ; preds = %737, %.preheader.i br label %get_bit.exit108.i get_bit.exit108.i: ; preds = %748, %get_bit.exit105.i - %.0.i107.i = phi i8 [ %754, %748 ], [ 0, %get_bit.exit105.i ] + %.0.i107.i = phi i8 [ %754, %748 ], [ 0, %get_bit.exit104.i ] %755 = or disjoint i8 %.0.i107.i, %.0.i104.i br i1 %or.cond.i109.i, label %get_bit.exit111.i, label %756 @@ -2862,7 +2860,7 @@ get_bit.exit108.i: ; preds = %748, %get_bit.exit1 br label %get_bit.exit111.i get_bit.exit111.i: ; preds = %756, %get_bit.exit108.i - %.0.i110.i = phi i8 [ %762, %756 ], [ 0, %get_bit.exit108.i ] + %.0.i110.i = phi i8 [ %762, %756 ], [ 0, %get_bit.exit107.i ] %763 = or disjoint i8 %755, %.0.i110.i br i1 %or.cond.i112.i, label %get_bit.exit114.i, label %764 @@ -2876,7 +2874,7 @@ get_bit.exit111.i: ; preds = %756, %get_bit.exit1 br label %get_bit.exit114.i get_bit.exit114.i: ; preds = %764, %get_bit.exit111.i - %.0.i113.i = phi i8 [ %770, %764 ], [ 0, %get_bit.exit111.i ] + %.0.i113.i = phi i8 [ %770, %764 ], [ 0, %get_bit.exit110.i ] %771 = or disjoint i8 %763, %.0.i113.i br i1 %or.cond.i115.i, label %get_bit.exit117.i, label %772 @@ -2890,7 +2888,7 @@ get_bit.exit114.i: ; preds = %764, %get_bit.exit1 br label %get_bit.exit117.i get_bit.exit117.i: ; preds = %772, %get_bit.exit114.i - %.0.i116.i = phi i8 [ %778, %772 ], [ 0, %get_bit.exit114.i ] + %.0.i116.i = phi i8 [ %778, %772 ], [ 0, %get_bit.exit113.i ] %779 = or disjoint i8 %771, %.0.i116.i br i1 %or.cond.i118.i, label %get_bit.exit120.i, label %780 @@ -2903,7 +2901,7 @@ get_bit.exit117.i: ; preds = %772, %get_bit.exit1 br label %get_bit.exit120.i get_bit.exit120.i: ; preds = %780, %get_bit.exit117.i - %.0.i119.i = phi i8 [ %785, %780 ], [ 0, %get_bit.exit117.i ] + %.0.i119.i = phi i8 [ %785, %780 ], [ 0, %get_bit.exit116.i ] %786 = or disjoint i8 %779, %.0.i119.i call void @ec_GFp_nistp_recode_scalar_bits(ptr noundef nonnull %14, ptr noundef nonnull %15, i8 noundef zeroext %786) #9 %787 = load i8, ptr %15, align 1, !tbaa !20 @@ -2912,20 +2910,19 @@ get_bit.exit120.i: ; preds = %780, %get_bit.exit1 br label %789 789: ; preds = %.split26.us.i123.i, %get_bit.exit120.i - %.02327.i121.i = phi i64 [ 0, %get_bit.exit120.i ], [ %804, %.split26.us.i123.i ] + %.02327.i121.i = phi i64 [ 0, %get_bit.exit119.i ], [ %804, %.split26.us.i121.i ] %790 = getelementptr inbounds nuw [3 x [4 x i64]], ptr %.1137, i64 %.02327.i121.i %791 = xor i64 %.02327.i121.i, %788 %792 = lshr i64 %791, 4 %793 = or i64 %792, %791 %794 = lshr i64 %793, 2 %795 = or i64 %794, %793 - %.fr.i122.i = freeze i64 %795 - %796 = and i64 %.fr.i122.i, 3 + %796 = and i64 %795, 3 %797 = icmp eq i64 %796, 0 br i1 %797, label %.split.us.i125.i, label %.split26.us.i123.i .split.us.i125.i: ; preds = %789, %.split.us.i125.i - %.024.us.i126.i = phi i64 [ %803, %.split.us.i125.i ], [ 0, %789 ] + %.024.us.i126.i = phi i64 [ %803, %.split.us.i123.i ], [ 0, %789 ] %798 = getelementptr inbounds nuw i64, ptr %790, i64 %.024.us.i126.i %799 = load i64, ptr %798, align 8, !tbaa !18 %800 = getelementptr inbounds nuw i64, ptr %13, i64 %.024.us.i126.i @@ -2966,7 +2963,7 @@ select_point.exit128.i: ; preds = %.split26.us.i123.i br label %821 821: ; preds = %821, %select_point.exit128.i - %.010.i.i = phi i64 [ 0, %select_point.exit128.i ], [ %830, %821 ] + %.010.i.i = phi i64 [ 0, %select_point.exit126.i ], [ %830, %821 ] %822 = getelementptr inbounds nuw i64, ptr %579, i64 %.010.i.i %823 = load i64, ptr %822, align 8, !tbaa !18 %824 = and i64 %823, %.sroa.0.0.extract.trunc.i diff --git a/bench/linux/optimized/cdrom.ll b/bench/linux/optimized/cdrom.ll index 71c4695b6a0..568116c7519 100644 --- a/bench/linux/optimized/cdrom.ll +++ b/bench/linux/optimized/cdrom.ll @@ -3547,14 +3547,13 @@ define dso_local i32 @cdrom_ioctl(ptr noundef %0, ptr noundef %1, i32 noundef %2 %.sroa.8.3.ph = phi i32 [ %.sroa.8.1, %652 ], [ %.sroa.8.2, %674 ] %.sroa.11.3.ph = phi i32 [ %.sroa.11.1, %652 ], [ %.sroa.11.2, %674 ] %.sroa.15.3.ph = phi i32 [ %.sroa.15.1, %652 ], [ %.sroa.15.2, %674 ] - %.sroa.0.3.ph.fr = freeze i32 %.sroa.0.3.ph call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %6) #17 call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %5) #17 %681 = icmp sgt i32 %.sroa.8.3.ph, 0 br i1 %681, label %682, label %689 682: ; preds = %680 - %683 = icmp ne i32 %.sroa.0.3.ph.fr, 0 + %683 = icmp ne i32 %.sroa.0.3.ph, 0 %684 = icmp ne i32 %.sroa.11.3.ph, 0 %685 = select i1 %683, i1 true, i1 %684 %686 = icmp ne i32 %.sroa.15.3.ph, 0 @@ -3571,7 +3570,7 @@ define dso_local i32 @cdrom_ioctl(ptr noundef %0, ptr noundef %1, i32 noundef %2 br i1 %692, label %766, label %693 693: ; preds = %691 - %694 = icmp sgt i32 %.sroa.0.3.ph.fr, 0 + %694 = icmp sgt i32 %.sroa.0.3.ph, 0 %spec.select = select i1 %694, i32 101, i32 0 br label %766 @@ -6583,8 +6582,7 @@ define internal fastcc range(i32 -124, 2) i32 @check_for_audio_disc(ptr noundef %.sroa.6.3.ph = phi i32 [ %.sroa.6.1, %65 ], [ %.sroa.6.2, %73 ] call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %4) #17 call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %3) #17 - %.sroa.6.3.ph.fr = freeze i32 %.sroa.6.3.ph - %84 = icmp eq i32 %.sroa.6.3.ph.fr, 0 + %84 = icmp eq i32 %.sroa.6.3.ph, 0 br i1 %84, label %85, label %86 85: ; preds = %.thread, %83 diff --git a/bench/linux/optimized/i2c-algo-bit.ll b/bench/linux/optimized/i2c-algo-bit.ll index dac3c368df1..0b16be7aab3 100644 --- a/bench/linux/optimized/i2c-algo-bit.ll +++ b/bench/linux/optimized/i2c-algo-bit.ll @@ -381,15 +381,14 @@ define internal i32 @bit_xfer(ptr noundef %0, ptr noundef captures(none) %1, i32 .loopexit27: ; preds = %216, %213, %164, %122 %218 = phi i32 [ 0, %122 ], [ %132, %164 ], [ %214, %213 ], [ %194, %216 ] - %.fr = freeze i32 %218 %219 = load i16, ptr %114, align 4 %220 = zext i16 %219 to i32 - %221 = icmp slt i32 %.fr, %220 + %221 = icmp slt i32 %218, %220 br i1 %221, label %.thread19, label %254 .thread19: ; preds = %.loopexit27 - %222 = icmp sgt i32 %.fr, -1 - %spec.select = select i1 %222, i32 -5, i32 %.fr + %222 = icmp sgt i32 %218, -1 + %spec.select = select i1 %222, i32 -5, i32 %218 br label %.thread19.thread 223: ; preds = %.thread diff --git a/bench/linux/optimized/sch_generic.ll b/bench/linux/optimized/sch_generic.ll index 44e45e856c5..90c655d95b9 100644 --- a/bench/linux/optimized/sch_generic.ll +++ b/bench/linux/optimized/sch_generic.ll @@ -1728,6 +1728,7 @@ define internal noundef range(i32 -12, 1) i32 @pfifo_fast_change_tx_queue_len(pt br i1 %46, label %.thread7, label %.lr.ph, !prof !43 .lr.ph: ; preds = %31, %.split27.us + %indvars.iv = phi i64 [ %indvars.iv.next, %.split27.us ], [ 0, %31 ] %47 = phi i32 [ %80, %.split27.us ], [ %45, %31 ] %48 = phi i1 [ %79, %.split27.us ], [ %22, %31 ] %49 = phi i32 [ %76, %.split27.us ], [ 0, %31 ] @@ -1782,11 +1783,12 @@ define internal noundef range(i32 -12, 1) i32 @pfifo_fast_change_tx_queue_len(pt .split27.us: ; preds = %73, %56 %75 = phi i32 [ %57, %56 ], [ %spec.select, %73 ] store volatile i32 %75, ptr %42, align 64 - %76 = add i32 %49, 1 - %77 = zext nneg i32 %49 to i64 - %78 = getelementptr ptr, ptr %39, i64 %77 + %76 = add i64 %indvars.iv, 1 + %76 = add nuw nsw i32 %49, 1 + %78 = getelementptr ptr, ptr %39, i64 %indvars.iv store ptr %54, ptr %78, align 8 - %79 = icmp slt i32 %76, %1 + %78 = trunc i64 %76 to i32 + %79 = icmp sgt i32 %1, %78 %80 = load i32, ptr %40, align 64 %81 = icmp eq i32 %80, 0 br i1 %81, label %.thread7.loopexit37, label %.lr.ph, !prof !63, !llvm.loop !64 @@ -1850,8 +1852,12 @@ define internal noundef range(i32 -12, 1) i32 @pfifo_fast_change_tx_queue_len(pt %spec.select64 = select i1 %79, i32 %76, i32 0 br label %.thread7 -.thread7: ; preds = %.lr.ph.split.us, %.lr.ph.split, %.thread47, %.thread7.loopexit37, %31 - %.lcssa13 = phi i32 [ 0, %31 ], [ %spec.select64, %.thread7.loopexit37 ], [ 0, %.thread47 ], [ 0, %.lr.ph.split ], [ %49, %.lr.ph.split.us ] +.thread7: ; preds = %.lr.ph.split.us + %111 = trunc nuw nsw i64 %indvars.iv to i32 + br label %.thread7 + +.thread7: ; preds = %.lr.ph.split, %.thread47, %.thread7.loopexit37, %.thread7.loopexit53, %31 + %.lcssa13 = phi i32 [ 0, %31 ], [ %111, %.thread7.loopexit53 ], [ %spec.select64, %.thread7.loopexit37 ], [ 0, %.thread47 ], [ 0, %.lr.ph.split ] store i32 %1, ptr %40, align 64 store i32 %21, ptr %44, align 4 store i32 %.lcssa13, ptr %34, align 64 diff --git a/bench/luau/optimized/Parser.ll b/bench/luau/optimized/Parser.ll index b7da4d5e49d..45fa8142fac 100644 --- a/bench/luau/optimized/Parser.ll +++ b/bench/luau/optimized/Parser.ll @@ -22150,7 +22150,7 @@ _ZN4Luau6Parser21expectMatchAndConsumeEcRKNS0_11MatchLexemeEb.exit: ; preds = %. 150: ; preds = %.noexc119 invoke void @_ZN4Luau6Parser10nextLexemeEv(ptr noundef nonnull align 8 dereferenceable(1072) %0) - to label %.invoke1135 unwind label %236 + to label %.invoke1137 unwind label %236 .invoke1135: ; preds = %_ZN4Luau6Parser21expectMatchAndConsumeEcRKNS0_11MatchLexemeEb.exit, %150 invoke void @_ZN4Luau6Parser10nextLexemeEv(ptr noundef nonnull align 8 dereferenceable(1072) %0) @@ -22623,7 +22623,7 @@ _ZNSt6vectorIN4Luau12CstTypeTable4ItemESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9_ 275: ; preds = %.noexc286 invoke void @_ZN4Luau6Parser10nextLexemeEv(ptr noundef nonnull align 8 dereferenceable(1072) %0) - to label %.invoke1136 unwind label %255 + to label %.invoke1138 unwind label %255 .invoke1136: ; preds = %.noexc147, %275 invoke void @_ZN4Luau6Parser10nextLexemeEv(ptr noundef nonnull align 8 dereferenceable(1072) %0) @@ -22924,7 +22924,7 @@ _ZNSt6vectorIN4Luau12CstTypeTable4ItemESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9_ 350: ; preds = %.noexc309 invoke void @_ZN4Luau6Parser10nextLexemeEv(ptr noundef nonnull align 8 dereferenceable(1072) %0) - to label %.invoke1134 unwind label %95 + to label %.invoke1136 unwind label %95 .invoke1134: ; preds = %.noexc174, %350 invoke void @_ZN4Luau6Parser10nextLexemeEv(ptr noundef nonnull align 8 dereferenceable(1072) %0) @@ -23148,7 +23148,7 @@ _ZNSt6vectorIN4Luau12CstTypeTable4ItemESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9_ 409: ; preds = %.noexc192 invoke void @_ZN4Luau6Parser10nextLexemeEv(ptr noundef nonnull align 8 dereferenceable(1072) %0) - to label %.invoke1137 unwind label %481 + to label %.invoke1139 unwind label %481 .invoke1137: ; preds = %403, %409 invoke void @_ZN4Luau6Parser10nextLexemeEv(ptr noundef nonnull align 8 dereferenceable(1072) %0) @@ -23465,7 +23465,6 @@ _ZN4Luau6Parser12parseNameOptEPKc.exit.thread538: ; preds = %443, %479, %287, %3 .loopexit556: ; preds = %399, %388 %.2523.ph.ph = phi i1 [ true, %388 ], [ false, %399 ] %.3.ph.ph = phi ptr [ %387, %388 ], [ %.0520747, %399 ] - %.sroa.15.4.ph.ph = phi i64 [ 0, %388 ], [ %.sroa.15.0749, %399 ] %.pre919.pr = load i32, ptr %59, align 8, !tbaa !79 %488 = icmp eq i32 %.pre919.pr, 125 %.sroa.5325.0.copyload = load i64, ptr %.sroa.6459.0..sroa_idx, align 4 @@ -23473,7 +23472,7 @@ _ZN4Luau6Parser12parseNameOptEPKc.exit.thread538: ; preds = %443, %479, %287, %3 489: ; preds = %.loopexit556.thread936, %.loopexit556 %.sroa.5325.0.copyload947 = phi i64 [ %.sroa.5325.0.copyload942, %.loopexit556.thread936 ], [ %.sroa.5325.0.copyload, %.loopexit556 ] - %.sroa.15.4.ph946 = phi i64 [ %.sroa.15.3, %.loopexit556.thread936 ], [ %.sroa.15.4.ph.ph, %.loopexit556 ] + %.sroa.15.4.ph946 = phi i64 [ %.sroa.15.3, %.loopexit556.thread936 ], [ %.sroa.15.0749, %.loopexit556 ] %.sroa.14472.5.ph945 = phi i64 [ %.sroa.14472.3, %.loopexit556.thread936 ], [ %.sroa.14472.0748, %.loopexit556 ] %.3.ph944 = phi ptr [ %.2, %.loopexit556.thread936 ], [ %.3.ph.ph, %.loopexit556 ] %.2523.ph943 = phi i1 [ false, %.loopexit556.thread936 ], [ %.2523.ph.ph, %.loopexit556 ] @@ -23488,7 +23487,7 @@ _ZN4Luau6Parser12parseNameOptEPKc.exit.thread538: ; preds = %443, %479, %287, %3 492: ; preds = %.loopexit556.thread, %.loopexit556 %.sroa.5325.0.copyload935 = phi i64 [ %.sroa.5325.0.copyload926, %.loopexit556.thread ], [ %.sroa.5325.0.copyload, %.loopexit556 ] - %.sroa.15.1934 = phi i64 [ %.sroa.15.1.ph, %.loopexit556.thread ], [ %.sroa.15.4.ph.ph, %.loopexit556 ] + %.sroa.15.1934 = phi i64 [ %.sroa.15.1.ph, %.loopexit556.thread ], [ %.sroa.15.0749, %.loopexit556 ] %.sroa.14472.1932 = phi i64 [ %.sroa.14472.1.ph, %.loopexit556.thread ], [ %.sroa.14472.0748, %.loopexit556 ] %.1930 = phi ptr [ %.1.ph, %.loopexit556.thread ], [ %.3.ph.ph, %.loopexit556 ] %.1522928 = phi i1 [ false, %.loopexit556.thread ], [ %.2523.ph.ph, %.loopexit556 ] diff --git a/bench/luau/optimized/isocline.ll b/bench/luau/optimized/isocline.ll index a9fa65f32e8..6483b6c592b 100644 --- a/bench/luau/optimized/isocline.ll +++ b/bench/luau/optimized/isocline.ll @@ -2883,11 +2883,10 @@ ic_strlen.exit: ; preds = %2, %4 %16 = add nuw i64 %.1.i, 1 br i1 %or.cond4.i, label %str_prev_ofs.exit, label %.preheader.i -str_prev_ofs.exit: ; preds = %.preheader.i, %12 - %.021.i = phi i64 [ %.1.i, %12 ], [ %1, %.preheader.i ] - %.021.i.fr = freeze i64 %.021.i - %17 = icmp slt i64 %.021.i.fr, 1 - %18 = sub nsw i64 %1, %.021.i.fr +str_prev_ofs.exit: ; preds = %12, %.preheader.i + %.021.i = phi i64 [ %1, %.preheader.i ], [ %.1.i, %12 ] + %17 = icmp slt i64 %.021.i, 1 + %18 = sub nsw i64 %1, %.021.i br i1 %17, label %str_prev_ofs.exit.thread, label %19 str_prev_ofs.exit.thread: ; preds = %9, %str_prev_ofs.exit diff --git a/bench/lz4/optimized/lz4.ll b/bench/lz4/optimized/lz4.ll index 624cd1b49dc..ed279ec83cc 100644 --- a/bench/lz4/optimized/lz4.ll +++ b/bench/lz4/optimized/lz4.ll @@ -1067,7 +1067,7 @@ LZ4_compress_generic_validated.exit190: ; preds = %._crit_edge743, %44 .preheader: ; preds = %505, %516 %.9479.i112 = phi ptr [ %512, %516 ], [ %503, %505 ] %.5408.i113 = phi ptr [ %511, %516 ], [ %.0487.i50, %505 ] - %511 = getelementptr inbounds i8, ptr %.5408.i113, i64 -1 + %511 = getelementptr i8, ptr %.5408.i113, i64 -1 %512 = getelementptr inbounds i8, ptr %.9479.i112, i64 -1 %513 = icmp ugt ptr %511, %.1421.i47 %514 = icmp ugt ptr %512, %1 @@ -1118,14 +1118,13 @@ LZ4_compress_generic_validated.exit190: ; preds = %._crit_edge743, %44 %539 = add i32 %538, -270 %540 = trunc i64 %522 to i32 %541 = sub i32 %539, %540 - %.fr997 = freeze i32 %541 - %542 = udiv i32 %.fr997, 255 + %542 = udiv i32 %541, 255 %543 = zext nneg i32 %542 to i64 %544 = add nuw nsw i64 %543, 1 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %525, i8 -1, i64 %544, i1 false), !tbaa !4 %scevgep978 = getelementptr i8, ptr %.1425.i46, i64 2 %scevgep979 = getelementptr i8, ptr %scevgep978, i64 %543 - %545 = urem i32 %.fr997, 255 + %545 = urem i32 %541, 255 br label %._crit_edge827 ._crit_edge827: ; preds = %.lr.ph826.preheader, %535 @@ -1532,7 +1531,7 @@ LZ4_count.exit321: ; preds = %.thread512, %567, % .preheader632: ; preds = %745, %756 %.9479.i = phi ptr [ %752, %756 ], [ %743, %745 ] %.5408.i = phi ptr [ %751, %756 ], [ %.0487.i776, %745 ] - %751 = getelementptr inbounds i8, ptr %.5408.i, i64 -1 + %751 = getelementptr i8, ptr %.5408.i, i64 -1 %752 = getelementptr inbounds i8, ptr %.9479.i, i64 -1 %753 = icmp ugt ptr %751, %.1421.i809 %754 = icmp ugt ptr %752, %1 @@ -1583,14 +1582,13 @@ LZ4_count.exit321: ; preds = %.thread512, %567, % %779 = add i32 %778, -270 %780 = trunc i64 %762 to i32 %781 = sub i32 %779, %780 - %.fr994 = freeze i32 %781 - %782 = udiv i32 %.fr994, 255 + %782 = udiv i32 %781, 255 %783 = zext nneg i32 %782 to i64 %784 = add nuw nsw i64 %783, 1 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %765, i8 -1, i64 %784, i1 false), !tbaa !4 %scevgep972 = getelementptr i8, ptr %.1425.i808, i64 2 %scevgep973 = getelementptr i8, ptr %scevgep972, i64 %783 - %785 = urem i32 %.fr994, 255 + %785 = urem i32 %781, 255 br label %._crit_edge789 ._crit_edge789: ; preds = %.lr.ph788.preheader, %775 @@ -3500,7 +3498,7 @@ LZ4_prepareTable.exit73: ; preds = %.LZ4_prepareTable.e .preheader1002: ; preds = %749, %760 %.9479.i284 = phi ptr [ %756, %760 ], [ %747, %749 ] %.5408.i285 = phi ptr [ %755, %760 ], [ %.0487.i2291278, %749 ] - %755 = getelementptr inbounds i8, ptr %.5408.i285, i64 -1 + %755 = getelementptr i8, ptr %.5408.i285, i64 -1 %756 = getelementptr inbounds i8, ptr %.9479.i284, i64 -1 %757 = icmp ugt ptr %755, %.1421.i2261311 %758 = icmp ugt ptr %756, %1 @@ -3551,14 +3549,13 @@ LZ4_prepareTable.exit73: ; preds = %.LZ4_prepareTable.e %783 = add i32 %782, -270 %784 = trunc i64 %766 to i32 %785 = sub i32 %783, %784 - %.fr1589 = freeze i32 %785 - %786 = udiv i32 %.fr1589, 255 + %786 = udiv i32 %785, 255 %787 = zext nneg i32 %786 to i64 %788 = add nuw nsw i64 %787, 1 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %769, i8 -1, i64 %788, i1 false), !tbaa !4 %scevgep1548 = getelementptr i8, ptr %.1425.i2251310, i64 2 %scevgep1549 = getelementptr i8, ptr %scevgep1548, i64 %787 - %789 = urem i32 %.fr1589, 255 + %789 = urem i32 %785, 255 br label %._crit_edge1291 ._crit_edge1291: ; preds = %.lr.ph1290.preheader, %779 @@ -3974,7 +3971,7 @@ LZ4_count.exit502: ; preds = %.thread807, %811, % .preheader: ; preds = %985, %996 %.9479.i361 = phi ptr [ %992, %996 ], [ %984, %985 ] %.5408.i362 = phi ptr [ %991, %996 ], [ %.0487.i299, %985 ] - %991 = getelementptr inbounds i8, ptr %.5408.i362, i64 -1 + %991 = getelementptr i8, ptr %.5408.i362, i64 -1 %992 = getelementptr inbounds i8, ptr %.9479.i361, i64 -1 %993 = icmp ugt ptr %991, %.1421.i296 %994 = icmp ugt ptr %992, %1 @@ -4025,14 +4022,13 @@ LZ4_count.exit502: ; preds = %.thread807, %811, % %1019 = add i32 %1018, -270 %1020 = trunc i64 %1002 to i32 %1021 = sub i32 %1019, %1020 - %.fr1592 = freeze i32 %1021 - %1022 = udiv i32 %.fr1592, 255 + %1022 = udiv i32 %1021, 255 %1023 = zext nneg i32 %1022 to i64 %1024 = add nuw nsw i64 %1023, 1 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %1005, i8 -1, i64 %1024, i1 false), !tbaa !4 %scevgep1554 = getelementptr i8, ptr %.1425.i295, i64 2 %scevgep1555 = getelementptr i8, ptr %scevgep1554, i64 %1023 - %1025 = urem i32 %.fr1592, 255 + %1025 = urem i32 %1021, 255 br label %._crit_edge1329 ._crit_edge1329: ; preds = %.lr.ph1328.preheader, %1015 @@ -4463,7 +4459,7 @@ LZ4_prepareTable.exit77: ; preds = %.thread1598, %1177, .preheader1007: ; preds = %1230, %1241 %.9479.i438 = phi ptr [ %1237, %1241 ], [ %1228, %1230 ] %.5408.i439 = phi ptr [ %1236, %1241 ], [ %.0487.i3761232, %1230 ] - %1236 = getelementptr inbounds i8, ptr %.5408.i439, i64 -1 + %1236 = getelementptr i8, ptr %.5408.i439, i64 -1 %1237 = getelementptr inbounds i8, ptr %.9479.i438, i64 -1 %1238 = icmp ugt ptr %1236, %.1421.i3731265 %1239 = icmp ugt ptr %1237, %1 @@ -4514,14 +4510,13 @@ LZ4_prepareTable.exit77: ; preds = %.thread1598, %1177, %1264 = add i32 %1263, -270 %1265 = trunc i64 %1247 to i32 %1266 = sub i32 %1264, %1265 - %.fr1586 = freeze i32 %1266 - %1267 = udiv i32 %.fr1586, 255 + %1267 = udiv i32 %1266, 255 %1268 = zext nneg i32 %1267 to i64 %1269 = add nuw nsw i64 %1268, 1 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %1250, i8 -1, i64 %1269, i1 false), !tbaa !4 %scevgep1542 = getelementptr i8, ptr %.1425.i3721264, i64 2 %scevgep1543 = getelementptr i8, ptr %scevgep1542, i64 %1268 - %1270 = urem i32 %.fr1586, 255 + %1270 = urem i32 %1266, 255 br label %._crit_edge1245 ._crit_edge1245: ; preds = %.lr.ph1244.preheader, %1260 @@ -6541,7 +6536,7 @@ LZ4_renormDictT.exit: ; preds = %15, %34 .preheader: ; preds = %136, %147 %.9479.i = phi ptr [ %143, %147 ], [ %134, %136 ] %.5408.i = phi ptr [ %142, %147 ], [ %.0487.i1915, %136 ] - %142 = getelementptr inbounds i8, ptr %.5408.i, i64 -1 + %142 = getelementptr i8, ptr %.5408.i, i64 -1 %143 = getelementptr inbounds i8, ptr %.9479.i, i64 -1 %144 = icmp ugt ptr %142, %.1421.i1949 %145 = icmp ugt ptr %143, %95 @@ -6592,14 +6587,13 @@ LZ4_renormDictT.exit: ; preds = %15, %34 %170 = add i32 %169, -270 %171 = trunc i64 %153 to i32 %172 = sub i32 %170, %171 - %.fr2258 = freeze i32 %172 - %173 = udiv i32 %.fr2258, 255 + %173 = udiv i32 %172, 255 %174 = zext nneg i32 %173 to i64 %175 = add nuw nsw i64 %174, 1 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %156, i8 -1, i64 %175, i1 false), !tbaa !4 %scevgep2237 = getelementptr i8, ptr %.1425.i1948, i64 2 %scevgep2238 = getelementptr i8, ptr %scevgep2237, i64 %174 - %176 = urem i32 %.fr2258, 255 + %176 = urem i32 %172, 255 br label %._crit_edge1928 ._crit_edge1928: ; preds = %.lr.ph1927.preheader, %166 @@ -7034,7 +7028,7 @@ LZ4_count.exit829: ; preds = %.thread948, %198, % .preheader1473: ; preds = %386, %397 %.9479.i186 = phi ptr [ %393, %397 ], [ %384, %386 ] %.5408.i187 = phi ptr [ %392, %397 ], [ %.0487.i1241869, %386 ] - %392 = getelementptr inbounds i8, ptr %.5408.i187, i64 -1 + %392 = getelementptr i8, ptr %.5408.i187, i64 -1 %393 = getelementptr inbounds i8, ptr %.9479.i186, i64 -1 %394 = icmp ugt ptr %392, %.1421.i1211902 %395 = icmp ugt ptr %393, %346 @@ -7085,14 +7079,13 @@ LZ4_count.exit829: ; preds = %.thread948, %198, % %420 = add i32 %419, -270 %421 = trunc i64 %403 to i32 %422 = sub i32 %420, %421 - %.fr2255 = freeze i32 %422 - %423 = udiv i32 %.fr2255, 255 + %423 = udiv i32 %422, 255 %424 = zext nneg i32 %423 to i64 %425 = add nuw nsw i64 %424, 1 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %406, i8 -1, i64 %425, i1 false), !tbaa !4 %scevgep2231 = getelementptr i8, ptr %.1425.i1201901, i64 2 %scevgep2232 = getelementptr i8, ptr %scevgep2231, i64 %424 - %426 = urem i32 %.fr2255, 255 + %426 = urem i32 %422, 255 br label %._crit_edge1882 ._crit_edge1882: ; preds = %.lr.ph1881.preheader, %416 diff --git a/bench/mimalloc/optimized/arena.ll b/bench/mimalloc/optimized/arena.ll index 86ddaf20660..8dbe2ab90ca 100644 --- a/bench/mimalloc/optimized/arena.ll +++ b/bench/mimalloc/optimized/arena.ll @@ -1589,8 +1589,8 @@ define internal fastcc void @mi_arenas_try_purge(i1 noundef zeroext %0, i1 nound br i1 %71, label %.preheader.i.i, label %mi_arena_purge_range.exit.thread.i .preheader.i.i: ; preds = %66, %105 - %.029.i.i = phi i64 [ %107, %105 ], [ %.06181.i, %66 ] - %.02328.i.i = phi i1 [ %.1.i.i, %105 ], [ false, %66 ] + %.029.i.i = phi i64 [ %107, %104 ], [ %.06181.i, %66 ] + %.02328.i.i = phi i1 [ %.1.i.i, %104 ], [ false, %66 ] br label %72 72: ; preds = %76, %.preheader.i.i @@ -1646,11 +1646,10 @@ define internal fastcc void @mi_arenas_try_purge(i1 noundef zeroext %0, i1 nound mi_arena_purge.exit.i: ; preds = %99, %94, %89 %103 = icmp eq i64 %.022.lcssa.i.i, %.16079.i %spec.select.i.i = select i1 %103, i1 true, i1 %.02328.i.i - %104 = freeze i1 %spec.select.i.i - br label %105 + br label %104 105: ; preds = %mi_arena_purge.exit.i, %.critedge.i.i - %.1.i.i = phi i1 [ %104, %mi_arena_purge.exit.i ], [ %.02328.i.i, %.critedge.i.i ] + %.1.i.i = phi i1 [ %spec.select.i.i, %mi_arena_purge.exit.i ], [ %.02328.i.i, %.critedge.i.i ] %106 = add i64 %.029.i.i, 1 %107 = add i64 %106, %.022.lcssa.i.i %108 = icmp ult i64 %107, %70 @@ -1709,7 +1708,7 @@ mi_arena_try_purge.exit: ; preds = %._crit_edge.i br label %mi_arena_try_purge.exit.thread mi_arena_try_purge.exit.thread: ; preds = %40, %37, %29, %mi_arena_try_purge.exit, %127, %26, %118 - %.2.ph = phi i64 [ %.03151, %118 ], [ %.03151, %26 ], [ %.03151, %mi_arena_try_purge.exit ], [ %128, %127 ], [ %.03151, %29 ], [ %.03151, %37 ], [ %.03151, %40 ] + %.2.ph = phi i64 [ %.03151, %117 ], [ %.03151, %26 ], [ %.03151, %mi_arena_try_purge.exit ], [ %128, %126 ], [ %.03151, %29 ], [ %.03151, %37 ], [ %.03151, %40 ] %129 = add nuw i64 %.03350, 1 %exitcond.not = icmp eq i64 %129, %16 br i1 %exitcond.not, label %130, label %26, !llvm.loop !66 diff --git a/bench/mitsuba3/optimized/codeholder.ll b/bench/mitsuba3/optimized/codeholder.ll index c9ffbb9d735..f9a8b43f4d2 100644 --- a/bench/mitsuba3/optimized/codeholder.ll +++ b/bench/mitsuba3/optimized/codeholder.ll @@ -1617,8 +1617,7 @@ define dso_local noundef i32 @_ZN6asmjit9_abi_1_1010CodeHolder18newNamedLabelEnt .loopexit18: ; preds = %28, %.loopexit17 %66 = phi i32 [ %35, %.loopexit17 ], [ %31, %28 ] %67 = phi i64 [ %34, %.loopexit17 ], [ %3, %28 ] - %.fr23 = freeze i64 %67 - %68 = icmp ugt i64 %.fr23, 2048 + %68 = icmp ugt i64 %67, 2048 br i1 %68, label %_ZN6asmjit9_abi_1_1010CodeHolder13newLabelEntryEPPNS0_10LabelEntryE.exit, label %69, !prof !41 69: ; preds = %.loopexit18 @@ -1667,19 +1666,19 @@ define dso_local noundef i32 @_ZN6asmjit9_abi_1_1010CodeHolder18newNamedLabelEnt %91 = getelementptr inbounds nuw i8, ptr %86, i64 24 store i64 0, ptr %91, align 8, !tbaa !129 %92 = getelementptr inbounds nuw i8, ptr %86, i64 48 - %93 = icmp samesign ugt i64 %.fr23, 11 + %93 = icmp samesign ugt i64 %67, 11 br i1 %93, label %97, label %94 94: ; preds = %88 %95 = getelementptr inbounds nuw i8, ptr %86, i64 52 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %95, ptr nonnull align 1 %2, i64 %.fr23, i1 false) - %96 = getelementptr inbounds nuw [12 x i8], ptr %95, i64 0, i64 %.fr23 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %95, ptr nonnull align 1 %2, i64 %67, i1 false) + %96 = getelementptr inbounds nuw [12 x i8], ptr %95, i64 0, i64 %67 store i8 0, ptr %96, align 1, !tbaa !72 br label %103 97: ; preds = %88 %98 = getelementptr inbounds nuw i8, ptr %0, i64 64 - %99 = call noundef ptr @_ZN6asmjit9_abi_1_104Zone3dupEPKvmb(ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef nonnull %2, i64 noundef %.fr23, i1 noundef zeroext true) #17 + %99 = call noundef ptr @_ZN6asmjit9_abi_1_104Zone3dupEPKvmb(ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef nonnull %2, i64 noundef %67, i1 noundef zeroext true) #17 %100 = icmp eq ptr %99, null br i1 %100, label %_ZN6asmjit9_abi_1_1010CodeHolder13newLabelEntryEPPNS0_10LabelEntryE.exit, label %101, !prof !41 @@ -1689,7 +1688,7 @@ define dso_local noundef i32 @_ZN6asmjit9_abi_1_1010CodeHolder18newNamedLabelEnt br label %103 103: ; preds = %101, %94 - %104 = trunc nuw nsw i64 %.fr23 to i32 + %104 = trunc nuw nsw i64 %67 to i32 store i32 %104, ptr %92, align 8, !tbaa !72 %105 = load ptr, ptr %73, align 8, !tbaa !39 %106 = load i32, ptr %74, align 8, !tbaa !38 @@ -1719,7 +1718,7 @@ define dso_local noundef i32 @_ZN6asmjit9_abi_1_1010CodeHolder18newNamedLabelEnt 120: ; preds = %118, %116 %121 = phi i32 [ %66, %118 ], [ %117, %116 ] %122 = getelementptr inbounds nuw i8, ptr %0, i64 272 - %123 = trunc nuw nsw i64 %.fr23 to i32 + %123 = trunc nuw nsw i64 %67 to i32 %124 = zext i32 %121 to i64 %125 = getelementptr inbounds nuw i8, ptr %0, i64 296 %126 = load i32, ptr %125, align 8, !tbaa !35 @@ -1742,7 +1741,7 @@ define dso_local noundef i32 @_ZN6asmjit9_abi_1_1010CodeHolder18newNamedLabelEnt br i1 %142, label %.loopexit, label %143 143: ; preds = %120 - %144 = icmp samesign ult i64 %.fr23, 12 + %144 = icmp samesign ult i64 %67, 12 br i1 %144, label %.split.us, label %.split .split.us: ; preds = %143, %157 @@ -1760,7 +1759,7 @@ define dso_local noundef i32 @_ZN6asmjit9_abi_1_1010CodeHolder18newNamedLabelEnt 153: ; preds = %149 %154 = getelementptr inbounds nuw i8, ptr %145, i64 52 - %155 = tail call i32 @bcmp(ptr nonnull %154, ptr %2, i64 %.fr23) + %155 = tail call i32 @bcmp(ptr nonnull %154, ptr %2, i64 %67) %156 = icmp eq i32 %155, 0 br i1 %156, label %_ZN6asmjit9_abi_1_1010CodeHolder13newLabelEntryEPPNS0_10LabelEntryE.exit, label %157 @@ -1785,7 +1784,7 @@ define dso_local noundef i32 @_ZN6asmjit9_abi_1_1010CodeHolder18newNamedLabelEnt 168: ; preds = %164 %169 = getelementptr inbounds nuw i8, ptr %160, i64 56 %170 = load ptr, ptr %169, align 8 - %171 = tail call i32 @bcmp(ptr %170, ptr %2, i64 %.fr23) + %171 = tail call i32 @bcmp(ptr %170, ptr %2, i64 %67) %172 = icmp eq i32 %171, 0 br i1 %172, label %_ZN6asmjit9_abi_1_1010CodeHolder13newLabelEntryEPPNS0_10LabelEntryE.exit, label %173 @@ -1832,19 +1831,19 @@ define dso_local noundef i32 @_ZN6asmjit9_abi_1_1010CodeHolder18newNamedLabelEnt %196 = getelementptr inbounds nuw i8, ptr %189, i64 24 store i64 0, ptr %196, align 8, !tbaa !129 %197 = getelementptr inbounds nuw i8, ptr %189, i64 48 - %198 = icmp ugt i64 %.fr23, 11 + %198 = icmp ugt i64 %67, 11 br i1 %198, label %202, label %199 199: ; preds = %191 %200 = getelementptr inbounds nuw i8, ptr %189, i64 52 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %200, ptr align 1 %2, i64 %.fr23, i1 false) - %201 = getelementptr inbounds nuw [12 x i8], ptr %200, i64 0, i64 %.fr23 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %200, ptr align 1 %2, i64 %67, i1 false) + %201 = getelementptr inbounds nuw [12 x i8], ptr %200, i64 0, i64 %67 store i8 0, ptr %201, align 1, !tbaa !72 br label %208 202: ; preds = %191 %203 = getelementptr inbounds nuw i8, ptr %0, i64 64 - %204 = call noundef ptr @_ZN6asmjit9_abi_1_104Zone3dupEPKvmb(ptr noundef nonnull align 8 dereferenceable(32) %203, ptr noundef %2, i64 noundef %.fr23, i1 noundef zeroext true) #17 + %204 = call noundef ptr @_ZN6asmjit9_abi_1_104Zone3dupEPKvmb(ptr noundef nonnull align 8 dereferenceable(32) %203, ptr noundef %2, i64 noundef %67, i1 noundef zeroext true) #17 %205 = icmp eq ptr %204, null br i1 %205, label %_ZN6asmjit9_abi_1_1010CodeHolder13newLabelEntryEPPNS0_10LabelEntryE.exit, label %206, !prof !41 @@ -1927,12 +1926,11 @@ define dso_local noundef i32 @_ZN6asmjit9_abi_1_1010CodeHolder13labelIdByNameEPK .loopexit8: ; preds = %23, %.loopexit7 %32 = phi i32 [ %30, %.loopexit7 ], [ %26, %23 ] %33 = phi i64 [ %29, %.loopexit7 ], [ %2, %23 ] - %.fr = freeze i64 %33 %34 = icmp eq i32 %3, -1 %35 = select i1 %34, i32 0, i32 %3 %36 = xor i32 %32, %35 %37 = getelementptr inbounds nuw i8, ptr %0, i64 272 - %38 = trunc i64 %.fr to i32 + %38 = trunc i64 %33 to i32 %39 = zext i32 %36 to i64 %40 = getelementptr inbounds nuw i8, ptr %0, i64 296 %41 = load i32, ptr %40, align 8, !tbaa !35 @@ -1956,7 +1954,7 @@ define dso_local noundef i32 @_ZN6asmjit9_abi_1_1010CodeHolder13labelIdByNameEPK 58: ; preds = %.loopexit8 %59 = icmp ult i32 %38, 12 - %60 = and i64 %.fr, 4294967295 + %60 = and i64 %33, 4294967295 br i1 %59, label %.split.us, label %.split .split.us: ; preds = %58, %73 diff --git a/bench/node/optimized/inet.ll b/bench/node/optimized/inet.ll index 6dd1c91de74..92022e397bc 100644 --- a/bench/node/optimized/inet.ll +++ b/bench/node/optimized/inet.ll @@ -125,21 +125,23 @@ if.then45.i: ; preds = %for.end41.i %or.cond59.i = select i1 %cmp47.i, i1 true, i1 %cmp52.i %spec.select65.i = select i1 %or.cond59.i, i32 %cur.sroa.8.1.i, i32 %best.sroa.14.2.i %spec.select66.i = select i1 %or.cond59.i, i32 %cur.sroa.0.1.i, i32 %best.sroa.0.2.i + %9 = freeze i32 %spec.select65.i br label %if.end56.i if.end56.i: ; preds = %if.then45.i, %for.end41.i - %best.sroa.14.3.i = phi i32 [ %best.sroa.14.2.i, %for.end41.i ], [ %spec.select65.i, %if.then45.i ] + %best.sroa.14.3.i = phi i32 [ %best.sroa.14.2.i, %for.end41.i ], [ %9, %if.then45.i ] %best.sroa.0.3.i = phi i32 [ %best.sroa.0.2.i, %for.end41.i ], [ %spec.select66.i, %if.then45.i ] - %best.sroa.14.3.i.fr = freeze i32 %best.sroa.14.3.i - %cmp61.i = icmp slt i32 %best.sroa.14.3.i.fr, 2 - %best.sroa.0.3.i.fr = freeze i32 %best.sroa.0.3.i - %spec.select.i = select i1 %cmp61.i, i32 -1, i32 %best.sroa.0.3.i.fr - %cmp72.not.i = icmp ne i32 %spec.select.i, -1 - %add.i = add nsw i32 %spec.select.i, %best.sroa.14.3.i.fr - %cmp99.i = icmp eq i32 %spec.select.i, 0 - %cmp107.i = icmp eq i32 %best.sroa.14.3.i.fr, 7 + %cmp58.i = icmp ne i32 %best.sroa.0.3.i, -1 + %cmp61.i = icmp slt i32 %best.sroa.14.3.i, 2 + %or.cond.i7 = select i1 %cmp58.i, i1 %cmp61.i, i1 false + %spec.select.i = select i1 %or.cond.i7, i32 -1, i32 %best.sroa.0.3.i + %spec.select.fr.i = freeze i32 %spec.select.i + %cmp72.not.i = icmp ne i32 %spec.select.fr.i, -1 + %add.i = add nsw i32 %spec.select.fr.i, %best.sroa.14.3.i + %cmp107.i = icmp eq i32 %spec.select.fr.i, 0 + %cmp107.i = icmp eq i32 %best.sroa.14.3.i, 7 %arrayidx110.i = getelementptr inbounds nuw i8, ptr %words.i, i64 28 - %cmp115.i = icmp eq i32 %best.sroa.14.3.i.fr, 5 + %cmp115.i = icmp eq i32 %best.sroa.14.3.i, 5 %arrayidx118.i = getelementptr inbounds nuw i8, ptr %words.i, i64 20 %sub.ptr.rhs.cast131.i = ptrtoint ptr %tmp.i4 to i64 %sub.ptr.sub132.neg.i = add i64 %sub.ptr.rhs.cast131.i, 46 @@ -147,12 +149,12 @@ if.end56.i: ; preds = %if.then45.i, %for.e br i1 %cmp99.i, label %for.body70.preheader.i, label %for.body70.us.preheader.i for.body70.us.preheader.i: ; preds = %if.end56.i - %10 = sext i32 %spec.select.i to i64 - %11 = zext i32 %spec.select.i to i64 + %10 = sext i32 %spec.select.fr.i to i64 + %11 = zext i32 %spec.select.fr.i to i64 br label %for.body70.us.i for.body70.preheader.i: ; preds = %if.end56.i - %cmp103.i = icmp eq i32 %best.sroa.14.3.i.fr, 6 + %cmp103.i = icmp eq i32 %best.sroa.14.3.i, 6 br i1 %cmp103.i, label %for.body70.i.us, label %for.body70.i for.body70.i.us: ; preds = %for.body70.preheader.i, %for.inc138.i.us diff --git a/bench/ockam-rs/optimized/1nr6pb10qh86z9fy.ll b/bench/ockam-rs/optimized/1nr6pb10qh86z9fy.ll index 4bee0a88758..8e84c386368 100644 --- a/bench/ockam-rs/optimized/1nr6pb10qh86z9fy.ll +++ b/bench/ockam-rs/optimized/1nr6pb10qh86z9fy.ll @@ -179,10 +179,9 @@ define hidden { i64, i64 } @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$ br i1 %12, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17hfb8a792e4e94ad3dE.llvm.17316549881917752266.exit, label %5 _ZN4core4iter6traits8iterator8Iterator8try_fold17hfb8a792e4e94ad3dE.llvm.17316549881917752266.exit: ; preds = %5, %8 - %.sroa.3.0.i = phi i64 [ undef, %8 ], [ %.0.i, %5 ] %.sroa.0.0.i = phi i64 [ 0, %8 ], [ 1, %5 ] %14 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0.i, 0 - %15 = insertvalue { i64, i64 } %14, i64 %.sroa.3.0.i, 1 + %15 = insertvalue { i64, i64 } %14, i64 %.0.i, 1 ret { i64, i64 } %15 } @@ -3468,10 +3467,9 @@ define hidden { i64, i64 } @_ZN4core4iter6traits8iterator8Iterator8try_fold17hfb br i1 %13, label %15, label %6 15: ; preds = %6, %9 - %.sroa.3.0 = phi i64 [ undef, %9 ], [ %.0, %6 ] %.sroa.0.0 = phi i64 [ 0, %9 ], [ 1, %6 ] %16 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0, 0 - %17 = insertvalue { i64, i64 } %16, i64 %.sroa.3.0, 1 + %17 = insertvalue { i64, i64 } %16, i64 %.0, 1 ret { i64, i64 } %17 } diff --git a/bench/opencv/optimized/trackerCSRTSegmentation.ll b/bench/opencv/optimized/trackerCSRTSegmentation.ll index 0802adf0749..248f1d768d9 100644 --- a/bench/opencv/optimized/trackerCSRTSegmentation.ll +++ b/bench/opencv/optimized/trackerCSRTSegmentation.ll @@ -617,7 +617,6 @@ _ZNSt6vectorIPKhSaIS1_EED2Ev.exit.us: ; preds = %36, %._crit_edge65. %.not45.us = icmp slt i64 %indvars.iv129, %26 %.not46.us = icmp sgt i64 %indvars.iv129, %27 %invariant.op.us = or i1 %.not45.us, %.not46.us - %invariant.op.fr.us = freeze i1 %invariant.op.us %51 = load ptr, ptr %17, align 8 %52 = load ptr, ptr %18, align 8 %wide.trip.count120 = zext nneg i32 %.fr to i64 @@ -632,9 +631,8 @@ _ZNSt6vectorIPKhSaIS1_EED2Ev.exit.us: ; preds = %36, %._crit_edge65. %.not45.us143 = icmp slt i64 %indvars.iv129, %26 %.not46.us144 = icmp sgt i64 %indvars.iv129, %27 %invariant.op.us145 = or i1 %.not45.us143, %.not46.us144 - %invariant.op.fr.us146 = freeze i1 %invariant.op.us145 %54 = load ptr, ptr %18, align 8 - br i1 %invariant.op.fr.us146, label %.lr.ph64.split.split.us.us, label %.lr.ph64.split.split.us90 + br i1 %invariant.op.us145, label %.lr.ph64.split.split.us.us, label %.lr.ph64.split.split.us90 .lr.ph64.split.us.us: ; preds = %.lr.ph64.split.us.us.preheader, %55 %indvars.iv122 = phi i64 [ %22, %.lr.ph64.split.us.us.preheader ], [ %indvars.iv.next123, %55 ] @@ -642,7 +640,7 @@ _ZNSt6vectorIPKhSaIS1_EED2Ev.exit.us: ; preds = %36, %._crit_edge65. %.not.us.us = icmp slt i64 %indvars.iv122, %23 %.not44.us.us = icmp sgt i64 %indvars.iv122, %24 %or.cond.us.us = or i1 %.not.us.us, %.not44.us.us - %or.cond48.reass.us.us = or i1 %or.cond.us.us, %invariant.op.fr.us + %or.cond48.reass.us.us = or i1 %or.cond.us.us, %invariant.op.us br i1 %or.cond48.reass.us.us, label %.preheader.us.us, label %55 55: ; preds = %._crit_edge.us.us, %.lr.ph64.split.us.us diff --git a/bench/opencv/optimized/version.ll b/bench/opencv/optimized/version.ll index 0e6eb76c44c..49f2448b3f5 100644 --- a/bench/opencv/optimized/version.ll +++ b/bench/opencv/optimized/version.ll @@ -16659,8 +16659,10 @@ _ZN5zxing6qrcode7Version22getDimensionForVersionERNS_12ErrorHandlerE.exit: ; pre %63 = ptrtoint ptr %61 to i64 %64 = ptrtoint ptr %62 to i64 %65 = sub i64 %63, %64 - %66 = ashr exact i64 %65, 2 + %.fr71 = freeze i64 %65 + %66 = ashr i64 %.fr71, 2 %67 = add nsw i64 %66, -1 + %umax = call i64 @llvm.umax.i64(i64 %66, i64 1) br label %69 ._crit_edge: ; preds = %.split64.us, %57 @@ -16696,7 +16698,7 @@ _ZN5zxing6qrcode7Version22getDimensionForVersionERNS_12ErrorHandlerE.exit: ; pre 83: ; preds = %.thread.us, %.split.us %84 = add nuw i64 %.060.us, 1 - %exitcond75.not = icmp eq i64 %84, %66 + %exitcond75.not = icmp eq i64 %84, %umax br i1 %exitcond75.not, label %.split64.us, label %.split.us, !llvm.loop !89 .split62.us: ; preds = %.thread.us @@ -16706,8 +16708,7 @@ _ZN5zxing6qrcode7Version22getDimensionForVersionERNS_12ErrorHandlerE.exit: ; pre .split: ; preds = %69 %86 = icmp eq i64 %.03668, %67 - %.fr = freeze i1 %86 - br i1 %.fr, label %.split.split, label %.thread.us66 + br i1 %86, label %.split.split, label %.thread.us66 .thread.us66: ; preds = %.split, %92 %.060.us65 = phi i64 [ %93, %92 ], [ 0, %.split ] @@ -16721,7 +16722,7 @@ _ZN5zxing6qrcode7Version22getDimensionForVersionERNS_12ErrorHandlerE.exit: ; pre 92: ; preds = %.thread.us66 %93 = add nuw i64 %.060.us65, 1 - %exitcond.not = icmp eq i64 %93, %66 + %exitcond.not = icmp eq i64 %93, %umax br i1 %exitcond.not, label %.split64.us, label %.thread.us66, !llvm.loop !90 .split62.split.us: ; preds = %.thread.us66 @@ -16731,7 +16732,7 @@ _ZN5zxing6qrcode7Version22getDimensionForVersionERNS_12ErrorHandlerE.exit: ; pre .split64.us: ; preds = %92, %102, %83 %95 = add nuw i64 %.03668, 1 - %exitcond77.not = icmp eq i64 %95, %66 + %exitcond77.not = icmp eq i64 %95, %umax br i1 %exitcond77.not, label %._crit_edge, label %69, !llvm.loop !91 .split.split: ; preds = %.split, %102 @@ -16750,7 +16751,7 @@ _ZN5zxing6qrcode7Version22getDimensionForVersionERNS_12ErrorHandlerE.exit: ; pre 102: ; preds = %.thread, %.split.split %103 = add nuw i64 %.060, 1 - %exitcond73.not = icmp eq i64 %103, %66 + %exitcond73.not = icmp eq i64 %103, %umax br i1 %exitcond73.not, label %.split64.us, label %.split.split, !llvm.loop !92 .split62.split: ; preds = %.thread @@ -16956,8 +16957,10 @@ _ZN5zxing6qrcode7Version22getDimensionForVersionERNS_12ErrorHandlerE.exit: ; pre %57 = ptrtoint ptr %55 to i64 %58 = ptrtoint ptr %56 to i64 %59 = sub i64 %57, %58 - %60 = ashr exact i64 %59, 2 + %.fr77 = freeze i64 %59 + %60 = ashr i64 %.fr77, 2 %61 = add nsw i64 %60, -1 + %umax = call i64 @llvm.umax.i64(i64 %60, i64 1) br label %63 ._crit_edge: ; preds = %.split70.us, %51 @@ -16993,7 +16996,7 @@ _ZN5zxing6qrcode7Version22getDimensionForVersionERNS_12ErrorHandlerE.exit: ; pre 77: ; preds = %.thread.us, %.split.us %78 = add nuw i64 %.066.us, 1 - %exitcond81.not = icmp eq i64 %78, %60 + %exitcond81.not = icmp eq i64 %78, %umax br i1 %exitcond81.not, label %.split70.us, label %.split.us, !llvm.loop !93 .split68.us: ; preds = %.thread.us @@ -17003,8 +17006,7 @@ _ZN5zxing6qrcode7Version22getDimensionForVersionERNS_12ErrorHandlerE.exit: ; pre .split: ; preds = %63 %80 = icmp eq i64 %.04074, %61 - %.fr = freeze i1 %80 - br i1 %.fr, label %.split.split, label %.thread.us72 + br i1 %80, label %.split.split, label %.thread.us72 .thread.us72: ; preds = %.split, %86 %.066.us71 = phi i64 [ %87, %86 ], [ 0, %.split ] @@ -17018,7 +17020,7 @@ _ZN5zxing6qrcode7Version22getDimensionForVersionERNS_12ErrorHandlerE.exit: ; pre 86: ; preds = %.thread.us72 %87 = add nuw i64 %.066.us71, 1 - %exitcond.not = icmp eq i64 %87, %60 + %exitcond.not = icmp eq i64 %87, %umax br i1 %exitcond.not, label %.split70.us, label %.thread.us72, !llvm.loop !94 .split68.split.us: ; preds = %.thread.us72 @@ -17028,7 +17030,7 @@ _ZN5zxing6qrcode7Version22getDimensionForVersionERNS_12ErrorHandlerE.exit: ; pre .split70.us: ; preds = %86, %96, %77 %89 = add nuw i64 %.04074, 1 - %exitcond83.not = icmp eq i64 %89, %60 + %exitcond83.not = icmp eq i64 %89, %umax br i1 %exitcond83.not, label %._crit_edge, label %63, !llvm.loop !95 .split.split: ; preds = %.split, %96 @@ -17047,7 +17049,7 @@ _ZN5zxing6qrcode7Version22getDimensionForVersionERNS_12ErrorHandlerE.exit: ; pre 96: ; preds = %.thread, %.split.split %97 = add nuw i64 %.066, 1 - %exitcond79.not = icmp eq i64 %97, %60 + %exitcond79.not = icmp eq i64 %97, %umax br i1 %exitcond79.not, label %.split70.us, label %.split.split, !llvm.loop !96 .split68.split: ; preds = %.thread diff --git a/bench/openexr/optimized/ImfCheckFile.ll b/bench/openexr/optimized/ImfCheckFile.ll index 3699c992a54..4a02a47fd0b 100644 --- a/bench/openexr/optimized/ImfCheckFile.ll +++ b/bench/openexr/optimized/ImfCheckFile.ll @@ -5255,7 +5255,8 @@ _ZNSt6vectorIjSaIjEED2Ev.exit127.thread.i: ; preds = %347 416: ; preds = %359 %417 = getelementptr inbounds nuw i8, ptr %304, i64 8 %418 = load i32, ptr %417, align 4, !tbaa !137 - %419 = icmp eq i32 %418, 2 + %.fr332.i = freeze i32 %418 + %419 = icmp eq i32 %.fr332.i, 2 %.not242307.i = icmp sgt i32 %300, 0 %.not109302.i = icmp sgt i32 %298, 0 %or.cond.i113 = and i1 %.not109302.i, %.not242307.i @@ -5271,7 +5272,6 @@ _ZNSt6vectorIjSaIjEED2Ev.exit127.thread.i: ; preds = %347 %.381303.us.i.us = phi i1 [ %.583.us.i.us, %.thread200.us.i.loopexit186.us ], [ %.179308.us.i, %.preheader250.us.i ] %420 = icmp eq i32 %.069305.us.i.us, %.070310.us.i %or.cond.not245.not248.us.i.us = or i1 %419, %420 - %or.cond.not245.not248.us.fr.i.us = freeze i1 %or.cond.not245.not248.us.i.us br label %.preheader249.split.us321.i.us .preheader249.split.us321.i.us: ; preds = %.preheader249.us.i.us, %.split277.us.i.us @@ -5311,7 +5311,7 @@ _ZNSt6vectorIjSaIjEED2Ev.exit127.thread.i: ; preds = %347 to label %431 unwind label %.split.split.us.i.split.us 431: ; preds = %427 - %.785.mux.us319.i.us = select i1 %or.cond.not245.not248.us.fr.i.us, i1 true, i1 %.785.us.i.us + %.785.mux.us319.i.us = select i1 %or.cond.not245.not248.us.i.us, i1 true, i1 %.785.us.i.us br label %432 432: ; preds = %431, %426 @@ -5376,8 +5376,7 @@ _ZNSt6vectorIjSaIjEED2Ev.exit127.thread.i: ; preds = %347 %.069305.us.i = phi i32 [ %450, %.thread200.us.i ], [ 0, %.preheader250.us.i ] %449 = icmp eq i32 %.069305.us.i, %.070310.us.i %or.cond.not245.not248.us.i = or i1 %419, %449 - %or.cond.not245.not248.us.fr.i = freeze i1 %or.cond.not245.not248.us.i - br i1 %or.cond.not245.not248.us.fr.i, label %.preheader249.split.us.us.i, label %.preheader249.split.us321.i + br i1 %or.cond.not245.not248.us.i, label %.preheader249.split.us.us.i, label %.preheader249.split.us321.i .thread200.us.i: ; preds = %438, %452 %450 = add nuw nsw i32 %.069305.us.i, 1 @@ -6601,7 +6600,8 @@ _ZN7Imf_3_415DeepFrameBufferC2Ev.exit.i138: ; preds = %._crit_edge.i136 864: ; preds = %849 %865 = getelementptr inbounds nuw i8, ptr %768, i64 8 %866 = load i32, ptr %865, align 4, !tbaa !137 - %867 = icmp eq i32 %866, 2 + %.fr363 = freeze i32 %866 + %867 = icmp eq i32 %.fr363, 2 %.not188457.i = icmp sgt i32 %773, 0 br i1 %.not188457.i, label %.preheader311.lr.ph.i, label %_ZNSt6vectorIfSaIfEED2Ev.exit198.i @@ -7046,7 +7046,7 @@ _ZNSt6vectorIfSaIfEE6resizeEm.exit.us.i.us.us.us: ; preds = %_ZNSt12_Vector_base to label %1004 unwind label %.split484.us.i.split.split 1004: ; preds = %1001 - %.6164.mux.us.i = select i1 %or.cond.not290.not293.us.i.fr, i1 true, i1 %.6164.us.i + %.6164.mux.us.i = select i1 %or.cond.not290.not293.us.i, i1 true, i1 %.6164.us.i br label %._crit_edge399.us.thread.i ._crit_edge399.us.thread.i: ; preds = %1000, %1004 @@ -7059,8 +7059,7 @@ _ZNSt6vectorIfSaIfEE6resizeEm.exit.us.i.us.us.us: ; preds = %_ZNSt12_Vector_base %.2160450.us.i = phi i1 [ %.us-phi339, %.thread256.us.i.split ], [ %.0158461.us.i, %.preheader311.us.i ] %1006 = icmp eq i32 %.0141452.us.i, %.0146463.us.i %or.cond.not290.not293.us.i = or i1 %867, %1006 - %or.cond.not290.not293.us.i.fr = freeze i1 %or.cond.not290.not293.us.i - %brmerge.not.us.i147 = and i1 %2, %or.cond.not290.not293.us.i.fr + %brmerge.not.us.i147 = and i1 %2, %or.cond.not290.not293.us.i br i1 %brmerge.not.us.i147, label %.preheader310.us.i.split.split.us, label %.preheader310.us.i.split.split .preheader310.us.i.split.split.us: ; preds = %.preheader310.us.i, %.thread.us.i.split.split.us.us @@ -8538,7 +8537,8 @@ default.unreachable: ; preds = %96 142: ; preds = %85 %143 = getelementptr inbounds nuw i8, ptr %25, i64 8 %144 = load i32, ptr %143, align 4, !tbaa !137 - %145 = icmp eq i32 %144, 2 + %.fr332 = freeze i32 %144 + %145 = icmp eq i32 %.fr332, 2 %.not242307 = icmp sgt i32 %21, 0 %.not109302 = icmp sgt i32 %19, 0 %or.cond = and i1 %.not242307, %.not109302 @@ -8586,7 +8586,7 @@ default.unreachable: ; preds = %96 to label %156 unwind label %.split.split.us 156: ; preds = %152 - %.785.mux.us319 = select i1 %or.cond.not245.not248.us.fr, i1 true, i1 %.785.us + %.785.mux.us319 = select i1 %or.cond.not245.not248.us, i1 true, i1 %.785.us br label %157 157: ; preds = %156, %151 @@ -8599,8 +8599,7 @@ default.unreachable: ; preds = %96 %.381303.us = phi i1 [ %.179308.us, %.preheader250.us ], [ %.us-phi293.us, %.thread200.us ] %159 = icmp eq i32 %.069305.us, %.070310.us %or.cond.not245.not248.us = or i1 %145, %159 - %or.cond.not245.not248.us.fr = freeze i1 %or.cond.not245.not248.us - %brmerge.not.us = and i1 %2, %or.cond.not245.not248.us.fr + %brmerge.not.us = and i1 %2, %or.cond.not245.not248.us br i1 %brmerge.not.us, label %.preheader249.split.us.us, label %.preheader249.split.us321 .thread200.us: ; preds = %147, %162 diff --git a/bench/openexr/optimized/ImfOutputFile.ll b/bench/openexr/optimized/ImfOutputFile.ll index 254504f129b..6dce8cb9cc9 100644 --- a/bench/openexr/optimized/ImfOutputFile.ll +++ b/bench/openexr/optimized/ImfOutputFile.ll @@ -2316,18 +2316,17 @@ _ZN7Imf_3_411FrameBufferaSERKS0_.exit: ; preds = %109 %196 = ptrtoint ptr %106 to i64 %197 = ptrtoint ptr %.sroa.0.0 to i64 %198 = sub i64 %196, %197 - %reass.sub.fr.i = freeze i64 %198 %.val34.i = load ptr, ptr %195, align 8, !tbaa !157 %199 = getelementptr inbounds nuw i8, ptr %194, i64 248 %.val35.i = load ptr, ptr %199, align 8, !tbaa !158 %200 = ptrtoint ptr %.val35.i to i64 %201 = ptrtoint ptr %.val34.i to i64 %202 = sub i64 %200, %201 - %203 = icmp ugt i64 %reass.sub.fr.i, %202 + %203 = icmp ugt i64 %198, %202 br i1 %203, label %204, label %214 204: ; preds = %_ZN7Imf_3_411FrameBufferaSERKS0_.exit - %205 = sdiv exact i64 %reass.sub.fr.i, 48 + %205 = sdiv exact i64 %198, 48 %206 = icmp ugt i64 %205, 192153584101141162 br i1 %206, label %207, label %_ZNSt12_Vector_baseIN7Imf_3_412_GLOBAL__N_112OutSliceInfoESaIS2_EE11_M_allocateEm.exit.i.i, !prof !159 @@ -2339,7 +2338,7 @@ _ZN7Imf_3_411FrameBufferaSERKS0_.exit: ; preds = %109 unreachable _ZNSt12_Vector_baseIN7Imf_3_412_GLOBAL__N_112OutSliceInfoESaIS2_EE11_M_allocateEm.exit.i.i: ; preds = %204 - %208 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %reass.sub.fr.i) #25 + %208 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %198) #25 to label %.noexc65 unwind label %232 .noexc65: ; preds = %_ZNSt12_Vector_baseIN7Imf_3_412_GLOBAL__N_112OutSliceInfoESaIS2_EE11_M_allocateEm.exit.i.i @@ -2347,9 +2346,9 @@ _ZNSt12_Vector_baseIN7Imf_3_412_GLOBAL__N_112OutSliceInfoESaIS2_EE11_M_allocateE br i1 %.not7.i.i.i.i.i.i, label %_ZNSt6vectorIN7Imf_3_412_GLOBAL__N_112OutSliceInfoESaIS2_EE20_M_allocate_and_copyIN9__gnu_cxx17__normal_iteratorIPKS2_S4_EEEEPS2_mT_SC_.exit.i, label %.lr.ph.i.i.i.i.preheader.i.i .lr.ph.i.i.i.i.preheader.i.i: ; preds = %.noexc65 - %209 = add i64 %reass.sub.fr.i, -48 + %209 = add i64 %198, -48 %210 = urem i64 %209, 48 - %211 = sub i64 %reass.sub.fr.i, %210 + %211 = sub i64 %198, %210 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %208, ptr readonly align 8 %.sroa.0.0, i64 %211, i1 false) br label %_ZNSt6vectorIN7Imf_3_412_GLOBAL__N_112OutSliceInfoESaIS2_EE20_M_allocate_and_copyIN9__gnu_cxx17__normal_iteratorIPKS2_S4_EEEEPS2_mT_SC_.exit.i @@ -2363,7 +2362,7 @@ _ZNSt6vectorIN7Imf_3_412_GLOBAL__N_112OutSliceInfoESaIS2_EE20_M_allocate_and_cop _ZNSt12_Vector_baseIN7Imf_3_412_GLOBAL__N_112OutSliceInfoESaIS2_EE13_M_deallocateEPS2_m.exit.i: ; preds = %212, %_ZNSt6vectorIN7Imf_3_412_GLOBAL__N_112OutSliceInfoESaIS2_EE20_M_allocate_and_copyIN9__gnu_cxx17__normal_iteratorIPKS2_S4_EEEEPS2_mT_SC_.exit.i store ptr %208, ptr %195, align 8, !tbaa !157 - %213 = getelementptr inbounds nuw i8, ptr %208, i64 %reass.sub.fr.i + %213 = getelementptr inbounds nuw i8, ptr %208, i64 %198 store ptr %213, ptr %199, align 8, !tbaa !158 br label %_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPKN7Imf_3_412_GLOBAL__N_112OutSliceInfoESt6vectorIS4_SaIS4_EEEENS1_IPS4_S9_EEET0_T_SE_SD_.exit.i @@ -2372,7 +2371,7 @@ _ZNSt12_Vector_baseIN7Imf_3_412_GLOBAL__N_112OutSliceInfoESaIS2_EE13_M_deallocat %.val28.i = load ptr, ptr %215, align 8, !tbaa !160 %216 = ptrtoint ptr %.val28.i to i64 %217 = sub i64 %216, %201 - %.not24.i = icmp ult i64 %217, %reass.sub.fr.i + %.not24.i = icmp ult i64 %217, %198 br i1 %.not24.i, label %220, label %218 218: ; preds = %214 @@ -2380,7 +2379,7 @@ _ZNSt12_Vector_baseIN7Imf_3_412_GLOBAL__N_112OutSliceInfoESaIS2_EE13_M_deallocat br i1 %.not.i.i.i.i.i.i62, label %_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPKN7Imf_3_412_GLOBAL__N_112OutSliceInfoESt6vectorIS4_SaIS4_EEEENS1_IPS4_S9_EEET0_T_SE_SD_.exit.i, label %219 219: ; preds = %218 - tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %.val34.i, ptr align 8 %.sroa.0.0, i64 %reass.sub.fr.i, i1 false) + tail call void @llvm.memmove.p0.p0.i64(ptr align 8 %.val34.i, ptr align 8 %.sroa.0.0, i64 %198, i1 false) br label %_ZSt4copyIN9__gnu_cxx17__normal_iteratorIPKN7Imf_3_412_GLOBAL__N_112OutSliceInfoESt6vectorIS4_SaIS4_EEEENS1_IPS4_S9_EEET0_T_SE_SD_.exit.i 220: ; preds = %214 @@ -2414,7 +2413,7 @@ _ZSt4copyIPN7Imf_3_412_GLOBAL__N_112OutSliceInfoES3_ET0_T_S5_S4_.exit.i: ; preds _ZSt4copyIN9__gnu_cxx17__normal_iteratorIPKN7Imf_3_412_GLOBAL__N_112OutSliceInfoESt6vectorIS4_SaIS4_EEEENS1_IPS4_S9_EEET0_T_SE_SD_.exit.i: ; preds = %.lr.ph.i.i.i.i.i, %_ZSt4copyIPN7Imf_3_412_GLOBAL__N_112OutSliceInfoES3_ET0_T_S5_S4_.exit.i, %219, %218, %_ZNSt12_Vector_baseIN7Imf_3_412_GLOBAL__N_112OutSliceInfoESaIS2_EE13_M_deallocateEPS2_m.exit.i %225 = load ptr, ptr %195, align 8, !tbaa !157 - %226 = getelementptr inbounds nuw i8, ptr %225, i64 %reass.sub.fr.i + %226 = getelementptr inbounds nuw i8, ptr %225, i64 %198 %227 = getelementptr inbounds nuw i8, ptr %194, i64 240 store ptr %226, ptr %227, align 8, !tbaa !160 %.not.i.i.i = icmp eq ptr %.sroa.0.0, null diff --git a/bench/openjdk/optimized/coalesce.ll b/bench/openjdk/optimized/coalesce.ll index c04fedeecca..ce928ca5287 100644 --- a/bench/openjdk/optimized/coalesce.ll +++ b/bench/openjdk/optimized/coalesce.ll @@ -726,8 +726,7 @@ define hidden void @_ZN23PhaseAggressiveCoalesce13insert_copiesER7Matcher(ptr no _ZN12LiveRangeMap4findEj.exit: ; preds = %.lr.ph298, %20 %.pre353 = phi ptr [ %.pre353.pre, %20 ], [ %.pre353373, %.lr.ph298 ] %22 = phi i32 [ %21, %20 ], [ %.0296, %.lr.ph298 ] - %.fr318 = freeze i32 %22 - %.not209 = icmp eq i32 %.0296, %.fr318 + %.not209 = icmp eq i32 %.0296, %22 br i1 %.not209, label %.loopexit289, label %.preheader288 .preheader288: ; preds = %_ZN12LiveRangeMap4findEj.exit @@ -748,12 +747,12 @@ _ZN12LiveRangeMap4findEj.exit: ; preds = %.lr.ph298, %20 %33 = zext nneg i32 %30 to i64 %34 = shl nuw i64 1, %32 %35 = xor i64 %34, -1 - %36 = icmp eq i32 %.fr318, 0 - %37 = lshr i32 %.fr318, 8 + %36 = icmp eq i32 %22, 0 + %37 = lshr i32 %22, 8 %38 = zext nneg i32 %37 to i64 - %39 = lshr i32 %.fr318, 6 + %39 = lshr i32 %22, 6 %40 = and i32 %39, 3 - %41 = and i32 %.fr318, 63 + %41 = and i32 %22, 63 %42 = zext nneg i32 %41 to i64 %43 = shl nuw i64 1, %42 %44 = zext nneg i32 %40 to i64 @@ -848,7 +847,7 @@ _ZN8IndexSet6removeEj.exit: ; preds = %.lr.ph.split br i1 %105, label %106, label %108 106: ; preds = %_ZN8IndexSet6removeEj.exit - %107 = tail call noundef ptr @_ZN8IndexSet22alloc_block_containingEj(ptr noundef nonnull align 8 dereferenceable(160) %91, i32 noundef %.fr318) #9 + %107 = tail call noundef ptr @_ZN8IndexSet22alloc_block_containingEj(ptr noundef nonnull align 8 dereferenceable(160) %91, i32 noundef %22) #9 br label %108 108: ; preds = %106, %_ZN8IndexSet6removeEj.exit diff --git a/bench/openjdk/optimized/logSelection.ll b/bench/openjdk/optimized/logSelection.ll index d97020390be..4978dc0fc02 100644 --- a/bench/openjdk/optimized/logSelection.ll +++ b/bench/openjdk/optimized/logSelection.ll @@ -72,22 +72,31 @@ define hidden void @_ZN12LogSelectionC2EPKN6LogTag4typeEbN8LogLevel4typeE(ptr no %15 = add i64 %10, 1 store i64 %15, ptr %0, align 8 %exitcond.not = icmp eq i64 %15, 5 - br i1 %exitcond.not, label %.critedge, label %9, !llvm.loop !6 + br i1 %exitcond.not, label %.critedge.thread, label %9, !llvm.loop !6 -.critedge: ; preds = %9, %13 - %.lcssa.ph = phi i64 [ %10, %9 ], [ 5, %13 ] +.critedge: ; preds = %9 %.promoted.pre = load i64, ptr %7, align 8 - %.lcssa.fr = freeze i64 %.lcssa.ph %.013 = load ptr, ptr @_ZN9LogTagSet5_listE, align 8 %.not914 = icmp eq ptr %.013, null br i1 %.not914, label %._crit_edge, label %.lr.ph16 -.lr.ph16: ; preds = %.critedge +.lr.ph16: ; preds = %13 + %.01329 = load ptr, ptr @_ZN9LogTagSet5_listE, align 8 + %.not91430 = icmp eq ptr %.01329, null + br i1 %.not91430, label %._crit_edge, label %.lr.ph16.thread + +.lr.ph16.thread: ; preds = %.critedge.thread + %.promoted.pre28 = load i64, ptr %7, align 8 %16 = load i8, ptr %5, align 4 %.fr23 = freeze i8 %16 %17 = trunc i8 %.fr23 to i1 - %.not10.i = icmp eq i64 %.lcssa.fr, 0 - %18 = getelementptr inbounds nuw i8, ptr %0, i64 8 + br i1 %17, label %.lr.ph.i.us.preheader, label %.lr.ph.i.us + +.lr.ph16: ; preds = %.critedge + %18 = load i8, ptr %5, align 4 + %.fr23 = freeze i8 %18 + %19 = trunc i8 %.fr23 to i1 + %.not10.i = icmp eq i64 %10, 0 br i1 %.not10.i, label %.lr.ph16.split.us, label %.lr.ph16.split .lr.ph16.split.us: ; preds = %.lr.ph16, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread.us @@ -96,7 +105,7 @@ define hidden void @_ZN12LogSelectionC2EPKN6LogTag4typeEbN8LogLevel4typeE(ptr no %20 = getelementptr inbounds nuw i8, ptr %.015.us, i64 8 %21 = load i64, ptr %20, align 8 %.not.i.us = icmp eq i64 %21, 0 - %or.cond.i.us = select i1 %17, i1 true, i1 %.not.i.us + %or.cond.i.us = select i1 %19, i1 true, i1 %.not.i.us br i1 %or.cond.i.us, label %_ZNK12LogSelection7selectsERK9LogTagSet.exit.us, label %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread.us _ZNK12LogSelection7selectsERK9LogTagSet.exit.us: ; preds = %.lr.ph16.split.us @@ -111,58 +120,72 @@ _ZNK12LogSelection7selectsERK9LogTagSet.exit.thread.us: ; preds = %_ZNK12LogSele br i1 %.not9.us, label %._crit_edge, label %.lr.ph16.split.us, !llvm.loop !8 .lr.ph16.split: ; preds = %.lr.ph16 - br i1 %17, label %.lr.ph.i.us, label %.lr.ph16.split.split - -.lr.ph.i.us: ; preds = %.lr.ph16.split, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread.us20 - %.015.us17 = phi ptr [ %.0.us21, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread.us20 ], [ %.013, %.lr.ph16.split ] - %24 = phi i64 [ %37, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread.us20 ], [ %.promoted.pre, %.lr.ph16.split ] - %25 = getelementptr inbounds nuw i8, ptr %.015.us17, i64 16 - br label %26 - -26: ; preds = %_ZNK9LogTagSet8containsEN6LogTag4typeE.exit.i.us, %.lr.ph.i.us - %.09.i.us = phi i64 [ 0, %.lr.ph.i.us ], [ %36, %_ZNK9LogTagSet8containsEN6LogTag4typeE.exit.i.us ] - %27 = getelementptr inbounds [5 x i32], ptr %18, i64 0, i64 %.09.i.us - %28 = load i32, ptr %27, align 4 + br i1 %19, label %.lr.ph.i.us.preheader, label %.lr.ph16.split.split.preheader + +.lr.ph.i.us: ; preds = %.lr.ph16.thread, %.lr.ph16.split + %.015.us17 = phi ptr [ %.01329, %.lr.ph16.thread ], [ %.013, %.lr.ph16.split ] + %24 = phi i64 [ %.promoted.pre28, %.lr.ph16.thread ], [ %.promoted.pre, %.lr.ph16.split ] + %.lcssa.ph314142 = phi i64 [ 5, %.lr.ph16.thread ], [ %10, %.lr.ph16.split ] + %25 = getelementptr inbounds nuw i8, ptr %0, i64 8 + br label %.lr.ph16.split.split + +.lr.ph.i.us.preheader:; preds = %.lr.ph16.thread, %.lr.ph16.split + %.013333946 = phi ptr [ %.01329, %.lr.ph16.thread ], [ %.013, %.lr.ph16.split ] + %.promoted.pre324044 = phi i64 [ %.promoted.pre28, %.lr.ph16.thread ], [ %.promoted.pre, %.lr.ph16.split ] + %.lcssa.ph314143 = phi i64 [ 5, %.lr.ph16.thread ], [ %10, %.lr.ph16.split ] + %26 = getelementptr inbounds nuw i8, ptr %0, i64 8 + br label %.lr.ph.i.us + +.lr.ph.i.us: ; preds = %.lr.ph.i.us.preheader, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread.us20 + %.015.us17 = phi ptr [ %.0.us21, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread.us20 ], [ %.013333946, %.lr.ph.i.us.preheader ] + %27 = phi i64 [ %40, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread.us20 ], [ %.promoted.pre324044, %.lr.ph.i.us.preheader ] + %28 = getelementptr inbounds nuw i8, ptr %.015.us17, i64 16 br label %29 -29: ; preds = %34, %26 - %.08.i.i.us = phi i64 [ 0, %26 ], [ %35, %34 ] - %30 = getelementptr inbounds nuw [5 x i32], ptr %25, i64 0, i64 %.08.i.i.us +29: ; preds = %_ZNK9LogTagSet8containsEN6LogTag4typeE.exit.i.us, %.lr.ph.i.us + %.08.i.i.us = phi i64 [ 0, %.lr.ph.i.us ], [ %39, %_ZNK9LogTagSet8containsEN6LogTag4typeE.exit.i.us ] + %30 = getelementptr inbounds [5 x i32], ptr %26, i64 0, i64 %.08.i.i.us %31 = load i32, ptr %30, align 4 - %.not.i.i.us = icmp eq i32 %31, 0 - br i1 %.not.i.i.us, label %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread.us20, label %32 - -32: ; preds = %29 - %33 = icmp eq i32 %28, %31 - br i1 %33, label %_ZNK9LogTagSet8containsEN6LogTag4typeE.exit.i.us, label %34 - -34: ; preds = %32 - %35 = add nuw nsw i64 %.08.i.i.us, 1 - %exitcond.not.i.i.us = icmp eq i64 %35, 5 - br i1 %exitcond.not.i.i.us, label %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread.us20, label %29, !llvm.loop !10 - -_ZNK9LogTagSet8containsEN6LogTag4typeE.exit.i.us: ; preds = %32 - %36 = add nuw i64 %.09.i.us, 1 - %exitcond.not.i.us = icmp eq i64 %36, %.lcssa.fr - br i1 %exitcond.not.i.us, label %_ZNK12LogSelection7selectsERK9LogTagSet.exit.loopexit.us, label %26, !llvm.loop !11 + br label %32 -_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread.us20: ; preds = %29, %34, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.loopexit.us - %37 = phi i64 [ %38, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.loopexit.us ], [ %24, %34 ], [ %24, %29 ] +_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread.us20: ; preds = %37, %29 + %37 = phi i64 [ 0, %29 ], [ %38, %37 ] + %33 = getelementptr inbounds nuw [5 x i32], ptr %28, i64 0, i64 %.08.i.i.us + %34 = load i32, ptr %33, align 4 + %.not.i.i.us = icmp eq i32 %34, 0 + br i1 %.not.i.i.us, label %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread.us20, label %35 + +35: ; preds = %32 + %36 = icmp eq i32 %31, %34 + br i1 %36, label %_ZNK9LogTagSet8containsEN6LogTag4typeE.exit.i.us, label %37 + +37: ; preds = %35 + %38 = add nuw nsw i64 %.08.i.i.us, 1 + %exitcond.not.i.i.us = icmp eq i64 %38, 5 + br i1 %exitcond.not.i.i.us, label %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread.us20, label %32, !llvm.loop !10 + +_ZNK9LogTagSet8containsEN6LogTag4typeE.exit.i.us: ; preds = %35 + %39 = add nuw i64 %.09.i.us, 1 + %exitcond.not.i.us = icmp eq i64 %39, %.lcssa.ph314143 + br i1 %exitcond.not.i.us, label %_ZNK12LogSelection7selectsERK9LogTagSet.exit.loopexit.us, label %29, !llvm.loop !11 + +_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread.us20: ; preds = %32, %37, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.loopexit.us + %40 = phi i64 [ %41, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.loopexit.us ], [ %27, %37 ], [ %27, %32 ] %.0.us21 = load ptr, ptr %.015.us17, align 8 %.not9.us22 = icmp eq ptr %.0.us21, null br i1 %.not9.us22, label %._crit_edge, label %.lr.ph.i.us, !llvm.loop !12 _ZNK12LogSelection7selectsERK9LogTagSet.exit.loopexit.us: ; preds = %_ZNK9LogTagSet8containsEN6LogTag4typeE.exit.i.us - %38 = add i64 %24, 1 + %38 = add i64 %27, 1 store i64 %38, ptr %7, align 8 br label %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread.us20 -.lr.ph16.split.split: ; preds = %.lr.ph16.split, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread - %.015 = phi ptr [ %.0, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread ], [ %.013, %.lr.ph16.split ] - %39 = phi i64 [ %55, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread ], [ %.promoted.pre, %.lr.ph16.split ] +.lr.ph16.split.split: ; preds = %.lr.ph.i.us, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread + %.015 = phi ptr [ %.0, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread ], [ %.013333947, %.lr.ph16.split.split.preheader ] + %39 = phi i64 [ %55, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread ], [ %.promoted.pre324045, %.lr.ph16.split.split.preheader ] %40 = getelementptr inbounds nuw i8, ptr %.015, i64 8 %41 = load i64, ptr %40, align 8 - %.not.i = icmp eq i64 %.lcssa.fr, %41 + %.not.i = icmp eq i64 %.lcssa.ph314142, %41 br i1 %.not.i, label %.lr.ph.i, label %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread .lr.ph.i: ; preds = %.lr.ph16.split.split @@ -171,7 +194,7 @@ _ZNK12LogSelection7selectsERK9LogTagSet.exit.loopexit.us: ; preds = %_ZNK9LogTag 43: ; preds = %_ZNK9LogTagSet8containsEN6LogTag4typeE.exit.i, %.lr.ph.i %.09.i = phi i64 [ 0, %.lr.ph.i ], [ %53, %_ZNK9LogTagSet8containsEN6LogTag4typeE.exit.i ] - %44 = getelementptr inbounds [5 x i32], ptr %18, i64 0, i64 %.09.i + %44 = getelementptr inbounds [5 x i32], ptr %25, i64 0, i64 %.09.i %45 = load i32, ptr %44, align 4 br label %48 @@ -181,7 +204,7 @@ _ZNK12LogSelection7selectsERK9LogTagSet.exit.loopexit.us: ; preds = %_ZNK9LogTag br i1 %exitcond.not.i.i, label %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread, label %48, !llvm.loop !10 48: ; preds = %46, %43 - %.08.i.i = phi i64 [ 0, %43 ], [ %47, %46 ] + %.08.i.i = phi i64 [ 0, %46 ], [ %47, %49 ] %49 = getelementptr inbounds nuw [5 x i32], ptr %42, i64 0, i64 %.08.i.i %50 = load i32, ptr %49, align 4 %.not.i.i = icmp eq i32 %50, 0 @@ -193,7 +216,7 @@ _ZNK12LogSelection7selectsERK9LogTagSet.exit.loopexit.us: ; preds = %_ZNK9LogTag _ZNK9LogTagSet8containsEN6LogTag4typeE.exit.i: ; preds = %51 %53 = add nuw i64 %.09.i, 1 - %exitcond.not.i = icmp eq i64 %53, %.lcssa.fr + %exitcond.not.i = icmp eq i64 %53, %.lcssa.ph314142 br i1 %exitcond.not.i, label %_ZNK12LogSelection7selectsERK9LogTagSet.exit.loopexit, label %43, !llvm.loop !11 _ZNK12LogSelection7selectsERK9LogTagSet.exit.loopexit: ; preds = %_ZNK9LogTagSet8containsEN6LogTag4typeE.exit.i @@ -202,12 +225,12 @@ _ZNK12LogSelection7selectsERK9LogTagSet.exit.loopexit: ; preds = %_ZNK9LogTagSet br label %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread _ZNK12LogSelection7selectsERK9LogTagSet.exit.thread: ; preds = %48, %46, %.lr.ph16.split.split, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.loopexit - %55 = phi i64 [ %39, %.lr.ph16.split.split ], [ %54, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.loopexit ], [ %39, %46 ], [ %39, %48 ] + %55 = phi i64 [ %39, %.lr.ph16.split.split ], [ %54, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.loopexit ], [ %39, %49 ], [ %39, %51 ] %.0 = load ptr, ptr %.015, align 8 %.not9 = icmp eq ptr %.0, null br i1 %.not9, label %._crit_edge, label %.lr.ph16.split.split, !llvm.loop !13 -._crit_edge: ; preds = %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread.us20, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread.us, %.critedge +._crit_edge: ; preds = %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread.us20, %_ZNK12LogSelection7selectsERK9LogTagSet.exit.thread.us, %.critedge.thread, %.critedge ret void } diff --git a/bench/openmpi/optimized/ras_slurm_module.ll b/bench/openmpi/optimized/ras_slurm_module.ll index 2820241c2fc..4873d4d072e 100644 --- a/bench/openmpi/optimized/ras_slurm_module.ll +++ b/bench/openmpi/optimized/ras_slurm_module.ll @@ -158,7 +158,7 @@ read_ip_port.exit.thread.thread: ; preds = %10 .outer.split.us.i: ; preds = %.outer.i %15 = call ptr @fgets(ptr noundef nonnull %1, i32 noundef 256, ptr noundef nonnull %11) %16 = call i32 @fclose(ptr noundef nonnull %11) - br i1 %.1.i, label %37, label %read_ip_port.exit.thread + br label %read_ip_port.exit .outer.split.i: ; preds = %.outer.i, %14 %.131 = phi ptr [ null, %14 ], [ %.232, %.outer.i ] @@ -210,32 +210,27 @@ read_ip_port.exit.thread.thread: ; preds = %10 %.1.i = phi i1 [ %.0.ph27.i, %26 ], [ true, %32 ], [ %.0.ph27.i, %30 ] call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(256) %1, i8 0, i64 256, i1 false) %35 = select i1 %.1.i, i1 %.113.i, i1 false - %.fr.i = freeze i1 %35 - br i1 %.fr.i, label %.outer.split.us.i, label %.outer.split.i, !llvm.loop !15 + br i1 %35, label %.thread.i, label %.outer.split.i, !llvm.loop !15 .critedge.i: ; preds = %17 %36 = call i32 @fclose(ptr noundef nonnull %11) - br i1 %.0.ph27.i, label %37, label %read_ip_port.exit.thread - -37: ; preds = %.critedge.i, %.outer.split.us.i - %.434 = phi ptr [ %.131, %.critedge.i ], [ %.232, %.outer.split.us.i ] - %.3 = phi i16 [ %.029, %.critedge.i ], [ %.1, %.outer.split.us.i ] - %.us-phi30.i = phi i1 [ %.012.ph26.i, %.critedge.i ], [ %.113.i, %.outer.split.us.i ] - br i1 %.us-phi30.i, label %read_ip_port.exit, label %read_ip_port.exit.thread - -read_ip_port.exit.thread: ; preds = %37, %.outer.split.us.i, %.critedge.i - %.str.18.sink = phi ptr [ @.str.17, %.critedge.i ], [ @.str.17, %.outer.split.us.i ], [ @.str.18, %37 ] - %.5.ph = phi ptr [ %.131, %.critedge.i ], [ %.232, %.outer.split.us.i ], [ %.434, %37 ] - call void (i32, ptr, ...) @pmix_output(i32 noundef 0, ptr noundef nonnull %.str.18.sink) #20 + %37 = select i1 %.0.ph27.i, i1 %.012.ph26.i, i1 false + br i1 %37, label %read_ip_port.exit, label %read_ip_port.exit.thread + +read_ip_port.exit.thread: ; preds = %.critedge.i + %.str.17.mux = select i1 %.0.ph27.i, ptr @.str.18, ptr @.str.17 + call void (i32, ptr, ...) @pmix_output(i32 noundef 0, ptr noundef nonnull %.str.17.mux) #20 call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %1) #20 - %38 = icmp eq ptr %.5.ph, null + %38 = icmp eq ptr %.131, null br i1 %38, label %pmix_obj_run_constructors.exit, label %43 -read_ip_port.exit: ; preds = %37 +read_ip_port.exit: ; preds = %.critedge.i, %.thread.i + %.3 = phi ptr [ %.232, %.thread.i ], [ %.131, %.critedge.i ] + %.2 = phi i16 [ %.1, %.thread.i ], [ %.029, %.critedge.i ] call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %1) #20 - %39 = icmp eq ptr %.434, null - %40 = zext i16 %.3 to i32 - %41 = icmp eq i16 %.3, 0 + %39 = icmp eq ptr %.3, null + %40 = zext i16 %.2 to i32 + %41 = icmp eq i16 %.2, 0 %or.cond4 = select i1 %39, i1 true, i1 %41 br i1 %or.cond4, label %42, label %44 @@ -243,7 +238,7 @@ read_ip_port.exit: ; preds = %37 br i1 %39, label %pmix_obj_run_constructors.exit, label %43 43: ; preds = %read_ip_port.exit.thread, %42 - %.54041 = phi ptr [ %.5.ph, %read_ip_port.exit.thread ], [ %.434, %42 ] + %.54041 = phi ptr [ %.131, %read_ip_port.exit.thread ], [ %.3, %42 ] call void @free(ptr noundef nonnull %.54041) #20 br label %pmix_obj_run_constructors.exit @@ -261,7 +256,7 @@ read_ip_port.exit: ; preds = %37 51: ; preds = %46 %52 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @prte_mca_ras_slurm_component, i64 232), align 8, !tbaa !14 - call void (i32, ptr, ...) @pmix_output(i32 noundef %45, ptr noundef nonnull @.str.5, ptr noundef nonnull %.434, i32 noundef %40, ptr noundef %52) #20 + call void (i32, ptr, ...) @pmix_output(i32 noundef %45, ptr noundef nonnull @.str.5, ptr noundef nonnull %.3, i32 noundef %40, ptr noundef %52) #20 br label %53 53: ; preds = %51, %46, %44 @@ -273,27 +268,27 @@ read_ip_port.exit: ; preds = %37 56: ; preds = %53 %57 = call ptr @prte_strerror(i32 noundef -2) #20 call void (i32, ptr, ...) @pmix_output(i32 noundef 0, ptr noundef nonnull @.str.6, ptr noundef %57, ptr noundef nonnull @.str.7, i32 noundef 163) #20 - call void @free(ptr noundef nonnull %.434) #20 + call void @free(ptr noundef nonnull %.3) #20 br label %pmix_obj_run_constructors.exit 58: ; preds = %53 call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %2, i8 0, i64 16, i1 false) store i16 2, ptr %2, align 4, !tbaa !31 - %59 = call zeroext i1 @pmix_net_isaddr(ptr noundef nonnull %.434) #20 + %59 = call zeroext i1 @pmix_net_isaddr(ptr noundef nonnull %.3) #20 br i1 %59, label %72, label %60 60: ; preds = %58 - %61 = call ptr @gethostbyname(ptr noundef nonnull %.434) #20 + %61 = call ptr @gethostbyname(ptr noundef nonnull %.3) #20 %62 = icmp eq ptr %61, null br i1 %62, label %63, label %65 63: ; preds = %60 - %64 = call i32 (ptr, ptr, i32, ...) @pmix_show_help(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.8, i32 noundef 1, ptr noundef nonnull %.434) #20 - call void @free(ptr noundef nonnull %.434) #20 + %64 = call i32 (ptr, ptr, i32, ...) @pmix_show_help(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.8, i32 noundef 1, ptr noundef nonnull %.3) #20 + call void @free(ptr noundef nonnull %.3) #20 br label %pmix_obj_run_constructors.exit 65: ; preds = %60 - call void @free(ptr noundef nonnull %.434) #20 + call void @free(ptr noundef nonnull %.3) #20 %66 = getelementptr inbounds nuw i8, ptr %61, i64 24 %67 = load ptr, ptr %66, align 8, !tbaa !35 %68 = load ptr, ptr %67, align 8, !tbaa !38 @@ -303,11 +298,11 @@ read_ip_port.exit: ; preds = %37 br label %72 72: ; preds = %65, %58 - %.030 = phi ptr [ %.434, %58 ], [ %71, %65 ] + %.030 = phi ptr [ %.3, %58 ], [ %71, %65 ] %73 = call i32 @inet_addr(ptr noundef %.030) #20 %74 = getelementptr inbounds nuw i8, ptr %2, i64 4 store i32 %73, ptr %74, align 4, !tbaa !39 - %rev.i = call noundef i16 @llvm.bswap.i16(i16 %.3) + %rev.i = call noundef i16 @llvm.bswap.i16(i16 %.2) %75 = getelementptr inbounds nuw i8, ptr %2, i64 2 store i16 %rev.i, ptr %75, align 2, !tbaa !40 %76 = load i32, ptr @socket_fd, align 4, !tbaa !30 diff --git a/bench/openssl/optimized/i_skey.ll b/bench/openssl/optimized/i_skey.ll index 12de77a1c17..9d957f20e38 100644 --- a/bench/openssl/optimized/i_skey.ll +++ b/bench/openssl/optimized/i_skey.ll @@ -200,10 +200,9 @@ define void @IDEA_set_decrypt_key(ptr noundef readonly captures(none) %0, ptr no %.02132.i = phi i64 [ %.12033.i, %.lr.ph.i ], [ 0, %.lr.ph.i.preheader ] %.02331.i = phi i64 [ %14, %.lr.ph.i ], [ %10, %.lr.ph.i.preheader ] %15 = sub nsw i64 %.034.i, %14 - %16 = sdiv i64 %15, %.02331.i - %17 = mul nsw i64 %16, %.12033.i - %.fr37.i = freeze i64 %17 - %18 = sub i64 %.02132.i, %.fr37.i + %16 = udiv i64 %15, %.02331.i + %17 = mul i64 %16, %.12033.i + %18 = sub i64 %.02132.i, %17 %19 = urem i64 %.02331.i, %14 %20 = icmp eq i64 %19, 0 br i1 %20, label %.thread.i, label %.lr.ph.i, !llvm.loop !10 @@ -253,16 +252,15 @@ inverse.exit: ; preds = %7, %.thread.i, %4 %.02132.i34 = phi i64 [ %.12033.i33, %.lr.ph.i31 ], [ 0, %.lr.ph.i31.preheader ] %.02331.i35 = phi i64 [ %42, %.lr.ph.i31 ], [ %38, %.lr.ph.i31.preheader ] %43 = sub nsw i64 %.034.i32, %42 - %44 = sdiv i64 %43, %.02331.i35 - %45 = mul nsw i64 %44, %.12033.i33 - %.fr37.i36 = freeze i64 %45 - %46 = sub i64 %.02132.i34, %.fr37.i36 + %44 = udiv i64 %43, %.02331.i35 + %45 = mul i64 %44, %.12033.i33 + %46 = sub i64 %.02132.i34, %45 %47 = urem i64 %.02331.i35, %42 %48 = icmp eq i64 %47, 0 br i1 %48, label %.thread.i37, label %.lr.ph.i31, !llvm.loop !10 inverse.exit41: ; preds = %35, %.thread.i37, %inverse.exit - %.019.i40 = phi i32 [ 0, %inverse.exit ], [ 1, %35 ], [ %41, %.thread.i37 ] + %.019.i40 = phi i32 [ 0, %inverse.exit ], [ 1, %35 ], [ %41, %.thread.i36 ] store i32 %.019.i40, ptr %31, align 4, !tbaa !6 %49 = icmp eq i32 %.0, 8 br i1 %49, label %60, label %50 diff --git a/bench/openusd/optimized/dirtyBitsTranslator.ll b/bench/openusd/optimized/dirtyBitsTranslator.ll index 5271b5af415..20ce8892edb 100644 --- a/bench/openusd/optimized/dirtyBitsTranslator.ll +++ b/bench/openusd/optimized/dirtyBitsTranslator.ll @@ -2071,8 +2071,7 @@ _ZNK32pxrInternal_v0_24__pxrReserved__12TfStaticDataINS_32HdPrimTypeTokens_Stati _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit: ; preds = %58, %60 %.12324 = phi ptr [ %61, %60 ], [ %.11323, %58 ] %.011.i = phi i1 [ %.2.us.i, %60 ], [ %.02.us.i, %58 ] - %cond.fr = freeze i1 %.011.i - %spec.select = select i1 %cond.fr, i32 256, i32 0 + %spec.select = select i1 %.011.i, i32 256, i32 0 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit, %54, %_ZNK32pxrInternal_v0_24__pxrReserved__12TfStaticDataINS_32HdPrimTypeTokens_StaticTokenTypeENS_27Tf_StaticDataDefaultFactoryIS1_EEEptEv.exit @@ -2141,8 +2140,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.14326 = phi ptr [ %88, %87 ], [ %.13325, %85 ] %.011.i86 = phi i1 [ %.2.us.i84, %87 ], [ %.02.us.i83, %85 ] %89 = or disjoint i32 %.0, 64 - %cond.fr339 = freeze i1 %.011.i86 - %spec.select436 = select i1 %cond.fr339, i32 %89, i32 %.0 + %spec.select436 = select i1 %.011.i86, i32 %89, i32 %.0 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit87.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit87.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit87, %81, %_ZNK32pxrInternal_v0_24__pxrReserved__12TfStaticDataINS_32HdPrimTypeTokens_StaticTokenTypeENS_27Tf_StaticDataDefaultFactoryIS1_EEEptEv.exit80 @@ -2172,8 +2170,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.16327 = phi ptr [ %96, %95 ], [ %.15, %93 ] %.011.i93 = phi i1 [ %.2.us.i91, %95 ], [ %.02.us.i90, %93 ] %97 = or i32 %.1, 2097152 - %cond.fr344 = freeze i1 %.011.i93 - %spec.select437 = select i1 %cond.fr344, i32 %97, i32 %.1 + %spec.select437 = select i1 %.011.i93, i32 %97, i32 %.1 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit94.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit94.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit94, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit87.thread @@ -2243,8 +2240,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.18329 = phi ptr [ %126, %125 ], [ %.17328, %123 ] %.011.i103 = phi i1 [ %.2.us.i101, %125 ], [ %.02.us.i100, %123 ] %127 = or i32 %98, 64 - %cond.fr349 = freeze i1 %.011.i103 - %spec.select438 = select i1 %cond.fr349, i32 %127, i32 %98 + %spec.select438 = select i1 %.011.i103, i32 %127, i32 %98 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit104.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit104.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit104, %119, %_ZNK32pxrInternal_v0_24__pxrReserved__12TfStaticDataINS_32HdPrimTypeTokens_StaticTokenTypeENS_27Tf_StaticDataDefaultFactoryIS1_EEEptEv.exit97 @@ -2314,8 +2310,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.20331 = phi ptr [ %155, %154 ], [ %.19330, %152 ] %.011.i113 = phi i1 [ %.2.us.i111, %154 ], [ %.02.us.i110, %152 ] %156 = or i32 %.3, 64 - %cond.fr354 = freeze i1 %.011.i113 - %spec.select439 = select i1 %cond.fr354, i32 %156, i32 %.3 + %spec.select439 = select i1 %.011.i113, i32 %156, i32 %.3 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit114.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit114.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit114, %148, %_ZNK32pxrInternal_v0_24__pxrReserved__12TfStaticDataINS_32HdPrimTypeTokens_StaticTokenTypeENS_27Tf_StaticDataDefaultFactoryIS1_EEEptEv.exit107 @@ -2385,8 +2380,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.22332 = phi ptr [ %184, %183 ], [ %.21, %181 ] %.011.i123 = phi i1 [ %.2.us.i121, %183 ], [ %.02.us.i120, %181 ] %185 = or i32 %.4, 64 - %cond.fr359 = freeze i1 %.011.i123 - %spec.select440 = select i1 %cond.fr359, i32 %185, i32 %.4 + %spec.select440 = select i1 %.011.i123, i32 %185, i32 %.4 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit124.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit124.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit124, %177, %_ZNK32pxrInternal_v0_24__pxrReserved__12TfStaticDataINS_32HdPrimTypeTokens_StaticTokenTypeENS_27Tf_StaticDataDefaultFactoryIS1_EEEptEv.exit117 @@ -2471,8 +2465,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.26 = phi ptr [ %214, %213 ], [ %.25334, %211 ] %.011.i133 = phi i1 [ %.2.us.i131, %213 ], [ %.02.us.i130, %211 ] %215 = or i32 %.6, 8 - %cond.fr366 = freeze i1 %.011.i133 - %spec.select441 = select i1 %cond.fr366, i32 %215, i32 %.6 + %spec.select441 = select i1 %.011.i133, i32 %215, i32 %.6 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit134.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit134.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit134, %.critedge @@ -2502,8 +2495,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.28 = phi ptr [ %223, %222 ], [ %.27, %220 ] %.011.i140 = phi i1 [ %.2.us.i138, %222 ], [ %.02.us.i137, %220 ] %224 = or i32 %216, 64 - %cond.fr371 = freeze i1 %.011.i140 - %spec.select442 = select i1 %cond.fr371, i32 %224, i32 %216 + %spec.select442 = select i1 %.011.i140, i32 %224, i32 %216 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit141.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit141.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit141, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit134.thread @@ -2533,8 +2525,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.30 = phi ptr [ %232, %231 ], [ %.29, %229 ] %.011.i147 = phi i1 [ %.2.us.i145, %231 ], [ %.02.us.i144, %229 ] %233 = or i32 %225, 65536 - %cond.fr376 = freeze i1 %.011.i147 - %spec.select443 = select i1 %cond.fr376, i32 %233, i32 %225 + %spec.select443 = select i1 %.011.i147, i32 %233, i32 %225 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit148.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit148.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit148, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit141.thread @@ -2564,8 +2555,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.32 = phi ptr [ %241, %240 ], [ %.31, %238 ] %.011.i154 = phi i1 [ %.2.us.i152, %240 ], [ %.02.us.i151, %238 ] %242 = or i32 %234, 131072 - %cond.fr381 = freeze i1 %.011.i154 - %spec.select444 = select i1 %cond.fr381, i32 %242, i32 %234 + %spec.select444 = select i1 %.011.i154, i32 %242, i32 %234 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit155.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit155.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit155, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit148.thread @@ -2595,8 +2585,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.34 = phi ptr [ %250, %249 ], [ %.33, %247 ] %.011.i161 = phi i1 [ %.2.us.i159, %249 ], [ %.02.us.i158, %247 ] %251 = or i32 %243, 128 - %cond.fr386 = freeze i1 %.011.i161 - %spec.select445 = select i1 %cond.fr386, i32 %251, i32 %243 + %spec.select445 = select i1 %.011.i161, i32 %251, i32 %243 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit162.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit162.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit162, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit155.thread @@ -2666,8 +2655,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.36 = phi ptr [ %280, %279 ], [ %.35, %277 ] %.011.i171 = phi i1 [ %.2.us.i169, %279 ], [ %.02.us.i168, %277 ] %281 = or i32 %252, 4096 - %cond.fr391 = freeze i1 %.011.i171 - %spec.select446 = select i1 %cond.fr391, i32 %281, i32 %252 + %spec.select446 = select i1 %.011.i171, i32 %281, i32 %252 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit172.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit172.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit172, %273 @@ -2697,8 +2685,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.38 = phi ptr [ %289, %288 ], [ %.37, %286 ] %.011.i178 = phi i1 [ %.2.us.i176, %288 ], [ %.02.us.i175, %286 ] %290 = or i32 %282, 256 - %cond.fr396 = freeze i1 %.011.i178 - %spec.select447 = select i1 %cond.fr396, i32 %290, i32 %282 + %spec.select447 = select i1 %.011.i178, i32 %290, i32 %282 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit179.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit179.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit179, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit172.thread @@ -2728,8 +2715,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.40 = phi ptr [ %298, %297 ], [ %.39, %295 ] %.011.i185 = phi i1 [ %.2.us.i183, %297 ], [ %.02.us.i182, %295 ] %299 = or i32 %291, 16384 - %cond.fr401 = freeze i1 %.011.i185 - %spec.select448 = select i1 %cond.fr401, i32 %299, i32 %291 + %spec.select448 = select i1 %.011.i185, i32 %299, i32 %291 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit186.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit186.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit186, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit179.thread @@ -2759,8 +2745,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.42 = phi ptr [ %307, %306 ], [ %.41, %304 ] %.011.i192 = phi i1 [ %.2.us.i190, %306 ], [ %.02.us.i189, %304 ] %308 = or i32 %300, 256 - %cond.fr406 = freeze i1 %.011.i192 - %spec.select449 = select i1 %cond.fr406, i32 %308, i32 %300 + %spec.select449 = select i1 %.011.i192, i32 %308, i32 %300 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit193.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit193.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit193, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit186.thread, %_ZNK32pxrInternal_v0_24__pxrReserved__12TfStaticDataINS_32HdPrimTypeTokens_StaticTokenTypeENS_27Tf_StaticDataDefaultFactoryIS1_EEEptEv.exit165 @@ -2850,8 +2835,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.46 = phi ptr [ %340, %339 ], [ %.45, %337 ] %.011.i204 = phi i1 [ %.2.us.i202, %339 ], [ %.02.us.i201, %337 ] %341 = or i32 %.18, 524288 - %cond.fr413 = freeze i1 %.011.i204 - %spec.select450 = select i1 %cond.fr413, i32 %341, i32 %.18 + %spec.select450 = select i1 %.011.i204, i32 %341, i32 %.18 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit205.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit205.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit205, %.critedge2 @@ -2921,8 +2905,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.48 = phi ptr [ %370, %369 ], [ %.47, %367 ] %.011.i214 = phi i1 [ %.2.us.i212, %369 ], [ %.02.us.i211, %367 ] %371 = or i32 %342, 64 - %cond.fr418 = freeze i1 %.011.i214 - %spec.select451 = select i1 %cond.fr418, i32 %371, i32 %342 + %spec.select451 = select i1 %.011.i214, i32 %371, i32 %342 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit215.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit215.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit215, %363, %_ZNK32pxrInternal_v0_24__pxrReserved__12TfStaticDataINS_32HdPrimTypeTokens_StaticTokenTypeENS_27Tf_StaticDataDefaultFactoryIS1_EEEptEv.exit208 @@ -2952,8 +2935,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.50 = phi ptr [ %378, %377 ], [ %.49, %375 ] %.011.i221 = phi i1 [ %.2.us.i219, %377 ], [ %.02.us.i218, %375 ] %379 = or i32 %.22, 1024 - %cond.fr423 = freeze i1 %.011.i221 - %spec.select452 = select i1 %cond.fr423, i32 %379, i32 %.22 + %spec.select452 = select i1 %.011.i221, i32 %379, i32 %.22 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit222.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit222.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit222, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit215.thread @@ -2983,8 +2965,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.52 = phi ptr [ %387, %386 ], [ %.51, %384 ] %.011.i228 = phi i1 [ %.2.us.i226, %386 ], [ %.02.us.i225, %384 ] %388 = or i32 %380, 4194304 - %cond.fr428 = freeze i1 %.011.i228 - %spec.select453 = select i1 %cond.fr428, i32 %388, i32 %380 + %spec.select453 = select i1 %.011.i228, i32 %388, i32 %380 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit229.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit229.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit229, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit222.thread @@ -3013,8 +2994,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit236: ; preds = %393, %395 %.011.i235 = phi i1 [ %.02.us.i232, %393 ], [ %.2.us.i233, %395 ] %397 = or i32 %389, 512 - %cond.fr433 = freeze i1 %.011.i235 - %spec.select454 = select i1 %cond.fr433, i32 %397, i32 %389 + %spec.select454 = select i1 %.011.i235, i32 %397, i32 %389 br label %_ZNK32pxrInternal_v0_24__pxrReserved__19HdDataSourceLocatoreqERKS0_.exit.thread _ZNK32pxrInternal_v0_24__pxrReserved__19HdDataSourceLocatoreqERKS0_.exit.thread: ; preds = %30, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit236, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit229.thread, %13, %2 @@ -4181,8 +4161,7 @@ _ZNK32pxrInternal_v0_24__pxrReserved__19HdDataSourceLocatoreqERKS0_.exit: ; pred _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit: ; preds = %37, %39 %.145 = phi ptr [ %40, %39 ], [ %.0, %37 ] %.011.i = phi i1 [ %.2.us.i, %39 ], [ %.02.us.i, %37 ] - %cond.fr = freeze i1 %.011.i - %spec.select = select i1 %cond.fr, i32 65536, i32 0 + %spec.select = select i1 %.011.i, i32 65536, i32 0 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit, %_ZNK32pxrInternal_v0_24__pxrReserved__19HdDataSourceLocatoreqERKS0_.exit @@ -4212,8 +4191,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.347 = phi ptr [ %48, %47 ], [ %.246, %45 ] %.011.i17 = phi i1 [ %.2.us.i15, %47 ], [ %.02.us.i14, %45 ] %49 = or disjoint i32 %41, 131072 - %cond.fr52 = freeze i1 %.011.i17 - %spec.select65 = select i1 %cond.fr52, i32 %49, i32 %41 + %spec.select65 = select i1 %.011.i17, i32 %49, i32 %41 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit18.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit18.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit18, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit.thread @@ -4243,8 +4221,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.5 = phi ptr [ %57, %56 ], [ %.4, %54 ] %.011.i24 = phi i1 [ %.2.us.i22, %56 ], [ %.02.us.i21, %54 ] %58 = or i32 %50, 64 - %cond.fr57 = freeze i1 %.011.i24 - %spec.select66 = select i1 %cond.fr57, i32 %58, i32 %50 + %spec.select66 = select i1 %.011.i24, i32 %58, i32 %50 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit25.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit25.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit25, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit18.thread @@ -4273,8 +4250,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit32: ; preds = %63, %65 %.011.i31 = phi i1 [ %.02.us.i28, %63 ], [ %.2.us.i29, %65 ] %67 = or i32 %59, 512 - %cond.fr62 = freeze i1 %.011.i31 - %spec.select67 = select i1 %cond.fr62, i32 %67, i32 %59 + %spec.select67 = select i1 %.011.i31, i32 %67, i32 %59 br label %_ZNK32pxrInternal_v0_24__pxrReserved__19HdDataSourceLocatoreqERKS0_.exit.thread _ZNK32pxrInternal_v0_24__pxrReserved__19HdDataSourceLocatoreqERKS0_.exit.thread: ; preds = %30, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit32, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit25.thread, %13, %2 @@ -4359,8 +4335,7 @@ _ZNK32pxrInternal_v0_24__pxrReserved__12TfStaticDataINS_32HdPrimTypeTokens_Stati _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit: ; preds = %32, %34 %.011.i = phi i1 [ %.02.us.i, %32 ], [ %.2.us.i, %34 ] - %cond.fr = freeze i1 %.011.i - %spec.select = zext i1 %cond.fr to i32 + %spec.select = zext i1 %.011.i to i32 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit.thread 36: ; preds = %_ZNK32pxrInternal_v0_24__pxrReserved__12TfStaticDataINS_32HdPrimTypeTokens_StaticTokenTypeENS_27Tf_StaticDataDefaultFactoryIS1_EEEptEv.exit @@ -4427,8 +4402,7 @@ _ZNK32pxrInternal_v0_24__pxrReserved__12TfStaticDataINS_32HdPrimTypeTokens_Stati _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit39: ; preds = %61, %63 %.2125 = phi ptr [ %64, %63 ], [ %.1, %61 ] %.011.i38 = phi i1 [ %.2.us.i36, %63 ], [ %.02.us.i35, %61 ] - %cond.fr133 = freeze i1 %.011.i38 - %spec.select174 = select i1 %cond.fr133, i32 2, i32 0 + %spec.select174 = select i1 %.011.i38, i32 2, i32 0 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit39.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit39.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit39, %57 @@ -4458,8 +4432,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.4127 = phi ptr [ %72, %71 ], [ %.3126, %69 ] %.011.i45 = phi i1 [ %.2.us.i43, %71 ], [ %.02.us.i42, %69 ] %73 = or disjoint i32 %65, 256 - %cond.fr138 = freeze i1 %.011.i45 - %spec.select175 = select i1 %cond.fr138, i32 %73, i32 %65 + %spec.select175 = select i1 %.011.i45, i32 %73, i32 %65 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit46.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit46.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit46, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit39.thread @@ -4489,8 +4462,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.6129 = phi ptr [ %81, %80 ], [ %.5128, %78 ] %.011.i52 = phi i1 [ %.2.us.i50, %80 ], [ %.02.us.i49, %78 ] %82 = or i32 %74, 4 - %cond.fr143 = freeze i1 %.011.i52 - %spec.select176 = select i1 %cond.fr143, i32 %82, i32 %74 + %spec.select176 = select i1 %.011.i52, i32 %82, i32 %74 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit53.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit53.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit53, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit46.thread @@ -4520,8 +4492,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.8 = phi ptr [ %90, %89 ], [ %.7130, %87 ] %.011.i59 = phi i1 [ %.2.us.i57, %89 ], [ %.02.us.i56, %87 ] %91 = or i32 %83, 8 - %cond.fr148 = freeze i1 %.011.i59 - %spec.select177 = select i1 %cond.fr148, i32 %91, i32 %83 + %spec.select177 = select i1 %.011.i59, i32 %91, i32 %83 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit60.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit60.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit60, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit53.thread @@ -4551,8 +4522,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.10 = phi ptr [ %99, %98 ], [ %.9, %96 ] %.011.i66 = phi i1 [ %.2.us.i64, %98 ], [ %.02.us.i63, %96 ] %100 = or i32 %92, 16 - %cond.fr153 = freeze i1 %.011.i66 - %spec.select178 = select i1 %cond.fr153, i32 %100, i32 %92 + %spec.select178 = select i1 %.011.i66, i32 %100, i32 %92 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit67.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit67.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit67, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit60.thread @@ -4582,8 +4552,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.12 = phi ptr [ %108, %107 ], [ %.11, %105 ] %.011.i73 = phi i1 [ %.2.us.i71, %107 ], [ %.02.us.i70, %105 ] %109 = or i32 %101, 32 - %cond.fr158 = freeze i1 %.011.i73 - %spec.select179 = select i1 %cond.fr158, i32 %109, i32 %101 + %spec.select179 = select i1 %.011.i73, i32 %109, i32 %101 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit74.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit74.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit74, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit67.thread @@ -4613,8 +4582,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE %.14 = phi ptr [ %117, %116 ], [ %.13, %114 ] %.011.i80 = phi i1 [ %.2.us.i78, %116 ], [ %.02.us.i77, %114 ] %118 = or i32 %110, 64 - %cond.fr163 = freeze i1 %.011.i80 - %spec.select180 = select i1 %cond.fr163, i32 %118, i32 %110 + %spec.select180 = select i1 %.011.i80, i32 %118, i32 %110 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit81.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit81.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit81, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit74.thread @@ -4643,8 +4611,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit88: ; preds = %123, %125 %.011.i87 = phi i1 [ %.02.us.i84, %123 ], [ %.2.us.i85, %125 ] %127 = or i32 %119, 128 - %cond.fr168 = freeze i1 %.011.i87 - %spec.select181 = select i1 %cond.fr168, i32 %127, i32 %119 + %spec.select181 = select i1 %.011.i87, i32 %127, i32 %119 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit.thread 128: ; preds = %_ZNK32pxrInternal_v0_24__pxrReserved__12TfStaticDataINS_32HdPrimTypeTokens_StaticTokenTypeENS_27Tf_StaticDataDefaultFactoryIS1_EEEptEv.exit32 @@ -4674,8 +4641,7 @@ _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorE _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit95: ; preds = %134, %136 %.011.i94 = phi i1 [ %.02.us.i91, %134 ], [ %.2.us.i92, %136 ] - %cond.fr171 = freeze i1 %.011.i94 - %spec.select182 = select i1 %cond.fr171, i32 2, i32 0 + %spec.select182 = select i1 %.011.i94, i32 2, i32 0 br label %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit.thread _ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit.thread: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit95, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit88, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit, %130, %_ZN32pxrInternal_v0_24__pxrReserved__L12_FindLocatorERKNS_19HdDataSourceLocatorERKPS1_PS3_b.exit81.thread, %28, %128, %2 diff --git a/bench/pbrt-v4/optimized/integrators.ll b/bench/pbrt-v4/optimized/integrators.ll index 75313f62eef..a8419d0d3a8 100644 --- a/bench/pbrt-v4/optimized/integrators.ll +++ b/bench/pbrt-v4/optimized/integrators.ll @@ -73418,6 +73418,7 @@ _ZN4pbrt9ClampZeroERKNS_15SampledSpectrumE.exit: ; preds = %29 %57 = getelementptr inbounds nuw i8, ptr %53, i64 56 %58 = getelementptr inbounds nuw i8, ptr %53, i64 72 %59 = sext i32 %55 to i64 + %.fr = freeze i32 %54 br label %.preheader .preheader: ; preds = %.preheader38, %.split48.us @@ -73425,11 +73426,10 @@ _ZN4pbrt9ClampZeroERKNS_15SampledSpectrumE.exit: ; preds = %29 %.02453 = phi float [ 0.000000e+00, %.preheader38 ], [ %.us-phi, %.split48.us ] %60 = getelementptr inbounds nuw [4 x float], ptr %8, i64 0, i64 %indvars.iv62 %61 = load float, ptr %60, align 4, !tbaa !198 - %62 = trunc i64 %indvars.iv62 to i32 - %63 = add i32 %54, %62 - %.fr55 = freeze i32 %63 - %64 = icmp sgt i32 %.fr55, -1 - %65 = zext nneg i32 %.fr55 to i64 + %62 = trunc nuw nsw i64 %indvars.iv62 to i32 + %63 = add i32 %.fr, %62 + %64 = icmp sgt i32 %63, -1 + %65 = zext nneg i32 %63 to i64 br i1 %64, label %.preheader.split.us, label %.preheader.split .preheader.split.us: ; preds = %.preheader, %86 @@ -74722,6 +74722,7 @@ _ZN4pbrt9ClampZeroERKNS_15SampledSpectrumE.exit: ; preds = %12 %41 = getelementptr inbounds nuw i8, ptr %36, i64 56 %42 = getelementptr inbounds nuw i8, ptr %36, i64 72 %43 = sext i32 %39 to i64 + %.fr = freeze i32 %37 br label %53 44: ; preds = %.loopexit @@ -74747,17 +74748,16 @@ _ZN4pbrt9ClampZeroERKNS_15SampledSpectrumE.exit: ; preds = %12 br i1 %56, label %57, label %.loopexit 57: ; preds = %53 - %58 = trunc i64 %indvars.iv65 to i32 - %59 = add i32 %37, %58 - %.fr58 = freeze i32 %59 - %60 = sext i32 %.fr58 to i64 + %58 = trunc nuw nsw i64 %indvars.iv65 to i32 + %59 = add i32 %.fr, %58 + %60 = sext i32 %59 to i64 %61 = load ptr, ptr %38, align 8, !tbaa !271 %62 = getelementptr inbounds nuw float, ptr %61, i64 %60 %63 = load float, ptr %62, align 4, !tbaa !198 %64 = fmul float %55, %63 %65 = fadd float %.02855, %64 - %66 = icmp sgt i32 %.fr58, -1 - %67 = zext nneg i32 %.fr58 to i64 + %66 = icmp sgt i32 %59, -1 + %67 = zext nneg i32 %59 to i64 br i1 %66, label %.split.us, label %.split .split.us: ; preds = %57, %88 diff --git a/bench/php/optimized/pcre2_substitute.ll b/bench/php/optimized/pcre2_substitute.ll index c05a6e027af..e17d632edcd 100644 --- a/bench/php/optimized/pcre2_substitute.ll +++ b/bench/php/optimized/pcre2_substitute.ll @@ -445,10 +445,9 @@ define dso_local i32 @php_pcre2_substitute(ptr noundef %0, ptr noundef %1, i64 n br i1 %.not12712309, label %.thread1423..preheader1948_crit_edge, label %.thread2318 .thread1423..preheader1948_crit_edge: ; preds = %.thread1423.thread2304, %.thread1423 - %.98412317 = phi i32 [ 0, %.thread1423.thread2304 ], [ %.3835, %.thread1423 ] - %.98662315 = phi i64 [ %.3860, %.thread1423.thread2304 ], [ %.9866, %.thread1423 ] - %.99262313 = phi i64 [ %197, %.thread1423.thread2304 ], [ %.3920, %.thread1423 ] - %.99862311 = phi i64 [ %198, %.thread1423.thread2304 ], [ %.3980, %.thread1423 ] + %.98412317 = phi i64 [ %.3860, %.thread1423.thread2304 ], [ %.9866, %.thread1423 ] + %.98662315 = phi i64 [ %197, %.thread1423.thread2304 ], [ %.3920, %.thread1423 ] + %.99262313 = phi i64 [ %198, %.thread1423.thread2304 ], [ %.3980, %.thread1423 ] %.pre2303 = and i32 %.0816, 4096 %200 = icmp eq i32 %.pre2303, 0 br label %.preheader1948 @@ -464,10 +463,10 @@ define dso_local i32 @php_pcre2_substitute(ptr noundef %0, ptr noundef %1, i64 n .preheader1948: ; preds = %.thread1423..preheader1948_crit_edge, %.thread1423.thread %.pre-phi = phi i1 [ %200, %.thread1423..preheader1948_crit_edge ], [ false, %.thread1423.thread ] - %.98661863.ph = phi i64 [ %.98662315, %.thread1423..preheader1948_crit_edge ], [ %201, %.thread1423.thread ] - %.15992.ph = phi i64 [ %.99862311, %.thread1423..preheader1948_crit_edge ], [ %.3980, %.thread1423.thread ] - %.15932.ph = phi i64 [ %.99262313, %.thread1423..preheader1948_crit_edge ], [ %.3920, %.thread1423.thread ] - %.15847.ph = phi i32 [ %.98412317, %.thread1423..preheader1948_crit_edge ], [ 1, %.thread1423.thread ] + %.98661863.ph = phi i64 [ %.98662314, %.thread1423..preheader1948_crit_edge ], [ %201, %.thread1423.thread ] + %.15992.ph = phi i64 [ %.99862310, %.thread1423..preheader1948_crit_edge ], [ %.3980, %.thread1423.thread ] + %.15932.ph = phi i64 [ %.99262312, %.thread1423..preheader1948_crit_edge ], [ %.3920, %.thread1423.thread ] + %.15847.ph = phi i32 [ %.3835, %.thread1423..preheader1948_crit_edge ], [ 1, %.thread1423.thread ] %203 = and i32 %.0816, 512 %.not1274 = icmp ne i32 %203, 0 %204 = and i32 %.0816, 2048 @@ -2037,7 +2036,7 @@ select.unfold1501: ; preds = %430, %421 br label %.loopexit1953 .loopexit1953: ; preds = %.thread1655, %.loopexit1953.loopexit2675, %.loopexit1953.loopexit - %.16 = phi i32 [ %.2808, %.loopexit1953.loopexit ], [ -35, %.loopexit1953.loopexit2675 ], [ -57, %.thread1655 ] + %.16 = phi i32 [ %.2808, %.loopexit1953.loopexit ], [ -35, %.loopexit1953.loopexit2671 ], [ -57, %.thread1655 ] %892 = load ptr, ptr %13, align 8, !tbaa !34 %893 = ptrtoint ptr %892 to i64 %894 = ptrtoint ptr %.08041373 to i64 diff --git a/bench/php/optimized/proc_open.ll b/bench/php/optimized/proc_open.ll index ca8a840bcce..ce8e88f382f 100644 --- a/bench/php/optimized/proc_open.ll +++ b/bench/php/optimized/proc_open.ll @@ -877,8 +877,7 @@ zval_get_string.exit.thread._crit_edge.i.i: ; preds = %zval_get_string.exi br label %.loopexit.i .loopexit.i: ; preds = %zval_get_string.exit.i.i, %128, %127, %120, %116, %113, %112, %105, %101 - %.0407083.i = phi i32 [ 0, %101 ], [ 0, %105 ], [ 0, %112 ], [ 0, %113 ], [ %.04070.i, %116 ], [ %.04070.i, %120 ], [ %.04070.i, %127 ], [ %.04070.i, %128 ], [ %.04070.i, %zval_get_string.exit.i.i ] - %129 = sext i32 %.0407083.i to i64 + %129 = sext i32 %.04070.i to i64 %130 = getelementptr inbounds ptr, ptr %69, i64 %129 store ptr null, ptr %130, align 8, !tbaa !83 %.not46.i = icmp eq ptr %.03472.i, null @@ -2172,7 +2171,7 @@ zend_string_copy.exit: ; preds = %651, %657 br label %671 671: ; preds = %.lr.ph494, %712 - %indvars.iv = phi i64 [ 0, %.lr.ph494 ], [ %indvars.iv.next, %712 ] + %indvars.iv = phi i64 [ 0, %.lr.ph495 ], [ %indvars.iv.next, %712 ] %672 = getelementptr inbounds nuw %struct._descriptorspec_item, ptr %294, i64 %indvars.iv %673 = getelementptr inbounds nuw i8, ptr %672, i64 8 %674 = load i32, ptr %673, align 4, !tbaa !93 @@ -2277,7 +2276,7 @@ close_all_descriptors.exit: ; preds = %get_string_paramete br label %_php_free_envp.exit _php_free_envp.exit: ; preds = %717, %716, %._crit_edge495 - %.sink = phi i32 [ 265, %._crit_edge495 ], [ 2, %716 ], [ 2, %717 ] + %.sink = phi i32 [ 265, %._crit_edge496 ], [ 2, %716 ], [ 2, %717 ] %718 = getelementptr inbounds nuw i8, ptr %1, i64 8 store i32 %.sink, ptr %718, align 8, !tbaa !41 %719 = load ptr, ptr %10, align 8, !tbaa !77 diff --git a/bench/pingora-rs/optimized/6wibsd5gc0z7di4fjkaikq290.ll b/bench/pingora-rs/optimized/6wibsd5gc0z7di4fjkaikq290.ll index 056ecdbc53b..25ebd46a4a8 100644 --- a/bench/pingora-rs/optimized/6wibsd5gc0z7di4fjkaikq290.ll +++ b/bench/pingora-rs/optimized/6wibsd5gc0z7di4fjkaikq290.ll @@ -11529,7 +11529,7 @@ _ZN12pingora_core9protocols4http2v16client11HttpSession23is_connection_keepalive "_ZN4core3num21_$LT$impl$u20$u64$GT$16from_ascii_radix17h94ae65e2f8b0b215E.exit.i": ; preds = %118, %116, %107, %.preheader44.i.i, %127, %.lr.ph.i.i, %133, %98, %98, %94, %92, %89 %.sroa.010.1.i = phi i1 [ %.sroa.010.097.i, %89 ], [ %.sroa.010.097.i, %92 ], [ false, %94 ], [ false, %98 ], [ false, %98 ], [ %.sroa.010.097.i, %133 ], [ %126, %.lr.ph.i.i ], [ %126, %127 ], [ %.not.i.not.i, %.preheader44.i.i ], [ %.not.i.not.i, %107 ], [ %.not.i.not.i, %116 ], [ %.not.i.not.i, %118 ] - %.sroa.4.1.i = phi i64 [ %.sroa.4.098.i, %89 ], [ %.sroa.4.098.i, %92 ], [ undef, %94 ], [ undef, %98 ], [ undef, %98 ], [ %.sroa.4.098.i, %133 ], [ %132, %127 ], [ undef, %.lr.ph.i.i ], [ undef, %118 ], [ undef, %116 ], [ undef, %107 ], [ %.sroa.013.0.i.i, %.preheader44.i.i ] + %.sroa.4.1.i = phi i64 [ %.sroa.4.098.i, %89 ], [ %.sroa.4.098.i, %92 ], [ undef, %94 ], [ undef, %98 ], [ undef, %98 ], [ %.sroa.4.098.i, %133 ], [ %132, %127 ], [ undef, %.lr.ph.i.i ], [ %.sroa.013.0.i.i, %.preheader44.i.i ], [ %.sroa.013.0.i.i, %107 ], [ %.sroa.013.0.i.i, %116 ], [ %.sroa.013.0.i.i, %118 ] %90 = load i8, ptr %.sroa.519.0..sroa_idx.i, align 1, !range !57, !alias.scope !1038, !noalias !1018, !noundef !16 %91 = trunc nuw i8 %90 to i1 br i1 %91, label %_ZN12pingora_core9protocols4http2v16client11HttpSession20get_keepalive_values17h501c1cf38b1a34d1E.exit, label %59 diff --git a/bench/postgres/optimized/inet_net_ntop.ll b/bench/postgres/optimized/inet_net_ntop.ll index 37e6d9a8141..8bd79bcdf46 100644 --- a/bench/postgres/optimized/inet_net_ntop.ll +++ b/bench/postgres/optimized/inet_net_ntop.ll @@ -166,32 +166,33 @@ define dso_local noundef ptr @pg_inet_net_ntop(i32 noundef %0, ptr noundef reado 67: ; preds = %64, %63 %.sroa.16.3.i = phi i32 [ %.sroa.16.2.i, %63 ], [ %spec.select103.i, %64 ] %.sroa.041.3.i = phi i32 [ %.sroa.041.2.i, %63 ], [ %spec.select104.i, %64 ] - %.sroa.16.3.fr.i = freeze i32 %.sroa.16.3.i - %68 = icmp slt i32 %.sroa.16.3.fr.i, 2 - %.sroa.041.3.fr.i = freeze i32 %.sroa.041.3.i - %spec.select.i = select i1 %68, i32 -1, i32 %.sroa.041.3.fr.i - %.not88.i = icmp ne i32 %spec.select.i, -1 - %69 = add i32 %spec.select.i, %.sroa.16.3.fr.i - %70 = icmp eq i32 %spec.select.i, 0 - %71 = icmp eq i32 %.sroa.16.3.fr.i, 7 - %72 = getelementptr inbounds nuw i8, ptr %7, i64 28 - %73 = icmp eq i32 %.sroa.16.3.fr.i, 5 - %74 = getelementptr inbounds nuw i8, ptr %7, i64 20 - br i1 %70, label %.split.i, label %.split.us.preheader.i + %68 = icmp ne i32 %.sroa.041.3.i, -1 + %68 = icmp slt i32 %.sroa.16.3.i, 2 + %or.cond4.i = select i1 %68, i1 %69, i1 false + %spec.select.i = select i1 %or.cond4.i, i32 -1, i32 %.sroa.041.3.i + %spec.select.fr.i = freeze i32 %spec.select.i + %.not88.i = icmp ne i32 %spec.select.fr.i, -1 + %70 = add i32 %spec.select.fr.i, %.sroa.16.3.i + %71 = icmp eq i32 %spec.select.fr.i, 0 + %72 = icmp eq i32 %.sroa.16.3.i, 7 + %73 = getelementptr inbounds nuw i8, ptr %7, i64 28 + %74 = icmp eq i32 %.sroa.16.3.i, 5 + %75 = getelementptr inbounds nuw i8, ptr %7, i64 20 + br i1 %71, label %.split.i, label %.split.us.preheader.i .split.us.preheader.i: ; preds = %67 - %75 = sext i32 %spec.select.i to i64 - %76 = sext i32 %69 to i64 - %77 = zext i32 %spec.select.i to i64 + %75 = sext i32 %spec.select.fr.i to i64 + %76 = sext i32 %70 to i64 + %77 = zext i32 %spec.select.fr.i to i64 br label %.split.us.i .split.us.i: ; preds = %92, %.split.us.preheader.i %indvars.iv159.i = phi i64 [ 0, %.split.us.preheader.i ], [ %indvars.iv.next160.i, %92 ] %.084126.us.i = phi ptr [ %6, %.split.us.preheader.i ], [ %.286.us.i, %92 ] %.not89.us.i = icmp sge i64 %indvars.iv159.i, %75 - %78 = icmp slt i64 %indvars.iv159.i, %76 - %79 = and i1 %.not89.us.i, %78 - %or.cond98.us.i = and i1 %.not88.i, %79 + %or.cond96.not115.us.i = and i1 %.not88.i, %.not89.us.i + %79 = icmp slt i64 %indvars.iv159.i, %77 + %or.cond98.us.i = select i1 %or.cond96.not115.us.i, i1 %79, i1 false br i1 %or.cond98.us.i, label %88, label %80 80: ; preds = %.split.us.i @@ -228,15 +229,15 @@ define dso_local noundef ptr @pg_inet_net_ntop(i32 noundef %0, ptr noundef reado br i1 %exitcond162.not.i, label %.loopexit.i12, label %.split.us.i, !llvm.loop !8 .split.i: ; preds = %67 - %93 = icmp eq i32 %.sroa.16.3.fr.i, 6 + %93 = icmp eq i32 %.sroa.16.3.i, 6 br i1 %93, label %.split.split.us.preheader.i, label %.split.split.preheader.i .split.split.preheader.i: ; preds = %.split.i - %94 = sext i32 %69 to i64 + %94 = sext i32 %70 to i64 br label %.split.split.i .split.split.us.preheader.i: ; preds = %.split.i - %95 = zext nneg i32 %69 to i64 + %95 = zext nneg i32 %70 to i64 br label %.split.split.us.i .split.split.us.i: ; preds = %110, %.split.split.us.preheader.i @@ -303,15 +304,15 @@ define dso_local noundef ptr @pg_inet_net_ntop(i32 noundef %0, ptr noundef reado br i1 %119, label %120, label %.thread.i 120: ; preds = %117 - %121 = load i32, ptr %72, align 4 + %121 = load i32, ptr %73, align 4 %122 = icmp ne i32 %121, 1 - %or.cond10.i = select i1 %71, i1 %122, i1 false + %or.cond10.i = select i1 %72, i1 %122, i1 false br i1 %or.cond10.i, label %.split138.us.i, label %123 123: ; preds = %120 - %124 = load i32, ptr %74, align 4 + %124 = load i32, ptr %75, align 4 %125 = icmp eq i32 %124, 65535 - %or.cond13.i = select i1 %73, i1 %125, i1 false + %or.cond13.i = select i1 %74, i1 %125, i1 false br i1 %or.cond13.i, label %.split138.us.i, label %.thread.i .split138.us.i: ; preds = %123, %120, %99 @@ -387,8 +388,8 @@ decoct.exit.i: ; preds = %.lr.ph.i .loopexit.i12: ; preds = %92, %156, %110, %148 %.185.i = phi ptr [ %150, %148 ], [ %.286.us136.i, %110 ], [ %.286.i, %156 ], [ %.286.us.i, %92 ] - %157 = icmp eq i32 %69, 8 - %or.cond100.i = and i1 %.not88.i, %157 + %157 = icmp eq i32 %70, 8 + %or.cond100.i = select i1 %.not88.i, i1 %157, i1 false br i1 %or.cond100.i, label %158, label %160 158: ; preds = %.loopexit.i12 diff --git a/bench/qdrant-rs/optimized/1qtu8dw3f0ctj9yc.ll b/bench/qdrant-rs/optimized/1qtu8dw3f0ctj9yc.ll index 36e4c89b278..d343c990e85 100644 --- a/bench/qdrant-rs/optimized/1qtu8dw3f0ctj9yc.ll +++ b/bench/qdrant-rs/optimized/1qtu8dw3f0ctj9yc.ll @@ -893,14 +893,15 @@ define { i32, float } @_ZN6sparse6common13sparse_vector12SparseVector5score17ha9 %20 = load ptr, ptr %19, align 8, !nonnull !5 br label %24 -._crit_edge: ; preds = %35, %2 - %.041.lcssa = phi float [ 0.000000e+00, %2 ], [ %.142, %35 ] - %.039.lcssa = phi i8 [ 0, %2 ], [ %.140, %35 ] - %21 = trunc nuw i8 %.039.lcssa to i1 - %.041. = select i1 %21, float %.041.lcssa, float undef - %. = zext nneg i8 %.039.lcssa to i32 - %22 = insertvalue { i32, float } poison, i32 %., 0 - %23 = insertvalue { i32, float } %22, float %.041., 1 +._crit_edge: ; preds = %35 + %21 = zext nneg i8 %.140 to i32 + br label %._crit_edge + +._crit_edge:; preds = %._crit_edge, %2 + %.041.lcssa = phi float [ 0.000000e+00, %2 ], [ %.142, %._crit_edge.loopexit ] + %.039.lcssa = phi i32 [ 0, %2 ], [ %21, %._crit_edge.loopexit ] + %23 = insertvalue { i32, float } poison, i32 %.039.lcssa, 0 + %23 = insertvalue { i32, float } %22, float %.041.lcssa, 1 ret { i32, float } %23 24: ; preds = %.lr.ph, %35 diff --git a/bench/quantlib/optimized/matrix.ll b/bench/quantlib/optimized/matrix.ll index c51245b28b3..59f498e8ffc 100644 --- a/bench/quantlib/optimized/matrix.ll +++ b/bench/quantlib/optimized/matrix.ll @@ -2130,9 +2130,10 @@ declare double @llvm.fabs.f64(double) #18 define linkonce_odr void @_ZN5boost7numeric5ublas13lu_substituteINS1_6matrixIdNS1_15basic_row_majorImlEENS1_15unbounded_arrayIdSaIdEEEEES9_EEvRKT_RNS1_17matrix_expressionIT0_EE(ptr noundef nonnull align 8 dereferenceable(40) %m, ptr noundef nonnull align 1 dereferenceable(1) %e) local_unnamed_addr #3 comdat personality ptr @__gxx_personality_v0 { entry: %0 = load i64, ptr %e, align 8, !tbaa !21 + %.fr.i.i = freeze i64 %0 %size2_.i.i.i = getelementptr inbounds nuw i8, ptr %e, i64 8 %1 = load i64, ptr %size2_.i.i.i, align 8, !tbaa !25 - %cmp28.not.i.i = icmp eq i64 %0, 0 + %cmp28.not.i.i = icmp eq i64 %.fr.i.i, 0 %cmp626.not.i.i = icmp eq i64 %1, 0 %or.cond.i.i = select i1 %cmp28.not.i.i, i1 true, i1 %cmp626.not.i.i br i1 %or.cond.i.i, label %_ZN5boost7numeric5ublas13inplace_solveINS1_6matrixIdNS1_15basic_row_majorImlEENS1_15unbounded_arrayIdSaIdEEEEES9_EEvRKNS1_17matrix_expressionIT_EERNSA_IT0_EENS1_14unit_lower_tagE.exit, label %for.cond5.preheader.lr.ph.split.us.i.i @@ -2149,12 +2150,11 @@ for.cond5.preheader.us.i.i: ; preds = %for.cond5.for.cond. %mul.i.i.i.us.i.i = mul i64 %n.029.us.i.i, %1 %3 = getelementptr double, ptr %2, i64 %mul.i.i.i.us.i.i %m.023.us.i.i = add nuw i64 %n.029.us.i.i, 1 - %cmp1524.us.i.i = icmp ult i64 %m.023.us.i.i, %0 - %cmp1524.fr.us.i.i = freeze i1 %cmp1524.us.i.i - br i1 %cmp1524.fr.us.i.i, label %for.body8.us.us.i.i, label %for.cond5.for.cond.cleanup7_crit_edge.us.i.i + %cmp1524.us.i.i = icmp ult i64 %m.023.us.i.i, %.fr.i.i + br i1 %cmp1524.us.i.i, label %for.body8.us.us.i.i, label %for.cond5.for.cond.cleanup7_crit_edge.us.i.i for.cond5.for.cond.cleanup7_crit_edge.us.i.i: ; preds = %if.end.us.us.i.i, %for.cond5.preheader.us.i.i - %exitcond43.not.i.i = icmp eq i64 %m.023.us.i.i, %0 + %exitcond43.not.i.i = icmp eq i64 %m.023.us.i.i, %.fr.i.i br i1 %exitcond43.not.i.i, label %_ZN5boost7numeric5ublas13inplace_solveINS1_6matrixIdNS1_15basic_row_majorImlEENS1_15unbounded_arrayIdSaIdEEEEES9_EEvRKNS1_17matrix_expressionIT_EERNSA_IT0_EENS1_14unit_lower_tagE.exit, label %for.cond5.preheader.us.i.i, !llvm.loop !56 for.body8.us.us.i.i: ; preds = %for.cond5.preheader.us.i.i, %if.end.us.us.i.i @@ -2184,9 +2184,9 @@ for.body17.us.us.i.i: ; preds = %for.cond14.preheade %neg.us.us.i.i = fneg double %5 %7 = tail call double @llvm.fmuladd.f64(double %neg.us.us.i.i, double %4, double %6) store double %7, ptr %gep.us.us.i.i, align 8, !tbaa !39 - %m.0.us.us.i.i = add i64 %m.025.us.us.i.i, 1 - %cmp15.us.us.i.i = icmp ult i64 %m.0.us.us.i.i, %0 - br i1 %cmp15.us.us.i.i, label %for.body17.us.us.i.i, label %if.end.us.us.i.i, !llvm.loop !58 + %m.0.us.us.i.i = add nuw i64 %m.025.us.us.i.i, 1 + %cmp15.us.us.i.i = icmp eq i64 %m.0.us.us.i.i, %.fr.i.i + br i1 %cmp15.us.us.i.i, label %if.end.us.us.i.i, label %for.body17.us.us.i.i, !llvm.loop !58 for.cond14.preheader.us.us.i.i: ; preds = %for.body8.us.us.i.i %invariant.gep.us.us.i.i = getelementptr double, ptr %2, i64 %l.027.us.us.i.i @@ -2196,7 +2196,7 @@ for.cond14.preheader.us.us.i.i: ; preds = %for.body8.us.us.i.i br label %for.body17.us.us.i.i _ZN5boost7numeric5ublas13inplace_solveINS1_6matrixIdNS1_15basic_row_majorImlEENS1_15unbounded_arrayIdSaIdEEEEES9_EEvRKNS1_17matrix_expressionIT_EERNSA_IT0_EENS1_14unit_lower_tagE.exit: ; preds = %for.cond5.for.cond.cleanup7_crit_edge.us.i.i, %entry - %n.034.i.i = add i64 %0, -1 + %n.034.i.i = add i64 %.fr.i.i, -1 %cmp35.i.i = icmp sgt i64 %n.034.i.i, -1 br i1 %cmp35.i.i, label %for.cond6.preheader.lr.ph.i.i, label %_ZN5boost7numeric5ublas13inplace_solveINS1_6matrixIdNS1_15basic_row_majorImlEENS1_15unbounded_arrayIdSaIdEEEEES9_EEvRKNS1_17matrix_expressionIT_EERNSA_IT0_EENS1_9upper_tagE.exit @@ -2216,14 +2216,13 @@ for.cond6.preheader.lr.ph.split.us.i.i: ; preds = %for.cond6.preheader for.cond6.preheader.us.i.i: ; preds = %for.cond6.for.cond.loopexit_crit_edge.us.i.i, %for.cond6.preheader.lr.ph.split.us.i.i %n.037.us.i.i = phi i64 [ %n.034.i.i, %for.cond6.preheader.lr.ph.split.us.i.i ], [ %n.0.us.i.i, %for.cond6.for.cond.loopexit_crit_edge.us.i.i ] - %n.0.in36.us.i.i = phi i64 [ %0, %for.cond6.preheader.lr.ph.split.us.i.i ], [ %n.037.us.i.i, %for.cond6.for.cond.loopexit_crit_edge.us.i.i ] + %n.0.in36.us.i.i = phi i64 [ %.fr.i.i, %for.cond6.preheader.lr.ph.split.us.i.i ], [ %n.037.us.i.i, %for.cond6.for.cond.loopexit_crit_edge.us.i.i ] %mul.i.i.us.i.i = mul i64 %n.037.us.i.i, %10 %13 = getelementptr double, ptr %11, i64 %mul.i.i.us.i.i %arrayidx.i.i.us.i.i = getelementptr double, ptr %13, i64 %n.037.us.i.i %mul.i.i.i.us.i.i5 = mul i64 %n.037.us.i.i, %1 %14 = getelementptr double, ptr %12, i64 %mul.i.i.i.us.i.i5 - %n.0.in36.us.fr.i.i = freeze i64 %n.0.in36.us.i.i - %sub15.us.i.i = add i64 %n.0.in36.us.fr.i.i, -2 + %sub15.us.i.i = add i64 %n.0.in36.us.i.i, -2 %invariant.gep.us.i.i = getelementptr double, ptr %11, i64 %n.037.us.i.i %cmp1729.us.i.i = icmp sgt i64 %sub15.us.i.i, -1 br i1 %cmp1729.us.i.i, label %for.body9.us.us.i.i, label %for.body9.us38.i.i diff --git a/bench/quantlib/optimized/pseudosqrt.ll b/bench/quantlib/optimized/pseudosqrt.ll index f99b1a96819..45eea839894 100644 --- a/bench/quantlib/optimized/pseudosqrt.ll +++ b/bench/quantlib/optimized/pseudosqrt.ll @@ -1960,6 +1960,7 @@ entry: %agg.tmp409 = alloca %"class.QuantLib::Array", align 8 %rows_.i = getelementptr inbounds nuw i8, ptr %targetMatrix, i64 8 %0 = load i64, ptr %rows_.i, align 8, !tbaa !3 + %.fr = freeze i64 %0 %rows_.i.i = getelementptr inbounds nuw i8, ptr %currentRoot, i64 8 %1 = load i64, ptr %rows_.i.i, align 8, !tbaa !3 %cmp.i.i = icmp eq i64 %1, 0 @@ -1994,12 +1995,12 @@ if.then.i.i.i.i.i.i: ; preds = %cond.end.i br label %_ZN8QuantLib6MatrixC2ERKS0_.exit _ZN8QuantLib6MatrixC2ERKS0_.exit: ; preds = %cond.end.i, %if.then.i.i.i.i.i.i - %cmp.not.i = icmp eq i64 %0, 0 + %cmp.not.i = icmp eq i64 %.fr, 0 br i1 %cmp.not.i, label %for.end, label %for.body.i.i.i.preheader.i for.body.i.i.i.preheader.i: ; preds = %_ZN8QuantLib6MatrixC2ERKS0_.exit - %8 = icmp ugt i64 %0, 2305843009213693951 - %9 = shl i64 %0, 3 + %8 = icmp ugt i64 %.fr, 2305843009213693951 + %9 = shl i64 %.fr, 3 %10 = select i1 %8, i64 -1, i64 %9 %call.i243 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %10) #25 to label %invoke.cont2.lr.ph unwind label %lpad @@ -2021,7 +2022,7 @@ invoke.cont2: ; preds = %invoke.cont2.lr.ph, %arrayidx.i = getelementptr inbounds nuw double, ptr %call.i243, i64 %i.0588 store double %call4, ptr %arrayidx.i, align 8, !tbaa !22 %inc = add nuw i64 %i.0588, 1 - %exitcond.not = icmp eq i64 %inc, %0 + %exitcond.not = icmp eq i64 %inc, %.fr br i1 %exitcond.not, label %for.end.thread, label %invoke.cont2, !llvm.loop !50 lpad: ; preds = %for.body.i.i.i.preheader.i @@ -2158,7 +2159,7 @@ invoke.cont27: ; preds = %for.cond19.preheade %div = fdiv double %30, %call26 store double %div, ptr %arrayidx29, align 8, !tbaa !22 %inc31 = add nuw i64 %j.0592, 1 - %exitcond648.not = icmp eq i64 %inc31, %0 + %exitcond648.not = icmp eq i64 %inc31, %.fr br i1 %exitcond648.not, label %for.inc33, label %invoke.cont27, !llvm.loop !56 lpad7: ; preds = %cond.true.i.i @@ -2192,7 +2193,7 @@ lpad12: ; preds = %_ZN8QuantLib6Matrix for.inc33: ; preds = %invoke.cont27 %inc34 = add nuw i64 %i.1594, 1 - %exitcond649.not = icmp eq i64 %inc34, %0 + %exitcond649.not = icmp eq i64 %inc34, %.fr br i1 %exitcond649.not, label %_ZNKSt14default_deleteIA_dEclIdEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i267, label %for.cond19.preheader, !llvm.loop !57 for.end35: ; preds = %_ZN8QuantLib6MatrixD2Ev.exit256 @@ -2231,12 +2232,12 @@ invoke.cont46: ; preds = %for.cond41.preheade %div49 = fdiv double %37, %36 store double %div49, ptr %arrayidx48, align 8, !tbaa !22 %inc51 = add nuw i64 %j.1589, 1 - %exitcond646.not = icmp eq i64 %inc51, %0 + %exitcond646.not = icmp eq i64 %inc51, %.fr br i1 %exitcond646.not, label %for.inc53, label %invoke.cont46, !llvm.loop !58 for.inc53: ; preds = %invoke.cont46 %inc54 = add nuw i64 %i.2591, 1 - %exitcond647.not = icmp eq i64 %inc54, %0 + %exitcond647.not = icmp eq i64 %inc54, %.fr br i1 %exitcond647.not, label %_ZN5boost10shared_ptrIN8QuantLib10LineSearchEEC2ERKS3_.exit.i, label %for.cond41.preheader, !llvm.loop !59 _ZN5boost10shared_ptrIN8QuantLib10LineSearchEEC2ERKS3_.exit.i: ; preds = %for.inc53, %for.end, %_ZN8QuantLib6MatrixD2Ev.exit268 @@ -2348,8 +2349,8 @@ invoke.cont62: ; preds = %_ZN5boost10shared_p br i1 %cmp.not.i, label %invoke.cont64, label %if.then.i if.then.i: ; preds = %invoke.cont62 - %53 = icmp ugt i64 %0, 2305843009213693951 - %54 = shl i64 %0, 3 + %53 = icmp ugt i64 %.fr, 2305843009213693951 + %54 = shl i64 %.fr, 3 %55 = select i1 %53, i64 -1, i64 %54 %call.i289 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %55) #25 to label %if.then.i.i.i.i.i.i285 unwind label %lpad63 @@ -2403,7 +2404,7 @@ invoke.cont.i295: ; preds = %if.then.i.i.i.i.i.i %targetVariance_.i = getelementptr inbounds nuw i8, ptr %costFunction, i64 48 %n_.i.i = getelementptr inbounds nuw i8, ptr %costFunction, i64 56 store ptr %agg.tmp.sroa.0.0, ptr %targetVariance_.i, align 8, !tbaa !21 - store i64 %0, ptr %n_.i.i, align 8, !tbaa !34 + store i64 %.fr, ptr %n_.i.i, align 8, !tbaa !34 %currentRoot_.i = getelementptr inbounds nuw i8, ptr %costFunction, i64 64 %mul.i6.i = mul i64 %56, %56 %cmp.not.i.i296 = icmp eq i64 %mul.i6.i, 0 @@ -2513,8 +2514,8 @@ _ZN8QuantLib5ArrayD2Ev.exit: ; preds = %invoke.cont10.threa to label %invoke.cont70 unwind label %lpad69 invoke.cont70: ; preds = %_ZN8QuantLib5ArrayD2Ev.exit - %sub = add i64 %0, -1 - %mul = mul i64 %sub, %0 + %sub = add i64 %.fr, -1 + %mul = mul i64 %sub, %.fr br i1 %lowerDiagonal, label %if.then72, label %if.else291 if.then72: ; preds = %invoke.cont70 @@ -2531,7 +2532,7 @@ cond.true.i303: ; preds = %if.then72 _ZN8QuantLib5ArrayC2Em.exit: ; preds = %cond.true.i303, %if.then72 %cond.i305 = phi ptr [ null, %if.then72 ], [ %call.i308, %cond.true.i303 ] - %cmp77625 = icmp ugt i64 %0, 1 + %cmp77625 = icmp ugt i64 %.fr, 1 br i1 %cmp77625, label %for.cond79.preheader.preheader, label %for.end211 for.cond79.preheader.preheader: ; preds = %_ZN8QuantLib5ArrayC2Em.exit @@ -2653,7 +2654,7 @@ for.inc206: ; preds = %for.end170, %if.the for.inc209: ; preds = %for.inc206 %inc210 = add nuw i64 %i.3626, 1 - %exitcond659.not = icmp eq i64 %inc210, %0 + %exitcond659.not = icmp eq i64 %inc210, %.fr br i1 %exitcond659.not, label %for.end211, label %invoke.cont83.lr.ph, !llvm.loop !68 for.end211: ; preds = %for.inc209, %_ZN8QuantLib5ArrayC2Em.exit @@ -2763,8 +2764,7 @@ for.body236: ; preds = %for.cond234.prehead for.cond243.preheader: ; preds = %for.body236 %cmp247.not = icmp eq i64 %k.1632, %i.4639 %gep635 = getelementptr double, ptr %invariant.gep634, i64 %k.1632 - %cmp247.not.fr = freeze i1 %cmp247.not - br i1 %cmp247.not.fr, label %for.body245.us, label %for.body245.preheader + br i1 %cmp247.not, label %for.body245.us, label %for.body245.preheader for.body245.preheader: ; preds = %for.cond243.preheader %arrayidx.i363 = getelementptr double, ptr %99, i64 %k.1632 @@ -2857,12 +2857,12 @@ for.inc276: ; preds = %for.inc276.sink.spl for.inc280: ; preds = %for.inc276, %for.inc276.us, %invoke.cont239 %inc281 = add nuw i64 %k.1632, 1 %indvars.iv.next661 = add i64 %indvars.iv660, 1 - %exitcond664.not = icmp eq i64 %inc281, %0 + %exitcond664.not = icmp eq i64 %inc281, %.fr br i1 %exitcond664.not, label %for.inc283, label %for.body236, !llvm.loop !73 for.inc283: ; preds = %for.inc280 %inc284 = add nuw i64 %i.4639, 1 - %exitcond665.not = icmp eq i64 %inc284, %0 + %exitcond665.not = icmp eq i64 %inc284, %.fr br i1 %exitcond665.not, label %for.end285, label %for.cond234.preheader, !llvm.loop !74 for.end285: ; preds = %for.inc283, %invoke.cont229 @@ -2910,7 +2910,7 @@ _ZN8QuantLib5ArrayC2Em.exit393: ; preds = %cond.true.i387, %if for.cond301.preheader.lr.ph: ; preds = %_ZN8QuantLib5ArrayC2Em.exit393 %cmp303601.not = icmp eq i64 %sub, 0 - %sub382 = add i64 %0, -2 + %sub382 = add i64 %.fr, -2 br i1 %cmp303601.not, label %for.end407.thread, label %for.cond301.preheader.lr.ph.split.us for.end407.thread: ; preds = %for.cond301.preheader.lr.ph @@ -2933,7 +2933,7 @@ invoke.cont306.us: ; preds = %for.cond301.prehead %j.4602.us = phi i64 [ 0, %for.cond301.preheader.us ], [ %inc403.us, %for.inc402.us ] %arrayidx308.us = getelementptr inbounds nuw double, ptr %add.ptr.i.i396.us, i64 %j.4602.us %116 = load double, ptr %arrayidx308.us, align 8, !tbaa !22 - %mul309.us = mul i64 %j.4602.us, %0 + %mul309.us = mul i64 %j.4602.us, %.fr %gep600.us = getelementptr double, ptr %invariant.gep599.us, i64 %mul309.us store double %116, ptr %gep600.us, align 8, !tbaa !22 %cmp317.us = fcmp ogt double %116, 0x3FEFFFFFFFFFFFFF @@ -2979,7 +2979,7 @@ for.inc402.us: ; preds = %if.then390.us, %inv for.body337.us: ; preds = %if.end334.us, %for.inc370.us %div347598.us = phi double [ %div347597.us, %for.inc370.us ], [ %arrayidx.i397.promoted.us, %if.end334.us ] %k.2596.us = phi i64 [ %inc371.us, %for.inc370.us ], [ 0, %if.end334.us ] - %mul338.us = mul i64 %k.2596.us, %0 + %mul338.us = mul i64 %k.2596.us, %.fr %gep.us = getelementptr double, ptr %invariant.gep599.us, i64 %mul338.us %119 = load double, ptr %gep.us, align 8, !tbaa !22 %call342.us = call double @sin(double noundef %119) #22, !tbaa !46 @@ -3005,7 +3005,7 @@ for.inc370.us: ; preds = %for.inc370.us.sink. for.cond301.for.inc405_crit_edge.us: ; preds = %for.inc402.us %inc406.us = add nuw i64 %i.5604.us, 1 - %exitcond652.not = icmp eq i64 %inc406.us, %0 + %exitcond652.not = icmp eq i64 %inc406.us, %.fr br i1 %exitcond652.not, label %for.end407, label %for.cond301.preheader.us, !llvm.loop !77 lpad295: ; preds = %cond.true.i387 @@ -3113,11 +3113,10 @@ for.cond434.preheader: ; preds = %for.cond431.prehead %k.3612 = phi i64 [ 0, %for.cond431.preheader ], [ %inc470, %for.inc469 ] %cmp440.not = icmp eq i64 %k.3612, %sub %gep614 = getelementptr double, ptr %invariant.gep613, i64 %k.3612 - %cmp440.not.fr = freeze i1 %cmp440.not - br i1 %cmp440.not.fr, label %for.body436.us, label %for.body436.preheader + br i1 %cmp440.not, label %for.body436.us, label %for.body436.preheader for.body436.preheader: ; preds = %for.cond434.preheader - %mul442 = mul i64 %k.3612, %0 + %mul442 = mul i64 %k.3612, %.fr %gep = getelementptr double, ptr %invariant.gep, i64 %mul442 br label %for.body436 @@ -3127,7 +3126,7 @@ for.body436.us: ; preds = %for.cond434.prehead br i1 %cmp453.not.us, label %for.inc466.us, label %invoke.cont460.us invoke.cont460.us: ; preds = %for.body436.us - %mul455.us = mul i64 %j.5611.us, %0 + %mul455.us = mul i64 %j.5611.us, %.fr %gep608.us = getelementptr double, ptr %invariant.gep, i64 %mul455.us %133 = load double, ptr %gep608.us, align 8, !tbaa !22 %call459.us = call double @sin(double noundef %133) #22, !tbaa !46 @@ -3184,7 +3183,7 @@ if.else451: ; preds = %for.body436 br i1 %cmp453.not, label %for.inc466, label %invoke.cont460 invoke.cont460: ; preds = %if.else451 - %mul455 = mul i64 %j.5611, %0 + %mul455 = mul i64 %j.5611, %.fr %gep608 = getelementptr double, ptr %invariant.gep, i64 %mul455 %141 = load double, ptr %gep608, align 8, !tbaa !22 %call459 = call double @sin(double noundef %141) #22, !tbaa !46 @@ -3205,12 +3204,12 @@ for.inc466: ; preds = %for.inc466.sink.spl for.inc469: ; preds = %for.inc466, %for.inc466.us %inc470 = add nuw i64 %k.3612, 1 %indvars.iv.next = add i64 %indvars.iv, 1 - %exitcond655.not = icmp eq i64 %inc470, %0 + %exitcond655.not = icmp eq i64 %inc470, %.fr br i1 %exitcond655.not, label %for.inc472, label %for.cond434.preheader, !llvm.loop !80 for.inc472: ; preds = %for.inc469 %inc473 = add nuw i64 %i.6618, 1 - %exitcond656.not = icmp eq i64 %inc473, %0 + %exitcond656.not = icmp eq i64 %inc473, %.fr br i1 %exitcond656.not, label %for.end474, label %for.cond431.preheader, !llvm.loop !81 for.end474: ; preds = %for.inc472, %invoke.cont426 @@ -3269,12 +3268,12 @@ invoke.cont490: ; preds = %for.cond484.prehead %mul493 = fmul double %146, %147 store double %mul493, ptr %arrayidx492, align 8, !tbaa !22 %inc495 = add nuw i64 %j.6640, 1 - %exitcond666.not = icmp eq i64 %inc495, %0 + %exitcond666.not = icmp eq i64 %inc495, %.fr br i1 %exitcond666.not, label %for.inc497, label %invoke.cont490, !llvm.loop !82 for.inc497: ; preds = %invoke.cont490 %inc498 = add nuw i64 %i.7642, 1 - %exitcond667.not = icmp eq i64 %inc498, %0 + %exitcond667.not = icmp eq i64 %inc498, %.fr br i1 %exitcond667.not, label %for.end499, label %for.cond484.preheader, !llvm.loop !83 for.end499: ; preds = %for.inc497, %if.end480 @@ -7147,14 +7146,15 @@ _ZSt4fillIPddEvT_S1_RKT0_.exit: ; preds = %for.body.i.i.i, %en %loadedv = trunc nuw i8 %3 to i1 %size_ = getelementptr inbounds nuw i8, ptr %this, i64 8 %4 = load i64, ptr %size_, align 8, !tbaa !60 - %cmp122.not = icmp eq i64 %4, 0 + %.fr = freeze i64 %4 + %cmp122.not = icmp eq i64 %.fr, 0 br i1 %loadedv, label %for.cond.preheader, label %for.cond46.preheader for.cond46.preheader: ; preds = %_ZSt4fillIPddEvT_S1_RKT0_.exit br i1 %cmp122.not, label %if.end97, label %for.cond50.preheader.lr.ph for.cond50.preheader.lr.ph: ; preds = %for.cond46.preheader - %sub60 = add i64 %4, -1 + %sub60 = add i64 %.fr, -1 br label %for.cond50.preheader for.cond.preheader: ; preds = %_ZSt4fillIPddEvT_S1_RKT0_.exit @@ -7180,8 +7180,7 @@ for.cond12.preheader: ; preds = %for.body7 %5 = load ptr, ptr %x, align 8 %6 = getelementptr double, ptr %5, i64 %div60 %gep119 = getelementptr double, ptr %invariant.gep118, i64 %k.0116 - %cmp16.not.fr = freeze i1 %cmp16.not - br i1 %cmp16.not.fr, label %for.body14.us, label %for.body14.preheader + br i1 %cmp16.not, label %for.body14.us, label %for.body14.preheader for.body14.preheader: ; preds = %for.cond12.preheader %arrayidx.i = getelementptr double, ptr %6, i64 %k.0116 @@ -7246,12 +7245,12 @@ for.inc: ; preds = %for.inc.sink.split, for.inc39: ; preds = %for.inc, %for.inc.us, %if.then9 %inc40 = add nuw i64 %k.0116, 1 %indvars.iv.next136 = add i64 %indvars.iv135, 1 - %exitcond139.not = icmp eq i64 %inc40, %4 + %exitcond139.not = icmp eq i64 %inc40, %.fr br i1 %exitcond139.not, label %for.inc42, label %for.body7, !llvm.loop !116 for.inc42: ; preds = %for.inc39 %inc43 = add nuw i64 %i.0123, 1 - %exitcond140.not = icmp eq i64 %inc43, %4 + %exitcond140.not = icmp eq i64 %inc43, %.fr br i1 %exitcond140.not, label %if.end97, label %for.cond4.preheader, !llvm.loop !117 for.cond50.preheader: ; preds = %for.cond50.preheader.lr.ph, %for.inc94 @@ -7267,11 +7266,10 @@ for.cond54.preheader: ; preds = %for.cond50.preheade %12 = load ptr, ptr %x, align 8 %invariant.gep102 = getelementptr double, ptr %12, i64 %i.1110 %gep107 = getelementptr double, ptr %invariant.gep106, i64 %k.1108 - %cmp61.not.fr = freeze i1 %cmp61.not - br i1 %cmp61.not.fr, label %for.body56.us, label %for.body56.preheader + br i1 %cmp61.not, label %for.body56.us, label %for.body56.preheader for.body56.preheader: ; preds = %for.cond54.preheader - %mul64 = mul i64 %k.1108, %4 + %mul64 = mul i64 %k.1108, %.fr %gep103 = getelementptr double, ptr %invariant.gep102, i64 %mul64 br label %for.body56 @@ -7281,7 +7279,7 @@ for.body56.us: ; preds = %for.cond54.preheade br i1 %cmp75.not.us, label %for.inc88.us, label %if.then76.us if.then76.us: ; preds = %for.body56.us - %mul78.us = mul i64 %j.1101.us, %4 + %mul78.us = mul i64 %j.1101.us, %.fr %gep105.us = getelementptr double, ptr %invariant.gep102, i64 %mul78.us %13 = load double, ptr %gep105.us, align 8, !tbaa !22 %call81.us = tail call double @sin(double noundef %13) #22, !tbaa !46 @@ -7310,7 +7308,7 @@ if.else72: ; preds = %for.body56 br i1 %cmp75.not, label %for.inc88, label %if.then76 if.then76: ; preds = %if.else72 - %mul78 = mul i64 %j.1101, %4 + %mul78 = mul i64 %j.1101, %.fr %gep105 = getelementptr double, ptr %invariant.gep102, i64 %mul78 %16 = load double, ptr %gep105, align 8, !tbaa !22 %call81 = tail call double @sin(double noundef %16) #22, !tbaa !46 @@ -7331,12 +7329,12 @@ for.inc88: ; preds = %for.inc88.sink.spli for.inc91: ; preds = %for.inc88, %for.inc88.us %inc92 = add nuw i64 %k.1108, 1 %indvars.iv.next = add i64 %indvars.iv, 1 - %exitcond133.not = icmp eq i64 %inc92, %4 + %exitcond133.not = icmp eq i64 %inc92, %.fr br i1 %exitcond133.not, label %for.inc94, label %for.cond54.preheader, !llvm.loop !120 for.inc94: ; preds = %for.inc91 %inc95 = add nuw i64 %i.1110, 1 - %exitcond134.not = icmp eq i64 %inc95, %4 + %exitcond134.not = icmp eq i64 %inc95, %.fr br i1 %exitcond134.not, label %if.end97, label %for.cond50.preheader, !llvm.loop !121 if.end97: ; preds = %for.inc94, %for.inc42, %for.cond46.preheader, %for.cond.preheader diff --git a/bench/raylib/optimized/raudio.ll b/bench/raylib/optimized/raudio.ll index f17fbabf1b7..dd8b44d53a2 100644 --- a/bench/raylib/optimized/raudio.ll +++ b/bench/raylib/optimized/raudio.ll @@ -74303,19 +74303,18 @@ define internal fastcc void @convert_samples_short(i32 noundef %0, ptr noundef r .lr.ph42.us.i.us: ; preds = %.lr.ph47.i.us, %._crit_edge.us.i.us %indvars.iv73.i.us = phi i64 [ %indvars.iv.next74.i.us, %._crit_edge.us.i.us ], [ 0, %.lr.ph47.i.us ] - %.03345.us.i.us = phi i32 [ %spec.select.us.fr.i.us, %._crit_edge.us.i.us ], [ 32, %.lr.ph47.i.us ] + %.03345.us.i.us = phi i32 [ %spec.select.us.i.us, %._crit_edge.us.i.us ], [ 32, %.lr.ph47.i.us ] %indvars75.i.us = trunc i64 %indvars.iv73.i.us to i32 call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(128) %8, i8 0, i64 128, i1 false) - %39 = add nsw i32 %.03345.us.i.us, %indvars75.i.us + %39 = add i32 %.03345.us.i.us, %indvars75.i.us %40 = icmp sgt i32 %39, %6 %41 = sub i32 %6, %indvars75.i.us %spec.select.us.i.us = select i1 %40, i32 %41, i32 %.03345.us.i.us - %spec.select.us.fr.i.us = freeze i32 %spec.select.us.i.us - %42 = icmp sgt i32 %spec.select.us.fr.i.us, 0 + %42 = icmp sgt i32 %spec.select.us.i.us, 0 br i1 %42, label %.lr.ph42.split.us.us.preheader.i.us, label %._crit_edge.us.i.us .lr.ph42.split.us.us.preheader.i.us: ; preds = %.lr.ph42.us.i.us - %wide.trip.count.i.us = zext nneg i32 %spec.select.us.fr.i.us to i64 + %wide.trip.count.i.us = zext nneg i32 %spec.select.us.i.us to i64 br label %.lr.ph42.split.us.us.i.us .lr.ph42.split.us.us.i.us: ; preds = %..loopexit_crit_edge.us.us.i.us, %.lr.ph42.split.us.us.preheader.i.us diff --git a/bench/regex-rs/optimized/12jtvy3iayrg5nam.ll b/bench/regex-rs/optimized/12jtvy3iayrg5nam.ll index 12641bc1c92..aab73bf1fed 100644 --- a/bench/regex-rs/optimized/12jtvy3iayrg5nam.ll +++ b/bench/regex-rs/optimized/12jtvy3iayrg5nam.ll @@ -4887,6 +4887,7 @@ define { i64, i64 } @_ZN12regex_syntax3ast5Flags8add_item17h0d9afd9057af5b77E(pt br i1 %15, label %"_ZN73_$LT$regex_syntax..ast..FlagsItemKind$u20$as$u20$core..cmp..PartialEq$GT$2eq17h02072ecc26040ff4E.llvm.16653392013706621149.exit._crit_edge", label %.lr.ph.split.us, !llvm.loop !892 "_ZN73_$LT$regex_syntax..ast..FlagsItemKind$u20$as$u20$core..cmp..PartialEq$GT$2eq17h02072ecc26040ff4E.llvm.16653392013706621149.exit._crit_edge": ; preds = %"_ZN73_$LT$regex_syntax..ast..FlagsItemKind$u20$as$u20$core..cmp..PartialEq$GT$2eq17h02072ecc26040ff4E.llvm.16653392013706621149.exit.backedge", %"_ZN73_$LT$regex_syntax..ast..FlagsItemKind$u20$as$u20$core..cmp..PartialEq$GT$2eq17h02072ecc26040ff4E.llvm.16653392013706621149.exit.backedge.us", %2 + %.sroa.8.0.lcssa = phi i64 [ 0, %2 ], [ %13, %"_ZN73_$LT$regex_syntax..ast..FlagsItemKind$u20$as$u20$core..cmp..PartialEq$GT$2eq17h02072ecc26040ff4E.llvm.16653392013706621149.exit.backedge.us" ], [ %26, %"_ZN73_$LT$regex_syntax..ast..FlagsItemKind$u20$as$u20$core..cmp..PartialEq$GT$2eq17h02072ecc26040ff4E.llvm.16653392013706621149.exit.backedge" ] %16 = load i64, ptr %0, align 8, !alias.scope !894, !noalias !897, !noundef !7 %17 = icmp eq i64 %6, %16 br i1 %17, label %18, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17hb848f3d4f131e4adE.llvm.16653392013706621149.exit" @@ -4924,7 +4925,7 @@ define { i64, i64 } @_ZN12regex_syntax3ast5Flags8add_item17h0d9afd9057af5b77E(pt br i1 %28, label %"_ZN73_$LT$regex_syntax..ast..FlagsItemKind$u20$as$u20$core..cmp..PartialEq$GT$2eq17h02072ecc26040ff4E.llvm.16653392013706621149.exit._crit_edge", label %.lr.ph.split .loopexit: ; preds = %.lr.ph.split, %.lr.ph.split.us, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17hb848f3d4f131e4adE.llvm.16653392013706621149.exit" - %.sroa.3.0 = phi i64 [ undef, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17hb848f3d4f131e4adE.llvm.16653392013706621149.exit" ], [ %.sroa.8.016.us, %.lr.ph.split.us ], [ %.sroa.8.016, %.lr.ph.split ] + %.sroa.3.0 = phi i64 [ %.sroa.8.0.lcssa, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17hb848f3d4f131e4adE.llvm.16653392013706621149.exit" ], [ %.sroa.8.016.us, %.lr.ph.split.us ], [ %.sroa.8.016, %.lr.ph.split ] %.sroa.0.0 = phi i64 [ 0, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17hb848f3d4f131e4adE.llvm.16653392013706621149.exit" ], [ 1, %.lr.ph.split.us ], [ 1, %.lr.ph.split ] %29 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0, 0 %30 = insertvalue { i64, i64 } %29, i64 %.sroa.3.0, 1 diff --git a/bench/regex-rs/optimized/1x04d8372kemp7hd.ll b/bench/regex-rs/optimized/1x04d8372kemp7hd.ll index ad34c115c6a..80d6dc99225 100644 --- a/bench/regex-rs/optimized/1x04d8372kemp7hd.ll +++ b/bench/regex-rs/optimized/1x04d8372kemp7hd.ll @@ -840,10 +840,9 @@ define hidden { i64, i64 } @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$ br i1 %12, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h325b5d97ad3da947E.llvm.8347807780687254574.exit, label %5 _ZN4core4iter6traits8iterator8Iterator8try_fold17h325b5d97ad3da947E.llvm.8347807780687254574.exit: ; preds = %5, %8 - %.sroa.3.0.i = phi i64 [ undef, %8 ], [ %.0.i, %5 ] %.sroa.0.0.i = phi i64 [ 0, %8 ], [ 1, %5 ] %14 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0.i, 0 - %15 = insertvalue { i64, i64 } %14, i64 %.sroa.3.0.i, 1 + %15 = insertvalue { i64, i64 } %14, i64 %.0.i, 1 ret { i64, i64 } %15 } @@ -1226,10 +1225,9 @@ define hidden { i64, i64 } @_ZN4core4iter6traits8iterator8Iterator8try_fold17h32 br i1 %13, label %15, label %6 15: ; preds = %6, %9 - %.sroa.3.0 = phi i64 [ undef, %9 ], [ %.0, %6 ] %.sroa.0.0 = phi i64 [ 0, %9 ], [ 1, %6 ] %16 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0, 0 - %17 = insertvalue { i64, i64 } %16, i64 %.sroa.3.0, 1 + %17 = insertvalue { i64, i64 } %16, i64 %.0, 1 ret { i64, i64 } %17 } diff --git a/bench/rocksdb/optimized/db_impl.ll b/bench/rocksdb/optimized/db_impl.ll index d7b0bae3ea3..e69615f95aa 100644 --- a/bench/rocksdb/optimized/db_impl.ll +++ b/bench/rocksdb/optimized/db_impl.ll @@ -107599,12 +107599,11 @@ define linkonce_odr void @_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19 .thread: ; preds = %50, %15 %.09.lcssa.ph = phi i64 [ %17, %50 ], [ %.0922, %15 ] - %.09.lcssa.ph.fr = freeze i64 %.09.lcssa.ph %.pre = load ptr, ptr %6, align 8 %.pre25 = load ptr, ptr %9, align 8 - %60 = icmp ult i64 %.09.lcssa.ph.fr, 8 - %61 = getelementptr inbounds nuw %"struct.rocksdb::MultiCfIteratorInfo", ptr %.pre, i64 %.09.lcssa.ph.fr - %62 = getelementptr %"struct.rocksdb::MultiCfIteratorInfo", ptr %.pre25, i64 %.09.lcssa.ph.fr + %60 = icmp ult i64 %.09.lcssa.ph, 8 + %61 = getelementptr inbounds nuw %"struct.rocksdb::MultiCfIteratorInfo", ptr %.pre, i64 %.09.lcssa.ph + %62 = getelementptr %"struct.rocksdb::MultiCfIteratorInfo", ptr %.pre25, i64 %.09.lcssa.ph %63 = getelementptr i8, ptr %62, i64 -192 %spec.select = select i1 %60, ptr %61, ptr %63 br label %.thread.thread @@ -109091,12 +109090,11 @@ define linkonce_odr void @_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19 .thread: ; preds = %50, %15 %.09.lcssa.ph = phi i64 [ %17, %50 ], [ %.0922, %15 ] - %.09.lcssa.ph.fr = freeze i64 %.09.lcssa.ph %.pre = load ptr, ptr %6, align 8 %.pre25 = load ptr, ptr %9, align 8 - %60 = icmp ult i64 %.09.lcssa.ph.fr, 8 - %61 = getelementptr inbounds nuw %"struct.rocksdb::MultiCfIteratorInfo", ptr %.pre, i64 %.09.lcssa.ph.fr - %62 = getelementptr %"struct.rocksdb::MultiCfIteratorInfo", ptr %.pre25, i64 %.09.lcssa.ph.fr + %60 = icmp ult i64 %.09.lcssa.ph, 8 + %61 = getelementptr inbounds nuw %"struct.rocksdb::MultiCfIteratorInfo", ptr %.pre, i64 %.09.lcssa.ph + %62 = getelementptr %"struct.rocksdb::MultiCfIteratorInfo", ptr %.pre25, i64 %.09.lcssa.ph %63 = getelementptr i8, ptr %62, i64 -192 %spec.select = select i1 %60, ptr %61, ptr %63 br label %.thread.thread @@ -113599,12 +113597,11 @@ define linkonce_odr void @_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19 .thread: ; preds = %50, %15 %.09.lcssa.ph = phi i64 [ %17, %50 ], [ %.0922, %15 ] - %.09.lcssa.ph.fr = freeze i64 %.09.lcssa.ph %.pre = load ptr, ptr %6, align 8 %.pre25 = load ptr, ptr %9, align 8 - %60 = icmp ult i64 %.09.lcssa.ph.fr, 8 - %61 = getelementptr inbounds nuw %"struct.rocksdb::MultiCfIteratorInfo", ptr %.pre, i64 %.09.lcssa.ph.fr - %62 = getelementptr %"struct.rocksdb::MultiCfIteratorInfo", ptr %.pre25, i64 %.09.lcssa.ph.fr + %60 = icmp ult i64 %.09.lcssa.ph, 8 + %61 = getelementptr inbounds nuw %"struct.rocksdb::MultiCfIteratorInfo", ptr %.pre, i64 %.09.lcssa.ph + %62 = getelementptr %"struct.rocksdb::MultiCfIteratorInfo", ptr %.pre25, i64 %.09.lcssa.ph %63 = getelementptr i8, ptr %62, i64 -192 %spec.select = select i1 %60, ptr %61, ptr %63 br label %.thread.thread @@ -115000,12 +114997,11 @@ define linkonce_odr void @_ZN7rocksdb10BinaryHeapINS_19MultiCfIteratorInfoENS_19 .thread: ; preds = %50, %15 %.09.lcssa.ph = phi i64 [ %17, %50 ], [ %.0922, %15 ] - %.09.lcssa.ph.fr = freeze i64 %.09.lcssa.ph %.pre = load ptr, ptr %6, align 8 %.pre25 = load ptr, ptr %9, align 8 - %60 = icmp ult i64 %.09.lcssa.ph.fr, 8 - %61 = getelementptr inbounds nuw %"struct.rocksdb::MultiCfIteratorInfo", ptr %.pre, i64 %.09.lcssa.ph.fr - %62 = getelementptr %"struct.rocksdb::MultiCfIteratorInfo", ptr %.pre25, i64 %.09.lcssa.ph.fr + %60 = icmp ult i64 %.09.lcssa.ph, 8 + %61 = getelementptr inbounds nuw %"struct.rocksdb::MultiCfIteratorInfo", ptr %.pre, i64 %.09.lcssa.ph + %62 = getelementptr %"struct.rocksdb::MultiCfIteratorInfo", ptr %.pre25, i64 %.09.lcssa.ph %63 = getelementptr i8, ptr %62, i64 -192 %spec.select = select i1 %60, ptr %61, ptr %63 br label %.thread.thread diff --git a/bench/rocksdb/optimized/range_del_aggregator.ll b/bench/rocksdb/optimized/range_del_aggregator.ll index 2c19b362ab8..0e5a4a1d1c5 100644 --- a/bench/rocksdb/optimized/range_del_aggregator.ll +++ b/bench/rocksdb/optimized/range_del_aggregator.ll @@ -6991,12 +6991,11 @@ _ZN7rocksdb10autovectorIPNS_25TruncatedRangeDelIteratorELm8EE9push_backERKS2_.ex .thread.i.i: ; preds = %67, %.lr.ph.i.i %.011.lcssa.ph.i.i = phi i64 [ %58, %67 ], [ %.01120.i.i, %.lr.ph.i.i ] - %.011.lcssa.ph.fr.i.i = freeze i64 %.011.lcssa.ph.i.i %.pre.i.i = load ptr, ptr %51, align 8 %.pre23.i.i = load ptr, ptr %42, align 8 - %78 = icmp ult i64 %.011.lcssa.ph.fr.i.i, 8 - %79 = getelementptr inbounds nuw ptr, ptr %.pre.i.i, i64 %.011.lcssa.ph.fr.i.i - %80 = getelementptr ptr, ptr %.pre23.i.i, i64 %.011.lcssa.ph.fr.i.i + %78 = icmp ult i64 %.011.lcssa.ph.i.i, 8 + %79 = getelementptr inbounds nuw ptr, ptr %.pre.i.i, i64 %.011.lcssa.ph.i.i + %80 = getelementptr ptr, ptr %.pre23.i.i, i64 %.011.lcssa.ph.i.i %81 = getelementptr i8, ptr %80, i64 -64 %spec.select.i.i = select i1 %78, ptr %79, ptr %81 br label %_ZN7rocksdb10BinaryHeapIPNS_25TruncatedRangeDelIteratorENS_21StartKeyMinComparatorEE4pushERKS2_.exit @@ -7119,13 +7118,12 @@ _ZNSt8multisetIPN7rocksdb25TruncatedRangeDelIteratorENS0_16SeqMaxComparatorESaIS .thread.i.i: ; preds = %55, %.lr.ph.i.i %.09.lcssa.ph.i.i = phi i64 [ %47, %55 ], [ %.0918.i.i, %.lr.ph.i.i ] - %.09.lcssa.ph.fr.i.i = freeze i64 %.09.lcssa.ph.i.i %.pre.i.i = load ptr, ptr %40, align 8 %.pre21.i.i = load ptr, ptr %29, align 8 %.pre22.i.i = load i64, ptr %3, align 8, !tbaa !146 - %66 = icmp ult i64 %.09.lcssa.ph.fr.i.i, 8 - %67 = getelementptr inbounds nuw %"struct.std::_Rb_tree_const_iterator", ptr %.pre.i.i, i64 %.09.lcssa.ph.fr.i.i - %68 = getelementptr %"struct.std::_Rb_tree_const_iterator", ptr %.pre21.i.i, i64 %.09.lcssa.ph.fr.i.i + %66 = icmp ult i64 %.09.lcssa.ph.i.i, 8 + %67 = getelementptr inbounds nuw %"struct.std::_Rb_tree_const_iterator", ptr %.pre.i.i, i64 %.09.lcssa.ph.i.i + %68 = getelementptr %"struct.std::_Rb_tree_const_iterator", ptr %.pre21.i.i, i64 %.09.lcssa.ph.i.i %69 = getelementptr i8, ptr %68, i64 -64 %spec.select.i.i1 = select i1 %66, ptr %67, ptr %69 br label %_ZN7rocksdb10BinaryHeapISt23_Rb_tree_const_iteratorIPNS_25TruncatedRangeDelIteratorEENS_23ForwardRangeDelIterator19EndKeyMinComparatorEE4pushERKS4_.exit @@ -7970,12 +7968,11 @@ _ZN7rocksdb10autovectorIPNS_25TruncatedRangeDelIteratorELm8EE9push_backERKS2_.ex .thread.i.i: ; preds = %67, %.lr.ph.i.i %.011.lcssa.ph.i.i = phi i64 [ %58, %67 ], [ %.01120.i.i, %.lr.ph.i.i ] - %.011.lcssa.ph.fr.i.i = freeze i64 %.011.lcssa.ph.i.i %.pre.i.i = load ptr, ptr %51, align 8 %.pre23.i.i = load ptr, ptr %42, align 8 - %78 = icmp ult i64 %.011.lcssa.ph.fr.i.i, 8 - %79 = getelementptr inbounds nuw ptr, ptr %.pre.i.i, i64 %.011.lcssa.ph.fr.i.i - %80 = getelementptr ptr, ptr %.pre23.i.i, i64 %.011.lcssa.ph.fr.i.i + %78 = icmp ult i64 %.011.lcssa.ph.i.i, 8 + %79 = getelementptr inbounds nuw ptr, ptr %.pre.i.i, i64 %.011.lcssa.ph.i.i + %80 = getelementptr ptr, ptr %.pre23.i.i, i64 %.011.lcssa.ph.i.i %81 = getelementptr i8, ptr %80, i64 -64 %spec.select.i.i = select i1 %78, ptr %79, ptr %81 br label %_ZN7rocksdb10BinaryHeapIPNS_25TruncatedRangeDelIteratorENS_23ReverseRangeDelIterator19EndKeyMaxComparatorEE4pushERKS2_.exit @@ -8098,13 +8095,12 @@ _ZNSt8multisetIPN7rocksdb25TruncatedRangeDelIteratorENS0_16SeqMaxComparatorESaIS .thread.i.i: ; preds = %55, %.lr.ph.i.i %.09.lcssa.ph.i.i = phi i64 [ %47, %55 ], [ %.0918.i.i, %.lr.ph.i.i ] - %.09.lcssa.ph.fr.i.i = freeze i64 %.09.lcssa.ph.i.i %.pre.i.i = load ptr, ptr %40, align 8 %.pre21.i.i = load ptr, ptr %29, align 8 %.pre22.i.i = load i64, ptr %3, align 8, !tbaa !146 - %66 = icmp ult i64 %.09.lcssa.ph.fr.i.i, 8 - %67 = getelementptr inbounds nuw %"struct.std::_Rb_tree_const_iterator", ptr %.pre.i.i, i64 %.09.lcssa.ph.fr.i.i - %68 = getelementptr %"struct.std::_Rb_tree_const_iterator", ptr %.pre21.i.i, i64 %.09.lcssa.ph.fr.i.i + %66 = icmp ult i64 %.09.lcssa.ph.i.i, 8 + %67 = getelementptr inbounds nuw %"struct.std::_Rb_tree_const_iterator", ptr %.pre.i.i, i64 %.09.lcssa.ph.i.i + %68 = getelementptr %"struct.std::_Rb_tree_const_iterator", ptr %.pre21.i.i, i64 %.09.lcssa.ph.i.i %69 = getelementptr i8, ptr %68, i64 -64 %spec.select.i.i1 = select i1 %66, ptr %67, ptr %69 br label %_ZN7rocksdb10BinaryHeapISt23_Rb_tree_const_iteratorIPNS_25TruncatedRangeDelIteratorEENS_23ReverseRangeDelIterator21StartKeyMaxComparatorEE4pushERKS4_.exit @@ -10502,12 +10498,11 @@ _ZNK7rocksdb21StartKeyMinComparatorclEPKNS_25TruncatedRangeDelIteratorES3_.exit: .thread.i.i: ; preds = %294, %_ZNK7rocksdb21StartKeyMinComparatorclEPKNS_25TruncatedRangeDelIteratorES3_.exit %.011.lcssa.ph.i.i = phi i64 [ %239, %294 ], [ %.01120.i.i, %_ZNK7rocksdb21StartKeyMinComparatorclEPKNS_25TruncatedRangeDelIteratorES3_.exit ] - %.011.lcssa.ph.fr.i.i = freeze i64 %.011.lcssa.ph.i.i %.pre.i.i = load ptr, ptr %44, align 8 %.pre23.i.i = load ptr, ptr %17, align 8 - %305 = icmp ult i64 %.011.lcssa.ph.fr.i.i, 8 - %306 = getelementptr inbounds nuw ptr, ptr %.pre.i.i, i64 %.011.lcssa.ph.fr.i.i - %307 = getelementptr ptr, ptr %.pre23.i.i, i64 %.011.lcssa.ph.fr.i.i + %305 = icmp ult i64 %.011.lcssa.ph.i.i, 8 + %306 = getelementptr inbounds nuw ptr, ptr %.pre.i.i, i64 %.011.lcssa.ph.i.i + %307 = getelementptr ptr, ptr %.pre23.i.i, i64 %.011.lcssa.ph.i.i %308 = getelementptr i8, ptr %307, i64 -64 %spec.select.i.i = select i1 %305, ptr %306, ptr %308 br label %_ZN7rocksdb10BinaryHeapIPNS_25TruncatedRangeDelIteratorENS_21StartKeyMinComparatorEE4pushERKS2_.exit diff --git a/bench/ruby/optimized/parse.ll b/bench/ruby/optimized/parse.ll index 940e64c8ed0..63a4f9f9ea0 100644 --- a/bench/ruby/optimized/parse.ll +++ b/bench/ruby/optimized/parse.ll @@ -24637,7 +24637,7 @@ define hidden i64 @rb_yytnamerr(ptr readnone captures(none) %0, ptr noundef %1, br i1 %.not66, label %.preheader90, label %.preheader91 .preheader90: ; preds = %9, %.preheader90 - %.0.i = phi i32 [ %15, %.preheader90 ], [ 0, %9 ] + %.0.i = phi i32 [ %15, %.preheader89 ], [ 0, %9 ] %11 = sext i32 %.0.i to i64 %12 = getelementptr i8, ptr %10, i64 %11 %13 = load i8, ptr %12, align 1, !tbaa !25 @@ -24661,7 +24661,7 @@ ruby_nonempty_memcpy.exit: ; preds = %17, %count_char.exi br label %.outer.backedge .preheader91: ; preds = %9, %.preheader91 - %.0.i75 = phi i32 [ %24, %.preheader91 ], [ 0, %9 ] + %.0.i75 = phi i32 [ %24, %.preheader90 ], [ 0, %9 ] %20 = sext i32 %.0.i75 to i64 %21 = getelementptr i8, ptr %10, i64 %20 %22 = load i8, ptr %21, align 1, !tbaa !25 @@ -24766,7 +24766,7 @@ ruby_nonempty_memcpy.exit79: ; preds = %27 br label %59 59: ; preds = %51, %50, %55, %53 - %.158 = phi i64 [ %58, %55 ], [ %54, %53 ], [ %.055, %51 ], [ %.055, %50 ] + %.158 = phi i64 [ %58, %55 ], [ %54, %53 ], [ %.055, %50 ], [ %.055, %51 ] ret i64 %.158 } @@ -44637,20 +44637,18 @@ nextc0.exit447.backedge: ; preds = %.critedge.i440, %65 pushback.exit424.thread.loopexit: ; preds = %490, %573, %642, %.critedge.i411, %.critedge.i426, %nextc0.exit447 %.1264.lcssa = phi i32 [ %.1264, %490 ], [ %.1264, %573 ], [ %.1264, %642 ], [ 0, %.critedge.i411 ], [ %.1264, %.critedge.i426 ], [ %.1264, %nextc0.exit447 ] - %.1260.lcssa = phi i32 [ %.1260, %490 ], [ %.1260, %573 ], [ %.1260, %642 ], [ 0, %.critedge.i411 ], [ 0, %.critedge.i426 ], [ %.1260, %nextc0.exit447 ] - %.pre706 = load i32, ptr %4, align 8 - %.pre707 = load ptr, ptr %472, align 8, !tbaa !184 + %.pre714 = load i32, ptr %4, align 8 + %.pre706 = load ptr, ptr %472, align 8, !tbaa !184 %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %0, i64 72 %.pre708 = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !52 - %665 = and i32 %.pre706, -9 + %665 = and i32 %.pre714, -9 br label %pushback.exit424.thread pushback.exit424.thread: ; preds = %609, %569, %529, %pushback.exit424.thread.loopexit, %526, %.split271, %606, %.thread577, %566, %558 - %666 = phi ptr [ %604, %606 ], [ %604, %.thread577 ], [ %564, %566 ], [ %564, %558 ], [ %524, %.split271 ], [ %524, %526 ], [ %.pre708, %pushback.exit424.thread.loopexit ], [ %524, %529 ], [ %564, %569 ], [ %604, %609 ] - %667 = phi ptr [ %602, %606 ], [ %602, %.thread577 ], [ %562, %566 ], [ %562, %558 ], [ %522, %.split271 ], [ %522, %526 ], [ %.pre707, %pushback.exit424.thread.loopexit ], [ %spec.select779, %529 ], [ %spec.select780, %569 ], [ %spec.select782, %609 ] - %668 = phi i32 [ %601, %606 ], [ %601, %.thread577 ], [ %560, %566 ], [ %560, %558 ], [ %521, %.split271 ], [ %521, %526 ], [ %665, %pushback.exit424.thread.loopexit ], [ %521, %529 ], [ %560, %569 ], [ %601, %609 ] - %.1264682 = phi i32 [ %.1264, %606 ], [ %.1264, %.thread577 ], [ %.1264, %566 ], [ %.1264, %558 ], [ 0, %.split271 ], [ 0, %526 ], [ %.1264.lcssa, %pushback.exit424.thread.loopexit ], [ 0, %529 ], [ %.1264, %569 ], [ %.1264, %609 ] - %.1260671 = phi i32 [ 0, %606 ], [ 0, %.thread577 ], [ %.1260, %566 ], [ %.1260, %558 ], [ 0, %.split271 ], [ 0, %526 ], [ %.1260.lcssa, %pushback.exit424.thread.loopexit ], [ 0, %529 ], [ %.1260, %569 ], [ 0, %609 ] + %666 = phi ptr [ %.pre708, %pushback.exit424.thread.loopexit ], [ %524, %526 ], [ %524, %.split271 ], [ %604, %606 ], [ %604, %.thread577 ], [ %564, %566 ], [ %564, %558 ], [ %524, %529 ], [ %564, %569 ], [ %604, %609 ] + %667 = phi ptr [ %.pre715, %pushback.exit424.thread.loopexit ], [ %522, %526 ], [ %522, %.split271 ], [ %602, %606 ], [ %602, %.thread577 ], [ %562, %566 ], [ %562, %558 ], [ %spec.select790, %529 ], [ %spec.select780, %569 ], [ %spec.select793, %609 ] + %668 = phi i32 [ %665, %pushback.exit424.thread.loopexit ], [ %521, %526 ], [ %521, %.split271 ], [ %601, %606 ], [ %601, %.thread577 ], [ %560, %566 ], [ %560, %558 ], [ %521, %529 ], [ %560, %569 ], [ %601, %609 ] + %.1264682 = phi i32 [ %.1264.lcssa, %pushback.exit424.thread.loopexit ], [ 0, %526 ], [ 0, %.split271 ], [ %.1264, %606 ], [ %.1264, %.thread577 ], [ %.1264, %566 ], [ %.1264, %558 ], [ 0, %529 ], [ %.1264, %569 ], [ %.1264, %609 ] store i32 %668, ptr %4, align 8 %669 = getelementptr i8, ptr %667, i64 -1 store ptr %669, ptr %472, align 8, !tbaa !184 @@ -44674,14 +44672,13 @@ pushback.exit424.thread: ; preds = %609, %569, %529, %p pushback.exit448: ; preds = %nextc0.exit447, %pushback.exit424.thread, %671, %674, %678 %.1264681 = phi i32 [ %.1264682, %pushback.exit424.thread ], [ %.1264682, %671 ], [ %.1264682, %674 ], [ %.1264682, %678 ], [ %.1264, %nextc0.exit447 ] - %.1260670 = phi i32 [ %.1260671, %pushback.exit424.thread ], [ %.1260671, %671 ], [ %.1260671, %674 ], [ %.1260671, %678 ], [ %.1260, %nextc0.exit447 ] %.not315 = icmp eq i32 %.18258, 0 br i1 %.not315, label %parser_show_error_line.exit, label %.thread553 .thread553: ; preds = %489, %451, %385, %288, %191, %460, %pushback.exit448 %.0267 = phi i32 [ %.1268, %pushback.exit448 ], [ 0, %460 ], [ 0, %191 ], [ 0, %288 ], [ 0, %385 ], [ 0, %451 ], [ %.1268, %489 ] %.0263 = phi i32 [ %.1264681, %pushback.exit448 ], [ 0, %460 ], [ 0, %191 ], [ 0, %288 ], [ 0, %385 ], [ 0, %451 ], [ %.1264, %489 ] - %.0259 = phi i32 [ %.1260670, %pushback.exit448 ], [ 0, %460 ], [ 0, %191 ], [ 0, %288 ], [ 0, %385 ], [ 0, %451 ], [ %.1260, %489 ] + %.0259 = phi i32 [ %.1260, %pushback.exit448 ], [ 0, %460 ], [ 0, %191 ], [ 0, %288 ], [ 0, %385 ], [ 0, %451 ], [ %.1260, %489 ] %.17257 = phi i32 [ %.18258, %pushback.exit448 ], [ %.13253, %460 ], [ %.1241464, %191 ], [ %.5245489, %288 ], [ %.8248527, %385 ], [ %.13253, %451 ], [ %.18258, %489 ] %679 = getelementptr inbounds nuw i8, ptr %0, i64 80 %680 = load ptr, ptr %679, align 8, !tbaa !184 @@ -44722,7 +44719,7 @@ pushback.exit448: ; preds = %nextc0.exit447, %pu parser_show_error_line.exit: ; preds = %699, %.thread553, %pushback.exit448 %.3270 = phi i32 [ %.1268, %pushback.exit448 ], [ %.0267, %.thread553 ], [ %.0267, %699 ] %.3266 = phi i32 [ %.1264681, %pushback.exit448 ], [ %.0263, %.thread553 ], [ %.0263, %699 ] - %.3262 = phi i32 [ %.1260670, %pushback.exit448 ], [ %.0259, %.thread553 ], [ %.0259, %699 ] + %.3262 = phi i32 [ %.1260, %pushback.exit448 ], [ %.0259, %.thread553 ], [ %.0259, %699 ] %704 = load ptr, ptr %13, align 8, !tbaa !510 %705 = load i32, ptr %12, align 8, !tbaa !578 %706 = sext i32 %705 to i64 diff --git a/bench/ruby/optimized/ripper.ll b/bench/ruby/optimized/ripper.ll index f560a9693c8..fa42b58337b 100644 --- a/bench/ruby/optimized/ripper.ll +++ b/bench/ruby/optimized/ripper.ll @@ -43360,20 +43360,18 @@ nextc0.exit446.backedge: ; preds = %.critedge.i439, %65 pushback.exit423.thread.loopexit: ; preds = %489, %572, %641, %.critedge.i410, %.critedge.i425, %nextc0.exit446 %.1263.lcssa = phi i32 [ %.1263, %489 ], [ %.1263, %572 ], [ %.1263, %641 ], [ 0, %.critedge.i410 ], [ %.1263, %.critedge.i425 ], [ %.1263, %nextc0.exit446 ] - %.1259.lcssa = phi i32 [ %.1259, %489 ], [ %.1259, %572 ], [ %.1259, %641 ], [ 0, %.critedge.i410 ], [ 0, %.critedge.i425 ], [ %.1259, %nextc0.exit446 ] - %.pre704 = load i16, ptr %3, align 8 - %.pre705 = load ptr, ptr %471, align 8, !tbaa !48 + %.pre712 = load i16, ptr %3, align 8 + %.pre704 = load ptr, ptr %471, align 8, !tbaa !48 %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %0, i64 72 %.pre706 = load ptr, ptr %.phi.trans.insert, align 8, !tbaa !44 - %664 = and i16 %.pre704, -9 + %664 = and i16 %.pre712, -9 br label %pushback.exit423.thread pushback.exit423.thread: ; preds = %608, %568, %528, %pushback.exit423.thread.loopexit, %525, %.split270, %605, %.thread575, %565, %557 - %665 = phi ptr [ %603, %605 ], [ %603, %.thread575 ], [ %563, %565 ], [ %563, %557 ], [ %523, %.split270 ], [ %523, %525 ], [ %.pre706, %pushback.exit423.thread.loopexit ], [ %523, %528 ], [ %563, %568 ], [ %603, %608 ] - %666 = phi ptr [ %601, %605 ], [ %601, %.thread575 ], [ %561, %565 ], [ %561, %557 ], [ %521, %.split270 ], [ %521, %525 ], [ %.pre705, %pushback.exit423.thread.loopexit ], [ %spec.select777, %528 ], [ %spec.select778, %568 ], [ %spec.select780, %608 ] - %667 = phi i16 [ %600, %605 ], [ %600, %.thread575 ], [ %559, %565 ], [ %559, %557 ], [ %520, %.split270 ], [ %520, %525 ], [ %664, %pushback.exit423.thread.loopexit ], [ %520, %528 ], [ %559, %568 ], [ %600, %608 ] - %.1263680 = phi i32 [ %.1263, %605 ], [ %.1263, %.thread575 ], [ %.1263, %565 ], [ %.1263, %557 ], [ 0, %.split270 ], [ 0, %525 ], [ %.1263.lcssa, %pushback.exit423.thread.loopexit ], [ 0, %528 ], [ %.1263, %568 ], [ %.1263, %608 ] - %.1259669 = phi i32 [ 0, %605 ], [ 0, %.thread575 ], [ %.1259, %565 ], [ %.1259, %557 ], [ 0, %.split270 ], [ 0, %525 ], [ %.1259.lcssa, %pushback.exit423.thread.loopexit ], [ 0, %528 ], [ %.1259, %568 ], [ 0, %608 ] + %665 = phi ptr [ %.pre706, %pushback.exit423.thread.loopexit ], [ %523, %525 ], [ %523, %.split270 ], [ %603, %605 ], [ %603, %.thread575 ], [ %563, %565 ], [ %563, %557 ], [ %523, %528 ], [ %563, %568 ], [ %603, %608 ] + %666 = phi ptr [ %.pre713, %pushback.exit423.thread.loopexit ], [ %521, %525 ], [ %521, %.split270 ], [ %601, %605 ], [ %601, %.thread575 ], [ %561, %565 ], [ %561, %557 ], [ %spec.select788, %528 ], [ %spec.select789, %568 ], [ %spec.select791, %608 ] + %667 = phi i16 [ %664, %pushback.exit423.thread.loopexit ], [ %520, %525 ], [ %520, %.split270 ], [ %600, %605 ], [ %600, %.thread575 ], [ %559, %565 ], [ %559, %557 ], [ %520, %528 ], [ %559, %568 ], [ %600, %608 ] + %.1263680 = phi i32 [ %.1263.lcssa, %pushback.exit423.thread.loopexit ], [ 0, %525 ], [ 0, %.split270 ], [ %.1263, %605 ], [ %.1263, %.thread575 ], [ %.1263, %565 ], [ %.1263, %557 ], [ 0, %528 ], [ %.1263, %568 ], [ %.1263, %608 ] store i16 %667, ptr %3, align 8 %668 = getelementptr inbounds i8, ptr %666, i64 -1 store ptr %668, ptr %471, align 8, !tbaa !48 @@ -43397,14 +43395,13 @@ pushback.exit423.thread: ; preds = %608, %568, %528, %p pushback.exit447: ; preds = %nextc0.exit446, %pushback.exit423.thread, %670, %673, %677 %.1263679 = phi i32 [ %.1263680, %pushback.exit423.thread ], [ %.1263680, %670 ], [ %.1263680, %673 ], [ %.1263680, %677 ], [ %.1263, %nextc0.exit446 ] - %.1259668 = phi i32 [ %.1259669, %pushback.exit423.thread ], [ %.1259669, %670 ], [ %.1259669, %673 ], [ %.1259669, %677 ], [ %.1259, %nextc0.exit446 ] %.not314 = icmp eq i32 %.18257, 0 br i1 %.not314, label %678, label %.thread551 .thread551: ; preds = %488, %450, %384, %287, %190, %459, %pushback.exit447 %.0266 = phi i32 [ %.1267, %pushback.exit447 ], [ 0, %459 ], [ 0, %190 ], [ 0, %287 ], [ 0, %384 ], [ 0, %450 ], [ %.1267, %488 ] %.0262 = phi i32 [ %.1263679, %pushback.exit447 ], [ 0, %459 ], [ 0, %190 ], [ 0, %287 ], [ 0, %384 ], [ 0, %450 ], [ %.1263, %488 ] - %.0258 = phi i32 [ %.1259668, %pushback.exit447 ], [ 0, %459 ], [ 0, %190 ], [ 0, %287 ], [ 0, %384 ], [ 0, %450 ], [ %.1259, %488 ] + %.0258 = phi i32 [ %.1259, %pushback.exit447 ], [ 0, %459 ], [ 0, %190 ], [ 0, %287 ], [ 0, %384 ], [ 0, %450 ], [ %.1259, %488 ] %.17256 = phi i32 [ %.18257, %pushback.exit447 ], [ %.13252, %459 ], [ %.1240462, %190 ], [ %.5244487, %287 ], [ %.8247525, %384 ], [ %.13252, %450 ], [ %.18257, %488 ] tail call void (ptr, ptr, ...) @ripper_compile_error(ptr noundef nonnull %0, ptr noundef nonnull @.str.649, i32 noundef %.17256) #31 br label %678 @@ -43412,7 +43409,7 @@ pushback.exit447: ; preds = %nextc0.exit446, %pu 678: ; preds = %.thread551, %pushback.exit447 %.3269 = phi i32 [ %.0266, %.thread551 ], [ %.1267, %pushback.exit447 ] %.3265 = phi i32 [ %.0262, %.thread551 ], [ %.1263679, %pushback.exit447 ] - %.3261 = phi i32 [ %.0258, %.thread551 ], [ %.1259668, %pushback.exit447 ] + %.3261 = phi i32 [ %.0258, %.thread551 ], [ %.1259, %pushback.exit447 ] %679 = load ptr, ptr %12, align 8, !tbaa !465 %680 = load i32, ptr %11, align 8, !tbaa !508 %681 = sext i32 %680 to i64 diff --git a/bench/ruff-rs/optimized/1t5d2y321zgutphrasyamrpjz.ll b/bench/ruff-rs/optimized/1t5d2y321zgutphrasyamrpjz.ll index 25a96d660a8..494ac76faef 100644 --- a/bench/ruff-rs/optimized/1t5d2y321zgutphrasyamrpjz.ll +++ b/bench/ruff-rs/optimized/1t5d2y321zgutphrasyamrpjz.ll @@ -27790,11 +27790,12 @@ define hidden { i64, ptr } @_ZN18ty_python_semantic5types10signatures10Parameter %4 = getelementptr inbounds nuw i8, ptr %0, i64 16 %5 = load i64, ptr %4, align 8, !alias.scope !5081, !noundef !3 %6 = getelementptr inbounds nuw { { i64, [5 x i64] }, { i8, [15 x i8] }, i8, [7 x i8] }, ptr %3, i64 %5 - br label %7 + %7 = and i64 %5, 2305843009213693951 + br label %8 7: ; preds = %11, %1 - %8 = phi i64 [ %14, %11 ], [ 0, %1 ] - %9 = phi ptr [ %12, %11 ], [ %3, %1 ] + %8 = phi i64 [ %14, %12 ], [ 0, %1 ] + %9 = phi ptr [ %12, %12 ], [ %3, %1 ] %10 = icmp eq ptr %9, %6 br i1 %10, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h6bc96c3cb76c1a00E.exit, label %11 @@ -27806,8 +27807,8 @@ define hidden { i64, ptr } @_ZN18ty_python_semantic5types10signatures10Parameter br i1 %.not.i, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h6bc96c3cb76c1a00E.exit, label %7 _ZN4core4iter6traits8iterator8Iterator8try_fold17h6bc96c3cb76c1a00E.exit: ; preds = %7, %11 - %.sroa.3.0.i = phi ptr [ null, %7 ], [ %9, %11 ] - %.sroa.0.0.i = phi i64 [ undef, %7 ], [ %8, %11 ] + %.sroa.3.0.i = phi i64 [ %7, %8 ], [ %9, %12 ] + %.sroa.0.0.i = phi ptr [ null, %8 ], [ %8, %12 ] %.not = icmp eq ptr %.sroa.3.0.i, null %.sroa.0.0 = select i1 %.not, i64 undef, i64 %.sroa.0.0.i %15 = insertvalue { i64, ptr } poison, i64 %.sroa.0.0, 0 @@ -27851,7 +27852,7 @@ define hidden { i64, ptr } @_ZN18ty_python_semantic5types10signatures10Parameter _ZN4core4iter6traits8iterator8Iterator8try_fold17hba526aaf3ec8e26aE.exit: ; preds = %"_ZN18ty_python_semantic5types10signatures10Parameters15keyword_by_name28_$u7b$$u7b$closure$u7d$$u7d$17hd874bbd1813b6682E.exit.i.i.i", %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17hea30be85059b47c1E.exit.i", %3 %.sroa.3.0.i = phi ptr [ null, %3 ], [ %10, %"_ZN18ty_python_semantic5types10signatures10Parameters15keyword_by_name28_$u7b$$u7b$closure$u7d$$u7d$17hd874bbd1813b6682E.exit.i.i.i" ], [ null, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17hea30be85059b47c1E.exit.i" ] - %.sroa.0.0.i = phi i64 [ undef, %3 ], [ %.sroa.7.0, %"_ZN18ty_python_semantic5types10signatures10Parameters15keyword_by_name28_$u7b$$u7b$closure$u7d$$u7d$17hd874bbd1813b6682E.exit.i.i.i" ], [ undef, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17hea30be85059b47c1E.exit.i" ] + %.sroa.0.0.i = phi i64 [ undef, %3 ], [ %.sroa.7.0, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17hea30be85059b47c1E.exit.i" ], [ %.sroa.7.0, %"_ZN18ty_python_semantic5types10signatures10Parameters15keyword_by_name28_$u7b$$u7b$closure$u7d$$u7d$17hd874bbd1813b6682E.exit.i.i.i" ] %.not = icmp eq ptr %.sroa.3.0.i, null %.sroa.0.0 = select i1 %.not, i64 undef, i64 %.sroa.0.0.i %19 = insertvalue { i64, ptr } poison, i64 %.sroa.0.0, 0 diff --git a/bench/rust-analyzer-rs/optimized/15tfqr3l9t81r1af.ll b/bench/rust-analyzer-rs/optimized/15tfqr3l9t81r1af.ll index e6a69916a01..259d637f36e 100644 --- a/bench/rust-analyzer-rs/optimized/15tfqr3l9t81r1af.ll +++ b/bench/rust-analyzer-rs/optimized/15tfqr3l9t81r1af.ll @@ -24549,9 +24549,6 @@ _ZN4core3ops8function6FnOnce9call_once17h41bcee07fb5881bdE.exit.thread.i.i.i.i: 2085: ; preds = %"_ZN101_$LT$indexmap..set..IndexSet$LT$T$C$S$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$6extend17h4bd714577da3cce3E.exit.i.i", %2065, %2064, %2063 %2086 = phi i64 [ %.sroa.065.0.copyload66.i.i, %2063 ], [ %.sroa.065.0.copyload66.i.i, %2064 ], [ %.sroa.065.0.copyload66.i.i, %2065 ], [ %.pre.i.i, %"_ZN101_$LT$indexmap..set..IndexSet$LT$T$C$S$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$6extend17h4bd714577da3cce3E.exit.i.i" ] - %.112.i.i = phi i1 [ true, %2063 ], [ %.011118.i.i, %2064 ], [ %.011118.i.i, %2065 ], [ %.011118.i.i, %"_ZN101_$LT$indexmap..set..IndexSet$LT$T$C$S$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$6extend17h4bd714577da3cce3E.exit.i.i" ] - %.110.i.i = phi i1 [ %.09119.i.i, %2063 ], [ %.09119.i.i, %2064 ], [ true, %2065 ], [ %.09119.i.i, %"_ZN101_$LT$indexmap..set..IndexSet$LT$T$C$S$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$6extend17h4bd714577da3cce3E.exit.i.i" ] - %.1.i.i = phi i1 [ %.0120.i.i, %2063 ], [ true, %2064 ], [ %.0120.i.i, %2065 ], [ %.0120.i.i, %"_ZN101_$LT$indexmap..set..IndexSet$LT$T$C$S$GT$$u20$as$u20$core..iter..traits..collect..Extend$LT$T$GT$$GT$6extend17h4bd714577da3cce3E.exit.i.i" ] %2087 = icmp eq i64 %2086, 8 br i1 %2087, label %.thread108.i.i, label %2119 @@ -24632,9 +24629,9 @@ _ZN4core3ops8function6FnOnce9call_once17h41bcee07fb5881bdE.exit.thread.i.i.i.i: br label %.thread108.i.i .thread108.i.i: ; preds = %2119, %2111, %2097, %2085, %2080 - %.1117.i.i = phi i1 [ %.1.i.i, %2119 ], [ %.1.i.i, %2085 ], [ %.0120.i.i, %2111 ], [ true, %2097 ], [ %.0120.i.i, %2080 ] - %.110116.i.i = phi i1 [ %.110.i.i, %2119 ], [ %.110.i.i, %2085 ], [ true, %2111 ], [ %.09119.i.i, %2097 ], [ %.09119.i.i, %2080 ] - %.112115.i.i = phi i1 [ %.112.i.i, %2119 ], [ %.112.i.i, %2085 ], [ %.011118.i.i, %2111 ], [ %.011118.i.i, %2097 ], [ true, %2080 ] + %.1117.i.i = phi i1 [ %.0120.i.i, %2119 ], [ %.0120.i.i, %2085 ], [ %.0120.i.i, %2111 ], [ true, %2097 ], [ %.0120.i.i, %2080 ] + %.110116.i.i = phi i1 [ %.09119.i.i, %2119 ], [ %.09119.i.i, %2085 ], [ true, %2111 ], [ %.09119.i.i, %2097 ], [ %.09119.i.i, %2080 ] + %.112115.i.i = phi i1 [ %.011118.i.i, %2119 ], [ %.011118.i.i, %2085 ], [ %.011118.i.i, %2111 ], [ %.011118.i.i, %2097 ], [ true, %2080 ] call void @llvm.lifetime.end.p0(i64 248, ptr nonnull %18), !noalias !5855 call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %.sroa.7.i.i) call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %.sroa.7.i.i) @@ -31881,7 +31878,6 @@ _ZN9text_size5range9TextRange9intersect17h55773618c866f1ebE.exit: ; preds = %144 to label %202 unwind label %206 206: ; preds = %"_ZN4core3ptr57drop_in_place$LT$syntax..ast..generated..nodes..Union$GT$17hfc5c265bbdf3ab50E.exit.sink.split.i576", %255, %204, %203 - %.sroa.0.15 = phi i64 [ 2, %"_ZN4core3ptr57drop_in_place$LT$syntax..ast..generated..nodes..Union$GT$17hfc5c265bbdf3ab50E.exit.sink.split.i576" ], [ 2, %255 ], [ %.sroa.0.2, %204 ], [ %.sroa.0.2, %203 ] %.0344 = phi i8 [ %.3347.ph, %"_ZN4core3ptr57drop_in_place$LT$syntax..ast..generated..nodes..Union$GT$17hfc5c265bbdf3ab50E.exit.sink.split.i576" ], [ 1, %255 ], [ 1, %204 ], [ 1, %203 ] %.0339 = phi i8 [ %.3342.ph, %"_ZN4core3ptr57drop_in_place$LT$syntax..ast..generated..nodes..Union$GT$17hfc5c265bbdf3ab50E.exit.sink.split.i576" ], [ 1, %255 ], [ 1, %204 ], [ 1, %203 ] %.0335 = phi i8 [ %.3338.ph, %"_ZN4core3ptr57drop_in_place$LT$syntax..ast..generated..nodes..Union$GT$17hfc5c265bbdf3ab50E.exit.sink.split.i576" ], [ 1, %255 ], [ 1, %204 ], [ 1, %203 ] @@ -32254,7 +32250,7 @@ _ZN9text_size5range9TextRange9intersect17h55773618c866f1ebE.exit: ; preds = %144 br i1 %334, label %"_ZN4core3ptr55drop_in_place$LT$syntax..ast..generated..nodes..Use$GT$17h9f440ced566626f8E.exit.sink.split.i579.invoke", label %"_ZN4core3ptr56drop_in_place$LT$syntax..ast..generated..nodes..Item$GT$17hd858d2e5b0fd847dE.exit581" 335: ; preds = %227, %241, %208, %222, %206, %270, %.thread348, %"_ZN4core3ptr57drop_in_place$LT$syntax..ast..generated..nodes..Union$GT$17hfc5c265bbdf3ab50E.exit.sink.split.i", %281 - %.sroa.0.14.ph = phi i64 [ 2, %270 ], [ %.sroa.0.15, %206 ], [ 2, %.thread348 ], [ 2, %"_ZN4core3ptr57drop_in_place$LT$syntax..ast..generated..nodes..Union$GT$17hfc5c265bbdf3ab50E.exit.sink.split.i" ], [ 2, %281 ], [ %.sroa.0.2, %222 ], [ %.sroa.0.2, %208 ], [ %.sroa.0.2, %241 ], [ %.sroa.0.2, %227 ] + %.sroa.0.14.ph = phi i64 [ 2, %270 ], [ %.sroa.0.2, %206 ], [ 2, %.thread348 ], [ 2, %"_ZN4core3ptr57drop_in_place$LT$syntax..ast..generated..nodes..Union$GT$17hfc5c265bbdf3ab50E.exit.sink.split.i" ], [ 2, %281 ], [ %.sroa.0.2, %222 ], [ %.sroa.0.2, %208 ], [ %.sroa.0.2, %241 ], [ %.sroa.0.2, %227 ] %.1345.ph = phi i8 [ %.3347.ph, %270 ], [ %.0344, %206 ], [ %.3347.ph, %.thread348 ], [ %.3347.ph, %"_ZN4core3ptr57drop_in_place$LT$syntax..ast..generated..nodes..Union$GT$17hfc5c265bbdf3ab50E.exit.sink.split.i" ], [ %.3347.ph, %281 ], [ 1, %222 ], [ 1, %208 ], [ 1, %241 ], [ 1, %227 ] %.1340.ph = phi i8 [ %.3342.ph, %270 ], [ %.0339, %206 ], [ %.3342.ph, %.thread348 ], [ %.3342.ph, %"_ZN4core3ptr57drop_in_place$LT$syntax..ast..generated..nodes..Union$GT$17hfc5c265bbdf3ab50E.exit.sink.split.i" ], [ %.3342.ph, %281 ], [ 1, %222 ], [ 1, %208 ], [ 1, %241 ], [ 1, %227 ] %.1336.ph = phi i8 [ %.3338.ph, %270 ], [ %.0335, %206 ], [ %.3338.ph, %.thread348 ], [ %.3338.ph, %"_ZN4core3ptr57drop_in_place$LT$syntax..ast..generated..nodes..Union$GT$17hfc5c265bbdf3ab50E.exit.sink.split.i" ], [ %.3338.ph, %281 ], [ 1, %222 ], [ 1, %208 ], [ 1, %241 ], [ 1, %227 ] diff --git a/bench/rust-analyzer-rs/optimized/hknx1qr3lu9291s.ll b/bench/rust-analyzer-rs/optimized/hknx1qr3lu9291s.ll index 60884fe4c65..66bc7b0bfe5 100644 --- a/bench/rust-analyzer-rs/optimized/hknx1qr3lu9291s.ll +++ b/bench/rust-analyzer-rs/optimized/hknx1qr3lu9291s.ll @@ -3730,10 +3730,9 @@ define hidden { i64, i64 } @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$ br i1 %.not.i.i.i.i.not.i, label %9, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h14c2a6eb453e256cE.llvm.4370348610037963988.exit _ZN4core4iter6traits8iterator8Iterator8try_fold17h14c2a6eb453e256cE.llvm.4370348610037963988.exit: ; preds = %9, %"_ZN4core4iter8adapters3map12map_try_fold28_$u7b$$u7b$closure$u7d$$u7d$17hcc7a2592a0f3c154E.exit.i" - %.sroa.3.0.i = phi i64 [ undef, %"_ZN4core4iter8adapters3map12map_try_fold28_$u7b$$u7b$closure$u7d$$u7d$17hcc7a2592a0f3c154E.exit.i" ], [ %.0.i, %9 ] %.sroa.0.0.i = phi i64 [ 1, %"_ZN4core4iter8adapters3map12map_try_fold28_$u7b$$u7b$closure$u7d$$u7d$17hcc7a2592a0f3c154E.exit.i" ], [ 0, %9 ] %25 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0.i, 0 - %26 = insertvalue { i64, i64 } %25, i64 %.sroa.3.0.i, 1 + %26 = insertvalue { i64, i64 } %25, i64 %.0.i, 1 ret { i64, i64 } %26 } @@ -9442,7 +9441,7 @@ _ZN17ra_ap_rustc_lexer8unescape11scan_escape17h87456e89320ca408E.exit.i: ; preds br i1 %270, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h4e7b95a3164610d2E.exit.i.i, label %.lr.ph.i.i.i _ZN4core4iter6traits8iterator8Iterator8try_fold17h4e7b95a3164610d2E.exit.i.i: ; preds = %"_ZN4core4iter8adapters6copied13copy_try_fold28_$u7b$$u7b$closure$u7d$$u7d$17h4205cd79e99c2d8fE.exit.i.i.i", %.lr.ph.i.i.i - %switch.i.i = phi i64 [ %267, %.lr.ph.i.i.i ], [ %96, %"_ZN4core4iter8adapters6copied13copy_try_fold28_$u7b$$u7b$closure$u7d$$u7d$17h4205cd79e99c2d8fE.exit.i.i.i" ] + %switch.i.i = phi i64 [ %96, %"_ZN4core4iter8adapters6copied13copy_try_fold28_$u7b$$u7b$closure$u7d$$u7d$17h4205cd79e99c2d8fE.exit.i.i.i" ], [ %267, %.lr.ph.i.i.i ] %.not.i.i.i = icmp eq i64 %switch.i.i, 0 br i1 %.not.i.i.i, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h4e7b95a3164610d2E.exit.thread.i.i, label %271 @@ -12591,7 +12590,7 @@ define hidden { ptr, i64 } @"_ZN4core3str21_$LT$impl$u20$str$GT$12trim_matches17 %.not35 = phi i1 [ true, %2 ], [ true, %32 ], [ false, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h95e149badd78a734E.llvm.4370348610037963988.exit.i.i" ], [ false, %49 ], [ false, %47 ] %.sroa.4.033 = phi ptr [ %0, %2 ], [ %34, %32 ], [ %.sink18.i.i, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h95e149badd78a734E.llvm.4370348610037963988.exit.i.i" ], [ %.sink18.i.i, %49 ], [ %.sink18.i.i, %47 ] %.sroa.16.131 = phi i64 [ 0, %2 ], [ %.sroa.16.0, %32 ], [ %46, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h95e149badd78a734E.llvm.4370348610037963988.exit.i.i" ], [ %46, %49 ], [ %46, %47 ] - %.sroa.415.029 = phi i64 [ undef, %2 ], [ undef, %32 ], [ %.sroa.16.0, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h95e149badd78a734E.llvm.4370348610037963988.exit.i.i" ], [ %.sroa.16.0, %49 ], [ %.sroa.16.0, %47 ] + %.sroa.415.029 = phi i64 [ undef, %2 ], [ %.sroa.16.0, %47 ], [ %.sroa.16.0, %49 ], [ %.sroa.16.0, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h95e149badd78a734E.llvm.4370348610037963988.exit.i.i" ], [ %.sroa.16.0, %32 ] %70 = phi i64 [ 0, %2 ], [ 0, %32 ], [ %46, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h95e149badd78a734E.llvm.4370348610037963988.exit.i.i" ], [ %46, %49 ], [ %46, %47 ] %71 = icmp eq ptr %.sroa.4.033, %3 br i1 %71, label %.loopexit, label %.lr.ph.i9 @@ -16539,10 +16538,9 @@ define hidden { i64, i64 } @_ZN4core4iter6traits8iterator8Iterator8try_fold17h14 br i1 %.not.i.i.i.i.not, label %10, label %26 26: ; preds = %10, %"_ZN4core4iter8adapters3map12map_try_fold28_$u7b$$u7b$closure$u7d$$u7d$17hcc7a2592a0f3c154E.exit" - %.sroa.3.0 = phi i64 [ undef, %"_ZN4core4iter8adapters3map12map_try_fold28_$u7b$$u7b$closure$u7d$$u7d$17hcc7a2592a0f3c154E.exit" ], [ %.0, %10 ] %.sroa.0.0 = phi i64 [ 1, %"_ZN4core4iter8adapters3map12map_try_fold28_$u7b$$u7b$closure$u7d$$u7d$17hcc7a2592a0f3c154E.exit" ], [ 0, %10 ] %27 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0, 0 - %28 = insertvalue { i64, i64 } %27, i64 %.sroa.3.0, 1 + %28 = insertvalue { i64, i64 } %27, i64 %.0, 1 ret { i64, i64 } %28 } diff --git a/bench/rust-analyzer-rs/optimized/mucn4qgqdg2891h.ll b/bench/rust-analyzer-rs/optimized/mucn4qgqdg2891h.ll index e187ac6c4bc..107a3c34a25 100644 --- a/bench/rust-analyzer-rs/optimized/mucn4qgqdg2891h.ll +++ b/bench/rust-analyzer-rs/optimized/mucn4qgqdg2891h.ll @@ -6416,7 +6416,7 @@ define internal fastcc { ptr, i64 } @"_ZN4core3str21_$LT$impl$u20$str$GT$12trim_ %.not35 = phi i1 [ true, %2 ], [ true, %32 ], [ false, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h693b534d944756a4E.exit.i.i" ], [ false, %49 ], [ false, %47 ] %.sroa.4.033 = phi ptr [ %0, %2 ], [ %34, %32 ], [ %.sink18.i.i, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h693b534d944756a4E.exit.i.i" ], [ %.sink18.i.i, %49 ], [ %.sink18.i.i, %47 ] %.sroa.16.131 = phi i64 [ 0, %2 ], [ %.sroa.16.0, %32 ], [ %46, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h693b534d944756a4E.exit.i.i" ], [ %46, %49 ], [ %46, %47 ] - %.sroa.415.029 = phi i64 [ undef, %2 ], [ undef, %32 ], [ %.sroa.16.0, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h693b534d944756a4E.exit.i.i" ], [ %.sroa.16.0, %49 ], [ %.sroa.16.0, %47 ] + %.sroa.415.029 = phi i64 [ undef, %2 ], [ %.sroa.16.0, %47 ], [ %.sroa.16.0, %49 ], [ %.sroa.16.0, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h693b534d944756a4E.exit.i.i" ], [ %.sroa.16.0, %32 ] %70 = phi i64 [ 0, %2 ], [ 0, %32 ], [ %46, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h693b534d944756a4E.exit.i.i" ], [ %46, %49 ], [ %46, %47 ] %71 = icmp eq ptr %.sroa.4.033, %3 br i1 %71, label %.loopexit, label %.lr.ph.i9 @@ -18719,10 +18719,9 @@ define hidden { i64, i32 } @_ZN9itertools9Itertools13find_position17ha32ee0fe34c _ZN4core4iter6traits8iterator8Iterator4find17hc8ba412b923a5294E.llvm.11603491536561601675.exit: ; preds = %4, %"_ZN96_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..double_ended..DoubleEndedIterator$GT$9next_back17h026cd34909196b3eE.exit.i.i.i.i.i.i", %45 %.sroa.3.0.i.i.i.i.i6.i = phi i32 [ 1114112, %"_ZN96_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..double_ended..DoubleEndedIterator$GT$9next_back17h026cd34909196b3eE.exit.i.i.i.i.i.i" ], [ 1114112, %4 ], [ %47, %45 ] - %49 = phi i64 [ undef, %"_ZN96_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..double_ended..DoubleEndedIterator$GT$9next_back17h026cd34909196b3eE.exit.i.i.i.i.i.i" ], [ undef, %4 ], [ %5, %45 ] - %50 = insertvalue { i64, i32 } poison, i64 %49, 0 - %51 = insertvalue { i64, i32 } %50, i32 %.sroa.3.0.i.i.i.i.i6.i, 1 - ret { i64, i32 } %51 + %49 = insertvalue { i64, i32 } poison, i64 %5, 0 + %50 = insertvalue { i64, i32 } %49, i32 %.sroa.3.0.i.i.i.i.i6.i, 1 + ret { i64, i32 } %50 } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: readwrite) uwtable diff --git a/bench/rustfmt-rs/optimized/4arc02n7xt9gqo2v.ll b/bench/rustfmt-rs/optimized/4arc02n7xt9gqo2v.ll index af5747bcf0c..e6d656f9c79 100644 --- a/bench/rustfmt-rs/optimized/4arc02n7xt9gqo2v.ll +++ b/bench/rustfmt-rs/optimized/4arc02n7xt9gqo2v.ll @@ -6292,7 +6292,7 @@ define hidden { ptr, i64 } @"_ZN4core3str21_$LT$impl$u20$str$GT$12trim_matches17 %.not35 = phi i1 [ true, %2 ], [ true, %32 ], [ false, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h4c51be4c4d9f3c8bE.llvm.5923418642108526555.exit.i.i" ], [ false, %49 ], [ false, %47 ] %.sroa.4.033 = phi ptr [ %0, %2 ], [ %34, %32 ], [ %.sink18.i.i, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h4c51be4c4d9f3c8bE.llvm.5923418642108526555.exit.i.i" ], [ %.sink18.i.i, %49 ], [ %.sink18.i.i, %47 ] %.sroa.16.131 = phi i64 [ 0, %2 ], [ %.sroa.16.0, %32 ], [ %46, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h4c51be4c4d9f3c8bE.llvm.5923418642108526555.exit.i.i" ], [ %46, %49 ], [ %46, %47 ] - %.sroa.415.029 = phi i64 [ undef, %2 ], [ undef, %32 ], [ %.sroa.16.0, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h4c51be4c4d9f3c8bE.llvm.5923418642108526555.exit.i.i" ], [ %.sroa.16.0, %49 ], [ %.sroa.16.0, %47 ] + %.sroa.415.029 = phi i64 [ undef, %2 ], [ %.sroa.16.0, %47 ], [ %.sroa.16.0, %49 ], [ %.sroa.16.0, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h4c51be4c4d9f3c8bE.llvm.5923418642108526555.exit.i.i" ], [ %.sroa.16.0, %32 ] %70 = phi i64 [ 0, %2 ], [ 0, %32 ], [ %46, %"_ZN53_$LT$F$u20$as$u20$core..str..pattern..MultiCharEq$GT$7matches17h4c51be4c4d9f3c8bE.llvm.5923418642108526555.exit.i.i" ], [ %46, %49 ], [ %46, %47 ] %71 = icmp eq ptr %.sroa.4.033, %3 br i1 %71, label %.loopexit, label %.lr.ph.i9 @@ -7267,12 +7267,11 @@ define internal fastcc { i64, i64 } @"_ZN4core3str21_$LT$impl$u20$str$GT$4find17 %.not6.i.not.i = icmp eq i32 %.sroa.4.0.i.ph10.i10.i.i, 32 br i1 %.not6.i.not.i, label %4, label %"_ZN99_$LT$core..str..pattern..CharPredicateSearcher$LT$F$GT$$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h47e02bff807e2236E.exit" -"_ZN99_$LT$core..str..pattern..CharPredicateSearcher$LT$F$GT$$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h47e02bff807e2236E.exit": ; preds = %35, %4, %"_ZN97_$LT$core..str..pattern..MultiCharEqSearcher$LT$C$GT$$u20$as$u20$core..str..pattern..Searcher$GT$4next17h48e2f16837d270d1E.exit.i" - %not.switch = phi i64 [ 1, %"_ZN97_$LT$core..str..pattern..MultiCharEqSearcher$LT$C$GT$$u20$as$u20$core..str..pattern..Searcher$GT$4next17h48e2f16837d270d1E.exit.i" ], [ 0, %4 ], [ 0, %35 ] - %50 = phi i64 [ %5, %"_ZN97_$LT$core..str..pattern..MultiCharEqSearcher$LT$C$GT$$u20$as$u20$core..str..pattern..Searcher$GT$4next17h48e2f16837d270d1E.exit.i" ], [ undef, %4 ], [ undef, %35 ] - %51 = insertvalue { i64, i64 } poison, i64 %not.switch, 0 - %52 = insertvalue { i64, i64 } %51, i64 %50, 1 - ret { i64, i64 } %52 +"_ZN99_$LT$core..str..pattern..CharPredicateSearcher$LT$F$GT$$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h47e02bff807e2236E.exit": ; preds = %4, %35, %"_ZN97_$LT$core..str..pattern..MultiCharEqSearcher$LT$C$GT$$u20$as$u20$core..str..pattern..Searcher$GT$4next17h48e2f16837d270d1E.exit.i" + %not.switch = phi i64 [ 1, %"_ZN97_$LT$core..str..pattern..MultiCharEqSearcher$LT$C$GT$$u20$as$u20$core..str..pattern..Searcher$GT$4next17h48e2f16837d270d1E.exit.i" ], [ 0, %35 ], [ 0, %4 ] + %50 = insertvalue { i64, i64 } poison, i64 %not.switch, 0 + %51 = insertvalue { i64, i64 } %50, i64 %5, 1 + ret { i64, i64 } %51 } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(read, argmem: none, inaccessiblemem: none) uwtable diff --git a/bench/spike/optimized/disasm.ll b/bench/spike/optimized/disasm.ll index 6ad413228cc..e0e48b0c976 100644 --- a/bench/spike/optimized/disasm.ll +++ b/bench/spike/optimized/disasm.ll @@ -15148,11 +15148,10 @@ _ZNSt6vectorIPK5arg_tSaIS2_EED2Ev.exit2515: ; preds = %4248 .preheader: ; preds = %.preheader3574, %.split3617.us %.012253620 = phi i32 [ 0, %.preheader3574 ], [ %4285, %.split3617.us ] %4265 = or i32 %.012253620, %.012263621 - %.fr = freeze i32 %4265 - %.not3624 = icmp eq i32 %.fr, 0 - %4266 = shl nuw nsw i32 %.012253620, 15 - %invariant.op3606.reass = add nuw nsw i32 %4266, %invariant.op3619 - br i1 %.not3624, label %.preheader.split, label %.preheader.split.us + %.not3623 = icmp eq i32 %4265, 0 + %4266 = shl nuw nsw i32 %.012253619, 15 + %invariant.op3606.reass = add nuw nsw i32 %4266, %invariant.op3618 + br i1 %.not3623, label %.preheader.split, label %.preheader.split.us .preheader.split.us: ; preds = %.preheader, %_ZNSt6vectorIPK5arg_tSaIS2_EED2Ev.exit2519.us %.012243605.us = phi i32 [ %4280, %_ZNSt6vectorIPK5arg_tSaIS2_EED2Ev.exit2519.us ], [ 0, %.preheader ] diff --git a/bench/sqlite/optimized/sqlite3.ll b/bench/sqlite/optimized/sqlite3.ll index 855e115c7b0..e14ac9b56e7 100644 --- a/bench/sqlite/optimized/sqlite3.ll +++ b/bench/sqlite/optimized/sqlite3.ll @@ -173431,7 +173431,7 @@ sqlite3AuthCheck.exit.thread: ; preds = %391, %401, %404, %s br i1 %420, label %213, label %._crit_edge189, !llvm.loop !2462 ._crit_edge189: ; preds = %sqlite3AuthCheck.exit.thread - %421 = add i8 %.277032, %.277331 + %421 = add nuw nsw i8 %.277032, %.277331 %422 = load i32, ptr %125, align 8, !tbaa !621 %423 = and i32 %422, 96 %.not802 = icmp eq i32 %423, 0 @@ -310594,9 +310594,9 @@ sqlite3_malloc64.exit293: ; preds = %.thread br label %.loopexit .loopexit: ; preds = %.thread344, %132, %._crit_edge517 - %.2245 = phi ptr [ %187, %._crit_edge517 ], [ %33, %132 ], [ %33, %.thread344 ] - %.4218 = phi ptr [ %0, %._crit_edge517 ], [ %0, %132 ], [ %.2216, %.thread344 ] - %.8213 = phi i32 [ %191, %._crit_edge517 ], [ %24, %132 ], [ %.2207, %.thread344 ] + %.2245 = phi ptr [ %187, %._crit_edge512 ], [ %33, %132 ], [ %33, %.thread344 ] + %.4218 = phi ptr [ %0, %._crit_edge512 ], [ %0, %132 ], [ %.2216, %.thread344 ] + %.8213 = phi i32 [ %191, %._crit_edge512 ], [ %24, %132 ], [ %.2207, %.thread344 ] %192 = tail call i32 @sqlite3_initialize() %.not.i294 = icmp eq i32 %192, 0 br i1 %.not.i294, label %193, label %sqlite3_vfs_find.exit.thread @@ -346319,8 +346319,7 @@ jsonAppendChar.exit: ; preds = %96, %95, %88, %101 .thread: ; preds = %123, %110 %.0194284 = phi i64 [ %.0194307, %110 ], [ %.1195, %123 ] %.0190282 = phi i32 [ %.0190308, %110 ], [ %.1191, %123 ] - %.0190282.fr = freeze i32 %.0190282 - %.not221 = icmp eq i32 %.0190282.fr, 0 + %.not221 = icmp eq i32 %.0190282, 0 %spec.select352 = select i1 %.not221, ptr @.str.1133, ptr @.str.1361 br label %.thread.thread diff --git a/bench/stb/optimized/stb_vorbis.ll b/bench/stb/optimized/stb_vorbis.ll index 7b8411caffc..affc2c13cbf 100644 --- a/bench/stb/optimized/stb_vorbis.ll +++ b/bench/stb/optimized/stb_vorbis.ll @@ -17961,20 +17961,19 @@ define void @compute_samples(i32 noundef %0, ptr noundef writeonly captures(none .lr.ph42.us: ; preds = %.lr.ph42.us.preheader, %._crit_edge.us %indvars.iv73 = phi i64 [ 0, %.lr.ph42.us.preheader ], [ %indvars.iv.next74, %._crit_edge.us ] - %.03345.us = phi i32 [ 32, %.lr.ph42.us.preheader ], [ %spec.select.us.fr, %._crit_edge.us ] + %.03345.us = phi i32 [ 32, %.lr.ph42.us.preheader ], [ %spec.select.us, %._crit_edge.us ] %indvars75 = trunc i64 %indvars.iv73 to i32 call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(128) %7, i8 0, i64 128, i1 false) - %13 = add nsw i32 %.03345.us, %indvars75 + %13 = add i32 %.03345.us, %indvars75 %14 = icmp sgt i32 %13, %5 %15 = trunc i64 %indvars.iv73 to i32 %16 = sub i32 %5, %15 %spec.select.us = select i1 %14, i32 %16, i32 %.03345.us - %spec.select.us.fr = freeze i32 %spec.select.us - %17 = icmp sgt i32 %spec.select.us.fr, 0 + %17 = icmp sgt i32 %spec.select.us, 0 br i1 %17, label %.lr.ph42.split.us.us.preheader, label %._crit_edge.us .lr.ph42.split.us.us.preheader: ; preds = %.lr.ph42.us - %wide.trip.count = zext nneg i32 %spec.select.us.fr to i64 + %wide.trip.count = zext nneg i32 %spec.select.us to i64 br label %.lr.ph42.split.us.us ._crit_edge.us: ; preds = %.lr.ph.us, %.lr.ph42.us @@ -17998,7 +17997,7 @@ define void @compute_samples(i32 noundef %0, ptr noundef writeonly captures(none br i1 %exitcond72.not, label %._crit_edge.us, label %.lr.ph.us, !llvm.loop !334 .lr.ph.us.preheader: ; preds = %..loopexit_crit_edge.us.us - %wide.trip.count71 = zext nneg i32 %spec.select.us.fr to i64 + %wide.trip.count71 = zext nneg i32 %spec.select.us to i64 %invariant.gep77 = getelementptr inbounds nuw i16, ptr %1, i64 %indvars.iv73 br label %.lr.ph.us @@ -18361,19 +18360,18 @@ define void @convert_samples_short(i32 noundef %0, ptr noundef readonly captures .lr.ph42.us.i.us: ; preds = %.lr.ph47.i.us, %._crit_edge.us.i.us %indvars.iv73.i.us = phi i64 [ %indvars.iv.next74.i.us, %._crit_edge.us.i.us ], [ 0, %.lr.ph47.i.us ] - %.03345.us.i.us = phi i32 [ %spec.select.us.fr.i.us, %._crit_edge.us.i.us ], [ 32, %.lr.ph47.i.us ] + %.03345.us.i.us = phi i32 [ %spec.select.us.i.us, %._crit_edge.us.i.us ], [ 32, %.lr.ph47.i.us ] %indvars75.i.us = trunc i64 %indvars.iv73.i.us to i32 call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(128) %8, i8 0, i64 128, i1 false) - %39 = add nsw i32 %.03345.us.i.us, %indvars75.i.us + %39 = add i32 %.03345.us.i.us, %indvars75.i.us %40 = icmp sgt i32 %39, %6 %41 = sub i32 %6, %indvars75.i.us %spec.select.us.i.us = select i1 %40, i32 %41, i32 %.03345.us.i.us - %spec.select.us.fr.i.us = freeze i32 %spec.select.us.i.us - %42 = icmp sgt i32 %spec.select.us.fr.i.us, 0 + %42 = icmp sgt i32 %spec.select.us.i.us, 0 br i1 %42, label %.lr.ph42.split.us.us.preheader.i.us, label %._crit_edge.us.i.us .lr.ph42.split.us.us.preheader.i.us: ; preds = %.lr.ph42.us.i.us - %wide.trip.count.i.us = zext nneg i32 %spec.select.us.fr.i.us to i64 + %wide.trip.count.i.us = zext nneg i32 %spec.select.us.i.us to i64 br label %.lr.ph42.split.us.us.i.us .lr.ph42.split.us.us.i.us: ; preds = %..loopexit_crit_edge.us.us.i.us, %.lr.ph42.split.us.us.preheader.i.us diff --git a/bench/sundials/optimized/idaHeat2D_kry.ll b/bench/sundials/optimized/idaHeat2D_kry.ll index 60b1b76b796..7110f78ef31 100644 --- a/bench/sundials/optimized/idaHeat2D_kry.ll +++ b/bench/sundials/optimized/idaHeat2D_kry.ll @@ -417,10 +417,11 @@ declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #3 ; Function Attrs: nounwind uwtable define internal fastcc void @SetInitialProfile(ptr noundef readonly captures(none) %0, ptr noundef %1, ptr noundef %2, ptr noundef %3) unnamed_addr #0 { %5 = load i64, ptr %0, align 8, !tbaa !16 + %.fr72 = freeze i64 %5 %6 = tail call ptr @N_VGetArrayPointer(ptr noundef %1) #10 %7 = tail call ptr @N_VGetArrayPointer(ptr noundef %2) #10 - %8 = add nsw i64 %5, -1 - %9 = icmp sgt i64 %5, 0 + %8 = add i64 %.fr72, -1 + %9 = icmp sgt i64 %.fr72, 0 br i1 %9, label %.lr.ph58, label %._crit_edge59 .lr.ph58: ; preds = %4 @@ -432,7 +433,7 @@ define internal fastcc void @SetInitialProfile(ptr noundef readonly captures(non %11 = load double, ptr %10, align 8, !tbaa !17 %12 = uitofp nneg i64 %.04956.us to double %13 = fmul double %11, %12 - %14 = mul nuw nsw i64 %.04956.us, %5 + %14 = mul nuw nsw i64 %.04956.us, %.fr72 %15 = fsub double 1.000000e+00, %13 %16 = getelementptr double, ptr %6, i64 %14 br label %17 @@ -450,12 +451,12 @@ define internal fastcc void @SetInitialProfile(ptr noundef readonly captures(non %26 = getelementptr double, ptr %16, i64 %.055.us store double %25, ptr %26, align 8, !tbaa !20 %27 = add nuw nsw i64 %.055.us, 1 - %exitcond.not = icmp eq i64 %27, %5 + %exitcond.not = icmp eq i64 %27, %.fr72 br i1 %exitcond.not, label %._crit_edge.us, label %17 ._crit_edge.us: ; preds = %17 %28 = add nuw nsw i64 %.04956.us, 1 - %exitcond74.not = icmp eq i64 %28, %5 + %exitcond74.not = icmp eq i64 %28, %.fr72 br i1 %exitcond74.not, label %._crit_edge59, label %.lr.ph.us, !llvm.loop !22 ._crit_edge59: ; preds = %._crit_edge.us, %4 @@ -518,47 +519,44 @@ resHeat.exit: ; preds = %._crit_edge.us.i, % br i1 %9, label %.lr.ph.us66.preheader, label %._crit_edge64 .lr.ph.us66.preheader: ; preds = %resHeat.exit - %63 = shl i64 %5, 3 + %63 = shl i64 %.fr72, 3 br label %.lr.ph.us66 .lr.ph.us66: ; preds = %.lr.ph.us66.preheader, %._crit_edge.us69 %.15062.us = phi i64 [ %75, %._crit_edge.us69 ], [ 0, %.lr.ph.us66.preheader ] - %64 = mul i64 %63, %.15062.us - %scevgep76 = getelementptr i8, ptr %7, i64 %64 - %65 = mul nuw nsw i64 %.15062.us, %5 - %66 = icmp eq i64 %.15062.us, 0 - %67 = getelementptr double, ptr %7, i64 %65 - br i1 %66, label %._crit_edge.us69.sink.split, label %.lr.ph.split.us68 - -.lr.ph.split.split.us70: ; preds = %.lr.ph.split.us68, %72 - %.160.us65 = phi i64 [ %73, %72 ], [ 0, %.lr.ph.split.us68 ] + %64 = mul nuw nsw i64 %.15062.us, %.fr72 + %65 = icmp eq i64 %.15062.us, 0 + %66 = getelementptr double, ptr %7, i64 %64 + %66 = icmp eq i64 %.15062.us, %8 + %or.cond = or i1 %65, %67 + br i1 %or.cond, label %._crit_edge.us69.sink.split, label %.lr.ph.split.split.us70 + +.lr.ph.split.split.us70: ; preds = %.lr.ph.us66, %72 + %.160.us65 = phi i64 [ %73, %72 ], [ 0, %.lr.ph.us66 ] %68 = icmp eq i64 %.160.us65, 0 %69 = icmp eq i64 %.160.us65, %8 %or.cond54.us = or i1 %69, %68 br i1 %or.cond54.us, label %70, label %72 70: ; preds = %.lr.ph.split.split.us70 - %71 = getelementptr double, ptr %67, i64 %.160.us65 + %71 = getelementptr double, ptr %66, i64 %.160.us65 store double 0.000000e+00, ptr %71, align 8, !tbaa !20 br label %72 72: ; preds = %70, %.lr.ph.split.split.us70 %73 = add nuw nsw i64 %.160.us65, 1 - %exitcond75.not = icmp eq i64 %73, %5 + %exitcond75.not = icmp eq i64 %73, %.fr72 br i1 %exitcond75.not, label %._crit_edge.us69, label %.lr.ph.split.split.us70 .lr.ph.split.us68: ; preds = %.lr.ph.us66 - %74 = icmp eq i64 %.15062.us, %8 - %.fr.us = freeze i1 %74 - br i1 %.fr.us, label %._crit_edge.us69.sink.split, label %.lr.ph.split.split.us70 - -._crit_edge.us69.sink.split: ; preds = %.lr.ph.split.us68, %.lr.ph.us66 - tail call void @llvm.memset.p0.i64(ptr align 8 %scevgep76, i8 0, i64 %63, i1 false), !tbaa !20 + %74 = mul i64 %63, %.15062.us + %scevgep77 = getelementptr i8, ptr %7, i64 %74 + tail call void @llvm.memset.p0.i64(ptr align 8 %scevgep77, i8 0, i64 %63, i1 false), !tbaa !20 br label %._crit_edge.us69 ._crit_edge.us69: ; preds = %72, %._crit_edge.us69.sink.split %75 = add nuw nsw i64 %.15062.us, 1 - %exitcond77.not = icmp eq i64 %75, %5 + %exitcond77.not = icmp eq i64 %75, %.fr72 br i1 %exitcond77.not, label %._crit_edge64, label %.lr.ph.us66, !llvm.loop !25 ._crit_edge64: ; preds = %._crit_edge.us69, %resHeat.exit diff --git a/bench/tokenizers-rs/optimized/58hth72z9dib25am.ll b/bench/tokenizers-rs/optimized/58hth72z9dib25am.ll index b3b5d03082f..415453d61fb 100644 --- a/bench/tokenizers-rs/optimized/58hth72z9dib25am.ll +++ b/bench/tokenizers-rs/optimized/58hth72z9dib25am.ll @@ -28593,8 +28593,8 @@ define hidden void @_ZN10tokenizers14pre_tokenizers10byte_level10bytes_char17h67 br label %14 14: ; preds = %"_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17hd68dca515b515a87E.exit.preheader", %"_ZN54_$LT$u8$u20$as$u20$core..slice..cmp..SliceContains$GT$14slice_contains17h20fd811889d1141cE.exit.thread66" - %.02173 = phi i32 [ 0, %"_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17hd68dca515b515a87E.exit.preheader" ], [ %.122, %"_ZN54_$LT$u8$u20$as$u20$core..slice..cmp..SliceContains$GT$14slice_contains17h20fd811889d1141cE.exit.thread66" ] - %.sroa.5.072 = phi i8 [ 0, %"_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17hd68dca515b515a87E.exit.preheader" ], [ %16, %"_ZN54_$LT$u8$u20$as$u20$core..slice..cmp..SliceContains$GT$14slice_contains17h20fd811889d1141cE.exit.thread66" ] + %.02173 = phi i32 [ 0, %"_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17hd68dca515b515a87E.exit.preheader" ], [ %.122, %"_ZN54_$LT$u8$u20$as$u20$core..slice..cmp..SliceContains$GT$14slice_contains17h20fd811889d1141cE.exit.thread64" ] + %.sroa.5.072 = phi i8 [ 0, %"_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17hd68dca515b515a87E.exit.preheader" ], [ %16, %"_ZN54_$LT$u8$u20$as$u20$core..slice..cmp..SliceContains$GT$14slice_contains17h20fd811889d1141cE.exit.thread64" ] %15 = icmp eq i8 %.sroa.5.072, -1 %16 = add nuw i8 %.sroa.5.072, 1 %17 = load ptr, ptr %5, align 8, !alias.scope !7278, !nonnull !4, !noundef !4 @@ -28719,7 +28719,7 @@ define hidden void @_ZN10tokenizers14pre_tokenizers10byte_level10bytes_char17h67 %lpad.thr_comm = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr47drop_in_place$LT$alloc..vec..Vec$LT$u32$GT$$GT$17h923e6f1c50177e35E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %3) #39 - to label %.thread68 unwind label %56 + to label %.thread66 unwind label %56 56: ; preds = %.thread68, %55 %57 = landingpad { ptr, i32 } @@ -29282,8 +29282,8 @@ define void @"_ZN106_$LT$tokenizers..pre_tokenizers..byte_level..ByteLevel$u20$a ret void .lr.ph48: ; preds = %.loopexit44, %_ZN10tokenizers9tokenizer8encoding8Encoding15set_sequence_id17hb7c26fd98fbbf98aE.exit - %.sroa.7.047 = phi i64 [ %64, %_ZN10tokenizers9tokenizer8encoding8Encoding15set_sequence_id17hb7c26fd98fbbf98aE.exit ], [ 0, %.loopexit44 ] - %.sroa.033.046 = phi ptr [ %65, %_ZN10tokenizers9tokenizer8encoding8Encoding15set_sequence_id17hb7c26fd98fbbf98aE.exit ], [ %.val22, %.loopexit44 ] + %.sroa.7.047 = phi i64 [ %64, %_ZN10tokenizers9tokenizer8encoding8Encoding15set_sequence_id17hb7c26fd98fbbf98aE.exit ], [ 0, %.loopexit43 ] + %.sroa.033.046 = phi ptr [ %65, %_ZN10tokenizers9tokenizer8encoding8Encoding15set_sequence_id17hb7c26fd98fbbf98aE.exit ], [ %.val22, %.loopexit43 ] call void @llvm.experimental.noalias.scope.decl(metadata !7413) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %11), !noalias !7413 %61 = getelementptr inbounds nuw i8, ptr %.sroa.033.046, i64 16 @@ -34799,15 +34799,14 @@ define hidden void @"_ZN179_$LT$tokenizers..pre_tokenizers..punctuation.._..$LT$ .loopexit57: ; preds = %70, %"_ZN4core3ptr136drop_in_place$LT$core..option..Option$LT$$LP$serde..__private..de..content..Content$C$serde..__private..de..content..Content$RP$$GT$$GT$17h5167ac6b64a365aeE.exit.i.i" %.075 = phi i8 [ %.076, %"_ZN4core3ptr136drop_in_place$LT$core..option..Option$LT$$LP$serde..__private..de..content..Content$C$serde..__private..de..content..Content$RP$$GT$$GT$17h5167ac6b64a365aeE.exit.i.i" ], [ %.1, %70 ] - %.075.fr = freeze i8 %.075 - %46 = icmp eq i8 %.075.fr, 5 + %46 = icmp eq i8 %.075, 5 br i1 %46, label %.loopexit57.thread, label %47 .loopexit57.thread: ; preds = %2, %.loopexit57 br label %47 47: ; preds = %.loopexit57, %.loopexit57.thread - %48 = phi i8 [ 1, %.loopexit57.thread ], [ %.075.fr, %.loopexit57 ] + %48 = phi i8 [ 1, %.loopexit57.thread ], [ %.075, %.loopexit57 ] %49 = getelementptr inbounds nuw i8, ptr %0, i64 1 store i8 %48, ptr %49, align 1 store i8 0, ptr %0, align 8 diff --git a/bench/uv-rs/optimized/2k54dkzlj25rhgifzsgtp51ql.ll b/bench/uv-rs/optimized/2k54dkzlj25rhgifzsgtp51ql.ll index 229667dd12c..31631ba9ec1 100644 --- a/bench/uv-rs/optimized/2k54dkzlj25rhgifzsgtp51ql.ll +++ b/bench/uv-rs/optimized/2k54dkzlj25rhgifzsgtp51ql.ll @@ -2459,7 +2459,7 @@ define internal fastcc void @"_ZN194_$LT$uv_build_backend..settings.._..$LT$impl 48: ; preds = %.loopexit, %.loopexit.split-lp, %221, %162, %148, %134, %110, %84 %.sroa.17.0447 = phi i64 [ %.sroa.17.0.lcssa, %221 ], [ %.sroa.17.0475, %84 ], [ %.sroa.17.0475, %110 ], [ %.sroa.17.0475, %134 ], [ %.sroa.17.0475, %148 ], [ %.sroa.17.0475, %162 ], [ %.sroa.17.0475, %.loopexit ], [ %.sroa.17.0449, %.loopexit.split-lp ] %.sroa.11293.0416 = phi ptr [ %.sroa.11293.0.lcssa, %221 ], [ %.sroa.11293.0477, %84 ], [ %.sroa.11293.0477, %110 ], [ %.sroa.11293.0477, %134 ], [ %.sroa.11293.0477, %148 ], [ %.sroa.11293.0477, %162 ], [ %.sroa.11293.0477, %.loopexit ], [ %.sroa.11293.0418, %.loopexit.split-lp ] - %.sroa.0.0385 = phi i64 [ %.sroa.0.0.lcssa, %221 ], [ %.sroa.0.0479, %84 ], [ %.sroa.0.0479, %110 ], [ %.sroa.0.0479, %134 ], [ %.sroa.0.0479, %148 ], [ %.sroa.0.0479, %162 ], [ %.sroa.0.0479.lcssa, %.loopexit ], [ %.sroa.0.0387, %.loopexit.split-lp ] + %.sroa.0.0385 = phi i64 [ %.sroa.0.0.lcssa, %221 ], [ %.sroa.0.0479, %84 ], [ %.sroa.0.0479, %110 ], [ %.sroa.0.0479, %134 ], [ %.sroa.0.0479, %148 ], [ %.sroa.0.0479, %162 ], [ %.sroa.0.0479, %.loopexit ], [ %.sroa.0.0387, %.loopexit.split-lp ] %.sroa.0126.2 = phi i1 [ true, %221 ], [ true, %84 ], [ true, %110 ], [ true, %134 ], [ true, %148 ], [ true, %162 ], [ true, %.loopexit ], [ %.sroa.0126.1.ph, %.loopexit.split-lp ] %.sroa.0127.2 = phi i1 [ %.not230, %221 ], [ true, %84 ], [ true, %110 ], [ true, %134 ], [ true, %148 ], [ true, %162 ], [ true, %.loopexit ], [ %.sroa.0127.1.ph, %.loopexit.split-lp ] %.sroa.0128.2 = phi i1 [ %.not227, %221 ], [ true, %84 ], [ true, %110 ], [ true, %134 ], [ true, %148 ], [ true, %162 ], [ true, %.loopexit ], [ %.sroa.0128.1.ph, %.loopexit.split-lp ] @@ -2473,7 +2473,6 @@ define internal fastcc void @"_ZN194_$LT$uv_build_backend..settings.._..$LT$impl br i1 %or.cond, label %284, label %.thread593 .loopexit: ; preds = %44, %66, %68, %88, %99, %113, %123, %137, %151 - %.sroa.0.0479.lcssa = phi i64 [ %.sroa.0.0479, %44 ], [ %.sroa.0.0479, %66 ], [ %.sroa.0.0479, %68 ], [ 0, %88 ], [ %.sroa.0.0479, %99 ], [ %.sroa.0.0479, %113 ], [ %.sroa.0.0479, %123 ], [ %.sroa.0.0479, %137 ], [ %.sroa.0.0479, %151 ] %lpad.loopexit = landingpad { ptr, i32 } cleanup br label %48 @@ -2963,7 +2962,6 @@ _ZN5serde2de9MapAccess10next_value17h61f748e33929a7e7E.exit: ; preds = %66 br label %169 169: ; preds = %69, %82, %89, %95, %100, %108, %114, %120, %124, %132, %138, %146, %152, %160, %167, %52 - %.sroa.0.0479568 = phi i64 [ %.sroa.0.0479, %69 ], [ %.sroa.0.0479, %82 ], [ %.sroa.0.0479, %89 ], [ 0, %95 ], [ %.sroa.0.0479, %100 ], [ %.sroa.0.0479, %108 ], [ %.sroa.0.0479, %114 ], [ %.sroa.0.0479, %120 ], [ %.sroa.0.0479, %124 ], [ %.sroa.0.0479, %132 ], [ %.sroa.0.0479, %138 ], [ %.sroa.0.0479, %146 ], [ %.sroa.0.0479, %152 ], [ %.sroa.0.0479, %160 ], [ %.sroa.0.0479, %167 ], [ %.sroa.0.0479, %52 ] %170 = load i64, ptr %28, align 8, !range !20, !alias.scope !391, !noundef !9 %171 = icmp eq i64 %170, -9223372036854775807 br i1 %171, label %"_ZN4core3ptr94drop_in_place$LT$core..option..Option$LT$uv_build_backend..settings..WheelDataIncludes$GT$$GT$17hd12fb37f0e7c5728E.exit267", label %172 @@ -3188,7 +3186,7 @@ _ZN5serde2de9MapAccess10next_value17h61f748e33929a7e7E.exit: ; preds = %66 .thread593: ; preds = %238, %284, %242, %48 %.sroa.17.0446 = phi i64 [ %.sroa.17.0447, %284 ], [ %.sroa.17.0447, %48 ], [ %.sroa.17.0475, %242 ], [ %.sroa.17.0.lcssa, %238 ] %.sroa.11293.0415 = phi ptr [ %.sroa.11293.0416, %284 ], [ %.sroa.11293.0416, %48 ], [ %.sroa.11293.0477, %242 ], [ %.sroa.11293.0.lcssa, %238 ] - %.sroa.0.0384 = phi i64 [ %.sroa.0.0385, %284 ], [ %.sroa.0.0385, %48 ], [ %.sroa.0.0479568, %242 ], [ %.sroa.0.0.lcssa, %238 ] + %.sroa.0.0384 = phi i64 [ %.sroa.0.0385, %284 ], [ %.sroa.0.0385, %48 ], [ %.sroa.0.0479, %242 ], [ %.sroa.0.0.lcssa, %238 ] %.sroa.0127.3 = phi i1 [ %.sroa.0127.2, %284 ], [ %.sroa.0127.2, %48 ], [ true, %242 ], [ %.not230, %238 ] %.sroa.0128.3 = phi i1 [ %.sroa.0128.2, %284 ], [ %.sroa.0128.2, %48 ], [ true, %242 ], [ %.not227, %238 ] %.sroa.0129.3 = phi i1 [ %.sroa.0129.2, %284 ], [ %.sroa.0129.2, %48 ], [ true, %242 ], [ %.not224, %238 ] @@ -3218,7 +3216,7 @@ _ZN5serde2de9MapAccess10next_value17h61f748e33929a7e7E.exit: ; preds = %66 247: ; preds = %285, %250, %.thread593 %.sroa.17.0445 = phi i64 [ %.sroa.17.0446, %285 ], [ %.sroa.17.0446, %.thread593 ], [ %.sroa.17.0475, %250 ] %.sroa.11293.0414 = phi ptr [ %.sroa.11293.0415, %285 ], [ %.sroa.11293.0415, %.thread593 ], [ %.sroa.11293.0477, %250 ] - %.sroa.0.0383 = phi i64 [ %.sroa.0.0384, %285 ], [ %.sroa.0.0384, %.thread593 ], [ %.sroa.0.0479568, %250 ] + %.sroa.0.0383 = phi i64 [ %.sroa.0.0384, %285 ], [ %.sroa.0.0384, %.thread593 ], [ %.sroa.0.0479, %250 ] %.sroa.0128.6 = phi i1 [ %.sroa.0128.3, %285 ], [ %.sroa.0128.3, %.thread593 ], [ true, %250 ] %.sroa.0129.6 = phi i1 [ %.sroa.0129.3, %285 ], [ %.sroa.0129.3, %.thread593 ], [ true, %250 ] %.sroa.0130.6 = phi i1 [ %.sroa.0130.3, %285 ], [ %.sroa.0130.3, %.thread593 ], [ true, %250 ] @@ -3247,7 +3245,7 @@ _ZN5serde2de9MapAccess10next_value17h61f748e33929a7e7E.exit: ; preds = %66 255: ; preds = %286, %258, %247 %.sroa.17.0444 = phi i64 [ %.sroa.17.0445, %286 ], [ %.sroa.17.0445, %247 ], [ %.sroa.17.0475, %258 ] %.sroa.11293.0413 = phi ptr [ %.sroa.11293.0414, %286 ], [ %.sroa.11293.0414, %247 ], [ %.sroa.11293.0477, %258 ] - %.sroa.0.0382 = phi i64 [ %.sroa.0.0383, %286 ], [ %.sroa.0.0383, %247 ], [ %.sroa.0.0479568, %258 ] + %.sroa.0.0382 = phi i64 [ %.sroa.0.0383, %286 ], [ %.sroa.0.0383, %247 ], [ %.sroa.0.0479, %258 ] %.sroa.0129.7 = phi i1 [ %.sroa.0129.6, %286 ], [ %.sroa.0129.6, %247 ], [ true, %258 ] %.sroa.0130.7 = phi i1 [ %.sroa.0130.6, %286 ], [ %.sroa.0130.6, %247 ], [ true, %258 ] %.sroa.0131.7 = phi i1 [ %.sroa.0131.6, %286 ], [ %.sroa.0131.6, %247 ], [ true, %258 ] @@ -3275,7 +3273,7 @@ _ZN5serde2de9MapAccess10next_value17h61f748e33929a7e7E.exit: ; preds = %66 263: ; preds = %287, %265, %255 %.sroa.17.0443 = phi i64 [ %.sroa.17.0444, %287 ], [ %.sroa.17.0444, %255 ], [ %.sroa.17.0475, %265 ] %.sroa.11293.0412 = phi ptr [ %.sroa.11293.0413, %287 ], [ %.sroa.11293.0413, %255 ], [ %.sroa.11293.0477, %265 ] - %.sroa.0.0381 = phi i64 [ %.sroa.0.0382, %287 ], [ %.sroa.0.0382, %255 ], [ %.sroa.0.0479568, %265 ] + %.sroa.0.0381 = phi i64 [ %.sroa.0.0382, %287 ], [ %.sroa.0.0382, %255 ], [ %.sroa.0.0479, %265 ] %.sroa.0130.8 = phi i1 [ %.sroa.0130.7, %287 ], [ %.sroa.0130.7, %255 ], [ true, %265 ] %.sroa.0131.8 = phi i1 [ %.sroa.0131.7, %287 ], [ %.sroa.0131.7, %255 ], [ true, %265 ] %.pn234.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn234.pn.pn.pn, %287 ], [ %.pn234.pn.pn.pn, %255 ], [ %266, %265 ] @@ -3290,7 +3288,7 @@ _ZN5serde2de9MapAccess10next_value17h61f748e33929a7e7E.exit: ; preds = %66 "_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$17h2d254dd6a19815a1E.exit278": ; preds = %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$17h2d254dd6a19815a1E.exit276", %262 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) - %267 = icmp eq i64 %.sroa.0.0479568, 0 + %267 = icmp eq i64 %.sroa.0.0479, 0 br i1 %267, label %"_ZN4core3ptr114drop_in_place$LT$core..option..Option$LT$core..option..Option$LT$uv_pypi_types..identifier..Identifier$GT$$GT$$GT$17h54c447cb95268c83E.exit283", label %268 268: ; preds = %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$17h2d254dd6a19815a1E.exit278" @@ -41548,7 +41546,6 @@ define hidden void @"_ZN83_$LT$toml_edit..de..value..ValueDeserializer$u20$as$u2 to label %_ZN5serde2de9MapAccess8next_key17ha2ddf24237e90c27E.exit.i unwind label %.loopexit.i, !noalias !6899 106: ; preds = %279, %223, %209, %195, %171, %146, %.loopexit.split-lp.i, %.loopexit.i - %.sroa.0.0529.i = phi i64 [ %.sroa.0.0.i14, %279 ], [ %.sroa.0.0.i14, %146 ], [ %.sroa.0.0.i14, %171 ], [ %.sroa.0.0.i14, %195 ], [ %.sroa.0.0.i14, %209 ], [ %.sroa.0.0.i14, %223 ], [ %.sroa.0.0.lcssa.i, %.loopexit.i ], [ %.sroa.0.0.i14, %.loopexit.split-lp.i ] %.sroa.0126.2.i = phi i1 [ true, %279 ], [ true, %146 ], [ true, %171 ], [ true, %195 ], [ true, %209 ], [ true, %223 ], [ true, %.loopexit.i ], [ %.sroa.0126.1.ph.i, %.loopexit.split-lp.i ] %.sroa.0127.2.i = phi i1 [ %.not230.i, %279 ], [ true, %146 ], [ true, %171 ], [ true, %195 ], [ true, %209 ], [ true, %223 ], [ true, %.loopexit.i ], [ %.sroa.0127.1.ph.i, %.loopexit.split-lp.i ] %.sroa.0128.2.i = phi i1 [ %.not227.i, %279 ], [ true, %146 ], [ true, %171 ], [ true, %195 ], [ true, %209 ], [ true, %223 ], [ true, %.loopexit.i ], [ %.sroa.0128.1.ph.i, %.loopexit.split-lp.i ] @@ -41562,7 +41559,6 @@ define hidden void @"_ZN83_$LT$toml_edit..de..value..ValueDeserializer$u20$as$u2 br i1 %or.cond.i, label %346, label %.thread.i .loopexit.i: ; preds = %212, %198, %184, %174, %160, %149, %130, %128, %105 - %.sroa.0.0.lcssa.i = phi i64 [ %.sroa.0.0.i14, %105 ], [ %.sroa.0.0.i14, %128 ], [ %.sroa.0.0.i14, %130 ], [ 0, %149 ], [ %.sroa.0.0.i14, %160 ], [ %.sroa.0.0.i14, %174 ], [ %.sroa.0.0.i14, %184 ], [ %.sroa.0.0.i14, %198 ], [ %.sroa.0.0.i14, %212 ] %lpad.loopexit.i = landingpad { ptr, i32 } cleanup br label %106 @@ -42059,7 +42055,6 @@ _ZN5serde2de9MapAccess10next_value17hed96194b90051571E.exit.i: ; preds = %128 br label %230 230: ; preds = %228, %221, %213, %207, %199, %193, %185, %181, %175, %169, %161, %156, %150, %144, %131, %113 - %.sroa.0.0528.i = phi i64 [ %.sroa.0.0.i14, %131 ], [ %.sroa.0.0.i14, %144 ], [ %.sroa.0.0.i14, %150 ], [ 0, %156 ], [ %.sroa.0.0.i14, %161 ], [ %.sroa.0.0.i14, %169 ], [ %.sroa.0.0.i14, %175 ], [ %.sroa.0.0.i14, %181 ], [ %.sroa.0.0.i14, %185 ], [ %.sroa.0.0.i14, %193 ], [ %.sroa.0.0.i14, %199 ], [ %.sroa.0.0.i14, %207 ], [ %.sroa.0.0.i14, %213 ], [ %.sroa.0.0.i14, %221 ], [ %.sroa.0.0.i14, %228 ], [ %.sroa.0.0.i14, %113 ] %231 = load i64, ptr %62, align 8, !range !20, !alias.scope !6935, !noalias !6904, !noundef !9 %232 = icmp eq i64 %231, -9223372036854775807 br i1 %232, label %"_ZN4core3ptr94drop_in_place$LT$core..option..Option$LT$uv_build_backend..settings..WheelDataIncludes$GT$$GT$17hd12fb37f0e7c5728E.exit263.i", label %233 @@ -42272,7 +42267,6 @@ _ZN5serde2de9MapAccess10next_value17hed96194b90051571E.exit.i: ; preds = %128 to label %.thread.i unwind label %289, !noalias !6899 .thread.i: ; preds = %346, %297, %294, %106 - %.sroa.0.0527.i = phi i64 [ %.sroa.0.0529.i, %346 ], [ %.sroa.0.0529.i, %106 ], [ %.sroa.0.0528.i, %297 ], [ %.sroa.0.0.i14, %294 ] %.sroa.0127.3.i = phi i1 [ %.sroa.0127.2.i, %346 ], [ %.sroa.0127.2.i, %106 ], [ true, %297 ], [ %.not230.i, %294 ] %.sroa.0128.3.i = phi i1 [ %.sroa.0128.2.i, %346 ], [ %.sroa.0128.2.i, %106 ], [ true, %297 ], [ %.not227.i, %294 ] %.sroa.0129.3.i = phi i1 [ %.sroa.0129.2.i, %346 ], [ %.sroa.0129.2.i, %106 ], [ true, %297 ], [ %.not224.i, %294 ] @@ -42300,7 +42294,6 @@ _ZN5serde2de9MapAccess10next_value17hed96194b90051571E.exit.i: ; preds = %128 to label %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$17h2d254dd6a19815a1E.exit270.i" unwind label %305, !noalias !6899 302: ; preds = %347, %305, %.thread.i - %.sroa.0.0526.i = phi i64 [ %.sroa.0.0527.i, %347 ], [ %.sroa.0.0527.i, %.thread.i ], [ %.sroa.0.0528.i, %305 ] %.sroa.0128.6.i = phi i1 [ %.sroa.0128.3.i, %347 ], [ %.sroa.0128.3.i, %.thread.i ], [ true, %305 ] %.sroa.0129.6.i = phi i1 [ %.sroa.0129.3.i, %347 ], [ %.sroa.0129.3.i, %.thread.i ], [ true, %305 ] %.sroa.0130.6.i = phi i1 [ %.sroa.0130.3.i, %347 ], [ %.sroa.0130.3.i, %.thread.i ], [ true, %305 ] @@ -42327,7 +42320,6 @@ _ZN5serde2de9MapAccess10next_value17hed96194b90051571E.exit.i: ; preds = %128 to label %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$17h2d254dd6a19815a1E.exit272.i" unwind label %313, !noalias !6899 310: ; preds = %348, %313, %302 - %.sroa.0.0525.i = phi i64 [ %.sroa.0.0526.i, %348 ], [ %.sroa.0.0526.i, %302 ], [ %.sroa.0.0528.i, %313 ] %.sroa.0129.7.i = phi i1 [ %.sroa.0129.6.i, %348 ], [ %.sroa.0129.6.i, %302 ], [ true, %313 ] %.sroa.0130.7.i = phi i1 [ %.sroa.0130.6.i, %348 ], [ %.sroa.0130.6.i, %302 ], [ true, %313 ] %.sroa.0131.7.i = phi i1 [ %.sroa.0131.6.i, %348 ], [ %.sroa.0131.6.i, %302 ], [ true, %313 ] @@ -42353,11 +42345,10 @@ _ZN5serde2de9MapAccess10next_value17hed96194b90051571E.exit.i: ; preds = %128 to label %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$17h2d254dd6a19815a1E.exit274.i" unwind label %320, !noalias !6899 318: ; preds = %349, %320, %310 - %.sroa.0.0524.i = phi i64 [ %.sroa.0.0525.i, %349 ], [ %.sroa.0.0525.i, %310 ], [ %.sroa.0.0528.i, %320 ] %.sroa.0130.8.i = phi i1 [ %.sroa.0130.7.i, %349 ], [ %.sroa.0130.7.i, %310 ], [ true, %320 ] %.sroa.0131.8.i = phi i1 [ %.sroa.0131.7.i, %349 ], [ %.sroa.0131.7.i, %310 ], [ true, %320 ] %.pn234.pn.pn.pn.pn.i = phi { ptr, i32 } [ %.pn234.pn.pn.pn.i, %349 ], [ %.pn234.pn.pn.pn.i, %310 ], [ %321, %320 ] - %319 = icmp ne i64 %.sroa.0.0524.i, 0 + %319 = icmp ne i64 %.sroa.0.0.i14, 0 %or.cond9.i = select i1 %319, i1 %.sroa.0130.8.i, i1 false br i1 %or.cond9.i, label %350, label %"_ZN4core3ptr86drop_in_place$LT$core..option..Option$LT$uv_pypi_types..identifier..Identifier$GT$$GT$17h0cbbc8e5b7cd2badE.exit289.i" @@ -42368,7 +42359,7 @@ _ZN5serde2de9MapAccess10next_value17hed96194b90051571E.exit.i: ; preds = %128 "_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$17h2d254dd6a19815a1E.exit274.i": ; preds = %317, %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$17h2d254dd6a19815a1E.exit272.i" call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %65), !noalias !6904 - %322 = icmp eq i64 %.sroa.0.0528.i, 0 + %322 = icmp eq i64 %.sroa.0.0.i14, 0 br i1 %322, label %"_ZN4core3ptr114drop_in_place$LT$core..option..Option$LT$core..option..Option$LT$uv_pypi_types..identifier..Identifier$GT$$GT$$GT$17h54c447cb95268c83E.exit279.i", label %323 323: ; preds = %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$17h2d254dd6a19815a1E.exit274.i" diff --git a/bench/uv-rs/optimized/5j7xzn845lcvgg50lzoz3eg8s.ll b/bench/uv-rs/optimized/5j7xzn845lcvgg50lzoz3eg8s.ll index 59c999aa97d..fac523942ce 100644 --- a/bench/uv-rs/optimized/5j7xzn845lcvgg50lzoz3eg8s.ll +++ b/bench/uv-rs/optimized/5j7xzn845lcvgg50lzoz3eg8s.ll @@ -4299,7 +4299,7 @@ define hidden void @"_ZN194_$LT$uv_build_backend..settings.._..$LT$impl$u20$serd .body: ; preds = %.loopexit395, %.loopexit.split-lp, %.body.thread.i.i301, %.body.thread.i.i265, %.body.thread.i.i, %159, %155, %.body24.i.i, %434, %375, %331, %317, %292, %228 %.sroa.17.0648 = phi i64 [ %.sroa.17.0657, %434 ], [ %.sroa.17.0862, %228 ], [ %.sroa.17.0862, %292 ], [ %.sroa.17.0862, %317 ], [ %.sroa.17.0862, %331 ], [ %.sroa.17.0862, %375 ], [ %.sroa.17.0862, %159 ], [ %.sroa.17.0862, %155 ], [ %.sroa.17.0862, %.body24.i.i ], [ %.sroa.17.0862, %.body.thread.i.i ], [ %.sroa.17.0862, %.body.thread.i.i265 ], [ %.sroa.17.0862, %.body.thread.i.i301 ], [ %.sroa.17.0862, %.loopexit395 ], [ %.sroa.17.0656, %.loopexit.split-lp ] %.sroa.11357.0586 = phi ptr [ %.sroa.11357.0595, %434 ], [ %.sroa.11357.0864, %228 ], [ %.sroa.11357.0864, %292 ], [ %.sroa.11357.0864, %317 ], [ %.sroa.11357.0864, %331 ], [ %.sroa.11357.0864, %375 ], [ %.sroa.11357.0864, %159 ], [ %.sroa.11357.0864, %155 ], [ %.sroa.11357.0864, %.body24.i.i ], [ %.sroa.11357.0864, %.body.thread.i.i ], [ %.sroa.11357.0864, %.body.thread.i.i265 ], [ %.sroa.11357.0864, %.body.thread.i.i301 ], [ %.sroa.11357.0864, %.loopexit395 ], [ %.sroa.11357.0594, %.loopexit.split-lp ] - %.sroa.0.0524 = phi i64 [ %.sroa.0.0533, %434 ], [ %.sroa.0.0866, %228 ], [ %.sroa.0.0866, %292 ], [ %.sroa.0.0866, %317 ], [ %.sroa.0.0866, %331 ], [ %.sroa.0.0866, %375 ], [ %.sroa.0.0866, %159 ], [ %.sroa.0.0866, %155 ], [ %.sroa.0.0866, %.body24.i.i ], [ %.sroa.0.0866, %.body.thread.i.i ], [ 0, %.body.thread.i.i265 ], [ %.sroa.0.0866, %.body.thread.i.i301 ], [ %.sroa.0.0866.lcssa1084, %.loopexit395 ], [ %.sroa.0.0532, %.loopexit.split-lp ] + %.sroa.0.0524 = phi i64 [ %.sroa.0.0533, %434 ], [ %.sroa.0.0866, %228 ], [ %.sroa.0.0866, %292 ], [ %.sroa.0.0866, %317 ], [ %.sroa.0.0866, %331 ], [ %.sroa.0.0866, %375 ], [ %.sroa.0.0866, %159 ], [ %.sroa.0.0866, %155 ], [ %.sroa.0.0866, %.body24.i.i ], [ %.sroa.0.0866, %.body.thread.i.i ], [ 0, %.body.thread.i.i265 ], [ %.sroa.0.0866, %.body.thread.i.i301 ], [ %.sroa.0.0866, %.loopexit395 ], [ %.sroa.0.0532, %.loopexit.split-lp ] %.sroa.0126.2 = phi i1 [ true, %434 ], [ true, %228 ], [ true, %292 ], [ true, %317 ], [ true, %331 ], [ true, %375 ], [ true, %159 ], [ true, %155 ], [ true, %.body24.i.i ], [ true, %.body.thread.i.i ], [ true, %.body.thread.i.i265 ], [ true, %.body.thread.i.i301 ], [ true, %.loopexit395 ], [ %.sroa.0126.1.ph, %.loopexit.split-lp ] %.sroa.0127.2 = phi i1 [ %.not230, %434 ], [ true, %228 ], [ true, %292 ], [ true, %317 ], [ true, %331 ], [ true, %375 ], [ true, %159 ], [ true, %155 ], [ true, %.body24.i.i ], [ true, %.body.thread.i.i ], [ true, %.body.thread.i.i265 ], [ true, %.body.thread.i.i301 ], [ true, %.loopexit395 ], [ %.sroa.0127.1.ph, %.loopexit.split-lp ] %.sroa.0128.2 = phi i1 [ %.not227, %434 ], [ true, %228 ], [ true, %292 ], [ true, %317 ], [ true, %331 ], [ true, %375 ], [ true, %159 ], [ true, %155 ], [ true, %.body24.i.i ], [ true, %.body.thread.i.i ], [ true, %.body.thread.i.i265 ], [ true, %.body.thread.i.i301 ], [ true, %.loopexit395 ], [ %.sroa.0128.1.ph, %.loopexit.split-lp ] @@ -4313,7 +4313,6 @@ define hidden void @"_ZN194_$LT$uv_build_backend..settings.._..$LT$impl$u20$serd br i1 %or.cond, label %526, label %.body.thread .loopexit395: ; preds = %295, %179, %"_ZN77_$LT$toml_edit..de..table..TableMapAccess$u20$as$u20$serde..de..MapAccess$GT$15next_value_seed17h55f84202552e0f41E.exit.i", %"_ZN77_$LT$toml_edit..de..table..TableMapAccess$u20$as$u20$serde..de..MapAccess$GT$15next_value_seed17h8608ac8548e9926aE.exit.i", %281, %306, %320, %"_ZN77_$LT$toml_edit..de..table..TableMapAccess$u20$as$u20$serde..de..MapAccess$GT$15next_value_seed17h20769597edceb87cE.exit.i" - %.sroa.0.0866.lcssa1084 = phi i64 [ %.sroa.0.0866, %295 ], [ %.sroa.0.0866, %179 ], [ %.sroa.0.0866, %"_ZN77_$LT$toml_edit..de..table..TableMapAccess$u20$as$u20$serde..de..MapAccess$GT$15next_value_seed17h55f84202552e0f41E.exit.i" ], [ 0, %"_ZN77_$LT$toml_edit..de..table..TableMapAccess$u20$as$u20$serde..de..MapAccess$GT$15next_value_seed17h8608ac8548e9926aE.exit.i" ], [ %.sroa.0.0866, %281 ], [ %.sroa.0.0866, %306 ], [ %.sroa.0.0866, %320 ], [ %.sroa.0.0866, %"_ZN77_$LT$toml_edit..de..table..TableMapAccess$u20$as$u20$serde..de..MapAccess$GT$15next_value_seed17h20769597edceb87cE.exit.i" ] %lpad.loopexit = landingpad { ptr, i32 } cleanup br label %.body @@ -4452,15 +4451,15 @@ default.unreachable: ; preds = %164 .invoke: ; preds = %336, %183 %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %336 ], [ %.sink.sroa.gep2083, %183 ] - %.sink.sroa.phi2084 = phi ptr [ %.sink.sroa.gep2085, %336 ], [ %.sink.sroa.gep2086, %183 ] %.sink.sroa.phi2087 = phi ptr [ %.sink.sroa.gep2088, %336 ], [ %.sink.sroa.gep2089, %183 ] %.sink.sroa.phi2090 = phi ptr [ %.sink.sroa.gep2091, %336 ], [ %.sink.sroa.gep2092, %183 ] + %.sink.sroa.phi2093 = phi ptr [ %.sink.sroa.gep2094, %336 ], [ %.sink.sroa.gep2095, %183 ] %.sink = phi ptr [ %9, %336 ], [ %32, %183 ] store ptr @anon.0989000d463f3a46d804ffc750230b00.27, ptr %.sink, align 8, !noalias !19 store i64 1, ptr %.sink.sroa.phi, align 8, !noalias !19 - store ptr null, ptr %.sink.sroa.phi2084, align 8, !noalias !19 - store ptr inttoptr (i64 8 to ptr), ptr %.sink.sroa.phi2087, align 8, !noalias !19 - store i64 0, ptr %.sink.sroa.phi2090, align 8, !noalias !19 + store ptr null, ptr %.sink.sroa.phi2087, align 8, !noalias !19 + store ptr inttoptr (i64 8 to ptr), ptr %.sink.sroa.phi2090, align 8, !noalias !19 + store i64 0, ptr %.sink.sroa.phi2093, align 8, !noalias !19 invoke void @_ZN4core9panicking9panic_fmt17h5764ee7030b7a73dE(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %.sink, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.0989000d463f3a46d804ffc750230b00.29) #16 to label %.cont unwind label %.loopexit.split-lp @@ -5356,7 +5355,6 @@ _ZN5serde2de9MapAccess10next_value17h3f01d4a3bbb90168E.exit: ; preds = %179 br label %382 382: ; preds = %213, %226, %273, %277, %282, %290, %296, %303, %307, %315, %321, %329, %366, %373, %380, %165 - %.sroa.0.08661120 = phi i64 [ %.sroa.0.0866, %213 ], [ %.sroa.0.0866, %226 ], [ %.sroa.0.0866, %273 ], [ 0, %277 ], [ %.sroa.0.0866, %282 ], [ %.sroa.0.0866, %290 ], [ %.sroa.0.0866, %296 ], [ %.sroa.0.0866, %303 ], [ %.sroa.0.0866, %307 ], [ %.sroa.0.0866, %315 ], [ %.sroa.0.0866, %321 ], [ %.sroa.0.0866, %329 ], [ %.sroa.0.0866, %366 ], [ %.sroa.0.0866, %373 ], [ %.sroa.0.0866, %380 ], [ %.sroa.0.0866, %165 ] %383 = load i64, ptr %67, align 8, !range !66, !alias.scope !850, !noundef !19 %384 = icmp eq i64 %383, -9223372036854775807 br i1 %384, label %"_ZN4core3ptr94drop_in_place$LT$core..option..Option$LT$uv_build_backend..settings..WheelDataIncludes$GT$$GT$17hd12fb37f0e7c5728E.exit324", label %385 @@ -5628,7 +5626,7 @@ common.resume: ; preds = %511, %515, %520, %4 .body.thread: ; preds = %466, %526, %470, %.body %.sroa.17.0647 = phi i64 [ %.sroa.17.0648, %526 ], [ %.sroa.17.0648, %.body ], [ %.sroa.17.0862, %470 ], [ %.sroa.17.0657, %466 ] %.sroa.11357.0585 = phi ptr [ %.sroa.11357.0586, %526 ], [ %.sroa.11357.0586, %.body ], [ %.sroa.11357.0864, %470 ], [ %.sroa.11357.0595, %466 ] - %.sroa.0.0523 = phi i64 [ %.sroa.0.0524, %526 ], [ %.sroa.0.0524, %.body ], [ %.sroa.0.08661120, %470 ], [ %.sroa.0.0533, %466 ] + %.sroa.0.0523 = phi i64 [ %.sroa.0.0524, %526 ], [ %.sroa.0.0524, %.body ], [ %.sroa.0.0866, %470 ], [ %.sroa.0.0533, %466 ] %.sroa.0127.3 = phi i1 [ %.sroa.0127.2, %526 ], [ %.sroa.0127.2, %.body ], [ true, %470 ], [ %.not230, %466 ] %.sroa.0128.3 = phi i1 [ %.sroa.0128.2, %526 ], [ %.sroa.0128.2, %.body ], [ true, %470 ], [ %.not227, %466 ] %.sroa.0129.3 = phi i1 [ %.sroa.0129.2, %526 ], [ %.sroa.0129.2, %.body ], [ true, %470 ], [ %.not224, %466 ] @@ -5658,7 +5656,7 @@ common.resume: ; preds = %511, %515, %520, %4 475: ; preds = %527, %478, %.body.thread %.sroa.17.0646 = phi i64 [ %.sroa.17.0647, %527 ], [ %.sroa.17.0647, %.body.thread ], [ %.sroa.17.0862, %478 ] %.sroa.11357.0584 = phi ptr [ %.sroa.11357.0585, %527 ], [ %.sroa.11357.0585, %.body.thread ], [ %.sroa.11357.0864, %478 ] - %.sroa.0.0522 = phi i64 [ %.sroa.0.0523, %527 ], [ %.sroa.0.0523, %.body.thread ], [ %.sroa.0.08661120, %478 ] + %.sroa.0.0522 = phi i64 [ %.sroa.0.0523, %527 ], [ %.sroa.0.0523, %.body.thread ], [ %.sroa.0.0866, %478 ] %.sroa.0128.6 = phi i1 [ %.sroa.0128.3, %527 ], [ %.sroa.0128.3, %.body.thread ], [ true, %478 ] %.sroa.0129.6 = phi i1 [ %.sroa.0129.3, %527 ], [ %.sroa.0129.3, %.body.thread ], [ true, %478 ] %.sroa.0130.6 = phi i1 [ %.sroa.0130.3, %527 ], [ %.sroa.0130.3, %.body.thread ], [ true, %478 ] @@ -5687,7 +5685,7 @@ common.resume: ; preds = %511, %515, %520, %4 483: ; preds = %528, %486, %475 %.sroa.17.0645 = phi i64 [ %.sroa.17.0646, %528 ], [ %.sroa.17.0646, %475 ], [ %.sroa.17.0862, %486 ] %.sroa.11357.0583 = phi ptr [ %.sroa.11357.0584, %528 ], [ %.sroa.11357.0584, %475 ], [ %.sroa.11357.0864, %486 ] - %.sroa.0.0521 = phi i64 [ %.sroa.0.0522, %528 ], [ %.sroa.0.0522, %475 ], [ %.sroa.0.08661120, %486 ] + %.sroa.0.0521 = phi i64 [ %.sroa.0.0522, %528 ], [ %.sroa.0.0522, %475 ], [ %.sroa.0.0866, %486 ] %.sroa.0129.7 = phi i1 [ %.sroa.0129.6, %528 ], [ %.sroa.0129.6, %475 ], [ true, %486 ] %.sroa.0130.7 = phi i1 [ %.sroa.0130.6, %528 ], [ %.sroa.0130.6, %475 ], [ true, %486 ] %.sroa.0131.7 = phi i1 [ %.sroa.0131.6, %528 ], [ %.sroa.0131.6, %475 ], [ true, %486 ] @@ -5715,7 +5713,7 @@ common.resume: ; preds = %511, %515, %520, %4 491: ; preds = %529, %493, %483 %.sroa.17.0644 = phi i64 [ %.sroa.17.0645, %529 ], [ %.sroa.17.0645, %483 ], [ %.sroa.17.0862, %493 ] %.sroa.11357.0582 = phi ptr [ %.sroa.11357.0583, %529 ], [ %.sroa.11357.0583, %483 ], [ %.sroa.11357.0864, %493 ] - %.sroa.0.0520 = phi i64 [ %.sroa.0.0521, %529 ], [ %.sroa.0.0521, %483 ], [ %.sroa.0.08661120, %493 ] + %.sroa.0.0520 = phi i64 [ %.sroa.0.0521, %529 ], [ %.sroa.0.0521, %483 ], [ %.sroa.0.0866, %493 ] %.sroa.0130.8 = phi i1 [ %.sroa.0130.7, %529 ], [ %.sroa.0130.7, %483 ], [ true, %493 ] %.sroa.0131.8 = phi i1 [ %.sroa.0131.7, %529 ], [ %.sroa.0131.7, %483 ], [ true, %493 ] %.pn234.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn234.pn.pn.pn, %529 ], [ %.pn234.pn.pn.pn, %483 ], [ %494, %493 ] @@ -5730,7 +5728,7 @@ common.resume: ; preds = %511, %515, %520, %4 "_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$17h2d254dd6a19815a1E.exit335": ; preds = %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$17h2d254dd6a19815a1E.exit333", %490 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %70) - %495 = icmp eq i64 %.sroa.0.08661120, 0 + %495 = icmp eq i64 %.sroa.0.0866, 0 br i1 %495, label %"_ZN4core3ptr114drop_in_place$LT$core..option..Option$LT$core..option..Option$LT$uv_pypi_types..identifier..Identifier$GT$$GT$$GT$17h54c447cb95268c83E.exit340", label %496 496: ; preds = %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$17h2d254dd6a19815a1E.exit335" diff --git a/bench/uv-rs/optimized/967eumvkkk7xz52paw1v0vcyj.ll b/bench/uv-rs/optimized/967eumvkkk7xz52paw1v0vcyj.ll index 02c1f936d68..3fb72c11307 100644 --- a/bench/uv-rs/optimized/967eumvkkk7xz52paw1v0vcyj.ll +++ b/bench/uv-rs/optimized/967eumvkkk7xz52paw1v0vcyj.ll @@ -1278,9 +1278,6 @@ define hidden void @"_ZN177_$LT$uv_settings..settings.._..$LT$impl$u20$serde..de %.sroa.061.0935 = phi i8 [ %.sroa.061.01269, %"_ZN4core3ptr136drop_in_place$LT$core..option..Option$LT$$LP$serde..__private..de..content..Content$C$serde..__private..de..content..Content$RP$$GT$$GT$17h5db0e5de67ff1a07E.exit.i.i" ], [ %.sroa.061.1, %175 ] %.sroa.048.0899 = phi i8 [ %.sroa.048.01270, %"_ZN4core3ptr136drop_in_place$LT$core..option..Option$LT$$LP$serde..__private..de..content..Content$C$serde..__private..de..content..Content$RP$$GT$$GT$17h5db0e5de67ff1a07E.exit.i.i" ], [ %.sroa.048.1, %175 ] %.sroa.035.0863 = phi i8 [ %.sroa.035.01271, %"_ZN4core3ptr136drop_in_place$LT$core..option..Option$LT$$LP$serde..__private..de..content..Content$C$serde..__private..de..content..Content$RP$$GT$$GT$17h5db0e5de67ff1a07E.exit.i.i" ], [ %.sroa.035.1, %175 ] - %.sroa.061.0935.fr = freeze i8 %.sroa.061.0935 - %.sroa.048.0899.fr = freeze i8 %.sroa.048.0899 - %.sroa.035.0863.fr = freeze i8 %.sroa.035.0863 %101 = load i64, ptr %48, align 8, !range !118, !noundef !9 %trunc483 = trunc nuw i64 %101 to i1 %102 = getelementptr inbounds nuw i8, ptr %48, i64 8 @@ -1289,12 +1286,12 @@ define hidden void @"_ZN177_$LT$uv_settings..settings.._..$LT$impl$u20$serde..de %105 = load i64, ptr %104, align 8 %.sroa.5653.0 = select i1 %trunc483, i64 %105, i64 undef %.sroa.0652.0 = select i1 %trunc483, ptr %103, ptr null - %106 = icmp eq i8 %.sroa.035.0863.fr, 3 - %spec.select2345 = select i1 %106, i8 2, i8 %.sroa.035.0863.fr - %107 = icmp eq i8 %.sroa.048.0899.fr, 3 - %108 = select i1 %107, i8 2, i8 %.sroa.048.0899.fr - %109 = icmp eq i8 %.sroa.061.0935.fr, 3 - %spec.select2346 = select i1 %109, i8 2, i8 %.sroa.061.0935.fr + %106 = icmp eq i8 %.sroa.035.0863, 3 + %spec.select2345 = select i1 %106, i8 2, i8 %.sroa.035.0863 + %107 = icmp eq i8 %.sroa.048.0899, 3 + %108 = select i1 %107, i8 2, i8 %.sroa.048.0899 + %109 = icmp eq i8 %.sroa.061.0935, 3 + %spec.select2346 = select i1 %109, i8 2, i8 %.sroa.061.0935 %110 = icmp eq i64 %.sroa.0122.01151, 0 %111 = select i1 %110, i64 0, i64 %.sroa.4124.01187 %112 = icmp eq i64 %.sroa.0135.01259, 0 diff --git a/bench/uv-rs/optimized/b24v25twjd4kchixabmblnyee.ll b/bench/uv-rs/optimized/b24v25twjd4kchixabmblnyee.ll index 4e10d92d28c..de54096626e 100644 --- a/bench/uv-rs/optimized/b24v25twjd4kchixabmblnyee.ll +++ b/bench/uv-rs/optimized/b24v25twjd4kchixabmblnyee.ll @@ -46749,7 +46749,6 @@ define hidden void @"_ZN83_$LT$toml_edit..de..value..ValueDeserializer$u20$as$u2 to label %_ZN5serde2de9MapAccess8next_key17h4ee8a53be04e48b6E.exit.i unwind label %.loopexit.i, !noalias !7847 106: ; preds = %279, %223, %209, %195, %171, %146, %.loopexit.split-lp.i, %.loopexit.i - %.sroa.0.0529.i = phi i64 [ %.sroa.0.0.i14, %279 ], [ %.sroa.0.0.i14, %146 ], [ %.sroa.0.0.i14, %171 ], [ %.sroa.0.0.i14, %195 ], [ %.sroa.0.0.i14, %209 ], [ %.sroa.0.0.i14, %223 ], [ %.sroa.0.0.lcssa.i, %.loopexit.i ], [ %.sroa.0.0.i14, %.loopexit.split-lp.i ] %.sroa.0126.2.i = phi i1 [ true, %279 ], [ true, %146 ], [ true, %171 ], [ true, %195 ], [ true, %209 ], [ true, %223 ], [ true, %.loopexit.i ], [ %.sroa.0126.1.ph.i, %.loopexit.split-lp.i ] %.sroa.0127.2.i = phi i1 [ %.not230.i, %279 ], [ true, %146 ], [ true, %171 ], [ true, %195 ], [ true, %209 ], [ true, %223 ], [ true, %.loopexit.i ], [ %.sroa.0127.1.ph.i, %.loopexit.split-lp.i ] %.sroa.0128.2.i = phi i1 [ %.not227.i, %279 ], [ true, %146 ], [ true, %171 ], [ true, %195 ], [ true, %209 ], [ true, %223 ], [ true, %.loopexit.i ], [ %.sroa.0128.1.ph.i, %.loopexit.split-lp.i ] @@ -46763,7 +46762,6 @@ define hidden void @"_ZN83_$LT$toml_edit..de..value..ValueDeserializer$u20$as$u2 br i1 %or.cond.i, label %346, label %.thread.i .loopexit.i: ; preds = %212, %198, %184, %174, %160, %149, %130, %128, %105 - %.sroa.0.0.lcssa.i = phi i64 [ %.sroa.0.0.i14, %105 ], [ %.sroa.0.0.i14, %128 ], [ %.sroa.0.0.i14, %130 ], [ 0, %149 ], [ %.sroa.0.0.i14, %160 ], [ %.sroa.0.0.i14, %174 ], [ %.sroa.0.0.i14, %184 ], [ %.sroa.0.0.i14, %198 ], [ %.sroa.0.0.i14, %212 ] %lpad.loopexit.i = landingpad { ptr, i32 } cleanup br label %106 @@ -47260,7 +47258,6 @@ _ZN5serde2de9MapAccess10next_value17hb60d8303b9e42bb5E.exit.i: ; preds = %128 br label %230 230: ; preds = %228, %221, %213, %207, %199, %193, %185, %181, %175, %169, %161, %156, %150, %144, %131, %113 - %.sroa.0.0528.i = phi i64 [ %.sroa.0.0.i14, %131 ], [ %.sroa.0.0.i14, %144 ], [ %.sroa.0.0.i14, %150 ], [ 0, %156 ], [ %.sroa.0.0.i14, %161 ], [ %.sroa.0.0.i14, %169 ], [ %.sroa.0.0.i14, %175 ], [ %.sroa.0.0.i14, %181 ], [ %.sroa.0.0.i14, %185 ], [ %.sroa.0.0.i14, %193 ], [ %.sroa.0.0.i14, %199 ], [ %.sroa.0.0.i14, %207 ], [ %.sroa.0.0.i14, %213 ], [ %.sroa.0.0.i14, %221 ], [ %.sroa.0.0.i14, %228 ], [ %.sroa.0.0.i14, %113 ] %231 = load i64, ptr %62, align 8, !range !721, !alias.scope !7883, !noalias !7852, !noundef !6 %232 = icmp eq i64 %231, -9223372036854775807 br i1 %232, label %"_ZN4core3ptr94drop_in_place$LT$core..option..Option$LT$uv_build_backend..settings..WheelDataIncludes$GT$$GT$17hb268c815ae1300b4E.exit263.i", label %233 @@ -47473,7 +47470,6 @@ _ZN5serde2de9MapAccess10next_value17hb60d8303b9e42bb5E.exit.i: ; preds = %128 to label %.thread.i unwind label %289, !noalias !7847 .thread.i: ; preds = %346, %297, %294, %106 - %.sroa.0.0527.i = phi i64 [ %.sroa.0.0529.i, %346 ], [ %.sroa.0.0529.i, %106 ], [ %.sroa.0.0528.i, %297 ], [ %.sroa.0.0.i14, %294 ] %.sroa.0127.3.i = phi i1 [ %.sroa.0127.2.i, %346 ], [ %.sroa.0127.2.i, %106 ], [ true, %297 ], [ %.not230.i, %294 ] %.sroa.0128.3.i = phi i1 [ %.sroa.0128.2.i, %346 ], [ %.sroa.0128.2.i, %106 ], [ true, %297 ], [ %.not227.i, %294 ] %.sroa.0129.3.i = phi i1 [ %.sroa.0129.2.i, %346 ], [ %.sroa.0129.2.i, %106 ], [ true, %297 ], [ %.not224.i, %294 ] @@ -47501,7 +47497,6 @@ _ZN5serde2de9MapAccess10next_value17hb60d8303b9e42bb5E.exit.i: ; preds = %128 to label %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$17h481ab33dc4f3c8dcE.exit270.i" unwind label %305, !noalias !7847 302: ; preds = %347, %305, %.thread.i - %.sroa.0.0526.i = phi i64 [ %.sroa.0.0527.i, %347 ], [ %.sroa.0.0527.i, %.thread.i ], [ %.sroa.0.0528.i, %305 ] %.sroa.0128.6.i = phi i1 [ %.sroa.0128.3.i, %347 ], [ %.sroa.0128.3.i, %.thread.i ], [ true, %305 ] %.sroa.0129.6.i = phi i1 [ %.sroa.0129.3.i, %347 ], [ %.sroa.0129.3.i, %.thread.i ], [ true, %305 ] %.sroa.0130.6.i = phi i1 [ %.sroa.0130.3.i, %347 ], [ %.sroa.0130.3.i, %.thread.i ], [ true, %305 ] @@ -47528,7 +47523,6 @@ _ZN5serde2de9MapAccess10next_value17hb60d8303b9e42bb5E.exit.i: ; preds = %128 to label %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$17h481ab33dc4f3c8dcE.exit272.i" unwind label %313, !noalias !7847 310: ; preds = %348, %313, %302 - %.sroa.0.0525.i = phi i64 [ %.sroa.0.0526.i, %348 ], [ %.sroa.0.0526.i, %302 ], [ %.sroa.0.0528.i, %313 ] %.sroa.0129.7.i = phi i1 [ %.sroa.0129.6.i, %348 ], [ %.sroa.0129.6.i, %302 ], [ true, %313 ] %.sroa.0130.7.i = phi i1 [ %.sroa.0130.6.i, %348 ], [ %.sroa.0130.6.i, %302 ], [ true, %313 ] %.sroa.0131.7.i = phi i1 [ %.sroa.0131.6.i, %348 ], [ %.sroa.0131.6.i, %302 ], [ true, %313 ] @@ -47554,11 +47548,10 @@ _ZN5serde2de9MapAccess10next_value17hb60d8303b9e42bb5E.exit.i: ; preds = %128 to label %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$17h481ab33dc4f3c8dcE.exit274.i" unwind label %320, !noalias !7847 318: ; preds = %349, %320, %310 - %.sroa.0.0524.i = phi i64 [ %.sroa.0.0525.i, %349 ], [ %.sroa.0.0525.i, %310 ], [ %.sroa.0.0528.i, %320 ] %.sroa.0130.8.i = phi i1 [ %.sroa.0130.7.i, %349 ], [ %.sroa.0130.7.i, %310 ], [ true, %320 ] %.sroa.0131.8.i = phi i1 [ %.sroa.0131.7.i, %349 ], [ %.sroa.0131.7.i, %310 ], [ true, %320 ] %.pn234.pn.pn.pn.pn.i = phi { ptr, i32 } [ %.pn234.pn.pn.pn.i, %349 ], [ %.pn234.pn.pn.pn.i, %310 ], [ %321, %320 ] - %319 = icmp ne i64 %.sroa.0.0524.i, 0 + %319 = icmp ne i64 %.sroa.0.0.i14, 0 %or.cond9.i = select i1 %319, i1 %.sroa.0130.8.i, i1 false br i1 %or.cond9.i, label %350, label %"_ZN4core3ptr86drop_in_place$LT$core..option..Option$LT$uv_pypi_types..identifier..Identifier$GT$$GT$17h550d5e28dc3315a4E.exit289.i" @@ -47569,7 +47562,7 @@ _ZN5serde2de9MapAccess10next_value17hb60d8303b9e42bb5E.exit.i: ; preds = %128 "_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$17h481ab33dc4f3c8dcE.exit274.i": ; preds = %317, %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$17h481ab33dc4f3c8dcE.exit272.i" call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %65), !noalias !7852 - %322 = icmp eq i64 %.sroa.0.0528.i, 0 + %322 = icmp eq i64 %.sroa.0.0.i14, 0 br i1 %322, label %"_ZN4core3ptr114drop_in_place$LT$core..option..Option$LT$core..option..Option$LT$uv_pypi_types..identifier..Identifier$GT$$GT$$GT$17h15787ed61b7a1c81E.exit279.i", label %323 323: ; preds = %"_ZN4core3ptr93drop_in_place$LT$core..option..Option$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$17h481ab33dc4f3c8dcE.exit274.i" diff --git a/bench/wasmi-rs/optimized/595hyxxsbu415zatshe9om7o4.ll b/bench/wasmi-rs/optimized/595hyxxsbu415zatshe9om7o4.ll index 81f4d7574f5..51d6955b2d1 100644 --- a/bench/wasmi-rs/optimized/595hyxxsbu415zatshe9om7o4.ll +++ b/bench/wasmi-rs/optimized/595hyxxsbu415zatshe9om7o4.ll @@ -1167,7 +1167,7 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. "_ZN87_$LT$wasmi_collections..string_interner..detail..LenOrder$u20$as$u20$core..cmp..Ord$GT$3cmp17h0fb0bb408ef713dfE.exit.us.i.us": ; preds = %34, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6483f31407df33eE.exit.us.i.us" %.sroa.0.0.i.i.us.i.us = phi i8 [ %35, %34 ], [ %19, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6483f31407df33eE.exit.us.i.us" ] call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %5) - switch i8 %.sroa.0.0.i.i.us.i.us, label %.split19.us.i [ + switch i8 %.sroa.0.0.i.i.us.i.us, label %.split18.us.i [ i8 -1, label %.loopexit.us i8 0, label %.split86.us i8 1, label %.split.us.i.us @@ -1230,7 +1230,7 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. "_ZN87_$LT$wasmi_collections..string_interner..detail..LenOrder$u20$as$u20$core..cmp..Ord$GT$3cmp17h0fb0bb408ef713dfE.exit.i": ; preds = %53, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6483f31407df33eE.exit.i" %.sroa.0.0.i.i.i = phi i8 [ %57, %53 ], [ %51, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6483f31407df33eE.exit.i" ] call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %5) - switch i8 %.sroa.0.0.i.i.i, label %.split19.us.i [ + switch i8 %.sroa.0.0.i.i.i, label %.split18.us.i [ i8 -1, label %.loopexit58 i8 0, label %.split86.us i8 1, label %.split.i diff --git a/bench/wasmtime-rs/optimized/enal6epyb0tyurl.ll b/bench/wasmtime-rs/optimized/enal6epyb0tyurl.ll index 4de9cc8278f..1709d07ae5a 100644 --- a/bench/wasmtime-rs/optimized/enal6epyb0tyurl.ll +++ b/bench/wasmtime-rs/optimized/enal6epyb0tyurl.ll @@ -34150,19 +34150,18 @@ define hidden void @"_ZN9addr2line16ResUnit$LT$R$GT$25find_function_or_location2 %.02025.i.i.i = phi i64 [ %.021.i54.i.i, %115 ], [ %109, %105 ] %110 = lshr i64 %.027.i.i.i, 1 %111 = add i64 %110, %.01926.i.i.i - %.fr94.i.i = freeze i64 %111 - %112 = icmp ult i64 %.fr94.i.i, %109 + %112 = icmp ult i64 %111, %109 call void @llvm.assume(i1 %112) - %113 = getelementptr inbounds { i64, i64, i32, i32 }, ptr %107, i64 %.fr94.i.i + %113 = getelementptr inbounds { i64, i64, i32, i32 }, ptr %107, i64 %111 %.val23.i53.i.i = load i64, ptr %113, align 8, !alias.scope !6454, !noalias !6457, !noundef !4 %114 = icmp eq i64 %.val23.i53.i.i, %63 br i1 %114, label %.loopexit.i, label %115 115: ; preds = %.lr.ph.i52.i.i %116 = icmp ugt i64 %.val23.i53.i.i, %63 - %.021.i54.i.i = select i1 %116, i64 %.fr94.i.i, i64 %.02025.i.i.i + %.021.i54.i.i = select i1 %116, i64 %111, i64 %.02025.i.i.i %117 = icmp ult i64 %.val23.i53.i.i, %63 - %118 = add nuw i64 %.fr94.i.i, 1 + %118 = add nuw i64 %111, 1 %.022.i55.i.i = select i1 %117, i64 %118, i64 %.01926.i.i.i %119 = sub i64 %.021.i54.i.i, %.022.i55.i.i %120 = icmp ult i64 %.022.i55.i.i, %.021.i54.i.i @@ -34179,7 +34178,7 @@ define hidden void @"_ZN9addr2line16ResUnit$LT$R$GT$25find_function_or_location2 br label %.loopexit.i .loopexit.i: ; preds = %.lr.ph.i52.i.i, %.thread90.i.i, %121, %.thread83.i.i - %.0.i.i103 = phi i64 [ 0, %.thread83.i.i ], [ 0, %.thread90.i.i ], [ %124, %121 ], [ %.fr94.i.i, %.lr.ph.i52.i.i ] + %.0.i.i103 = phi i64 [ 0, %.thread83.i.i ], [ 0, %.thread90.i.i ], [ %124, %121 ], [ %111, %.lr.ph.i52.i.i ] %125 = ptrtoint ptr %86 to i64 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %9), !noalias !6448 store ptr %.sroa.761.065.ph.i.i, ptr %9, align 8, !noalias !6448 diff --git a/bench/wireshark/optimized/packet-ipp.ll b/bench/wireshark/optimized/packet-ipp.ll index 46ead2e5242..c16fb21d808 100644 --- a/bench/wireshark/optimized/packet-ipp.ll +++ b/bench/wireshark/optimized/packet-ipp.ll @@ -857,7 +857,7 @@ switch.lookup: ; preds = %140 %202 = add i32 %201, %170 %203 = add i32 %202, %178 %204 = call zeroext i1 @tvb_offset_exists(ptr noundef %0, i32 noundef %203) - br i1 %204, label %.lr.ph.i.i, label %.critedge.i.i + br i1 %204, label %.lr.ph.i.i, label %add_integer_tree.exit.i 205: ; preds = %.split133.i %206 = icmp eq i16 %177, 1 @@ -1111,19 +1111,18 @@ switch.lookup: ; preds = %140 %335 = call noalias ptr @wmem_strdup(ptr noundef %334, ptr noundef nonnull @.str.344) br label %add_integer_tree.exit.i -.critedge.i.i: ; preds = %327, %319, %316, %256, %.backedge.i.i, %251, %248, %240, %237, %.preheader.i.i - %.0133.i.i = phi i32 [ 1, %.preheader.i.i ], [ %220, %248 ], [ %220, %251 ], [ %253, %.backedge.i.i ], [ %220, %237 ], [ %220, %240 ], [ %257, %256 ], [ %257, %316 ], [ %257, %319 ], [ %257, %327 ] - %.1125.i.i = phi ptr [ null, %.preheader.i.i ], [ %.4128.i.i, %237 ], [ %.4128.i.i, %240 ], [ %.4128.i.i, %248 ], [ %.4128.i.i, %251 ], [ %.4128.i.i, %.backedge.i.i ], [ %.7.i.i, %327 ], [ %.7.i.i, %319 ], [ %.7.i.i, %316 ], [ %.5.i.i, %256 ] - %.0120.i.i = phi i32 [ %202, %.preheader.i.i ], [ %218, %248 ], [ %218, %251 ], [ %.reass.i.i, %.backedge.i.i ], [ %218, %237 ], [ %218, %240 ], [ %260, %327 ], [ %260, %319 ], [ %260, %316 ], [ %259, %256 ] - %.0133.fr.i.i = freeze i32 %.0133.i.i - %336 = icmp sgt i32 %.0133.fr.i.i, 1 +.critedge.i.i: ; preds = %327, %319, %316, %256, %.backedge.i.i, %251, %248, %240, %237 + %.0133.i.i = phi i32 [ %220, %248 ], [ %220, %251 ], [ %253, %.backedge.i.i ], [ %220, %237 ], [ %220, %240 ], [ %257, %256 ], [ %257, %316 ], [ %257, %319 ], [ %257, %327 ] + %.1125.i.i = phi ptr [ %.4128.i.i, %237 ], [ %.4128.i.i, %240 ], [ %.4128.i.i, %248 ], [ %.4128.i.i, %251 ], [ %.4128.i.i, %.backedge.i.i ], [ %.7.i.i, %327 ], [ %.7.i.i, %319 ], [ %.7.i.i, %316 ], [ %.5.i.i, %256 ] + %.0120.i.i = phi i32 [ %218, %248 ], [ %218, %251 ], [ %.reass.i.i, %.backedge.i.i ], [ %218, %237 ], [ %218, %240 ], [ %260, %327 ], [ %260, %319 ], [ %260, %316 ], [ %259, %256 ] + %336 = icmp sgt i32 %.0133.i.i, 1 %spec.select.i.i = select i1 %336, ptr @.str.353, ptr @.str.340 br label %add_integer_tree.exit.i -add_integer_tree.exit.i: ; preds = %.critedge.i.i, %333, %216 - %.0120.ph.pn.i.i = phi i32 [ %.0120.i.i, %.critedge.i.i ], [ %217, %216 ], [ %.0125205.i, %333 ] - %.1125171.i.i = phi ptr [ %.1125.i.i, %.critedge.i.i ], [ %.0124.i.i, %216 ], [ %335, %333 ] - %337 = phi ptr [ %spec.select.i.i, %.critedge.i.i ], [ @.str.340, %216 ], [ @.str.340, %333 ] +add_integer_tree.exit.i: ; preds = %.critedge.i.i, %333, %216, %.preheader.i.i + %.0120.ph.pn.i.i = phi i32 [ %217, %216 ], [ %.0125205.i, %333 ], [ %202, %.preheader.i.i ], [ %.0120.i.i, %.critedge.i.i ] + %.1125171.i.i = phi ptr [ %.0124.i.i, %216 ], [ %335, %333 ], [ null, %.preheader.i.i ], [ %.1125.i.i, %.critedge.i.i ] + %337 = phi ptr [ @.str.340, %216 ], [ @.str.340, %333 ], [ @.str.340, %.preheader.i.i ], [ %spec.select.i.i, %.critedge.i.i ] %338 = sub i32 %.0120.ph.pn.i.i, %.0125205.i %339 = load i32, ptr @ett_ipp_attr, align 4 %340 = call ptr (ptr, ptr, i32, i32, i32, ptr, ptr, ...) @proto_tree_add_subtree_format(ptr noundef %spec.select.i, ptr noundef %0, i32 noundef %.0125205.i, i32 noundef %338, i32 noundef %339, ptr noundef null, ptr noundef nonnull @.str.352, ptr noundef %.2130.i, ptr noundef nonnull %337, ptr noundef %199, ptr noundef %.1125171.i.i) @@ -1153,7 +1152,7 @@ add_integer_tree.exit.i: ; preds = %.critedge.i.i, %333 %345 = add i32 %344, %170 %346 = add i32 %345, %178 %347 = call zeroext i1 @tvb_offset_exists(ptr noundef %0, i32 noundef %346) - br i1 %347, label %.lr.ph.i155.i, label %.critedge.i150.i + br i1 %347, label %.lr.ph.i155.i, label %598 .preheader.i157.i: ; preds = %342, %370 %.0292.i.i = phi i32 [ %359, %370 ], [ %.0125205.i, %342 ] @@ -1575,19 +1574,18 @@ add_integer_tree.exit.i: ; preds = %.critedge.i.i, %333 %596 = add i32 %.pre-phi406.i.i, %178 br label %598 -.critedge.i150.i: ; preds = %583, %556, %553, %545, %539, %.backedge.i156.i, %496, %493, %485, %482, %457, %449, %445, %370, %362, %358, %.thread339.i.i, %.preheader352.i.i - %.1293.i.i = phi i32 [ %566, %.thread339.i.i ], [ %345, %.preheader352.i.i ], [ %359, %358 ], [ %359, %362 ], [ %359, %370 ], [ %446, %445 ], [ %446, %449 ], [ %446, %457 ], [ %463, %493 ], [ %463, %496 ], [ %.reass388.i.i, %.backedge.i156.i ], [ %463, %482 ], [ %463, %485 ], [ %542, %539 ], [ %542, %545 ], [ %542, %553 ], [ %542, %556 ], [ %566, %583 ] - %.2285.i.i = phi ptr [ %.12.i.i, %.thread339.i.i ], [ null, %.preheader352.i.i ], [ %.1284.i.i, %358 ], [ %.1284.i.i, %362 ], [ %.1284.i.i, %370 ], [ %.5288.i.i, %445 ], [ %.5288.i.i, %449 ], [ %.5288.i.i, %457 ], [ %.8291.i.i, %482 ], [ %.8291.i.i, %485 ], [ %.8291.i.i, %493 ], [ %.8291.i.i, %496 ], [ %.8291.i.i, %.backedge.i156.i ], [ %.10.i.i, %539 ], [ %.10.i.i, %545 ], [ %.10.i.i, %553 ], [ %.10.i.i, %556 ], [ %.12.i.i, %583 ] - %.1273.i.i = phi i32 [ %562, %.thread339.i.i ], [ 1, %.preheader352.i.i ], [ %348, %358 ], [ %348, %362 ], [ %348, %370 ], [ %420, %445 ], [ %420, %449 ], [ %420, %457 ], [ %465, %493 ], [ %465, %496 ], [ %498, %.backedge.i156.i ], [ %465, %482 ], [ %465, %485 ], [ %501, %539 ], [ %501, %545 ], [ %501, %553 ], [ %501, %556 ], [ %562, %583 ] - %.1273.fr.i.i = freeze i32 %.1273.i.i - %597 = icmp sgt i32 %.1273.fr.i.i, 1 +.critedge.i150.i: ; preds = %583, %556, %553, %545, %539, %.backedge.i156.i, %496, %493, %485, %482, %457, %449, %445, %370, %362, %358, %.thread339.i.i + %.1293.i.i = phi i32 [ %566, %.thread339.i.i ], [ %359, %358 ], [ %359, %362 ], [ %359, %370 ], [ %446, %445 ], [ %446, %449 ], [ %446, %457 ], [ %463, %493 ], [ %463, %496 ], [ %.reass388.i.i, %.backedge.i156.i ], [ %463, %482 ], [ %463, %485 ], [ %542, %539 ], [ %542, %545 ], [ %542, %553 ], [ %542, %556 ], [ %566, %583 ] + %.2285.i.i = phi ptr [ %.12.i.i, %.thread339.i.i ], [ %.1284.i.i, %358 ], [ %.1284.i.i, %362 ], [ %.1284.i.i, %370 ], [ %.5288.i.i, %445 ], [ %.5288.i.i, %449 ], [ %.5288.i.i, %457 ], [ %.8291.i.i, %482 ], [ %.8291.i.i, %485 ], [ %.8291.i.i, %493 ], [ %.8291.i.i, %496 ], [ %.8291.i.i, %.backedge.i156.i ], [ %.10.i.i, %539 ], [ %.10.i.i, %545 ], [ %.10.i.i, %553 ], [ %.10.i.i, %556 ], [ %.12.i.i, %583 ] + %.1273.i.i = phi i32 [ %562, %.thread339.i.i ], [ %348, %358 ], [ %348, %362 ], [ %348, %370 ], [ %420, %445 ], [ %420, %449 ], [ %420, %457 ], [ %465, %493 ], [ %465, %496 ], [ %498, %.backedge.i156.i ], [ %465, %482 ], [ %465, %485 ], [ %501, %539 ], [ %501, %545 ], [ %501, %553 ], [ %501, %556 ], [ %562, %583 ] + %597 = icmp sgt i32 %.1273.i.i, 1 %spec.select.i151.i = select i1 %597, ptr @.str.353, ptr @.str.340 br label %598 -598: ; preds = %.critedge.i150.i, %595, %418 - %.1293.ph.pn.i.i = phi i32 [ %.1293.i.i, %.critedge.i150.i ], [ %419, %418 ], [ %596, %595 ] - %.2285349.i.i = phi ptr [ %.2285.i.i, %.critedge.i150.i ], [ %.3286.i.i, %418 ], [ %.13.i.i, %595 ] - %599 = phi ptr [ %spec.select.i151.i, %.critedge.i150.i ], [ @.str.340, %418 ], [ @.str.340, %595 ] +598: ; preds = %.critedge.i150.i, %595, %418, %.preheader352.i.i + %.1293.ph.pn.i.i = phi i32 [ %419, %418 ], [ %596, %595 ], [ %345, %.preheader352.i.i ], [ %.1293.i.i, %.critedge.i150.i ] + %.2285349.i.i = phi ptr [ %.3286.i.i, %418 ], [ %.13.i.i, %595 ], [ null, %.preheader352.i.i ], [ %.2285.i.i, %.critedge.i150.i ] + %599 = phi ptr [ @.str.340, %418 ], [ @.str.340, %595 ], [ @.str.340, %.preheader352.i.i ], [ %spec.select.i151.i, %.critedge.i150.i ] %600 = sub i32 %.1293.ph.pn.i.i, %.0125205.i %601 = load i32, ptr @ett_ipp_attr, align 4 %602 = call ptr (ptr, ptr, i32, i32, i32, ptr, ptr, ...) @proto_tree_add_subtree_format(ptr noundef %spec.select.i, ptr noundef %0, i32 noundef %.0125205.i, i32 noundef %600, i32 noundef %601, ptr noundef null, ptr noundef nonnull @.str.352, ptr noundef %.2130.i, ptr noundef nonnull %599, ptr noundef %343, ptr noundef %.2285349.i.i) diff --git a/bench/wolfssl/optimized/internal.ll b/bench/wolfssl/optimized/internal.ll index dab9927b3f5..fad41a35510 100644 --- a/bench/wolfssl/optimized/internal.ll +++ b/bench/wolfssl/optimized/internal.ll @@ -6820,9 +6820,8 @@ define range(i32 -322, 1) i32 @CheckHostName(ptr noundef readonly captures(addre %9 = icmp eq ptr %8, null br i1 %9, label %.thread22, label %.lr.ph.i -.lr.ph.i: ; preds = %6, %22 - %.032.i = phi i32 [ %.2.i, %22 ], [ 0, %6 ] - %.12131.i = phi ptr [ %23, %22 ], [ %8, %6 ] +.lr.ph.i: ; preds = %6, %15 + %.032.i = phi ptr [ %23, %15 ], [ %8, %6 ] %10 = getelementptr inbounds nuw i8, ptr %.12131.i, i64 16 %11 = load ptr, ptr %10, align 8, !tbaa !249 %12 = getelementptr inbounds nuw i8, ptr %.12131.i, i64 12 @@ -6832,28 +6831,9 @@ define range(i32 -322, 1) i32 @CheckHostName(ptr noundef readonly captures(addre br i1 %.not28.i, label %15, label %.thread24 15: ; preds = %.lr.ph.i - %16 = icmp ne ptr %11, null - %17 = icmp ne i32 %13, 0 - %or.cond.i = and i1 %16, %17 - br i1 %or.cond.i, label %18, label %22 - -18: ; preds = %15 - %19 = load i8, ptr %11, align 1, !tbaa !45 - %20 = icmp eq i8 %19, 42 - %spec.select.i = select i1 %20, i32 -1, i32 %.032.i - %21 = freeze i32 %spec.select.i - br label %22 - -22: ; preds = %18, %15 - %.2.i = phi i32 [ %.032.i, %15 ], [ %21, %18 ] - %23 = load ptr, ptr %.12131.i, align 8, !tbaa !252 - %.not27.i = icmp eq ptr %23, null - br i1 %.not27.i, label %CheckForAltNames.exit, label %.lr.ph.i, !llvm.loop !253 - -CheckForAltNames.exit: ; preds = %22 - %.not = icmp eq i32 %.2.i, 1 - %spec.select = select i1 %.not, i32 0, i32 -322 - br label %.thread24 + %16 = load ptr, ptr %.12131.i, align 8, !tbaa !252 + %17 = icmp eq ptr %16, null + br i1 %17, label %.thread24, label %.lr.ph.i, !llvm.loop !253 .thread22: ; preds = %6, %4 %24 = getelementptr inbounds nuw i8, ptr %0, i64 136 @@ -6865,8 +6845,8 @@ CheckForAltNames.exit: ; preds = %22 %.9 = select i1 %.not26, i32 -322, i32 0 br label %.thread24 -.thread24: ; preds = %.lr.ph.i, %CheckForAltNames.exit, %.thread22 - %.1 = phi i32 [ %spec.select, %CheckForAltNames.exit ], [ %.9, %.thread22 ], [ 0, %.lr.ph.i ] +.thread24: ; preds = %.lr.ph.i, %15, %.thread22 + %.1 = phi i32 [ %.9, %.thread22 ], [ 0, %.lr.ph.i ], [ -322, %15 ] ret i32 %.1 } @@ -6883,9 +6863,8 @@ define range(i32 -322, 1) i32 @CheckIPAddr(ptr noundef readonly captures(address %8 = icmp eq ptr %7, null br i1 %8, label %.thread22.i, label %.lr.ph.i.i -.lr.ph.i.i: ; preds = %5, %21 - %.032.i.i = phi i32 [ %.2.i.i, %21 ], [ 0, %5 ] - %.12131.i.i = phi ptr [ %22, %21 ], [ %7, %5 ] +.lr.ph.i.i: ; preds = %5, %14 + %.032.i.i = phi ptr [ %15, %14 ], [ %7, %5 ] %9 = getelementptr inbounds nuw i8, ptr %.12131.i.i, i64 16 %10 = load ptr, ptr %9, align 8, !tbaa !249 %11 = getelementptr inbounds nuw i8, ptr %.12131.i.i, i64 12 @@ -6895,28 +6874,9 @@ define range(i32 -322, 1) i32 @CheckIPAddr(ptr noundef readonly captures(address br i1 %.not28.i.i, label %14, label %CheckHostName.exit 14: ; preds = %.lr.ph.i.i - %15 = icmp ne ptr %10, null - %16 = icmp ne i32 %12, 0 - %or.cond.i.i = and i1 %15, %16 - br i1 %or.cond.i.i, label %17, label %21 - -17: ; preds = %14 - %18 = load i8, ptr %10, align 1, !tbaa !45 - %19 = icmp eq i8 %18, 42 - %spec.select.i.i = select i1 %19, i32 -1, i32 %.032.i.i - %20 = freeze i32 %spec.select.i.i - br label %21 - -21: ; preds = %17, %14 - %.2.i.i = phi i32 [ %.032.i.i, %14 ], [ %20, %17 ] - %22 = load ptr, ptr %.12131.i.i, align 8, !tbaa !252 - %.not27.i.i = icmp eq ptr %22, null - br i1 %.not27.i.i, label %CheckForAltNames.exit.i, label %.lr.ph.i.i, !llvm.loop !253 - -CheckForAltNames.exit.i: ; preds = %21 - %.not.i = icmp eq i32 %.2.i.i, 1 - %spec.select.i = select i1 %.not.i, i32 0, i32 -322 - br label %CheckHostName.exit + %15 = load ptr, ptr %.032.i.i, align 8, !tbaa !252 + %16 = icmp eq ptr %15, null + br i1 %16, label %CheckHostName.exit, label %.lr.ph.i.i, !llvm.loop !253 .thread22.i: ; preds = %5, %2 %23 = getelementptr inbounds nuw i8, ptr %0, i64 136 @@ -6928,8 +6888,8 @@ CheckForAltNames.exit.i: ; preds = %21 %.9.i = select i1 %.not26.i, i32 -322, i32 0 br label %CheckHostName.exit -CheckHostName.exit: ; preds = %.lr.ph.i.i, %CheckForAltNames.exit.i, %.thread22.i - %.1.i = phi i32 [ %spec.select.i, %CheckForAltNames.exit.i ], [ %.9.i, %.thread22.i ], [ 0, %.lr.ph.i.i ] +CheckHostName.exit: ; preds = %.lr.ph.i.i, %14, %.thread22.i + %.1.i = phi i32 [ %.9.i, %.thread22.i ], [ -322, %14 ], [ 0, %.lr.ph.i.i ] ret i32 %.1.i } diff --git a/bench/yosys/optimized/ffmerge.ll b/bench/yosys/optimized/ffmerge.ll index 062c6872a15..7dac5a1b0c3 100644 --- a/bench/yosys/optimized/ffmerge.ll +++ b/bench/yosys/optimized/ffmerge.ll @@ -2256,7 +2256,6 @@ _ZNSt6vectorIN5Yosys5RTLIL5StateESaIS2_EE17_M_realloc_insertIJS2_EEEvN9__gnu_cxx br label %_ZNSt6vectorIN5Yosys5RTLIL5StateESaIS2_EE9push_backEOS2_.exit162 _ZNSt6vectorIN5Yosys5RTLIL5StateESaIS2_EE9push_backEOS2_.exit162.thread293: ; preds = %_ZN5Yosys7hashlib4poolISt4pairIPNS_5RTLIL4CellEiENS0_8hash_opsIS6_EEE6insertEOS6_.exit, %412, %415, %418, %421, %424, %427, %433, %434, %442, %443, %451, %452, %460, %461, %467, %475, %476, %482, %485 - %.098457.lcssa502 = phi i8 [ %.098457, %_ZN5Yosys7hashlib4poolISt4pairIPNS_5RTLIL4CellEiENS0_8hash_opsIS6_EEE6insertEOS6_.exit ], [ 1, %412 ], [ 1, %415 ], [ 1, %418 ], [ 1, %421 ], [ 1, %424 ], [ 1, %427 ], [ 1, %433 ], [ 1, %434 ], [ 1, %442 ], [ 1, %443 ], [ 1, %451 ], [ 1, %452 ], [ 1, %460 ], [ 1, %461 ], [ 1, %467 ], [ 1, %475 ], [ 1, %476 ], [ 1, %482 ], [ 1, %485 ] call void @_ZN5Yosys6FfDataD2Ev(ptr noundef nonnull align 8 dereferenceable(800) %17) #25 call void @llvm.lifetime.end.p0(i64 800, ptr nonnull %17) #25 br label %.loopexit.sink.split @@ -2356,12 +2355,11 @@ _ZNSt6vectorIN5Yosys5RTLIL5StateESaIS2_EE9push_backEOS2_.exit162.thread288: ; pr br label %679 .loopexit.sink.split: ; preds = %325, %322, %_ZNSt6vectorIN5Yosys5RTLIL5StateESaIS2_EE9push_backEOS2_.exit162.thread293 - %.098412.ph = phi i8 [ %.098457.lcssa502, %_ZNSt6vectorIN5Yosys5RTLIL5StateESaIS2_EE9push_backEOS2_.exit162.thread293 ], [ %.098457, %322 ], [ %.098457, %325 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #25 br label %.loopexit .loopexit: ; preds = %_ZNSt6vectorIN5Yosys5RTLIL5StateESaIS2_EE9push_backEOS2_.exit162.thread288, %.loopexit.sink.split, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit135 - %.098412 = phi i8 [ 0, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit135 ], [ %.098412.ph, %.loopexit.sink.split ], [ %.2100291, %_ZNSt6vectorIN5Yosys5RTLIL5StateESaIS2_EE9push_backEOS2_.exit162.thread288 ] + %.098412 = phi i8 [ 0, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit135 ], [ %.098457, %.loopexit.sink.split ], [ %.2100291, %_ZNSt6vectorIN5Yosys5RTLIL5StateESaIS2_EE9push_backEOS2_.exit162.thread288 ] %.not296390 = phi i1 [ true, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit135 ], [ false, %.loopexit.sink.split ], [ true, %_ZNSt6vectorIN5Yosys5RTLIL5StateESaIS2_EE9push_backEOS2_.exit162.thread288 ] %678 = trunc nuw i8 %.098412 to i1 %.5 = select i1 %.not296390, i1 %678, i1 false diff --git a/bench/z3/optimized/sat_solver.ll b/bench/z3/optimized/sat_solver.ll index b4176adb20f..d2ad98abdc9 100644 --- a/bench/z3/optimized/sat_solver.ll +++ b/bench/z3/optimized/sat_solver.ll @@ -10632,7 +10632,7 @@ define hidden noundef i32 @_ZNK3sat6solver16select_watch_litERKNS_6clauseEj(ptr %.133 = phi i32 [ %.03237, %14 ], [ %.03237, %33 ], [ %.03237, %21 ], [ %36, %35 ], [ %.03237, %51 ], [ %.03237, %39 ] %.131 = phi i32 [ %.03038, %14 ], [ %34, %33 ], [ %.03038, %21 ], [ %.03038, %35 ], [ %.03038, %51 ], [ %.03038, %39 ] %.1 = phi i32 [ %.02939, %14 ], [ %.02939, %33 ], [ %.02939, %21 ], [ %.02939, %35 ], [ %52, %51 ], [ %.02939, %39 ] - %indvars.iv.next = add i64 %indvars.iv, 1 + %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 %._crit_edge, label %14, !llvm.loop !312 } @@ -60013,9 +60013,8 @@ _ZNK6vectorIjLb0EjE4sizeEv.exit.i20.i907: ; preds = %_ZNK6vectorIjLb0EjE .noexc329: ; preds = %_ZNK6vectorIjLb0EjE4sizeEv.exit.i20.i907 %1526 = icmp ult i32 %.05.lcssa.i.i887, %1525 - %cond.fr1548 = freeze i1 %1526 - %spec.select = select i1 %cond.fr1548, i64 %1447, i64 %1450 - %spec.select1597 = select i1 %cond.fr1548, i32 %1444, i32 %1443 + %spec.select = select i1 %1526, i64 %1447, i64 %1450 + %spec.select = select i1 %1526, i32 %1444, i32 %1443 br label %.thread1552 .thread1552: ; preds = %.noexc329, %_ZN9table2mapI17default_map_entryIj8uint_setE6u_hash4u_eqEixERKj.exit15.i901, %_ZNK6vectorIjLb0EjE4sizeEv.exit.lr.ph.i16.i903, %._crit_edge40.i.i @@ -63624,8 +63623,7 @@ _ZNK6vectorIjLb0EjE4sizeEv.exit.i20.i52: ; preds = %_ZNK6vectorIjLb0EjE _ZZN11max_cliquesIN3sat11neg_literalEE7cliquesERK7svectorIjjER5u_mapI8uint_setER6vectorIS4_Lb1EjEENKUljjE_clEjj.exit59: ; preds = %_ZNK6vectorIjLb0EjE4sizeEv.exit.i20.i52 %97 = icmp ult i32 %.05.lcssa.i.i32, %96 %98 = or disjoint i64 %20, 1 - %cond.fr = freeze i1 %97 - %spec.select = select i1 %cond.fr, i64 %98, i64 %21 + %spec.select = select i1 %97, i64 %98, i64 %21 %.phi.trans.insert = getelementptr inbounds i32, ptr %0, i64 %spec.select %.pre = load i32, ptr %.phi.trans.insert, align 4, !tbaa !182 br label %_ZZN11max_cliquesIN3sat11neg_literalEE7cliquesERK7svectorIjjER5u_mapI8uint_setER6vectorIS4_Lb1EjEENKUljjE_clEjj.exit59.thread @@ -64102,8 +64100,7 @@ _ZNK6vectorIjLb0EjE4sizeEv.exit.i20.i61: ; preds = %_ZNK6vectorIjLb0EjE _ZZN11max_cliquesIN3sat11neg_literalEE7cliquesERK7svectorIjjER5u_mapI8uint_setER6vectorIS4_Lb1EjEENKUljjE_clEjj.exit68: ; preds = %_ZNK6vectorIjLb0EjE4sizeEv.exit.i20.i61 %103 = icmp ult i32 %.05.lcssa.i.i41, %102 %104 = or disjoint i64 %26, 1 - %cond.fr = freeze i1 %103 - %spec.select = select i1 %cond.fr, i64 %104, i64 %27 + %spec.select = select i1 %103, i64 %104, i64 %27 %.phi.trans.insert = getelementptr inbounds i32, ptr %0, i64 %spec.select %.pre = load i32, ptr %.phi.trans.insert, align 4, !tbaa !182 br label %_ZZN11max_cliquesIN3sat11neg_literalEE7cliquesERK7svectorIjjER5u_mapI8uint_setER6vectorIS4_Lb1EjEENKUljjE_clEjj.exit68.thread diff --git a/bench/z3/optimized/smt_consequences.ll b/bench/z3/optimized/smt_consequences.ll index 1e4c9881404..98512485977 100644 --- a/bench/z3/optimized/smt_consequences.ll +++ b/bench/z3/optimized/smt_consequences.ll @@ -18753,9 +18753,8 @@ _ZNK6vectorIjLb0EjE4sizeEv.exit.i20.i909: ; preds = %_ZNK6vectorIjLb0EjE .noexc331: ; preds = %_ZNK6vectorIjLb0EjE4sizeEv.exit.i20.i909 %1527 = icmp ult i32 %.05.lcssa.i.i889, %1526 - %cond.fr1550 = freeze i1 %1527 - %spec.select = select i1 %cond.fr1550, i64 %1448, i64 %1451 - %spec.select1599 = select i1 %cond.fr1550, i32 %1445, i32 %1444 + %spec.select = select i1 %1527, i64 %1448, i64 %1451 + %spec.select = select i1 %1527, i32 %1445, i32 %1444 br label %.thread1554 .thread1554: ; preds = %.noexc331, %_ZN9table2mapI17default_map_entryIj8uint_setE6u_hash4u_eqEixERKj.exit15.i903, %_ZNK6vectorIjLb0EjE4sizeEv.exit.lr.ph.i16.i905, %._crit_edge40.i.i @@ -22516,8 +22515,7 @@ _ZNK6vectorIjLb0EjE4sizeEv.exit.i20.i52: ; preds = %_ZNK6vectorIjLb0EjE _ZZN11max_cliquesIN3smt11neg_literalEE7cliquesERK7svectorIjjER5u_mapI8uint_setER6vectorIS4_Lb1EjEENKUljjE_clEjj.exit59: ; preds = %_ZNK6vectorIjLb0EjE4sizeEv.exit.i20.i52 %97 = icmp ult i32 %.05.lcssa.i.i32, %96 %98 = or disjoint i64 %20, 1 - %cond.fr = freeze i1 %97 - %spec.select = select i1 %cond.fr, i64 %98, i64 %21 + %spec.select = select i1 %97, i64 %98, i64 %21 %.phi.trans.insert = getelementptr inbounds i32, ptr %0, i64 %spec.select %.pre = load i32, ptr %.phi.trans.insert, align 4, !tbaa !519 br label %_ZZN11max_cliquesIN3smt11neg_literalEE7cliquesERK7svectorIjjER5u_mapI8uint_setER6vectorIS4_Lb1EjEENKUljjE_clEjj.exit59.thread @@ -22994,8 +22992,7 @@ _ZNK6vectorIjLb0EjE4sizeEv.exit.i20.i61: ; preds = %_ZNK6vectorIjLb0EjE _ZZN11max_cliquesIN3smt11neg_literalEE7cliquesERK7svectorIjjER5u_mapI8uint_setER6vectorIS4_Lb1EjEENKUljjE_clEjj.exit68: ; preds = %_ZNK6vectorIjLb0EjE4sizeEv.exit.i20.i61 %103 = icmp ult i32 %.05.lcssa.i.i41, %102 %104 = or disjoint i64 %26, 1 - %cond.fr = freeze i1 %103 - %spec.select = select i1 %cond.fr, i64 %104, i64 %27 + %spec.select = select i1 %103, i64 %104, i64 %27 %.phi.trans.insert = getelementptr inbounds i32, ptr %0, i64 %spec.select %.pre = load i32, ptr %.phi.trans.insert, align 4, !tbaa !519 br label %_ZZN11max_cliquesIN3smt11neg_literalEE7cliquesERK7svectorIjjER5u_mapI8uint_setER6vectorIS4_Lb1EjEENKUljjE_clEjj.exit68.thread diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c5409e09ef4..b5365429f67 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/150420 export COMPTIME_MODE=0 # Please rebase manually