diff --git a/bench/abseil-cpp/optimized/time_zone_info.ll b/bench/abseil-cpp/optimized/time_zone_info.ll index 39d2a474b15..217b260a387 100644 --- a/bench/abseil-cpp/optimized/time_zone_info.ll +++ b/bench/abseil-cpp/optimized/time_zone_info.ll @@ -6979,7 +6979,7 @@ _ZN4absl13time_internal4cctz12_GLOBAL__N_118FileZoneInfoSource4OpenERKNSt7__cxx1 br i1 %or.cond201.i.i.i.i, label %_ZNSt10unique_ptrI8_IO_FILEPFiPS0_EED2Ev.exit92.sink.split.i.i.i.i, label %.lr.ph.i.i.i.i 132: ; preds = %152 - %133 = add i64 %.041162.i.i.i.i, 1 + %133 = add nuw nsw i64 %.041162.i.i.i.i, 1 %.not58.i.i.i.i = icmp eq i64 %133, %130 br i1 %.not58.i.i.i.i, label %_ZNSt10unique_ptrI8_IO_FILEPFiPS0_EED2Ev.exit92.sink.split.i.i.i.i, label %.lr.ph.i.i.i.i, !llvm.loop !289 diff --git a/bench/arrow/optimized/array_dict.ll b/bench/arrow/optimized/array_dict.ll index ead900ccd2a..6e0f9d2c5a8 100644 --- a/bench/arrow/optimized/array_dict.ll +++ b/bench/arrow/optimized/array_dict.ll @@ -81322,20 +81322,17 @@ _ZL21XXH3_scrambleAcc_sse2PvPKv.exit.i: ; preds = %_ZL20XXH3_accumulat ._crit_edge: ; preds = %_ZL21XXH3_scrambleAcc_sse2PvPKv.exit.i, %115 %160 = mul nuw nsw i64 %117, 576 - %161 = icmp ult i64 %.recomposed, 1152 - tail call void @llvm.assume(i1 %161) - %162 = getelementptr inbounds nuw i8, ptr %0, i64 %160 + %161 = lshr i64 %.recomposed, 6 + %162 = icmp ult i64 %.recomposed, 1152 + tail call void @llvm.assume(i1 %162) + %163 = getelementptr inbounds nuw i8, ptr %0, i64 %160 %.not10 = icmp samesign ult i64 %.recomposed, 64 br i1 %.not10, label %_ZL27XXH3_hashLong_internal_loopPmPKhmS1_mPFvS_S1_S1_mEPFvPvPKvE.exit, label %.lr.ph8.preheader -.lr.ph8.preheader: ; preds = %._crit_edge - %163 = lshr i64 %.recomposed, 6 - br label %.lr.ph8 - -.lr.ph8: ; preds = %.lr.ph8.preheader, %_ZL24XXH3_accumulate_512_sse2PvPKvS1_.exit7 - %.0.i.i6 = phi i64 [ %186, %_ZL24XXH3_accumulate_512_sse2PvPKvS1_.exit7 ], [ 0, %.lr.ph8.preheader ] +.lr.ph8.preheader: ; preds = %._crit_edge, %_ZL24XXH3_accumulate_512_sse2PvPKvS1_.exit7 + %.0.i.i6 = phi i64 [ %186, %_ZL24XXH3_accumulate_512_sse2PvPKvS1_.exit7 ], [ 0, %._crit_edge ] %164 = shl nuw nsw i64 %.0.i.i6, 6 - %165 = getelementptr inbounds nuw i8, ptr %162, i64 %164 + %165 = getelementptr inbounds nuw i8, ptr %163, i64 %164 %166 = getelementptr inbounds nuw i8, ptr %165, i64 320 tail call void @llvm.prefetch.p0(ptr nonnull %166, i32 0, i32 3, i32 1) %167 = shl nuw nsw i64 %.0.i.i6, 3 @@ -81367,7 +81364,7 @@ _ZL21XXH3_scrambleAcc_sse2PvPKv.exit.i: ; preds = %_ZL20XXH3_accumulat _ZL24XXH3_accumulate_512_sse2PvPKvS1_.exit7: ; preds = %169 %186 = add nuw nsw i64 %.0.i.i6, 1 - %exitcond15.not = icmp eq i64 %186, %163 + %exitcond15.not = icmp eq i64 %186, %161 br i1 %exitcond15.not, label %_ZL27XXH3_hashLong_internal_loopPmPKhmS1_mPFvS_S1_S1_mEPFvPvPKvE.exit, label %.lr.ph8, !llvm.loop !3448 _ZL27XXH3_hashLong_internal_loopPmPKhmS1_mPFvS_S1_S1_mEPFvPvPKvE.exit: ; preds = %_ZL24XXH3_accumulate_512_sse2PvPKvS1_.exit7, %._crit_edge diff --git a/bench/assimp/optimized/FBXExportProperty.ll b/bench/assimp/optimized/FBXExportProperty.ll index d0a8739422b..02d8ad4414b 100644 --- a/bench/assimp/optimized/FBXExportProperty.ll +++ b/bench/assimp/optimized/FBXExportProperty.ll @@ -1216,13 +1216,9 @@ _ZN6Assimp12StreamWriterILb0ELb0EE5PutU4Ej.exit109: ; preds = %_ZN6Assimp12Strea %.not181 = icmp ult i64 %146, 4 br i1 %.not181, label %.loopexit, label %.lr.ph176.preheader -.lr.ph176.preheader: ; preds = %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU4Ej.exit109 - %umax191 = tail call i64 @llvm.umax.i64(i64 %147, i64 1) - br label %.lr.ph176 - -.lr.ph176: ; preds = %.lr.ph176.preheader, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutI4Ei.exit113 - %191 = phi i64 [ %205, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutI4Ei.exit113 ], [ %190, %.lr.ph176.preheader ] - %.068175 = phi i64 [ %206, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutI4Ei.exit113 ], [ 0, %.lr.ph176.preheader ] +.lr.ph176.preheader: ; preds = %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU4Ej.exit109, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutI4Ei.exit113 + %191 = phi i64 [ %205, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutI4Ei.exit113 ], [ %190, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU4Ej.exit109 ] + %.068175 = phi i64 [ %206, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutI4Ei.exit113 ], [ 0, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU4Ej.exit109 ] %192 = getelementptr inbounds nuw i32, ptr %23, i64 %.068175 %193 = load i32, ptr %192, align 4 %194 = add i64 %191, 4 @@ -1249,7 +1245,7 @@ _ZN6Assimp12StreamWriterILb0ELb0EE5PutI4Ei.exit113: ; preds = %.lr.ph176, %200 %205 = add i64 %204, 4 store i64 %205, ptr %6, align 8 %206 = add nuw nsw i64 %.068175, 1 - %exitcond192.not = icmp eq i64 %206, %umax191 + %exitcond192.not = icmp eq i64 %206, %147 br i1 %exitcond192.not, label %.loopexit, label %.lr.ph176, !llvm.loop !13 207: ; preds = %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU1Eh.exit @@ -1336,15 +1332,11 @@ _ZN6Assimp12StreamWriterILb0ELb0EE5PutU4Ej.exit125: ; preds = %_ZN6Assimp12Strea %256 = add i64 %255, 4 store i64 %256, ptr %6, align 8 %.not180 = icmp ult i64 %212, 8 - br i1 %.not180, label %.loopexit, label %.lr.ph174.preheader - -.lr.ph174.preheader: ; preds = %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU4Ej.exit125 - %umax189 = tail call i64 @llvm.umax.i64(i64 %213, i64 1) - br label %.lr.ph174 + br i1 %.not180, label %.loopexit, label %.lr.ph174 -.lr.ph174: ; preds = %.lr.ph174.preheader, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutI8El.exit129 - %257 = phi i64 [ %271, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutI8El.exit129 ], [ %256, %.lr.ph174.preheader ] - %.067173 = phi i64 [ %272, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutI8El.exit129 ], [ 0, %.lr.ph174.preheader ] +.lr.ph174: ; preds = %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU4Ej.exit125, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutI8El.exit129 + %257 = phi i64 [ %271, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutI8El.exit129 ], [ %256, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU4Ej.exit125 ] + %.067173 = phi i64 [ %272, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutI8El.exit129 ], [ 0, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU4Ej.exit125 ] %258 = getelementptr inbounds nuw i64, ptr %23, i64 %.067173 %259 = load i64, ptr %258, align 8 %260 = add i64 %257, 8 @@ -1371,7 +1363,7 @@ _ZN6Assimp12StreamWriterILb0ELb0EE5PutI8El.exit129: ; preds = %.lr.ph174, %266 %271 = add i64 %270, 8 store i64 %271, ptr %6, align 8 %272 = add nuw nsw i64 %.067173, 1 - %exitcond190.not = icmp eq i64 %272, %umax189 + %exitcond190.not = icmp eq i64 %272, %213 br i1 %exitcond190.not, label %.loopexit, label %.lr.ph174, !llvm.loop !14 273: ; preds = %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU1Eh.exit @@ -1458,15 +1450,11 @@ _ZN6Assimp12StreamWriterILb0ELb0EE5PutU4Ej.exit141: ; preds = %_ZN6Assimp12Strea %322 = add i64 %321, 4 store i64 %322, ptr %6, align 8 %.not179 = icmp ult i64 %278, 4 - br i1 %.not179, label %.loopexit, label %.lr.ph172.preheader - -.lr.ph172.preheader: ; preds = %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU4Ej.exit141 - %umax187 = tail call i64 @llvm.umax.i64(i64 %279, i64 1) - br label %.lr.ph172 + br i1 %.not179, label %.loopexit, label %.lr.ph172 -.lr.ph172: ; preds = %.lr.ph172.preheader, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutF4Ef.exit145 - %323 = phi i64 [ %337, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutF4Ef.exit145 ], [ %322, %.lr.ph172.preheader ] - %.066171 = phi i64 [ %338, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutF4Ef.exit145 ], [ 0, %.lr.ph172.preheader ] +.lr.ph172: ; preds = %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU4Ej.exit141, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutF4Ef.exit145 + %323 = phi i64 [ %337, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutF4Ef.exit145 ], [ %322, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU4Ej.exit141 ] + %.066171 = phi i64 [ %338, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutF4Ef.exit145 ], [ 0, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU4Ej.exit141 ] %324 = getelementptr inbounds nuw float, ptr %23, i64 %.066171 %325 = load float, ptr %324, align 4 %326 = add i64 %323, 4 @@ -1493,7 +1481,7 @@ _ZN6Assimp12StreamWriterILb0ELb0EE5PutF4Ef.exit145: ; preds = %.lr.ph172, %332 %337 = add i64 %336, 4 store i64 %337, ptr %6, align 8 %338 = add nuw nsw i64 %.066171, 1 - %exitcond188.not = icmp eq i64 %338, %umax187 + %exitcond188.not = icmp eq i64 %338, %279 br i1 %exitcond188.not, label %.loopexit, label %.lr.ph172, !llvm.loop !15 339: ; preds = %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU1Eh.exit @@ -1580,15 +1568,11 @@ _ZN6Assimp12StreamWriterILb0ELb0EE5PutU4Ej.exit157: ; preds = %_ZN6Assimp12Strea %388 = add i64 %387, 4 store i64 %388, ptr %6, align 8 %.not = icmp ult i64 %344, 8 - br i1 %.not, label %.loopexit, label %.lr.ph.preheader - -.lr.ph.preheader: ; preds = %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU4Ej.exit157 - %umax = tail call i64 @llvm.umax.i64(i64 %345, i64 1) - br label %.lr.ph + br i1 %.not, label %.loopexit, label %.lr.ph -.lr.ph: ; preds = %.lr.ph.preheader, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutF8Ed.exit161 - %389 = phi i64 [ %403, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutF8Ed.exit161 ], [ %388, %.lr.ph.preheader ] - %.065170 = phi i64 [ %404, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutF8Ed.exit161 ], [ 0, %.lr.ph.preheader ] +.lr.ph: ; preds = %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU4Ej.exit157, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutF8Ed.exit161 + %389 = phi i64 [ %403, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutF8Ed.exit161 ], [ %388, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU4Ej.exit157 ] + %.065170 = phi i64 [ %404, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutF8Ed.exit161 ], [ 0, %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU4Ej.exit157 ] %390 = getelementptr inbounds nuw double, ptr %23, i64 %.065170 %391 = load double, ptr %390, align 8 %392 = add i64 %389, 8 @@ -1615,7 +1599,7 @@ _ZN6Assimp12StreamWriterILb0ELb0EE5PutF8Ed.exit161: ; preds = %.lr.ph, %398 %403 = add i64 %402, 8 store i64 %403, ptr %6, align 8 %404 = add nuw nsw i64 %.065170, 1 - %exitcond.not = icmp eq i64 %404, %umax + %exitcond.not = icmp eq i64 %404, %345 br i1 %exitcond.not, label %.loopexit, label %.lr.ph, !llvm.loop !16 405: ; preds = %_ZN6Assimp12StreamWriterILb0ELb0EE5PutU1Eh.exit @@ -2301,11 +2285,7 @@ _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit188: ; preds = %171, % ._crit_edge299: ; preds = %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit191, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit188 %177 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull @.str.6, i64 noundef 3) %.not326 = icmp ult i64 %42, 4 - br i1 %.not326, label %._crit_edge304, label %.lr.ph303.preheader - -.lr.ph303.preheader: ; preds = %._crit_edge299 - %umax342 = call i64 @llvm.umax.i64(i64 %164, i64 1) - br label %.lr.ph303 + br i1 %.not326, label %._crit_edge304, label %.lr.ph303 .lr.ph298: ; preds = %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit188, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit191 %.0144297 = phi i32 [ %188, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit191 ], [ 0, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit188 ] @@ -2359,9 +2339,9 @@ _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit194: ; preds = %195, % %199 = icmp sgt i32 %2, 0 br i1 %199, label %.lr.ph306, label %._crit_edge307 -.lr.ph303: ; preds = %.lr.ph303.preheader, %225 - %.0143301 = phi i64 [ %229, %225 ], [ 0, %.lr.ph303.preheader ] - %.0154300 = phi i64 [ %.1155, %225 ], [ 0, %.lr.ph303.preheader ] +.lr.ph303: ; preds = %._crit_edge299, %225 + %.0143301 = phi i64 [ %229, %225 ], [ 0, %._crit_edge299 ] + %.0154300 = phi i64 [ %.1155, %225 ], [ 0, %._crit_edge299 ] %.not165 = icmp eq i64 %.0143301, 0 br i1 %.not165, label %211, label %200 @@ -2424,7 +2404,7 @@ _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit200: ; preds = %221, % %227 = load i32, ptr %226, align 4 %228 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1, i32 noundef %227) %229 = add nuw nsw i64 %.0143301, 1 - %exitcond343.not = icmp eq i64 %229, %umax342 + %exitcond343.not = icmp eq i64 %229, %164 br i1 %exitcond343.not, label %._crit_edge304, label %.lr.ph303, !llvm.loop !29 ._crit_edge307: ; preds = %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit203, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit194 @@ -2490,11 +2470,7 @@ _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit206: ; preds = %250, % ._crit_edge287: ; preds = %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit209, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit206 %256 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull @.str.6, i64 noundef 3) %.not325 = icmp ult i64 %42, 8 - br i1 %.not325, label %._crit_edge292, label %.lr.ph291.preheader - -.lr.ph291.preheader: ; preds = %._crit_edge287 - %umax338 = call i64 @llvm.umax.i64(i64 %243, i64 1) - br label %.lr.ph291 + br i1 %.not325, label %._crit_edge292, label %.lr.ph291 .lr.ph286: ; preds = %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit206, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit209 %.0141285 = phi i32 [ %267, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit209 ], [ 0, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit206 ] @@ -2548,9 +2524,9 @@ _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit212: ; preds = %274, % %278 = icmp sgt i32 %2, 0 br i1 %278, label %.lr.ph294, label %._crit_edge295 -.lr.ph291: ; preds = %.lr.ph291.preheader, %304 - %.0140289 = phi i64 [ %308, %304 ], [ 0, %.lr.ph291.preheader ] - %.2156288 = phi i64 [ %.3, %304 ], [ 0, %.lr.ph291.preheader ] +.lr.ph291: ; preds = %._crit_edge287, %304 + %.0140289 = phi i64 [ %308, %304 ], [ 0, %._crit_edge287 ] + %.2156288 = phi i64 [ %.3, %304 ], [ 0, %._crit_edge287 ] %.not163 = icmp eq i64 %.0140289, 0 br i1 %.not163, label %290, label %279 @@ -2613,7 +2589,7 @@ _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit218: ; preds = %300, % %306 = load i64, ptr %305, align 8 %307 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo9_M_insertIlEERSoT_(ptr noundef nonnull align 8 dereferenceable(8) %1, i64 noundef %306) %308 = add nuw nsw i64 %.0140289, 1 - %exitcond339.not = icmp eq i64 %308, %umax338 + %exitcond339.not = icmp eq i64 %308, %243 br i1 %exitcond339.not, label %._crit_edge292, label %.lr.ph291, !llvm.loop !32 ._crit_edge295: ; preds = %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit221, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit212 @@ -2679,11 +2655,7 @@ _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit224: ; preds = %329, % ._crit_edge275: ; preds = %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit227, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit224 %335 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull @.str.6, i64 noundef 3) %.not324 = icmp ult i64 %42, 4 - br i1 %.not324, label %._crit_edge280, label %.lr.ph279.preheader - -.lr.ph279.preheader: ; preds = %._crit_edge275 - %umax334 = call i64 @llvm.umax.i64(i64 %322, i64 1) - br label %.lr.ph279 + br i1 %.not324, label %._crit_edge280, label %.lr.ph279 .lr.ph274: ; preds = %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit224, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit227 %.0138273 = phi i32 [ %346, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit227 ], [ 0, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit224 ] @@ -2737,9 +2709,9 @@ _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit230: ; preds = %353, % %357 = icmp sgt i32 %2, 0 br i1 %357, label %.lr.ph282, label %._crit_edge283 -.lr.ph279: ; preds = %.lr.ph279.preheader, %383 - %.0137277 = phi i64 [ %388, %383 ], [ 0, %.lr.ph279.preheader ] - %.4276 = phi i64 [ %.5, %383 ], [ 0, %.lr.ph279.preheader ] +.lr.ph279: ; preds = %._crit_edge275, %383 + %.0137277 = phi i64 [ %388, %383 ], [ 0, %._crit_edge275 ] + %.4276 = phi i64 [ %.5, %383 ], [ 0, %._crit_edge275 ] %.not161 = icmp eq i64 %.0137277, 0 br i1 %.not161, label %369, label %358 @@ -2803,7 +2775,7 @@ _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit236: ; preds = %379, % %386 = fpext float %385 to double %387 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo9_M_insertIdEERSoT_(ptr noundef nonnull align 8 dereferenceable(8) %1, double noundef %386) %388 = add nuw nsw i64 %.0137277, 1 - %exitcond335.not = icmp eq i64 %388, %umax334 + %exitcond335.not = icmp eq i64 %388, %322 br i1 %exitcond335.not, label %._crit_edge280, label %.lr.ph279, !llvm.loop !35 ._crit_edge283: ; preds = %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit239, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit230 @@ -2875,11 +2847,7 @@ _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit242: ; preds = %409, % %420 = getelementptr inbounds nuw i8, ptr %419, i64 8 store i64 15, ptr %420, align 8 %.not = icmp ult i64 %42, 8 - br i1 %.not, label %._crit_edge268, label %.lr.ph267.preheader - -.lr.ph267.preheader: ; preds = %._crit_edge - %umax = call i64 @llvm.umax.i64(i64 %402, i64 1) - br label %.lr.ph267 + br i1 %.not, label %._crit_edge268, label %.lr.ph267 .lr.ph: ; preds = %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit242, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit245 %.0135263 = phi i32 [ %431, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit245 ], [ 0, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit242 ] @@ -2933,9 +2901,9 @@ _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit248: ; preds = %438, % %442 = icmp sgt i32 %2, 0 br i1 %442, label %.lr.ph270, label %._crit_edge271 -.lr.ph267: ; preds = %.lr.ph267.preheader, %468 - %.0134265 = phi i64 [ %472, %468 ], [ 0, %.lr.ph267.preheader ] - %.6264 = phi i64 [ %.7, %468 ], [ 0, %.lr.ph267.preheader ] +.lr.ph267: ; preds = %._crit_edge, %468 + %.0134265 = phi i64 [ %472, %468 ], [ 0, %._crit_edge ] + %.6264 = phi i64 [ %.7, %468 ], [ 0, %._crit_edge ] %.not159 = icmp eq i64 %.0134265, 0 br i1 %.not159, label %454, label %443 @@ -2998,7 +2966,7 @@ _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit254: ; preds = %464, % %470 = load double, ptr %469, align 8 %471 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo9_M_insertIdEERSoT_(ptr noundef nonnull align 8 dereferenceable(8) %1, double noundef %470) %472 = add nuw nsw i64 %.0134265, 1 - %exitcond331.not = icmp eq i64 %472, %umax + %exitcond331.not = icmp eq i64 %472, %402 br i1 %exitcond331.not, label %._crit_edge268, label %.lr.ph267, !llvm.loop !38 ._crit_edge271: ; preds = %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit257, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit248 diff --git a/bench/bdwgc/optimized/gc.ll b/bench/bdwgc/optimized/gc.ll index 5e825b79533..b0049795724 100644 --- a/bench/bdwgc/optimized/gc.ll +++ b/bench/bdwgc/optimized/gc.ll @@ -6758,15 +6758,12 @@ GC_find_header.exit: ; preds = %127 %141 = getelementptr inbounds nuw i8, ptr %135, i64 32 %142 = load i64, ptr %141, align 8, !tbaa !58 %143 = add i64 %142, -32 - %.not66 = icmp ult i64 %143, 8 - br i1 %.not66, label %._crit_edge, label %.lr.ph.preheader - -.lr.ph.preheader: ; preds = %140 %144 = lshr i64 %143, 3 - br label %.lr.ph + %.not66 = icmp ult i64 %143, 8 + br i1 %.not66, label %._crit_edge, label %.lr.ph -.lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph - %.03565 = phi i64 [ %146, %.lr.ph ], [ 0, %.lr.ph.preheader ] +.lr.ph: ; preds = %140, %.lr.ph + %.03565 = phi i64 [ %146, %.lr.ph ], [ 0, %140 ] %145 = getelementptr inbounds nuw i64, ptr %0, i64 %.03565 store i64 -1171307680339476753, ptr %145, align 8, !tbaa !10 %146 = add nuw nsw i64 %.03565, 1 @@ -37820,15 +37817,12 @@ GC_find_header.exit.i.i36: ; preds = %163 %174 = getelementptr inbounds nuw i8, ptr %173, i64 32 %175 = load i64, ptr %174, align 8, !tbaa !58 %176 = add i64 %175, -32 - %.not17.i.i = icmp ult i64 %176, 8 - br i1 %.not17.i.i, label %GC_add_leaked.exit, label %.lr.ph.preheader.i.i - -.lr.ph.preheader.i.i: ; preds = %GC_find_header.exit.i.i36 %177 = lshr i64 %176, 3 - br label %.lr.ph.i.i + %.not17.i.i = icmp ult i64 %176, 8 + br i1 %.not17.i.i, label %GC_add_leaked.exit, label %.lr.ph.i.i -.lr.ph.i.i: ; preds = %204, %.lr.ph.preheader.i.i - %.01116.i.i = phi i64 [ %205, %204 ], [ 0, %.lr.ph.preheader.i.i ] +.lr.ph.i.i: ; preds = %GC_find_header.exit.i.i36, %204 + %.01116.i.i = phi i64 [ %205, %204 ], [ 0, %GC_find_header.exit.i.i36 ] %178 = getelementptr inbounds nuw ptr, ptr %119, i64 %.01116.i.i %179 = load ptr, ptr %178, align 8, !tbaa !42 %.not.i.i37 = icmp eq ptr %179, inttoptr (i64 -1171307680339476753 to ptr) @@ -38411,15 +38405,12 @@ GC_find_header.exit.i: ; preds = %47 %58 = getelementptr inbounds nuw i8, ptr %57, i64 32 %59 = load i64, ptr %58, align 8, !tbaa !58 %60 = add i64 %59, -32 - %.not17.i = icmp ult i64 %60, 8 - br i1 %.not17.i, label %GC_set_mark_bit.exit, label %.lr.ph.preheader.i - -.lr.ph.preheader.i: ; preds = %GC_find_header.exit.i %61 = lshr i64 %60, 3 - br label %.lr.ph.i + %.not17.i = icmp ult i64 %60, 8 + br i1 %.not17.i, label %GC_set_mark_bit.exit, label %.lr.ph.i -.lr.ph.i: ; preds = %88, %.lr.ph.preheader.i - %.01116.i = phi i64 [ %89, %88 ], [ 0, %.lr.ph.preheader.i ] +.lr.ph.i: ; preds = %GC_find_header.exit.i, %88 + %.01116.i = phi i64 [ %89, %88 ], [ 0, %GC_find_header.exit.i ] %62 = getelementptr inbounds nuw ptr, ptr %3, i64 %.01116.i %63 = load ptr, ptr %62, align 8, !tbaa !42 %.not.i = icmp eq ptr %63, inttoptr (i64 -1171307680339476753 to ptr) diff --git a/bench/boost/optimized/instantiate_re2c_lexer.ll b/bench/boost/optimized/instantiate_re2c_lexer.ll index 52f4aa44508..330993bdf17 100644 --- a/bench/boost/optimized/instantiate_re2c_lexer.ll +++ b/bench/boost/optimized/instantiate_re2c_lexer.ll @@ -40657,20 +40657,16 @@ _ZN5boost4wave8cpplexer7re2clex18adjust_eol_offsetsIPcEEvPNS2_7ScannerIT_EEm.exi %98 = sub i64 %96, %97 %spec.store.select = tail call i64 @llvm.smin.i64(i64 %98, i64 196608) %99 = icmp sgt i64 %98, 0 - br i1 %99, label %.lr.ph.preheader, label %._crit_edge.thread - -.lr.ph.preheader: ; preds = %90 - %smax = tail call i64 @llvm.smax.i64(i64 %spec.store.select, i64 1) - br label %.lr.ph + br i1 %99, label %.lr.ph, label %._crit_edge.thread ._crit_edge: ; preds = %.lr.ph %.pre259.pre = load ptr, ptr %61, align 8, !tbaa !126 %.not213 = icmp samesign ugt i64 %98, 196607 br i1 %.not213, label %107, label %._crit_edge.thread -.lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph - %.0197246 = phi ptr [ %103, %.lr.ph ], [ %91, %.lr.ph.preheader ] - %.0198245 = phi i64 [ %104, %.lr.ph ], [ 0, %.lr.ph.preheader ] +.lr.ph: ; preds = %90, %.lr.ph + %.0197246 = phi ptr [ %103, %.lr.ph ], [ %91, %90 ] + %.0198245 = phi i64 [ %104, %.lr.ph ], [ 0, %90 ] %100 = load ptr, ptr %92, align 8, !tbaa !27 %101 = getelementptr inbounds nuw i8, ptr %100, i64 1 store ptr %101, ptr %92, align 8, !tbaa !27 @@ -40678,7 +40674,7 @@ _ZN5boost4wave8cpplexer7re2clex18adjust_eol_offsetsIPcEEvPNS2_7ScannerIT_EEm.exi %103 = getelementptr inbounds nuw i8, ptr %.0197246, i64 1 store i8 %102, ptr %.0197246, align 1, !tbaa !11 %104 = add nuw nsw i64 %.0198245, 1 - %exitcond.not = icmp eq i64 %104, %smax + %exitcond.not = icmp eq i64 %104, %spec.store.select br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !175 ._crit_edge.thread: ; preds = %90, %._crit_edge @@ -81157,20 +81153,16 @@ _ZN5boost4wave8cpplexer7re2clex18adjust_eol_offsetsIPKcEEvPNS2_7ScannerIT_EEm.ex %98 = sub i64 %96, %97 %spec.store.select = tail call i64 @llvm.smin.i64(i64 %98, i64 196608) %99 = icmp sgt i64 %98, 0 - br i1 %99, label %.lr.ph.preheader, label %._crit_edge.thread - -.lr.ph.preheader: ; preds = %90 - %smax = tail call i64 @llvm.smax.i64(i64 %spec.store.select, i64 1) - br label %.lr.ph + br i1 %99, label %.lr.ph, label %._crit_edge.thread ._crit_edge: ; preds = %.lr.ph %.pre259.pre = load ptr, ptr %61, align 8, !tbaa !215 %.not213 = icmp samesign ugt i64 %98, 196607 br i1 %.not213, label %107, label %._crit_edge.thread -.lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph - %.0197246 = phi ptr [ %103, %.lr.ph ], [ %91, %.lr.ph.preheader ] - %.0198245 = phi i64 [ %104, %.lr.ph ], [ 0, %.lr.ph.preheader ] +.lr.ph: ; preds = %90, %.lr.ph + %.0197246 = phi ptr [ %103, %.lr.ph ], [ %91, %90 ] + %.0198245 = phi i64 [ %104, %.lr.ph ], [ 0, %90 ] %100 = load ptr, ptr %92, align 8, !tbaa !187 %101 = getelementptr inbounds nuw i8, ptr %100, i64 1 store ptr %101, ptr %92, align 8, !tbaa !187 @@ -81178,7 +81170,7 @@ _ZN5boost4wave8cpplexer7re2clex18adjust_eol_offsetsIPKcEEvPNS2_7ScannerIT_EEm.ex %103 = getelementptr inbounds nuw i8, ptr %.0197246, i64 1 store i8 %102, ptr %.0197246, align 1, !tbaa !11 %104 = add nuw nsw i64 %.0198245, 1 - %exitcond.not = icmp eq i64 %104, %smax + %exitcond.not = icmp eq i64 %104, %spec.store.select br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !229 ._crit_edge.thread: ; preds = %90, %._crit_edge @@ -81513,9 +81505,6 @@ declare i64 @llvm.umax.i64(i64, i64) #28 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.usub.sat.i64(i64, i64) #28 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.smax.i64(i64, i64) #28 - attributes #0 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { nofree nounwind } diff --git a/bench/box2d/optimized/imgui_draw.ll b/bench/box2d/optimized/imgui_draw.ll index 91d42e4466b..8c9987745ab 100644 --- a/bench/box2d/optimized/imgui_draw.ll +++ b/bench/box2d/optimized/imgui_draw.ll @@ -23577,8 +23577,8 @@ _ZL36ImFontAtlasBuildRenderDefaultTexDataP11ImFontAtlas.exit: ; preds = %._crit_ br label %149 149: ; preds = %.loopexit.i, %138 - %indvars.iv = phi i32 [ %indvars.iv.next, %.loopexit.i ], [ 0, %138 ] - %indvar.i = phi i64 [ %indvar.next.i, %.loopexit.i ], [ 0, %138 ] + %indvars.iv = phi i32 [ 0, %138 ], [ %indvars.iv.next127.i, %.loopexit.i ] + %indvar.i = phi i64 [ 0, %138 ], [ %indvar.next.i, %.loopexit.i ] %150 = shl nuw nsw i64 %indvar.i, 2 %151 = load i16, ptr %143, align 8, !tbaa !298 %152 = zext i16 %151 to i32 @@ -23606,8 +23606,10 @@ _ZL36ImFontAtlasBuildRenderDefaultTexDataP11ImFontAtlas.exit: ; preds = %._crit_ br i1 %.not115.i, label %.preheader100.i, label %.lr.ph.preheader.i .lr.ph.preheader.i: ; preds = %159 - %umax.i = zext nneg i32 %155 to i64 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %169, i8 0, i64 %umax.i, i1 false), !tbaa !23 + %170 = add nsw i32 %155, -1 + %171 = zext i32 %170 to i64 + %172 = add nuw nsw i64 %171, 1 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %169, i8 0, i64 %172, i1 false), !tbaa !23 br label %.preheader100.i .preheader100.i: ; preds = %.lr.ph.preheader.i, %159 @@ -23650,8 +23652,7 @@ _ZL36ImFontAtlasBuildRenderDefaultTexDataP11ImFontAtlas.exit: ; preds = %._crit_ .lr.ph108.preheader.i: ; preds = %176 %188 = add i32 %indvars.iv, %152 %189 = lshr i32 %188, 1 - %190 = tail call i32 @llvm.umax.i32(i32 %189, i32 1) - %umax = zext nneg i32 %190 to i64 + %wide.trip.count.i = zext nneg i32 %189 to i64 br label %.lr.ph108.i .preheader97.i: ; preds = %.lr.ph108.i, %176 @@ -23669,7 +23670,7 @@ _ZL36ImFontAtlasBuildRenderDefaultTexDataP11ImFontAtlas.exit: ; preds = %._crit_ %193 = getelementptr inbounds nuw i32, ptr %187, i64 %indvars.iv.i store i32 16777215, ptr %193, align 4, !tbaa !19 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next.i, %umax + %exitcond.not = icmp eq i64 %indvars.iv.next.i, %wide.trip.count.i br i1 %exitcond.not, label %.preheader97.i, label %.lr.ph108.i, !llvm.loop !532 .preheader.i: ; preds = %.lr.ph110.i, %.preheader97.i @@ -23688,7 +23689,7 @@ _ZL36ImFontAtlasBuildRenderDefaultTexDataP11ImFontAtlas.exit: ; preds = %._crit_ br label %201 201: ; preds = %201, %.lr.ph112.i - %indvars.iv130.i = phi i64 [ 0, %.lr.ph112.i ], [ %indvars.iv.next131.i, %201 ] + %indvars.iv130.i = phi i64 [ 0, %.lr.ph112.i ], [ %indvars.iv.next131.i, %203 ] %202 = getelementptr inbounds nuw i32, ptr %196, i64 %indvars.iv130.i store i32 16777215, ptr %202, align 4, !tbaa !19 %indvars.iv.next131.i = add nuw nsw i64 %indvars.iv130.i, 1 @@ -23727,9 +23728,9 @@ _ZL36ImFontAtlasBuildRenderDefaultTexDataP11ImFontAtlas.exit: ; preds = %._crit_ store float %219, ptr %.sroa.5.0..sroa_idx.i, align 8, !tbaa !4 %.sroa.6.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %223, i64 12 store float %222, ptr %.sroa.6.0..sroa_idx.i, align 4, !tbaa !4 - %exitcond.not.i = icmp eq i64 %indvar.next.i, 64 - %indvars.iv.next = add nsw i32 %indvars.iv, -1 - br i1 %exitcond.not.i, label %_ZL34ImFontAtlasBuildRenderLinesTexDataP11ImFontAtlas.exit, label %149, !llvm.loop !534 + %indvars.iv.next127.i = add nsw i32 %indvars.iv, -1 + %exitcond135.not.i = icmp eq i64 %indvar.next.i, 64 + br i1 %exitcond135.not.i, label %_ZL34ImFontAtlasBuildRenderLinesTexDataP11ImFontAtlas.exit, label %149, !llvm.loop !534 _ZL34ImFontAtlasBuildRenderLinesTexDataP11ImFontAtlas.exit: ; preds = %.loopexit.i, %_ZL36ImFontAtlasBuildRenderDefaultTexDataP11ImFontAtlas.exit %224 = getelementptr inbounds nuw i8, ptr %0, i64 104 @@ -23749,8 +23750,8 @@ _ZL34ImFontAtlasBuildRenderLinesTexDataP11ImFontAtlas.exit: ; preds = %.loopexit br i1 %.not36, label %._crit_edge40, label %.lr.ph39 .lr.ph: ; preds = %_ZL34ImFontAtlasBuildRenderLinesTexDataP11ImFontAtlas.exit, %278 - %233 = phi i32 [ %279, %278 ], [ %225, %_ZL34ImFontAtlasBuildRenderLinesTexDataP11ImFontAtlas.exit ] - %indvars.iv45 = phi i64 [ %indvars.iv.next46, %278 ], [ 0, %_ZL34ImFontAtlasBuildRenderLinesTexDataP11ImFontAtlas.exit ] + %233 = phi i32 [ %279, %280 ], [ %225, %_ZL34ImFontAtlasBuildRenderLinesTexDataP11ImFontAtlas.exit ] + %indvars.iv45 = phi i64 [ %indvars.iv.next46, %280 ], [ 0, %_ZL34ImFontAtlasBuildRenderLinesTexDataP11ImFontAtlas.exit ] %234 = load ptr, ptr %4, align 8, !tbaa !244 %235 = getelementptr inbounds nuw %struct.ImFontAtlasCustomRect, ptr %234, i64 %indvars.iv45 %236 = getelementptr inbounds nuw i8, ptr %235, i64 24 @@ -23794,17 +23795,17 @@ _ZL34ImFontAtlasBuildRenderLinesTexDataP11ImFontAtlas.exit: ; preds = %.loopexit %270 = getelementptr inbounds nuw i8, ptr %235, i64 20 %271 = load float, ptr %270, align 4, !tbaa !539 %272 = uitofp i16 %255 to float - %273 = fadd float %269, %272 - %274 = uitofp i16 %262 to float %275 = fadd float %271, %274 - %276 = getelementptr inbounds nuw i8, ptr %235, i64 12 - %277 = load float, ptr %276, align 4, !tbaa !540 - tail call void @_ZN6ImFont8AddGlyphEPK12ImFontConfigtfffffffff(ptr noundef nonnull align 8 dereferenceable(118) %237, ptr noundef null, i16 noundef zeroext %267, float noundef %269, float noundef %271, float noundef %273, float noundef %275, float noundef %248, float noundef %253, float noundef %259, float noundef %266, float noundef %277) - %.pre = load i32, ptr %224, align 8, !tbaa !535 - br label %278 + %276 = uitofp i16 %264 to float + %277 = fadd float %273, %276 + %278 = getelementptr inbounds nuw i8, ptr %235, i64 12 + %.pre = load float, ptr %278, align 4, !tbaa !540 + tail call void @_ZN6ImFont8AddGlyphEPK12ImFontConfigtfffffffff(ptr noundef nonnull align 8 dereferenceable(118) %239, ptr noundef null, i16 noundef zeroext %269, float noundef %271, float noundef %273, float noundef %275, float noundef %277, float noundef %250, float noundef %255, float noundef %261, float noundef %268, float noundef %279) + %.pre = load i32, ptr %226, align 8, !tbaa !535 + br label %280 278: ; preds = %.lr.ph, %239, %243 - %279 = phi i32 [ %233, %.lr.ph ], [ %233, %239 ], [ %.pre, %243 ] + %279 = phi i32 [ %233, %.lr.ph ], [ %233, %241 ], [ %.pre, %245 ] %indvars.iv.next46 = add nuw nsw i64 %indvars.iv45, 1 %280 = sext i32 %279 to i64 %281 = icmp slt i64 %indvars.iv.next46, %280 @@ -23816,7 +23817,7 @@ _ZL34ImFontAtlasBuildRenderLinesTexDataP11ImFontAtlas.exit: ; preds = %.loopexit ret void .lr.ph39: ; preds = %._crit_edge, %288 - %.02937 = phi ptr [ %289, %288 ], [ %229, %._crit_edge ] + %.02937 = phi ptr [ %289, %290 ], [ %229, %._crit_edge ] %283 = load ptr, ptr %.02937, align 8, !tbaa !251 %284 = getelementptr inbounds nuw i8, ptr %283, i64 96 %285 = load i8, ptr %284, align 8, !tbaa !506, !range !256, !noundef !257 diff --git a/bench/clamav/optimized/filtering.ll b/bench/clamav/optimized/filtering.ll index bc1f10e9ae9..a4be1726d3c 100644 --- a/bench/clamav/optimized/filtering.ll +++ b/bench/clamav/optimized/filtering.ll @@ -2212,7 +2212,7 @@ filter_set_end.exit: ; preds = %790, %783, %780, %. br i1 %.not459, label %.loopexit, label %713 .loopexit: ; preds = %._crit_edge1047, %694, %145, %.thread1336, %.critedge490, %._crit_edge985.thread, %._crit_edge.thread - %.0 = phi i32 [ %32, %._crit_edge.thread ], [ -1, %._crit_edge985.thread ], [ -1, %.critedge490 ], [ -1, %.thread1336 ], [ -1, %145 ], [ %.1390.lcssa, %694 ], [ %.1390.lcssa, %._crit_edge1047 ] + %.0 = phi i32 [ %32, %._crit_edge.thread ], [ -1, %._crit_edge985.thread ], [ -1, %.critedge490 ], [ -1, %.thread1335 ], [ -1, %145 ], [ %.1390.lcssa, %694 ], [ %.1390.lcssa, %._crit_edge1047 ] call void @llvm.lifetime.end.p0(ptr nonnull %6) call void @llvm.lifetime.end.p0(ptr nonnull %5) call void @llvm.lifetime.end.p0(ptr nonnull %4) diff --git a/bench/cmake/optimized/zstd_lazy.ll b/bench/cmake/optimized/zstd_lazy.ll index 6e2220c586a..1917de0891b 100644 --- a/bench/cmake/optimized/zstd_lazy.ll +++ b/bench/cmake/optimized/zstd_lazy.ll @@ -28,35 +28,34 @@ define dso_local void @ZSTD_dedicatedDictSearch_lazy_loadDictionary(ptr noundef %23 = load i32, ptr %22, align 4, !tbaa !21 %24 = shl nuw i32 1, %23 %25 = add i32 %24, -3 - %26 = getelementptr inbounds nuw i8, ptr %0, i64 264 - %27 = load i32, ptr %26, align 8, !tbaa !22 - %28 = add i32 %27, -2 - %29 = zext nneg i32 %28 to i64 - %30 = shl nuw i64 1, %29 - %31 = getelementptr inbounds nuw i32, ptr %10, i64 %30 - %32 = shl i32 3, %28 - %33 = icmp ult i32 %32, %8 - %34 = sub i32 %8, %32 - %35 = select i1 %33, i32 %34, i32 %17 - %36 = icmp ult i32 %17, %8 - br i1 %36, label %.lr.ph, label %.preheader164 + %26 = tail call i32 @llvm.umin.i32(i32 %25, i32 255) + %27 = getelementptr inbounds nuw i8, ptr %0, i64 264 + %28 = load i32, ptr %27, align 8, !tbaa !22 + %29 = add i32 %28, -2 + %30 = zext nneg i32 %29 to i64 + %31 = shl nuw i64 1, %30 + %32 = getelementptr inbounds nuw i32, ptr %10, i64 %31 + %33 = shl i32 3, %29 + %34 = icmp ult i32 %33, %8 + %35 = sub i32 %8, %33 + %36 = select i1 %34, i32 %35, i32 %17 + %37 = icmp ult i32 %17, %8 + br i1 %37, label %.lr.ph, label %.preheader164 .lr.ph: ; preds = %2 %37 = getelementptr inbounds nuw i8, ptr %0, i64 272 - %38 = sub i32 66, %27 + %38 = sub i32 66, %28 %39 = zext nneg i32 %38 to i64 - %40 = sub i32 34, %27 + %40 = sub i32 34, %28 %41 = zext i32 %17 to i64 - %42 = zext i32 %35 to i64 + %42 = zext i32 %36 to i64 %43 = and i64 %7, 4294967295 br label %46 .preheader164: ; preds = %ZSTD_hashPtr.exit._crit_edge, %2 - %44 = shl nuw i32 1, %28 + %44 = shl nuw i32 1, %29 %.not197 = icmp eq i32 %25, 0 - %45 = tail call i32 @llvm.umax.i32(i32 %25, i32 1) - %umax = tail call i32 @llvm.umin.i32(i32 %45, i32 255) - %wide.trip.count = zext i32 %44 to i64 + %wide.trip.count = zext i32 %45 to i64 br label %73 46: ; preds = %.lr.ph, %ZSTD_hashPtr.exit._crit_edge @@ -111,7 +110,7 @@ ZSTD_hashPtr.exit: ; preds = %49, %53, %56, %59, %66 = getelementptr inbounds nuw i32, ptr %10, i64 %.pre %67 = load i32, ptr %66, align 4, !tbaa !24 %68 = sub nuw nsw i64 %indvars.iv, %42 - %69 = getelementptr inbounds nuw i32, ptr %31, i64 %68 + %69 = getelementptr inbounds nuw i32, ptr %32, i64 %68 store i32 %67, ptr %69, align 4, !tbaa !24 br label %ZSTD_hashPtr.exit._crit_edge @@ -128,7 +127,7 @@ ZSTD_hashPtr.exit._crit_edge: ; preds = %ZSTD_hashPtr.exit, %.0119188 = phi i32 [ 0, %.preheader164 ], [ %.2155, %.thread ] %74 = getelementptr inbounds nuw i32, ptr %10, i64 %indvars.iv205 %.0121170 = load i32, ptr %74, align 4, !tbaa !24 - %.not198 = icmp ult i32 %.0121170, %35 + %.not198 = icmp ult i32 %.0121170, %36 br i1 %.not198, label %.thread, label %.lr.ph174 .lr.ph174: ; preds = %73, %.lr.ph174 @@ -138,12 +137,12 @@ ZSTD_hashPtr.exit._crit_edge: ; preds = %ZSTD_hashPtr.exit, %75 = icmp ult i32 %.0121173, %21 %76 = zext i1 %75 to i32 %spec.select = add i32 %.0123172, %76 - %77 = sub nuw i32 %.0121173, %35 + %77 = sub nuw i32 %.0121173, %36 %78 = zext i32 %77 to i64 - %79 = getelementptr inbounds nuw i32, ptr %31, i64 %78 + %79 = getelementptr inbounds nuw i32, ptr %32, i64 %78 %80 = add nuw nsw i32 %.0126171, 1 %.0121 = load i32, ptr %79, align 4, !tbaa !24 - %81 = icmp uge i32 %.0121, %35 + %81 = icmp uge i32 %.0121, %36 %82 = icmp samesign ult i32 %.0126171, 2 %83 = select i1 %81, i1 %82, i1 false br i1 %83, label %.lr.ph174, label %._crit_edge, !llvm.loop !28 @@ -175,7 +174,7 @@ ZSTD_hashPtr.exit._crit_edge: ; preds = %ZSTD_hashPtr.exit, %92 = getelementptr inbounds nuw i32, ptr %12, i64 %91 store i32 %.1122179, ptr %92, align 4, !tbaa !24 %93 = add i32 %.1127177, 1 - %94 = icmp ult i32 %.1122179, %35 + %94 = icmp ult i32 %.1122179, %36 br i1 %94, label %.thread157, label %98 .thread157: ; preds = %89 @@ -185,17 +184,17 @@ ZSTD_hashPtr.exit._crit_edge: ; preds = %ZSTD_hashPtr.exit, br label %.thread 98: ; preds = %89 - %99 = sub nuw i32 %.1122179, %35 + %99 = sub nuw i32 %.1122179, %36 %100 = zext i32 %99 to i64 - %101 = getelementptr inbounds nuw i32, ptr %31, i64 %100 + %101 = getelementptr inbounds nuw i32, ptr %32, i64 %100 %102 = load i32, ptr %101, align 4, !tbaa !24 - %exitcond.not = icmp eq i32 %93, %umax + %exitcond.not = icmp eq i32 %93, %26 br i1 %exitcond.not, label %._crit_edge182.thread241, label %.lr.ph181, !llvm.loop !29 ._crit_edge182.thread241: ; preds = %98 - %103 = sub i32 %90, %umax + %103 = sub i32 %90, %26 %104 = shl i32 %103, 8 - %105 = or disjoint i32 %104, %umax + %105 = or disjoint i32 %104, %26 br label %.thread ._crit_edge182: ; preds = %86 @@ -215,7 +214,7 @@ ZSTD_hashPtr.exit._crit_edge: ; preds = %ZSTD_hashPtr.exit, br i1 %exitcond209.not, label %.preheader.preheader, label %73, !llvm.loop !30 .preheader.preheader: ; preds = %.thread - %110 = shl i32 4, %28 + %110 = shl i32 4, %29 %111 = add i32 %110, -4 br label %.preheader @@ -249,9 +248,9 @@ ZSTD_hashPtr.exit._crit_edge: ; preds = %ZSTD_hashPtr.exit, .lr.ph195: ; preds = %125 %128 = getelementptr inbounds nuw i8, ptr %0, i64 272 - %129 = sub i32 66, %27 + %129 = sub i32 66, %28 %130 = zext nneg i32 %129 to i64 - %131 = sub i32 34, %27 + %131 = sub i32 34, %28 %132 = zext i32 %126 to i64 %133 = and i64 %7, 4294967295 br label %134 diff --git a/bench/coreutils-rs/optimized/2f3glk4ls3rn2ei2.ll b/bench/coreutils-rs/optimized/2f3glk4ls3rn2ei2.ll index 71e587dfaf2..1229bbf674d 100644 --- a/bench/coreutils-rs/optimized/2f3glk4ls3rn2ei2.ll +++ b/bench/coreutils-rs/optimized/2f3glk4ls3rn2ei2.ll @@ -2950,15 +2950,13 @@ _ZN5alloc11collections5btree4node13move_to_slice17h332d34e15a6433ecE.exit: ; pre 56: ; preds = %56, %_ZN5alloc11collections5btree4node13move_to_slice17h332d34e15a6433ecE.exit %.sroa.0.05.i = phi i64 [ 0, %_ZN5alloc11collections5btree4node13move_to_slice17h332d34e15a6433ecE.exit ], [ %57, %56 ] %57 = add nuw nsw i64 %.sroa.0.05.i, 1 - %58 = icmp samesign ult i64 %.sroa.0.05.i, 12 - tail call void @llvm.assume(i1 %58) - %59 = getelementptr inbounds nuw ptr, ptr %49, i64 %.sroa.0.05.i - %60 = load ptr, ptr %59, align 8, !nonnull !12, !noundef !12 - %61 = getelementptr inbounds nuw i8, ptr %60, i64 176 - store ptr %9, ptr %61, align 8 - %62 = trunc nuw nsw i64 %.sroa.0.05.i to i16 - %63 = getelementptr inbounds nuw i8, ptr %60, i64 184 - store i16 %62, ptr %63, align 8 + %58 = getelementptr inbounds nuw ptr, ptr %49, i64 %.sroa.0.05.i + %59 = load ptr, ptr %58, align 8, !nonnull !12, !noundef !12 + %59 = getelementptr inbounds nuw i8, ptr %59, i64 176 + store ptr %9, ptr %59, align 8 + %61 = trunc nuw nsw i64 %.sroa.0.05.i to i16 + %62 = getelementptr inbounds nuw i8, ptr %59, i64 184 + store i16 %61, ptr %62, align 8 %exitcond.not.i = icmp eq i64 %.sroa.0.05.i, %13 br i1 %exitcond.not.i, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17h19c09ed3e194aef1E.exit", label %56 } diff --git a/bench/cpython/optimized/Hacl_Hash_Blake2b.ll b/bench/cpython/optimized/Hacl_Hash_Blake2b.ll index aa4cec91edf..a0d08d244f9 100644 --- a/bench/cpython/optimized/Hacl_Hash_Blake2b.ll +++ b/bench/cpython/optimized/Hacl_Hash_Blake2b.ll @@ -2120,15 +2120,13 @@ define hidden zeroext range(i8 0, 4) i8 @python_hashlib_Hacl_Hash_Blake2b_update %indvars.iv.i202 = phi i64 [ 0, %.lr.ph.preheader.i ], [ %indvars.iv.next.i203, %.lr.ph.i201 ] %indvars.iv.next.i203 = add nuw nsw i64 %indvars.iv.i202, 1 %28 = shl i64 %indvars.iv.next.i203, 7 - %29 = and i64 %28, 4294967168 - %30 = add i64 %29, %.sroa.3153.0.copyload - %31 = xor i64 %30, -1 - %32 = and i64 %.sroa.3153.0.copyload, %31 - %33 = lshr i64 %32, 63 - %34 = shl i64 %indvars.iv.i202, 7 - %35 = and i64 %34, 4294967168 - %36 = getelementptr i8, ptr %1, i64 %35 - tail call fastcc void @update_block(ptr noundef %.sroa.4126.0.copyload, ptr noundef %.sroa.5127.0.copyload, i1 noundef zeroext false, i1 noundef zeroext false, i64 %30, i64 %33, ptr noundef readonly %36) + %29 = add i64 %28, %.sroa.3153.0.copyload + %30 = xor i64 %29, -1 + %31 = and i64 %.sroa.3153.0.copyload, %30 + %32 = lshr i64 %31, 63 + %33 = shl i64 %indvars.iv.i202, 7 + %34 = getelementptr i8, ptr %1, i64 %33 + tail call fastcc void @update_block(ptr noundef %.sroa.4126.0.copyload, ptr noundef %.sroa.5127.0.copyload, i1 noundef zeroext false, i1 noundef zeroext false, i64 %29, i64 %32, ptr noundef readonly %34) %exitcond.not.i204 = icmp eq i64 %indvars.iv.next.i203, %wide.trip.count.i br i1 %exitcond.not.i204, label %python_hashlib_Hacl_Hash_Blake2b_update_multi.exit205, label %.lr.ph.i201, !llvm.loop !7 @@ -2201,15 +2199,13 @@ python_hashlib_Hacl_Hash_Blake2b_update_multi.exit213: ; preds = %.lr.ph.i209, % %indvars.iv.i220 = phi i64 [ 0, %.lr.ph.preheader.i217 ], [ %indvars.iv.next.i221, %.lr.ph.i219 ] %indvars.iv.next.i221 = add nuw nsw i64 %indvars.iv.i220, 1 %65 = shl i64 %indvars.iv.next.i221, 7 - %66 = and i64 %65, 4294967168 - %67 = add i64 %66, %43 - %68 = xor i64 %67, -1 - %69 = and i64 %43, %68 - %70 = lshr i64 %69, 63 - %71 = shl i64 %indvars.iv.i220, 7 - %72 = and i64 %71, 4294967168 - %73 = getelementptr i8, ptr %41, i64 %72 - tail call fastcc void @update_block(ptr noundef %.sroa.451.0.copyload, ptr noundef %.sroa.5.0.copyload, i1 noundef zeroext false, i1 noundef zeroext false, i64 %67, i64 %70, ptr noundef readonly %73) + %64 = add i64 %65, %41 + %65 = xor i64 %64, -1 + %66 = and i64 %41, %65 + %67 = lshr i64 %66, 63 + %68 = shl i64 %indvars.iv.i220, 7 + %69 = getelementptr i8, ptr %39, i64 %68 + tail call fastcc void @update_block(ptr noundef %.sroa.451.0.copyload, ptr noundef %.sroa.5.0.copyload, i1 noundef zeroext false, i1 noundef zeroext false, i64 %64, i64 %67, ptr noundef readonly %69) %exitcond.not.i222 = icmp eq i64 %indvars.iv.next.i221, %wide.trip.count.i218 br i1 %exitcond.not.i222, label %python_hashlib_Hacl_Hash_Blake2b_update_multi.exit223, label %.lr.ph.i219, !llvm.loop !7 diff --git a/bench/cpython/optimized/Hacl_Hash_Blake2s.ll b/bench/cpython/optimized/Hacl_Hash_Blake2s.ll index e70193e0208..90362cd232a 100644 --- a/bench/cpython/optimized/Hacl_Hash_Blake2s.ll +++ b/bench/cpython/optimized/Hacl_Hash_Blake2s.ll @@ -1892,12 +1892,10 @@ define hidden zeroext range(i8 0, 4) i8 @python_hashlib_Hacl_Hash_Blake2s_update %indvars.iv.i192 = phi i64 [ 0, %.lr.ph.preheader.i ], [ %indvars.iv.next.i193, %.lr.ph.i191 ] %indvars.iv.next.i193 = add nuw nsw i64 %indvars.iv.i192, 1 %28 = shl i64 %indvars.iv.next.i193, 6 - %29 = and i64 %28, 4294967232 - %30 = add i64 %29, %.sroa.3145.0.copyload - %31 = shl i64 %indvars.iv.i192, 6 - %32 = and i64 %31, 4294967232 - %33 = getelementptr i8, ptr %1, i64 %32 - tail call fastcc void @update_block(ptr noundef %.sroa.4118.0.copyload, ptr noundef %.sroa.5119.0.copyload, i1 noundef zeroext false, i1 noundef zeroext false, i64 noundef %30, ptr noundef readonly %33) + %29 = add i64 %28, %.sroa.3145.0.copyload + %30 = shl i64 %indvars.iv.i192, 6 + %31 = getelementptr i8, ptr %1, i64 %30 + tail call fastcc void @update_block(ptr noundef %.sroa.4118.0.copyload, ptr noundef %.sroa.5119.0.copyload, i1 noundef zeroext false, i1 noundef zeroext false, i64 noundef %29, ptr noundef readonly %31) %exitcond.not.i194 = icmp eq i64 %indvars.iv.next.i193, %wide.trip.count.i br i1 %exitcond.not.i194, label %python_hashlib_Hacl_Hash_Blake2s_update_multi.exit195, label %.lr.ph.i191, !llvm.loop !7 @@ -1967,12 +1965,10 @@ python_hashlib_Hacl_Hash_Blake2s_update_multi.exit201: ; preds = %.lr.ph.i197, % %indvars.iv.i206 = phi i64 [ 0, %.lr.ph.preheader.i203 ], [ %indvars.iv.next.i207, %.lr.ph.i205 ] %indvars.iv.next.i207 = add nuw nsw i64 %indvars.iv.i206, 1 %59 = shl i64 %indvars.iv.next.i207, 6 - %60 = and i64 %59, 4294967232 - %61 = add i64 %60, %40 - %62 = shl i64 %indvars.iv.i206, 6 - %63 = and i64 %62, 4294967232 - %64 = getelementptr i8, ptr %38, i64 %63 - tail call fastcc void @update_block(ptr noundef %.sroa.447.0.copyload, ptr noundef %.sroa.5.0.copyload, i1 noundef zeroext false, i1 noundef zeroext false, i64 noundef %61, ptr noundef readonly %64) + %58 = add i64 %59, %38 + %59 = shl i64 %indvars.iv.i206, 6 + %60 = getelementptr i8, ptr %36, i64 %59 + tail call fastcc void @update_block(ptr noundef %.sroa.447.0.copyload, ptr noundef %.sroa.5.0.copyload, i1 noundef zeroext false, i1 noundef zeroext false, i64 noundef %58, ptr noundef readonly %60) %exitcond.not.i208 = icmp eq i64 %indvars.iv.next.i207, %wide.trip.count.i204 br i1 %exitcond.not.i208, label %python_hashlib_Hacl_Hash_Blake2s_update_multi.exit209, label %.lr.ph.i205, !llvm.loop !7 diff --git a/bench/cpython/optimized/longobject.ll b/bench/cpython/optimized/longobject.ll index 9fb1c2da476..c206b8bd122 100644 --- a/bench/cpython/optimized/longobject.ll +++ b/bench/cpython/optimized/longobject.ll @@ -16119,9 +16119,8 @@ define internal ptr @long_true_divide(ptr noundef readonly captures(none) %0, pt .lr.ph248: ; preds = %.preheader %100 = getelementptr inbounds nuw i8, ptr %98, i64 24 - %umax = tail call i64 @llvm.umax.i64(i64 %94, i64 1) - %101 = shl nuw nsw i64 %umax, 2 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %100, i8 0, i64 %101, i1 false), !tbaa !33 + %101 = shl nuw nsw i64 %94, 2 + tail call void @llvm.memset.p0.i64(ptr nonnull align 4 %100, i8 0, i64 %101, i1 false), !tbaa !33 br label %._crit_edge249 ._crit_edge249: ; preds = %.lr.ph248, %.preheader diff --git a/bench/darktable/optimized/dng_opcode.ll b/bench/darktable/optimized/dng_opcode.ll index 37d7e6f68fb..1322a297392 100644 --- a/bench/darktable/optimized/dng_opcode.ll +++ b/bench/darktable/optimized/dng_opcode.ll @@ -31,7 +31,7 @@ _get_long.exit: tail call void @g_list_free_full(ptr noundef %4, ptr noundef nonnull @g_free) #4 store ptr null, ptr %3, align 16, !tbaa !6 %.val = load i32, ptr %0, align 1 - %5 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val) #5, !srcloc !25 + %5 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val) #4, !srcloc !25 %.not130 = icmp eq i32 %5, 0 br i1 %.not130, label %.thread, label %.lr.ph133 @@ -41,17 +41,17 @@ _get_long.exit: %6 = zext i32 %.064131 to i64 %7 = getelementptr inbounds nuw i8, ptr %0, i64 %6 %.val72 = load i32, ptr %7, align 1 - %8 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val72) #5, !srcloc !25 + %8 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val72) #4, !srcloc !25 %9 = add i32 %.064131, 8 %10 = zext i32 %9 to i64 %11 = getelementptr inbounds nuw i8, ptr %0, i64 %10 %.val73 = load i32, ptr %11, align 1 - %12 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val73) #5, !srcloc !25 + %12 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val73) #4, !srcloc !25 %13 = add i32 %.064131, 12 %14 = zext i32 %13 to i64 %15 = getelementptr inbounds nuw i8, ptr %0, i64 %14 %.val74 = load i32, ptr %15, align 1 - %16 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val74) #5, !srcloc !25 + %16 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val74) #4, !srcloc !25 %17 = add i32 %.064131, 16 %18 = zext i32 %17 to i64 %19 = getelementptr inbounds nuw i8, ptr %0, i64 %18 @@ -80,76 +80,76 @@ _get_long.exit98: ; preds = %25 %30 = add nuw nsw i64 %29, 80 %31 = tail call noalias ptr @g_malloc(i64 noundef %30) #6 %.val75 = load i32, ptr %19, align 1 - %32 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val75) #5, !srcloc !25 + %32 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val75) #4, !srcloc !25 store i32 %32, ptr %31, align 8, !tbaa !60 %33 = getelementptr inbounds nuw i8, ptr %19, i64 4 %.val76 = load i32, ptr %33, align 1 - %34 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val76) #5, !srcloc !25 + %34 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val76) #4, !srcloc !25 %35 = getelementptr inbounds nuw i8, ptr %31, i64 4 store i32 %34, ptr %35, align 4, !tbaa !60 %36 = getelementptr inbounds nuw i8, ptr %19, i64 8 %.val77 = load i32, ptr %36, align 1 - %37 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val77) #5, !srcloc !25 + %37 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val77) #4, !srcloc !25 %38 = getelementptr inbounds nuw i8, ptr %31, i64 8 store i32 %37, ptr %38, align 8, !tbaa !60 %39 = getelementptr inbounds nuw i8, ptr %19, i64 12 %.val78 = load i32, ptr %39, align 1 - %40 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val78) #5, !srcloc !25 + %40 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val78) #4, !srcloc !25 %41 = getelementptr inbounds nuw i8, ptr %31, i64 12 store i32 %40, ptr %41, align 4, !tbaa !60 %42 = getelementptr inbounds nuw i8, ptr %19, i64 16 %.val79 = load i32, ptr %42, align 1 - %43 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val79) #5, !srcloc !25 + %43 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val79) #4, !srcloc !25 %44 = getelementptr inbounds nuw i8, ptr %31, i64 16 store i32 %43, ptr %44, align 8, !tbaa !60 %45 = getelementptr inbounds nuw i8, ptr %19, i64 20 %.val80 = load i32, ptr %45, align 1 - %46 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val80) #5, !srcloc !25 + %46 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val80) #4, !srcloc !25 %47 = getelementptr inbounds nuw i8, ptr %31, i64 20 store i32 %46, ptr %47, align 4, !tbaa !60 %48 = getelementptr inbounds nuw i8, ptr %19, i64 24 %.val81 = load i32, ptr %48, align 1 - %49 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val81) #5, !srcloc !25 + %49 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val81) #4, !srcloc !25 %50 = getelementptr inbounds nuw i8, ptr %31, i64 24 store i32 %49, ptr %50, align 8, !tbaa !60 %51 = getelementptr inbounds nuw i8, ptr %19, i64 28 %.val82 = load i32, ptr %51, align 1 - %52 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val82) #5, !srcloc !25 + %52 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val82) #4, !srcloc !25 %53 = getelementptr inbounds nuw i8, ptr %31, i64 28 store i32 %52, ptr %53, align 4, !tbaa !60 %54 = getelementptr inbounds nuw i8, ptr %19, i64 32 %.val83 = load i32, ptr %54, align 1 - %55 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val83) #5, !srcloc !25 + %55 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val83) #4, !srcloc !25 %56 = getelementptr inbounds nuw i8, ptr %31, i64 32 store i32 %55, ptr %56, align 8, !tbaa !60 %57 = getelementptr inbounds nuw i8, ptr %19, i64 36 %.val84 = load i32, ptr %57, align 1 - %58 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val84) #5, !srcloc !25 + %58 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val84) #4, !srcloc !25 %59 = getelementptr inbounds nuw i8, ptr %31, i64 36 store i32 %58, ptr %59, align 4, !tbaa !60 %60 = getelementptr inbounds nuw i8, ptr %19, i64 40 %.val86 = load i64, ptr %60, align 1 - %61 = tail call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %.val86) #5, !srcloc !61 + %61 = tail call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %.val86) #4, !srcloc !61 %62 = getelementptr inbounds nuw i8, ptr %31, i64 40 store i64 %61, ptr %62, align 8, !tbaa !62 %63 = getelementptr inbounds nuw i8, ptr %19, i64 48 %.val87 = load i64, ptr %63, align 1 - %64 = tail call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %.val87) #5, !srcloc !61 + %64 = tail call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %.val87) #4, !srcloc !61 %65 = getelementptr inbounds nuw i8, ptr %31, i64 48 store i64 %64, ptr %65, align 8, !tbaa !62 %66 = getelementptr inbounds nuw i8, ptr %19, i64 56 %.val88 = load i64, ptr %66, align 1 - %67 = tail call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %.val88) #5, !srcloc !61 + %67 = tail call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %.val88) #4, !srcloc !61 %68 = getelementptr inbounds nuw i8, ptr %31, i64 56 store i64 %67, ptr %68, align 8, !tbaa !62 %69 = getelementptr inbounds nuw i8, ptr %19, i64 64 %.val89 = load i64, ptr %69, align 1 - %70 = tail call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %.val89) #5, !srcloc !61 + %70 = tail call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %.val89) #4, !srcloc !61 %71 = getelementptr inbounds nuw i8, ptr %31, i64 64 store i64 %70, ptr %71, align 8, !tbaa !62 %72 = getelementptr inbounds nuw i8, ptr %19, i64 72 %.val85 = load i32, ptr %72, align 1 - %73 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val85) #5, !srcloc !25 + %73 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val85) #4, !srcloc !25 %74 = getelementptr inbounds nuw i8, ptr %31, i64 72 store i32 %73, ptr %74, align 8, !tbaa !60 %.not134 = icmp ult i32 %27, 4 @@ -158,8 +158,7 @@ _get_long.exit98: ; preds = %25 .lr.ph: ; preds = %_get_long.exit98 %75 = lshr i32 %27, 2 %76 = getelementptr inbounds nuw i8, ptr %31, i64 76 - %umax = tail call i32 @llvm.umax.i32(i32 %75, i32 1) - %wide.trip.count = zext nneg i32 %umax to i64 + %wide.trip.count = zext nneg i32 %75 to i64 br label %_get_float.exit ._crit_edge: ; preds = %_get_float.exit, %_get_long.exit98 @@ -174,7 +173,7 @@ _get_float.exit: ; preds = %_get_float.exit, %. %80 = getelementptr inbounds nuw i8, ptr %19, i64 %79 %81 = getelementptr inbounds nuw i8, ptr %80, i64 76 %.val90 = load i32, ptr %81, align 1 - %82 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val90) #5, !srcloc !63 + %82 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val90) #4, !srcloc !63 %83 = getelementptr inbounds nuw float, ptr %76, i64 %indvars.iv store i32 %82, ptr %83, align 4, !tbaa !64 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 @@ -223,7 +222,7 @@ _get_long.exit: %5 = getelementptr inbounds nuw i8, ptr %2, i64 680 store i32 0, ptr %5, align 4, !tbaa !65 %.val84 = load i32, ptr %0, align 1 - %6 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val84) #5, !srcloc !25 + %6 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val84) #4, !srcloc !25 %.not112 = icmp eq i32 %6, 0 br i1 %.not112, label %.critedge, label %.lr.ph @@ -243,17 +242,17 @@ _get_long.exit90: ; preds = %86, %.lr.ph %14 = zext i32 %.073113 to i64 %15 = getelementptr inbounds nuw i8, ptr %0, i64 %14 %.val83 = load i32, ptr %15, align 1 - %16 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val83) #5, !srcloc !25 + %16 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val83) #4, !srcloc !25 %17 = add i32 %.073113, 8 %18 = zext i32 %17 to i64 %19 = getelementptr inbounds nuw i8, ptr %0, i64 %18 %.val82 = load i32, ptr %19, align 1 - %20 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val82) #5, !srcloc !25 + %20 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val82) #4, !srcloc !25 %21 = add i32 %.073113, 12 %22 = zext i32 %21 to i64 %23 = getelementptr inbounds nuw i8, ptr %0, i64 %22 %.val81 = load i32, ptr %23, align 1 - %24 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val81) #5, !srcloc !25 + %24 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val81) #4, !srcloc !25 %25 = add i32 %.073113, 16 %26 = zext i32 %25 to i64 %27 = getelementptr inbounds nuw i8, ptr %0, i64 %26 @@ -279,7 +278,7 @@ _get_long.exit90: ; preds = %86, %.lr.ph _get_long.exit96: ; preds = %34 %.val = load i32, ptr %27, align 1 - %35 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val) #5, !srcloc !25 + %35 = tail call i32 asm "bswapl $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i32 %.val) #4, !srcloc !25 %36 = and i32 %35, -3 %or.cond.not = icmp eq i32 %36, 1 br i1 %or.cond.not, label %.preheader.preheader, label %37 @@ -306,7 +305,7 @@ _get_long.exit96: ; preds = %34 %44 = getelementptr inbounds nuw i8, ptr %27, i64 %43 %45 = getelementptr inbounds nuw i8, ptr %44, i64 4 %.val87 = load i64, ptr %45, align 1 - %46 = tail call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %.val87) #5, !srcloc !61 + %46 = tail call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %.val87) #4, !srcloc !61 %47 = bitcast i64 %46 to double %48 = fptrunc reassoc nsz arcp contract afn double %47 to float store float %48, ptr %11, align 4, !tbaa !65 @@ -314,7 +313,7 @@ _get_long.exit96: ; preds = %34 %50 = getelementptr inbounds nuw i8, ptr %27, i64 %49 %51 = getelementptr inbounds nuw i8, ptr %50, i64 12 %.val87.c = load i64, ptr %51, align 1 - %52 = tail call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %.val87.c) #5, !srcloc !61 + %52 = tail call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %.val87.c) #4, !srcloc !61 %53 = bitcast i64 %52 to double %54 = fptrunc reassoc nsz arcp contract afn double %53 to float store float %54, ptr %13, align 4, !tbaa !65 @@ -340,7 +339,7 @@ _get_double.exit: ; preds = %_get_double.exit, % %60 = getelementptr inbounds nuw i8, ptr %27, i64 %59 %61 = getelementptr inbounds nuw i8, ptr %60, i64 4 %.val88 = load i64, ptr %61, align 1 - %62 = tail call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %.val88) #5, !srcloc !61 + %62 = tail call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %.val88) #4, !srcloc !61 %63 = bitcast i64 %62 to double %64 = fptrunc reassoc nsz arcp contract afn double %63 to float %65 = getelementptr inbounds nuw float, ptr %56, i64 %indvars.iv119 @@ -354,7 +353,7 @@ _get_double.exit: ; preds = %_get_double.exit, % %66 = shl nuw nsw i64 %indvars.iv, 3 %67 = getelementptr inbounds nuw i8, ptr %27, i64 %66 %.val86 = load i64, ptr %67, align 1 - %68 = tail call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %.val86) #5, !srcloc !61 + %68 = tail call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %.val86) #4, !srcloc !61 %69 = bitcast i64 %68 to double %70 = fptrunc reassoc nsz arcp contract afn double %69 to float %71 = getelementptr inbounds nuw float, ptr %7, i64 %indvars.iv @@ -366,13 +365,13 @@ _get_double.exit: ; preds = %_get_double.exit, % .preheader105: ; preds = %.preheader106 %72 = getelementptr inbounds nuw i8, ptr %27, i64 40 %.val85 = load i64, ptr %72, align 1 - %73 = tail call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %.val85) #5, !srcloc !61 + %73 = tail call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %.val85) #4, !srcloc !61 %74 = bitcast i64 %73 to double %75 = fptrunc reassoc nsz arcp contract afn double %74 to float store float %75, ptr %8, align 4, !tbaa !65 %76 = getelementptr inbounds nuw i8, ptr %27, i64 48 %.val85.c = load i64, ptr %76, align 1 - %77 = tail call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %.val85.c) #5, !srcloc !61 + %77 = tail call i64 asm "bswapq $0", "=r,0,~{dirflag},~{fpsr},~{flags}"(i64 %.val85.c) #4, !srcloc !61 %78 = bitcast i64 %77 to double %79 = fptrunc reassoc nsz arcp contract afn double %78 to float store float %79, ptr %12, align 4, !tbaa !65 @@ -402,16 +401,12 @@ _get_double.exit: ; preds = %_get_double.exit, % ret void } -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umax.i32(i32, i32) #3 - attributes #0 = { nounwind uwtable "approx-func-fp-math"="true" "min-legal-vector-width"="0" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #1 = { "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } attributes #2 = { allocsize(0) "approx-func-fp-math"="true" "no-signed-zeros-fp-math"="true" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="rocketlake" "target-features"="+64bit,+adx,+aes,+avx,+avx2,+avx512bitalg,+avx512bw,+avx512cd,+avx512dq,+avx512f,+avx512ifma,+avx512vbmi,+avx512vbmi2,+avx512vl,+avx512vnni,+avx512vpopcntdq,+bmi,+bmi2,+clflushopt,+cmov,+crc32,+cx16,+cx8,+evex512,+f16c,+fma,+fsgsbase,+fxsr,+gfni,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+pku,+popcnt,+prfchw,+rdpid,+rdrnd,+rdseed,+sahf,+sha,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+vaes,+vpclmulqdq,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,-amx-avx512,-amx-bf16,-amx-complex,-amx-fp16,-amx-fp8,-amx-int8,-amx-movrs,-amx-tf32,-amx-tile,-amx-transpose,-avx10.1-256,-avx10.1-512,-avx10.2-256,-avx10.2-512,-avx512bf16,-avx512fp16,-avx512vp2intersect,-avxifma,-avxneconvert,-avxvnni,-avxvnniint16,-avxvnniint8,-ccmp,-cf,-cldemote,-clwb,-clzero,-cmpccxadd,-egpr,-enqcmd,-fma4,-hreset,-kl,-lwp,-movdir64b,-movdiri,-movrs,-mwaitx,-ndd,-nf,-pconfig,-ppx,-prefetchi,-ptwrite,-push2pop2,-raoint,-rdpru,-rtm,-serialize,-sgx,-sha512,-shstk,-sm3,-sm4,-sse4a,-tbm,-tsxldtrk,-uintr,-usermsr,-waitpkg,-wbnoinvd,-widekl,-xop,-zu" "unsafe-fp-math"="true" } -attributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #4 = { nounwind } -attributes #5 = { nounwind memory(none) } -attributes #6 = { nounwind allocsize(0) } +attributes #3 = { nounwind } +attributes #4 = { nounwind memory(none) } +attributes #5 = { nounwind allocsize(0) } !llvm.module.flags = !{!0, !1, !2, !3, !4, !5} diff --git a/bench/darktable/optimized/locallaplacian.ll b/bench/darktable/optimized/locallaplacian.ll index f399b3dcef5..727305e68ee 100644 --- a/bench/darktable/optimized/locallaplacian.ll +++ b/bench/darktable/optimized/locallaplacian.ll @@ -2728,7 +2728,6 @@ define internal fastcc void @gauss_reduce(ptr noundef readonly captures(none) %0 %34 = getelementptr inbounds nuw i8, ptr %18, i64 4 %35 = getelementptr inbounds nuw i8, ptr %18, i64 8 %36 = getelementptr inbounds nuw i8, ptr %18, i64 12 - %umax = tail call i64 @llvm.umax.i64(i64 %23, i64 2) br label %57 ._crit_edge77: ; preds = %180, %4 @@ -3001,7 +3000,7 @@ _convolve_14641_vert.exit64: ; preds = %.preheader.i60 180: ; preds = %155, %._crit_edge call void @llvm.lifetime.end.p0(ptr nonnull %15) %181 = add nuw nsw i64 %.04974, 1 - %exitcond79.not = icmp eq i64 %181, %umax + %exitcond79.not = icmp eq i64 %181, %23 br i1 %exitcond79.not, label %._crit_edge77, label %57 } @@ -3295,9 +3294,6 @@ declare i32 @llvm.smax.i32(i32, i32) #14 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare float @llvm.ldexp.f32.i32(float, i32) #14 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umax.i64(i64, i64) #14 - ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.umin.i32(i32, i32) #14 diff --git a/bench/duckdb/optimized/constant_time.ll b/bench/duckdb/optimized/constant_time.ll index b3257c4fdaa..135620abb98 100644 --- a/bench/duckdb/optimized/constant_time.ll +++ b/bench/duckdb/optimized/constant_time.ll @@ -503,7 +503,14 @@ define hidden noundef range(i32 -17408, 1) i32 @_Z36mbedtls_ct_rsaes_pkcs1_v15_u %54 = add i64 %7, -1 %.not.i = icmp eq i64 %54, 0 %55 = getelementptr inbounds i8, ptr %50, i64 -1 - br i1 %.not.i, label %.preheader.split.i, label %.lr.ph.us.i + br i1 %.not.i, label %.preheader.split.i.preheader, label %.lr.ph.us.i + +.preheader.split.i.preheader: ; preds = %.preheader.i + %56 = load volatile i8, ptr %55, align 1, !tbaa !3 + %57 = icmp eq i32 %48, 0 + %58 = select i1 %57, i8 0, i8 %56 + store volatile i8 %58, ptr %55, align 1, !tbaa !3 + br label %_ZL27mbedtls_ct_mem_move_to_leftPvmm.exit .lr.ph.us.i: ; preds = %.preheader.i, %._crit_edge.us.i %.028.us.i = phi i64 [ %66, %._crit_edge.us.i ], [ 0, %.preheader.i ] @@ -512,14 +519,14 @@ define hidden noundef range(i32 -17408, 1) i32 @_Z36mbedtls_ct_rsaes_pkcs1_v15_u br i1 %57, label %.lr.ph.split.us.us.i, label %.lr.ph.split.us31.i .lr.ph.split.us31.i: ; preds = %.lr.ph.us.i, %.lr.ph.split.us31.i - %.02427.us29.i = phi i64 [ %60, %.lr.ph.split.us31.i ], [ 0, %.lr.ph.us.i ] + %.02427.us29.i = phi i64 [ %63, %.lr.ph.split.us31.i ], [ 0, %.lr.ph.us.i ] %58 = getelementptr inbounds nuw i8, ptr %52, i64 %.02427.us29.i - %59 = load volatile i8, ptr %58, align 1, !tbaa !3 - %60 = add nuw i64 %.02427.us29.i, 1 - %61 = getelementptr inbounds nuw i8, ptr %52, i64 %60 %62 = load volatile i8, ptr %61, align 1, !tbaa !3 - store volatile i8 %62, ptr %58, align 1, !tbaa !3 - %exitcond.not.i = icmp eq i64 %60, %54 + %63 = add nuw i64 %.02427.us29.i, 1 + %64 = getelementptr inbounds nuw i8, ptr %52, i64 %63 + %65 = load volatile i8, ptr %64, align 1, !tbaa !3 + store volatile i8 %65, ptr %61, align 1, !tbaa !3 + %exitcond.not.i = icmp eq i64 %63, %54 br i1 %exitcond.not.i, label %._crit_edge.us.i, label %.lr.ph.split.us31.i, !llvm.loop !23 ._crit_edge.us.i: ; preds = %.lr.ph.split.us31.i, %.lr.ph.split.us.us.i @@ -532,28 +539,17 @@ define hidden noundef range(i32 -17408, 1) i32 @_Z36mbedtls_ct_rsaes_pkcs1_v15_u br i1 %exitcond35.not.i, label %_ZL27mbedtls_ct_mem_move_to_leftPvmm.exit, label %.lr.ph.us.i, !llvm.loop !24 .lr.ph.split.us.us.i: ; preds = %.lr.ph.us.i, %.lr.ph.split.us.us.i - %.02427.us.us.i = phi i64 [ %69, %.lr.ph.split.us.us.i ], [ 0, %.lr.ph.us.i ] + %.02427.us.us.i = phi i64 [ %72, %.lr.ph.split.us.us.i ], [ 0, %.lr.ph.us.i ] %67 = getelementptr inbounds nuw i8, ptr %52, i64 %.02427.us.us.i - %68 = load volatile i8, ptr %67, align 1, !tbaa !3 - %69 = add nuw i64 %.02427.us.us.i, 1 - %70 = getelementptr inbounds nuw i8, ptr %52, i64 %69 %71 = load volatile i8, ptr %70, align 1, !tbaa !3 - store volatile i8 %68, ptr %67, align 1, !tbaa !3 - %exitcond34.not.i = icmp eq i64 %69, %54 + %72 = add nuw i64 %.02427.us.us.i, 1 + %73 = getelementptr inbounds nuw i8, ptr %52, i64 %72 + %74 = load volatile i8, ptr %73, align 1, !tbaa !3 + store volatile i8 %71, ptr %70, align 1, !tbaa !3 + %exitcond34.not.i = icmp eq i64 %72, %54 br i1 %exitcond34.not.i, label %._crit_edge.us.i, label %.lr.ph.split.us.us.i, !llvm.loop !23 -.preheader.split.i: ; preds = %.preheader.i, %.preheader.split.i - %.028.i = phi i64 [ %76, %.preheader.split.i ], [ 0, %.preheader.i ] - %72 = sub i64 %.028.i, %49 - %73 = load volatile i8, ptr %55, align 1, !tbaa !3 - %74 = icmp sgt i64 %72, -1 - %75 = select i1 %74, i8 0, i8 %73 - store volatile i8 %75, ptr %55, align 1, !tbaa !3 - %76 = add nuw i64 %.028.i, 1 - %exitcond36.not.i = icmp eq i64 %76, %7 - br i1 %exitcond36.not.i, label %_ZL27mbedtls_ct_mem_move_to_leftPvmm.exit, label %.preheader.split.i, !llvm.loop !24 - -_ZL27mbedtls_ct_mem_move_to_leftPvmm.exit: ; preds = %._crit_edge.us.i, %.preheader.split.i, %._crit_edge70 +.preheader.split.i: ; preds = %._crit_edge.us.i, %.preheader.split.i.preheader, %._crit_edge70 %.not = icmp eq i64 %3, 0 br i1 %.not, label %78, label %77 diff --git a/bench/duckdb/optimized/ub_duckdb_storage_compression.ll b/bench/duckdb/optimized/ub_duckdb_storage_compression.ll index 8d1b17641b0..87ee0cbcee3 100644 --- a/bench/duckdb/optimized/ub_duckdb_storage_compression.ll +++ b/bench/duckdb/optimized/ub_duckdb_storage_compression.ll @@ -30359,13 +30359,9 @@ _ZNK6duckdb21TemplatedValidityMaskImE16GetValidityEntryEm.exit.i.preheader: ; pr %.not49.i12 = icmp eq i64 %11, 1 br i1 %.not49.i12, label %.preheader.i.preheader, label %.lr.ph -_ZNK6duckdb21TemplatedValidityMaskImE16GetValidityEntryEm.exit.us.preheader.i: ; preds = %_ZNK6duckdb21TemplatedValidityMaskImE16GetValidityEntryEm.exit.lr.ph.i - %umax.i = call i64 @llvm.umax.i64(i64 %11, i64 1) - br label %_ZNK6duckdb21TemplatedValidityMaskImE16GetValidityEntryEm.exit.us.i - -_ZNK6duckdb21TemplatedValidityMaskImE16GetValidityEntryEm.exit.us.i: ; preds = %.loopexit.us.i, %_ZNK6duckdb21TemplatedValidityMaskImE16GetValidityEntryEm.exit.us.preheader.i - %.01544.us.i = phi i64 [ %.3.us.i, %.loopexit.us.i ], [ 0, %_ZNK6duckdb21TemplatedValidityMaskImE16GetValidityEntryEm.exit.us.preheader.i ] - %.03043.us.i = phi i64 [ %14, %.loopexit.us.i ], [ 0, %_ZNK6duckdb21TemplatedValidityMaskImE16GetValidityEntryEm.exit.us.preheader.i ] +_ZNK6duckdb21TemplatedValidityMaskImE16GetValidityEntryEm.exit.us.preheader.i: ; preds = %_ZNK6duckdb21TemplatedValidityMaskImE16GetValidityEntryEm.exit.lr.ph.i, %.loopexit.us.i + %.01544.us.i = phi i64 [ %.3.us.i, %.loopexit.us.i ], [ 0, %_ZNK6duckdb21TemplatedValidityMaskImE16GetValidityEntryEm.exit.lr.ph.i ] + %.03043.us.i = phi i64 [ %14, %.loopexit.us.i ], [ 0, %_ZNK6duckdb21TemplatedValidityMaskImE16GetValidityEntryEm.exit.lr.ph.i ] %14 = add nuw nsw i64 %.03043.us.i, 1 %15 = getelementptr inbounds nuw i64, ptr %7, i64 %.03043.us.i %16 = load i64, ptr %15, align 8, !tbaa !19 @@ -30389,7 +30385,7 @@ _ZNK6duckdb21TemplatedValidityMaskImE16GetValidityEntryEm.exit.us.i: ; preds = % .loopexit.us.i: ; preds = %.lr.ph.us.i, %20, %_ZNK6duckdb21TemplatedValidityMaskImE16GetValidityEntryEm.exit.us.i %.3.us.i = phi i64 [ %21, %20 ], [ %.01544.us.i, %_ZNK6duckdb21TemplatedValidityMaskImE16GetValidityEntryEm.exit.us.i ], [ %19, %.lr.ph.us.i ] - %exitcond57.not.i = icmp eq i64 %14, %umax.i + %exitcond57.not.i = icmp eq i64 %14, %11 br i1 %exitcond57.not.i, label %_ZNK6duckdb21TemplatedValidityMaskImE10CountValidEm.exit, label %_ZNK6duckdb21TemplatedValidityMaskImE16GetValidityEntryEm.exit.us.i .preheader.i.preheader: ; preds = %.loopexit.i, %_ZNK6duckdb21TemplatedValidityMaskImE16GetValidityEntryEm.exit.i.preheader diff --git a/bench/eastl/optimized/TestDeque.ll b/bench/eastl/optimized/TestDeque.ll index 0a6447a0551..2398fc2fd76 100644 --- a/bench/eastl/optimized/TestDeque.ll +++ b/bench/eastl/optimized/TestDeque.ll @@ -7047,19 +7047,15 @@ if.end: ; preds = %if.then13, %if.then %cmp22.not48 = icmp ult i64 %sub6, 64 br i1 %cmp22.not48, label %if.end26, label %for.body.preheader -for.body.preheader: ; preds = %if.end - %umax50 = tail call i64 @llvm.umax.i64(i64 %div17, i64 1) - br label %for.body - -for.body: ; preds = %for.body.preheader, %for.body - %i.049 = phi i64 [ %inc, %for.body ], [ 1, %for.body.preheader ] +for.body.preheader: ; preds = %if.end, %for.body + %i.049 = phi i64 [ %inc, %for.body ], [ 1, %if.end ] %call.i.i.i = tail call noundef ptr @_ZnamPKcijS0_i(i64 noundef 256, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %4 = load ptr, ptr %mpCurrentArrayPtr, align 8 %sub25 = sub nsw i64 0, %i.049 %arrayidx = getelementptr inbounds ptr, ptr %4, i64 %sub25 store ptr %call.i.i.i, ptr %arrayidx, align 8 %inc = add nuw nsw i64 %i.049, 1 - %exitcond51.not = icmp eq i64 %i.049, %umax50 + %exitcond51.not = icmp eq i64 %i.049, %div17 br i1 %exitcond51.not, label %if.end26, label %for.body, !llvm.loop !289 if.end26: ; preds = %for.body, %if.end, %if.then @@ -7134,18 +7130,14 @@ if.end67: ; preds = %if.then55, %if.then %cmp69.not46 = icmp ult i64 %sub42, 64 br i1 %cmp69.not46, label %if.end78, label %for.body70.preheader -for.body70.preheader: ; preds = %if.end67 - %umax = tail call i64 @llvm.umax.i64(i64 %div4316, i64 1) - br label %for.body70 - -for.body70: ; preds = %for.body70.preheader, %for.body70 - %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %for.body70.preheader ] +for.body70.preheader: ; preds = %if.end67, %for.body70 + %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %if.end67 ] %call.i.i.i18 = tail call noundef ptr @_ZnamPKcijS0_i(i64 noundef 256, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %15 = load ptr, ptr %mpCurrentArrayPtr48, align 8 %arrayidx74 = getelementptr inbounds nuw ptr, ptr %15, i64 %i44.047 store ptr %call.i.i.i18, ptr %arrayidx74, align 8 %inc76 = add nuw nsw i64 %i44.047, 1 - %exitcond.not = icmp eq i64 %i44.047, %umax + %exitcond.not = icmp eq i64 %i44.047, %div4316 br i1 %exitcond.not, label %if.end78, label %for.body70, !llvm.loop !293 if.end78: ; preds = %for.body70, %if.end67, %if.else @@ -14729,19 +14721,15 @@ if.end: ; preds = %if.then13, %if.then %cmp22.not48 = icmp ult i64 %sub6, 8 br i1 %cmp22.not48, label %if.end26, label %for.body.preheader -for.body.preheader: ; preds = %if.end - %umax50 = tail call i64 @llvm.umax.i64(i64 %div17, i64 1) - br label %for.body - -for.body: ; preds = %for.body.preheader, %for.body - %i.049 = phi i64 [ %inc, %for.body ], [ 1, %for.body.preheader ] +for.body: ; preds = %if.end, %for.body + %i.049 = phi i64 [ %inc, %for.body ], [ 1, %if.end ] %call.i.i.i = tail call noundef ptr @_ZnamPKcijS0_i(i64 noundef 192, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %4 = load ptr, ptr %mpCurrentArrayPtr, align 8 %sub25 = sub nsw i64 0, %i.049 %arrayidx = getelementptr inbounds ptr, ptr %4, i64 %sub25 store ptr %call.i.i.i, ptr %arrayidx, align 8 %inc = add nuw nsw i64 %i.049, 1 - %exitcond51.not = icmp eq i64 %i.049, %umax50 + %exitcond51.not = icmp eq i64 %i.049, %div17 br i1 %exitcond51.not, label %if.end26, label %for.body, !llvm.loop !583 if.end26: ; preds = %for.body, %if.end, %if.then @@ -14816,18 +14804,14 @@ if.end67: ; preds = %if.then55, %if.then %cmp69.not46 = icmp ult i64 %sub42, 8 br i1 %cmp69.not46, label %if.end78, label %for.body70.preheader -for.body70.preheader: ; preds = %if.end67 - %umax = tail call i64 @llvm.umax.i64(i64 %div4316, i64 1) - br label %for.body70 - -for.body70: ; preds = %for.body70.preheader, %for.body70 - %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %for.body70.preheader ] +for.body70: ; preds = %if.end67, %for.body70 + %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %if.end67 ] %call.i.i.i18 = tail call noundef ptr @_ZnamPKcijS0_i(i64 noundef 192, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %15 = load ptr, ptr %mpCurrentArrayPtr48, align 8 %arrayidx74 = getelementptr inbounds nuw ptr, ptr %15, i64 %i44.047 store ptr %call.i.i.i18, ptr %arrayidx74, align 8 %inc76 = add nuw nsw i64 %i44.047, 1 - %exitcond.not = icmp eq i64 %i44.047, %umax + %exitcond.not = icmp eq i64 %i44.047, %div4316 br i1 %exitcond.not, label %if.end78, label %for.body70, !llvm.loop !587 if.end78: ; preds = %for.body70, %if.end67, %if.else @@ -77218,19 +77202,15 @@ if.end: ; preds = %if.then13, %if.then %cmp22.not48 = icmp ult i64 %sub6, 32768 br i1 %cmp22.not48, label %if.end26, label %for.body.preheader -for.body.preheader: ; preds = %if.end - %umax50 = tail call i64 @llvm.umax.i64(i64 %div17, i64 1) - br label %for.body - -for.body: ; preds = %for.body.preheader, %for.body - %i.049 = phi i64 [ %inc, %for.body ], [ 1, %for.body.preheader ] +for.body: ; preds = %if.end, %for.body + %i.049 = phi i64 [ %inc, %for.body ], [ 1, %if.end ] %call.i.i.i = tail call noundef ptr @_ZnamPKcijS0_i(i64 noundef 131072, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %4 = load ptr, ptr %mpCurrentArrayPtr, align 8 %sub25 = sub nsw i64 0, %i.049 %arrayidx = getelementptr inbounds ptr, ptr %4, i64 %sub25 store ptr %call.i.i.i, ptr %arrayidx, align 8 %inc = add nuw nsw i64 %i.049, 1 - %exitcond51.not = icmp eq i64 %i.049, %umax50 + %exitcond51.not = icmp eq i64 %i.049, %div17 br i1 %exitcond51.not, label %if.end26, label %for.body, !llvm.loop !3662 if.end26: ; preds = %for.body, %if.end, %if.then @@ -77305,18 +77285,14 @@ if.end67: ; preds = %if.then55, %if.then %cmp69.not46 = icmp ult i64 %sub42, 32768 br i1 %cmp69.not46, label %if.end78, label %for.body70.preheader -for.body70.preheader: ; preds = %if.end67 - %umax = tail call i64 @llvm.umax.i64(i64 %div4316, i64 1) - br label %for.body70 - -for.body70: ; preds = %for.body70.preheader, %for.body70 - %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %for.body70.preheader ] +for.body70.preheader: ; preds = %if.end67, %for.body70 + %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %if.end67 ] %call.i.i.i18 = tail call noundef ptr @_ZnamPKcijS0_i(i64 noundef 131072, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %15 = load ptr, ptr %mpCurrentArrayPtr48, align 8 %arrayidx74 = getelementptr inbounds nuw ptr, ptr %15, i64 %i44.047 store ptr %call.i.i.i18, ptr %arrayidx74, align 8 %inc76 = add nuw nsw i64 %i44.047, 1 - %exitcond.not = icmp eq i64 %i44.047, %umax + %exitcond.not = icmp eq i64 %i44.047, %div4316 br i1 %exitcond.not, label %if.end78, label %for.body70, !llvm.loop !3666 if.end78: ; preds = %for.body70, %if.end67, %if.else @@ -84602,19 +84578,15 @@ if.end: ; preds = %if.then13, %if.then %cmp22.not48 = icmp ult i64 %sub6, 32768 br i1 %cmp22.not48, label %if.end26, label %for.body.preheader -for.body.preheader: ; preds = %if.end - %umax50 = tail call i64 @llvm.umax.i64(i64 %div17, i64 1) - br label %for.body - -for.body: ; preds = %for.body.preheader, %for.body - %i.049 = phi i64 [ %inc, %for.body ], [ 1, %for.body.preheader ] +for.body.preheader: ; preds = %if.end, %for.body + %i.049 = phi i64 [ %inc, %for.body ], [ 1, %if.end ] %call.i.i.i = tail call noundef ptr @_ZnamPKcijS0_i(i64 noundef 786432, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %4 = load ptr, ptr %mpCurrentArrayPtr, align 8 %sub25 = sub nsw i64 0, %i.049 %arrayidx = getelementptr inbounds ptr, ptr %4, i64 %sub25 store ptr %call.i.i.i, ptr %arrayidx, align 8 %inc = add nuw nsw i64 %i.049, 1 - %exitcond51.not = icmp eq i64 %i.049, %umax50 + %exitcond51.not = icmp eq i64 %i.049, %div17 br i1 %exitcond51.not, label %if.end26, label %for.body, !llvm.loop !4062 if.end26: ; preds = %for.body, %if.end, %if.then @@ -84689,18 +84661,14 @@ if.end67: ; preds = %if.then55, %if.then %cmp69.not46 = icmp ult i64 %sub42, 32768 br i1 %cmp69.not46, label %if.end78, label %for.body70.preheader -for.body70.preheader: ; preds = %if.end67 - %umax = tail call i64 @llvm.umax.i64(i64 %div4316, i64 1) - br label %for.body70 - -for.body70: ; preds = %for.body70.preheader, %for.body70 - %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %for.body70.preheader ] +for.body70: ; preds = %if.end67, %for.body70 + %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %if.end67 ] %call.i.i.i18 = tail call noundef ptr @_ZnamPKcijS0_i(i64 noundef 786432, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %15 = load ptr, ptr %mpCurrentArrayPtr48, align 8 %arrayidx74 = getelementptr inbounds nuw ptr, ptr %15, i64 %i44.047 store ptr %call.i.i.i18, ptr %arrayidx74, align 8 %inc76 = add nuw nsw i64 %i44.047, 1 - %exitcond.not = icmp eq i64 %i44.047, %umax + %exitcond.not = icmp eq i64 %i44.047, %div4316 br i1 %exitcond.not, label %if.end78, label %for.body70, !llvm.loop !4066 if.end78: ; preds = %for.body70, %if.end67, %if.else @@ -115760,7 +115728,6 @@ if.end: ; preds = %if.then13, %if.then for.body.lr.ph: ; preds = %if.end %mAllocator.i = getelementptr inbounds nuw i8, ptr %this, i64 80 - %umax55 = tail call i64 @llvm.umax.i64(i64 %div17, i64 1) br label %for.body for.body: ; preds = %for.body.lr.ph, %for.body @@ -115780,7 +115747,7 @@ for.body: ; preds = %for.body.lr.ph, %fo %arrayidx = getelementptr inbounds ptr, ptr %7, i64 %sub25 store ptr %result.0.i.i, ptr %arrayidx, align 8 %inc = add nuw nsw i64 %i.054, 1 - %exitcond56.not = icmp eq i64 %i.054, %umax55 + %exitcond56.not = icmp eq i64 %i.054, %div17 br i1 %exitcond56.not, label %if.end26, label %for.body, !llvm.loop !6498 if.end26: ; preds = %for.body, %if.end, %if.then @@ -115857,7 +115824,6 @@ if.end67: ; preds = %if.then55, %if.then for.body70.lr.ph: ; preds = %if.end67 %mAllocator.i18 = getelementptr inbounds nuw i8, ptr %this, i64 80 - %umax = tail call i64 @llvm.umax.i64(i64 %div4316, i64 1) br label %for.body70 for.body70: ; preds = %for.body70.lr.ph, %for.body70 @@ -115876,7 +115842,7 @@ for.body70: ; preds = %for.body70.lr.ph, % %arrayidx74 = getelementptr inbounds nuw ptr, ptr %21, i64 %i44.052 store ptr %result.0.i.i23, ptr %arrayidx74, align 8 %inc76 = add nuw nsw i64 %i44.052, 1 - %exitcond.not = icmp eq i64 %i44.052, %umax + %exitcond.not = icmp eq i64 %i44.052, %div4316 br i1 %exitcond.not, label %if.end78, label %for.body70, !llvm.loop !6502 if.end78: ; preds = %for.body70, %if.end67, %if.else @@ -118514,19 +118480,15 @@ if.end: ; preds = %if.then13, %if.then %cmp22.not48 = icmp ult i64 %sub6, 8 br i1 %cmp22.not48, label %if.end26, label %for.body.preheader -for.body.preheader: ; preds = %if.end - %umax50 = tail call i64 @llvm.umax.i64(i64 %div17, i64 1) - br label %for.body - -for.body: ; preds = %for.body.preheader, %for.body - %i.049 = phi i64 [ %inc, %for.body ], [ 1, %for.body.preheader ] +for.body: ; preds = %if.end, %for.body + %i.049 = phi i64 [ %inc, %for.body ], [ 1, %if.end ] %call.i.i.i = tail call noundef ptr @_ZnamPKcijS0_i(i64 noundef 192, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %4 = load ptr, ptr %mpCurrentArrayPtr, align 8 %sub25 = sub nsw i64 0, %i.049 %arrayidx = getelementptr inbounds ptr, ptr %4, i64 %sub25 store ptr %call.i.i.i, ptr %arrayidx, align 8 %inc = add nuw nsw i64 %i.049, 1 - %exitcond51.not = icmp eq i64 %i.049, %umax50 + %exitcond51.not = icmp eq i64 %i.049, %div17 br i1 %exitcond51.not, label %if.end26, label %for.body, !llvm.loop !6651 if.end26: ; preds = %for.body, %if.end, %if.then @@ -118601,18 +118563,14 @@ if.end67: ; preds = %if.then55, %if.then %cmp69.not46 = icmp ult i64 %sub42, 8 br i1 %cmp69.not46, label %if.end78, label %for.body70.preheader -for.body70.preheader: ; preds = %if.end67 - %umax = tail call i64 @llvm.umax.i64(i64 %div4316, i64 1) - br label %for.body70 - -for.body70: ; preds = %for.body70.preheader, %for.body70 - %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %for.body70.preheader ] +for.body70: ; preds = %if.end67, %for.body70 + %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %if.end67 ] %call.i.i.i18 = tail call noundef ptr @_ZnamPKcijS0_i(i64 noundef 192, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %15 = load ptr, ptr %mpCurrentArrayPtr48, align 8 %arrayidx74 = getelementptr inbounds nuw ptr, ptr %15, i64 %i44.047 store ptr %call.i.i.i18, ptr %arrayidx74, align 8 %inc76 = add nuw nsw i64 %i44.047, 1 - %exitcond.not = icmp eq i64 %i44.047, %umax + %exitcond.not = icmp eq i64 %i44.047, %div4316 br i1 %exitcond.not, label %if.end78, label %for.body70, !llvm.loop !6655 if.end78: ; preds = %for.body70, %if.end67, %if.else diff --git a/bench/eastl/optimized/TestExtra.ll b/bench/eastl/optimized/TestExtra.ll index bfb4dae6b96..20e5f1eac4f 100644 --- a/bench/eastl/optimized/TestExtra.ll +++ b/bench/eastl/optimized/TestExtra.ll @@ -19231,19 +19231,15 @@ if.end: ; preds = %if.then13, %if.then %cmp22.not48 = icmp ult i64 %sub6, 4 br i1 %cmp22.not48, label %if.end26, label %for.body.preheader -for.body.preheader: ; preds = %if.end - %umax50 = tail call i64 @llvm.umax.i64(i64 %div17, i64 1) - br label %for.body - -for.body: ; preds = %for.body.preheader, %for.body - %i.049 = phi i64 [ %inc, %for.body ], [ 1, %for.body.preheader ] +for.body.preheader: ; preds = %if.end, %for.body + %i.049 = phi i64 [ %inc, %for.body ], [ 1, %if.end ] %call.i6.i.i = tail call noundef ptr @_ZnammmPKcijS0_i(i64 noundef 256, i64 noundef 64, i64 noundef 0, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %4 = load ptr, ptr %mpCurrentArrayPtr, align 8 %sub25 = sub nsw i64 0, %i.049 %arrayidx = getelementptr inbounds ptr, ptr %4, i64 %sub25 store ptr %call.i6.i.i, ptr %arrayidx, align 8 %inc = add nuw nsw i64 %i.049, 1 - %exitcond51.not = icmp eq i64 %i.049, %umax50 + %exitcond51.not = icmp eq i64 %i.049, %div17 br i1 %exitcond51.not, label %if.end26, label %for.body, !llvm.loop !375 if.end26: ; preds = %for.body, %if.end, %if.then @@ -19316,20 +19312,16 @@ if.then55: ; preds = %if.then38 if.end67: ; preds = %if.then55, %if.then38 %cmp69.not46 = icmp ult i64 %sub42, 4 - br i1 %cmp69.not46, label %if.end78, label %for.body70.preheader - -for.body70.preheader: ; preds = %if.end67 - %umax = tail call i64 @llvm.umax.i64(i64 %div4316, i64 1) - br label %for.body70 + br i1 %cmp69.not46, label %if.end78, label %for.body70 -for.body70: ; preds = %for.body70.preheader, %for.body70 - %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %for.body70.preheader ] +for.body70: ; preds = %if.end67, %for.body70 + %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %if.end67 ] %call.i6.i.i18 = tail call noundef ptr @_ZnammmPKcijS0_i(i64 noundef 256, i64 noundef 64, i64 noundef 0, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %15 = load ptr, ptr %mpCurrentArrayPtr48, align 8 %arrayidx74 = getelementptr inbounds nuw ptr, ptr %15, i64 %i44.047 store ptr %call.i6.i.i18, ptr %arrayidx74, align 8 %inc76 = add nuw nsw i64 %i44.047, 1 - %exitcond.not = icmp eq i64 %i44.047, %umax + %exitcond.not = icmp eq i64 %i44.047, %div4316 br i1 %exitcond.not, label %if.end78, label %for.body70, !llvm.loop !379 if.end78: ; preds = %for.body70, %if.end67, %if.else diff --git a/bench/eastl/optimized/TestRingBuffer.ll b/bench/eastl/optimized/TestRingBuffer.ll index a8265da663b..914621450fd 100644 --- a/bench/eastl/optimized/TestRingBuffer.ll +++ b/bench/eastl/optimized/TestRingBuffer.ll @@ -65341,19 +65341,15 @@ if.end: ; preds = %if.then13, %if.then %cmp22.not48 = icmp ult i64 %sub6, 64 br i1 %cmp22.not48, label %if.end26, label %for.body.preheader -for.body.preheader: ; preds = %if.end - %umax50 = tail call i64 @llvm.umax.i64(i64 %div17, i64 1) - br label %for.body - -for.body: ; preds = %for.body.preheader, %for.body - %i.049 = phi i64 [ %inc, %for.body ], [ 1, %for.body.preheader ] +for.body.preheader: ; preds = %if.end, %for.body + %i.049 = phi i64 [ %inc, %for.body ], [ 1, %if.end ] %call.i.i.i = tail call noundef ptr @_ZnamPKcijS0_i(i64 noundef 256, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %4 = load ptr, ptr %mpCurrentArrayPtr, align 8 %sub25 = sub nsw i64 0, %i.049 %arrayidx = getelementptr inbounds ptr, ptr %4, i64 %sub25 store ptr %call.i.i.i, ptr %arrayidx, align 8 %inc = add nuw nsw i64 %i.049, 1 - %exitcond51.not = icmp eq i64 %i.049, %umax50 + %exitcond51.not = icmp eq i64 %i.049, %div17 br i1 %exitcond51.not, label %if.end26, label %for.body, !llvm.loop !4339 if.end26: ; preds = %for.body, %if.end, %if.then @@ -65428,18 +65424,14 @@ if.end67: ; preds = %if.then55, %if.then %cmp69.not46 = icmp ult i64 %sub42, 64 br i1 %cmp69.not46, label %if.end78, label %for.body70.preheader -for.body70.preheader: ; preds = %if.end67 - %umax = tail call i64 @llvm.umax.i64(i64 %div4316, i64 1) - br label %for.body70 - -for.body70: ; preds = %for.body70.preheader, %for.body70 - %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %for.body70.preheader ] +for.body70: ; preds = %if.end67, %for.body70 + %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %if.end67 ] %call.i.i.i18 = tail call noundef ptr @_ZnamPKcijS0_i(i64 noundef 256, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %15 = load ptr, ptr %mpCurrentArrayPtr48, align 8 %arrayidx74 = getelementptr inbounds nuw ptr, ptr %15, i64 %i44.047 store ptr %call.i.i.i18, ptr %arrayidx74, align 8 %inc76 = add nuw nsw i64 %i44.047, 1 - %exitcond.not = icmp eq i64 %i44.047, %umax + %exitcond.not = icmp eq i64 %i44.047, %div4316 br i1 %exitcond.not, label %if.end78, label %for.body70, !llvm.loop !4343 if.end78: ; preds = %for.body70, %if.end67, %if.else @@ -69056,19 +69048,15 @@ if.end: ; preds = %if.then13, %if.then %cmp22.not48 = icmp ult i64 %sub6, 4 br i1 %cmp22.not48, label %if.end26, label %for.body.preheader -for.body.preheader: ; preds = %if.end - %umax50 = tail call i64 @llvm.umax.i64(i64 %div17, i64 1) - br label %for.body - -for.body: ; preds = %for.body.preheader, %for.body - %i.049 = phi i64 [ %inc, %for.body ], [ 1, %for.body.preheader ] +for.body: ; preds = %if.end, %for.body + %i.049 = phi i64 [ %inc, %for.body ], [ 1, %if.end ] %call.i6.i.i = tail call noundef ptr @_ZnammmPKcijS0_i(i64 noundef 256, i64 noundef 64, i64 noundef 0, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %4 = load ptr, ptr %mpCurrentArrayPtr, align 8 %sub25 = sub nsw i64 0, %i.049 %arrayidx = getelementptr inbounds ptr, ptr %4, i64 %sub25 store ptr %call.i6.i.i, ptr %arrayidx, align 8 %inc = add nuw nsw i64 %i.049, 1 - %exitcond51.not = icmp eq i64 %i.049, %umax50 + %exitcond51.not = icmp eq i64 %i.049, %div17 br i1 %exitcond51.not, label %if.end26, label %for.body, !llvm.loop !4627 if.end26: ; preds = %for.body, %if.end, %if.then @@ -69143,18 +69131,14 @@ if.end67: ; preds = %if.then55, %if.then %cmp69.not46 = icmp ult i64 %sub42, 4 br i1 %cmp69.not46, label %if.end78, label %for.body70.preheader -for.body70.preheader: ; preds = %if.end67 - %umax = tail call i64 @llvm.umax.i64(i64 %div4316, i64 1) - br label %for.body70 - -for.body70: ; preds = %for.body70.preheader, %for.body70 - %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %for.body70.preheader ] +for.body70.preheader: ; preds = %if.end67, %for.body70 + %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %if.end67 ] %call.i6.i.i18 = tail call noundef ptr @_ZnammmPKcijS0_i(i64 noundef 256, i64 noundef 64, i64 noundef 0, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %15 = load ptr, ptr %mpCurrentArrayPtr48, align 8 %arrayidx74 = getelementptr inbounds nuw ptr, ptr %15, i64 %i44.047 store ptr %call.i6.i.i18, ptr %arrayidx74, align 8 %inc76 = add nuw nsw i64 %i44.047, 1 - %exitcond.not = icmp eq i64 %i44.047, %umax + %exitcond.not = icmp eq i64 %i44.047, %div4316 br i1 %exitcond.not, label %if.end78, label %for.body70, !llvm.loop !4631 if.end78: ; preds = %for.body70, %if.end67, %if.else @@ -73135,19 +73119,15 @@ if.end: ; preds = %if.then13, %if.then %cmp22.not48 = icmp ult i64 %sub6, 8 br i1 %cmp22.not48, label %if.end26, label %for.body.preheader -for.body.preheader: ; preds = %if.end - %umax50 = tail call i64 @llvm.umax.i64(i64 %div17, i64 1) - br label %for.body - -for.body: ; preds = %for.body.preheader, %for.body - %i.049 = phi i64 [ %inc, %for.body ], [ 1, %for.body.preheader ] +for.body: ; preds = %if.end, %for.body + %i.049 = phi i64 [ %inc, %for.body ], [ 1, %if.end ] %call.i.i.i = tail call noundef ptr @_ZnamPKcijS0_i(i64 noundef 192, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %4 = load ptr, ptr %mpCurrentArrayPtr, align 8 %sub25 = sub nsw i64 0, %i.049 %arrayidx = getelementptr inbounds ptr, ptr %4, i64 %sub25 store ptr %call.i.i.i, ptr %arrayidx, align 8 %inc = add nuw nsw i64 %i.049, 1 - %exitcond51.not = icmp eq i64 %i.049, %umax50 + %exitcond51.not = icmp eq i64 %i.049, %div17 br i1 %exitcond51.not, label %if.end26, label %for.body, !llvm.loop !4915 if.end26: ; preds = %for.body, %if.end, %if.then @@ -73222,18 +73202,14 @@ if.end67: ; preds = %if.then55, %if.then %cmp69.not46 = icmp ult i64 %sub42, 8 br i1 %cmp69.not46, label %if.end78, label %for.body70.preheader -for.body70.preheader: ; preds = %if.end67 - %umax = tail call i64 @llvm.umax.i64(i64 %div4316, i64 1) - br label %for.body70 - -for.body70: ; preds = %for.body70.preheader, %for.body70 - %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %for.body70.preheader ] +for.body70: ; preds = %if.end67, %for.body70 + %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %if.end67 ] %call.i.i.i18 = tail call noundef ptr @_ZnamPKcijS0_i(i64 noundef 192, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %15 = load ptr, ptr %mpCurrentArrayPtr48, align 8 %arrayidx74 = getelementptr inbounds nuw ptr, ptr %15, i64 %i44.047 store ptr %call.i.i.i18, ptr %arrayidx74, align 8 %inc76 = add nuw nsw i64 %i44.047, 1 - %exitcond.not = icmp eq i64 %i44.047, %umax + %exitcond.not = icmp eq i64 %i44.047, %div4316 br i1 %exitcond.not, label %if.end78, label %for.body70, !llvm.loop !4919 if.end78: ; preds = %for.body70, %if.end67, %if.else diff --git a/bench/eastl/optimized/TestVectorMap.ll b/bench/eastl/optimized/TestVectorMap.ll index 3042351f78d..f398759b2e9 100644 --- a/bench/eastl/optimized/TestVectorMap.ll +++ b/bench/eastl/optimized/TestVectorMap.ll @@ -144486,19 +144486,15 @@ if.end: ; preds = %if.then13, %if.then %cmp22.not48 = icmp ult i64 %sub6, 32 br i1 %cmp22.not48, label %if.end26, label %for.body.preheader -for.body.preheader: ; preds = %if.end - %umax50 = tail call i64 @llvm.umax.i64(i64 %div17, i64 1) - br label %for.body - -for.body: ; preds = %for.body.preheader, %for.body - %i.049 = phi i64 [ %inc, %for.body ], [ 1, %for.body.preheader ] +for.body.preheader: ; preds = %if.end, %for.body + %i.049 = phi i64 [ %inc, %for.body ], [ 1, %if.end ] %call.i.i.i = tail call noundef ptr @_ZnamPKcijS0_i(i64 noundef 256, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %4 = load ptr, ptr %mpCurrentArrayPtr, align 8 %sub25 = sub nsw i64 0, %i.049 %arrayidx = getelementptr inbounds ptr, ptr %4, i64 %sub25 store ptr %call.i.i.i, ptr %arrayidx, align 8 %inc = add nuw nsw i64 %i.049, 1 - %exitcond51.not = icmp eq i64 %i.049, %umax50 + %exitcond51.not = icmp eq i64 %i.049, %div17 br i1 %exitcond51.not, label %if.end26, label %for.body, !llvm.loop !5912 if.end26: ; preds = %for.body, %if.end, %if.then @@ -144571,20 +144567,16 @@ if.then55: ; preds = %if.then38 if.end67: ; preds = %if.then55, %if.then38 %cmp69.not46 = icmp ult i64 %sub42, 32 - br i1 %cmp69.not46, label %if.end78, label %for.body70.preheader - -for.body70.preheader: ; preds = %if.end67 - %umax = tail call i64 @llvm.umax.i64(i64 %div4316, i64 1) - br label %for.body70 + br i1 %cmp69.not46, label %if.end78, label %for.body70 -for.body70: ; preds = %for.body70.preheader, %for.body70 - %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %for.body70.preheader ] +for.body70: ; preds = %if.end67, %for.body70 + %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %if.end67 ] %call.i.i.i18 = tail call noundef ptr @_ZnamPKcijS0_i(i64 noundef 256, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %15 = load ptr, ptr %mpCurrentArrayPtr48, align 8 %arrayidx74 = getelementptr inbounds nuw ptr, ptr %15, i64 %i44.047 store ptr %call.i.i.i18, ptr %arrayidx74, align 8 %inc76 = add nuw nsw i64 %i44.047, 1 - %exitcond.not = icmp eq i64 %i44.047, %umax + %exitcond.not = icmp eq i64 %i44.047, %div4316 br i1 %exitcond.not, label %if.end78, label %for.body70, !llvm.loop !5916 if.end78: ; preds = %for.body70, %if.end67, %if.else @@ -152429,19 +152421,15 @@ if.end: ; preds = %if.then13, %if.then %cmp22.not48 = icmp ult i64 %sub6, 4 br i1 %cmp22.not48, label %if.end26, label %for.body.preheader -for.body.preheader: ; preds = %if.end - %umax50 = tail call i64 @llvm.umax.i64(i64 %div17, i64 1) - br label %for.body - -for.body: ; preds = %for.body.preheader, %for.body - %i.049 = phi i64 [ %inc, %for.body ], [ 1, %for.body.preheader ] +for.body.preheader: ; preds = %if.end, %for.body + %i.049 = phi i64 [ %inc, %for.body ], [ 1, %if.end ] %call.i.i.i = tail call noundef ptr @_ZnamPKcijS0_i(i64 noundef 192, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %4 = load ptr, ptr %mpCurrentArrayPtr, align 8 %sub25 = sub nsw i64 0, %i.049 %arrayidx = getelementptr inbounds ptr, ptr %4, i64 %sub25 store ptr %call.i.i.i, ptr %arrayidx, align 8 %inc = add nuw nsw i64 %i.049, 1 - %exitcond51.not = icmp eq i64 %i.049, %umax50 + %exitcond51.not = icmp eq i64 %i.049, %div17 br i1 %exitcond51.not, label %if.end26, label %for.body, !llvm.loop !6219 if.end26: ; preds = %for.body, %if.end, %if.then @@ -152514,20 +152502,16 @@ if.then55: ; preds = %if.then38 if.end67: ; preds = %if.then55, %if.then38 %cmp69.not46 = icmp ult i64 %sub42, 4 - br i1 %cmp69.not46, label %if.end78, label %for.body70.preheader - -for.body70.preheader: ; preds = %if.end67 - %umax = tail call i64 @llvm.umax.i64(i64 %div4316, i64 1) - br label %for.body70 + br i1 %cmp69.not46, label %if.end78, label %for.body70 -for.body70: ; preds = %for.body70.preheader, %for.body70 - %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %for.body70.preheader ] +for.body70: ; preds = %if.end67, %for.body70 + %i44.047 = phi i64 [ %inc76, %for.body70 ], [ 1, %if.end67 ] %call.i.i.i18 = tail call noundef ptr @_ZnamPKcijS0_i(i64 noundef 192, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 0) %15 = load ptr, ptr %mpCurrentArrayPtr48, align 8 %arrayidx74 = getelementptr inbounds nuw ptr, ptr %15, i64 %i44.047 store ptr %call.i.i.i18, ptr %arrayidx74, align 8 %inc76 = add nuw nsw i64 %i44.047, 1 - %exitcond.not = icmp eq i64 %i44.047, %umax + %exitcond.not = icmp eq i64 %i44.047, %div4316 br i1 %exitcond.not, label %if.end78, label %for.body70, !llvm.loop !6223 if.end78: ; preds = %for.body70, %if.end67, %if.else diff --git a/bench/faiss/optimized/test_pq_encoding.ll b/bench/faiss/optimized/test_pq_encoding.ll index a4172fe111b..1df467c4cd0 100644 --- a/bench/faiss/optimized/test_pq_encoding.ll +++ b/bench/faiss/optimized/test_pq_encoding.ll @@ -201,13 +201,13 @@ define dso_local void @_ZN28PQEncoderGeneric_encode_Test8TestBodyEv(ptr nonnull %6 = alloca i64, align 8 %7 = alloca %"class.testing::Message", align 8 %8 = alloca %"class.testing::internal::AssertHelper", align 8 - %9 = tail call noalias noundef nonnull dereferenceable(776) ptr @_Znwm(i64 noundef 776) #19, !noalias !5 + %9 = tail call noalias noundef nonnull dereferenceable(776) ptr @_Znwm(i64 noundef 776) #18, !noalias !5 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(776) %9, i8 0, i64 776, i1 false), !tbaa !8, !noalias !5 br label %10 10: ; preds = %10, %1 %.07.i = phi i64 [ 0, %1 ], [ %14, %10 ] - %11 = tail call i32 @rand() #17, !noalias !5 + %11 = tail call i32 @rand() #16, !noalias !5 %12 = sext i32 %11 to i64 %13 = getelementptr inbounds nuw i64, ptr %9, i64 %.07.i store i64 %12, ptr %13, align 8, !tbaa !8, !noalias !5 @@ -351,7 +351,6 @@ _ZN5faiss16PQEncoderGenericD2Ev.exit.preheader: ; preds = %44, %45 .lr.ph.i.preheader: ; preds = %58 %65 = add i32 %indvars.iv, %55 %66 = lshr i32 %65, 3 - %umax = call i32 @llvm.umax.i32(i32 %66, i32 1) br label %.lr.ph.i ._crit_edge.i: ; preds = %.lr.ph.i, %58 @@ -371,7 +370,7 @@ _ZN5faiss16PQEncoderGenericD2Ev.exit.preheader: ; preds = %44, %45 store i8 %70, ptr %.sroa.056.2, align 1, !tbaa !40 %72 = lshr i64 %.0711.i, 8 %73 = add nuw nsw i32 %.012.i, 1 - %exitcond.not = icmp eq i32 %73, %umax + %exitcond.not = icmp eq i32 %73, %66 br i1 %exitcond.not, label %._crit_edge.i, label %.lr.ph.i, !llvm.loop !41 74: ; preds = %48 @@ -719,13 +718,13 @@ define dso_local void @_ZN22PQEncoder8_encode_Test8TestBodyEv(ptr nonnull readno %4 = alloca i64, align 8 %5 = alloca %"class.testing::Message", align 8 %6 = alloca %"class.testing::internal::AssertHelper", align 8 - %7 = tail call noalias noundef nonnull dereferenceable(800) ptr @_Znwm(i64 noundef 800) #19, !noalias !66 + %7 = tail call noalias noundef nonnull dereferenceable(800) ptr @_Znwm(i64 noundef 800) #18, !noalias !66 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(800) %7, i8 0, i64 800, i1 false), !tbaa !8, !noalias !66 br label %8 8: ; preds = %8, %1 %.07.i = phi i64 [ 0, %1 ], [ %12, %8 ] - %9 = tail call i32 @rand() #17, !noalias !66 + %9 = tail call i32 @rand() #16, !noalias !66 %10 = sext i32 %9 to i64 %11 = getelementptr inbounds nuw i64, ptr %7, i64 %.07.i store i64 %10, ptr %11, align 8, !tbaa !8, !noalias !66 @@ -933,13 +932,13 @@ define dso_local void @_ZN23PQEncoder16_encode_Test8TestBodyEv(ptr nonnull readn %4 = alloca i64, align 8 %5 = alloca %"class.testing::Message", align 8 %6 = alloca %"class.testing::internal::AssertHelper", align 8 - %7 = tail call noalias noundef nonnull dereferenceable(800) ptr @_Znwm(i64 noundef 800) #19, !noalias !70 + %7 = tail call noalias noundef nonnull dereferenceable(800) ptr @_Znwm(i64 noundef 800) #18, !noalias !70 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(800) %7, i8 0, i64 800, i1 false), !tbaa !8, !noalias !70 br label %8 8: ; preds = %8, %1 %.07.i = phi i64 [ 0, %1 ], [ %12, %8 ] - %9 = tail call i32 @rand() #17, !noalias !70 + %9 = tail call i32 @rand() #16, !noalias !70 %10 = sext i32 %9 to i64 %11 = getelementptr inbounds nuw i64, ptr %7, i64 %.07.i store i64 %10, ptr %11, align 8, !tbaa !8, !noalias !70 @@ -1159,13 +1158,13 @@ define dso_local void @_ZN34PQFastScan_set_packed_element_Test8TestBodyEv(ptr no %13 = alloca %"class.testing::AssertionResult", align 8 %14 = alloca %"class.testing::Message", align 8 %15 = alloca %"class.testing::internal::AssertHelper", align 8 - %16 = tail call noalias noundef nonnull dereferenceable(80000) ptr @_Znwm(i64 noundef 80000) #19, !noalias !76 + %16 = tail call noalias noundef nonnull dereferenceable(80000) ptr @_Znwm(i64 noundef 80000) #18, !noalias !76 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(80000) %16, i8 0, i64 80000, i1 false), !tbaa !79, !noalias !76 br label %17 17: ; preds = %17, %1 %.07.i = phi i64 [ 0, %1 ], [ %21, %17 ] - %18 = tail call i32 @rand() #17, !noalias !76 + %18 = tail call i32 @rand() #16, !noalias !76 %19 = sitofp i32 %18 to float %20 = getelementptr inbounds nuw float, ptr %16, i64 %.07.i store float %19, ptr %20, align 4, !tbaa !79, !noalias !76 @@ -3345,9 +3344,6 @@ declare void @llvm.lifetime.end.p0(ptr captures(none)) #7 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) declare void @llvm.experimental.noalias.scope.decl(metadata) #15 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umax.i32(i32, i32) #16 - attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -3364,11 +3360,10 @@ attributes #12 = { mustprogress nocallback nofree nounwind willreturn memory(arg attributes #13 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #14 = { uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #15 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) } -attributes #16 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #17 = { nounwind } -attributes #18 = { builtin nounwind } -attributes #19 = { builtin allocsize(0) } -attributes #20 = { noreturn } +attributes #16 = { nounwind } +attributes #17 = { builtin nounwind } +attributes #18 = { builtin allocsize(0) } +attributes #19 = { noreturn } !llvm.module.flags = !{!0, !1, !2, !3, !4} diff --git a/bench/ffmpeg/optimized/aacsbr.ll b/bench/ffmpeg/optimized/aacsbr.ll index 7e022b642e7..104df2f5088 100644 --- a/bench/ffmpeg/optimized/aacsbr.ll +++ b/bench/ffmpeg/optimized/aacsbr.ll @@ -2921,8 +2921,7 @@ sbr_make_f_master.exit.thread: ; preds = %17, %157, %143, %.c .lr.ph.preheader.i: ; preds = %627 %629 = and i32 %598, 1 %630 = zext nneg i32 %629 to i64 - %umax.i = call i32 @llvm.umax.i32(i32 %602, i32 1) - %631 = add nuw i32 %umax.i, 1 + %631 = add nuw i32 %602, 1 %wide.trip.count.i9 = zext i32 %631 to i64 br label %.lr.ph.i10 diff --git a/bench/ffmpeg/optimized/af_dynaudnorm.ll b/bench/ffmpeg/optimized/af_dynaudnorm.ll index 37bcb7ea048..0d5240a31ed 100644 --- a/bench/ffmpeg/optimized/af_dynaudnorm.ll +++ b/bench/ffmpeg/optimized/af_dynaudnorm.ll @@ -308,7 +308,7 @@ init_gaussian_filter.exit: ; preds = %44, %19 br label %54 54: ; preds = %.lr.ph, %cqueue_resize.exit79 - %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %cqueue_resize.exit79 ] + %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %cqueue_resize.exit74 ] %55 = load ptr, ptr %51, align 8, !tbaa !39 %56 = getelementptr inbounds nuw ptr, ptr %55, i64 %indvars.iv %57 = load ptr, ptr %56, align 8, !tbaa !40 @@ -333,8 +333,6 @@ init_gaussian_filter.exit: ; preds = %44, %19 .lr.ph29.i: ; preds = %62 %70 = load ptr, ptr %57, align 8, !tbaa !54 %71 = getelementptr inbounds nuw double, ptr %70, i64 %66 - %umax.i = tail call i32 @llvm.umax.i32(i32 %64, i32 1) - %wide.trip.count.i48 = zext nneg i32 %umax.i to i64 %.pre.i = load double, ptr %71, align 8, !tbaa !49 br label %74 @@ -349,7 +347,7 @@ init_gaussian_filter.exit: ; preds = %44, %19 %75 = getelementptr inbounds nuw double, ptr %70, i64 %indvars.iv.i49 store double %.pre.i, ptr %75, align 8, !tbaa !49 %indvars.iv.next.i50 = add nuw nsw i64 %indvars.iv.i49, 1 - %exitcond.not.i51 = icmp eq i64 %indvars.iv.next.i50, %wide.trip.count.i48 + %exitcond.not.i51 = icmp eq i64 %indvars.iv.next.i50, %66 br i1 %exitcond.not.i51, label %._crit_edge.i, label %74, !llvm.loop !55 76: ; preds = %54 @@ -407,9 +405,7 @@ cqueue_resize.exit: ; preds = %.lr.ph.i47, %._crit .lr.ph29.i57: ; preds = %100 %108 = load ptr, ptr %95, align 8, !tbaa !54 %109 = getelementptr inbounds nuw double, ptr %108, i64 %104 - %umax.i58 = tail call i32 @llvm.umax.i32(i32 %102, i32 1) - %wide.trip.count.i59 = zext nneg i32 %umax.i58 to i64 - %.pre.i60 = load double, ptr %109, align 8, !tbaa !49 + %.pre.i57 = load double, ptr %109, align 8, !tbaa !49 br label %112 ._crit_edge.i64: ; preds = %112, %100 @@ -419,11 +415,11 @@ cqueue_resize.exit: ; preds = %.lr.ph.i47, %._crit br label %cqueue_resize.exit65 112: ; preds = %112, %.lr.ph29.i57 - %indvars.iv.i61 = phi i64 [ 0, %.lr.ph29.i57 ], [ %indvars.iv.next.i62, %112 ] + %indvars.iv.i61 = phi i64 [ 0, %.lr.ph29.i56 ], [ %indvars.iv.next.i62, %112 ] %113 = getelementptr inbounds nuw double, ptr %108, i64 %indvars.iv.i61 - store double %.pre.i60, ptr %113, align 8, !tbaa !49 + store double %.pre.i57, ptr %113, align 8, !tbaa !49 %indvars.iv.next.i62 = add nuw nsw i64 %indvars.iv.i61, 1 - %exitcond.not.i63 = icmp eq i64 %indvars.iv.next.i62, %wide.trip.count.i59 + %exitcond.not.i63 = icmp eq i64 %indvars.iv.next.i62, %104 br i1 %exitcond.not.i63, label %._crit_edge.i64, label %112, !llvm.loop !55 114: ; preds = %cqueue_resize.exit @@ -439,8 +435,8 @@ cqueue_resize.exit: ; preds = %.lr.ph.i47, %._crit br label %.lr.ph.i54 .lr.ph.i54: ; preds = %.lr.ph.i54, %.lr.ph.preheader.i53 - %120 = phi i32 [ %128, %.lr.ph.i54 ], [ %98, %.lr.ph.preheader.i53 ] - %.027.i55 = phi i32 [ %121, %.lr.ph.i54 ], [ %119, %.lr.ph.preheader.i53 ] + %120 = phi i32 [ %128, %.lr.ph.i53 ], [ %98, %.lr.ph.preheader.i52 ] + %.027.i55 = phi i32 [ %121, %.lr.ph.i53 ], [ %119, %.lr.ph.preheader.i52 ] %121 = add nsw i32 %.027.i55, -1 %122 = load ptr, ptr %95, align 8, !tbaa !54 %123 = getelementptr inbounds nuw i8, ptr %122, i64 8 @@ -481,9 +477,7 @@ cqueue_resize.exit65: ; preds = %.lr.ph.i54, %._crit .lr.ph29.i71: ; preds = %138 %146 = load ptr, ptr %133, align 8, !tbaa !54 %147 = getelementptr inbounds nuw double, ptr %146, i64 %142 - %umax.i72 = tail call i32 @llvm.umax.i32(i32 %140, i32 1) - %wide.trip.count.i73 = zext nneg i32 %umax.i72 to i64 - %.pre.i74 = load double, ptr %147, align 8, !tbaa !49 + %.pre.i69 = load double, ptr %147, align 8, !tbaa !49 br label %150 ._crit_edge.i78: ; preds = %150, %138 @@ -493,11 +487,11 @@ cqueue_resize.exit65: ; preds = %.lr.ph.i54, %._crit br label %cqueue_resize.exit79 150: ; preds = %150, %.lr.ph29.i71 - %indvars.iv.i75 = phi i64 [ 0, %.lr.ph29.i71 ], [ %indvars.iv.next.i76, %150 ] + %indvars.iv.i75 = phi i64 [ 0, %.lr.ph29.i68 ], [ %indvars.iv.next.i76, %150 ] %151 = getelementptr inbounds nuw double, ptr %146, i64 %indvars.iv.i75 - store double %.pre.i74, ptr %151, align 8, !tbaa !49 + store double %.pre.i69, ptr %151, align 8, !tbaa !49 %indvars.iv.next.i76 = add nuw nsw i64 %indvars.iv.i75, 1 - %exitcond.not.i77 = icmp eq i64 %indvars.iv.next.i76, %wide.trip.count.i73 + %exitcond.not.i77 = icmp eq i64 %indvars.iv.next.i76, %142 br i1 %exitcond.not.i77, label %._crit_edge.i78, label %150, !llvm.loop !55 152: ; preds = %cqueue_resize.exit65 @@ -513,8 +507,8 @@ cqueue_resize.exit65: ; preds = %.lr.ph.i54, %._crit br label %.lr.ph.i68 .lr.ph.i68: ; preds = %.lr.ph.i68, %.lr.ph.preheader.i67 - %158 = phi i32 [ %166, %.lr.ph.i68 ], [ %136, %.lr.ph.preheader.i67 ] - %.027.i69 = phi i32 [ %159, %.lr.ph.i68 ], [ %157, %.lr.ph.preheader.i67 ] + %158 = phi i32 [ %166, %.lr.ph.i65 ], [ %136, %.lr.ph.preheader.i64 ] + %.027.i69 = phi i32 [ %159, %.lr.ph.i65 ], [ %157, %.lr.ph.preheader.i64 ] %159 = add nsw i32 %.027.i69, -1 %160 = load ptr, ptr %133, align 8, !tbaa !54 %161 = getelementptr inbounds nuw i8, ptr %160, i64 8 @@ -3114,9 +3108,6 @@ declare void @llvm.lifetime.end.p0(ptr captures(none)) #13 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smin.i32(i32, i32) #14 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umax.i32(i32, i32) #14 - ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.smax.i64(i64, i64) #14 diff --git a/bench/ffmpeg/optimized/dnxhdenc.ll b/bench/ffmpeg/optimized/dnxhdenc.ll index 200f12a6469..41697914b3f 100644 --- a/bench/ffmpeg/optimized/dnxhdenc.ll +++ b/bench/ffmpeg/optimized/dnxhdenc.ll @@ -3932,11 +3932,11 @@ define internal noundef i32 @dnxhd_mb_var_thread(ptr noundef readonly captures(n br i1 %or.cond205, label %.preheader.lr.ph.split.us, label %.loopexit .preheader.lr.ph.split.us: ; preds = %._crit_edge + %70 = tail call i32 @llvm.smin.i32(i32 %67, i32 16) %spec.select = tail call i32 @llvm.smin.i32(i32 %63, i32 16) %70 = load i64, ptr %30, align 8, !tbaa !105 %71 = zext nneg i32 %spec.select to i64 - %72 = tail call i32 @llvm.umin.i32(i32 %67, i32 16) - %wide.trip.count192 = zext nneg i32 %72 to i64 + %wide.trip.count191 = zext nneg i32 %70 to i64 br label %.preheader.us .preheader.us: ; preds = %._crit_edge.us, %.preheader.lr.ph.split.us @@ -3963,7 +3963,7 @@ define internal noundef i32 @dnxhd_mb_var_thread(ptr noundef readonly captures(n ._crit_edge.us: ; preds = %75 %indvars.iv.next189 = add nuw nsw i64 %indvars.iv188, 1 - %exitcond193.not = icmp eq i64 %indvars.iv.next189, %wide.trip.count192 + %exitcond193.not = icmp eq i64 %indvars.iv.next189, %wide.trip.count191 br i1 %exitcond193.not, label %.loopexit, label %.preheader.us, !llvm.loop !217 .loopexit: ; preds = %._crit_edge.us, %._crit_edge, %56 @@ -4014,24 +4014,17 @@ define internal noundef i32 @dnxhd_mb_var_thread(ptr noundef readonly captures(n %118 = load i32, ptr %117, align 8, !tbaa !81 %119 = ashr i32 %116, %118 %120 = sub nsw i32 %119, %108 - %121 = icmp sgt i32 %120, 0 + %121 = tail call i32 @llvm.smin.i32(i32 %120, i32 16) + %122 = icmp sgt i32 %120, 0 %sext = shl i64 %102, 32 %122 = ashr exact i64 %sext, 31 %123 = getelementptr inbounds nuw i8, ptr %24, i64 10560 %124 = load ptr, ptr %123, align 16, !tbaa !138 - br i1 %121, label %.preheader132.lr.ph.us.preheader, label %.lr.ph.split.preheader - -.lr.ph.split.preheader: ; preds = %.lr.ph - %wide.trip.count = zext nneg i32 %98 to i64 - br label %.lr.ph.split - -.preheader132.lr.ph.us.preheader: ; preds = %.lr.ph - %125 = tail call i32 @llvm.umin.i32(i32 %120, i32 16) %wide.trip.count183 = zext nneg i32 %98 to i64 - br label %.preheader132.lr.ph.us + br i1 %122, label %.preheader132.lr.ph.us, label %.lr.ph.split -.preheader132.lr.ph.us: ; preds = %.preheader132.lr.ph.us.preheader, %._crit_edge142.us - %indvars.iv180 = phi i64 [ 0, %.preheader132.lr.ph.us.preheader ], [ %indvars.iv.next181, %._crit_edge142.us ] +.preheader132.lr.ph.us: ; preds = %.lr.ph, %._crit_edge142.us + %indvars.iv180 = phi i64 [ %indvars.iv.next181, %._crit_edge142.us ], [ 0, %.lr.ph ] %126 = trunc nuw nsw i64 %indvars.iv180 to i32 %127 = shl i32 %126, 4 %128 = sub nsw i32 %114, %127 @@ -4091,11 +4084,11 @@ define internal noundef i32 @dnxhd_mb_var_thread(ptr noundef readonly captures(n ._crit_edge.us.us: ; preds = %143 %152 = getelementptr inbounds i8, ptr %.0118138.us.us, i64 %122 %153 = add nuw nsw i32 %.0108141.us.us, 1 - %exitcond179.not = icmp eq i32 %153, %125 + %exitcond179.not = icmp eq i32 %153, %121 br i1 %exitcond179.not, label %._crit_edge142.us.loopexit, label %.preheader132.us.us, !llvm.loop !221 -.lr.ph.split: ; preds = %.lr.ph.split.preheader, %.lr.ph.split - %indvars.iv = phi i64 [ 0, %.lr.ph.split.preheader ], [ %indvars.iv.next, %.lr.ph.split ] +.lr.ph.split: ; preds = %.lr.ph, %.lr.ph.split + %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph.split ], [ 0, %.lr.ph ] %154 = trunc i64 %indvars.iv to i32 %155 = add i32 %112, %154 %156 = zext i32 %155 to i64 @@ -4104,7 +4097,7 @@ define internal noundef i32 @dnxhd_mb_var_thread(ptr noundef readonly captures(n store i32 0, ptr %158, align 4, !tbaa !140 store i32 %155, ptr %157, align 4, !tbaa !148 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count + %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count183 br i1 %exitcond.not, label %.loopexit131, label %.lr.ph.split, !llvm.loop !219 .loopexit131: ; preds = %.lr.ph.split, %._crit_edge142.us, %.loopexit, %96, %28 diff --git a/bench/ffmpeg/optimized/fic.ll b/bench/ffmpeg/optimized/fic.ll index 4763213a3ca..294d91761b0 100644 --- a/bench/ffmpeg/optimized/fic.ll +++ b/bench/ffmpeg/optimized/fic.ll @@ -1223,8 +1223,7 @@ define internal fastcc void @fic_draw_cursor(ptr noundef readonly captures(none) br i1 %115, label %.lr.ph.preheader, label %fic_alpha_blend.exit89 .lr.ph.preheader: ; preds = %105 - %smax = tail call i32 @llvm.smax.i32(i32 %spec.select83, i32 1) - %wide.trip.count = zext nneg i32 %smax to i64 + %wide.trip.count = zext nneg i32 %spec.select83 to i64 br label %.lr.ph .lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph @@ -1257,8 +1256,7 @@ define internal fastcc void @fic_draw_cursor(ptr noundef readonly captures(none) %134 = or disjoint i64 %112, 32 %135 = getelementptr inbounds i8, ptr %5, i64 %134 %136 = getelementptr inbounds i8, ptr %12, i64 %134 - %smax142 = tail call i32 @llvm.smax.i32(i32 %spec.select83, i32 1) - %wide.trip.count143 = zext nneg i32 %smax142 to i64 + %wide.trip.count142 = zext nneg i32 %spec.select83 to i64 br label %.lr.ph105 .lr.ph105: ; preds = %.lr.ph105.preheader, %.lr.ph105 @@ -1279,7 +1277,7 @@ define internal fastcc void @fic_draw_cursor(ptr noundef readonly captures(none) %150 = add i8 %141, %149 store i8 %150, ptr %140, align 1, !tbaa !43 %indvars.iv.next140 = add nuw nsw i64 %indvars.iv139, 1 - %exitcond144.not = icmp eq i64 %indvars.iv.next140, %wide.trip.count143 + %exitcond144.not = icmp eq i64 %indvars.iv.next140, %wide.trip.count142 br i1 %exitcond144.not, label %fic_alpha_blend.exit85, label %.lr.ph105, !llvm.loop !82 fic_alpha_blend.exit85: ; preds = %.lr.ph105 diff --git a/bench/ffmpeg/optimized/takdec.ll b/bench/ffmpeg/optimized/takdec.ll index 0af1ab6219a..3ecffb8e078 100644 --- a/bench/ffmpeg/optimized/takdec.ll +++ b/bench/ffmpeg/optimized/takdec.ll @@ -3318,20 +3318,17 @@ define internal fastcc void @decode_lpc(ptr noundef captures(none) %0, i32 nound .preheader: ; preds = %21 %26 = add nsw i32 %2, -2 + %27 = lshr i32 %26, 1 %.188 = getelementptr inbounds nuw i8, ptr %0, i64 8 %.not106 = icmp samesign ult i32 %26, 2 br i1 %.not106, label %._crit_edge.thread, label %.lr.ph94.preheader -.lr.ph94.preheader: ; preds = %.preheader - %27 = lshr i32 %26, 1 - br label %.lr.ph94 - -.lr.ph94: ; preds = %.lr.ph94.preheader, %.lr.ph94 - %.193 = phi ptr [ %.1, %.lr.ph94 ], [ %.188, %.lr.ph94.preheader ] - %.pn92 = phi ptr [ %.193, %.lr.ph94 ], [ %0, %.lr.ph94.preheader ] - %.17391 = phi i32 [ %35, %.lr.ph94 ], [ 0, %.lr.ph94.preheader ] - %.07690 = phi i32 [ %34, %.lr.ph94 ], [ %25, %.lr.ph94.preheader ] - %.07789 = phi i32 [ %33, %.lr.ph94 ], [ %23, %.lr.ph94.preheader ] +.lr.ph94.preheader: ; preds = %.preheader, %.lr.ph94 + %.193 = phi ptr [ %.1, %.lr.ph94 ], [ %.188, %.preheader ] + %.pn92 = phi ptr [ %.193, %.lr.ph94 ], [ %0, %.preheader ] + %.17391 = phi i32 [ %35, %.lr.ph94 ], [ 0, %.preheader ] + %.07690 = phi i32 [ %34, %.lr.ph94 ], [ %25, %.preheader ] + %.193 = phi i32 [ %33, %.lr.ph94 ], [ %23, %.preheader ] %28 = load i32, ptr %.193, align 4, !tbaa !72 %29 = add i32 %28, %.07789 %30 = add i32 %29, %.07690 diff --git a/bench/folly/optimized/RecordIO.ll b/bench/folly/optimized/RecordIO.ll index 066d7ba6dbc..c9c554c4e9a 100644 --- a/bench/folly/optimized/RecordIO.ll +++ b/bench/folly/optimized/RecordIO.ll @@ -1083,8 +1083,8 @@ _ZNK5folly5RangeIPKhE4findES3_.exit.thread20.us: ; preds = %.split.us %.not4757.i.i = icmp eq i64 %13, 0 br i1 %.not4757.i.i, label %.split.split.us, label %.split.split -.split.split.us: ; preds = %.split, %_ZNK5folly5RangeIPKhE4findES3_.exit.thread20.us38 - %.010.us37 = phi ptr [ %54, %_ZNK5folly5RangeIPKhE4findES3_.exit.thread20.us38 ], [ %1, %.split ] +.split.split.us: ; preds = %.split, %_ZNK5folly5RangeIPKhE4findES3_.exit.thread20.us36 + %.010.us37 = phi ptr [ %44, %_ZNK5folly5RangeIPKhE4findES3_.exit.thread20.us36 ], [ %1, %.split ] %27 = icmp ult ptr %.010.us37, %.sroa.speculated br i1 %27, label %28, label %.thread @@ -1099,54 +1099,31 @@ _ZNK5folly5RangeIPKhE4findES3_.exit.thread20.us: ; preds = %.split.us %34 = icmp ult ptr %.010.us37, %16 br i1 %34, label %.preheader53.us.i.i.us, label %.thread -.preheader53.us.i.i.us: ; preds = %32, %.preheader53.us.i.i.us.backedge - %.136.us.i.i.us = phi ptr [ %.136.us.i.i.us.be, %.preheader53.us.i.i.us.backedge ], [ %.010.us37, %32 ] +.preheader53.us.i.i.us: ; preds = %32, %37 + %.136.us.i.i.us = phi ptr [ %38, %37 ], [ %.010.us37, %32 ] %35 = load i8, ptr %.136.us.i.i.us, align 1, !tbaa !48 %36 = icmp eq i8 %35, %33 - br i1 %36, label %.preheader52.us.i.i.us, label %37 + br i1 %36, label %_ZNK5folly5RangeIPKhE4findES3_.exit.loopexit28.us, label %37 37: ; preds = %.preheader53.us.i.i.us %38 = getelementptr inbounds nuw i8, ptr %.136.us.i.i.us, i64 1 %39 = icmp eq ptr %38, %16 - br i1 %39, label %.thread, label %.preheader53.us.i.i.us.backedge - -.preheader53.us.i.i.us.backedge: ; preds = %37, %.preheader.us.i.i.us - %.136.us.i.i.us.be = phi ptr [ %38, %37 ], [ %45, %.preheader.us.i.i.us ] - br label %.preheader53.us.i.i.us, !llvm.loop !106 - -.preheader52.us.i.i.us: ; preds = %.preheader53.us.i.i.us, %47 - %.0.us.i.i.us = phi i64 [ %48, %47 ], [ 0, %.preheader53.us.i.i.us ] - %40 = getelementptr inbounds nuw i8, ptr %.136.us.i.i.us, i64 %.0.us.i.i.us - %41 = getelementptr inbounds nuw i8, ptr @_ZZN5folly16recordio_helpers10findRecordENS_5RangeIPKhEES4_jE5magic, i64 %.0.us.i.i.us - %42 = load i8, ptr %40, align 1, !tbaa !48 - %43 = load i8, ptr %41, align 1, !tbaa !48 - %44 = icmp eq i8 %42, %43 - br i1 %44, label %47, label %.preheader.us.i.i.us - -.preheader.us.i.i.us: ; preds = %.preheader52.us.i.i.us - %45 = getelementptr inbounds nuw i8, ptr %.136.us.i.i.us, i64 1 - %46 = icmp ult ptr %45, %16 - br i1 %46, label %.preheader53.us.i.i.us.backedge, label %.thread - -47: ; preds = %.preheader52.us.i.i.us - %48 = add i64 %.0.us.i.i.us, 1 - %49 = icmp eq i64 %48, %11 - br i1 %49, label %_ZNK5folly5RangeIPKhE4findES3_.exit.loopexit.us, label %.preheader52.us.i.i.us, !llvm.loop !108 - -_ZNK5folly5RangeIPKhE4findES3_.exit.thread20.us38: ; preds = %_ZNK5folly5RangeIPKhE4findES3_.exit.loopexit.us - %50 = getelementptr inbounds nuw i8, ptr %.010.us37, i64 %56 - tail call void @_ZN5folly16recordio_helpers14validateRecordENS_5RangeIPKhEEj(ptr dead_on_unwind writable sret(%"struct.folly::recordio_helpers::RecordInfo") align 8 %0, ptr %50, ptr %4, i32 noundef %5) - %51 = load ptr, ptr %17, align 8, !tbaa !103 - %52 = load ptr, ptr %18, align 8, !tbaa !105 - %53 = icmp eq ptr %51, %52 - %54 = getelementptr inbounds nuw i8, ptr %50, i64 4 - br i1 %53, label %.split.split.us, label %.thread25 - -_ZNK5folly5RangeIPKhE4findES3_.exit.loopexit.us: ; preds = %47 - %55 = ptrtoint ptr %.136.us.i.i.us to i64 - %56 = sub i64 %55, %29 - %57 = icmp eq i64 %56, -1 - br i1 %57, label %.thread, label %_ZNK5folly5RangeIPKhE4findES3_.exit.thread20.us38 + br i1 %39, label %.thread, label %.preheader53.us.i.i.us, !llvm.loop !106 + +.preheader53.us.i.i.us.backedge: ; preds = %_ZNK5folly5RangeIPKhE4findES3_.exit.loopexit28.us + %40 = getelementptr inbounds nuw i8, ptr %.010.us35, i64 %46 + tail call void @_ZN5folly16recordio_helpers14validateRecordENS_5RangeIPKhEEj(ptr dead_on_unwind writable sret(%"struct.folly::recordio_helpers::RecordInfo") align 8 %0, ptr %40, ptr %4, i32 noundef %5) + %41 = load ptr, ptr %17, align 8, !tbaa !103 + %42 = load ptr, ptr %18, align 8, !tbaa !105 + %43 = icmp eq ptr %41, %42 + %40 = getelementptr inbounds nuw i8, ptr %40, i64 4 + br i1 %43, label %.split.split.us, label %.thread25 + +_ZNK5folly5RangeIPKhE4findES3_.exit.loopexit28.us:; preds = %.preheader53.us.i.i.us + %45 = ptrtoint ptr %.136.us.i.i.us to i64 + %46 = sub i64 %45, %29 + %47 = icmp eq i64 %46, -1 + br i1 %47, label %.thread, label %.preheader53.us.i.i.us.backedge .split.split: ; preds = %.split, %_ZNK5folly5RangeIPKhE4findES3_.exit.thread20 %.010 = phi ptr [ %98, %_ZNK5folly5RangeIPKhE4findES3_.exit.thread20 ], [ %1, %.split ] @@ -1165,12 +1142,12 @@ _ZNK5folly5RangeIPKhE4findES3_.exit.loopexit.us: ; preds = %47 br i1 %65, label %.preheader53.i.i, label %.thread .preheader53.i.i: ; preds = %63, %.loopexit.i.i - %.03562.i.i = phi ptr [ %89, %.loopexit.i.i ], [ %.010, %63 ] - %.03861.i.i = phi i64 [ %.139.i.i, %.loopexit.i.i ], [ 0, %63 ] + %.03562.i.i = phi ptr [ %89, %.loopexit.i.i ], [ %.010, %53 ] + %.03861.i.i = phi i64 [ %.139.i.i, %.loopexit.i.i ], [ 0, %53 ] br label %66 66: ; preds = %70, %.preheader53.i.i - %.136.i.i = phi ptr [ %71, %70 ], [ %.03562.i.i, %.preheader53.i.i ] + %.136.i.i = phi ptr [ %71, %60 ], [ %.03562.i.i, %.preheader53.i.i ] %67 = getelementptr inbounds nuw i8, ptr %.136.i.i, i64 %13 %68 = load i8, ptr %67, align 1, !tbaa !48 %69 = icmp eq i8 %68, %64 @@ -1182,7 +1159,7 @@ _ZNK5folly5RangeIPKhE4findES3_.exit.loopexit.us: ; preds = %47 br i1 %72, label %.thread, label %66, !llvm.loop !106 .preheader52.i.i: ; preds = %66, %86 - %.0.i.i = phi i64 [ %87, %86 ], [ 0, %66 ] + %.0.i.i = phi i64 [ %87, %76 ], [ 0, %56 ] %73 = getelementptr inbounds nuw i8, ptr %.136.i.i, i64 %.0.i.i %74 = getelementptr inbounds nuw i8, ptr @_ZZN5folly16recordio_helpers10findRecordENS_5RangeIPKhEES4_jE5magic, i64 %.0.i.i %75 = load i8, ptr %73, align 1, !tbaa !48 @@ -1195,7 +1172,7 @@ _ZNK5folly5RangeIPKhE4findES3_.exit.loopexit.us: ; preds = %47 br i1 %79, label %.preheader.i.i, label %.loopexit.i.i .preheader.i.i: ; preds = %78, %84 - %.24058.i.i = phi i64 [ %85, %84 ], [ 1, %78 ] + %.24058.i.i = phi i64 [ %85, %74 ], [ 1, %68 ] %80 = sub nuw i64 %13, %.24058.i.i %81 = getelementptr inbounds nuw i8, ptr @_ZZN5folly16recordio_helpers10findRecordENS_5RangeIPKhEES4_jE5magic, i64 %80 %82 = load i8, ptr %81, align 1, !tbaa !48 @@ -1205,15 +1182,15 @@ _ZNK5folly5RangeIPKhE4findES3_.exit.loopexit.us: ; preds = %47 84: ; preds = %.preheader.i.i %85 = add i64 %.24058.i.i, 1 %exitcond.not.i.i = icmp eq i64 %85, %11 - br i1 %exitcond.not.i.i, label %.loopexit.i.i, label %.preheader.i.i, !llvm.loop !109 + br i1 %exitcond.not.i.i, label %.loopexit.i.i, label %.preheader.i.i, !llvm.loop !108 86: ; preds = %.preheader52.i.i %87 = add i64 %.0.i.i, 1 %88 = icmp eq i64 %87, %11 - br i1 %88, label %_ZNK5folly5RangeIPKhE4findES3_.exit.loopexit28, label %.preheader52.i.i, !llvm.loop !108 + br i1 %88, label %_ZNK5folly5RangeIPKhE4findES3_.exit.loopexit28, label %.preheader52.i.i, !llvm.loop !109 .loopexit.i.i: ; preds = %84, %.preheader.i.i, %78 - %.139.i.i = phi i64 [ %.03861.i.i, %78 ], [ %.24058.i.i, %.preheader.i.i ], [ %11, %84 ] + %.139.i.i = phi i64 [ %.03861.i.i, %68 ], [ %.24058.i.i, %.preheader.i.i ], [ %11, %74 ] %89 = getelementptr inbounds nuw i8, ptr %.136.i.i, i64 %.139.i.i %90 = icmp ult ptr %89, %16 br i1 %90, label %.preheader53.i.i, label %.thread @@ -1233,12 +1210,12 @@ _ZNK5folly5RangeIPKhE4findES3_.exit.thread20: ; preds = %_ZNK5folly5RangeIPK %98 = getelementptr inbounds nuw i8, ptr %94, i64 4 br i1 %97, label %.split.split, label %.thread25 -.thread: ; preds = %63, %59, %_ZNK5folly5RangeIPKhE4findES3_.exit.loopexit28, %.split.split, %.loopexit.i.i, %70, %.split.split.us, %28, %32, %_ZNK5folly5RangeIPKhE4findES3_.exit.loopexit.us, %.preheader.us.i.i.us, %37, %.split.us +.thread: ; preds = %63, %59, %_ZNK5folly5RangeIPKhE4findES3_.exit.loopexit28, %.split.split, %.loopexit.i.i, %70, %.split.split.us, %28, %32, %_ZNK5folly5RangeIPKhE4findES3_.exit.loopexit28.us, %37, %.split.us store i32 0, ptr %0, align 8, !tbaa !110 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %17, i8 0, i64 16, i1 false) br label %.thread25 -.thread25: ; preds = %_ZNK5folly5RangeIPKhE4findES3_.exit.thread20, %_ZNK5folly5RangeIPKhE4findES3_.exit.thread20.us38, %_ZNK5folly5RangeIPKhE4findES3_.exit.thread20.us, %.thread +.thread25: ; preds = %_ZNK5folly5RangeIPKhE4findES3_.exit.thread20, %_ZNK5folly5RangeIPKhE4findES3_.exit.thread20.us36, %_ZNK5folly5RangeIPKhE4findES3_.exit.thread20.us, %.thread ret void } diff --git a/bench/freetype/optimized/sfnt.ll b/bench/freetype/optimized/sfnt.ll index 3075c6d3668..55a669bebf1 100644 --- a/bench/freetype/optimized/sfnt.ll +++ b/bench/freetype/optimized/sfnt.ll @@ -1061,7 +1061,6 @@ define internal i32 @tt_cmap4_validate(ptr noundef %0, ptr noundef %1) #0 { %137 = getelementptr inbounds nuw i8, ptr %1, i64 224 %138 = or disjoint i32 %54, %57 %139 = lshr i32 %138, 1 - %umax = tail call i32 @llvm.umax.i32(i32 %139, i32 1) br label %140 140: ; preds = %.lr.ph214, %.loopexit @@ -1251,7 +1250,7 @@ define internal i32 @tt_cmap4_validate(ptr noundef %0, ptr noundef %1) #0 { .loopexit: ; preds = %232, %188, %238, %242, %216 %243 = add nuw nsw i32 %.0173206, 1 - %exitcond.not = icmp eq i32 %243, %umax + %exitcond.not = icmp eq i32 %243, %139 br i1 %exitcond.not, label %._crit_edge, label %140, !llvm.loop !42 ._crit_edge: ; preds = %.loopexit, %133 @@ -1358,10 +1357,10 @@ define internal range(i32 0, 65536) i32 @tt_cmap6_char_next(ptr noundef readonly %30 = getelementptr inbounds nuw i8, ptr %27, i64 %29 br label %.lr.ph -.lr.ph: ; preds = %.lr.ph.preheader, %41 - %.043 = phi i32 [ %43, %41 ], [ %25, %.lr.ph.preheader ] - %.03342 = phi ptr [ %31, %41 ], [ %30, %.lr.ph.preheader ] - %.13641 = phi i32 [ %42, %41 ], [ %spec.select, %.lr.ph.preheader ] +.lr.ph: ; preds = %.lr.ph.preheader, %40 + %.043 = phi i32 [ %42, %40 ], [ %25, %.lr.ph.preheader ] + %.03342 = phi ptr [ %31, %40 ], [ %30, %.lr.ph.preheader ] + %.13641 = phi i32 [ %41, %40 ], [ %spec.select, %.lr.ph.preheader ] %31 = getelementptr inbounds nuw i8, ptr %.03342, i64 2 %32 = load i8, ptr %.03342, align 1, !tbaa !15 %33 = zext i8 %32 to i32 @@ -1374,18 +1373,18 @@ define internal range(i32 0, 65536) i32 @tt_cmap6_char_next(ptr noundef readonly br i1 %.not, label %39, label %._crit_edge 39: ; preds = %.lr.ph - %40 = icmp ugt i32 %.13641, 65534 - br i1 %40, label %.loopexit, label %41 - -41: ; preds = %39 - %42 = add nuw nsw i32 %.13641, 1 - %43 = add nuw nsw i32 %.043, 1 - %44 = icmp ult i32 %43, %14 - br i1 %44, label %.lr.ph, label %._crit_edge, !llvm.loop !43 - -._crit_edge: ; preds = %41, %.lr.ph, %16 - %.1 = phi i32 [ 0, %16 ], [ %38, %.lr.ph ], [ 0, %41 ] - %.032 = phi i32 [ 0, %16 ], [ %.13641, %.lr.ph ], [ 0, %41 ] + %40 = icmp eq i32 %.13641, 65535 + br i1 %40, label %.loopexit, label %40 + +._crit_edge: ; preds = %39 + %41 = add nuw nsw i32 %.13641, 1 + %42 = add nuw nsw i32 %.043, 1 + %43 = icmp ult i32 %42, %14 + br i1 %43, label %.lr.ph, label %._crit_edge, !llvm.loop !43 + +._crit_edge: ; preds = %40, %.lr.ph, %16 + %.1 = phi i32 [ 0, %16 ], [ %38, %.lr.ph ], [ 0, %40 ] + %.032 = phi i32 [ 0, %16 ], [ %.13641, %.lr.ph ], [ 0, %40 ] store i32 %.032, ptr %1, align 4, !tbaa !16 br label %.loopexit @@ -24569,11 +24568,11 @@ define internal fastcc range(i32 0, 65536) i32 @tt_cmap4_char_map_linear(ptr rea %13 = load i8, ptr %12, align 1, !tbaa !15 %14 = zext i8 %13 to i32 %15 = or disjoint i32 %11, %14 + %16 = lshr i32 %15, 1 %.not = icmp samesign ult i32 %15, 2 br i1 %.not, label %.thread14, label %.lr.ph .lr.ph: ; preds = %2 - %16 = lshr i32 %15, 1 %17 = and i32 %15, 65534 %18 = zext nneg i32 %17 to i64 %19 = load i32, ptr %0, align 4, !tbaa !16 @@ -24585,7 +24584,6 @@ define internal fastcc range(i32 0, 65536) i32 @tt_cmap4_char_map_linear(ptr rea %25 = add nsw i32 %16, -1 %.not114 = icmp eq i8 %1, 0 %26 = getelementptr inbounds nuw i8, ptr %.0.val, i64 32 - %umax204 = tail call i32 @llvm.umax.i32(i32 %16, i32 1) br i1 %.not114, label %.lr.ph.split.us.split.us, label %.split .lr.ph.split.us.split.us: ; preds = %.lr.ph, %.thread4.split.us.split.us.us.us @@ -24648,7 +24646,7 @@ define internal fastcc range(i32 0, 65536) i32 @tt_cmap4_char_map_linear(ptr rea .thread4.split.us.split.us.us.us: ; preds = %43, %.split.us.us.us %61 = add nuw nsw i32 %.0101103.us.us, 1 - %exitcond205.not = icmp eq i32 %61, %umax204 + %exitcond205.not = icmp eq i32 %61, %16 br i1 %exitcond205.not, label %.thread10, label %.lr.ph.split.us.split.us, !llvm.loop !773 .split49.us.split.us.split.us: ; preds = %43 @@ -24834,7 +24832,7 @@ select.unfold: ; preds = %153, %158 .thread4.split: ; preds = %169, %138, %119, %118 %175 = add nuw nsw i32 %.0101103, 1 - %exitcond.not = icmp eq i32 %175, %umax204 + %exitcond.not = icmp eq i32 %175, %16 br i1 %exitcond.not, label %.thread10, label %.split, !llvm.loop !773 .thread10: ; preds = %.thread4.split, %select.unfold, %.thread4.split.us.split.us.us.us, %106, %.split135.us.split.us diff --git a/bench/graphviz/optimized/emit.ll b/bench/graphviz/optimized/emit.ll index 6f61af37e29..1b8073aeb61 100644 --- a/bench/graphviz/optimized/emit.ll +++ b/bench/graphviz/optimized/emit.ll @@ -7276,7 +7276,7 @@ gv_strdup.exit365.i: ; preds = %525 br label %553 553: ; preds = %.sink.split671.i, %543, %471 - %.0248.i = phi ptr [ null, %543 ], [ null, %471 ], [ %.1249.i, %.sink.split671.i ] + %.0248.i = phi ptr [ null, %543 ], [ null, %471 ], [ %.1249.i, %.sink.split670.i ] %554 = and i32 %219, 4194304 %.not334.i = icmp eq i32 %554, 0 br i1 %.not334.i, label %739, label %555 @@ -7834,19 +7834,16 @@ gv_alloc.exit.i413.i: ; preds = %.lr.ph.i %770 = getelementptr inbounds nuw i8, ptr %763, i64 8 %771 = load i64, ptr %770, align 8, !tbaa !363 %772 = add i64 %771, -1 + %773 = udiv i64 %772, 3 %.not55.i.i = icmp ult i64 %772, 3 br i1 %.not55.i.i, label %.preheader46.i.i.preheader, label %.preheader47.preheader.i.i .preheader46.i.i.preheader: ; preds = %776, %gv_alloc.exit.i413.i br label %.preheader46.i.i -.preheader47.preheader.i.i: ; preds = %gv_alloc.exit.i413.i - %773 = udiv i64 %772, 3 - br label %.preheader47.i.i - -.preheader47.i.i: ; preds = %776, %.preheader47.preheader.i.i - %.03750.i.i = phi i64 [ %778, %776 ], [ 0, %.preheader47.preheader.i.i ] - %.03949.i.i = phi ptr [ %777, %776 ], [ %764, %.preheader47.preheader.i.i ] +.preheader47.preheader.i.i: ; preds = %gv_alloc.exit.i413.i, %776 + %.03750.i.i = phi i64 [ %778, %776 ], [ 0, %gv_alloc.exit.i413.i ] + %.03949.i.i = phi ptr [ %777, %776 ], [ %764, %gv_alloc.exit.i413.i ] %774 = load ptr, ptr %763, align 8, !tbaa !365 %.idx.i.i = mul nuw i64 %.03750.i.i, 48 %775 = getelementptr inbounds nuw i8, ptr %774, i64 %.idx.i.i @@ -12932,7 +12929,6 @@ gv_calloc.exit79: ; preds = %gv_calloc.exit unreachable .lr.ph.preheader: ; preds = %28 - %umax = tail call i64 @llvm.umax.i64(i64 %5, i64 1) %.pre = load double, ptr %.0.val, align 8, !tbaa !127 br label %.lr.ph @@ -12945,7 +12941,6 @@ gv_calloc.exit79: ; preds = %gv_calloc.exit .lr.ph13.preheader: ; preds = %.lr.ph %38 = fmul double %0, %69 - %umax35 = tail call i64 @llvm.umax.i64(i64 %5, i64 1) br label %.lr.ph13 .lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph @@ -12988,7 +12983,7 @@ gv_calloc.exit79: ; preds = %gv_calloc.exit store double %67, ptr %68, align 8, !tbaa !108 %69 = fadd double %.09, %67 %70 = add nuw nsw i64 %.0757, 1 - %exitcond.not = icmp eq i64 %70, %umax + %exitcond.not = icmp eq i64 %70, %5 br i1 %exitcond.not, label %.lr.ph13.preheader, label %.lr.ph, !llvm.loop !503 .lr.ph13: ; preds = %.lr.ph13.preheader, %75 @@ -13002,11 +12997,11 @@ gv_calloc.exit79: ; preds = %gv_calloc.exit 75: ; preds = %.lr.ph13 %76 = add nuw nsw i64 %.07410, 1 - %exitcond36.not = icmp eq i64 %76, %umax35 + %exitcond36.not = icmp eq i64 %76, %5 br i1 %exitcond36.not, label %._crit_edge14, label %.lr.ph13, !llvm.loop !504 ._crit_edge14: ; preds = %75, %.lr.ph13 - %.074.lcssa = phi i64 [ %umax35, %75 ], [ %.07410, %.lr.ph13 ] + %.074.lcssa = phi i64 [ %5, %75 ], [ %.07410, %.lr.ph13 ] %77 = mul i64 %.074.lcssa, 3 %78 = add i64 %77, 4 %79 = getelementptr inbounds nuw i8, ptr %1, i64 8 diff --git a/bench/hermes/optimized/APFloat.ll b/bench/hermes/optimized/APFloat.ll index 8412a1f52f6..af2bf0d7ff7 100644 --- a/bench/hermes/optimized/APFloat.ll +++ b/bench/hermes/optimized/APFloat.ll @@ -7251,6 +7251,7 @@ while.body.lr.ph: ; preds = %if.end14 %sh_prom31 = zext nneg i32 %rem to i64 %12 = lshr i32 %sub17, 6 %13 = zext nneg i32 %12 to i64 + %sext = zext nneg i32 %div1.i.i to i64 br label %while.body while.body: ; preds = %while.body.lr.ph, %_ZN4llvhL9partAsHexEPcmjPKc.exit @@ -7258,9 +7259,8 @@ while.body: ; preds = %while.body.lr.ph, % %dst.addr.0.idx69 = phi i64 [ 3, %while.body.lr.ph ], [ %dst.addr.0.add48, %_ZN4llvhL9partAsHexEPcmjPKc.exit ] %outputDigits.167 = phi i32 [ %outputDigits.0, %while.body.lr.ph ], [ %sub37, %_ZN4llvhL9partAsHexEPcmjPKc.exit ] %indvars.iv.next = add nsw i64 %indvars.iv, -1 - %14 = trunc nsw i64 %indvars.iv.next to i32 - %cmp21 = icmp eq i32 %div1.i.i, %14 - br i1 %cmp21, label %if.end23, label %if.else + %14 = icmp eq i64 %indvars.iv.next, %sext + br i1 %14, label %if.end23, label %if.else if.else: ; preds = %while.body %arrayidx = getelementptr inbounds nuw i64, ptr %retval.0.i.i, i64 %indvars.iv.next diff --git a/bench/hwloc/optimized/lstopo-ascii.ll b/bench/hwloc/optimized/lstopo-ascii.ll index da4355f36ca..ddfb15b1524 100644 --- a/bench/hwloc/optimized/lstopo-ascii.ll +++ b/bench/hwloc/optimized/lstopo-ascii.ll @@ -181,20 +181,11 @@ define hidden range(i32 -1, 1) i32 @output_ascii(ptr noundef %0, ptr noundef %1) %86 = zext nneg i32 %75 to i64 %.not114 = icmp ult i32 %74, 10 %87 = load ptr, ptr @default_color, align 8 - br i1 %.not114, label %.lr.ph99.split.preheader, label %.lr.ph.us.preheader - -.lr.ph.us.preheader: ; preds = %.lr.ph99 - %umax = call i32 @llvm.umax.i32(i32 %75, i32 1) - %wide.trip.count121 = zext nneg i32 %80 to i64 - %wide.trip.count = zext nneg i32 %umax to i64 - br label %.lr.ph.us - -.lr.ph99.split.preheader: ; preds = %.lr.ph99 %wide.trip.count126 = zext nneg i32 %80 to i64 - br label %.lr.ph99.split + br i1 %.not114, label %.lr.ph99.split, label %.lr.ph.us -.lr.ph.us: ; preds = %.lr.ph.us.preheader, %._crit_edge.us - %indvars.iv118 = phi i64 [ 0, %.lr.ph.us.preheader ], [ %indvars.iv.next119, %._crit_edge.us ] +.lr.ph.us: ; preds = %.lr.ph99, %._crit_edge.us + %indvars.iv118 = phi i64 [ %indvars.iv.next119, %._crit_edge.us ], [ 0, %.lr.ph99 ] %88 = call noalias ptr @calloc(i64 noundef %86, i64 noundef 24) #19 %89 = getelementptr inbounds nuw ptr, ptr %84, i64 %indvars.iv118 store ptr %88, ptr %89, align 8, !tbaa !49 @@ -209,16 +200,16 @@ define hidden range(i32 -1, 1) i32 @output_ascii(ptr noundef %0, ptr noundef %1) %93 = getelementptr inbounds nuw i8, ptr %91, i64 16 store ptr %87, ptr %93, align 8, !tbaa !55 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count + %exitcond.not = icmp eq i64 %indvars.iv.next, %86 br i1 %exitcond.not, label %._crit_edge.us, label %90, !llvm.loop !56 ._crit_edge.us: ; preds = %90 %indvars.iv.next119 = add nuw nsw i64 %indvars.iv118, 1 - %exitcond122.not = icmp eq i64 %indvars.iv.next119, %wide.trip.count121 + %exitcond122.not = icmp eq i64 %indvars.iv.next119, %wide.trip.count126 br i1 %exitcond122.not, label %._crit_edge100, label %.lr.ph.us, !llvm.loop !58 -.lr.ph99.split: ; preds = %.lr.ph99.split.preheader, %.lr.ph99.split - %indvars.iv123 = phi i64 [ 0, %.lr.ph99.split.preheader ], [ %indvars.iv.next124, %.lr.ph99.split ] +.lr.ph99.split: ; preds = %.lr.ph99, %.lr.ph99.split + %indvars.iv123 = phi i64 [ %indvars.iv.next124, %.lr.ph99.split ], [ 0, %.lr.ph99 ] %94 = call noalias ptr @calloc(i64 noundef %86, i64 noundef 24) #19 %95 = getelementptr inbounds nuw ptr, ptr %84, i64 %indvars.iv123 store ptr %94, ptr %95, align 8, !tbaa !49 diff --git a/bench/image-rs/optimized/244uszkx0e8t5ie1.ll b/bench/image-rs/optimized/244uszkx0e8t5ie1.ll index 5d9e5c63e54..a0a461b7213 100644 --- a/bench/image-rs/optimized/244uszkx0e8t5ie1.ll +++ b/bench/image-rs/optimized/244uszkx0e8t5ie1.ll @@ -3767,14 +3767,12 @@ _ZN5alloc11collections5btree4node13move_to_slice17h84387d6dfca94129E.exit: ; pre 65: ; preds = %65, %_ZN5alloc11collections5btree4node13move_to_slice17h84387d6dfca94129E.exit %.sroa.0.05.i = phi i64 [ 0, %_ZN5alloc11collections5btree4node13move_to_slice17h84387d6dfca94129E.exit ], [ %66, %65 ] %66 = add nuw nsw i64 %.sroa.0.05.i, 1 - %67 = icmp samesign ult i64 %.sroa.0.05.i, 12 - tail call void @llvm.assume(i1 %67) - %68 = getelementptr inbounds nuw ptr, ptr %59, i64 %.sroa.0.05.i - %69 = load ptr, ptr %68, align 8, !nonnull !7, !noundef !7 - store ptr %10, ptr %69, align 8 - %70 = trunc nuw nsw i64 %.sroa.0.05.i to i16 - %71 = getelementptr inbounds nuw i8, ptr %69, i64 1240 - store i16 %70, ptr %71, align 8 + %67 = getelementptr inbounds nuw ptr, ptr %59, i64 %.sroa.0.05.i + %68 = load ptr, ptr %67, align 8, !nonnull !7, !noundef !7 + store ptr %10, ptr %68, align 8 + %69 = trunc nuw nsw i64 %.sroa.0.05.i to i16 + %70 = getelementptr inbounds nuw i8, ptr %68, i64 1240 + store i16 %69, ptr %70, align 8 %exitcond.not.i = icmp eq i64 %.sroa.0.05.i, %14 br i1 %exitcond.not.i, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17h6a70967897fd5e28E.exit", label %65 } @@ -18803,7 +18801,7 @@ _ZN5image6codecs4webp11loop_filter14simple_segment17h68ed65405427d4b1E.exit.i: ; %.sroa.038.1328.i = phi i64 [ 8, %.preheader274.lr.ph.i ], [ %873, %.loopexit275.i ] %.sroa.539.1327.in.i = phi i64 [ %.0.i.i.i179.i, %.preheader274.lr.ph.i ], [ %.sroa.539.1327.i, %.loopexit275.i ] %.sroa.643.1326.i = phi i64 [ 4, %.preheader274.lr.ph.i ], [ %.sroa.038.1328.i, %.loopexit275.i ] - %.sroa.539.1327.i = add i64 %.sroa.539.1327.in.i, -1 + %.sroa.539.1327.i = add nsw i64 %.sroa.539.1327.in.i, -1 br i1 %.not371.i, label %.loopexit275.i, label %.lr.ph322.i .lr.ph322.i: ; preds = %.preheader274.i @@ -19081,7 +19079,7 @@ _ZN5image6codecs4webp11loop_filter15subblock_filter17h6d6e8a66c01a51cfE.exit.i: %.sroa.025.1338.i = phi i64 [ 8, %.preheader270.lr.ph.i ], [ %1022, %.loopexit271.i ] %.sroa.526.1337.in.i = phi i64 [ %.0.i.i.i.i, %.preheader270.lr.ph.i ], [ %.sroa.526.1337.i, %.loopexit271.i ] %.sroa.628.1336.i = phi i64 [ 4, %.preheader270.lr.ph.i ], [ %.sroa.025.1338.i, %.loopexit271.i ] - %.sroa.526.1337.i = add i64 %.sroa.526.1337.in.i, -1 + %.sroa.526.1337.i = add nsw i64 %.sroa.526.1337.in.i, -1 br i1 %.not371.i, label %.loopexit271.i, label %.lr.ph332.i .lr.ph332.i: ; preds = %.preheader270.i @@ -19245,18 +19243,18 @@ _ZN5image6codecs4webp11loop_filter14simple_segment17h68ed65405427d4b1E.exit180.i .loopexit264.i: ; preds = %_ZN5image6codecs4webp11loop_filter15subblock_filter17h6d6e8a66c01a51cfE.exit187.i, %.preheader263.i %.not126.not.i = icmp eq i64 %.sroa.597.1351.i, 0 - %1082 = add i64 %.sroa.096.1350.i, 4 + %1082 = add nuw nsw i64 %.sroa.096.1350.i, 4 br i1 %.not126.not.i, label %.loopexit265.i, label %.preheader263.i .preheader263.i: ; preds = %.loopexit264.i, %.preheader263.lr.ph.i %.sroa.6101.1352.i = phi i64 [ 4, %.preheader263.lr.ph.i ], [ %.sroa.096.1350.i, %.loopexit264.i ] %.sroa.597.1351.in.i = phi i64 [ %.0.i.i.i184.i, %.preheader263.lr.ph.i ], [ %.sroa.597.1351.i, %.loopexit264.i ] %.sroa.096.1350.i = phi i64 [ 8, %.preheader263.lr.ph.i ], [ %1082, %.loopexit264.i ] - %.sroa.597.1351.i = add i64 %.sroa.597.1351.in.i, -1 + %.sroa.597.1351.i = add nsw i64 %.sroa.597.1351.in.i, -1 br i1 %.not373.i, label %.loopexit264.i, label %.lr.ph346.i .lr.ph346.i: ; preds = %.preheader263.i - %1083 = add i64 %.sroa.6101.1352.i, %733 + %1083 = add nuw nsw i64 %.sroa.6101.1352.i, %733 %1084 = mul i64 %1083, %714 %1085 = add i64 %1084, %800 br label %1143 @@ -19369,7 +19367,7 @@ _ZN5image6codecs4webp11loop_filter15subblock_filter17h6d6e8a66c01a51cfE.exit: ; 1143: ; preds = %_ZN5image6codecs4webp11loop_filter15subblock_filter17h6d6e8a66c01a51cfE.exit187.i, %.lr.ph346.i %.sroa.0104.0345.i = phi i64 [ 0, %.lr.ph346.i ], [ %1144, %_ZN5image6codecs4webp11loop_filter15subblock_filter17h6d6e8a66c01a51cfE.exit187.i ] %1144 = add nuw nsw i64 %.sroa.0104.0345.i, 1 - %1145 = add i64 %1085, %.sroa.0104.0345.i + %1145 = add nuw nsw i64 %1085, %.sroa.0104.0345.i %1146 = call fastcc noundef zeroext i1 @_ZN5image6codecs4webp11loop_filter13should_filter17h674fddabbab381b7E(i8 noundef %spec.store.select.i485.i, i8 noundef %798, ptr noalias noundef nonnull readonly align 1 %.val173.i, i64 noundef %.val174.i, i64 noundef %1145, i64 noundef %714), !noalias !2209 br i1 %1146, label %1147, label %_ZN5image6codecs4webp11loop_filter15subblock_filter17h6d6e8a66c01a51cfE.exit187.i @@ -19530,7 +19528,7 @@ _ZN5image6codecs4webp11loop_filter15subblock_filter17h6d6e8a66c01a51cfE.exit187. %.sroa.686.1362.i = phi i64 [ 4, %.preheader.lr.ph.i ], [ %.sroa.081.1360.i, %.loopexit.i ] %.sroa.582.1361.in.i = phi i64 [ %.0.i.i.i182.i, %.preheader.lr.ph.i ], [ %.sroa.582.1361.i, %.loopexit.i ] %.sroa.081.1360.i = phi i64 [ 8, %.preheader.lr.ph.i ], [ %1231, %.loopexit.i ] - %.sroa.582.1361.i = add i64 %.sroa.582.1361.in.i, -1 + %.sroa.582.1361.i = add nsw i64 %.sroa.582.1361.in.i, -1 br i1 %.not374.i, label %.loopexit.i, label %.lr.ph356.i .lr.ph356.i: ; preds = %.preheader.i diff --git a/bench/jiff-rs/optimized/64cpubcqv6oka7uw3qzeepee9.ll b/bench/jiff-rs/optimized/64cpubcqv6oka7uw3qzeepee9.ll index 22256044701..82cee7120aa 100644 --- a/bench/jiff-rs/optimized/64cpubcqv6oka7uw3qzeepee9.ll +++ b/bench/jiff-rs/optimized/64cpubcqv6oka7uw3qzeepee9.ll @@ -5211,12 +5211,12 @@ define internal fastcc void @"_ZN4jiff6shared4tzif371_$LT$impl$u20$jiff..shared. 49: ; preds = %.lr.ph.i %50 = getelementptr inbounds nuw i8, ptr %47, i64 1 - %51 = add i64 %.sroa.02.011.i, 1 + %51 = add nuw nsw i64 %.sroa.02.011.i, 1 %52 = icmp eq ptr %50, %45 br i1 %52, label %.loopexit, label %.lr.ph.i 53: ; preds = %.lr.ph.i - %54 = icmp ult i64 %.sroa.02.011.i, %.sroa.0.0.sroa.speculated.i + %54 = icmp samesign ult i64 %.sroa.02.011.i, %.sroa.0.0.sroa.speculated.i tail call void @llvm.assume(i1 %54) %55 = getelementptr inbounds nuw i8, ptr %44, i64 %.sroa.02.011.i %56 = icmp eq i64 %.sroa.02.011.i, 0 diff --git a/bench/just-rs/optimized/15cobjmzhaiu6jpj.ll b/bench/just-rs/optimized/15cobjmzhaiu6jpj.ll index 7d1ccc9ff61..c476eeec65d 100644 --- a/bench/just-rs/optimized/15cobjmzhaiu6jpj.ll +++ b/bench/just-rs/optimized/15cobjmzhaiu6jpj.ll @@ -20619,15 +20619,13 @@ _ZN5alloc11collections5btree4node13move_to_slice17h95949a1404486d19E.exit: ; pre 68: ; preds = %68, %_ZN5alloc11collections5btree4node13move_to_slice17h95949a1404486d19E.exit %.sroa.0.05.i = phi i64 [ 0, %_ZN5alloc11collections5btree4node13move_to_slice17h95949a1404486d19E.exit ], [ %69, %68 ] %69 = add nuw nsw i64 %.sroa.0.05.i, 1 - %70 = icmp samesign ult i64 %.sroa.0.05.i, 12 - tail call void @llvm.assume(i1 %70) - %71 = getelementptr inbounds nuw ptr, ptr %61, i64 %.sroa.0.05.i - %72 = load ptr, ptr %71, align 8, !nonnull !14, !noundef !14 - %73 = getelementptr inbounds nuw i8, ptr %72, i64 176 - store ptr %10, ptr %73, align 8 - %74 = trunc nuw nsw i64 %.sroa.0.05.i to i16 - %75 = getelementptr inbounds nuw i8, ptr %72, i64 448 - store i16 %74, ptr %75, align 8 + %70 = getelementptr inbounds nuw ptr, ptr %61, i64 %.sroa.0.05.i + %71 = load ptr, ptr %70, align 8, !nonnull !14, !noundef !14 + %71 = getelementptr inbounds nuw i8, ptr %71, i64 176 + store ptr %10, ptr %71, align 8 + %73 = trunc nuw nsw i64 %.sroa.0.05.i to i16 + %74 = getelementptr inbounds nuw i8, ptr %71, i64 448 + store i16 %73, ptr %74, align 8 %exitcond.not.i = icmp eq i64 %.sroa.0.05.i, %14 br i1 %exitcond.not.i, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17ha87321a3a2b843f6E.exit", label %68 } @@ -20758,15 +20756,13 @@ _ZN5alloc11collections5btree4node13move_to_slice17hdd6c7a524dcd45f4E.exit: ; pre 68: ; preds = %68, %_ZN5alloc11collections5btree4node13move_to_slice17hdd6c7a524dcd45f4E.exit %.sroa.0.05.i = phi i64 [ 0, %_ZN5alloc11collections5btree4node13move_to_slice17hdd6c7a524dcd45f4E.exit ], [ %69, %68 ] %69 = add nuw nsw i64 %.sroa.0.05.i, 1 - %70 = icmp samesign ult i64 %.sroa.0.05.i, 12 - tail call void @llvm.assume(i1 %70) - %71 = getelementptr inbounds nuw ptr, ptr %61, i64 %.sroa.0.05.i - %72 = load ptr, ptr %71, align 8, !nonnull !14, !noundef !14 - %73 = getelementptr inbounds nuw i8, ptr %72, i64 176 - store ptr %10, ptr %73, align 8 - %74 = trunc nuw nsw i64 %.sroa.0.05.i to i16 - %75 = getelementptr inbounds nuw i8, ptr %72, i64 2032 - store i16 %74, ptr %75, align 8 + %70 = getelementptr inbounds nuw ptr, ptr %61, i64 %.sroa.0.05.i + %71 = load ptr, ptr %70, align 8, !nonnull !14, !noundef !14 + %71 = getelementptr inbounds nuw i8, ptr %71, i64 176 + store ptr %10, ptr %71, align 8 + %73 = trunc nuw nsw i64 %.sroa.0.05.i to i16 + %74 = getelementptr inbounds nuw i8, ptr %71, i64 2032 + store i16 %73, ptr %74, align 8 %exitcond.not.i = icmp eq i64 %.sroa.0.05.i, %14 br i1 %exitcond.not.i, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17h1cdcc25d785d8f5bE.exit", label %68 } @@ -20897,15 +20893,13 @@ _ZN5alloc11collections5btree4node13move_to_slice17h55312091957e3266E.exit: ; pre 68: ; preds = %68, %_ZN5alloc11collections5btree4node13move_to_slice17h55312091957e3266E.exit %.sroa.0.05.i = phi i64 [ 0, %_ZN5alloc11collections5btree4node13move_to_slice17h55312091957e3266E.exit ], [ %69, %68 ] %69 = add nuw nsw i64 %.sroa.0.05.i, 1 - %70 = icmp samesign ult i64 %.sroa.0.05.i, 12 - tail call void @llvm.assume(i1 %70) - %71 = getelementptr inbounds nuw ptr, ptr %61, i64 %.sroa.0.05.i - %72 = load ptr, ptr %71, align 8, !nonnull !14, !noundef !14 - %73 = getelementptr inbounds nuw i8, ptr %72, i64 3168 - store ptr %10, ptr %73, align 8 - %74 = trunc nuw nsw i64 %.sroa.0.05.i to i16 - %75 = getelementptr inbounds nuw i8, ptr %72, i64 3176 - store i16 %74, ptr %75, align 8 + %70 = getelementptr inbounds nuw ptr, ptr %61, i64 %.sroa.0.05.i + %71 = load ptr, ptr %70, align 8, !nonnull !14, !noundef !14 + %71 = getelementptr inbounds nuw i8, ptr %71, i64 3168 + store ptr %10, ptr %71, align 8 + %73 = trunc nuw nsw i64 %.sroa.0.05.i to i16 + %74 = getelementptr inbounds nuw i8, ptr %71, i64 3176 + store i16 %73, ptr %74, align 8 %exitcond.not.i = icmp eq i64 %.sroa.0.05.i, %14 br i1 %exitcond.not.i, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17hab445a328c88509eE.exit", label %68 } diff --git a/bench/libquic/optimized/url_parse.ll b/bench/libquic/optimized/url_parse.ll index 021d1ce72b4..da062c2847e 100644 --- a/bench/libquic/optimized/url_parse.ll +++ b/bench/libquic/optimized/url_parse.ll @@ -3383,6 +3383,7 @@ _ZN3url7TrimURLIcEEvPKT_PiS4_b.exit.thread.i: ; preds = %31, %_ZN3url7TrimUR .lr.ph27.preheader.i.i: ; preds = %.critedge.i55.i %57 = zext i32 %.019.lcssa.i.i to i64 + %sext.i = sext i32 %50 to i64 br label %.lr.ph27.i.i .lr.ph27.i.i: ; preds = %61, %.lr.ph27.preheader.i.i @@ -3394,9 +3395,8 @@ _ZN3url7TrimURLIcEEvPKT_PiS4_b.exit.thread.i: ; preds = %31, %_ZN3url7TrimUR 61: ; preds = %.lr.ph27.i.i %indvars.iv.next31.i.i = add nuw nsw i64 %indvars.iv30.i.i, 1 - %62 = trunc nuw i64 %indvars.iv.next31.i.i to i32 - %.not.i56.i = icmp sgt i32 %50, %62 - br i1 %.not.i56.i, label %.lr.ph27.i.i, label %.loopexit.i, !llvm.loop !24 + %62 = icmp slt i64 %indvars.iv.next31.i.i, %sext.i + br i1 %62, label %.lr.ph27.i.i, label %.loopexit.i, !llvm.loop !24 63: ; preds = %.lr.ph27.i.i %64 = trunc nuw i64 %indvars.iv30.i.i to i32 @@ -3448,6 +3448,7 @@ _ZN3url7TrimURLIcEEvPKT_PiS4_b.exit.thread.i: ; preds = %31, %_ZN3url7TrimUR .lr.ph27.preheader.i65.i: ; preds = %.critedge.i61.i %81 = zext i32 %.019.lcssa.i62.i to i64 + %sext121.i = sext i32 %74 to i64 br label %.lr.ph27.i66.i .lr.ph27.i66.i: ; preds = %85, %.lr.ph27.preheader.i65.i @@ -3459,9 +3460,8 @@ _ZN3url7TrimURLIcEEvPKT_PiS4_b.exit.thread.i: ; preds = %31, %_ZN3url7TrimUR 85: ; preds = %.lr.ph27.i66.i %indvars.iv.next31.i68.i = add nuw nsw i64 %indvars.iv30.i67.i, 1 - %86 = trunc nuw i64 %indvars.iv.next31.i68.i to i32 - %.not.i69.i = icmp sgt i32 %74, %86 - br i1 %.not.i69.i, label %.lr.ph27.i66.i, label %_ZN3url12_GLOBAL__N_115DoExtractSchemeIcEEbPKT_iPNS_9ComponentE.exit80.thread.i, !llvm.loop !24 + %86 = icmp slt i64 %indvars.iv.next31.i68.i, %sext121.i + br i1 %86, label %.lr.ph27.i66.i, label %_ZN3url12_GLOBAL__N_115DoExtractSchemeIcEEbPKT_iPNS_9ComponentE.exit80.thread.i, !llvm.loop !24 .loopexit.i: ; preds = %55, %61, %.critedge.i55.i store i32 0, ptr %2, align 4, !tbaa !3 @@ -3789,6 +3789,7 @@ _ZN3url7TrimURLItEEvPKT_PiS4_b.exit.thread.i: ; preds = %31, %_ZN3url7TrimUR .lr.ph27.preheader.i.i: ; preds = %.critedge.i55.i %57 = zext i32 %.019.lcssa.i.i to i64 + %sext.i = sext i32 %50 to i64 br label %.lr.ph27.i.i .lr.ph27.i.i: ; preds = %61, %.lr.ph27.preheader.i.i @@ -3800,9 +3801,8 @@ _ZN3url7TrimURLItEEvPKT_PiS4_b.exit.thread.i: ; preds = %31, %_ZN3url7TrimUR 61: ; preds = %.lr.ph27.i.i %indvars.iv.next31.i.i = add nuw nsw i64 %indvars.iv30.i.i, 1 - %62 = trunc nuw i64 %indvars.iv.next31.i.i to i32 - %.not.i56.i = icmp sgt i32 %50, %62 - br i1 %.not.i56.i, label %.lr.ph27.i.i, label %.loopexit.i, !llvm.loop !28 + %62 = icmp slt i64 %indvars.iv.next31.i.i, %sext.i + br i1 %62, label %.lr.ph27.i.i, label %.loopexit.i, !llvm.loop !28 63: ; preds = %.lr.ph27.i.i %64 = trunc nuw i64 %indvars.iv30.i.i to i32 @@ -3854,6 +3854,7 @@ _ZN3url7TrimURLItEEvPKT_PiS4_b.exit.thread.i: ; preds = %31, %_ZN3url7TrimUR .lr.ph27.preheader.i65.i: ; preds = %.critedge.i61.i %81 = zext i32 %.019.lcssa.i62.i to i64 + %sext121.i = sext i32 %74 to i64 br label %.lr.ph27.i66.i .lr.ph27.i66.i: ; preds = %85, %.lr.ph27.preheader.i65.i @@ -3865,9 +3866,8 @@ _ZN3url7TrimURLItEEvPKT_PiS4_b.exit.thread.i: ; preds = %31, %_ZN3url7TrimUR 85: ; preds = %.lr.ph27.i66.i %indvars.iv.next31.i68.i = add nuw nsw i64 %indvars.iv30.i67.i, 1 - %86 = trunc nuw i64 %indvars.iv.next31.i68.i to i32 - %.not.i69.i = icmp sgt i32 %74, %86 - br i1 %.not.i69.i, label %.lr.ph27.i66.i, label %_ZN3url12_GLOBAL__N_115DoExtractSchemeItEEbPKT_iPNS_9ComponentE.exit80.thread.i, !llvm.loop !28 + %86 = icmp slt i64 %indvars.iv.next31.i68.i, %sext121.i + br i1 %86, label %.lr.ph27.i66.i, label %_ZN3url12_GLOBAL__N_115DoExtractSchemeItEEbPKT_iPNS_9ComponentE.exit80.thread.i, !llvm.loop !28 .loopexit.i: ; preds = %55, %61, %.critedge.i55.i store i32 0, ptr %2, align 4, !tbaa !3 diff --git a/bench/lief/optimized/nist_kw.ll b/bench/lief/optimized/nist_kw.ll index f6d1d7d25c1..26ba5cad20f 100644 --- a/bench/lief/optimized/nist_kw.ll +++ b/bench/lief/optimized/nist_kw.ll @@ -177,7 +177,6 @@ define hidden i32 @mbedtls_nist_kw_wrap(ptr noundef %0, i32 noundef %1, ptr noun %46 = getelementptr inbounds nuw i8, ptr %9, i64 8 %47 = shl nuw nsw i64 %36, 3 %48 = getelementptr inbounds nuw i8, ptr %4, i64 %47 - %umax = tail call i64 @llvm.umax.i64(i64 %37, i64 1) br label %49 49: ; preds = %.lr.ph, %calc_a_xor_t.exit @@ -217,7 +216,7 @@ calc_a_xor_t.exit: ; preds = %55 %.not86 = icmp ult ptr %65, %48 %spec.select90 = select i1 %.not86, ptr %65, ptr %43 %66 = add nuw i64 %.069102, 1 - %exitcond.not = icmp eq i64 %.069102, %umax + %exitcond.not = icmp eq i64 %.069102, %37 br i1 %exitcond.not, label %.loopexit, label %49, !llvm.loop !10 .loopexit: ; preds = %calc_a_xor_t.exit, %40 @@ -345,9 +344,9 @@ define hidden i32 @mbedtls_nist_kw_unwrap(ptr noundef %0, i32 noundef %1, ptr no %41 = call i32 @llvm.bswap.i32(i32 %.0.copyload.i) %42 = zext i32 %41 to i64 %43 = sub nsw i64 %13, %42 - %44 = call { i64, i64, i64 } asm sideeffect "mov $1, $0 \0A\09xor $2, $0 \0A\09sub $2, $1 \0A\09and $0, $2 \0A\09not $0 \0A\09and $0, $1 \0A\09or $2, $1 \0A\09sar $$63, $1 \0A\09", "=&{ax},=&{di},=&{si},1,2,~{dirflag},~{fpsr},~{flags}"(i64 7, i64 %43) #11, !srcloc !13 + %44 = call { i64, i64, i64 } asm sideeffect "mov $1, $0 \0A\09xor $2, $0 \0A\09sub $2, $1 \0A\09and $0, $2 \0A\09not $0 \0A\09and $0, $1 \0A\09or $2, $1 \0A\09sar $$63, $1 \0A\09", "=&{ax},=&{di},=&{si},1,2,~{dirflag},~{fpsr},~{flags}"(i64 7, i64 %43) #10, !srcloc !13 %45 = extractvalue { i64, i64, i64 } %44, 1 - %46 = call { i64, i64, i64 } asm sideeffect "and $0, $1 \0A\09not $0 \0A\09and $0, $2 \0A\09or $1, $2 \0A\09", "=&{di},=&{si},=&{ax},0,1,2,~{dirflag},~{fpsr},~{flags}"(i64 %45, i64 25344, i64 range(i64 -2147483647, 2147483648) %spec.select76.neg) #11, !srcloc !14 + %46 = call { i64, i64, i64 } asm sideeffect "and $0, $1 \0A\09not $0 \0A\09and $0, $2 \0A\09or $1, $2 \0A\09", "=&{di},=&{si},=&{ax},0,1,2,~{dirflag},~{fpsr},~{flags}"(i64 %45, i64 25344, i64 range(i64 -2147483647, 2147483648) %spec.select76.neg) #10, !srcloc !14 %47 = extractvalue { i64, i64, i64 } %46, 2 %48 = trunc i64 %47 to i32 %49 = sub nsw i32 0, %48 @@ -843,9 +842,6 @@ declare noundef i32 @puts(ptr noundef readonly captures(none)) local_unnamed_add ; Function Attrs: nofree nounwind declare noundef i32 @putchar(i32 noundef) local_unnamed_addr #9 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umax.i64(i64, i64) #10 - attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #2 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -856,8 +852,7 @@ attributes #6 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buf attributes #7 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: read) } attributes #9 = { nofree nounwind } -attributes #10 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #11 = { nounwind } +attributes #10 = { nounwind } !llvm.module.flags = !{!0, !1, !2} diff --git a/bench/linux/optimized/virtio_blk.ll b/bench/linux/optimized/virtio_blk.ll index b9a5fa30802..96894ad3b5a 100644 --- a/bench/linux/optimized/virtio_blk.ll +++ b/bench/linux/optimized/virtio_blk.ll @@ -1043,11 +1043,12 @@ define internal fastcc i32 @init_vq(ptr noundef captures(none) %0) unnamed_addr br i1 %55, label %.preheader14.preheader, label %.loopexit15 .preheader14.preheader: ; preds = %54 + %wide.trip.count = zext nneg i32 %35 to i64 %.pre = load ptr, ptr %42, align 8 br label %.preheader14 .loopexit15.loopexit: ; preds = %.preheader14 - %56 = trunc nuw i64 %indvars.iv.next to i16 + %56 = trunc nuw i32 %35 to i16 br label %.loopexit15 .loopexit15: ; preds = %.loopexit15.loopexit, %54 @@ -1075,10 +1076,10 @@ define internal fastcc i32 @init_vq(ptr noundef captures(none) %0) unnamed_addr %67 = getelementptr i8, ptr %.split8, i64 12 %68 = getelementptr ptr, ptr %46, i64 %indvars.iv store ptr %67, ptr %68, align 8 - %indvars.iv.next = add nuw i64 %indvars.iv, 1 + %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %69 = trunc nuw i64 %indvars.iv.next to i32 - %70 = icmp samesign ugt i32 %35, %69 - br i1 %70, label %.preheader14, label %.loopexit15.loopexit, !llvm.loop !13 + %70 = icmp eq i64 %indvars.iv.next, %wide.trip.count + br i1 %70, label %.loopexit15.loopexit, label %.preheader14, !llvm.loop !13 .preheader12: ; preds = %.preheader12.preheader, %.preheader12 %71 = phi ptr [ %.pre18, %.preheader12.preheader ], [ %76, %.preheader12 ] @@ -1104,7 +1105,7 @@ define internal fastcc i32 @init_vq(ptr noundef captures(none) %0) unnamed_addr %82 = load ptr, ptr %81, align 8 %83 = getelementptr inbounds nuw i8, ptr %82, i64 48 %84 = load ptr, ptr %83, align 8 - %85 = call i32 %84(ptr noundef %5, i32 noundef %29, ptr noundef nonnull %48, ptr noundef nonnull %47, ptr noundef nonnull %46, ptr noundef null, ptr noundef nonnull %2) #14 + %85 = call i32 %83(ptr noundef %5, i32 noundef %29, ptr noundef nonnull %48, ptr noundef nonnull %47, ptr noundef nonnull %46, ptr noundef null, ptr noundef nonnull %2) #14 %86 = icmp eq i32 %85, 0 br i1 %86, label %87, label %99 @@ -1113,7 +1114,7 @@ define internal fastcc i32 @init_vq(ptr noundef captures(none) %0) unnamed_addr br i1 %88, label %.loopexit, label %.preheader .preheader: ; preds = %87, %.preheader - %89 = phi i64 [ %96, %.preheader ], [ 0, %87 ] + %89 = phi i64 [ %96, %.preheader ], [ 0, %86 ] %90 = load ptr, ptr %42, align 8 %.split11 = getelementptr %struct.virtio_blk_vq, ptr %90, i64 %89 %91 = getelementptr i8, ptr %.split11, i64 8 @@ -1146,7 +1147,7 @@ define internal fastcc i32 @init_vq(ptr noundef captures(none) %0) unnamed_addr br label %104 104: ; preds = %102, %99, %26, %16 - %105 = phi i32 [ -22, %16 ], [ -12, %26 ], [ %100, %102 ], [ 0, %99 ] + %105 = phi i32 [ -22, %16 ], [ -12, %26 ], [ %100, %101 ], [ 0, %98 ] call void @llvm.lifetime.end.p0(ptr nonnull %2) ret i32 %105 } diff --git a/bench/llvm/optimized/DWARFGdbIndex.ll b/bench/llvm/optimized/DWARFGdbIndex.ll index 21562924052..f1e5b033c0b 100644 --- a/bench/llvm/optimized/DWARFGdbIndex.ll +++ b/bench/llvm/optimized/DWARFGdbIndex.ll @@ -1163,7 +1163,6 @@ _ZN4llvm15SmallVectorImplINS_13DWARFGdbIndex13CompUnitEntryEE7reserveEm.exit: ; .lr.ph: ; preds = %_ZN4llvm15SmallVectorImplINS_13DWARFGdbIndex13CompUnitEntryEE7reserveEm.exit %34 = getelementptr inbounds nuw i8, ptr %0, i64 32 %35 = getelementptr inbounds nuw i8, ptr %0, i64 40 - %umax = call i32 @llvm.umax.i32(i32 %26, i32 1) br label %58 ._crit_edge: ; preds = %_ZN4llvm23SmallVectorTemplateBaseINS_13DWARFGdbIndex13CompUnitEntryELb1EE9push_backES2_.exit, %_ZN4llvm15SmallVectorImplINS_13DWARFGdbIndex13CompUnitEntryEE7reserveEm.exit @@ -1218,12 +1217,7 @@ _ZN4llvm15SmallVectorImplINS_13DWARFGdbIndex13TypeUnitEntryEE7reserveEm.exit.i.i _ZN4llvm15SmallVectorImplINS_13DWARFGdbIndex13TypeUnitEntryEE6resizeEm.exit: ; preds = %._crit_edge, %.sink.split.i.i %.not90 = icmp ult i32 %38, 24 - br i1 %.not90, label %._crit_edge74, label %.lr.ph73.preheader - -.lr.ph73.preheader: ; preds = %_ZN4llvm15SmallVectorImplINS_13DWARFGdbIndex13TypeUnitEntryEE6resizeEm.exit - %umax96 = call i32 @llvm.umax.i32(i32 %39, i32 1) - %wide.trip.count = zext nneg i32 %umax96 to i64 - br label %.lr.ph73 + br i1 %.not90, label %._crit_edge74, label %.lr.ph73 58: ; preds = %.lr.ph, %_ZN4llvm23SmallVectorTemplateBaseINS_13DWARFGdbIndex13CompUnitEntryELb1EE9push_backES2_.exit %.04471 = phi i32 [ 0, %.lr.ph ], [ %72, %_ZN4llvm23SmallVectorTemplateBaseINS_13DWARFGdbIndex13CompUnitEntryELb1EE9push_backES2_.exit ] @@ -1253,7 +1247,7 @@ _ZN4llvm23SmallVectorTemplateBaseINS_13DWARFGdbIndex13CompUnitEntryELb1EE9push_b %71 = add i32 %70, 1 store i32 %71, ptr %34, align 8, !tbaa !3 %72 = add nuw nsw i32 %.04471, 1 - %exitcond.not = icmp eq i32 %72, %umax + %exitcond.not = icmp eq i32 %72, %26 br i1 %exitcond.not, label %._crit_edge, label %58, !llvm.loop !169 ._crit_edge74: ; preds = %.lr.ph73, %_ZN4llvm15SmallVectorImplINS_13DWARFGdbIndex13TypeUnitEntryEE6resizeEm.exit @@ -1283,11 +1277,10 @@ _ZN4llvm15SmallVectorImplINS_13DWARFGdbIndex12AddressEntryEE7reserveEm.exit: ; p %86 = getelementptr inbounds nuw i8, ptr %0, i64 64 %87 = getelementptr inbounds nuw i8, ptr %0, i64 72 %88 = ptrtoint ptr %4 to i64 - %umax98 = call i32 @llvm.umax.i32(i32 %76, i32 1) br label %112 -.lr.ph73: ; preds = %.lr.ph73.preheader, %.lr.ph73 - %indvars.iv = phi i64 [ 0, %.lr.ph73.preheader ], [ %indvars.iv.next, %.lr.ph73 ] +.lr.ph73: ; preds = %_ZN4llvm15SmallVectorImplINS_13DWARFGdbIndex13TypeUnitEntryEE6resizeEm.exit, %.lr.ph73 + %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph73 ], [ 0, %_ZN4llvm15SmallVectorImplINS_13DWARFGdbIndex13TypeUnitEntryEE6resizeEm.exit ] %89 = call noundef i64 @_ZNK4llvm13DataExtractor6getU64EPmPNS_5ErrorE(ptr noundef nonnull align 8 dereferenceable(18) %1, ptr noundef nonnull %3, ptr noundef null) #15 %90 = call noundef i64 @_ZNK4llvm13DataExtractor6getU64EPmPNS_5ErrorE(ptr noundef nonnull align 8 dereferenceable(18) %1, ptr noundef nonnull %3, ptr noundef null) #15 %91 = call noundef i64 @_ZNK4llvm13DataExtractor6getU64EPmPNS_5ErrorE(ptr noundef nonnull align 8 dereferenceable(18) %1, ptr noundef nonnull %3, ptr noundef null) #15 @@ -1299,7 +1292,7 @@ _ZN4llvm15SmallVectorImplINS_13DWARFGdbIndex12AddressEntryEE7reserveEm.exit: ; p %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %93, i64 16 store i64 %91, ptr %.sroa.5.0..sroa_idx, align 8, !tbaa !34 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond97.not = icmp eq i64 %indvars.iv.next, %wide.trip.count + %exitcond97.not = icmp eq i64 %indvars.iv.next, %41 br i1 %exitcond97.not, label %._crit_edge74, label %.lr.ph73, !llvm.loop !170 ._crit_edge77: ; preds = %_ZN4llvm23SmallVectorTemplateBaseINS_13DWARFGdbIndex12AddressEntryELb1EE9push_backERKS2_.exit, %_ZN4llvm15SmallVectorImplINS_13DWARFGdbIndex12AddressEntryEE7reserveEm.exit @@ -1337,7 +1330,6 @@ _ZN4llvm15SmallVectorImplINS_13DWARFGdbIndex13SymTableEntryEE7reserveEm.exit: ; .lr.ph79: ; preds = %_ZN4llvm15SmallVectorImplINS_13DWARFGdbIndex13SymTableEntryEE7reserveEm.exit %110 = getelementptr inbounds nuw i8, ptr %0, i64 80 %111 = getelementptr inbounds nuw i8, ptr %0, i64 88 - %umax100 = call i32 @llvm.umax.i32(i32 %97, i32 1) br label %142 112: ; preds = %.lr.ph76, %_ZN4llvm23SmallVectorTemplateBaseINS_13DWARFGdbIndex12AddressEntryELb1EE9push_backERKS2_.exit @@ -1389,7 +1381,7 @@ _ZN4llvm23SmallVectorTemplateBaseINS_13DWARFGdbIndex12AddressEntryELb1EE9push_ba store i32 %134, ptr %86, align 8, !tbaa !3 call void @llvm.lifetime.end.p0(ptr nonnull %4) %135 = add nuw nsw i32 %.04675, 1 - %exitcond99.not = icmp eq i32 %135, %umax98 + %exitcond99.not = icmp eq i32 %135, %76 br i1 %exitcond99.not, label %._crit_edge77, label %112, !llvm.loop !182 ._crit_edge80: ; preds = %_ZNSt3setIjSt4lessIjESaIjEE6insertERKj.exit @@ -1500,7 +1492,7 @@ _ZNSt8_Rb_treeIjjSt9_IdentityIjESt4lessIjESaIjEE10_M_insert_IRKjNS5_11_Alloc_nod _ZNSt3setIjSt4lessIjESaIjEE6insertERKj.exit: ; preds = %_ZNSt8_Rb_treeIjjSt9_IdentityIjESt4lessIjESaIjEE10_M_insert_IRKjNS5_11_Alloc_nodeEEESt17_Rb_tree_iteratorIjEPSt18_Rb_tree_node_baseSD_OT_RT0_.exit.i.i, %165, %_ZN4llvm23SmallVectorTemplateBaseINS_13DWARFGdbIndex13SymTableEntryELb1EE9push_backES2_.exit %178 = add nuw nsw i32 %.04778, 1 - %exitcond101.not = icmp eq i32 %178, %umax100 + %exitcond101.not = icmp eq i32 %178, %97 br i1 %exitcond101.not, label %._crit_edge80, label %142, !llvm.loop !185 ._crit_edge88: ; preds = %._crit_edge83, %_ZN4llvm15SmallVectorImplINS_13DWARFGdbIndex13SymTableEntryEE7reserveEm.exit, %._crit_edge80 @@ -2473,9 +2465,6 @@ declare i32 @bcmp(ptr captures(none), ptr captures(none), i64) local_unnamed_add ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.umin.i64(i64, i64) #14 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umax.i32(i32, i32) #14 - attributes #0 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } diff --git a/bench/llvm/optimized/LegalizerHelper.ll b/bench/llvm/optimized/LegalizerHelper.ll index 7e8bd884ee2..95447b10b47 100644 --- a/bench/llvm/optimized/LegalizerHelper.ll +++ b/bench/llvm/optimized/LegalizerHelper.ll @@ -56465,9 +56465,7 @@ _ZN4llvm11SmallVectorINS0_INS_8RegisterELj8EEELj3EEC2Em.exit: ; preds = %_ZNK4ll %102 = getelementptr inbounds nuw i8, ptr %4, i64 8 %103 = getelementptr inbounds nuw i8, ptr %4, i64 4 %104 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %umax = call i32 @llvm.umax.i32(i32 %71, i32 1) %105 = zext nneg i32 %98 to i64 - %wide.trip.count = zext nneg i32 %umax to i64 br label %130 .lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph @@ -56624,7 +56622,7 @@ _ZN4llvm23SmallVectorTemplateBaseINS_8RegisterELb1EE9push_backES1_.exit: ; preds %185 = getelementptr inbounds nuw i8, ptr %184, i64 64 call void @_ZN4llvm12MachineInstr10addOperandERNS_15MachineFunctionERKNS_14MachineOperandE(ptr noundef nonnull align 8 dereferenceable(70) %137, ptr noundef nonnull align 8 dereferenceable(1065) %136, ptr noundef nonnull align 8 dereferenceable(32) %185) #19 %indvars.iv.next99 = add nuw nsw i64 %indvars.iv98, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next99, %wide.trip.count + %exitcond.not = icmp eq i64 %indvars.iv.next99, %72 br i1 %exitcond.not, label %._crit_edge86, label %.lr.ph85, !llvm.loop !831 186: ; preds = %._crit_edge90 diff --git a/bench/llvm/optimized/Localizer.ll b/bench/llvm/optimized/Localizer.ll index 8a2bf6ffe26..326f048db59 100644 --- a/bench/llvm/optimized/Localizer.ll +++ b/bench/llvm/optimized/Localizer.ll @@ -318,8 +318,7 @@ define dso_local noundef i32 @_ZNK4llvm9Localizer13getNumPhiUsesERNS_14MachineOp %15 = lshr i32 %14, 1 %16 = getelementptr inbounds nuw i8, ptr %4, i64 32 %17 = load ptr, ptr %16, align 8, !tbaa !185 - %umax = tail call i32 @llvm.umax.i32(i32 %15, i32 1) - %wide.trip.count = zext nneg i32 %umax to i64 + %wide.trip.count = zext nneg i32 %15 to i64 br label %18 18: ; preds = %.lr.ph, %18 @@ -545,8 +544,7 @@ _ZN4llvm9Localizer10isLocalUseERNS_14MachineOperandERKNS_12MachineInstrERPNS_17M %101 = lshr i32 %100, 1 %102 = getelementptr inbounds nuw i8, ptr %90, i64 32 %103 = load ptr, ptr %102, align 8, !tbaa !185 - %umax.i = call i32 @llvm.umax.i32(i32 %101, i32 1) - %wide.trip.count.i = zext nneg i32 %umax.i to i64 + %wide.trip.count.i = zext nneg i32 %101 to i64 br label %104 104: ; preds = %104, %.lr.ph.i diff --git a/bench/llvm/optimized/RISCVAsmBackend.ll b/bench/llvm/optimized/RISCVAsmBackend.ll index b4ba6d9bd99..9c1227606b5 100644 --- a/bench/llvm/optimized/RISCVAsmBackend.ll +++ b/bench/llvm/optimized/RISCVAsmBackend.ll @@ -3175,27 +3175,29 @@ _ZL16adjustFixupValueRKN4llvm7MCFixupEmRNS_9MCContextE.exit: ; preds = %26, %26, %158 = add i32 %156, %.neg %159 = select i1 %157, i32 8, i32 0 %160 = add i32 %158, %159 - %161 = lshr i32 %160, 3 %.not2021 = icmp ult i32 %160, 8 - br i1 %.not2021, label %.loopexit, label %.lr.ph + br i1 %.not2021, label %.loopexit, label %.lr.ph.preheader + +.lr.ph.preheader: ; preds = %_ZL16adjustFixupValueRKN4llvm7MCFixupEmRNS_9MCContextE.exit + %161 = lshr i32 %160, 3 + %162 = zext nneg i32 %161 to i64 + br label %.lr.ph -.lr.ph: ; preds = %_ZL16adjustFixupValueRKN4llvm7MCFixupEmRNS_9MCContextE.exit, %.lr.ph - %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %_ZL16adjustFixupValueRKN4llvm7MCFixupEmRNS_9MCContextE.exit ] - %162 = trunc nuw i64 %indvars.iv to i32 +.lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph + %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %.lr.ph ] %163 = shl i64 %indvars.iv, 3 - %164 = and i64 %163, 4294967288 - %165 = lshr i64 %153, %164 - %166 = trunc i64 %165 to i8 - %167 = add i32 %155, %162 + %164 = lshr i64 %153, %163 + %165 = trunc i64 %164 to i8 + %166 = trunc nuw nsw i64 %indvars.iv to i32 + %167 = add i32 %155, %166 %168 = zext i32 %167 to i64 %169 = getelementptr inbounds nuw i8, ptr %4, i64 %168 %170 = load i8, ptr %169, align 1, !tbaa !89 - %171 = or i8 %170, %166 + %171 = or i8 %170, %165 store i8 %171, ptr %169, align 1, !tbaa !89 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %lftr.wideiv = trunc i64 %indvars.iv.next to i32 - %exitcond = icmp eq i32 %161, %lftr.wideiv - br i1 %exitcond, label %.loopexit, label %.lr.ph, !llvm.loop !360 + %.not20 = icmp eq i64 %indvars.iv.next, %162 + br i1 %.not20, label %.loopexit, label %.lr.ph, !llvm.loop !360 .loopexit: ; preds = %.lr.ph, %_ZL16adjustFixupValueRKN4llvm7MCFixupEmRNS_9MCContextE.exit, %20, %9 ret void diff --git a/bench/llvm/optimized/X86CallingConv.ll b/bench/llvm/optimized/X86CallingConv.ll index 50e43e12fca..5ef2f434ce0 100644 --- a/bench/llvm/optimized/X86CallingConv.ll +++ b/bench/llvm/optimized/X86CallingConv.ll @@ -15897,15 +15897,18 @@ _ZN4llvm23SmallVectorTemplateBaseINS_11CCValAssignELb1EE9push_backERKS1_.exit.i: br i1 %387, label %_ZN4llvm7CCState16AllocateRegBlockENS_8ArrayRefItEEj.exit.thread16.i, label %.preheader43.i.i .preheader43.i.i: ; preds = %385 - %388 = sub nuw nsw i64 6, %386 %.not2546.not.i.i = icmp eq i32 %383, 0 %389 = getelementptr inbounds nuw i8, ptr %6, i64 64 %390 = load ptr, ptr %389, align 8 br i1 %.not2546.not.i.i, label %_ZN4llvm7CCState16AllocateRegBlockENS_8ArrayRefItEEj.exit.thread16.i, label %.preheader.us.i.i -.preheader.us.i.i: ; preds = %.preheader43.i.i, %.critedge27.us.i.i - %391 = phi i64 [ %408, %.critedge27.us.i.i ], [ 0, %.preheader43.i.i ] - %.02251.us.i.i = phi i32 [ %407, %.critedge27.us.i.i ], [ 0, %.preheader43.i.i ] +.preheader.us.i.i: ; preds = %.preheader43.i.i + %390 = sub nuw nsw i32 5, %382 + br label %.preheader.us.i.i + +.preheader.us.i.i: ; preds = %.critedge27.us.i.i, %.preheader.us.i.preheader.i + %391 = phi i64 [ %408, %.critedge27.us.i.i ], [ 0, %.preheader.us.i.preheader.i ] + %.02251.us.i.i = phi i32 [ %407, %.critedge27.us.i.i ], [ 0, %.preheader.us.i.preheader.i ] br label %393 392: ; preds = %393 @@ -15934,7 +15937,7 @@ _ZN4llvm23SmallVectorTemplateBaseINS_11CCValAssignELb1EE9push_backERKS1_.exit.i: .critedge27.us.i.i: ; preds = %393 %407 = add i32 %.02251.us.i.i, 1 %408 = zext i32 %407 to i64 - %.not.us.i.i = icmp samesign ult i64 %388, %408 + %.not.us.i.i = icmp ult i32 %390, %407 br i1 %.not.us.i.i, label %_ZN4llvm7CCState16AllocateRegBlockENS_8ArrayRefItEEj.exit.thread16.i, label %.preheader.us.i.i, !llvm.loop !793 .critedge.i.i: ; preds = %392, %.critedge.i.i diff --git a/bench/meilisearch-rs/optimized/1wnbkg3u8l6dyln4.ll b/bench/meilisearch-rs/optimized/1wnbkg3u8l6dyln4.ll index 4fd9a3666e9..591138a3161 100644 --- a/bench/meilisearch-rs/optimized/1wnbkg3u8l6dyln4.ll +++ b/bench/meilisearch-rs/optimized/1wnbkg3u8l6dyln4.ll @@ -21584,7 +21584,7 @@ _ZN4core5slice4sort15partition_equal17hc5b8a101fca73d67E.exit: ; preds = %245 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h4ba840a44543829fE.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17hb1593b0f73aa76c8E.exit.i %.sroa.01.01.i = phi i64 [ %273, %_ZN4core5slice4sort11insert_tail17hb1593b0f73aa76c8E.exit.i ], [ 1, %.outer._crit_edge ] - %273 = add nuw nsw i64 %.sroa.01.01.i, 1 + %273 = add nuw i64 %.sroa.01.01.i, 1 %274 = getelementptr { i64, { i16, i8, [1 x i8] }, [2 x i16] }, ptr %.sroa.0.0.lcssa, i64 %273 %275 = getelementptr i8, ptr %274, i64 -8 %.val12.i.i = load i16, ptr %275, align 8, !alias.scope !3394, !noundef !7 @@ -21601,7 +21601,7 @@ _ZN4core5slice4sort15partition_equal17hc5b8a101fca73d67E.exit: ; preds = %245 %.sroa.510.0..sroa_idx.i.i = getelementptr i8, ptr %274, i64 -6 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.6.i.i, ptr noundef nonnull align 2 dereferenceable(6) %.sroa.510.0..sroa_idx.i.i, i64 6, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %280, ptr noundef nonnull align 8 dereferenceable(16) %279, i64 16, i1 false), !alias.scope !3394 - %281 = add nsw i64 %.sroa.01.01.i, -1 + %281 = add i64 %.sroa.01.01.i, -1 %.not14.i.i = icmp eq i64 %281, 0 br i1 %.not14.i.i, label %.thread.i.i, label %.lr.ph.i.i52 @@ -21618,7 +21618,7 @@ _ZN4core5slice4sort15partition_equal17hc5b8a101fca73d67E.exit: ; preds = %245 .lr.ph.i.i52: ; preds = %278, %286 %.sroa.4.016.i.i = phi i64 [ %282, %286 ], [ %281, %278 ] %.sroa.5.015.i.i = phi ptr [ %283, %286 ], [ %279, %278 ] - %282 = add nsw i64 %.sroa.4.016.i.i, -1 + %282 = add i64 %.sroa.4.016.i.i, -1 %283 = getelementptr inbounds { i64, { i16, i8, [1 x i8] }, [2 x i16] }, ptr %.sroa.0.0.lcssa, i64 %282 %284 = getelementptr i8, ptr %283, i64 8 %.val11.i.i = load i16, ptr %284, align 8, !alias.scope !3394, !noundef !7 @@ -22333,7 +22333,7 @@ _ZN4core5slice4sort15partition_equal17hf0cdaae01ed7860fE.exit: ; preds = %235 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h000f24997124ef1fE.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17h2560e98daefc98e5E.exit.i %.sroa.01.01.i = phi i64 [ %262, %_ZN4core5slice4sort11insert_tail17h2560e98daefc98e5E.exit.i ], [ 1, %.outer._crit_edge ] - %262 = add nuw nsw i64 %.sroa.01.01.i, 1 + %262 = add nuw i64 %.sroa.01.01.i, 1 %263 = getelementptr { i16, [3 x i16], { i64, [2 x i64] } }, ptr %.sroa.0.0.lcssa, i64 %262 %264 = getelementptr i8, ptr %263, i64 -32 %265 = getelementptr i8, ptr %263, i64 -64 @@ -22347,7 +22347,7 @@ _ZN4core5slice4sort15partition_equal17hf0cdaae01ed7860fE.exit: ; preds = %235 %.sroa.4.0..sroa_idx.i.i = getelementptr i8, ptr %263, i64 -30 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(30) %.sroa.6.i.i, ptr noundef nonnull align 2 dereferenceable(30) %.sroa.4.0..sroa_idx.i.i, i64 30, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %264, ptr noundef nonnull align 8 dereferenceable(32) %265, i64 32, i1 false), !alias.scope !3517 - %268 = add nsw i64 %.sroa.01.01.i, -1 + %268 = add i64 %.sroa.01.01.i, -1 %.not11.i.i = icmp eq i64 %268, 0 br i1 %.not11.i.i, label %.thread.i.i, label %.lr.ph.i.i50 @@ -22362,7 +22362,7 @@ _ZN4core5slice4sort15partition_equal17hf0cdaae01ed7860fE.exit: ; preds = %235 .lr.ph.i.i50: ; preds = %267, %272 %.sroa.4.013.i.i = phi i64 [ %269, %272 ], [ %268, %267 ] %.sroa.5.012.i.i = phi ptr [ %270, %272 ], [ %265, %267 ] - %269 = add nsw i64 %.sroa.4.013.i.i, -1 + %269 = add i64 %.sroa.4.013.i.i, -1 %270 = getelementptr inbounds { i16, [3 x i16], { i64, [2 x i64] } }, ptr %.sroa.0.0.lcssa, i64 %269 %.val11.i.i = load i16, ptr %270, align 8, !alias.scope !3517, !noundef !7 %271 = icmp ult i16 %.val12.i.i, %.val11.i.i @@ -24038,7 +24038,7 @@ _ZN4core5slice4sort15partition_equal17hd39235e02a486faeE.exit: ; preds = %226 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hf1e29d12f6102135E.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17h2491c926cc3d62abE.exit.i %.sroa.01.01.i = phi i64 [ %255, %_ZN4core5slice4sort11insert_tail17h2491c926cc3d62abE.exit.i ], [ 1, %.outer._crit_edge ] - %255 = add nuw nsw i64 %.sroa.01.01.i, 1 + %255 = add nuw i64 %.sroa.01.01.i, 1 %256 = getelementptr i16, ptr %.sroa.0.0.lcssa, i64 %255 %257 = getelementptr i8, ptr %256, i64 -2 %258 = getelementptr i8, ptr %256, i64 -4 @@ -24049,7 +24049,7 @@ _ZN4core5slice4sort15partition_equal17hd39235e02a486faeE.exit: ; preds = %226 260: ; preds = %"_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hf1e29d12f6102135E.exit.i" store i16 %.val13.i.i, ptr %257, align 2, !alias.scope !3904 - %261 = add nsw i64 %.sroa.01.01.i, -1 + %261 = add i64 %.sroa.01.01.i, -1 %.not10.i.i = icmp eq i64 %261, 0 br i1 %.not10.i.i, label %.thread.i.i, label %.lr.ph.i.i50 @@ -24061,7 +24061,7 @@ _ZN4core5slice4sort15partition_equal17hd39235e02a486faeE.exit: ; preds = %226 .lr.ph.i.i50: ; preds = %260, %265 %.sroa.4.012.i.i = phi i64 [ %262, %265 ], [ %261, %260 ] %.sroa.5.011.i.i = phi ptr [ %263, %265 ], [ %258, %260 ] - %262 = add nsw i64 %.sroa.4.012.i.i, -1 + %262 = add i64 %.sroa.4.012.i.i, -1 %263 = getelementptr inbounds i16, ptr %.sroa.0.0.lcssa, i64 %262 %.val11.i.i = load i16, ptr %263, align 2, !alias.scope !3902, !noalias !3903, !noundef !7 %264 = icmp ult i16 %.val12.i.i, %.val11.i.i diff --git a/bench/meilisearch-rs/optimized/55beptyn1v6yeqaz.ll b/bench/meilisearch-rs/optimized/55beptyn1v6yeqaz.ll index dba6f77a811..83aecaea1e8 100644 --- a/bench/meilisearch-rs/optimized/55beptyn1v6yeqaz.ll +++ b/bench/meilisearch-rs/optimized/55beptyn1v6yeqaz.ll @@ -13896,14 +13896,12 @@ _ZN5alloc11collections5btree4node13move_to_slice17h5f935d8b0bf23e7bE.exit: ; pre 67: ; preds = %67, %_ZN5alloc11collections5btree4node13move_to_slice17h5f935d8b0bf23e7bE.exit %.sroa.0.05.i = phi i64 [ 0, %_ZN5alloc11collections5btree4node13move_to_slice17h5f935d8b0bf23e7bE.exit ], [ %68, %67 ] %68 = add nuw nsw i64 %.sroa.0.05.i, 1 - %69 = icmp samesign ult i64 %.sroa.0.05.i, 12 - tail call void @llvm.assume(i1 %69) - %70 = getelementptr inbounds nuw ptr, ptr %61, i64 %.sroa.0.05.i - %71 = load ptr, ptr %70, align 8, !noalias !2263, !nonnull !12, !noundef !12 - store ptr %10, ptr %71, align 8, !noalias !2268 - %72 = trunc nuw nsw i64 %.sroa.0.05.i to i16 - %73 = getelementptr inbounds nuw i8, ptr %71, i64 360 - store i16 %72, ptr %73, align 8, !noalias !2268 + %69 = getelementptr inbounds nuw ptr, ptr %61, i64 %.sroa.0.05.i + %70 = load ptr, ptr %69, align 8, !noalias !2263, !nonnull !12, !noundef !12 + store ptr %10, ptr %70, align 8, !noalias !2268 + %71 = trunc nuw nsw i64 %.sroa.0.05.i to i16 + %72 = getelementptr inbounds nuw i8, ptr %70, i64 360 + store i16 %71, ptr %72, align 8, !noalias !2268 %exitcond.not.i = icmp eq i64 %.sroa.0.05.i, %14 br i1 %exitcond.not.i, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17hfed3463878e17b83E.exit", label %67 } diff --git a/bench/memcached/optimized/hash.ll b/bench/memcached/optimized/hash.ll index f16904f89fe..0d0822728d1 100644 --- a/bench/memcached/optimized/hash.ll +++ b/bench/memcached/optimized/hash.ll @@ -298,15 +298,12 @@ define internal fastcc i64 @XXH3_hashLong_64b_default(ptr noalias noundef readon call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !18 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %3, ptr noundef nonnull align 16 dereferenceable(64) @__const.XXH3_hashLong_64b_internal.acc, i64 64, i1 false), !noalias !18 %4 = add i64 %1, -1 - %.not = icmp ult i64 %4, 1024 - br i1 %.not, label %._crit_edge, label %.lr.ph.preheader - -.lr.ph.preheader: ; preds = %2 %5 = lshr i64 %4, 10 - br label %.lr.ph + %.not = icmp ult i64 %4, 1024 + br i1 %.not, label %._crit_edge, label %.lr.ph -.lr.ph: ; preds = %.lr.ph.preheader, %XXH3_scrambleAcc_sse2.exit.i - %.0.i4 = phi i64 [ %48, %XXH3_scrambleAcc_sse2.exit.i ], [ 0, %.lr.ph.preheader ] +.lr.ph: ; preds = %2, %XXH3_scrambleAcc_sse2.exit.i + %.0.i4 = phi i64 [ %48, %XXH3_scrambleAcc_sse2.exit.i ], [ 0, %2 ] %6 = shl nuw i64 %.0.i4, 10 %7 = getelementptr inbounds nuw i8, ptr %0, i64 %6 tail call void @llvm.experimental.noalias.scope.decl(metadata !21) diff --git a/bench/meshlab/optimized/mainwindow_RunTime.ll b/bench/meshlab/optimized/mainwindow_RunTime.ll index c865d982718..a8b48305633 100644 --- a/bench/meshlab/optimized/mainwindow_RunTime.ll +++ b/bench/meshlab/optimized/mainwindow_RunTime.ll @@ -1265,9 +1265,9 @@ _ZN7QStringD2Ev.exit: ; preds = %40, %_ZN9QtPrivate8 br i1 %51, label %.lr.ph, label %.lr.ph78 .lr.ph: ; preds = %_ZN7QStringD2Ev.exit - %52 = getelementptr inbounds nuw i8, ptr %0, i64 704 - %53 = call i32 @llvm.umin.i32(i32 %50, i32 9) - %wide.trip.count = zext nneg i32 %53 to i64 + %52 = call i32 @llvm.umin.i32(i32 %50, i32 9) + %53 = getelementptr inbounds nuw i8, ptr %0, i64 704 + %wide.trip.count = zext nneg i32 %52 to i64 br label %57 .preheader: ; preds = %_ZN7QStringD2Ev.exit69 @@ -1392,7 +1392,7 @@ _ZN9QtPrivate8RefCount5derefEv.exit.thread2.i55: ; preds = %_ZN9QtPrivate8RefCo br label %_ZN7QStringD2Ev.exit60 _ZN7QStringD2Ev.exit60: ; preds = %_ZN7QStringD2Ev.exit54, %_ZN9QtPrivate8RefCount5derefEv.exit.i56, %_ZN9QtPrivate8RefCount5derefEv.exit.thread2.i55 - %87 = getelementptr inbounds nuw ptr, ptr %52, i64 %indvars.iv + %87 = getelementptr inbounds nuw ptr, ptr %53, i64 %indvars.iv %88 = load ptr, ptr %87, align 8 invoke void @_ZN7QAction7setTextERK7QString(ptr noundef nonnull align 8 dereferenceable(16) %88, ptr noundef nonnull align 8 dereferenceable(8) %8) to label %89 unwind label %133 @@ -2036,9 +2036,9 @@ _ZN7QStringD2Ev.exit: ; preds = %17, %_ZN9QtPrivate8 br i1 %28, label %.lr.ph, label %.lr.ph70 .lr.ph: ; preds = %_ZN7QStringD2Ev.exit - %29 = getelementptr inbounds nuw i8, ptr %0, i64 776 - %30 = call i32 @llvm.umin.i32(i32 %27, i32 9) - %wide.trip.count = zext nneg i32 %30 to i64 + %29 = call i32 @llvm.umin.i32(i32 %27, i32 9) + %30 = getelementptr inbounds nuw i8, ptr %0, i64 776 + %wide.trip.count = zext nneg i32 %29 to i64 br label %34 .preheader: ; preds = %_ZN7QStringD2Ev.exit61 @@ -2163,7 +2163,7 @@ _ZN9QtPrivate8RefCount5derefEv.exit.thread2.i47: ; preds = %_ZN9QtPrivate8RefCo br label %_ZN7QStringD2Ev.exit52 _ZN7QStringD2Ev.exit52: ; preds = %_ZN7QStringD2Ev.exit46, %_ZN9QtPrivate8RefCount5derefEv.exit.i48, %_ZN9QtPrivate8RefCount5derefEv.exit.thread2.i47 - %64 = getelementptr inbounds nuw ptr, ptr %29, i64 %indvars.iv + %64 = getelementptr inbounds nuw ptr, ptr %30, i64 %indvars.iv %65 = load ptr, ptr %64, align 8 invoke void @_ZN7QAction7setTextERK7QString(ptr noundef nonnull align 8 dereferenceable(16) %65, ptr noundef nonnull align 8 dereferenceable(8) %7) to label %66 unwind label %108 diff --git a/bench/minetest/optimized/cavegen.ll b/bench/minetest/optimized/cavegen.ll index 70abfd9c16b..0c6b3fdaac0 100644 --- a/bench/minetest/optimized/cavegen.ll +++ b/bench/minetest/optimized/cavegen.ll @@ -950,23 +950,22 @@ vector.ph: ; preds = %vector.scevcheck %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer %broadcast.splatinsert198 = insertelement <4 x float> poison, float %7, i64 0 %broadcast.splat199 = shufflevector <4 x float> %broadcast.splatinsert198, <4 x float> poison, <4 x i32> zeroinitializer + %19 = zext i32 %n.vec to i64 br label %vector.body vector.body: ; preds = %vector.body, %vector.ph - %index = phi i32 [ 0, %vector.ph ], [ %index.next, %vector.body ] - %vec.ind = phi <4 x i16> [ %induction, %vector.ph ], [ %vec.ind.next, %vector.body ] + %index = phi i64 [ %indvars.iv.next, %vector.body ], [ 0, %vector.ph ] + %vec.ind = phi <4 x i16> [ %vec.ind.next, %vector.body ], [ %induction, %vector.ph ] %19 = sitofp <4 x i16> %vec.ind to <4 x float> %20 = fsub nsz <4 x float> %broadcast.splat, %19 %21 = fdiv nsz <4 x float> %20, %broadcast.splat199 %22 = fcmp nsz olt <4 x float> %21, splat (float 1.000000e+00) %23 = select <4 x i1> %22, <4 x float> %21, <4 x float> splat (float 1.000000e+00) - %24 = and i32 %index, 252 - %25 = zext nneg i32 %24 to i64 - %26 = getelementptr inbounds nuw float, ptr %call9, i64 %25 - store <4 x float> %23, ptr %26, align 4, !tbaa !70 - %index.next = add nuw i32 %index, 4 + %25 = getelementptr inbounds nuw float, ptr %call9, i64 %index + store <4 x float> %24, ptr %25, align 4, !tbaa !70 + %indvars.iv.next = add nuw nsw i64 %index, 4 %vec.ind.next = add <4 x i16> %vec.ind, splat (i16 -4) - %27 = icmp eq i32 %index.next, %n.vec + %27 = icmp eq i64 %indvars.iv.next, %19 br i1 %27, label %middle.block, label %vector.body, !llvm.loop !123 middle.block: ; preds = %vector.body @@ -1082,8 +1081,8 @@ for.cond63.for.cond.cleanup69_crit_edge: ; preds = %if.end90 for.body70: ; preds = %if.end90, %for.body41 %.pre180188 = phi i16 [ %.pre180189, %for.body41 ], [ %.pre180187, %if.end90 ] %.pre184 = phi i16 [ %.pre185, %for.body41 ], [ %.pre183, %if.end90 ] + %35 = phi i16 [ %27, %for.body41 ], [ %50, %if.end90 ] %36 = phi i16 [ %28, %for.body41 ], [ %51, %if.end90 ] - %37 = phi i16 [ %29, %for.body41 ], [ %52, %if.end90 ] %cavern_amp_index.1150 = phi i8 [ 0, %for.body41 ], [ %inc96, %if.end90 ] %y61.0149 = phi i16 [ %nmax.sroa.2.0.extract.trunc, %for.body41 ], [ %dec92, %if.end90 ] %index3d.0148 = phi i32 [ %add60, %for.body41 ], [ %sub95, %if.end90 ] @@ -1153,8 +1152,8 @@ if.then86: ; preds = %_ZNK14NodeDefManage if.end90: ; preds = %if.then86, %_ZNK14NodeDefManager3getEt.exit, %if.then, %for.body70 %.pre180187 = phi i16 [ %.pre181, %if.then86 ], [ %.pre180188, %_ZNK14NodeDefManager3getEt.exit ], [ %.pre180188, %if.then ], [ %.pre180188, %for.body70 ] %.pre183 = phi i16 [ %.pre182, %if.then86 ], [ %.pre184, %_ZNK14NodeDefManager3getEt.exit ], [ %.pre184, %if.then ], [ %.pre184, %for.body70 ] - %51 = phi i16 [ %.pre182, %if.then86 ], [ %36, %_ZNK14NodeDefManager3getEt.exit ], [ %36, %if.then ], [ %36, %for.body70 ] - %52 = phi i16 [ %.pre181, %if.then86 ], [ %37, %_ZNK14NodeDefManager3getEt.exit ], [ %37, %if.then ], [ %37, %for.body70 ] + %51 = phi i16 [ %.pre182, %if.then86 ], [ %35, %_ZNK14NodeDefManager3getEt.exit ], [ %35, %if.then ], [ %35, %for.body70 ] + %52 = phi i16 [ %.pre181, %if.then86 ], [ %36, %_ZNK14NodeDefManager3getEt.exit ], [ %36, %if.then ], [ %36, %for.body70 ] %near_cavern.3 = phi i8 [ 1, %if.then86 ], [ 1, %_ZNK14NodeDefManager3getEt.exit ], [ 1, %if.then ], [ %near_cavern.2147, %for.body70 ] %dec92 = add i16 %y61.0149, -1 %conv94 = zext i16 %52 to i32 diff --git a/bench/mini-lsm-rs/optimized/1m9jerzd56wr2irm.ll b/bench/mini-lsm-rs/optimized/1m9jerzd56wr2irm.ll index 80ca7d6af71..9cdb724d594 100644 --- a/bench/mini-lsm-rs/optimized/1m9jerzd56wr2irm.ll +++ b/bench/mini-lsm-rs/optimized/1m9jerzd56wr2irm.ll @@ -1897,14 +1897,12 @@ _ZN5alloc11collections5btree4node13move_to_slice17hd14dfebae899e465E.exit: ; pre 63: ; preds = %63, %_ZN5alloc11collections5btree4node13move_to_slice17hd14dfebae899e465E.exit %.sroa.0.05.i = phi i64 [ 0, %_ZN5alloc11collections5btree4node13move_to_slice17hd14dfebae899e465E.exit ], [ %64, %63 ] %64 = add nuw nsw i64 %.sroa.0.05.i, 1 - %65 = icmp samesign ult i64 %.sroa.0.05.i, 12 - tail call void @llvm.assume(i1 %65) - %66 = getelementptr inbounds nuw ptr, ptr %57, i64 %.sroa.0.05.i - %67 = load ptr, ptr %66, align 8, !nonnull !21, !noundef !21 - store ptr %9, ptr %67, align 8 - %68 = trunc nuw nsw i64 %.sroa.0.05.i to i16 - %69 = getelementptr inbounds nuw i8, ptr %67, i64 184 - store i16 %68, ptr %69, align 8 + %65 = getelementptr inbounds nuw ptr, ptr %57, i64 %.sroa.0.05.i + %66 = load ptr, ptr %65, align 8, !nonnull !21, !noundef !21 + store ptr %9, ptr %65, align 8 + %67 = trunc nuw nsw i64 %.sroa.0.05.i to i16 + %68 = getelementptr inbounds nuw i8, ptr %66, i64 184 + store i16 %67, ptr %68, align 8 %exitcond.not.i = icmp eq i64 %.sroa.0.05.i, %13 br i1 %exitcond.not.i, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17h14a029f4bf3efbfdE.exit", label %63 } @@ -2027,15 +2025,13 @@ _ZN5alloc11collections5btree4node13move_to_slice17h34e1e70b76f97365E.exit: ; pre 62: ; preds = %62, %_ZN5alloc11collections5btree4node13move_to_slice17h34e1e70b76f97365E.exit %.sroa.0.05.i = phi i64 [ 0, %_ZN5alloc11collections5btree4node13move_to_slice17h34e1e70b76f97365E.exit ], [ %63, %62 ] %63 = add nuw nsw i64 %.sroa.0.05.i, 1 - %64 = icmp samesign ult i64 %.sroa.0.05.i, 12 - tail call void @llvm.assume(i1 %64) - %65 = getelementptr inbounds nuw ptr, ptr %56, i64 %.sroa.0.05.i - %66 = load ptr, ptr %65, align 8, !nonnull !21, !noundef !21 - %67 = getelementptr inbounds nuw i8, ptr %66, i64 704 - store ptr %10, ptr %67, align 8 - %68 = trunc nuw nsw i64 %.sroa.0.05.i to i16 - %69 = getelementptr inbounds nuw i8, ptr %66, i64 800 - store i16 %68, ptr %69, align 8 + %64 = getelementptr inbounds nuw ptr, ptr %56, i64 %.sroa.0.05.i + %65 = load ptr, ptr %64, align 8, !nonnull !21, !noundef !21 + %65 = getelementptr inbounds nuw i8, ptr %65, i64 704 + store ptr %10, ptr %65, align 8 + %67 = trunc nuw nsw i64 %.sroa.0.05.i to i16 + %68 = getelementptr inbounds nuw i8, ptr %65, i64 800 + store i16 %67, ptr %68, align 8 %exitcond.not.i = icmp eq i64 %.sroa.0.05.i, %14 br i1 %exitcond.not.i, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17ha5884852fe37c2deE.exit", label %62 } diff --git a/bench/mitsuba3/optimized/aov.ll b/bench/mitsuba3/optimized/aov.ll index 4a41907c058..a325003e76c 100644 --- a/bench/mitsuba3/optimized/aov.ll +++ b/bench/mitsuba3/optimized/aov.ll @@ -11855,13 +11855,9 @@ define linkonce_odr hidden void @_ZN5drjit6detail16tensor_broadcastINS_6TensorIN %27 = load ptr, ptr %25, align 8 br label %.lr.ph.split.us.split.split -.lr.ph.split.us.split.split.us: ; preds = %.lr.ph.split.us.split, %.lr.ph.split.us.split.split.us - %.070.us.us = phi i64 [ %29, %.lr.ph.split.us.split.split.us ], [ 0, %.lr.ph.split.us.split ] - %28 = getelementptr inbounds i64, ptr %19, i64 %.070.us.us - store i64 0, ptr %28, align 8 - %29 = add nuw i64 %.070.us.us, 1 - %exitcond106.not = icmp eq i64 %29, %..i - br i1 %exitcond106.not, label %._crit_edge, label %.lr.ph.split.us.split.split.us, !llvm.loop !165 +.lr.ph.split.us.split.split.us: ; preds = %.lr.ph.split.us.split + store i64 0, ptr %19, align 8 + br label %._crit_edge .lr.ph.split.us.split.split: ; preds = %.lr.ph.split.us.split.split.preheader, %_ZNK5drjit6TensorINS_12DynamicArrayIfEEE5shapeEm.exit56.us %.070.us = phi i64 [ %33, %_ZNK5drjit6TensorINS_12DynamicArrayIfEEE5shapeEm.exit56.us ], [ 0, %.lr.ph.split.us.split.split.preheader ] @@ -11908,7 +11904,7 @@ _ZNK5drjit6TensorINS_12DynamicArrayIfEEE5shapeEm.exit.us: ; preds = %.lr.ph.spli br i1 %exitcond104.not, label %._crit_edge, label %.lr.ph.split.split.us.split, !llvm.loop !165 .lr.ph.split.split: ; preds = %.lr.ph.split.split.preheader, %57 - %.070 = phi i64 [ %58, %57 ], [ 0, %.lr.ph.split.split.preheader ] + %.070 = phi i64 [ %58, %55 ], [ 0, %.lr.ph.split.split.preheader ] %or.cond125 = icmp ult i64 %.070, %invariant.umin br i1 %or.cond125, label %_ZNK5drjit6TensorINS_12DynamicArrayIfEEE5shapeEm.exit56, label %.split.us.invoke @@ -11922,22 +11918,22 @@ _ZNK5drjit6TensorINS_12DynamicArrayIfEEE5shapeEm.exit.us: ; preds = %.lr.ph.spli _ZNK5drjit6TensorINS_12DynamicArrayIfEEE5shapeEm.exit56: ; preds = %.lr.ph.split.split %44 = getelementptr inbounds i64, ptr %36, i64 %.070 + %43 = load i64, ptr %42, align 8 + %44 = getelementptr inbounds i64, ptr %35, i64 %.070 %45 = load i64, ptr %44, align 8 - %46 = getelementptr inbounds i64, ptr %37, i64 %.070 - %47 = load i64, ptr %46, align 8 - %..i57 = tail call noundef i64 @llvm.umax.i64(i64 %45, i64 %47) - %48 = getelementptr inbounds i64, ptr %19, i64 %.070 - store i64 %..i57, ptr %48, align 8 - %49 = icmp ult i64 %45, 2 - %50 = icmp ult i64 %47, 2 - %or.cond5.not64 = or i1 %49, %50 - %.not51 = icmp eq i64 %45, %47 + %..i57 = tail call noundef i64 @llvm.umax.i64(i64 %43, i64 %45) + %46 = getelementptr inbounds i64, ptr %19, i64 %.070 + store i64 %..i57, ptr %46, align 8 + %47 = icmp ult i64 %43, 2 + %48 = icmp ult i64 %45, 2 + %or.cond5.not64 = or i1 %47, %48 + %50 = icmp eq i64 %43, %45 %or.cond52 = or i1 %.not51, %or.cond5.not64 br i1 %or.cond52, label %57, label %.split72 .split72: ; preds = %_ZNK5drjit6TensorINS_12DynamicArrayIfEEE5shapeEm.exit56 - invoke void (ptr, ...) @_ZN5drjit11drjit_raiseEPKcz(ptr noundef nonnull @.str.46, ptr noundef %1, i64 noundef %.070, i64 noundef %45, i64 noundef %47) #32 - to label %51 unwind label %52 + invoke void (ptr, ...) @_ZN5drjit11drjit_raiseEPKcz(ptr noundef nonnull @.str.46, ptr noundef %1, i64 noundef %.070, i64 noundef %43, i64 noundef %45) #32 + to label %49 unwind label %52 51: ; preds = %.split72 unreachable @@ -11964,11 +11960,11 @@ _ZN5drjit9dr_vectorImED2Ev.exit: ; preds = %52, %56 ._crit_edge: ; preds = %57, %_ZNK5drjit6TensorINS_12DynamicArrayIfEEE5shapeEm.exit.us, %_ZNK5drjit6TensorINS_12DynamicArrayIfEEE5shapeEm.exit56.us, %.lr.ph.split.us.split.split.us, %15 invoke void @_ZN5drjit6detail21tensor_broadcast_implINS_12DynamicArrayIjEENS_6TensorINS2_IfEEEEEEvPKcRT0_RKNS_9dr_vectorImEE(ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %0) - to label %59 unwind label %52 + to label %57 unwind label %52 59: ; preds = %._crit_edge invoke void @_ZN5drjit6detail21tensor_broadcast_implINS_12DynamicArrayIjEENS_6TensorINS2_IfEEEEEEvPKcRT0_RKNS_9dr_vectorImEE(ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(48) %3, ptr noundef nonnull align 8 dereferenceable(24) %0) - to label %60 unwind label %52 + to label %58 unwind label %52 60: ; preds = %59 ret void diff --git a/bench/mold/optimized/filetype.cc.X86_64.ll b/bench/mold/optimized/filetype.cc.X86_64.ll index 56b7d9f9bf2..d1c536153e3 100644 --- a/bench/mold/optimized/filetype.cc.X86_64.ll +++ b/bench/mold/optimized/filetype.cc.X86_64.ll @@ -794,15 +794,12 @@ _ZNKSt17basic_string_viewIcSt11char_traitsIcEE11starts_withEPKc.exit.thread.i64: %355 = load i8, ptr %354, align 1, !tbaa !22 %356 = zext i8 %355 to i64 %357 = or disjoint i64 %353, %356 - %358 = icmp samesign ugt i64 %357, 31 - br i1 %358, label %.lr.ph32.preheader.i, label %_ZN4moldL14is_gcc_lto_objINS_4M68KEEEbPNS_10MappedFileEb.exit.thread + %358 = lshr i64 %357, 4 + %359 = icmp samesign ugt i64 %357, 31 + br i1 %359, label %.lr.ph32.i, label %_ZN4moldL14is_gcc_lto_objINS_4M68KEEEbPNS_10MappedFileEb.exit.thread -.lr.ph32.preheader.i: ; preds = %.split.us.i68 - %359 = lshr i64 %357, 4 - br label %.lr.ph32.i - -.lr.ph32.i: ; preds = %366, %.lr.ph32.preheader.i - %.031.i = phi i64 [ %367, %366 ], [ 1, %.lr.ph32.preheader.i ] +.lr.ph32.preheader.i: ; preds = %.split.us.i68, %366 + %.031.i = phi i64 [ %367, %366 ], [ 1, %.split.us.i68 ] %360 = getelementptr inbounds nuw %"struct.mold::ElfSym.250", ptr %339, i64 %.031.i %361 = getelementptr inbounds nuw i8, ptr %360, i64 12 %362 = load i8, ptr %361, align 1 @@ -815,7 +812,7 @@ _ZNKSt17basic_string_viewIcSt11char_traitsIcEE11starts_withEPKc.exit.thread.i64: 366: ; preds = %.lr.ph32.i %367 = add nuw nsw i64 %.031.i, 1 - %exitcond.not.i75 = icmp eq i64 %367, %359 + %exitcond.not.i75 = icmp eq i64 %367, %358 br i1 %exitcond.not.i75, label %_ZN4moldL14is_gcc_lto_objINS_4M68KEEEbPNS_10MappedFileEb.exit.thread, label %.lr.ph32.i, !llvm.loop !26 368: ; preds = %.lr.ph32.i @@ -5192,12 +5189,12 @@ declare i64 @llvm.umin.i64(i64, i64) #20 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: read) declare i32 @bcmp(ptr captures(none), ptr captures(none), i64) local_unnamed_addr #21 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umax.i64(i64, i64) #20 - ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) declare void @llvm.experimental.noalias.scope.decl(metadata) #22 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i64 @llvm.umax.i64(i64, i64) #20 + attributes #0 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { nofree nounwind } diff --git a/bench/ockam-rs/optimized/gotvfwvqrrp4xgl.ll b/bench/ockam-rs/optimized/gotvfwvqrrp4xgl.ll index b46f6d70885..fa96a4a24a7 100644 --- a/bench/ockam-rs/optimized/gotvfwvqrrp4xgl.ll +++ b/bench/ockam-rs/optimized/gotvfwvqrrp4xgl.ll @@ -98,7 +98,6 @@ target triple = "x86_64-unknown-linux-gnu" @anon.854733f247b1faa87fceaacb6c7ba5f2.111 = private unnamed_addr constant <{ [98 x i8] }> <{ [98 x i8] c"/home/dtcxzyw/.cargo/registry/src/index.crates.io-6f17d22bba15001f/generic-array-0.14.7/src/hex.rs" }>, align 1 @anon.854733f247b1faa87fceaacb6c7ba5f2.115 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @anon.854733f247b1faa87fceaacb6c7ba5f2.111, [16 x i8] c"b\00\00\00\00\00\00\00.\00\00\00?\00\00\00" }>, align 8 @_ZN13generic_array3hex11LOWER_CHARS17hd7bedb3016bd35f4E = external local_unnamed_addr global { ptr, i64 } -@anon.854733f247b1faa87fceaacb6c7ba5f2.121 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @anon.854733f247b1faa87fceaacb6c7ba5f2.111, [16 x i8] c"b\00\00\00\00\00\00\00*\00\00\00\11\00\00\00" }>, align 8 @anon.854733f247b1faa87fceaacb6c7ba5f2.124.llvm.12634899616595775615 = hidden unnamed_addr constant <{ [103 x i8] }> <{ [103 x i8] c"/home/dtcxzyw/.cargo/registry/src/index.crates.io-6f17d22bba15001f/kafka-protocol-0.10.0/src/records.rs" }>, align 1 @anon.854733f247b1faa87fceaacb6c7ba5f2.125 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @anon.854733f247b1faa87fceaacb6c7ba5f2.124.llvm.12634899616595775615, [16 x i8] c"g\00\00\00\00\00\00\00\BE\01\00\00\17\00\00\00" }>, align 8 @anon.854733f247b1faa87fceaacb6c7ba5f2.126 = private unnamed_addr constant <{ [30 x i8] }> <{ [30 x i8] c"Unknown record batch version (" }>, align 1 @@ -12587,41 +12586,33 @@ define hidden noundef zeroext i1 @"_ZN13generic_array3hex91_$LT$impl$u20$core..f %9 = load ptr, ptr @_ZN13generic_array3hex11LOWER_CHARS17hd7bedb3016bd35f4E, align 8, !noalias !1942, !nonnull !4, !align !73 br label %10 -10: ; preds = %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h144879b4dfcafe53E.exit.i.i.i.i", %.lr.ph.i.i.i.i - %.sroa.01.011.i.i.i.i = phi i64 [ 0, %.lr.ph.i.i.i.i ], [ %14, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h144879b4dfcafe53E.exit.i.i.i.i" ] +"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h144879b4dfcafe53E.exit.i.i.i.i":; preds = %.lr.ph.i.i.i.i, %10 + %.sroa.01.011.i.i.i.i = phi i64 [ 0, %.lr.ph.i.i.i.i ], [ %12, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h144879b4dfcafe53E.exit.i.i.i.i" ] %11 = shl nuw i64 %.sroa.01.011.i.i.i.i, 1 - %exitcond.not = icmp eq i64 %.sroa.01.011.i.i.i.i, 32 - br i1 %exitcond.not, label %12, label %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h144879b4dfcafe53E.exit.i.i.i.i", !prof !1947 - -12: ; preds = %10 - tail call void @_ZN4core9panicking18panic_bounds_check17hb0ff58c889dba9eeE(i64 noundef %11, i64 noundef 64, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.854733f247b1faa87fceaacb6c7ba5f2.121) #47, !noalias !1948 - unreachable - -"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h144879b4dfcafe53E.exit.i.i.i.i": ; preds = %10 - %13 = getelementptr inbounds nuw i8, ptr %0, i64 %.sroa.01.011.i.i.i.i - %.val7.i.i.i.i = load i8, ptr %13, align 1, !noalias !1942 - %14 = add nuw nsw i64 %.sroa.01.011.i.i.i.i, 1 - %15 = lshr i8 %.val7.i.i.i.i, 4 - %16 = zext nneg i8 %15 to i64 - %17 = getelementptr inbounds nuw i8, ptr %9, i64 %16 - %18 = load i8, ptr %17, align 1, !noalias !1948, !noundef !4 - %19 = getelementptr inbounds nuw i8, ptr %3, i64 %11 - store i8 %18, ptr %19, align 1, !alias.scope !1951, !noalias !1952 - %20 = and i8 %.val7.i.i.i.i, 15 - %21 = zext nneg i8 %20 to i64 - %22 = getelementptr inbounds nuw i8, ptr %9, i64 %21 - %23 = load i8, ptr %22, align 1, !noalias !1948, !noundef !4 - %24 = getelementptr inbounds nuw i8, ptr %19, i64 1 - store i8 %23, ptr %24, align 1, !alias.scope !1951, !noalias !1952 - %exitcond.not.i.i.i.i = icmp eq i64 %14, %.0.sroa.speculated.i.i.i.i.i - br i1 %exitcond.not.i.i.i.i, label %_ZN4core4iter6traits8iterator8Iterator8for_each17h51042787f381e879E.exit, label %10 + %11 = getelementptr inbounds nuw i8, ptr %0, i64 %.sroa.01.011.i.i.i.i + %.val7.i.i.i.i = load i8, ptr %11, align 1, !noalias !1942 + %12 = add nuw nsw i64 %.sroa.01.011.i.i.i.i, 1 + %13 = lshr i8 %.val7.i.i.i.i, 4 + %14 = zext nneg i8 %13 to i64 + %15 = getelementptr inbounds nuw i8, ptr %9, i64 %14 + %16 = load i8, ptr %15, align 1, !noalias !1947, !noundef !4 + %17 = getelementptr inbounds nuw i8, ptr %3, i64 %10 + store i8 %16, ptr %17, align 1, !alias.scope !1950, !noalias !1951 + %18 = and i8 %.val7.i.i.i.i, 15 + %19 = zext nneg i8 %18 to i64 + %20 = getelementptr inbounds nuw i8, ptr %9, i64 %19 + %21 = load i8, ptr %20, align 1, !noalias !1947, !noundef !4 + %17 = getelementptr inbounds nuw i8, ptr %17, i64 1 + store i8 %21, ptr %17, align 1, !alias.scope !1950, !noalias !1951 + %exitcond.not.i.i.i.i = icmp eq i64 %12, %.0.sroa.speculated.i.i.i.i.i + br i1 %exitcond.not.i.i.i.i, label %_ZN4core4iter6traits8iterator8Iterator8for_each17h51042787f381e879E.exit, label %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h144879b4dfcafe53E.exit.i.i.i.i" _ZN4core4iter6traits8iterator8Iterator8for_each17h51042787f381e879E.exit: ; preds = %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h144879b4dfcafe53E.exit.i.i.i.i", %2 %25 = icmp ugt i64 %.0, 64 br i1 %25, label %26, label %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17hee31e627e1022563E.exit" 26: ; preds = %_ZN4core4iter6traits8iterator8Iterator8for_each17h51042787f381e879E.exit - tail call void @_ZN4core5slice5index24slice_end_index_len_fail17hea09f7e31bfd8b3bE(i64 noundef %.0, i64 noundef 64, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.854733f247b1faa87fceaacb6c7ba5f2.115) #47, !noalias !1953 + tail call void @_ZN4core5slice5index24slice_end_index_len_fail17hea09f7e31bfd8b3bE(i64 noundef %.0, i64 noundef 64, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.854733f247b1faa87fceaacb6c7ba5f2.115) #47, !noalias !1952 unreachable "_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17hee31e627e1022563E.exit": ; preds = %_ZN4core4iter6traits8iterator8Iterator8for_each17h51042787f381e879E.exit @@ -12636,7 +12627,7 @@ define hidden void @"_ZN14http_body_util9collected18Collected$LT$B$GT$10push_fra %4 = alloca { i64, [12 x i64] }, align 8 %5 = alloca { ptr, ptr, i64, { ptr } }, align 8 %6 = alloca { ptr, ptr, i64, { ptr } }, align 8 - %7 = load i64, ptr %1, align 8, !range !1956, !alias.scope !1957, !noalias !1960, !noundef !4 + %7 = load i64, ptr %1, align 8, !range !1955, !alias.scope !1956, !noalias !1959, !noundef !4 %8 = icmp eq i64 %7, 3 %9 = getelementptr inbounds nuw i8, ptr %1, i64 8 br i1 %8, label %10, label %46 @@ -12653,19 +12644,19 @@ define hidden void @"_ZN14http_body_util9collected18Collected$LT$B$GT$10push_fra call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %9, i64 32, i1 false) %14 = getelementptr inbounds nuw i8, ptr %0, i64 96 %15 = getelementptr inbounds nuw i8, ptr %0, i64 120 - %16 = load i64, ptr %15, align 8, !alias.scope !1962, !noalias !1965, !noundef !4 + %16 = load i64, ptr %15, align 8, !alias.scope !1961, !noalias !1964, !noundef !4 %17 = getelementptr inbounds nuw i8, ptr %0, i64 104 - %18 = load i64, ptr %17, align 8, !alias.scope !1962, !noalias !1965, !noundef !4 + %18 = load i64, ptr %17, align 8, !alias.scope !1961, !noalias !1964, !noundef !4 %19 = icmp eq i64 %16, %18 br i1 %19, label %20, label %25 20: ; preds = %13 invoke void @"_ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$4grow17h93b67921bbb52871E.llvm.2498697912442943783"(ptr noalias noundef nonnull align 8 dereferenceable(32) %14) - to label %._crit_edge.i unwind label %21, !noalias !1965 + to label %._crit_edge.i unwind label %21, !noalias !1964 ._crit_edge.i: ; preds = %20 - %.pre.i = load i64, ptr %15, align 8, !alias.scope !1962, !noalias !1965 - %.pre6.i = load i64, ptr %17, align 8, !alias.scope !1962, !noalias !1965 + %.pre.i = load i64, ptr %15, align 8, !alias.scope !1961, !noalias !1964 + %.pre6.i = load i64, ptr %17, align 8, !alias.scope !1961, !noalias !1964 br label %25 21: ; preds = %20 @@ -12684,17 +12675,17 @@ define hidden void @"_ZN14http_body_util9collected18Collected$LT$B$GT$10push_fra %26 = phi i64 [ %.pre6.i, %._crit_edge.i ], [ %18, %13 ] %27 = phi i64 [ %.pre.i, %._crit_edge.i ], [ %16, %13 ] %28 = getelementptr inbounds nuw i8, ptr %0, i64 112 - %29 = load i64, ptr %28, align 8, !alias.scope !1962, !noalias !1965, !noundef !4 + %29 = load i64, ptr %28, align 8, !alias.scope !1961, !noalias !1964, !noundef !4 %30 = add i64 %29, %27 %.not.i = icmp ult i64 %30, %26 %31 = select i1 %.not.i, i64 0, i64 %26 %.0.i = sub nuw i64 %30, %31 - %32 = load ptr, ptr %14, align 8, !alias.scope !1962, !noalias !1965, !nonnull !4, !noundef !4 + %32 = load ptr, ptr %14, align 8, !alias.scope !1961, !noalias !1964, !nonnull !4, !noundef !4 %33 = getelementptr inbounds { ptr, ptr, i64, { ptr } }, ptr %32, i64 %.0.i tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %9, i64 32, i1 false) - %34 = load i64, ptr %15, align 8, !alias.scope !1962, !noalias !1965, !noundef !4 + %34 = load i64, ptr %15, align 8, !alias.scope !1961, !noalias !1964, !noundef !4 %35 = add i64 %34, 1 - store i64 %35, ptr %15, align 8, !alias.scope !1962, !noalias !1965 + store i64 %35, ptr %15, align 8, !alias.scope !1961, !noalias !1964 br label %36 36: ; preds = %25, %.critedge @@ -12702,14 +12693,14 @@ define hidden void @"_ZN14http_body_util9collected18Collected$LT$B$GT$10push_fra br label %43 .critedge: ; preds = %10 - tail call void @llvm.experimental.noalias.scope.decl(metadata !1967) - tail call void @llvm.experimental.noalias.scope.decl(metadata !1970) - %37 = load ptr, ptr %6, align 8, !alias.scope !1973, !nonnull !4, !align !8, !noundef !4 + tail call void @llvm.experimental.noalias.scope.decl(metadata !1966) + tail call void @llvm.experimental.noalias.scope.decl(metadata !1969) + %37 = load ptr, ptr %6, align 8, !alias.scope !1972, !nonnull !4, !align !8, !noundef !4 %38 = getelementptr inbounds nuw i8, ptr %37, i64 24 - %39 = load ptr, ptr %38, align 8, !noalias !1973, !nonnull !4, !noundef !4 + %39 = load ptr, ptr %38, align 8, !noalias !1972, !nonnull !4, !noundef !4 %40 = getelementptr inbounds nuw i8, ptr %6, i64 24 %41 = getelementptr inbounds nuw i8, ptr %6, i64 8 - %42 = load ptr, ptr %41, align 8, !alias.scope !1973, !noundef !4 + %42 = load ptr, ptr %41, align 8, !alias.scope !1972, !noundef !4 call void %39(ptr noalias noundef nonnull align 8 dereferenceable(8) %40, ptr noundef %42, i64 noundef 0) br label %36 @@ -12733,12 +12724,12 @@ define hidden void @"_ZN14http_body_util9collected18Collected$LT$B$GT$10push_fra call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %.sroa.715.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(56) %.sroa.9.0..sroa_idx, i64 56, i1 false) %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 16 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.6.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(32) %9, i64 32, i1 false) - tail call void @llvm.experimental.noalias.scope.decl(metadata !1974) + tail call void @llvm.experimental.noalias.scope.decl(metadata !1973) %47 = getelementptr inbounds nuw i8, ptr %4, i64 8 - store i64 %7, ptr %47, align 8, !alias.scope !1977 - store i64 0, ptr %4, align 8, !alias.scope !1979, !noalias !1974 + store i64 %7, ptr %47, align 8, !alias.scope !1976 + store i64 0, ptr %4, align 8, !alias.scope !1978, !noalias !1973 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(96) %3, ptr noundef nonnull align 8 dereferenceable(96) %47, i64 96, i1 false) - %48 = load i64, ptr %0, align 8, !range !1956, !noundef !4 + %48 = load i64, ptr %0, align 8, !range !1955, !noundef !4 %.not = icmp eq i64 %48, 3 br i1 %.not, label %.thread, label %51 @@ -12767,24 +12758,24 @@ define hidden void @"_ZN14http_body_util9collected18Collected$LT$B$GT$10push_fra to label %.body unwind label %44 57: ; preds = %49 - tail call void @llvm.experimental.noalias.scope.decl(metadata !1980) - tail call void @llvm.experimental.noalias.scope.decl(metadata !1983) - tail call void @llvm.experimental.noalias.scope.decl(metadata !1986) - %58 = load i64, ptr %47, align 8, !range !1956, !alias.scope !1989, !noundef !4 + tail call void @llvm.experimental.noalias.scope.decl(metadata !1979) + tail call void @llvm.experimental.noalias.scope.decl(metadata !1982) + tail call void @llvm.experimental.noalias.scope.decl(metadata !1985) + %58 = load i64, ptr %47, align 8, !range !1955, !alias.scope !1988, !noundef !4 %59 = icmp eq i64 %58, 3 br i1 %59, label %60, label %69 60: ; preds = %57 - tail call void @llvm.experimental.noalias.scope.decl(metadata !1990) - tail call void @llvm.experimental.noalias.scope.decl(metadata !1993) - %61 = load ptr, ptr %.sroa.6.0..sroa_idx, align 8, !alias.scope !1996, !nonnull !4, !align !8, !noundef !4 + tail call void @llvm.experimental.noalias.scope.decl(metadata !1989) + tail call void @llvm.experimental.noalias.scope.decl(metadata !1992) + %61 = load ptr, ptr %.sroa.6.0..sroa_idx, align 8, !alias.scope !1995, !nonnull !4, !align !8, !noundef !4 %62 = getelementptr inbounds nuw i8, ptr %61, i64 24 - %63 = load ptr, ptr %62, align 8, !noalias !1996, !nonnull !4, !noundef !4 + %63 = load ptr, ptr %62, align 8, !noalias !1995, !nonnull !4, !noundef !4 %64 = getelementptr inbounds nuw i8, ptr %4, i64 40 %65 = getelementptr inbounds nuw i8, ptr %4, i64 24 - %66 = load ptr, ptr %65, align 8, !alias.scope !1996, !noundef !4 + %66 = load ptr, ptr %65, align 8, !alias.scope !1995, !noundef !4 %67 = getelementptr inbounds nuw i8, ptr %4, i64 32 - %68 = load i64, ptr %67, align 8, !alias.scope !1996, !noundef !4 + %68 = load i64, ptr %67, align 8, !alias.scope !1995, !noundef !4 call void %63(ptr noalias noundef nonnull align 8 dereferenceable(8) %64, ptr noundef %66, i64 noundef %68) br label %"_ZN4core3ptr130drop_in_place$LT$core..result..Result$LT$http..header..map..HeaderMap$C$http_body..frame..Frame$LT$bytes..bytes..Bytes$GT$$GT$$GT$17h5a85745be8ee8602E.exit" @@ -12802,7 +12793,7 @@ define hidden void @"_ZN14http_body_util9collected18Collected$LT$B$GT$8to_bytes1 %3 = alloca { {}, {} }, align 1 %4 = alloca { { ptr, i64 }, { ptr, i64 } }, align 8 %5 = getelementptr inbounds nuw i8, ptr %1, i64 96 - call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !1997 + call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !1996 invoke void @"_ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$9as_slices17hda0be652a42df953E.llvm.2498697912442943783"(ptr noalias noundef nonnull sret({ { ptr, i64 }, { ptr, i64 } }) align 8 captures(none) dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %5) to label %8 unwind label %6 @@ -12813,14 +12804,14 @@ define hidden void @"_ZN14http_body_util9collected18Collected$LT$B$GT$8to_bytes1 to label %23 unwind label %21 8: ; preds = %2 - %9 = load ptr, ptr %4, align 8, !noalias !1997, !nonnull !4, !align !8, !noundef !4 + %9 = load ptr, ptr %4, align 8, !noalias !1996, !nonnull !4, !align !8, !noundef !4 %10 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %11 = load i64, ptr %10, align 8, !noalias !1997, !noundef !4 + %11 = load i64, ptr %10, align 8, !noalias !1996, !noundef !4 %12 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %13 = load ptr, ptr %12, align 8, !noalias !1997, !nonnull !4, !align !8, !noundef !4 + %13 = load ptr, ptr %12, align 8, !noalias !1996, !nonnull !4, !align !8, !noundef !4 %14 = getelementptr inbounds nuw i8, ptr %4, i64 24 - %15 = load i64, ptr %14, align 8, !noalias !1997, !noundef !4 - call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !1997 + %15 = load i64, ptr %14, align 8, !noalias !1996, !noundef !4 + call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !1996 %16 = getelementptr inbounds { ptr, ptr, i64, { ptr } }, ptr %9, i64 %11 %17 = invoke noundef i64 @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h11a4d63c3d570839E.llvm.4791013001715523264"(ptr noundef nonnull %9, ptr noundef nonnull %16, i64 noundef 0, ptr noalias noundef nonnull align 1 %3) to label %.noexc unwind label %6 @@ -12923,19 +12914,19 @@ define hidden noundef ptr @_ZN14kafka_protocol7records18RecordBatchDecoder12deco call void @llvm.lifetime.start.p0(ptr nonnull %68) call void @llvm.lifetime.start.p0(ptr nonnull %67) call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.5) - tail call void @llvm.experimental.noalias.scope.decl(metadata !2001) + tail call void @llvm.experimental.noalias.scope.decl(metadata !2000) %69 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %70 = load i64, ptr %69, align 8, !alias.scope !2004, !noalias !2007, !noundef !4 + %70 = load i64, ptr %69, align 8, !alias.scope !2003, !noalias !2006, !noundef !4 %71 = icmp ult i64 %70, 17 br i1 %71, label %_ZN14kafka_protocol8protocol3buf7ByteBuf14try_peek_bytes17h3e6471f04a4675d7E.exit.thread, label %_ZN14kafka_protocol8protocol3buf7ByteBuf14try_peek_bytes17h3e6471f04a4675d7E.exit _ZN14kafka_protocol8protocol3buf7ByteBuf14try_peek_bytes17h3e6471f04a4675d7E.exit: ; preds = %2 - call void @llvm.lifetime.start.p0(ptr nonnull %64), !noalias !2009 - call void @"_ZN85_$LT$bytes..bytes_mut..BytesMut$u20$as$u20$kafka_protocol..protocol..buf..ByteBuf$GT$10peek_bytes17ha4fbb6affdfe387dE"(ptr noalias noundef nonnull sret({ ptr, ptr, i64, { ptr } }) align 8 captures(none) dereferenceable(32) %64, ptr noalias noundef nonnull align 8 dereferenceable(32) %0, i64 noundef 16, i64 noundef 17), !noalias !2007 - %.sroa.0.0.copyload = load ptr, ptr %64, align 8, !noalias !2001 + call void @llvm.lifetime.start.p0(ptr nonnull %64), !noalias !2008 + call void @"_ZN85_$LT$bytes..bytes_mut..BytesMut$u20$as$u20$kafka_protocol..protocol..buf..ByteBuf$GT$10peek_bytes17ha4fbb6affdfe387dE"(ptr noalias noundef nonnull sret({ ptr, ptr, i64, { ptr } }) align 8 captures(none) dereferenceable(32) %64, ptr noalias noundef nonnull align 8 dereferenceable(32) %0, i64 noundef 16, i64 noundef 17), !noalias !2006 + %.sroa.0.0.copyload = load ptr, ptr %64, align 8, !noalias !2000 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %64, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.5, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.5.0..sroa_idx, i64 24, i1 false), !noalias !2001 - call void @llvm.lifetime.end.p0(ptr nonnull %64), !noalias !2009 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.5, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.5.0..sroa_idx, i64 24, i1 false), !noalias !2000 + call void @llvm.lifetime.end.p0(ptr nonnull %64), !noalias !2008 %72 = icmp eq ptr %.sroa.0.0.copyload, null br i1 %72, label %_ZN14kafka_protocol8protocol3buf7ByteBuf14try_peek_bytes17h3e6471f04a4675d7E.exit.thread, label %73 @@ -12947,7 +12938,7 @@ _ZN14kafka_protocol8protocol3buf7ByteBuf14try_peek_bytes17h3e6471f04a4675d7E.exi %74 = getelementptr inbounds nuw i8, ptr %67, i64 16 %75 = load i64, ptr %74, align 8, !noundef !4 %.not = icmp eq i64 %75, 0 - br i1 %.not, label %83, label %77, !prof !1947 + br i1 %.not, label %83, label %77, !prof !2009 _ZN14kafka_protocol8protocol3buf7ByteBuf14try_peek_bytes17h3e6471f04a4675d7E.exit.thread: ; preds = %2, %_ZN14kafka_protocol8protocol3buf7ByteBuf14try_peek_bytes17h3e6471f04a4675d7E.exit call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.5) @@ -28000,7 +27991,7 @@ _ZN5alloc3fmt6format17h31a4ee338d1d039bE.exit.i.i.i: ; preds = %333 to label %.body.i.i.i.i.i unwind label %1385, !noalias !4413 "_ZN72_$LT$core..pin..Pin$LT$P$GT$$u20$as$u20$core..future..future..Future$GT$4poll17he95d80577f394c4dE.exit.i.i.i.i.i": ; preds = %1364 - %1373 = load i64, ptr %21, align 8, !range !1956, !noalias !4395, !noundef !4 + %1373 = load i64, ptr %21, align 8, !range !1955, !noalias !4395, !noundef !4 %1374 = icmp eq i64 %1373, 3 br i1 %1374, label %1389, label %1375 @@ -33152,7 +33143,7 @@ define hidden void @"_ZN152_$LT$tinyvec..tinyvec..TinyVec$LT$A$GT$$u20$as$u20$co %44 = add nuw i64 %40, 1 store i64 %44, ptr %6, align 8, !alias.scope !5099, !noalias !5090 %exitcond.not.i.i = icmp eq i64 %.019.i.i, %26 - br i1 %exitcond.not.i.i, label %45, label %49, !prof !1947 + br i1 %exitcond.not.i.i, label %45, label %49, !prof !2009 45: ; preds = %43 invoke void @_ZN4core9panicking18panic_bounds_check17hb0ff58c889dba9eeE(i64 noundef %26, i64 noundef %26, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.854733f247b1faa87fceaacb6c7ba5f2.569) #47 @@ -34401,7 +34392,7 @@ define hidden noundef align 8 ptr @_ZN16aws_smithy_types10config_bag9ConfigBag4l br i1 %4, label %"_ZN127_$LT$aws_smithy_types..config_bag..storable..StoreReplace$LT$U$GT$$u20$as$u20$aws_smithy_types..config_bag..storable..Store$GT$10merge_iter17h29adcbf80005027dE.exit", label %5 5: ; preds = %1 - %6 = load i64, ptr %3, align 8, !range !1956, !noundef !4 + %6 = load i64, ptr %3, align 8, !range !1955, !noundef !4 %7 = icmp eq i64 %6, 3 %..i = select i1 %7, ptr null, ptr %3 br label %"_ZN127_$LT$aws_smithy_types..config_bag..storable..StoreReplace$LT$U$GT$$u20$as$u20$aws_smithy_types..config_bag..storable..Store$GT$10merge_iter17h29adcbf80005027dE.exit" @@ -55404,7 +55395,7 @@ define internal fastcc void @"_ZN4core3ptr130drop_in_place$LT$core..result..Resu 6: ; preds = %1 tail call void @llvm.experimental.noalias.scope.decl(metadata !8748) tail call void @llvm.experimental.noalias.scope.decl(metadata !8751) - %7 = load i64, ptr %4, align 8, !range !1956, !alias.scope !8754, !noundef !4 + %7 = load i64, ptr %4, align 8, !range !1955, !alias.scope !8754, !noundef !4 %8 = icmp eq i64 %7, 3 br i1 %8, label %9, label %19 @@ -83917,7 +83908,7 @@ define internal noundef zeroext i1 @"_ZN66_$LT$core..option..Option$LT$T$GT$$u20 ; Function Attrs: nonlazybind uwtable define hidden noundef zeroext i1 @"_ZN66_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17hc49d8a415ce39241E"(ptr noalias noundef readonly align 8 dereferenceable(56) %0, ptr noalias noundef align 8 dereferenceable(64) %1) unnamed_addr #4 { %3 = alloca ptr, align 8 - %4 = load i64, ptr %0, align 8, !range !1956, !noundef !4 + %4 = load i64, ptr %0, align 8, !range !1955, !noundef !4 %5 = icmp eq i64 %4, 3 br i1 %5, label %6, label %8 @@ -88711,7 +88702,7 @@ define hidden noundef zeroext i1 @"_ZN88_$LT$aws_smithy_types..config_bag..value define hidden noundef zeroext i1 @"_ZN88_$LT$aws_smithy_types..config_bag..value..Value$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17hd921429eb6bf7706E"(ptr noundef nonnull align 8 %0, ptr noalias noundef align 8 dereferenceable(64) %1) unnamed_addr #4 { %3 = alloca ptr, align 8 %4 = alloca ptr, align 8 - %5 = load i64, ptr %0, align 8, !range !1956, !noundef !4 + %5 = load i64, ptr %0, align 8, !range !1955, !noundef !4 %6 = icmp eq i64 %5, 3 br i1 %6, label %9, label %7 @@ -112204,7 +112195,7 @@ define void @"_ZN112_$LT$ockam_api..ui..terminal..background..TerminalColors$u20 %11 = getelementptr inbounds nuw i8, ptr %10, i64 16 %.val21 = load i64, ptr %11, align 8, !noundef !4 %.not = icmp eq i64 %.val21, 0 - br i1 %.not, label %12, label %"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17hb41020f67fd54899E.exit", !prof !1947 + br i1 %.not, label %12, label %"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17hb41020f67fd54899E.exit", !prof !2009 12: ; preds = %3 invoke void @_ZN4core9panicking18panic_bounds_check17hb0ff58c889dba9eeE(i64 noundef range(i64 0, 2) 0, i64 noundef 0, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.854733f247b1faa87fceaacb6c7ba5f2.845) #47 @@ -171026,69 +171017,69 @@ attributes #48 = { nounwind } !1944 = distinct !{!1944, !1938, !"_ZN100_$LT$core..iter..adapters..take..Take$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h7839e51a199a2e93E: argument 0"} !1945 = distinct !{!1945, !1935, !"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h68501625d1a90aa9E: argument 0"} !1946 = distinct !{!1946, !1932, !"_ZN4core4iter6traits8iterator8Iterator8for_each17h51042787f381e879E: argument 0"} -!1947 = !{!"branch_weights", !"expected", i32 1, i32 2000} -!1948 = !{!1949, !1943, !1940, !1944, !1937, !1945, !1934, !1946, !1931} -!1949 = distinct !{!1949, !1950, !"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h144879b4dfcafe53E: argument 0"} -!1950 = distinct !{!1950, !"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h144879b4dfcafe53E"} -!1951 = !{!1940, !1937, !1934, !1931} -!1952 = !{!1949, !1943, !1944, !1945, !1946} -!1953 = !{!1954} -!1954 = distinct !{!1954, !1955, !"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17hee31e627e1022563E: argument 0"} -!1955 = distinct !{!1955, !"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17hee31e627e1022563E"} -!1956 = !{i64 0, i64 4} -!1957 = !{!1958} -!1958 = distinct !{!1958, !1959, !"_ZN9http_body5frame14Frame$LT$T$GT$9into_data17h82f4731aa1120d29E: argument 1"} -!1959 = distinct !{!1959, !"_ZN9http_body5frame14Frame$LT$T$GT$9into_data17h82f4731aa1120d29E"} -!1960 = !{!1961} -!1961 = distinct !{!1961, !1959, !"_ZN9http_body5frame14Frame$LT$T$GT$9into_data17h82f4731aa1120d29E: argument 0"} -!1962 = !{!1963} -!1963 = distinct !{!1963, !1964, !"_ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$9push_back17hed09e65bc3301be3E: argument 0"} -!1964 = distinct !{!1964, !"_ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$9push_back17hed09e65bc3301be3E"} -!1965 = !{!1966} -!1966 = distinct !{!1966, !1964, !"_ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$9push_back17hed09e65bc3301be3E: argument 1"} -!1967 = !{!1968} -!1968 = distinct !{!1968, !1969, !"_ZN4core3ptr40drop_in_place$LT$bytes..bytes..Bytes$GT$17hc98db53282842706E: argument 0"} -!1969 = distinct !{!1969, !"_ZN4core3ptr40drop_in_place$LT$bytes..bytes..Bytes$GT$17hc98db53282842706E"} -!1970 = !{!1971} -!1971 = distinct !{!1971, !1972, !"_ZN61_$LT$bytes..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h3961fb331f82d55fE: argument 0"} -!1972 = distinct !{!1972, !"_ZN61_$LT$bytes..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h3961fb331f82d55fE"} -!1973 = !{!1971, !1968} -!1974 = !{!1975} -!1975 = distinct !{!1975, !1976, !"_ZN9http_body5frame14Frame$LT$T$GT$13into_trailers17hff904baa403c0ffbE: argument 1"} -!1976 = distinct !{!1976, !"_ZN9http_body5frame14Frame$LT$T$GT$13into_trailers17hff904baa403c0ffbE"} -!1977 = !{!1978, !1975} -!1978 = distinct !{!1978, !1976, !"_ZN9http_body5frame14Frame$LT$T$GT$13into_trailers17hff904baa403c0ffbE: argument 0"} -!1979 = !{!1978} -!1980 = !{!1981} -!1981 = distinct !{!1981, !1982, !"_ZN4core3ptr130drop_in_place$LT$core..result..Result$LT$http..header..map..HeaderMap$C$http_body..frame..Frame$LT$bytes..bytes..Bytes$GT$$GT$$GT$17h5a85745be8ee8602E: argument 0"} -!1982 = distinct !{!1982, !"_ZN4core3ptr130drop_in_place$LT$core..result..Result$LT$http..header..map..HeaderMap$C$http_body..frame..Frame$LT$bytes..bytes..Bytes$GT$$GT$$GT$17h5a85745be8ee8602E"} -!1983 = !{!1984} -!1984 = distinct !{!1984, !1985, !"_ZN4core3ptr71drop_in_place$LT$http_body..frame..Frame$LT$bytes..bytes..Bytes$GT$$GT$17hb2d5df8df1eaf73cE: argument 0"} -!1985 = distinct !{!1985, !"_ZN4core3ptr71drop_in_place$LT$http_body..frame..Frame$LT$bytes..bytes..Bytes$GT$$GT$17hb2d5df8df1eaf73cE"} -!1986 = !{!1987} -!1987 = distinct !{!1987, !1988, !"_ZN4core3ptr70drop_in_place$LT$http_body..frame..Kind$LT$bytes..bytes..Bytes$GT$$GT$17ha3f92f8eb677564cE.llvm.1425447921696267910: argument 0"} -!1988 = distinct !{!1988, !"_ZN4core3ptr70drop_in_place$LT$http_body..frame..Kind$LT$bytes..bytes..Bytes$GT$$GT$17ha3f92f8eb677564cE.llvm.1425447921696267910"} -!1989 = !{!1987, !1984, !1981} -!1990 = !{!1991} -!1991 = distinct !{!1991, !1992, !"_ZN4core3ptr40drop_in_place$LT$bytes..bytes..Bytes$GT$17hc98db53282842706E.llvm.1425447921696267910: argument 0"} -!1992 = distinct !{!1992, !"_ZN4core3ptr40drop_in_place$LT$bytes..bytes..Bytes$GT$17hc98db53282842706E.llvm.1425447921696267910"} -!1993 = !{!1994} -!1994 = distinct !{!1994, !1995, !"_ZN61_$LT$bytes..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h3961fb331f82d55fE.llvm.1425447921696267910: argument 0"} -!1995 = distinct !{!1995, !"_ZN61_$LT$bytes..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h3961fb331f82d55fE.llvm.1425447921696267910"} -!1996 = !{!1994, !1991, !1987, !1984, !1981} -!1997 = !{!1998, !2000} -!1998 = distinct !{!1998, !1999, !"_ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$4iter17h8d87e677e2dff81fE: argument 0"} -!1999 = distinct !{!1999, !"_ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$4iter17h8d87e677e2dff81fE"} -!2000 = distinct !{!2000, !1999, !"_ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$4iter17h8d87e677e2dff81fE: argument 1"} -!2001 = !{!2002} -!2002 = distinct !{!2002, !2003, !"_ZN14kafka_protocol8protocol3buf7ByteBuf14try_peek_bytes17h3e6471f04a4675d7E: argument 1"} -!2003 = distinct !{!2003, !"_ZN14kafka_protocol8protocol3buf7ByteBuf14try_peek_bytes17h3e6471f04a4675d7E"} -!2004 = !{!2005, !2002} -!2005 = distinct !{!2005, !2006, !"_ZN72_$LT$bytes..bytes_mut..BytesMut$u20$as$u20$bytes..buf..buf_impl..Buf$GT$9remaining17h3c575fa8b9a968c9E.llvm.6961039930124626028: argument 0"} -!2006 = distinct !{!2006, !"_ZN72_$LT$bytes..bytes_mut..BytesMut$u20$as$u20$bytes..buf..buf_impl..Buf$GT$9remaining17h3c575fa8b9a968c9E.llvm.6961039930124626028"} -!2007 = !{!2008} -!2008 = distinct !{!2008, !2003, !"_ZN14kafka_protocol8protocol3buf7ByteBuf14try_peek_bytes17h3e6471f04a4675d7E: argument 0"} -!2009 = !{!2008, !2002} +!1947 = !{!1948, !1943, !1940, !1944, !1937, !1945, !1934, !1946, !1931} +!1948 = distinct !{!1948, !1949, !"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h144879b4dfcafe53E: argument 0"} +!1949 = distinct !{!1949, !"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h144879b4dfcafe53E"} +!1950 = !{!1940, !1937, !1934, !1931} +!1951 = !{!1948, !1943, !1944, !1945, !1946} +!1952 = !{!1953} +!1953 = distinct !{!1953, !1954, !"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17hee31e627e1022563E: argument 0"} +!1954 = distinct !{!1954, !"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17hee31e627e1022563E"} +!1955 = !{i64 0, i64 4} +!1956 = !{!1957} +!1957 = distinct !{!1957, !1958, !"_ZN9http_body5frame14Frame$LT$T$GT$9into_data17h82f4731aa1120d29E: argument 1"} +!1958 = distinct !{!1958, !"_ZN9http_body5frame14Frame$LT$T$GT$9into_data17h82f4731aa1120d29E"} +!1959 = !{!1960} +!1960 = distinct !{!1960, !1958, !"_ZN9http_body5frame14Frame$LT$T$GT$9into_data17h82f4731aa1120d29E: argument 0"} +!1961 = !{!1962} +!1962 = distinct !{!1962, !1963, !"_ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$9push_back17hed09e65bc3301be3E: argument 0"} +!1963 = distinct !{!1963, !"_ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$9push_back17hed09e65bc3301be3E"} +!1964 = !{!1965} +!1965 = distinct !{!1965, !1963, !"_ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$9push_back17hed09e65bc3301be3E: argument 1"} +!1966 = !{!1967} +!1967 = distinct !{!1967, !1968, !"_ZN4core3ptr40drop_in_place$LT$bytes..bytes..Bytes$GT$17hc98db53282842706E: argument 0"} +!1968 = distinct !{!1968, !"_ZN4core3ptr40drop_in_place$LT$bytes..bytes..Bytes$GT$17hc98db53282842706E"} +!1969 = !{!1970} +!1970 = distinct !{!1970, !1971, !"_ZN61_$LT$bytes..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h3961fb331f82d55fE: argument 0"} +!1971 = distinct !{!1971, !"_ZN61_$LT$bytes..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h3961fb331f82d55fE"} +!1972 = !{!1970, !1967} +!1973 = !{!1974} +!1974 = distinct !{!1974, !1975, !"_ZN9http_body5frame14Frame$LT$T$GT$13into_trailers17hff904baa403c0ffbE: argument 1"} +!1975 = distinct !{!1975, !"_ZN9http_body5frame14Frame$LT$T$GT$13into_trailers17hff904baa403c0ffbE"} +!1976 = !{!1977, !1974} +!1977 = distinct !{!1977, !1975, !"_ZN9http_body5frame14Frame$LT$T$GT$13into_trailers17hff904baa403c0ffbE: argument 0"} +!1978 = !{!1977} +!1979 = !{!1980} +!1980 = distinct !{!1980, !1981, !"_ZN4core3ptr130drop_in_place$LT$core..result..Result$LT$http..header..map..HeaderMap$C$http_body..frame..Frame$LT$bytes..bytes..Bytes$GT$$GT$$GT$17h5a85745be8ee8602E: argument 0"} +!1981 = distinct !{!1981, !"_ZN4core3ptr130drop_in_place$LT$core..result..Result$LT$http..header..map..HeaderMap$C$http_body..frame..Frame$LT$bytes..bytes..Bytes$GT$$GT$$GT$17h5a85745be8ee8602E"} +!1982 = !{!1983} +!1983 = distinct !{!1983, !1984, !"_ZN4core3ptr71drop_in_place$LT$http_body..frame..Frame$LT$bytes..bytes..Bytes$GT$$GT$17hb2d5df8df1eaf73cE: argument 0"} +!1984 = distinct !{!1984, !"_ZN4core3ptr71drop_in_place$LT$http_body..frame..Frame$LT$bytes..bytes..Bytes$GT$$GT$17hb2d5df8df1eaf73cE"} +!1985 = !{!1986} +!1986 = distinct !{!1986, !1987, !"_ZN4core3ptr70drop_in_place$LT$http_body..frame..Kind$LT$bytes..bytes..Bytes$GT$$GT$17ha3f92f8eb677564cE.llvm.1425447921696267910: argument 0"} +!1987 = distinct !{!1987, !"_ZN4core3ptr70drop_in_place$LT$http_body..frame..Kind$LT$bytes..bytes..Bytes$GT$$GT$17ha3f92f8eb677564cE.llvm.1425447921696267910"} +!1988 = !{!1986, !1983, !1980} +!1989 = !{!1990} +!1990 = distinct !{!1990, !1991, !"_ZN4core3ptr40drop_in_place$LT$bytes..bytes..Bytes$GT$17hc98db53282842706E.llvm.1425447921696267910: argument 0"} +!1991 = distinct !{!1991, !"_ZN4core3ptr40drop_in_place$LT$bytes..bytes..Bytes$GT$17hc98db53282842706E.llvm.1425447921696267910"} +!1992 = !{!1993} +!1993 = distinct !{!1993, !1994, !"_ZN61_$LT$bytes..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h3961fb331f82d55fE.llvm.1425447921696267910: argument 0"} +!1994 = distinct !{!1994, !"_ZN61_$LT$bytes..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h3961fb331f82d55fE.llvm.1425447921696267910"} +!1995 = !{!1993, !1990, !1986, !1983, !1980} +!1996 = !{!1997, !1999} +!1997 = distinct !{!1997, !1998, !"_ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$4iter17h8d87e677e2dff81fE: argument 0"} +!1998 = distinct !{!1998, !"_ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$4iter17h8d87e677e2dff81fE"} +!1999 = distinct !{!1999, !1998, !"_ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$4iter17h8d87e677e2dff81fE: argument 1"} +!2000 = !{!2001} +!2001 = distinct !{!2001, !2002, !"_ZN14kafka_protocol8protocol3buf7ByteBuf14try_peek_bytes17h3e6471f04a4675d7E: argument 1"} +!2002 = distinct !{!2002, !"_ZN14kafka_protocol8protocol3buf7ByteBuf14try_peek_bytes17h3e6471f04a4675d7E"} +!2003 = !{!2004, !2001} +!2004 = distinct !{!2004, !2005, !"_ZN72_$LT$bytes..bytes_mut..BytesMut$u20$as$u20$bytes..buf..buf_impl..Buf$GT$9remaining17h3c575fa8b9a968c9E.llvm.6961039930124626028: argument 0"} +!2005 = distinct !{!2005, !"_ZN72_$LT$bytes..bytes_mut..BytesMut$u20$as$u20$bytes..buf..buf_impl..Buf$GT$9remaining17h3c575fa8b9a968c9E.llvm.6961039930124626028"} +!2006 = !{!2007} +!2007 = distinct !{!2007, !2002, !"_ZN14kafka_protocol8protocol3buf7ByteBuf14try_peek_bytes17h3e6471f04a4675d7E: argument 0"} +!2008 = !{!2007, !2001} +!2009 = !{!"branch_weights", !"expected", i32 1, i32 2000} !2010 = !{!2011, !2013} !2011 = distinct !{!2011, !2012, !"_ZN61_$LT$bytes..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h3961fb331f82d55fE: argument 0"} !2012 = distinct !{!2012, !"_ZN61_$LT$bytes..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h3961fb331f82d55fE"} diff --git a/bench/opencv/optimized/conv_winograd_f63.ll b/bench/opencv/optimized/conv_winograd_f63.ll index a812c95ad99..df5ecc1c96e 100644 --- a/bench/opencv/optimized/conv_winograd_f63.ll +++ b/bench/opencv/optimized/conv_winograd_f63.ll @@ -2078,7 +2078,7 @@ define internal void @"_ZNSt17_Function_handlerIFvRKN2cv5RangeEEZNS0_3dnn13runWi %260 = getelementptr inbounds nuw i8, ptr %.0113.us.i.i.i, i64 %.idx223.i.i.i call void @llvm.memcpy.p0.p0.i64(ptr align 4 %259, ptr align 4 %260, i64 %265, i1 false) %indvars.iv.next187.i.i.i = add nuw nsw i64 %indvars.iv186.i.i.i, 1 - %exitcond191.not.i.i.i = icmp eq i64 %indvars.iv.next187.i.i.i, %wide.trip.count190.i.i.i + %exitcond191.not.i.i.i = icmp eq i64 %indvars.iv.next187.i.i.i, %wide.trip.count189.i.i.i br i1 %exitcond191.not.i.i.i, label %.loopexit.us.i.i.i, label %253, !llvm.loop !178 .preheader.us.i.i.i: ; preds = %207 @@ -2088,15 +2088,13 @@ define internal void @"_ZNSt17_Function_handlerIFvRKN2cv5RangeEEZNS0_3dnn13runWi .lr.ph.us.i.i.i: ; preds = %.preheader.us.i.i.i %262 = sext i32 %spec.store.select2.us.i.i.i to i64 %263 = shl nsw i64 %262, 2 - %smax.i.i.i = call i32 @llvm.smax.i32(i32 %spec.store.select.us.i.i.i, i32 1) - %wide.trip.count.i.i.i = zext nneg i32 %smax.i.i.i to i64 + %wide.trip.count.i.i.i = zext nneg i32 %spec.store.select.us.i.i.i to i64 br label %208 .lr.ph163.us.i.i.i: ; preds = %250 %264 = sext i32 %spec.store.select2.us.i.i.i to i64 %265 = shl nsw i64 %264, 2 - %smax189.i.i.i = call i32 @llvm.smax.i32(i32 %spec.store.select.us.i.i.i, i32 1) - %wide.trip.count190.i.i.i = zext nneg i32 %smax189.i.i.i to i64 + %wide.trip.count189.i.i.i = zext nneg i32 %spec.store.select.us.i.i.i to i64 br label %253 ._crit_edge.us.i.i.i: ; preds = %.loopexit.us.i.i.i diff --git a/bench/opencv/optimized/dwt.ll b/bench/opencv/optimized/dwt.ll index 90db335a606..19b9a3a3143 100644 --- a/bench/opencv/optimized/dwt.ll +++ b/bench/opencv/optimized/dwt.ll @@ -430,9 +430,8 @@ opj_dwt_fetch_cols_vertical_pass.exit.thread: ; preds = %.preheader.i, %.pre %48 = getelementptr inbounds nuw i8, ptr %1, i64 16 %49 = load <2 x i64>, ptr %48, align 16, !tbaa !57 %50 = load <2 x i64>, ptr %1, align 16, !tbaa !57 - %umax336 = tail call i32 @llvm.umax.i32(i32 %9, i32 2) - %51 = add nsw i32 %umax336, -1 - %wide.trip.count337 = zext nneg i32 %51 to i64 + %51 = add nsw i32 %9, -1 + %wide.trip.count336 = zext i32 %51 to i64 br label %.lr.ph285 .lr.ph285: ; preds = %.lr.ph285.preheader, %.lr.ph285 @@ -467,7 +466,7 @@ opj_dwt_fetch_cols_vertical_pass.exit.thread: ; preds = %.preheader.i, %.pre store <4 x i32> %74, ptr %63, align 16, !tbaa !57 %indvars.iv.next330 = add nuw nsw i64 %indvars.iv329, 1 %indvars.iv.next332 = add nuw nsw i64 %indvars.iv331, 1 - %exitcond338.not = icmp eq i64 %indvars.iv.next332, %wide.trip.count337 + %exitcond338.not = icmp eq i64 %indvars.iv.next332, %wide.trip.count336 br i1 %exitcond338.not, label %._crit_edge286, label %.lr.ph285, !llvm.loop !58 ._crit_edge286: ; preds = %.lr.ph285 @@ -612,8 +611,7 @@ opj_dwt_fetch_cols_vertical_pass.exit.thread: ; preds = %.preheader.i, %.pre %149 = load <2 x i64>, ptr %148, align 16, !tbaa !57 %150 = getelementptr inbounds nuw i8, ptr %1, i64 32 %151 = load <2 x i64>, ptr %150, align 16, !tbaa !57 - %umax = tail call i32 @llvm.umax.i32(i32 %9, i32 2) - %wide.trip.count = zext nneg i32 %umax to i64 + %wide.trip.count = zext nneg i32 %9 to i64 br label %.lr.ph .lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph @@ -650,7 +648,7 @@ opj_dwt_fetch_cols_vertical_pass.exit.thread: ; preds = %.preheader.i, %.pre br i1 %exitcond311.not, label %._crit_edge, label %.lr.ph, !llvm.loop !64 ._crit_edge: ; preds = %.lr.ph - %175 = shl i32 %umax, 4 + %175 = shl i32 %9, 4 br label %176 176: ; preds = %._crit_edge, %146 @@ -926,8 +924,7 @@ define internal void @opj_dwt_encode_and_deinterleave_h_one_row(ptr noundef capt .lr.ph132.preheader: ; preds = %.preheader %13 = zext nneg i32 %7 to i64 - %smax = tail call i32 @llvm.smax.i32(i32 %11, i32 1) - %wide.trip.count152 = zext nneg i32 %smax to i64 + %wide.trip.count152 = zext i32 %11 to i64 %invariant.gep166 = getelementptr inbounds nuw i32, ptr %1, i64 %13 br label %.lr.ph132 @@ -951,7 +948,7 @@ define internal void @opj_dwt_encode_and_deinterleave_h_one_row(ptr noundef capt br i1 %exitcond153.not, label %._crit_edge133, label %.lr.ph132, !llvm.loop !79 ._crit_edge133: ; preds = %.lr.ph132, %.preheader - %.0116.lcssa = phi i32 [ 0, %.preheader ], [ %smax, %.lr.ph132 ] + %.0116.lcssa = phi i32 [ 0, %.preheader ], [ %11, %.lr.ph132 ] %23 = and i32 %2, 1 %24 = icmp eq i32 %23, 0 br i1 %24, label %25, label %36 @@ -1061,8 +1058,6 @@ define internal void @opj_dwt_encode_and_deinterleave_h_one_row(ptr noundef capt br i1 %91, label %.lr.ph.preheader, label %._crit_edge .lr.ph.preheader: ; preds = %85 - %umax = tail call i32 @llvm.umax.i32(i32 %7, i32 2) - %wide.trip.count = zext nneg i32 %umax to i64 %invariant.gep = getelementptr inbounds nuw i32, ptr %1, i64 %89 br label %.lr.ph @@ -1081,11 +1076,11 @@ define internal void @opj_dwt_encode_and_deinterleave_h_one_row(ptr noundef capt %gep = getelementptr inbounds nuw i32, ptr %invariant.gep, i64 %indvars.iv store i32 %100, ptr %gep, align 4, !tbaa !53 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count + %exitcond.not = icmp eq i64 %indvars.iv.next, %89 br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !81 ._crit_edge: ; preds = %.lr.ph, %85 - %.0.lcssa = phi i32 [ 1, %85 ], [ %umax, %.lr.ph ] + %.0.lcssa = phi i32 [ 1, %85 ], [ %7, %.lr.ph ] %101 = and i32 %2, 1 %.not123 = icmp eq i32 %101, 0 br i1 %.not123, label %113, label %102 @@ -1323,7 +1318,7 @@ opj_dwt_max_resolution.exit.i: ; preds = %.lr.ph.i.i %88 = mul i32 %.1145187.i, %79 %89 = getelementptr inbounds nuw i8, ptr %82, i64 40 store i32 %88, ptr %89, align 8, !tbaa !99 - %90 = add nuw i32 %.1145187.i, 1 + %90 = add nuw nsw i32 %.1145187.i, 1 %91 = mul i32 %90, %79 %92 = getelementptr inbounds nuw i8, ptr %82, i64 44 %93 = icmp eq i32 %.1145187.i, %80 @@ -1411,7 +1406,7 @@ opj_dwt_max_resolution.exit.i: ; preds = %.lr.ph.i.i %121 = mul i32 %.3147189.i, %112 %122 = getelementptr inbounds nuw i8, ptr %115, i64 40 store i32 %121, ptr %122, align 8, !tbaa !99 - %123 = add nuw i32 %.3147189.i, 1 + %123 = add nuw nsw i32 %.3147189.i, 1 %124 = mul i32 %123, %112 %125 = getelementptr inbounds nuw i8, ptr %115, i64 44 %126 = icmp eq i32 %.3147189.i, %113 @@ -3434,7 +3429,7 @@ opj_v8dwt_encode_step1.exit: ; preds = %.lr.ph.i108, %opj_v %252 = fmul <4 x float> %251, splat (float 0x3FEA033860000000) store <4 x float> %252, ptr %250, align 16, !tbaa !57 %253 = getelementptr inbounds nuw i8, ptr %.01112.i113, i64 64 - %254 = add nuw i32 %.013.i112, 1 + %254 = add nuw nsw i32 %.013.i112, 1 %exitcond.not.i114 = icmp eq i32 %254, %9 br i1 %exitcond.not.i114, label %opj_v8dwt_encode_step1.exit115, label %.lr.ph.i111, !llvm.loop !150 @@ -7951,9 +7946,6 @@ declare i32 @llvm.uadd.sat.i32(i32, i32) #13 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) declare void @llvm.experimental.noalias.scope.decl(metadata) #14 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.smax.i32(i32, i32) #13 - ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #15 diff --git a/bench/opencv/optimized/hough.ll b/bench/opencv/optimized/hough.ll index 425c5a861ce..2d93da7da4b 100644 --- a/bench/opencv/optimized/hough.ll +++ b/bench/opencv/optimized/hough.ll @@ -15092,8 +15092,7 @@ define internal void @"_ZNSt17_Function_handlerIFvRKN2cv5RangeEEZNS0_L15HoughCir .preheader408.preheader.i.i.i: ; preds = %30 %46 = add i32 %indvars.iv.i.i, %42 %smin.i.i = tail call i32 @llvm.smin.i32(i32 %46, i32 10) - %47 = tail call i32 @llvm.umax.i32(i32 %smin.i.i, i32 1) - %umax.i.i = zext i32 %47 to i64 + %47 = zext i32 %smin.i.i to i64 br label %.preheader408.i.i.i .preheader410.i.i.i: ; preds = %51 @@ -15121,7 +15120,7 @@ define internal void @"_ZNSt17_Function_handlerIFvRKN2cv5RangeEEZNS0_L15HoughCir %53 = getelementptr inbounds nuw i32, ptr %5, i64 %indvars.iv495.i.i.i store i32 -2, ptr %53, align 4, !tbaa !49 %indvars.iv.next496.i.i.i = add nuw nsw i64 %indvars.iv495.i.i.i, 1 - %exitcond.not.i.i = icmp eq i64 %indvars.iv.next496.i.i.i, %umax.i.i + %exitcond.not.i.i = icmp eq i64 %indvars.iv.next496.i.i.i, %47 br i1 %exitcond.not.i.i, label %.preheader410.i.i.i, label %.preheader408.i.i.i, !llvm.loop !390 54: ; preds = %54, %.preheader408.i.i.i @@ -15441,7 +15440,7 @@ _ZN2cv3VecIfLi4EEC2ERKS1_.exit346.i.i.i: ; preds = %176, %.lr.ph.i.i.i 229: ; preds = %227, %119, %96, %80 %indvars.iv.next507.i.i.i = add nuw nsw i64 %indvars.iv506.i.i.i, 1 - %exitcond20.not.i.i = icmp eq i64 %indvars.iv.next507.i.i.i, %umax.i.i + %exitcond20.not.i.i = icmp eq i64 %indvars.iv.next507.i.i.i, %47 br i1 %exitcond20.not.i.i, label %._crit_edge444.i.i.i, label %64, !llvm.loop !398 .lr.ph470.i.i.i: ; preds = %.lr.ph470.i.i.i.preheader, %296 @@ -15566,7 +15565,7 @@ _ZN2cv3VecIfLi4EEC2ERKS1_.exit346.i.i.i: ; preds = %176, %.lr.ph.i.i.i 296: ; preds = %370 %indvars.iv.next527.i.i.i = add nuw nsw i64 %indvars.iv526.i.i.i, 1 - %exitcond23.not.i.i = icmp eq i64 %indvars.iv.next527.i.i.i, %umax.i.i + %exitcond23.not.i.i = icmp eq i64 %indvars.iv.next527.i.i.i, %47 br i1 %exitcond23.not.i.i, label %._crit_edge471.i.i.i, label %.lr.ph470.i.i.i, !llvm.loop !402 .preheader401.i.i.i: ; preds = %.loopexit400.i.i.i, %370 diff --git a/bench/opencv/optimized/qrcode_encoder.ll b/bench/opencv/optimized/qrcode_encoder.ll index 4f46cae7628..668a04a585c 100644 --- a/bench/opencv/optimized/qrcode_encoder.ll +++ b/bench/opencv/optimized/qrcode_encoder.ll @@ -3846,15 +3846,16 @@ define hidden void @_ZN2cv17QRCodeEncoderImpl12padBitStreamEv(ptr noundef nonnul %.neg = sub i64 %.pre-phi31, %.pre-phi %.neg24 = trunc i64 %.neg to i32 %48 = add i32 %18, %.neg24 - %or.cond = icmp slt i32 %48, 8 - br i1 %or.cond, label %.loopexit, label %.lr.ph.preheader + %or.cond = icmp sgt i32 %48, 0 + br i1 %or.cond, label %50, label %.loopexit .lr.ph.preheader: ; preds = %47 %49 = lshr i32 %48, 3 - br label %.lr.ph + %.not26 = icmp samesign ult i32 %48, 8 + br i1 %.not26, label %.loopexit, label %.lr.ph .lr.ph: ; preds = %.lr.ph.preheader, %_ZN2cvL14writeDecNumberEiiRSt6vectorIhSaIhEE.exit - %.025 = phi i32 [ %70, %_ZN2cvL14writeDecNumberEiiRSt6vectorIhSaIhEE.exit ], [ 0, %.lr.ph.preheader ] + %.025 = phi i32 [ %70, %_ZN2cvL14writeDecNumberEiiRSt6vectorIhSaIhEE.exit ], [ 0, %50 ] %50 = and i32 %.025, 1 %51 = zext nneg i32 %50 to i64 %52 = getelementptr inbounds nuw i32, ptr @__const._ZN2cv17QRCodeEncoderImpl12padBitStreamEv.pad_patterns, i64 %51 @@ -3865,7 +3866,7 @@ define hidden void @_ZN2cv17QRCodeEncoderImpl12padBitStreamEv(ptr noundef nonnul br label %56 56: ; preds = %56, %.lr.ph - %indvars.iv.i.i = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next.i.i, %56 ] + %indvars.iv.i.i = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next.i.i, %58 ] %57 = trunc nuw nsw i64 %indvars.iv.i.i to i32 %58 = ashr i32 %53, %57 %59 = srem i32 %58, 2 @@ -3899,7 +3900,7 @@ _ZN2cvL14writeDecNumberEiiRSt6vectorIhSaIhEE.exit: ; preds = %_ZN2cvL8decToBinEi %exitcond.not = icmp eq i32 %70, %49 br i1 %exitcond.not, label %.loopexit, label %.lr.ph, !llvm.loop !114 -.loopexit: ; preds = %_ZN2cvL14writeDecNumberEiiRSt6vectorIhSaIhEE.exit, %31, %47, %1 +.loopexit: ; preds = %_ZN2cvL14writeDecNumberEiiRSt6vectorIhSaIhEE.exit, %50, %31, %47, %1 ret void } diff --git a/bench/openjdk/optimized/synchronizer.ll b/bench/openjdk/optimized/synchronizer.ll index f4d35168610..75dc4b7ae58 100644 --- a/bench/openjdk/optimized/synchronizer.ll +++ b/bench/openjdk/optimized/synchronizer.ll @@ -1712,8 +1712,7 @@ _ZNK9LockStack12is_recursiveEP7oopDesc.exit.thread: ; preds = %_ZNK9LockStack12i .lr.ph.i: ; preds = %44 %49 = getelementptr inbounds nuw i8, ptr %2, i64 1736 - %umax.i = tail call i32 @llvm.umax.i32(i32 %48, i32 1) - %wide.trip.count.i = zext nneg i32 %umax.i to i64 + %wide.trip.count.i = zext nneg i32 %48 to i64 br label %50 50: ; preds = %60, %.lr.ph.i @@ -3355,8 +3354,7 @@ _ZN13ObjectMonitor24set_owner_from_anonymousEP6Thread.exit: ; preds = %47, %49 br i1 %.not20.i, label %_ZN9LockStack6removeEP7oopDesc.exit, label %.lr.ph.i .lr.ph.i: ; preds = %_ZN13ObjectMonitor24set_owner_from_anonymousEP6Thread.exit - %umax.i = call i32 @llvm.umax.i32(i32 %53, i32 1) - %wide.trip.count.i = zext nneg i32 %umax.i to i64 + %wide.trip.count.i = zext nneg i32 %53 to i64 br label %54 54: ; preds = %64, %.lr.ph.i @@ -3509,8 +3507,7 @@ _ZN13ObjectMonitor14set_owner_fromEPvS0_.exit: ; preds = %_ZN13ObjectMonitor1 br i1 %.not20.i103, label %_ZN9LockStack6removeEP7oopDesc.exit117, label %.lr.ph.i104 .lr.ph.i104: ; preds = %111 - %umax.i105 = call i32 @llvm.umax.i32(i32 %114, i32 1) - %wide.trip.count.i106 = zext nneg i32 %umax.i105 to i64 + %wide.trip.count.i105 = zext nneg i32 %114 to i64 br label %115 115: ; preds = %125, %.lr.ph.i104 @@ -3539,7 +3536,7 @@ _ZN13ObjectMonitor14set_owner_fromEPvS0_.exit: ; preds = %_ZN13ObjectMonitor1 125: ; preds = %123, %115 %.1.i111 = phi i32 [ %124, %123 ], [ %.019.i108, %115 ] %indvars.iv.next.i112 = add nuw nsw i64 %indvars.iv.i107, 1 - %exitcond.not.i113 = icmp eq i64 %indvars.iv.next.i112, %wide.trip.count.i106 + %exitcond.not.i113 = icmp eq i64 %indvars.iv.next.i112, %wide.trip.count.i105 br i1 %exitcond.not.i113, label %._crit_edge.loopexit.i114, label %115, !llvm.loop !30 ._crit_edge.loopexit.i114: ; preds = %125 @@ -3547,8 +3544,8 @@ _ZN13ObjectMonitor14set_owner_fromEPvS0_.exit: ; preds = %_ZN13ObjectMonitor1 br label %_ZN9LockStack6removeEP7oopDesc.exit117 _ZN9LockStack6removeEP7oopDesc.exit117: ; preds = %111, %._crit_edge.loopexit.i114 - %126 = phi i32 [ %112, %111 ], [ %.pre.i115, %._crit_edge.loopexit.i114 ] - %.0.lcssa.i116 = phi i32 [ 0, %111 ], [ %.1.i111, %._crit_edge.loopexit.i114 ] + %126 = phi i32 [ %112, %111 ], [ %.pre.i115, %._crit_edge.loopexit.i113 ] + %.0.lcssa.i116 = phi i32 [ 0, %111 ], [ %.1.i111, %._crit_edge.loopexit.i113 ] %127 = sub nsw i32 %114, %.0.lcssa.i116 %128 = shl i32 %127, 3 %129 = sub i32 %126, %128 @@ -4063,12 +4060,12 @@ _ZN8JfrEventI23EventJavaMonitorInflateE13should_commitEv.exit150: ; preds = %383 br i1 %395, label %.thread188.sink.split, label %.thread188 .thread188.sink.split: ; preds = %_ZN8JfrEventI23EventJavaMonitorInflateE13should_commitEv.exit150, %377, %_ZN8JfrEventI23EventJavaMonitorInflateE13should_commitEv.exit136, %293, %_ZN8JfrEventI23EventJavaMonitorInflateE13should_commitEv.exit, %193 - %.2.ph.ph = phi ptr [ %87, %193 ], [ %87, %_ZN8JfrEventI23EventJavaMonitorInflateE13should_commitEv.exit ], [ %217, %293 ], [ %217, %_ZN8JfrEventI23EventJavaMonitorInflateE13should_commitEv.exit136 ], [ %313, %377 ], [ %313, %_ZN8JfrEventI23EventJavaMonitorInflateE13should_commitEv.exit150 ] + %.2.ph.ph = phi ptr [ %87, %193 ], [ %87, %_ZN8JfrEventI23EventJavaMonitorInflateE13should_commitEv.exit ], [ %217, %293 ], [ %217, %_ZN8JfrEventI23EventJavaMonitorInflateE13should_commitEv.exit135 ], [ %313, %377 ], [ %313, %_ZN8JfrEventI23EventJavaMonitorInflateE13should_commitEv.exit149 ] call fastcc void @_ZL26post_monitor_inflate_eventP23EventJavaMonitorInflateP7oopDescN18ObjectSynchronizer12InflateCauseE(ptr noundef %4, ptr noundef nonnull %1, i32 noundef %2) br label %.thread188 .thread188: ; preds = %.thread188.sink.split, %_ZN8JfrEventI23EventJavaMonitorInflateE13should_commitEv.exit, %_ZN8JfrEventI23EventJavaMonitorInflateE13should_commitEv.exit136, %_ZN8JfrEventI23EventJavaMonitorInflateE13should_commitEv.exit150, %_ZN12ResourceMarkD2Ev.exit, %_ZN12ResourceMarkD2Ev.exit129, %_ZN12ResourceMarkD2Ev.exit143 - %.2.ph = phi ptr [ %313, %_ZN8JfrEventI23EventJavaMonitorInflateE13should_commitEv.exit150 ], [ %217, %_ZN8JfrEventI23EventJavaMonitorInflateE13should_commitEv.exit136 ], [ %87, %_ZN8JfrEventI23EventJavaMonitorInflateE13should_commitEv.exit ], [ %87, %_ZN12ResourceMarkD2Ev.exit ], [ %217, %_ZN12ResourceMarkD2Ev.exit129 ], [ %313, %_ZN12ResourceMarkD2Ev.exit143 ], [ %.2.ph.ph, %.thread188.sink.split ] + %.2.ph = phi ptr [ %313, %_ZN8JfrEventI23EventJavaMonitorInflateE13should_commitEv.exit149 ], [ %217, %_ZN8JfrEventI23EventJavaMonitorInflateE13should_commitEv.exit135 ], [ %87, %_ZN8JfrEventI23EventJavaMonitorInflateE13should_commitEv.exit ], [ %87, %_ZN12ResourceMarkD2Ev.exit ], [ %217, %_ZN12ResourceMarkD2Ev.exit128 ], [ %313, %_ZN12ResourceMarkD2Ev.exit142 ], [ %.2.ph.ph, %.thread187.sink.split ] call void @_ZN13LogStreamImplI15LogTargetHandleED2Ev(ptr noundef nonnull align 8 dereferenceable(160) %6) #18 br label %_ZNK9LockStack8containsEP7oopDesc.exit @@ -4080,7 +4077,7 @@ _ZN8JfrEventI23EventJavaMonitorInflateE13should_commitEv.exit150: ; preds = %383 br label %.backedge _ZNK9LockStack8containsEP7oopDesc.exit: ; preds = %41, %.thread188, %._crit_edge, %28, %_ZN9LockStack6removeEP7oopDesc.exit - %.1 = phi ptr [ %24, %_ZN9LockStack6removeEP7oopDesc.exit ], [ %24, %28 ], [ %24, %._crit_edge ], [ %.2.ph, %.thread188 ], [ %24, %41 ] + %.1 = phi ptr [ %24, %_ZN9LockStack6removeEP7oopDesc.exit ], [ %24, %28 ], [ %24, %._crit_edge ], [ %.2.ph, %.thread187 ], [ %24, %41 ] ret ptr %.1 } @@ -7201,9 +7198,6 @@ declare void @llvm.lifetime.start.p0(ptr captures(none)) #17 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(ptr captures(none)) #17 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umax.i32(i32, i32) #15 - ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smax.i32(i32, i32) #15 diff --git a/bench/openssl/optimized/hkdf.ll b/bench/openssl/optimized/hkdf.ll index 40e40499713..3a29714a78c 100644 --- a/bench/openssl/optimized/hkdf.ll +++ b/bench/openssl/optimized/hkdf.ll @@ -756,9 +756,13 @@ define internal fastcc range(i32 0, 2) i32 @HKDF_Expand(ptr noundef nonnull %0, %.not5160 = icmp eq i64 %spec.select, 0 br i1 %.not5160, label %.loopexit, label %.lr.ph -.lr.ph: ; preds = %.preheader, %37 - %.04562 = phi i64 [ %41, %37 ], [ 0, %.preheader ] - %.04661 = phi i32 [ %42, %37 ], [ 1, %.preheader ] +.lr.ph: ; preds = %.preheader + %25 = trunc nuw nsw i64 %spec.select to i32 + br label %.lr.ph + +.lr.ph: ; preds = %.lr.ph.preheader, %38 + %.04562 = phi i64 [ %42, %38 ], [ 0, %.lr.ph.preheader ] + %.04661 = phi i32 [ %43, %38 ], [ 1, %.lr.ph.preheader ] call void @llvm.lifetime.start.p0(ptr nonnull %9) %25 = trunc i32 %.04661 to i8 store i8 %25, ptr %9, align 1, !tbaa !29 @@ -802,12 +806,11 @@ define internal fastcc range(i32 0, 2) i32 @HKDF_Expand(ptr noundef nonnull %0, %41 = add i64 %39, %.04562 call void @llvm.lifetime.end.p0(ptr nonnull %9) %42 = add i32 %.04661, 1 - %43 = zext i32 %42 to i64 - %.not51 = icmp ult i64 %spec.select, %43 + %.not51 = icmp ugt i32 %42, %25 br i1 %.not51, label %.loopexit, label %.lr.ph, !llvm.loop !30 .loopexit: ; preds = %37, %.preheader, %.thread, %22 - %.044 = phi i32 [ 0, %22 ], [ 0, %.thread ], [ 1, %.preheader ], [ 1, %37 ] + %.044 = phi i32 [ 0, %22 ], [ 0, %.thread ], [ 1, %.preheader ], [ 1, %38 ] call void @OPENSSL_cleanse(ptr noundef nonnull %8, i64 noundef 64) #7 call void @HMAC_CTX_free(ptr noundef nonnull %20) #7 br label %44 diff --git a/bench/openusd/optimized/detokenize.ll b/bench/openusd/optimized/detokenize.ll index da2deca257a..ce376dbb2bb 100644 --- a/bench/openusd/optimized/detokenize.ll +++ b/bench/openusd/optimized/detokenize.ll @@ -140,29 +140,27 @@ av1_read_uniform.exit.i: ; preds = %aom_read_literal_.e .lr.ph76.split.us.i: ; preds = %.lr.ph76.i, %._crit_edge.split.us.us.i %indvars.iv87.i = phi i64 [ %indvars.iv.next88.i, %._crit_edge.split.us.us.i ], [ 1, %.lr.ph76.i ] %indvars21 = trunc i64 %indvars.iv87.i to i32 - %sext32 = shl i64 %indvars.iv87.i, 32 - %97 = ashr exact i64 %sext32, 32 - %98 = call i32 @llvm.smin.i32(i32 %indvars21, i32 %86) - %99 = sub nsw i32 %indvars21, %60 - %100 = call i32 @llvm.smax.i32(i32 %99, i32 -1) - %.not.not72.us.i = icmp sgt i32 %98, %100 + %97 = call i32 @llvm.smin.i32(i32 %indvars92.i, i32 %86) + %98 = sub nsw i32 %indvars21, %60 + %98 = call i32 @llvm.smax.i32(i32 %98, i32 -1) + %.not.not72.us.i = icmp sgt i32 %97, %99 br i1 %.not.not72.us.i, label %.lr.ph.us.preheader.i, label %._crit_edge.split.us.us.i .lr.ph.us.preheader.i: ; preds = %.lr.ph76.split.us.i - %smin18 = call i64 @llvm.smin.i64(i64 %97, i64 %95) %smin89.i = call i64 @llvm.smin.i64(i64 %indvars.iv87.i, i64 %95) - %101 = sext i32 %100 to i64 + %101 = sext i32 %99 to i64 + %sext25 = shl i64 %indvars.iv87.i, 32 + %101 = ashr exact i64 %sext25, 32 br label %.lr.ph.us.i ._crit_edge.split.us.us.i: ; preds = %aom_read_symbol_.exit.us.us.i, %.lr.ph76.split.us.i - %indvars.iv.next88.i = add nuw i64 %indvars.iv87.i, 1 + %indvars.iv.next88.i = add nuw nsw i64 %indvars.iv87.i, 1 %exitcond94.not.i = icmp eq i64 %indvars.iv.next88.i, %wide.trip.count93.i br i1 %exitcond94.not.i, label %._crit_edge77.i, label %.lr.ph76.split.us.i, !llvm.loop !6 .lr.ph.us.i: ; preds = %aom_read_symbol_.exit.us.us.i, %.lr.ph.us.preheader.i - %indvars.iv19 = phi i64 [ %indvars.iv.next20, %aom_read_symbol_.exit.us.us.i ], [ %smin18, %.lr.ph.us.preheader.i ] - %indvars.iv90.i = phi i64 [ %indvars.iv.next91.i, %aom_read_symbol_.exit.us.us.i ], [ %smin89.i, %.lr.ph.us.preheader.i ] - %102 = sub nsw i64 %97, %indvars.iv19 + %indvars.iv19 = phi i64 [ %smin89.i, %.lr.ph.us.preheader.i ], [ %indvars.iv.next91.i, %aom_read_symbol_.exit.us.us.i ] + %102 = sub nsw i64 %101, %indvars.iv19 %103 = trunc nuw nsw i64 %indvars.iv90.i to i32 %104 = trunc nsw i64 %102 to i32 %105 = call i32 @av1_get_palette_color_index_context(ptr noundef nonnull %13, i32 noundef %56, i32 noundef %104, i32 noundef %103, i32 noundef %23, ptr noundef nonnull %4, ptr noundef null) #7 @@ -237,31 +235,28 @@ aom_read_symbol_.exit.us.us.i: ; preds = %._crit_edge.loopexi %147 = getelementptr i8, ptr %146, i64 %145 store i8 %144, ptr %147, align 1 %indvars.iv.next91.i = add nsw i64 %indvars.iv90.i, -1 - %indvars.iv.next20 = add nsw i64 %indvars.iv19, -1 - %.not.not.us.us.i = icmp sgt i64 %indvars.iv.next91.i, %101 + %.not.not.us.us.i = icmp sgt i64 %indvars.iv.next91.i, %100 br i1 %.not.not.us.us.i, label %.lr.ph.us.i, label %._crit_edge.split.us.us.i, !llvm.loop !8 .lr.ph76.split.i: ; preds = %.lr.ph76.i, %._crit_edge.split.i %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %._crit_edge.split.i ], [ 1, %.lr.ph76.i ] %indvars17 = trunc i64 %indvars.iv.i to i32 - %sext = shl i64 %indvars.iv.i, 32 - %148 = ashr exact i64 %sext, 32 - %149 = call i32 @llvm.smin.i32(i32 %indvars17, i32 %86) - %150 = sub nsw i32 %indvars17, %60 - %151 = call i32 @llvm.smax.i32(i32 %150, i32 -1) - %.not.not72.i = icmp sgt i32 %149, %151 + %148 = call i32 @llvm.smin.i32(i32 %indvars86.i, i32 %86) + %149 = sub nsw i32 %indvars17, %60 + %149 = call i32 @llvm.smax.i32(i32 %149, i32 -1) + %.not.not72.i = icmp sgt i32 %148, %150 br i1 %.not.not72.i, label %.lr.ph.preheader.i, label %._crit_edge.split.i .lr.ph.preheader.i: ; preds = %.lr.ph76.split.i - %smin = call i64 @llvm.smin.i64(i64 %148, i64 %95) %smin.i = call i64 @llvm.smin.i64(i64 %indvars.iv.i, i64 %95) - %152 = sext i32 %151 to i64 + %152 = sext i32 %150 to i64 + %sext = shl i64 %indvars.iv.i, 32 + %152 = ashr exact i64 %sext, 32 br label %.lr.ph.i .lr.ph.i: ; preds = %aom_read_symbol_.exit.i, %.lr.ph.preheader.i - %indvars.iv15 = phi i64 [ %indvars.iv.next16, %aom_read_symbol_.exit.i ], [ %smin, %.lr.ph.preheader.i ] - %indvars.iv84.i = phi i64 [ %indvars.iv.next85.i, %aom_read_symbol_.exit.i ], [ %smin.i, %.lr.ph.preheader.i ] - %153 = sub nsw i64 %148, %indvars.iv15 + %indvars.iv15 = phi i64 [ %smin.i, %.lr.ph.preheader.i ], [ %indvars.iv.next85.i, %aom_read_symbol_.exit.i ] + %153 = sub nsw i64 %152, %indvars.iv15 %154 = trunc nuw nsw i64 %indvars.iv84.i to i32 %155 = trunc nsw i64 %153 to i32 %156 = call i32 @av1_get_palette_color_index_context(ptr noundef nonnull %13, i32 noundef %56, i32 noundef %155, i32 noundef %154, i32 noundef %23, ptr noundef nonnull %4, ptr noundef null) #7 @@ -290,12 +285,11 @@ aom_read_symbol_.exit.i: ; preds = %update_cdf.exit.i.i %171 = getelementptr i8, ptr %170, i64 %169 store i8 %168, ptr %171, align 1 %indvars.iv.next85.i = add nsw i64 %indvars.iv84.i, -1 - %indvars.iv.next16 = add nsw i64 %indvars.iv15, -1 - %.not.not.i = icmp sgt i64 %indvars.iv.next85.i, %152 + %.not.not.i = icmp sgt i64 %indvars.iv.next85.i, %151 br i1 %.not.not.i, label %.lr.ph.i, label %._crit_edge.split.i, !llvm.loop !8 ._crit_edge.split.i: ; preds = %aom_read_symbol_.exit.i, %.lr.ph76.split.i - %indvars.iv.next.i = add nuw i64 %indvars.iv.i, 1 + %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %wide.trip.count93.i br i1 %exitcond.not.i, label %._crit_edge77.i, label %.lr.ph76.split.i, !llvm.loop !6 diff --git a/bench/openusd/optimized/restoration.ll b/bench/openusd/optimized/restoration.ll index 2bacc4213b8..231352efb47 100644 --- a/bench/openusd/optimized/restoration.ll +++ b/bench/openusd/optimized/restoration.ll @@ -2426,8 +2426,7 @@ av1_whole_frame_rect.exit.i.us: ; preds = %20, %.split.us %95 = sext i32 %93 to i64 %96 = sext i32 %65 to i64 %97 = sext i32 %58 to i64 - %smax.i49.us = tail call i32 @llvm.smax.i32(i32 %72, i32 1) - %wide.trip.count.i50.us = zext nneg i32 %smax.i49.us to i64 + %wide.trip.count.i49.us = zext nneg i32 %72 to i64 br label %98 98: ; preds = %98, %.lr.ph.i48.us @@ -2438,7 +2437,7 @@ av1_whole_frame_rect.exit.i.us: ; preds = %20, %.split.us %102 = getelementptr inbounds i8, ptr %61, i64 %101 tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %100, ptr align 1 %102, i64 %95, i1 false) %indvars.iv.next.i52.us = add nuw nsw i64 %indvars.iv.i51.us, 1 - %exitcond.not.i53.us = icmp eq i64 %indvars.iv.next.i52.us, %wide.trip.count.i50.us + %exitcond.not.i53.us = icmp eq i64 %indvars.iv.next.i52.us, %wide.trip.count.i49.us br i1 %exitcond.not.i53.us, label %.loopexit.i36.us, label %98, !llvm.loop !36 .loopexit.i36.us: ; preds = %98, %90, %83 @@ -2568,8 +2567,7 @@ save_tile_row_boundary_lines.exit.us: ; preds = %save_deblock_bounda %172 = sext i32 %170 to i64 %173 = sext i32 %142 to i64 %174 = sext i32 %135 to i64 - %smax.i.us = tail call i32 @llvm.smax.i32(i32 %149, i32 1) - %wide.trip.count.i.us = zext nneg i32 %smax.i.us to i64 + %wide.trip.count.i.us = zext nneg i32 %149 to i64 br label %175 175: ; preds = %175, %.lr.ph.i29.us @@ -2803,8 +2801,8 @@ save_cdef_boundary_lines.exit21: ; preds = %.split.i.i17, %.spl br i1 %.not.i11, label %.split.us.i.i, label %.split.i.i .split.us.i.i: ; preds = %.critedge91, %.split.us.i.i - %.026.us.i.i = phi ptr [ %317, %.split.us.i.i ], [ %296, %.critedge91 ] - %311 = phi i1 [ false, %.split.us.i.i ], [ true, %.critedge91 ] + %.026.us.i.i = phi ptr [ %317, %.split.us.i.i ], [ %296, %.critedge90 ] + %311 = phi i1 [ false, %.split.us.i.i ], [ true, %.critedge90 ] %312 = getelementptr inbounds i8, ptr %.026.us.i.i, i64 -4 %313 = load i8, ptr %.026.us.i.i, align 1 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(4) %312, i8 %313, i64 4, i1 false) @@ -2816,8 +2814,8 @@ save_cdef_boundary_lines.exit21: ; preds = %.split.i.i17, %.spl br i1 %311, label %.split.us.i.i, label %save_tile_row_boundary_lines.exit, !llvm.loop !37 .split.i.i: ; preds = %.critedge91, %.split.i.i - %.026.i.i = phi ptr [ %328, %.split.i.i ], [ %296, %.critedge91 ] - %318 = phi i1 [ false, %.split.i.i ], [ true, %.critedge91 ] + %.026.i.i = phi ptr [ %328, %.split.i.i ], [ %296, %.critedge90 ] + %318 = phi i1 [ false, %.split.i.i ], [ true, %.critedge90 ] %319 = getelementptr inbounds i8, ptr %.026.i.i, i64 -8 %320 = load i16, ptr %.026.i.i, align 2 %321 = zext i16 %320 to i32 diff --git a/bench/pola-rs/optimized/2ak2he68xoikxcmzzopy2cplu.ll b/bench/pola-rs/optimized/2ak2he68xoikxcmzzopy2cplu.ll index 638891c2cbe..7cea06f6977 100644 --- a/bench/pola-rs/optimized/2ak2he68xoikxcmzzopy2cplu.ll +++ b/bench/pola-rs/optimized/2ak2he68xoikxcmzzopy2cplu.ll @@ -45843,7 +45843,6 @@ define hidden void @"_ZN11polars_core13chunked_array3ops6gather100_$LT$impl$u20$ .lr.ph.i.i.i: ; preds = %.noexc1.i.i %34 = getelementptr inbounds nuw i8, ptr %8, i64 8 - %umax.i.i.i = call i64 @llvm.umax.i64(i64 %23, i64 1) br label %35 .preheader35.i.i.i: ; preds = %.noexc2.i.i, %.noexc1.i.i @@ -45911,7 +45910,7 @@ _ZN12polars_arrow6bitmap7mutable19get_chunk_unchecked17hc32efa497b03d6faE.exit.i .noexc2.i.i: ; preds = %_ZN12polars_arrow6bitmap7mutable19get_chunk_unchecked17hc32efa497b03d6faE.exit.i.i.i %52 = add nuw nsw i64 %.sroa.019.037.i.i.i, 1 call void @llvm.lifetime.end.p0(ptr nonnull %8), !noalias !5924 - %exitcond.not.i.i.i = icmp eq i64 %52, %umax.i.i.i + %exitcond.not.i.i.i = icmp eq i64 %52, %23 br i1 %exitcond.not.i.i.i, label %.preheader35.i.i.i, label %35 ._crit_edge.i.i.i: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17ha5961c9af332aee0E.exit27.i.i.i", %.preheader35.i.i.i @@ -165523,7 +165522,6 @@ define hidden void @"_ZN88_$LT$polars_arrow..bitmap..immutable..Bitmap$u20$as$u2 .lr.ph.i.i: ; preds = %.noexc1.i %34 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %umax.i.i = call i64 @llvm.umax.i64(i64 %23, i64 1) br label %35 .preheader28.i.i: ; preds = %.noexc3.i, %.noexc1.i @@ -165573,7 +165571,7 @@ _ZN12polars_arrow6bitmap7mutable19get_chunk_unchecked17h0197da79017fefe4E.exit.i .noexc3.i: ; preds = %_ZN12polars_arrow6bitmap7mutable19get_chunk_unchecked17h0197da79017fefe4E.exit.i.i %46 = add nuw nsw i64 %.sroa.019.029.i.i, 1 call void @llvm.lifetime.end.p0(ptr nonnull %5), !noalias !25016 - %exitcond.not.i.i = icmp eq i64 %46, %umax.i.i + %exitcond.not.i.i = icmp eq i64 %46, %23 br i1 %exitcond.not.i.i, label %.preheader28.i.i, label %35 ._crit_edge.i.i: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17ha5961c9af332aee0E.exit27.i.i", %.preheader28.i.i @@ -173558,7 +173556,6 @@ define hidden void @_ZN10polars_ops13chunked_array4list7any_all12list_all_any17h .lr.ph.i.i.i: ; preds = %.noexc1.i.i %117 = getelementptr inbounds nuw i8, ptr %7, i64 8 - %umax.i.i.i = call i64 @llvm.umax.i64(i64 %106, i64 1) br label %118 .preheader28.i.i.i: ; preds = %.noexc3.i.i, %.noexc1.i.i @@ -173608,7 +173605,7 @@ _ZN12polars_arrow6bitmap7mutable19get_chunk_unchecked17h7a34b8292cf8e3e8E.exit.i .noexc3.i.i: ; preds = %_ZN12polars_arrow6bitmap7mutable19get_chunk_unchecked17h7a34b8292cf8e3e8E.exit.i.i.i %129 = add nuw nsw i64 %.sroa.019.029.i.i.i, 1 call void @llvm.lifetime.end.p0(ptr nonnull %7), !noalias !25869 - %exitcond.not.i.i.i = icmp eq i64 %129, %umax.i.i.i + %exitcond.not.i.i.i = icmp eq i64 %129, %106 br i1 %exitcond.not.i.i.i, label %.preheader28.i.i.i, label %118 ._crit_edge.i.i.i: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17ha5961c9af332aee0E.exit27.i.i.i", %.preheader28.i.i.i @@ -174249,7 +174246,6 @@ define hidden void @_ZN10polars_ops13chunked_array4list7any_all12list_all_any17h .lr.ph.i.i.i: ; preds = %.noexc1.i.i %117 = getelementptr inbounds nuw i8, ptr %7, i64 8 - %umax.i.i.i = call i64 @llvm.umax.i64(i64 %106, i64 1) br label %118 .preheader28.i.i.i: ; preds = %.noexc3.i.i, %.noexc1.i.i @@ -174299,7 +174295,7 @@ _ZN12polars_arrow6bitmap7mutable19get_chunk_unchecked17h81c36dc068aa94e3E.exit.i .noexc3.i.i: ; preds = %_ZN12polars_arrow6bitmap7mutable19get_chunk_unchecked17h81c36dc068aa94e3E.exit.i.i.i %129 = add nuw nsw i64 %.sroa.019.029.i.i.i, 1 call void @llvm.lifetime.end.p0(ptr nonnull %7), !noalias !25983 - %exitcond.not.i.i.i = icmp eq i64 %129, %umax.i.i.i + %exitcond.not.i.i.i = icmp eq i64 %129, %106 br i1 %exitcond.not.i.i.i, label %.preheader28.i.i.i, label %118 ._crit_edge.i.i.i: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17ha5961c9af332aee0E.exit27.i.i.i", %.preheader28.i.i.i diff --git a/bench/pola-rs/optimized/95lxknjh1mq5kyihgiorx0gmt.ll b/bench/pola-rs/optimized/95lxknjh1mq5kyihgiorx0gmt.ll index 111d1342ae9..498c301921c 100644 --- a/bench/pola-rs/optimized/95lxknjh1mq5kyihgiorx0gmt.ll +++ b/bench/pola-rs/optimized/95lxknjh1mq5kyihgiorx0gmt.ll @@ -3795,7 +3795,6 @@ define hidden void @"_ZN123_$LT$polars_arrow..bitmap..immutable..Bitmap$u20$as$u .lr.ph.i.i: ; preds = %.noexc1.i %31 = getelementptr inbounds nuw i8, ptr %6, i64 8 - %umax.i.i = call i64 @llvm.umax.i64(i64 %20, i64 1) br label %32 .preheader35.i.i: ; preds = %.noexc2.i, %.noexc1.i @@ -3863,7 +3862,7 @@ _ZN12polars_arrow6bitmap7mutable19get_chunk_unchecked17hf878bfde9046c2dcE.exit.i .noexc2.i: ; preds = %_ZN12polars_arrow6bitmap7mutable19get_chunk_unchecked17hf878bfde9046c2dcE.exit.i.i %49 = add nuw nsw i64 %.sroa.019.037.i.i, 1 call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !279 - %exitcond.not.i.i = icmp eq i64 %49, %umax.i.i + %exitcond.not.i.i = icmp eq i64 %49, %20 br i1 %exitcond.not.i.i, label %.preheader35.i.i, label %32 ._crit_edge.i.i: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17hbadfba07b1fcb932E.exit27.i.i", %.preheader35.i.i @@ -21260,7 +21259,6 @@ define hidden void @"_ZN88_$LT$polars_arrow..bitmap..immutable..Bitmap$u20$as$u2 .lr.ph.i.i: ; preds = %.noexc1.i %34 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %umax.i.i = call i64 @llvm.umax.i64(i64 %23, i64 1) br label %35 .preheader28.i.i: ; preds = %.noexc3.i, %.noexc1.i @@ -21310,7 +21308,7 @@ _ZN12polars_arrow6bitmap7mutable19get_chunk_unchecked17hceb65986ed6059c5E.exit.i .noexc3.i: ; preds = %_ZN12polars_arrow6bitmap7mutable19get_chunk_unchecked17hceb65986ed6059c5E.exit.i.i %46 = add nuw nsw i64 %.sroa.019.029.i.i, 1 call void @llvm.lifetime.end.p0(ptr nonnull %5), !noalias !1612 - %exitcond.not.i.i = icmp eq i64 %46, %umax.i.i + %exitcond.not.i.i = icmp eq i64 %46, %23 br i1 %exitcond.not.i.i, label %.preheader28.i.i, label %35 ._crit_edge.i.i: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17hbadfba07b1fcb932E.exit27.i.i", %.preheader28.i.i @@ -60321,10 +60319,10 @@ declare void @llvm.experimental.noalias.scope.decl(metadata) #25 declare void @llvm.memset.p0.i64(ptr writeonly captures(none), i8, i64, i1 immarg) #26 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umax.i64(i64, i64) #24 +declare i64 @llvm.umin.i64(i64, i64) #24 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umin.i64(i64, i64) #24 +declare i64 @llvm.umax.i64(i64, i64) #24 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite) declare void @llvm.memmove.p0.p0.i64(ptr writeonly captures(none), ptr readonly captures(none), i64, i1 immarg) #27 diff --git a/bench/protobuf/optimized/descriptor.ll b/bench/protobuf/optimized/descriptor.ll index d6c2cbd4ed2..803a15a6db6 100644 --- a/bench/protobuf/optimized/descriptor.ll +++ b/bench/protobuf/optimized/descriptor.ll @@ -67997,22 +67997,22 @@ land.lhs.true.i: ; preds = %if.end.i for.body.lr.ph.i: ; preds = %land.lhs.true.i %add.ptr.i.i.i.i = getelementptr inbounds nuw i8, ptr %15, i64 256 + %22 = zext i8 %add12.i to i64 + %23 = zext nneg i32 %add18.i to i64 br label %for.body.i for.body.i: ; preds = %for.body.i, %for.body.lr.ph.i - %j.023.i = phi i8 [ %add12.i, %for.body.lr.ph.i ], [ %sub27.i, %for.body.i ] - %sub27.i = add i8 %j.023.i, -1 - %idxprom.i.i = zext i8 %sub27.i to i64 - %arrayidx.i19.i = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i, i64 %idxprom.i.i - %22 = load ptr, ptr %arrayidx.i19.i, align 8 - %idxprom.i.i.i.i11 = zext i8 %j.023.i to i64 - %arrayidx.i4.i.i.i12 = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i, i64 %idxprom.i.i.i.i11 - store ptr %22, ptr %arrayidx.i4.i.i.i12, align 8 - %add.ptr.i.i.i.i20.i = getelementptr i8, ptr %22, i64 8 - store i8 %j.023.i, ptr %add.ptr.i.i.i.i20.i, align 1 - %conv22.i = zext i8 %sub27.i to i32 - %cmp25.i = icmp samesign ult i32 %add18.i, %conv22.i - br i1 %cmp25.i, label %for.body.i, label %_ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsISt4pairIPKN6google8protobuf10DescriptorEiEPKNS6_15FieldDescriptorESt4lessISA_ESaIS4_IKSA_SD_EELi256ELb0EEEE13emplace_valueIJSH_EEEvhPSI_DpOT_.exit, !llvm.loop !1045 + %j.023.i = phi i64 [ %24, %for.body.i ], [ %22, %for.body.lr.ph.i ] + %sub27.i = add nsw i64 %j.023.i, -1 + %arrayidx.i19.i = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i, i64 %sub27.i + %25 = load ptr, ptr %arrayidx.i19.i, align 8 + %arrayidx.i4.i.i.i12 = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i, i64 %j.023.i + store ptr %25, ptr %arrayidx.i4.i.i.i12, align 8 + %arrayidx.i4.i.i.i12 = getelementptr i8, ptr %25, i64 8 + %26 = trunc nuw i64 %indvars.iv to i8 + store i8 %26, ptr %add.ptr.i.i.i.i20.i, align 1 + %cmp25.i.wide = icmp ugt i64 %24, %19 + br i1 %cmp25.i.wide, label %for.body.i, label %_ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsISt4pairIPKN6google8protobuf10DescriptorEiEPKNS6_15FieldDescriptorESt4lessISA_ESaIS4_IKSA_SD_EELi256ELb0EEEE13emplace_valueIJSH_EEEvhPSI_DpOT_.exit, !llvm.loop !1045 _ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsISt4pairIPKN6google8protobuf10DescriptorEiEPKNS6_15FieldDescriptorESt4lessISA_ESaIS4_IKSA_SD_EELi256ELb0EEEE13emplace_valueIJSH_EEEvhPSI_DpOT_.exit: ; preds = %for.body.i, %if.end.i, %land.lhs.true.i %size_ = getelementptr inbounds nuw i8, ptr %this, i64 16 @@ -68358,22 +68358,22 @@ land.lhs.true.i: ; preds = %if.end.i for.body.lr.ph.i: ; preds = %land.lhs.true.i %add.ptr.i.i.i.i35 = getelementptr inbounds nuw i8, ptr %6, i64 256 + %13 = zext i8 %add12.i to i64 + %14 = zext nneg i32 %add18.i to i64 br label %for.body.i36 for.body.i36: ; preds = %for.body.i36, %for.body.lr.ph.i - %j.023.i = phi i8 [ %add12.i, %for.body.lr.ph.i ], [ %sub27.i, %for.body.i36 ] - %sub27.i = add i8 %j.023.i, -1 - %idxprom.i.i = zext i8 %sub27.i to i64 - %arrayidx.i19.i = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i35, i64 %idxprom.i.i - %13 = load ptr, ptr %arrayidx.i19.i, align 8 - %idxprom.i.i.i.i = zext i8 %j.023.i to i64 - %arrayidx.i4.i.i.i = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i35, i64 %idxprom.i.i.i.i - store ptr %13, ptr %arrayidx.i4.i.i.i, align 8 - %add.ptr.i.i.i.i20.i = getelementptr i8, ptr %13, i64 8 - store i8 %j.023.i, ptr %add.ptr.i.i.i.i20.i, align 1 - %conv22.i = zext i8 %sub27.i to i32 - %cmp25.i = icmp samesign ult i32 %add18.i, %conv22.i - br i1 %cmp25.i, label %for.body.i36, label %_ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsISt4pairIPKN6google8protobuf10DescriptorEiEPKNS6_15FieldDescriptorESt4lessISA_ESaIS4_IKSA_SD_EELi256ELb0EEEE13emplace_valueIJPNS1_13map_slot_typeISA_SD_EEEEEvhPSI_DpOT_.exit, !llvm.loop !1046 + %j.023.i = phi i64 [ %15, %for.body.i36 ], [ %13, %for.body.lr.ph.i ] + %sub27.i = add nsw i64 %j.023.i, -1 + %arrayidx.i19.i = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i35, i64 %sub27.i + %16 = load ptr, ptr %arrayidx.i19.i, align 8 + %arrayidx.i4.i.i.i = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i35, i64 %j.023.i + store ptr %16, ptr %arrayidx.i4.i.i.i, align 8 + %arrayidx.i4.i.i.i = getelementptr i8, ptr %16, i64 8 + %17 = trunc nuw i64 %indvars.iv to i8 + store i8 %17, ptr %add.ptr.i.i.i.i20.i, align 1 + %cmp25.i.wide = icmp ugt i64 %15, %14 + br i1 %cmp25.i.wide, label %for.body.i36, label %_ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsISt4pairIPKN6google8protobuf10DescriptorEiEPKNS6_15FieldDescriptorESt4lessISA_ESaIS4_IKSA_SD_EELi256ELb0EEEE13emplace_valueIJPNS1_13map_slot_typeISA_SD_EEEEEvhPSI_DpOT_.exit, !llvm.loop !1046 _ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsISt4pairIPKN6google8protobuf10DescriptorEiEPKNS6_15FieldDescriptorESt4lessISA_ESaIS4_IKSA_SD_EELi256ELb0EEEE13emplace_valueIJPNS1_13map_slot_typeISA_SD_EEEEEvhPSI_DpOT_.exit: ; preds = %for.body.i36, %if.end.i, %land.lhs.true.i %14 = load ptr, ptr %this, align 8 diff --git a/bench/protobuf/optimized/enum.ll b/bench/protobuf/optimized/enum.ll index fdbe5d7527f..82c31e123e3 100644 --- a/bench/protobuf/optimized/enum.ll +++ b/bench/protobuf/optimized/enum.ll @@ -337,8 +337,6 @@ $_ZN4absl12lts_2023080218container_internal5btreeINS1_10map_paramsINSt7__cxx1112 $_ZN4absl12lts_2023080218container_internal5btreeINS1_10map_paramsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS9_ESaISt4pairIKS9_iEELi256ELb0EEEE18rebalance_or_splitEPNS1_14btree_iteratorINS1_10btree_nodeISG_EERSE_PSE_EE = comdat any -$_ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS9_ESaISt4pairIKS9_iEELi256ELb0EEEE13emplace_valueIJRPNS1_13map_slot_typeIS9_iEEEEEvhPSF_DpOT_ = comdat any - $_ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS9_ESaISt4pairIKS9_iEELi256ELb0EEEE23rebalance_right_to_leftEhPSH_PSF_ = comdat any $_ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS9_ESaISt4pairIKS9_iEELi256ELb0EEEE23rebalance_left_to_rightEhPSH_PSF_ = comdat any @@ -15392,7 +15390,81 @@ if.end18: ; preds = %_ZZN4absl12lts_2023 %15 = load ptr, ptr %iter, align 8 %16 = load i32, ptr %0, align 8 %conv21 = trunc i32 %16 to i8 - call void @_ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS9_ESaISt4pairIKS9_iEELi256ELb0EEEE13emplace_valueIJRPNS1_13map_slot_typeIS9_iEEEEEvhPSF_DpOT_(ptr noundef nonnull align 1 dereferenceable(1) %15, i8 noundef zeroext %conv21, ptr noundef nonnull %rightmost_.i, ptr noundef nonnull align 8 dereferenceable(8) %args) + %conv.i = and i32 %16, 255 + %arrayidx.i.i9 = getelementptr i8, ptr %15, i64 10 + %17 = load i8, ptr %arrayidx.i.i9, align 1 + %cmp.i10 = icmp ugt i8 %17, %conv21 + %conv9.i = zext nneg i32 %conv.i to i64 + br i1 %cmp.i10, label %if.then.i, label %if.end.i + +if.then.i: ; preds = %if.end18 + %add.ptr.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %15, i64 16 + %18 = getelementptr %"union.absl::lts_20230802::container_internal::map_slot_type.281", ptr %add.ptr.i.i.i.i.i, i64 %conv9.i + %narrow.i = sub nuw i8 %17, %conv21 + %conv6.i = zext i8 %narrow.i to i64 + %arrayidx.i.idx.i.i = mul nuw nsw i64 %conv6.i, 40 + %19 = getelementptr i8, ptr %18, i64 40 + %arrayidx.i8.i.i = getelementptr %"union.absl::lts_20230802::container_internal::map_slot_type.281", ptr %19, i64 %conv6.i + %arrayidx.i.i.i14 = getelementptr i8, ptr %18, i64 %arrayidx.i.idx.i.i + br label %for.body.i.i + +for.body.i.i: ; preds = %for.body.i.i, %if.then.i + %dest.011.i.i = phi ptr [ %add.ptr4.i.i, %for.body.i.i ], [ %arrayidx.i8.i.i, %if.then.i ] + %src.010.i.i = phi ptr [ %add.ptr5.i.i, %for.body.i.i ], [ %arrayidx.i.i.i14, %if.then.i ] + %add.ptr4.i.i = getelementptr inbounds i8, ptr %dest.011.i.i, i64 -40 + %add.ptr5.i.i = getelementptr inbounds i8, ptr %src.010.i.i, i64 -40 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(36) %add.ptr4.i.i, ptr noundef nonnull align 8 dereferenceable(36) %add.ptr5.i.i) #28 + %second.i.i.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %dest.011.i.i, i64 -8 + %second3.i.i.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %src.010.i.i, i64 -8 + %20 = load i32, ptr %second3.i.i.i.i.i.i.i.i.i, align 8 + store i32 %20, ptr %second.i.i.i.i.i.i.i.i.i, align 8 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(36) %add.ptr5.i.i) #28 + %cmp.not.i.i = icmp eq ptr %add.ptr5.i.i, %18 + br i1 %cmp.not.i.i, label %if.end.i, label %for.body.i.i, !llvm.loop !289 + +if.end.i: ; preds = %for.body.i.i, %if.end18 + %add.ptr.i.i.i.i13.i = getelementptr inbounds nuw i8, ptr %15, i64 16 + %arrayidx.i3.i.i = getelementptr inbounds nuw %"union.absl::lts_20230802::container_internal::map_slot_type.281", ptr %add.ptr.i.i.i.i13.i, i64 %conv9.i + %21 = load ptr, ptr %args, align 8 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(36) %arrayidx.i3.i.i, ptr noundef nonnull align 8 dereferenceable(36) %21) #28 + %second.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %arrayidx.i3.i.i, i64 32 + %second3.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %21, i64 32 + %22 = load i32, ptr %second3.i.i.i.i.i.i.i, align 8 + store i32 %22, ptr %second.i.i.i.i.i.i.i, align 8 + %23 = load i8, ptr %arrayidx.i.i9, align 1 + %add12.i = add i8 %23, 1 + store i8 %add12.i, ptr %arrayidx.i.i9, align 1 + %arrayidx.i.i16.i = getelementptr i8, ptr %15, i64 11 + %24 = load i8, ptr %arrayidx.i.i16.i, align 1 + %cmp.i.not.i.i11 = icmp eq i8 %24, 0 + br i1 %cmp.i.not.i.i11, label %land.lhs.true.i, label %_ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS9_ESaISt4pairIKS9_iEELi256ELb0EEEE13emplace_valueIJRPNS1_13map_slot_typeIS9_iEEEEEvhPSF_DpOT_.exit + +land.lhs.true.i: ; preds = %if.end.i + %conv16.i = zext i8 %add12.i to i32 + %add18.i = add nuw nsw i32 %conv.i, 1 + %cmp19.i = icmp samesign ult i32 %add18.i, %conv16.i + br i1 %cmp19.i, label %for.body.lr.ph.i, label %_ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS9_ESaISt4pairIKS9_iEELi256ELb0EEEE13emplace_valueIJRPNS1_13map_slot_typeIS9_iEEEEEvhPSF_DpOT_.exit + +for.body.lr.ph.i: ; preds = %land.lhs.true.i + %add.ptr.i.i.i.i = getelementptr inbounds nuw i8, ptr %15, i64 256 + %25 = zext i8 %add12.i to i64 + %26 = zext nneg i32 %add18.i to i64 + br label %for.body.i + +for.body.i: ; preds = %for.body.i, %for.body.lr.ph.i + %indvars.iv = phi i64 [ %27, %for.body.i ], [ %25, %for.body.lr.ph.i ] + %27 = add nsw i64 %indvars.iv, -1 + %arrayidx.i19.i = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i, i64 %27 + %28 = load ptr, ptr %arrayidx.i19.i, align 8 + %arrayidx.i4.i.i.i13 = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i, i64 %indvars.iv + store ptr %28, ptr %arrayidx.i4.i.i.i13, align 8 + %add.ptr.i.i.i.i20.i = getelementptr i8, ptr %28, i64 8 + %29 = trunc nuw i64 %indvars.iv to i8 + store i8 %29, ptr %add.ptr.i.i.i.i20.i, align 1 + %cmp25.i.wide = icmp ugt i64 %27, %26 + br i1 %cmp25.i.wide, label %for.body.i, label %_ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS9_ESaISt4pairIKS9_iEELi256ELb0EEEE13emplace_valueIJRPNS1_13map_slot_typeIS9_iEEEEEvhPSF_DpOT_.exit, !llvm.loop !290 + +_ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS9_ESaISt4pairIKS9_iEELi256ELb0EEEE13emplace_valueIJRPNS1_13map_slot_typeIS9_iEEEEEvhPSF_DpOT_.exit: ; preds = %for.body.i, %if.end.i, %land.lhs.true.i %size_ = getelementptr inbounds nuw i8, ptr %this, i64 16 %17 = load i64, ptr %size_, align 8 %inc22 = add i64 %17, 1 @@ -15620,87 +15692,6 @@ if.end152: ; preds = %if.end152.sink.spli ret void } -; Function Attrs: mustprogress uwtable -define linkonce_odr hidden void @_ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS9_ESaISt4pairIKS9_iEELi256ELb0EEEE13emplace_valueIJRPNS1_13map_slot_typeIS9_iEEEEEvhPSF_DpOT_(ptr noundef nonnull align 1 dereferenceable(1) %this, i8 noundef zeroext %i, ptr noundef %alloc, ptr noundef nonnull align 8 dereferenceable(8) %args) local_unnamed_addr #4 comdat align 2 { -entry: - %conv = zext i8 %i to i32 - %arrayidx.i = getelementptr i8, ptr %this, i64 10 - %0 = load i8, ptr %arrayidx.i, align 1 - %cmp = icmp ult i8 %i, %0 - %conv9 = zext i8 %i to i64 - br i1 %cmp, label %if.then, label %if.end - -if.then: ; preds = %entry - %add.ptr.i.i.i.i = getelementptr inbounds nuw i8, ptr %this, i64 16 - %1 = getelementptr %"union.absl::lts_20230802::container_internal::map_slot_type.281", ptr %add.ptr.i.i.i.i, i64 %conv9 - %narrow = sub nuw i8 %0, %i - %conv6 = zext i8 %narrow to i64 - %arrayidx.i.idx.i = mul nuw nsw i64 %conv6, 40 - %2 = getelementptr i8, ptr %1, i64 40 - %arrayidx.i8.i = getelementptr %"union.absl::lts_20230802::container_internal::map_slot_type.281", ptr %2, i64 %conv6 - %arrayidx.i.i = getelementptr i8, ptr %1, i64 %arrayidx.i.idx.i - br label %for.body.i - -for.body.i: ; preds = %for.body.i, %if.then - %dest.011.i = phi ptr [ %add.ptr4.i, %for.body.i ], [ %arrayidx.i8.i, %if.then ] - %src.010.i = phi ptr [ %add.ptr5.i, %for.body.i ], [ %arrayidx.i.i, %if.then ] - %add.ptr4.i = getelementptr inbounds i8, ptr %dest.011.i, i64 -40 - %add.ptr5.i = getelementptr inbounds i8, ptr %src.010.i, i64 -40 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(36) %add.ptr4.i, ptr noundef nonnull align 8 dereferenceable(36) %add.ptr5.i) #28 - %second.i.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %dest.011.i, i64 -8 - %second3.i.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %src.010.i, i64 -8 - %3 = load i32, ptr %second3.i.i.i.i.i.i.i.i, align 8 - store i32 %3, ptr %second.i.i.i.i.i.i.i.i, align 8 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(36) %add.ptr5.i) #28 - %cmp.not.i = icmp eq ptr %add.ptr5.i, %1 - br i1 %cmp.not.i, label %if.end, label %for.body.i, !llvm.loop !289 - -if.end: ; preds = %for.body.i, %entry - %add.ptr.i.i.i.i13 = getelementptr inbounds nuw i8, ptr %this, i64 16 - %arrayidx.i3.i = getelementptr inbounds nuw %"union.absl::lts_20230802::container_internal::map_slot_type.281", ptr %add.ptr.i.i.i.i13, i64 %conv9 - %4 = load ptr, ptr %args, align 8 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(36) %arrayidx.i3.i, ptr noundef nonnull align 8 dereferenceable(36) %4) #28 - %second.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %arrayidx.i3.i, i64 32 - %second3.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %4, i64 32 - %5 = load i32, ptr %second3.i.i.i.i.i.i, align 8 - store i32 %5, ptr %second.i.i.i.i.i.i, align 8 - %6 = load i8, ptr %arrayidx.i, align 1 - %add12 = add i8 %6, 1 - store i8 %add12, ptr %arrayidx.i, align 1 - %arrayidx.i.i16 = getelementptr i8, ptr %this, i64 11 - %7 = load i8, ptr %arrayidx.i.i16, align 1 - %cmp.i.not.i = icmp eq i8 %7, 0 - br i1 %cmp.i.not.i, label %land.lhs.true, label %if.end33 - -land.lhs.true: ; preds = %if.end - %conv16 = zext i8 %add12 to i32 - %add18 = add nuw nsw i32 %conv, 1 - %cmp19 = icmp samesign ult i32 %add18, %conv16 - br i1 %cmp19, label %for.body.lr.ph, label %if.end33 - -for.body.lr.ph: ; preds = %land.lhs.true - %add.ptr.i.i.i = getelementptr inbounds nuw i8, ptr %this, i64 256 - br label %for.body - -for.body: ; preds = %for.body.lr.ph, %for.body - %j.023 = phi i8 [ %add12, %for.body.lr.ph ], [ %sub27, %for.body ] - %sub27 = add i8 %j.023, -1 - %idxprom.i = zext i8 %sub27 to i64 - %arrayidx.i19 = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i, i64 %idxprom.i - %8 = load ptr, ptr %arrayidx.i19, align 8 - %idxprom.i.i.i = zext i8 %j.023 to i64 - %arrayidx.i4.i.i = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i, i64 %idxprom.i.i.i - store ptr %8, ptr %arrayidx.i4.i.i, align 8 - %add.ptr.i.i.i.i20 = getelementptr i8, ptr %8, i64 8 - store i8 %j.023, ptr %add.ptr.i.i.i.i20, align 1 - %conv22 = zext i8 %sub27 to i32 - %cmp25 = icmp samesign ult i32 %add18, %conv22 - br i1 %cmp25, label %for.body, label %if.end33, !llvm.loop !290 - -if.end33: ; preds = %for.body, %land.lhs.true, %if.end - ret void -} - ; Function Attrs: mustprogress uwtable define linkonce_odr hidden void @_ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS9_ESaISt4pairIKS9_iEELi256ELb0EEEE23rebalance_right_to_leftEhPSH_PSF_(ptr noundef nonnull align 1 dereferenceable(1) %this, i8 noundef zeroext %to_move, ptr noundef %right, ptr noundef %alloc) local_unnamed_addr #4 comdat align 2 { entry: @@ -16159,22 +16150,22 @@ land.lhs.true.i: ; preds = %if.end.i for.body.lr.ph.i: ; preds = %land.lhs.true.i %add.ptr.i.i.i.i35 = getelementptr inbounds nuw i8, ptr %7, i64 256 + %16 = zext i8 %add12.i to i64 + %17 = zext nneg i32 %add18.i to i64 br label %for.body.i36 for.body.i36: ; preds = %for.body.i36, %for.body.lr.ph.i - %j.023.i = phi i8 [ %add12.i, %for.body.lr.ph.i ], [ %sub27.i, %for.body.i36 ] - %sub27.i = add i8 %j.023.i, -1 - %idxprom.i.i = zext i8 %sub27.i to i64 - %arrayidx.i19.i = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i35, i64 %idxprom.i.i - %16 = load ptr, ptr %arrayidx.i19.i, align 8 - %idxprom.i.i.i.i = zext i8 %j.023.i to i64 - %arrayidx.i4.i.i.i = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i35, i64 %idxprom.i.i.i.i - store ptr %16, ptr %arrayidx.i4.i.i.i, align 8 - %add.ptr.i.i.i.i20.i = getelementptr i8, ptr %16, i64 8 - store i8 %j.023.i, ptr %add.ptr.i.i.i.i20.i, align 1 - %conv22.i = zext i8 %sub27.i to i32 - %cmp25.i = icmp samesign ult i32 %add18.i, %conv22.i - br i1 %cmp25.i, label %for.body.i36, label %_ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS9_ESaISt4pairIKS9_iEELi256ELb0EEEE13emplace_valueIJPNS1_13map_slot_typeIS9_iEEEEEvhPSF_DpOT_.exit, !llvm.loop !295 + %j.023.i = phi i64 [ %18, %for.body.i36 ], [ %16, %for.body.lr.ph.i ] + %sub27.i = add nsw i64 %j.023.i, -1 + %arrayidx.i19.i = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i35, i64 %sub27.i + %19 = load ptr, ptr %arrayidx.i19.i, align 8 + %arrayidx.i4.i.i.i = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i35, i64 %j.023.i + store ptr %19, ptr %arrayidx.i4.i.i.i, align 8 + %arrayidx.i4.i.i.i = getelementptr i8, ptr %19, i64 8 + %20 = trunc nuw i64 %indvars.iv to i8 + store i8 %20, ptr %add.ptr.i.i.i.i20.i, align 1 + %cmp25.i.wide = icmp ugt i64 %18, %17 + br i1 %cmp25.i.wide, label %for.body.i36, label %_ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS9_ESaISt4pairIKS9_iEELi256ELb0EEEE13emplace_valueIJPNS1_13map_slot_typeIS9_iEEEEEvhPSF_DpOT_.exit, !llvm.loop !295 _ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS9_ESaISt4pairIKS9_iEELi256ELb0EEEE13emplace_valueIJPNS1_13map_slot_typeIS9_iEEEEEvhPSF_DpOT_.exit: ; preds = %for.body.i36, %if.end.i, %land.lhs.true.i %17 = load i8, ptr %arrayidx.i24, align 1 diff --git a/bench/protobuf/optimized/map.ll b/bench/protobuf/optimized/map.ll index 4c54149237d..4ff9007be0a 100644 --- a/bench/protobuf/optimized/map.ll +++ b/bench/protobuf/optimized/map.ll @@ -3179,22 +3179,22 @@ land.lhs.true.i: ; preds = %if.end.i for.body.lr.ph.i: ; preds = %land.lhs.true.i %add.ptr.i.i.i.i = getelementptr inbounds nuw i8, ptr %15, i64 256 + %27 = zext i8 %add16.i to i64 + %28 = zext nneg i32 %add22.i to i64 br label %for.body.i for.body.i: ; preds = %for.body.i, %for.body.lr.ph.i - %j.023.i = phi i8 [ %add16.i, %for.body.lr.ph.i ], [ %sub31.i, %for.body.i ] - %sub31.i = add i8 %j.023.i, -1 - %idxprom.i.i = zext i8 %sub31.i to i64 - %arrayidx.i19.i = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i, i64 %idxprom.i.i - %27 = load ptr, ptr %arrayidx.i19.i, align 8 - %idxprom.i.i.i.i12 = zext i8 %j.023.i to i64 - %arrayidx.i4.i.i.i13 = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i, i64 %idxprom.i.i.i.i12 - store ptr %27, ptr %arrayidx.i4.i.i.i13, align 8 - %add.ptr.i.i.i.i20.i = getelementptr i8, ptr %27, i64 8 - store i8 %j.023.i, ptr %add.ptr.i.i.i.i20.i, align 1 - %conv26.i = zext i8 %sub31.i to i32 - %cmp29.i = icmp samesign ult i32 %add22.i, %conv26.i - br i1 %cmp29.i, label %for.body.i, label %_ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsIN6google8protobuf8internal10VariantKeyEPNS6_8NodeBaseESt4lessIS7_ENS6_12MapAllocatorISt4pairIKS7_S9_EEELi256ELb0EEEE13emplace_valueIJRKSt21piecewise_construct_tSt5tupleIJOS7_EESN_IJRS9_EEEEEvhPSG_DpOT_.exit, !llvm.loop !70 + %j.023.i = phi i64 [ %29, %for.body.i ], [ %27, %for.body.lr.ph.i ] + %sub31.i = add nsw i64 %j.023.i, -1 + %arrayidx.i19.i = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i, i64 %sub31.i + %30 = load ptr, ptr %arrayidx.i19.i, align 8 + %arrayidx.i4.i.i.i13 = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i, i64 %j.023.i + store ptr %30, ptr %arrayidx.i4.i.i.i13, align 8 + %arrayidx.i4.i.i.i13 = getelementptr i8, ptr %30, i64 8 + %31 = trunc nuw i64 %indvars.iv to i8 + store i8 %31, ptr %add.ptr.i.i.i.i20.i, align 1 + %cmp29.i.wide = icmp ugt i64 %29, %28 + br i1 %cmp29.i.wide, label %for.body.i, label %_ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsIN6google8protobuf8internal10VariantKeyEPNS6_8NodeBaseESt4lessIS7_ENS6_12MapAllocatorISt4pairIKS7_S9_EEELi256ELb0EEEE13emplace_valueIJRKSt21piecewise_construct_tSt5tupleIJOS7_EESN_IJRS9_EEEEEvhPSG_DpOT_.exit, !llvm.loop !70 _ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsIN6google8protobuf8internal10VariantKeyEPNS6_8NodeBaseESt4lessIS7_ENS6_12MapAllocatorISt4pairIKS7_S9_EEELi256ELb0EEEE13emplace_valueIJRKSt21piecewise_construct_tSt5tupleIJOS7_EESN_IJRS9_EEEEEvhPSG_DpOT_.exit: ; preds = %for.body.i, %if.end.i, %land.lhs.true.i %size_ = getelementptr inbounds nuw i8, ptr %this, i64 24 @@ -3590,22 +3590,22 @@ land.lhs.true.i: ; preds = %if.end.i for.body.lr.ph.i: ; preds = %land.lhs.true.i %add.ptr.i.i.i.i35 = getelementptr inbounds nuw i8, ptr %6, i64 256 + %13 = zext i8 %add12.i to i64 + %14 = zext nneg i32 %add18.i to i64 br label %for.body.i36 for.body.i36: ; preds = %for.body.i36, %for.body.lr.ph.i - %j.023.i = phi i8 [ %add12.i, %for.body.lr.ph.i ], [ %sub27.i, %for.body.i36 ] - %sub27.i = add i8 %j.023.i, -1 - %idxprom.i.i = zext i8 %sub27.i to i64 - %arrayidx.i19.i = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i35, i64 %idxprom.i.i - %13 = load ptr, ptr %arrayidx.i19.i, align 8 - %idxprom.i.i.i.i = zext i8 %j.023.i to i64 - %arrayidx.i4.i.i.i = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i35, i64 %idxprom.i.i.i.i - store ptr %13, ptr %arrayidx.i4.i.i.i, align 8 - %add.ptr.i.i.i.i20.i = getelementptr i8, ptr %13, i64 8 - store i8 %j.023.i, ptr %add.ptr.i.i.i.i20.i, align 1 - %conv22.i = zext i8 %sub27.i to i32 - %cmp25.i = icmp samesign ult i32 %add18.i, %conv22.i - br i1 %cmp25.i, label %for.body.i36, label %_ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsIN6google8protobuf8internal10VariantKeyEPNS6_8NodeBaseESt4lessIS7_ENS6_12MapAllocatorISt4pairIKS7_S9_EEELi256ELb0EEEE13emplace_valueIJPNS1_13map_slot_typeIS7_S9_EEEEEvhPSG_DpOT_.exit, !llvm.loop !71 + %j.023.i = phi i64 [ %15, %for.body.i36 ], [ %13, %for.body.lr.ph.i ] + %sub27.i = add nsw i64 %j.023.i, -1 + %arrayidx.i19.i = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i35, i64 %sub27.i + %16 = load ptr, ptr %arrayidx.i19.i, align 8 + %arrayidx.i4.i.i.i = getelementptr inbounds nuw ptr, ptr %add.ptr.i.i.i.i35, i64 %j.023.i + store ptr %16, ptr %arrayidx.i4.i.i.i, align 8 + %arrayidx.i4.i.i.i = getelementptr i8, ptr %16, i64 8 + %17 = trunc nuw i64 %indvars.iv to i8 + store i8 %17, ptr %add.ptr.i.i.i.i20.i, align 1 + %cmp25.i.wide = icmp ugt i64 %15, %14 + br i1 %cmp25.i.wide, label %for.body.i36, label %_ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsIN6google8protobuf8internal10VariantKeyEPNS6_8NodeBaseESt4lessIS7_ENS6_12MapAllocatorISt4pairIKS7_S9_EEELi256ELb0EEEE13emplace_valueIJPNS1_13map_slot_typeIS7_S9_EEEEEvhPSG_DpOT_.exit, !llvm.loop !71 _ZN4absl12lts_2023080218container_internal10btree_nodeINS1_10map_paramsIN6google8protobuf8internal10VariantKeyEPNS6_8NodeBaseESt4lessIS7_ENS6_12MapAllocatorISt4pairIKS7_S9_EEELi256ELb0EEEE13emplace_valueIJPNS1_13map_slot_typeIS7_S9_EEEEEvhPSG_DpOT_.exit: ; preds = %for.body.i36, %if.end.i, %land.lhs.true.i %14 = load ptr, ptr %this, align 8 diff --git a/bench/proxygen/optimized/ParseURL.ll b/bench/proxygen/optimized/ParseURL.ll index 1918c6966f4..3d25759e5a2 100644 --- a/bench/proxygen/optimized/ParseURL.ll +++ b/bench/proxygen/optimized/ParseURL.ll @@ -172,7 +172,7 @@ while.body10.i.i.i: ; preds = %while.cond8.i.i.i br i1 %cmp11.i.i.i, label %if.else126, label %while.cond8.i.i.i.backedge while.cond8.i.i.i.backedge: ; preds = %while.body10.i.i.i, %if.end28.i.i.i - %i.1.i.i.i.be = phi ptr [ %incdec.ptr.i.i.i, %while.body10.i.i.i ], [ %add.ptr29.i.i.i, %if.end28.i.i.i ] + %i.1.i.i.i.be = phi ptr [ %incdec.ptr.i.i.i, %while.body10.i.i.i ], [ %add.ptr29.i.i.i, %if.then17.i.i.i ] br label %while.cond8.i.i.i, !llvm.loop !4 for.cond.i.i.i: ; preds = %while.cond8.i.i.i, %if.end30.i.i.i diff --git a/bench/qemu/optimized/sdhci-cmd.ll b/bench/qemu/optimized/sdhci-cmd.ll index 10bb1c88edf..1389581135e 100644 --- a/bench/qemu/optimized/sdhci-cmd.ll +++ b/bench/qemu/optimized/sdhci-cmd.ll @@ -106,38 +106,35 @@ define dso_local void @sdhci_write_cmd(ptr noundef %0, i64 noundef %1, ptr nound %.01521.i = phi i64 [ %.1.lcssa.i, %._crit_edge.i ], [ 0, %5 ] %13 = sub nuw i64 %3, %.01521.i %14 = trunc i64 %13 to i32 + %spec.store.select.i = tail call i32 @llvm.smin.i32(i32 %14, i32 4) %15 = icmp sgt i32 %14, 0 br i1 %15, label %.lr.ph.preheader.i, label %._crit_edge.i -.lr.ph.preheader.i: ; preds = %.lr.ph23.i - %16 = tail call i32 @llvm.umin.i32(i32 %14, i32 4) - br label %.lr.ph.i - -.lr.ph.i: ; preds = %.lr.ph.i, %.lr.ph.preheader.i - %.019.i = phi i32 [ %24, %.lr.ph.i ], [ 0, %.lr.ph.preheader.i ] - %.01418.i = phi i32 [ %23, %.lr.ph.i ], [ 0, %.lr.ph.preheader.i ] - %.117.i = phi i64 [ %17, %.lr.ph.i ], [ %.01521.i, %.lr.ph.preheader.i ] - %17 = add i64 %.117.i, 1 - %18 = getelementptr inbounds nuw i8, ptr %2, i64 %.117.i - %19 = load i8, ptr %18, align 1 - %20 = sext i8 %19 to i32 - %21 = shl i32 %.019.i, 3 - %22 = shl i32 %20, %21 - %23 = or i32 %22, %.01418.i - %24 = add nuw nsw i32 %.019.i, 1 - %exitcond.not.i = icmp eq i32 %24, %16 - br i1 %exitcond.not.i, label %._crit_edge.i.loopexit, label %.lr.ph.i, !llvm.loop !7 - -._crit_edge.i.loopexit: ; preds = %.lr.ph.i - %25 = add nuw i64 %.01521.i, 1 - %26 = add nsw i32 %16, -1 - %27 = zext nneg i32 %26 to i64 - %28 = add i64 %25, %27 +.lr.ph.preheader.i: ; preds = %.lr.ph23.i, %.lr.ph.i + %.019.i = phi i32 [ %23, %.lr.ph.i ], [ 0, %.lr.ph23.i ] + %.01418.i = phi i32 [ %22, %.lr.ph.i ], [ 0, %.lr.ph23.i ] + %.117.i = phi i64 [ %16, %.lr.ph.i ], [ %.01521.i, %.lr.ph23.i ] + %16 = add i64 %.117.i, 1 + %17 = getelementptr inbounds nuw i8, ptr %2, i64 %.117.i + %18 = load i8, ptr %17, align 1 + %19 = sext i8 %18 to i32 + %20 = shl i32 %.019.i, 3 + %21 = shl i32 %19, %20 + %22 = or i32 %21, %.01418.i + %23 = add nuw nsw i32 %.019.i, 1 + %exitcond.not.i = icmp eq i32 %23, %spec.store.select.i + br i1 %exitcond.not.i, label %._crit_edge.loopexit.i, label %.lr.ph.i, !llvm.loop !7 + +._crit_edge.loopexit.i:; preds = %.lr.ph.i + %24 = add nuw i64 %.01521.i, 1 + %25 = add nsw i32 %spec.store.select.i, -1 + %26 = zext i32 %25 to i64 + %27 = add i64 %24, %26 br label %._crit_edge.i -._crit_edge.i: ; preds = %._crit_edge.i.loopexit, %.lr.ph23.i - %.1.lcssa.i = phi i64 [ %.01521.i, %.lr.ph23.i ], [ %28, %._crit_edge.i.loopexit ] - %.014.lcssa.i = phi i32 [ 0, %.lr.ph23.i ], [ %23, %._crit_edge.i.loopexit ] +._crit_edge.i: ; preds = %._crit_edge.loopexit.i, %.lr.ph23.i + %.1.lcssa.i = phi i64 [ %.01521.i, %.lr.ph23.i ], [ %27, %._crit_edge.loopexit.i ] + %.014.lcssa.i = phi i32 [ 0, %.lr.ph23.i ], [ %22, %._crit_edge.loopexit.i ] tail call void @qtest_writel(ptr noundef %0, i64 noundef %12, i32 noundef %.014.lcssa.i) #3 %29 = icmp ult i64 %.1.lcssa.i, %3 br i1 %29, label %.lr.ph23.i, label %write_fifo.exit, !llvm.loop !8 @@ -168,6 +165,9 @@ fill_block.exit: ; preds = %.lr.ph.i13, %write_ declare i32 @qtest_readl(ptr noundef, i64 noundef) local_unnamed_addr #1 +; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) +declare i32 @llvm.smin.i32(i32, i32) #2 + ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.umin.i32(i32, i32) #2 diff --git a/bench/quiche-rs/optimized/5mpaolm7cvr2o8dlnrbly6hk7.ll b/bench/quiche-rs/optimized/5mpaolm7cvr2o8dlnrbly6hk7.ll index cc14d5b089f..8a5feb9cb05 100644 --- a/bench/quiche-rs/optimized/5mpaolm7cvr2o8dlnrbly6hk7.ll +++ b/bench/quiche-rs/optimized/5mpaolm7cvr2o8dlnrbly6hk7.ll @@ -3381,15 +3381,13 @@ _ZN5alloc11collections5btree4node13move_to_slice17h0a1a96d95f4c54d1E.exit: ; pre 62: ; preds = %62, %55 %.sroa.0.06.i = phi i64 [ 0, %55 ], [ %63, %62 ] %63 = add nuw nsw i64 %.sroa.0.06.i, 1 - %64 = icmp samesign ult i64 %.sroa.0.06.i, 12 - tail call void @llvm.assume(i1 %64) - %65 = getelementptr inbounds nuw ptr, ptr %56, i64 %.sroa.0.06.i - %66 = load ptr, ptr %65, align 8, !noalias !660, !nonnull !3, !noundef !3 - %67 = getelementptr inbounds nuw i8, ptr %66, i64 704 - store ptr %10, ptr %67, align 8, !noalias !665 - %68 = trunc nuw nsw i64 %.sroa.0.06.i to i16 - %69 = getelementptr inbounds nuw i8, ptr %66, i64 800 - store i16 %68, ptr %69, align 8, !noalias !665 + %64 = getelementptr inbounds nuw ptr, ptr %56, i64 %.sroa.0.06.i + %65 = load ptr, ptr %64, align 8, !noalias !660, !nonnull !3, !noundef !3 + %65 = getelementptr inbounds nuw i8, ptr %65, i64 704 + store ptr %10, ptr %65, align 8, !noalias !665 + %67 = trunc nuw nsw i64 %.sroa.0.06.i to i16 + %68 = getelementptr inbounds nuw i8, ptr %65, i64 800 + store i16 %67, ptr %68, align 8, !noalias !665 %exitcond.not.i = icmp eq i64 %.sroa.0.06.i, %14 br i1 %exitcond.not.i, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17hdcbe5be9b1fdedf2E.exit", label %62 } @@ -3509,14 +3507,12 @@ _ZN5alloc11collections5btree4node13move_to_slice17h3bface03ef25dbdeE.exit203: ; 64: ; preds = %64, %57 %.sroa.0.06.i = phi i64 [ 0, %57 ], [ %65, %64 ] %65 = add nuw nsw i64 %.sroa.0.06.i, 1 - %66 = icmp samesign ult i64 %.sroa.0.06.i, 12 - tail call void @llvm.assume(i1 %66) - %67 = getelementptr inbounds nuw ptr, ptr %58, i64 %.sroa.0.06.i - %68 = load ptr, ptr %67, align 8, !noalias !689, !nonnull !3, !noundef !3 - store ptr %9, ptr %68, align 8, !noalias !694 - %69 = trunc nuw nsw i64 %.sroa.0.06.i to i16 - %70 = getelementptr inbounds nuw i8, ptr %68, i64 184 - store i16 %69, ptr %70, align 8, !noalias !694 + %66 = getelementptr inbounds nuw ptr, ptr %58, i64 %.sroa.0.06.i + %67 = load ptr, ptr %66, align 8, !noalias !689, !nonnull !3, !noundef !3 + store ptr %9, ptr %67, align 8, !noalias !694 + %68 = trunc nuw nsw i64 %.sroa.0.06.i to i16 + %69 = getelementptr inbounds nuw i8, ptr %67, i64 184 + store i16 %68, ptr %69, align 8, !noalias !694 %exitcond.not.i = icmp eq i64 %.sroa.0.06.i, %13 br i1 %exitcond.not.i, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17h963c4b9aae71151dE.exit", label %64 } @@ -3639,15 +3635,13 @@ _ZN5alloc11collections5btree4node13move_to_slice17h526f88cb8303a858E.exit: ; pre 63: ; preds = %63, %56 %.sroa.0.06.i = phi i64 [ 0, %56 ], [ %64, %63 ] %64 = add nuw nsw i64 %.sroa.0.06.i, 1 - %65 = icmp samesign ult i64 %.sroa.0.06.i, 12 - tail call void @llvm.assume(i1 %65) - %66 = getelementptr inbounds nuw ptr, ptr %57, i64 %.sroa.0.06.i - %67 = load ptr, ptr %66, align 8, !noalias !723, !nonnull !3, !noundef !3 - %68 = getelementptr inbounds nuw i8, ptr %67, i64 528 - store ptr %11, ptr %68, align 8, !noalias !728 - %69 = trunc nuw nsw i64 %.sroa.0.06.i to i16 - %70 = getelementptr inbounds nuw i8, ptr %67, i64 624 - store i16 %69, ptr %70, align 8, !noalias !728 + %65 = getelementptr inbounds nuw ptr, ptr %57, i64 %.sroa.0.06.i + %66 = load ptr, ptr %65, align 8, !noalias !723, !nonnull !3, !noundef !3 + %66 = getelementptr inbounds nuw i8, ptr %65, i64 528 + store ptr %11, ptr %66, align 8, !noalias !728 + %68 = trunc nuw nsw i64 %.sroa.0.06.i to i16 + %69 = getelementptr inbounds nuw i8, ptr %66, i64 624 + store i16 %68, ptr %69, align 8, !noalias !728 %exitcond.not.i = icmp eq i64 %.sroa.0.06.i, %15 br i1 %exitcond.not.i, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17hc9a805446893bf3bE.exit", label %63 } diff --git a/bench/quiche-rs/optimized/6ul87t4hcbwe4e6ac6zvtugwa.ll b/bench/quiche-rs/optimized/6ul87t4hcbwe4e6ac6zvtugwa.ll index e92c9b2582d..034a4d9291d 100644 --- a/bench/quiche-rs/optimized/6ul87t4hcbwe4e6ac6zvtugwa.ll +++ b/bench/quiche-rs/optimized/6ul87t4hcbwe4e6ac6zvtugwa.ll @@ -3465,15 +3465,13 @@ _ZN5alloc11collections5btree4node13move_to_slice17hb94d8f1a66703656E.exit: ; pre 63: ; preds = %63, %56 %.sroa.0.06.i = phi i64 [ 0, %56 ], [ %64, %63 ] %64 = add nuw nsw i64 %.sroa.0.06.i, 1 - %65 = icmp samesign ult i64 %.sroa.0.06.i, 12 - tail call void @llvm.assume(i1 %65) - %66 = getelementptr inbounds nuw ptr, ptr %57, i64 %.sroa.0.06.i - %67 = load ptr, ptr %66, align 8, !noalias !589, !nonnull !7, !noundef !7 - %68 = getelementptr inbounds nuw i8, ptr %67, i64 528 - store ptr %11, ptr %68, align 8, !noalias !594 - %69 = trunc nuw nsw i64 %.sroa.0.06.i to i16 - %70 = getelementptr inbounds nuw i8, ptr %67, i64 624 - store i16 %69, ptr %70, align 8, !noalias !594 + %65 = getelementptr inbounds nuw ptr, ptr %57, i64 %.sroa.0.06.i + %66 = load ptr, ptr %65, align 8, !noalias !589, !nonnull !7, !noundef !7 + %66 = getelementptr inbounds nuw i8, ptr %66, i64 528 + store ptr %11, ptr %66, align 8, !noalias !594 + %68 = trunc nuw nsw i64 %.sroa.0.06.i to i16 + %69 = getelementptr inbounds nuw i8, ptr %66, i64 624 + store i16 %68, ptr %69, align 8, !noalias !594 %exitcond.not.i = icmp eq i64 %.sroa.0.06.i, %15 br i1 %exitcond.not.i, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17hcea419a3ca5b32ccE.exit", label %63 } @@ -3602,15 +3600,13 @@ _ZN5alloc11collections5btree4node13move_to_slice17h78edb2d0759263b8E.exit: ; pre 68: ; preds = %68, %60 %.sroa.0.06.i = phi i64 [ 0, %60 ], [ %69, %68 ] %69 = add nuw nsw i64 %.sroa.0.06.i, 1 - %70 = icmp samesign ult i64 %.sroa.0.06.i, 12 - tail call void @llvm.assume(i1 %70) - %71 = getelementptr inbounds nuw ptr, ptr %61, i64 %.sroa.0.06.i - %72 = load ptr, ptr %71, align 8, !noalias !622, !nonnull !7, !noundef !7 - %73 = getelementptr inbounds nuw i8, ptr %72, i64 528 - store ptr %10, ptr %73, align 8, !noalias !627 - %74 = trunc nuw nsw i64 %.sroa.0.06.i to i16 - %75 = getelementptr inbounds nuw i8, ptr %72, i64 536 - store i16 %74, ptr %75, align 8, !noalias !627 + %70 = getelementptr inbounds nuw ptr, ptr %61, i64 %.sroa.0.06.i + %71 = load ptr, ptr %70, align 8, !noalias !622, !nonnull !7, !noundef !7 + %71 = getelementptr inbounds nuw i8, ptr %71, i64 528 + store ptr %10, ptr %71, align 8, !noalias !627 + %73 = trunc nuw nsw i64 %.sroa.0.06.i to i16 + %74 = getelementptr inbounds nuw i8, ptr %71, i64 536 + store i16 %73, ptr %74, align 8, !noalias !627 %exitcond.not.i = icmp eq i64 %.sroa.0.06.i, %14 br i1 %exitcond.not.i, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17ha3db24724b1e0be8E.exit", label %68 } diff --git a/bench/quickjs/optimized/libbf.ll b/bench/quickjs/optimized/libbf.ll index b98d237b104..763a70e4998 100644 --- a/bench/quickjs/optimized/libbf.ll +++ b/bench/quickjs/optimized/libbf.ll @@ -28370,7 +28370,6 @@ define internal fastcc void @ntt_to_limb(ptr noundef readonly captures(none) %0, %51 = icmp slt i32 %50, %6 %52 = zext i32 %39 to i64 %53 = trunc i32 %5 to i6 - %umax = tail call i32 @llvm.umax.i32(i32 %34, i32 1) %54 = lshr i32 %33, 6 %55 = zext nneg i32 %54 to i64 %56 = zext nneg i32 %34 to i64 @@ -28389,7 +28388,6 @@ define internal fastcc void @ntt_to_limb(ptr noundef readonly captures(none) %0, %wide.trip.count203 = zext i32 %6 to i64 %wide.trip.count222 = zext i32 %13 to i64 %66 = icmp sgt i32 %13, 0 - %wide.trip.count234 = zext nneg i32 %umax to i64 %wide.trip.count238 = zext i32 %59 to i64 %.phi.trans.insert = getelementptr inbounds nuw i64, ptr %8, i64 %55 br label %.preheader146 @@ -28608,7 +28606,7 @@ define internal fastcc void @ntt_to_limb(ptr noundef readonly captures(none) %0, put_bits.exit: ; preds = %158, %159, %162 %167 = add i64 %.0133176, 64 %indvars.iv.next232 = add nuw nsw i64 %indvars.iv231, 1 - %exitcond235.not = icmp eq i64 %indvars.iv.next232, %wide.trip.count234 + %exitcond235.not = icmp eq i64 %indvars.iv.next232, %41 br i1 %exitcond235.not, label %._crit_edge180, label %.lr.ph179, !llvm.loop !170 ._crit_edge180: ; preds = %put_bits.exit, %._crit_edge174 @@ -29203,9 +29201,6 @@ declare i64 @llvm.umin.i64(i64, i64) #20 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.umin.i32(i32, i32) #20 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umax.i32(i32, i32) #20 - ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i8 @llvm.umax.i8(i8, i8) #20 diff --git a/bench/quinn-rs/optimized/8ainv6dkvux55w82mlbamtdp2.ll b/bench/quinn-rs/optimized/8ainv6dkvux55w82mlbamtdp2.ll index 16140d440d3..81124b200ac 100644 --- a/bench/quinn-rs/optimized/8ainv6dkvux55w82mlbamtdp2.ll +++ b/bench/quinn-rs/optimized/8ainv6dkvux55w82mlbamtdp2.ll @@ -2268,14 +2268,12 @@ _ZN5alloc11collections5btree4node13move_to_slice17h9ad8ec6de7843a10E.exit: ; pre 66: ; preds = %66, %59 %.sroa.0.06.i = phi i64 [ 0, %59 ], [ %67, %66 ] %67 = add nuw nsw i64 %.sroa.0.06.i, 1 - %68 = icmp samesign ult i64 %.sroa.0.06.i, 12 - tail call void @llvm.assume(i1 %68) - %69 = getelementptr inbounds nuw ptr, ptr %60, i64 %.sroa.0.06.i - %70 = load ptr, ptr %69, align 8, !noalias !408, !nonnull !3, !noundef !3 - store ptr %11, ptr %70, align 8, !noalias !413 - %71 = trunc nuw nsw i64 %.sroa.0.06.i to i16 - %72 = getelementptr inbounds nuw i8, ptr %70, i64 1064 - store i16 %71, ptr %72, align 8, !noalias !413 + %68 = getelementptr inbounds nuw ptr, ptr %60, i64 %.sroa.0.06.i + %69 = load ptr, ptr %68, align 8, !noalias !408, !nonnull !3, !noundef !3 + store ptr %11, ptr %69, align 8, !noalias !413 + %70 = trunc nuw nsw i64 %.sroa.0.06.i to i16 + %71 = getelementptr inbounds nuw i8, ptr %69, i64 1064 + store i16 %70, ptr %71, align 8, !noalias !413 %exitcond.not.i = icmp eq i64 %.sroa.0.06.i, %15 br i1 %exitcond.not.i, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17hb5968fe41e0e7bfcE.exit", label %66 } @@ -2395,14 +2393,12 @@ _ZN5alloc11collections5btree4node13move_to_slice17h2378cbc079f881dbE.exit203: ; 64: ; preds = %64, %57 %.sroa.0.06.i = phi i64 [ 0, %57 ], [ %65, %64 ] %65 = add nuw nsw i64 %.sroa.0.06.i, 1 - %66 = icmp samesign ult i64 %.sroa.0.06.i, 12 - tail call void @llvm.assume(i1 %66) - %67 = getelementptr inbounds nuw ptr, ptr %58, i64 %.sroa.0.06.i - %68 = load ptr, ptr %67, align 8, !noalias !437, !nonnull !3, !noundef !3 - store ptr %9, ptr %68, align 8, !noalias !442 - %69 = trunc nuw nsw i64 %.sroa.0.06.i to i16 - %70 = getelementptr inbounds nuw i8, ptr %68, i64 184 - store i16 %69, ptr %70, align 8, !noalias !442 + %66 = getelementptr inbounds nuw ptr, ptr %58, i64 %.sroa.0.06.i + %67 = load ptr, ptr %66, align 8, !noalias !437, !nonnull !3, !noundef !3 + store ptr %9, ptr %67, align 8, !noalias !442 + %68 = trunc nuw nsw i64 %.sroa.0.06.i to i16 + %69 = getelementptr inbounds nuw i8, ptr %67, i64 184 + store i16 %68, ptr %69, align 8, !noalias !442 %exitcond.not.i = icmp eq i64 %.sroa.0.06.i, %13 br i1 %exitcond.not.i, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17h5fc788e170dce493E.exit", label %64 } diff --git a/bench/quinn-rs/optimized/em94uyxz0wp9gccfab963606p.ll b/bench/quinn-rs/optimized/em94uyxz0wp9gccfab963606p.ll index 56664d1a1e0..6f0449c2a38 100644 --- a/bench/quinn-rs/optimized/em94uyxz0wp9gccfab963606p.ll +++ b/bench/quinn-rs/optimized/em94uyxz0wp9gccfab963606p.ll @@ -4631,10 +4631,9 @@ define noundef zeroext i1 @_ZN11quinn_proto9range_set15array_range_set13ArrayRan ; Function Attrs: nonlazybind uwtable define void @_ZN11quinn_proto9range_set15array_range_set13ArrayRangeSet7pop_min17ha01941baa046b015E(ptr dead_on_unwind noalias noundef writable writeonly sret([24 x i8]) align 8 captures(none) dereferenceable(24) %0, ptr noalias noundef align 8 dereferenceable(48) %1) unnamed_addr #1 personality ptr @rust_eh_personality { - %3 = alloca [16 x i8], align 8 - %4 = load i64, ptr %1, align 8, !range !13, !noundef !3 - %5 = trunc nuw i64 %4 to i1 - br i1 %5, label %6, label %.thread + %3 = load i64, ptr %1, align 8, !range !13, !noundef !3 + %4 = trunc nuw i64 %3 to i1 + br i1 %4, label %5, label %.thread 6: ; preds = %2 %7 = getelementptr inbounds nuw i8, ptr %1, i64 24 @@ -4650,58 +4649,50 @@ define void @_ZN11quinn_proto9range_set15array_range_set13ArrayRangeSet7pop_min1 %13 = icmp eq i16 %12, 0 br i1 %13, label %14, label %.thread5 -14: ; preds = %.thread, %6, %32 - %storemerge = phi i64 [ 1, %32 ], [ 0, %6 ], [ 0, %.thread ] +14: ; preds = %.thread, %6, %29 + %storemerge = phi i64 [ 1, %29 ], [ 0, %5 ], [ 0, %.thread ] store i64 %storemerge, ptr %0, align 8 ret void 15: ; preds = %6 %16 = getelementptr inbounds nuw i8, ptr %1, i64 8 %17 = tail call { i64, i64 } @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$6remove17h03ac08bd636d4babE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %16, i64 noundef 0, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.dc71d0a5682d3db708e0e7797e95149f.163) - br label %32 + br label %29 .thread5: ; preds = %.thread tail call void @llvm.experimental.noalias.scope.decl(metadata !627) %18 = getelementptr inbounds nuw i8, ptr %1, i64 16 - %19 = zext i16 %12 to i64 - %20 = icmp ugt i16 %12, 2 - br i1 %20, label %21, label %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h8ecf2f929a490e68E.exit.i", !prof !17 + %18 = icmp ugt i16 %12, 2 + br i1 %18, label %19, label %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h8ecf2f929a490e68E.exit.i", !prof !17 21: ; preds = %.thread5 - tail call void @_ZN4core5slice5index24slice_end_index_len_fail17h295f890f9c88ef86E(i64 noundef %19, i64 noundef 2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.dc71d0a5682d3db708e0e7797e95149f.101) #22, !noalias !630 + %20 = zext i16 %11 to i64 + tail call void @_ZN4core5slice5index24slice_end_index_len_fail17h295f890f9c88ef86E(i64 noundef %20, i64 noundef 2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.dc71d0a5682d3db708e0e7797e95149f.101) #22, !noalias !630 unreachable "_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h8ecf2f929a490e68E.exit.i": ; preds = %.thread5 %22 = load i64, ptr %18, align 8, !alias.scope !627, !noundef !3 %23 = getelementptr inbounds nuw i8, ptr %1, i64 24 %24 = load i64, ptr %23, align 8, !alias.scope !627, !noundef !3 - %25 = add nsw i64 %19, -1 - %.not11.i = icmp eq i64 %25, 0 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %18, i8 0, i64 16, i1 false), !alias.scope !627 - br i1 %.not11.i, label %"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$6remove17h42c06d89c20f132cE.exit", label %.lr.ph.i.preheader - -.lr.ph.i.preheader: ; preds = %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h8ecf2f929a490e68E.exit.i", %.lr.ph.i.preheader - %.sroa.01.010.i = phi i64 [ %26, %.lr.ph.i.preheader ], [ 0, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h8ecf2f929a490e68E.exit.i" ] - %26 = add nuw nsw i64 %.sroa.01.010.i, 1 - %27 = getelementptr inbounds nuw { i64, i64 }, ptr %18, i64 %.sroa.01.010.i - %28 = getelementptr inbounds nuw { i64, i64 }, ptr %18, i64 %26 - call void @llvm.lifetime.start.p0(ptr nonnull %3) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 8 dereferenceable(16) %27, i64 16, i1 false) - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %27, ptr noundef nonnull align 8 dereferenceable(16) %28, i64 16, i1 false), !alias.scope !627 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull align 8 dereferenceable(16) %3, i64 16, i1 false) - call void @llvm.lifetime.end.p0(ptr nonnull %3) - %exitcond13.not.i = icmp eq i64 %26, %25 - br i1 %exitcond13.not.i, label %"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$6remove17h42c06d89c20f132cE.exit", label %.lr.ph.i.preheader - -"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$6remove17h42c06d89c20f132cE.exit": ; preds = %.lr.ph.i.preheader, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h8ecf2f929a490e68E.exit.i" - %29 = add nsw i16 %12, -1 - store i16 %29, ptr %11, align 8, !alias.scope !627 - %30 = insertvalue { i64, i64 } poison, i64 %22, 0 - %31 = insertvalue { i64, i64 } %30, i64 %24, 1 - br label %32 - -32: ; preds = %"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$6remove17h42c06d89c20f132cE.exit", %15 - %.pn = phi { i64, i64 } [ %17, %15 ], [ %31, %"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$6remove17h42c06d89c20f132cE.exit" ] + %24 = icmp eq i16 %11, 1 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %17, i8 0, i64 16, i1 false), !alias.scope !627 + br i1 %24, label %"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$6remove17h42c06d89c20f132cE.exit", label %"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$6remove17h42c06d89c20f132cE.exit.loopexit" + +"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$6remove17h42c06d89c20f132cE.exit.loopexit": ; preds = %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h8ecf2f929a490e68E.exit.i" + %25 = getelementptr inbounds nuw i8, ptr %1, i64 32 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 8 dereferenceable(16) %25, i64 16, i1 false), !alias.scope !627 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %25, i8 0, i64 16, i1 false) + br label %"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$6remove17h42c06d89c20f132cE.exit" + +"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$6remove17h42c06d89c20f132cE.exit":; preds = %"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$6remove17h42c06d89c20f132cE.exit.loopexit", %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h8ecf2f929a490e68E.exit.i" + %26 = add nsw i16 %11, -1 + store i16 %26, ptr %10, align 8, !alias.scope !627 + %27 = insertvalue { i64, i64 } poison, i64 %21, 0 + %28 = insertvalue { i64, i64 } %27, i64 %23, 1 + br label %29 + +29: ; preds = %"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$6remove17h42c06d89c20f132cE.exit", %14 + %.pn = phi { i64, i64 } [ %16, %14 ], [ %28, %"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$6remove17h42c06d89c20f132cE.exit" ] %.sroa.0.0 = extractvalue { i64, i64 } %.pn, 0 %.sroa.5.0 = extractvalue { i64, i64 } %.pn, 1 %33 = getelementptr inbounds nuw i8, ptr %0, i64 8 diff --git a/bench/rocksdb/optimized/xxhash.ll b/bench/rocksdb/optimized/xxhash.ll index 38e0697d3ca..0964e84eeda 100644 --- a/bench/rocksdb/optimized/xxhash.ll +++ b/bench/rocksdb/optimized/xxhash.ll @@ -1237,12 +1237,12 @@ define internal fastcc noundef i64 @_ZL25XXH3_hashLong_64b_defaultPKvmmPKhm(ptr call void @llvm.lifetime.start.p0(ptr nonnull %3) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 64 dereferenceable(64) %3, ptr noundef nonnull align 64 dereferenceable(64) @__const._ZL27XXH3_hashLong_128b_internalPKvmPKhmPFvPmS2_S2_mEPFvPvS0_E.acc, i64 64, i1 false) %4 = add i64 %1, -1 + %5 = lshr i64 %4, 10 %.promoted3 = load <8 x i64>, ptr %3, align 64 %.not = icmp ult i64 %4, 1024 br i1 %.not, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %2 - %5 = lshr i64 %4, 10 %6 = load <16 x i32>, ptr getelementptr inbounds nuw (i8, ptr @_ZL12XXH3_kSecret, i64 128), align 64, !tbaa !12 br label %7 @@ -2144,12 +2144,12 @@ define internal fastcc noundef i64 @_ZL26XXH3_hashLong_64b_withSeedPKvmmPKhm(ptr call void @llvm.lifetime.start.p0(ptr nonnull %4) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 64 dereferenceable(64) %4, ptr noundef nonnull align 64 dereferenceable(64) @__const._ZL27XXH3_hashLong_128b_internalPKvmPKhmPFvPmS2_S2_mEPFvPvS0_E.acc, i64 64, i1 false) %9 = add i64 %1, -1 + %10 = lshr i64 %9, 10 %.promoted17 = load <8 x i64>, ptr %4, align 64 %.not32 = icmp ult i64 %9, 1024 br i1 %.not32, label %._crit_edge23, label %.lr.ph22 .lr.ph22: ; preds = %8 - %10 = lshr i64 %9, 10 %11 = load <16 x i32>, ptr getelementptr inbounds nuw (i8, ptr @_ZL12XXH3_kSecret, i64 128), align 64, !tbaa !12 br label %12 @@ -2305,12 +2305,12 @@ _ZL28XXH3_initCustomSecret_avx512Pvm.exit.i: ; preds = %104 call void @llvm.lifetime.start.p0(ptr nonnull %5) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 64 dereferenceable(64) %5, ptr noundef nonnull align 64 dereferenceable(64) @__const._ZL27XXH3_hashLong_128b_internalPKvmPKhmPFvPmS2_S2_mEPFvPvS0_E.acc, i64 64, i1 false) %109 = add i64 %1, -1 + %110 = lshr i64 %109, 10 %.promoted5 = load <8 x i64>, ptr %5, align 64 %.not = icmp ult i64 %109, 1024 br i1 %.not, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %_ZL28XXH3_initCustomSecret_avx512Pvm.exit.i - %110 = lshr i64 %109, 10 %111 = getelementptr inbounds nuw i8, ptr %6, i64 128 %112 = load <16 x i32>, ptr %111, align 64, !tbaa !12 br label %113 @@ -4288,12 +4288,12 @@ define internal fastcc { i64, i64 } @_ZL26XXH3_hashLong_128b_defaultPKvmmS0_m(pt call void @llvm.lifetime.start.p0(ptr nonnull %3) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 64 dereferenceable(64) %3, ptr noundef nonnull align 64 dereferenceable(64) @__const._ZL27XXH3_hashLong_128b_internalPKvmPKhmPFvPmS2_S2_mEPFvPvS0_E.acc, i64 64, i1 false) %4 = add i64 %1, -1 + %5 = lshr i64 %4, 10 %.promoted4 = load <8 x i64>, ptr %3, align 64 %.not = icmp ult i64 %4, 1024 br i1 %.not, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %2 - %5 = lshr i64 %4, 10 %6 = load <16 x i32>, ptr getelementptr inbounds nuw (i8, ptr @_ZL12XXH3_kSecret, i64 128), align 64, !tbaa !12 br label %7 @@ -5480,12 +5480,12 @@ define internal fastcc { i64, i64 } @_ZL27XXH3_hashLong_128b_withSeedPKvmmS0_m(p call void @llvm.lifetime.start.p0(ptr nonnull %4) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 64 dereferenceable(64) %4, ptr noundef nonnull align 64 dereferenceable(64) @__const._ZL27XXH3_hashLong_128b_internalPKvmPKhmPFvPmS2_S2_mEPFvPvS0_E.acc, i64 64, i1 false) %9 = add i64 %1, -1 + %10 = lshr i64 %9, 10 %.promoted21 = load <8 x i64>, ptr %4, align 64 %.not36 = icmp ult i64 %9, 1024 br i1 %.not36, label %._crit_edge27, label %.lr.ph26 .lr.ph26: ; preds = %8 - %10 = lshr i64 %9, 10 %11 = load <16 x i32>, ptr getelementptr inbounds nuw (i8, ptr @_ZL12XXH3_kSecret, i64 128), align 64, !tbaa !12 br label %12 @@ -5676,12 +5676,12 @@ _ZL28XXH3_initCustomSecret_avx512Pvm.exit.i: ; preds = %128 call void @llvm.lifetime.start.p0(ptr nonnull %5) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 64 dereferenceable(64) %5, ptr noundef nonnull align 64 dereferenceable(64) @__const._ZL27XXH3_hashLong_128b_internalPKvmPKhmPFvPmS2_S2_mEPFvPvS0_E.acc, i64 64, i1 false) %133 = add i64 %1, -1 + %134 = lshr i64 %133, 10 %.promoted9 = load <8 x i64>, ptr %5, align 64 %.not = icmp ult i64 %133, 1024 br i1 %.not, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %_ZL28XXH3_initCustomSecret_avx512Pvm.exit.i - %134 = lshr i64 %133, 10 %135 = getelementptr inbounds nuw i8, ptr %6, i64 128 %136 = load <16 x i32>, ptr %135, align 64, !tbaa !12 br label %137 diff --git a/bench/ropey-rs/optimized/5d7dflnnetgxg8sm.ll b/bench/ropey-rs/optimized/5d7dflnnetgxg8sm.ll index f08cd3e9ba8..3a4835c5343 100644 --- a/bench/ropey-rs/optimized/5d7dflnnetgxg8sm.ll +++ b/bench/ropey-rs/optimized/5d7dflnnetgxg8sm.ll @@ -1997,7 +1997,7 @@ _ZN5ropey4crlf13seam_is_break17h48cff3d53ddc0d5bE.exit.thread: ; preds = %18, %_ br label %.lr.ph _ZN5ropey4crlf8is_break17hbb99524973515bbeE.exit.thread: ; preds = %54, %_ZN5ropey4crlf8is_break17hbb99524973515bbeE.exit.backedge, %_ZN5ropey4crlf13seam_is_break17h48cff3d53ddc0d5bE.exit.thread - %.sroa.05.0 = phi i64 [ 0, %_ZN5ropey4crlf13seam_is_break17h48cff3d53ddc0d5bE.exit.thread ], [ %.sroa.05.184, %54 ], [ %.sroa.05.1, %_ZN5ropey4crlf8is_break17hbb99524973515bbeE.exit.backedge ] + %.sroa.05.0 = phi i64 [ 0, %_ZN5ropey4crlf13seam_is_break17h48cff3d53ddc0d5bE.exit.thread ], [ %.sroa.05.184, %54 ], [ 0, %_ZN5ropey4crlf8is_break17hbb99524973515bbeE.exit.backedge ] %41 = getelementptr inbounds nuw i8, ptr %0, i64 8 %42 = load i64, ptr %41, align 8 %.sink7.i.i33 = select i1 %5, i64 %42, i64 %4 @@ -2038,9 +2038,7 @@ _ZN5ropey4crlf8is_break17hbb99524973515bbeE.exit.thread: ; preds = %54, %_ZN5rop _ZN5ropey4crlf8is_break17hbb99524973515bbeE.exit.backedge: ; preds = %54, %49 %.sroa.05.1 = add i64 %.sroa.05.184, -1 %60 = icmp eq i64 %.sroa.05.1, 0 - %61 = icmp eq i64 %.sroa.05.1, %.sink7.i.i30 - %or.cond.i = or i1 %60, %61 - br i1 %or.cond.i, label %_ZN5ropey4crlf8is_break17hbb99524973515bbeE.exit.thread, label %.lr.ph + br i1 %60, label %_ZN5ropey4crlf8is_break17hbb99524973515bbeE.exit.thread, label %.lr.ph _ZN5ropey4crlf8is_break17hbb99524973515bbeE.exit41.thread: ; preds = %_ZN5ropey4crlf8is_break17hbb99524973515bbeE.exit41, %_ZN5ropey4crlf8is_break17hbb99524973515bbeE.exit41.thread74, %_ZN5ropey4crlf8is_break17hbb99524973515bbeE.exit.thread %.sroa.0.0 = phi i64 [ %.sink7.i.i36, %_ZN5ropey4crlf8is_break17hbb99524973515bbeE.exit.thread ], [ %.sroa.0.186, %_ZN5ropey4crlf8is_break17hbb99524973515bbeE.exit41 ], [ %.sink7.i.i36, %_ZN5ropey4crlf8is_break17hbb99524973515bbeE.exit41.thread74 ] @@ -2095,7 +2093,7 @@ _ZN5ropey4crlf8is_break17hbb99524973515bbeE.exit41.thread74: ; preds = %64, %_ZN br i1 %82, label %83, label %77 83: ; preds = %"_ZN76_$LT$ropey..tree..node_text..NodeText$u20$as$u20$core..ops..deref..Deref$GT$5deref17h1a060fa94bb6231eE.exit44", %77, %75 - %.sroa.05.2 = phi i64 [ %62, %77 ], [ %.sroa.05.0, %75 ], [ %.sroa.05.0, %"_ZN76_$LT$ropey..tree..node_text..NodeText$u20$as$u20$core..ops..deref..Deref$GT$5deref17h1a060fa94bb6231eE.exit44" ] + %.sroa.05.2 = phi i64 [ %62, %76 ], [ %.sroa.05.0, %74 ], [ %.sroa.05.0, %"_ZN76_$LT$ropey..tree..node_text..NodeText$u20$as$u20$core..ops..deref..Deref$GT$5deref17h1a060fa94bb6231eE.exit44" ] br i1 %5, label %"_ZN76_$LT$ropey..tree..node_text..NodeText$u20$as$u20$core..ops..deref..Deref$GT$5deref17h1a060fa94bb6231eE.exit50", label %"_ZN76_$LT$ropey..tree..node_text..NodeText$u20$as$u20$core..ops..deref..Deref$GT$5deref17h1a060fa94bb6231eE.exit50.thread" "_ZN76_$LT$ropey..tree..node_text..NodeText$u20$as$u20$core..ops..deref..Deref$GT$5deref17h1a060fa94bb6231eE.exit50": ; preds = %83 @@ -2154,8 +2152,8 @@ _ZN5ropey4crlf8is_break17hbb99524973515bbeE.exit41.thread74: ; preds = %64, %_ZN br label %"_ZN76_$LT$ropey..tree..node_text..NodeText$u20$as$u20$core..ops..deref..Deref$GT$5deref17h1a060fa94bb6231eE.exit59" "_ZN76_$LT$ropey..tree..node_text..NodeText$u20$as$u20$core..ops..deref..Deref$GT$5deref17h1a060fa94bb6231eE.exit59": ; preds = %102, %105 - %.sink8.i.i57 = phi ptr [ %104, %102 ], [ %106, %105 ] - %.sink7.i.i58 = phi i64 [ %85, %102 ], [ %4, %105 ] + %.sink8.i.i57 = phi ptr [ %104, %101 ], [ %106, %104 ] + %.sink7.i.i58 = phi i64 [ %85, %101 ], [ %4, %104 ] %107 = icmp eq i64 %.sroa.05.2, 0 br i1 %107, label %"_ZN8smallvec17SmallVec$LT$A$GT$6triple17h2f30d8a9bb127a1cE.llvm.8018463459433534105.exit.i", label %108 diff --git a/bench/tls-rs/optimized/49b6dhrgmsskmdw3.ll b/bench/tls-rs/optimized/49b6dhrgmsskmdw3.ll index 7d9af0335c9..0795110f690 100644 --- a/bench/tls-rs/optimized/49b6dhrgmsskmdw3.ll +++ b/bench/tls-rs/optimized/49b6dhrgmsskmdw3.ll @@ -2086,7 +2086,7 @@ _ZN4core5slice4sort15partition_equal17h58e820ca42be4d39E.exit: ; preds = %320 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h84b01bd8598569b4E.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17h73e9b05c147a3c8cE.exit.i %.sroa.01.03.i = phi i64 [ %343, %_ZN4core5slice4sort11insert_tail17h73e9b05c147a3c8cE.exit.i ], [ 1, %.outer._crit_edge ] - %343 = add nuw nsw i64 %.sroa.01.03.i, 1 + %343 = add nuw i64 %.sroa.01.03.i, 1 %344 = getelementptr { i32, i16 }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %345 = getelementptr i8, ptr %344, i64 -8 %.val13.i.i = load i32, ptr %344, align 4, !alias.scope !227, !noundef !9 @@ -2104,7 +2104,7 @@ _ZN4core5slice4sort15partition_equal17h58e820ca42be4d39E.exit: ; preds = %320 351: ; preds = %"_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h84b01bd8598569b4E.exit.i" %352 = load i64, ptr %345, align 4, !alias.scope !227 store i64 %352, ptr %344, align 4, !alias.scope !227 - %353 = add nsw i64 %.sroa.01.03.i, -1 + %353 = add i64 %.sroa.01.03.i, -1 %.not16.i.i = icmp eq i64 %353, 0 br i1 %.not16.i.i, label %.thread.i.i61, label %.lr.ph.i.i60 @@ -2120,7 +2120,7 @@ _ZN4core5slice4sort15partition_equal17h58e820ca42be4d39E.exit: ; preds = %320 .lr.ph.i.i60: ; preds = %351, %360 %.sroa.4.018.i.i = phi i64 [ %354, %360 ], [ %353, %351 ] %.sroa.5.017.i.i = phi ptr [ %355, %360 ], [ %345, %351 ] - %354 = add nsw i64 %.sroa.4.018.i.i, -1 + %354 = add i64 %.sroa.4.018.i.i, -1 %355 = getelementptr inbounds { i32, i16 }, ptr %.sroa.0.0.lcssa, i64 %354 %.val11.i.i = load i32, ptr %355, align 4, !alias.scope !227, !noundef !9 %356 = getelementptr i8, ptr %355, i64 4 @@ -2950,7 +2950,7 @@ _ZN4core5slice4sort15partition_equal17h8b3f24383383a327E.exit: ; preds = %319 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hb1083002712ec7b9E.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17h84dc9f78b220b947E.exit.i %.sroa.01.03.i = phi i64 [ %342, %_ZN4core5slice4sort11insert_tail17h84dc9f78b220b947E.exit.i ], [ 1, %.outer._crit_edge ] - %342 = add nuw nsw i64 %.sroa.01.03.i, 1 + %342 = add nuw i64 %.sroa.01.03.i, 1 %343 = getelementptr { i32, i32 }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %344 = getelementptr i8, ptr %343, i64 -8 %.val13.i.i = load i64, ptr %343, align 4, !alias.scope !357 @@ -2969,7 +2969,7 @@ _ZN4core5slice4sort15partition_equal17h8b3f24383383a327E.exit: ; preds = %319 352: ; preds = %"_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hb1083002712ec7b9E.exit.i" %353 = load i64, ptr %344, align 4, !alias.scope !360 store i64 %353, ptr %343, align 4, !alias.scope !360 - %354 = add nsw i64 %.sroa.01.03.i, -1 + %354 = add i64 %.sroa.01.03.i, -1 %.not12.i.i = icmp eq i64 %354, 0 br i1 %.not12.i.i, label %.thread.i.i59, label %.lr.ph.i.i58 @@ -2981,7 +2981,7 @@ _ZN4core5slice4sort15partition_equal17h8b3f24383383a327E.exit: ; preds = %319 .lr.ph.i.i58: ; preds = %352, %361 %.sroa.4.014.i.i = phi i64 [ %355, %361 ], [ %354, %352 ] %.sroa.5.013.i.i = phi ptr [ %356, %361 ], [ %344, %352 ] - %355 = add nsw i64 %.sroa.4.014.i.i, -1 + %355 = add i64 %.sroa.4.014.i.i, -1 %356 = getelementptr inbounds { i32, i32 }, ptr %.sroa.0.0.lcssa, i64 %355 %.val11.i.i = load i32, ptr %356, align 4, !alias.scope !360, !noundef !9 %357 = getelementptr i8, ptr %356, i64 4 @@ -3830,7 +3830,7 @@ _ZN4core5slice4sort15partition_equal17hae26f565b3e65c8fE.exit: ; preds = %320 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h2bcc076e1f4d0536E.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17hf8ec5566d0653cf5E.exit.i %.sroa.01.03.i = phi i64 [ %343, %_ZN4core5slice4sort11insert_tail17hf8ec5566d0653cf5E.exit.i ], [ 1, %.outer._crit_edge ] - %343 = add nuw nsw i64 %.sroa.01.03.i, 1 + %343 = add nuw i64 %.sroa.01.03.i, 1 %344 = getelementptr { i32, i8 }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %345 = getelementptr i8, ptr %344, i64 -8 %.val13.i.i = load i32, ptr %344, align 4, !alias.scope !488, !noundef !9 @@ -3848,7 +3848,7 @@ _ZN4core5slice4sort15partition_equal17hae26f565b3e65c8fE.exit: ; preds = %320 351: ; preds = %"_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h2bcc076e1f4d0536E.exit.i" %352 = load i64, ptr %345, align 4, !alias.scope !488 store i64 %352, ptr %344, align 4, !alias.scope !488 - %353 = add nsw i64 %.sroa.01.03.i, -1 + %353 = add i64 %.sroa.01.03.i, -1 %.not17.i.i = icmp eq i64 %353, 0 br i1 %.not17.i.i, label %.thread.i.i61, label %.lr.ph.i.i60 @@ -3864,7 +3864,7 @@ _ZN4core5slice4sort15partition_equal17hae26f565b3e65c8fE.exit: ; preds = %320 .lr.ph.i.i60: ; preds = %351, %360 %.sroa.4.019.i.i = phi i64 [ %354, %360 ], [ %353, %351 ] %.sroa.5.018.i.i = phi ptr [ %355, %360 ], [ %345, %351 ] - %354 = add nsw i64 %.sroa.4.019.i.i, -1 + %354 = add i64 %.sroa.4.019.i.i, -1 %355 = getelementptr inbounds { i32, i8 }, ptr %.sroa.0.0.lcssa, i64 %354 %.val11.i.i = load i32, ptr %355, align 4, !alias.scope !488, !noundef !9 %356 = getelementptr i8, ptr %355, i64 4 @@ -4704,7 +4704,7 @@ _ZN4core5slice4sort15partition_equal17h829ad977d6837f06E.exit: ; preds = %311 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h7de64603959d6635E.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17h6366f1292d47c278E.exit.i %.sroa.01.03.i = phi i64 [ %332, %_ZN4core5slice4sort11insert_tail17h6366f1292d47c278E.exit.i ], [ 1, %.outer._crit_edge ] - %332 = add nuw nsw i64 %.sroa.01.03.i, 1 + %332 = add nuw i64 %.sroa.01.03.i, 1 %333 = getelementptr { i32, i64 }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %334 = getelementptr i8, ptr %333, i64 -16 %.val13.i.i = load i32, ptr %333, align 4, !alias.scope !618, !noundef !9 @@ -4721,7 +4721,7 @@ _ZN4core5slice4sort15partition_equal17h829ad977d6837f06E.exit: ; preds = %311 340: ; preds = %"_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h7de64603959d6635E.exit.i" call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %333, ptr noundef nonnull align 8 dereferenceable(16) %334, i64 16, i1 false), !alias.scope !618 - %341 = add nsw i64 %.sroa.01.03.i, -1 + %341 = add i64 %.sroa.01.03.i, -1 %.not9.i.i = icmp eq i64 %341, 0 br i1 %.not9.i.i, label %.thread.i.i59, label %.lr.ph.i.i58 @@ -4735,7 +4735,7 @@ _ZN4core5slice4sort15partition_equal17h829ad977d6837f06E.exit: ; preds = %311 .lr.ph.i.i58: ; preds = %340, %348 %.sroa.4.011.i.i = phi i64 [ %342, %348 ], [ %341, %340 ] %.sroa.5.010.i.i = phi ptr [ %343, %348 ], [ %334, %340 ] - %342 = add nsw i64 %.sroa.4.011.i.i, -1 + %342 = add i64 %.sroa.4.011.i.i, -1 %343 = getelementptr inbounds { i32, i64 }, ptr %.sroa.0.0.lcssa, i64 %342 %.val11.i.i = load i32, ptr %343, align 4, !alias.scope !618, !noundef !9 %344 = getelementptr i8, ptr %343, i64 8 diff --git a/bench/tree-sitter-rs/optimized/22d6a9i5y5n3b962.ll b/bench/tree-sitter-rs/optimized/22d6a9i5y5n3b962.ll index 7393655b195..962d18ef279 100644 --- a/bench/tree-sitter-rs/optimized/22d6a9i5y5n3b962.ll +++ b/bench/tree-sitter-rs/optimized/22d6a9i5y5n3b962.ll @@ -15015,7 +15015,7 @@ _ZN4core5slice4sort15partition_equal17hb17bc10d39247afbE.exit: ; preds = %266 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17haed4680e454a16bdE.exit.i": ; preds = %.preheader.i, %_ZN4core5slice4sort11insert_tail17h9993fa740a808ec0E.exit.i %.sroa.01.04.i = phi i64 [ %289, %_ZN4core5slice4sort11insert_tail17h9993fa740a808ec0E.exit.i ], [ 1, %.preheader.i ] - %289 = add nuw nsw i64 %.sroa.01.04.i, 1 + %289 = add nuw i64 %.sroa.01.04.i, 1 call void @llvm.experimental.noalias.scope.decl(metadata !3036) %290 = getelementptr ptr, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.04.i %291 = getelementptr i8, ptr %290, i64 -8 @@ -15028,7 +15028,7 @@ _ZN4core5slice4sort15partition_equal17hb17bc10d39247afbE.exit: ; preds = %266 294: ; preds = %"_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17haed4680e454a16bdE.exit.i" %295 = ptrtoint ptr %.val12.i.i to i64 store i64 %295, ptr %290, align 8, !alias.scope !3039 - %296 = add nsw i64 %.sroa.01.04.i, -1 + %296 = add i64 %.sroa.01.04.i, -1 %.not7.i.i = icmp eq i64 %296, 0 br i1 %.not7.i.i, label %.thread.i.i60, label %.lr.ph.i.i59 @@ -15041,7 +15041,7 @@ _ZN4core5slice4sort15partition_equal17hb17bc10d39247afbE.exit: ; preds = %266 .lr.ph.i.i59: ; preds = %294, %304 %.sroa.4.09.i.i = phi i64 [ %298, %304 ], [ %296, %294 ] %.sroa.5.08.i.i = phi ptr [ %299, %304 ], [ %291, %294 ] - %298 = add nsw i64 %.sroa.4.09.i.i, -1 + %298 = add i64 %.sroa.4.09.i.i, -1 %299 = getelementptr inbounds ptr, ptr %.sroa.0.0.lcssa, i64 %298 %.val10.i.i = load ptr, ptr %299, align 8, !alias.scope !3039, !nonnull !14, !align !428, !noundef !14 %300 = ptrtoint ptr %.val10.i.i to i64 @@ -18523,7 +18523,7 @@ _ZN4core5slice4sort15partition_equal17hd9557f8b4be60999E.exit: ; preds = %335 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h68fd802d71eeec0cE.exit.i": ; preds = %.preheader.i, %_ZN4core5slice4sort11insert_tail17h9c4e8555fa9797a9E.exit.i %.sroa.01.03.i = phi i64 [ %357, %_ZN4core5slice4sort11insert_tail17h9c4e8555fa9797a9E.exit.i ], [ 1, %.preheader.i ] - %357 = add nuw nsw i64 %.sroa.01.03.i, 1 + %357 = add nuw i64 %.sroa.01.03.i, 1 call void @llvm.experimental.noalias.scope.decl(metadata !3987) %358 = getelementptr { ptr, ptr }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %359 = getelementptr i8, ptr %358, i64 -16 @@ -18545,7 +18545,7 @@ _ZN4core5slice4sort15partition_equal17hd9557f8b4be60999E.exit: ; preds = %335 %367 = getelementptr i8, ptr %358, i64 8 %368 = load ptr, ptr %367, align 8, !alias.scope !3990, !nonnull !14, !align !428, !noundef !14 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %358, ptr noundef nonnull align 8 dereferenceable(16) %359, i64 16, i1 false), !alias.scope !3990 - %369 = add nsw i64 %.sroa.01.03.i, -1 + %369 = add i64 %.sroa.01.03.i, -1 %.not7.i.i = icmp eq i64 %369, 0 br i1 %.not7.i.i, label %.thread.i.i65, label %.lr.ph.i.i64 @@ -18559,7 +18559,7 @@ _ZN4core5slice4sort15partition_equal17hd9557f8b4be60999E.exit: ; preds = %335 .lr.ph.i.i64: ; preds = %366, %377 %.sroa.4.09.i.i = phi i64 [ %370, %377 ], [ %369, %366 ] %.sroa.5.08.i.i = phi ptr [ %371, %377 ], [ %359, %366 ] - %370 = add nsw i64 %.sroa.4.09.i.i, -1 + %370 = add i64 %.sroa.4.09.i.i, -1 %371 = getelementptr inbounds { ptr, ptr }, ptr %.sroa.0.0.lcssa, i64 %370 %.val10.i.i = load ptr, ptr %371, align 8, !alias.scope !3990, !nonnull !14, !align !428, !noundef !14 %.val2.i.i19.i.i = load i64, ptr %.val10.i.i, align 8, !noalias !3990 @@ -24004,7 +24004,7 @@ _ZN4core5slice4sort15partition_equal17h96257515dce2454fE.exit: ; preds = %234 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h00fb7f6f18a0fcf2E.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17h6f369fb6c248b36dE.exit.i %.sroa.01.03.i = phi i64 [ %253, %_ZN4core5slice4sort11insert_tail17h6f369fb6c248b36dE.exit.i ], [ 1, %.outer._crit_edge ] - %253 = add nuw nsw i64 %.sroa.01.03.i, 1 + %253 = add nuw i64 %.sroa.01.03.i, 1 %254 = getelementptr i32, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %255 = getelementptr i8, ptr %254, i64 -4 %.val11.i.i = load i32, ptr %254, align 4, !alias.scope !4876, !noalias !4883, !noundef !14 @@ -24014,7 +24014,7 @@ _ZN4core5slice4sort15partition_equal17h96257515dce2454fE.exit: ; preds = %234 257: ; preds = %"_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h00fb7f6f18a0fcf2E.exit.i" store i32 %.val12.i.i, ptr %254, align 4, !alias.scope !4887 - %258 = add nsw i64 %.sroa.01.03.i, -1 + %258 = add i64 %.sroa.01.03.i, -1 %.not7.i.i = icmp eq i64 %258, 0 br i1 %.not7.i.i, label %.thread.i.i56, label %.lr.ph.i.i55 @@ -24026,7 +24026,7 @@ _ZN4core5slice4sort15partition_equal17h96257515dce2454fE.exit: ; preds = %234 .lr.ph.i.i55: ; preds = %257, %262 %.sroa.4.09.i.i = phi i64 [ %259, %262 ], [ %258, %257 ] %.sroa.5.08.i.i = phi ptr [ %260, %262 ], [ %255, %257 ] - %259 = add nsw i64 %.sroa.4.09.i.i, -1 + %259 = add i64 %.sroa.4.09.i.i, -1 %260 = getelementptr inbounds i32, ptr %.sroa.0.0.lcssa, i64 %259 %.val10.i.i = load i32, ptr %260, align 4, !alias.scope !4885, !noalias !4886, !noundef !14 %261 = icmp ult i32 %.val11.i.i, %.val10.i.i @@ -24911,7 +24911,7 @@ _ZN4core5slice4sort15partition_equal17h28633826902f4c6eE.exit: ; preds = %335 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hb4351bcd36a5ece2E.exit.i": ; preds = %.preheader.i, %_ZN4core5slice4sort11insert_tail17hefdd1bc57bc12bd4E.exit.i %.sroa.01.03.i = phi i64 [ %357, %_ZN4core5slice4sort11insert_tail17hefdd1bc57bc12bd4E.exit.i ], [ 1, %.preheader.i ] - %357 = add nuw nsw i64 %.sroa.01.03.i, 1 + %357 = add nuw i64 %.sroa.01.03.i, 1 call void @llvm.experimental.noalias.scope.decl(metadata !5028) %358 = getelementptr { ptr, ptr }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %359 = getelementptr i8, ptr %358, i64 -16 @@ -24933,7 +24933,7 @@ _ZN4core5slice4sort15partition_equal17h28633826902f4c6eE.exit: ; preds = %335 %367 = getelementptr i8, ptr %358, i64 8 %368 = load ptr, ptr %367, align 8, !alias.scope !5031, !nonnull !14, !align !428, !noundef !14 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %358, ptr noundef nonnull align 8 dereferenceable(16) %359, i64 16, i1 false), !alias.scope !5031 - %369 = add nsw i64 %.sroa.01.03.i, -1 + %369 = add i64 %.sroa.01.03.i, -1 %.not7.i.i = icmp eq i64 %369, 0 br i1 %.not7.i.i, label %.thread.i.i65, label %.lr.ph.i.i64 @@ -24947,7 +24947,7 @@ _ZN4core5slice4sort15partition_equal17h28633826902f4c6eE.exit: ; preds = %335 .lr.ph.i.i64: ; preds = %366, %377 %.sroa.4.09.i.i = phi i64 [ %370, %377 ], [ %369, %366 ] %.sroa.5.08.i.i = phi ptr [ %371, %377 ], [ %359, %366 ] - %370 = add nsw i64 %.sroa.4.09.i.i, -1 + %370 = add i64 %.sroa.4.09.i.i, -1 %371 = getelementptr inbounds { ptr, ptr }, ptr %.sroa.0.0.lcssa, i64 %370 %.val10.i.i = load ptr, ptr %371, align 8, !alias.scope !5031, !nonnull !14, !align !428, !noundef !14 %.val2.i.i19.i.i = load i64, ptr %.val10.i.i, align 8, !noalias !5031 @@ -28374,7 +28374,7 @@ _ZN4core5slice4sort15partition_equal17he9192121ca54c0f6E.exit: ; preds = %329 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hc9d6e8ac18c8491bE.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17h3a25ff260a818d79E.exit.i %.sroa.01.03.i = phi i64 [ %351, %_ZN4core5slice4sort11insert_tail17h3a25ff260a818d79E.exit.i ], [ 1, %.outer._crit_edge ] - %351 = add nuw nsw i64 %.sroa.01.03.i, 1 + %351 = add nuw i64 %.sroa.01.03.i, 1 %352 = getelementptr { i64, i8 }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %353 = getelementptr i8, ptr %352, i64 -16 %.val13.i.i = load i64, ptr %352, align 8, !alias.scope !5964 @@ -28391,7 +28391,7 @@ _ZN4core5slice4sort15partition_equal17he9192121ca54c0f6E.exit: ; preds = %329 360: ; preds = %"_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hc9d6e8ac18c8491bE.exit.i" call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %352, ptr noundef nonnull align 8 dereferenceable(16) %353, i64 16, i1 false), !alias.scope !5964 - %361 = add nsw i64 %.sroa.01.03.i, -1 + %361 = add i64 %.sroa.01.03.i, -1 %.not7.i.i = icmp eq i64 %361, 0 br i1 %.not7.i.i, label %.thread.i.i57, label %.lr.ph.i.i56 @@ -28405,7 +28405,7 @@ _ZN4core5slice4sort15partition_equal17he9192121ca54c0f6E.exit: ; preds = %329 .lr.ph.i.i56: ; preds = %360, %369 %.sroa.4.09.i.i = phi i64 [ %362, %369 ], [ %361, %360 ] %.sroa.5.08.i.i = phi ptr [ %363, %369 ], [ %353, %360 ] - %362 = add nsw i64 %.sroa.4.09.i.i, -1 + %362 = add i64 %.sroa.4.09.i.i, -1 %363 = getelementptr inbounds { i64, i8 }, ptr %.sroa.0.0.lcssa, i64 %362 %.val11.i.i = load i64, ptr %363, align 8, !alias.scope !5964 %364 = getelementptr i8, ptr %363, i64 8 @@ -29163,7 +29163,7 @@ _ZN4core5slice4sort15partition_equal17hb3da8c0615646284E.exit: ; preds = %265 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hfff6bdfccb8a421aE.exit.i": ; preds = %.preheader.i, %_ZN4core5slice4sort11insert_tail17h81fcf88072ebe4f6E.exit.i %.sroa.01.04.i = phi i64 [ %286, %_ZN4core5slice4sort11insert_tail17h81fcf88072ebe4f6E.exit.i ], [ 1, %.preheader.i ] - %286 = add nuw nsw i64 %.sroa.01.04.i, 1 + %286 = add nuw i64 %.sroa.01.04.i, 1 call void @llvm.experimental.noalias.scope.decl(metadata !6099) %287 = getelementptr { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.04.i %288 = getelementptr i8, ptr %287, i64 -56 @@ -29175,7 +29175,7 @@ _ZN4core5slice4sort15partition_equal17hb3da8c0615646284E.exit: ; preds = %265 call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !6102 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %6, ptr noundef nonnull align 8 dereferenceable(56) %287, i64 56, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %287, ptr noundef nonnull align 8 dereferenceable(56) %288, i64 56, i1 false), !alias.scope !6102 - %292 = add nsw i64 %.sroa.01.04.i, -1 + %292 = add i64 %.sroa.01.04.i, -1 %.not6.i.i = icmp eq i64 %292, 0 br i1 %.not6.i.i, label %.thread.i.i60, label %.lr.ph.i.i59 @@ -29188,7 +29188,7 @@ _ZN4core5slice4sort15partition_equal17hb3da8c0615646284E.exit: ; preds = %265 .lr.ph.i.i59: ; preds = %291, %298 %.sroa.4.08.i.i = phi i64 [ %293, %298 ], [ %292, %291 ] %.sroa.5.07.i.i = phi ptr [ %294, %298 ], [ %288, %291 ] - %293 = add nsw i64 %.sroa.4.08.i.i, -1 + %293 = add i64 %.sroa.4.08.i.i, -1 %294 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { { i64, ptr }, i64 }, i32, i8, [3 x i8] }, ptr %.sroa.0.0.lcssa, i64 %293 %295 = invoke noundef range(i8 -1, 2) i8 @"_ZN79_$LT$tree_sitter_cli..generate..nfa..CharacterSet$u20$as$u20$core..cmp..Ord$GT$3cmp17h8b841ff6f2efaf85E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(56) %294) to label %296 unwind label %299 @@ -29970,7 +29970,7 @@ _ZN4core5slice4sort15partition_equal17h886a5c4d0f58362fE.exit: ; preds = %295 "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hce031f36b8f43025E.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17ha3d080db28522177E.exit.i %.sroa.01.03.i = phi i64 [ %316, %_ZN4core5slice4sort11insert_tail17ha3d080db28522177E.exit.i ], [ 1, %.outer._crit_edge ] - %316 = add nuw nsw i64 %.sroa.01.03.i, 1 + %316 = add nuw i64 %.sroa.01.03.i, 1 %317 = getelementptr { { i64, i8 }, { { { ptr, i64 }, i64, { {} }, {} } } }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %318 = getelementptr i8, ptr %317, i64 32 %.val11.i.i = load i64, ptr %318, align 8, !alias.scope !6208, !noundef !14 @@ -29988,7 +29988,7 @@ _ZN4core5slice4sort15partition_equal17h886a5c4d0f58362fE.exit: ; preds = %295 call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.0.i.i56) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.0.i.i56, ptr noundef nonnull align 8 dereferenceable(32) %317, i64 32, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %317, ptr noundef nonnull align 8 dereferenceable(40) %326, i64 40, i1 false), !alias.scope !6208 - %327 = add nsw i64 %.sroa.01.03.i, -1 + %327 = add i64 %.sroa.01.03.i, -1 %.not8.i.i = icmp eq i64 %327, 0 br i1 %.not8.i.i, label %.thread.i.i60, label %.lr.ph.i.i59 @@ -30003,7 +30003,7 @@ _ZN4core5slice4sort15partition_equal17h886a5c4d0f58362fE.exit: ; preds = %295 .lr.ph.i.i59: ; preds = %325, %334 %.sroa.4.010.i.i = phi i64 [ %328, %334 ], [ %327, %325 ] %.sroa.5.09.i.i = phi ptr [ %329, %334 ], [ %326, %325 ] - %328 = add nsw i64 %.sroa.4.010.i.i, -1 + %328 = add i64 %.sroa.4.010.i.i, -1 %329 = getelementptr inbounds { { i64, i8 }, { { { ptr, i64 }, i64, { {} }, {} } } }, ptr %.sroa.0.0.lcssa, i64 %328 %330 = getelementptr i8, ptr %329, i64 32 %.val10.i.i = load i64, ptr %330, align 8, !alias.scope !6208, !noundef !14 @@ -32040,7 +32040,7 @@ _ZN4core5slice4sort15partition_equal17hb38a0449e15a56ecE.exit: ; preds = %"_ZN4c "_ZN115_$LT$core..ops..range..RangeInclusive$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h54b4e598c08213e9E.exit.i": ; preds = %.outer._crit_edge, %_ZN4core5slice4sort11insert_tail17h0ccf6240b9c14b06E.exit.i %.sroa.01.03.i = phi i64 [ %359, %_ZN4core5slice4sort11insert_tail17h0ccf6240b9c14b06E.exit.i ], [ 1, %.outer._crit_edge ] - %359 = add nuw nsw i64 %.sroa.01.03.i, 1 + %359 = add nuw i64 %.sroa.01.03.i, 1 %360 = getelementptr { { { { i64, ptr }, i64 } }, { i64, i64 }, i8, [7 x i8] }, ptr %.sroa.0.0.lcssa, i64 %.sroa.01.03.i %361 = getelementptr i8, ptr %360, i64 -48 %362 = getelementptr i8, ptr %360, i64 24 @@ -32066,7 +32066,7 @@ _ZN4core5slice4sort15partition_equal17hb38a0449e15a56ecE.exit: ; preds = %"_ZN4c %.sroa.68.0..sroa_idx.i.i = getelementptr i8, ptr %360, i64 40 %369 = load i64, ptr %.sroa.68.0..sroa_idx.i.i, align 8, !alias.scope !6503 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %360, ptr noundef nonnull align 8 dereferenceable(48) %361, i64 48, i1 false), !alias.scope !6503 - %370 = add nsw i64 %.sroa.01.03.i, -1 + %370 = add i64 %.sroa.01.03.i, -1 %.not14.i.i = icmp eq i64 %370, 0 br i1 %.not14.i.i, label %.thread.i.i66, label %.lr.ph.i.i65 @@ -32085,7 +32085,7 @@ _ZN4core5slice4sort15partition_equal17hb38a0449e15a56ecE.exit: ; preds = %"_ZN4c .lr.ph.i.i65: ; preds = %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit.thread.i.i", %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit23.thread.i.i" %.sroa.4.016.i.i = phi i64 [ %371, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit23.thread.i.i" ], [ %370, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit.thread.i.i" ] %.sroa.5.015.i.i = phi ptr [ %372, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit23.thread.i.i" ], [ %361, %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$20sort_unstable_by_key28_$u7b$$u7b$closure$u7d$$u7d$17hed2cf1391e05d76bE.exit.thread.i.i" ] - %371 = add nsw i64 %.sroa.4.016.i.i, -1 + %371 = add i64 %.sroa.4.016.i.i, -1 %372 = getelementptr inbounds { { { { i64, ptr }, i64 } }, { i64, i64 }, i8, [7 x i8] }, ptr %.sroa.0.0.lcssa, i64 %371 %373 = getelementptr i8, ptr %372, i64 24 %.val11.i.i = load i64, ptr %373, align 8, !alias.scope !6503, !noundef !14 diff --git a/bench/uv-rs/optimized/anqe374630sb0db7siy3xwbqk.ll b/bench/uv-rs/optimized/anqe374630sb0db7siy3xwbqk.ll index bce75bce7ad..9d231aa99cb 100644 --- a/bench/uv-rs/optimized/anqe374630sb0db7siy3xwbqk.ll +++ b/bench/uv-rs/optimized/anqe374630sb0db7siy3xwbqk.ll @@ -7,7 +7,6 @@ target triple = "x86_64-unknown-linux-gnu" @anon.47af8473826c8c2585696a780e517604.26 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @anon.47af8473826c8c2585696a780e517604.23, [16 x i8] c"b\00\00\00\00\00\00\00.\00\00\00?\00\00\00" }>, align 8 @_ZN13generic_array3hex11LOWER_CHARS17h0cbc070625234dd5E = external local_unnamed_addr global { ptr, i64 } @anon.47af8473826c8c2585696a780e517604.27 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @anon.47af8473826c8c2585696a780e517604.23, [16 x i8] c"b\00\00\00\00\00\00\00*\00\00\00\1E\00\00\00" }>, align 8 -@anon.47af8473826c8c2585696a780e517604.28 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @anon.47af8473826c8c2585696a780e517604.23, [16 x i8] c"b\00\00\00\00\00\00\00*\00\00\00\11\00\00\00" }>, align 8 @anon.47af8473826c8c2585696a780e517604.29 = private unnamed_addr constant <{ ptr, [16 x i8] }> <{ ptr @anon.47af8473826c8c2585696a780e517604.23, [16 x i8] c"b\00\00\00\00\00\00\00+\00\00\00\22\00\00\00" }>, align 8 @anon.47af8473826c8c2585696a780e517604.35.llvm.12101516472763982539 = hidden unnamed_addr constant <{ ptr, [16 x i8], ptr, ptr, ptr }> <{ ptr @"_ZN4core3ptr89drop_in_place$LT$std..io..Write..write_fmt..Adapter$LT$std..io..stdio..StderrLock$GT$$GT$17h0cd537823c99708cE", [16 x i8] c"\10\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00", ptr @"_ZN80_$LT$std..io..Write..write_fmt..Adapter$LT$T$GT$$u20$as$u20$core..fmt..Write$GT$9write_str17h351d906509d09f76E", ptr @_ZN4core3fmt5Write10write_char17h0d72b7bb764a4ebdE, ptr @_ZN4core3fmt5Write9write_fmt17hcd23d0eb2273baffE }>, align 8 @anon.47af8473826c8c2585696a780e517604.36.llvm.12101516472763982539 = hidden unnamed_addr constant <{ [86 x i8] }> <{ [86 x i8] c"a formatting trait implementation returned an error when the underlying stream did not" }>, align 1 @@ -570,17 +569,13 @@ define hidden noundef zeroext i1 @"_ZN13generic_array3hex91_$LT$impl$u20$core..f %16 = lshr i8 %.val7.i, 4 %17 = zext nneg i8 %16 to i64 %18 = icmp ugt i64 %11, %17 - br i1 %18, label %19, label %20 + br i1 %18, label %21, label %19 19: ; preds = %13 - %exitcond.not.i = icmp eq i64 %.sroa.0.017.i, 32 - br i1 %exitcond.not.i, label %29, label %21 - -20: ; preds = %13 tail call void @_ZN4core9panicking18panic_bounds_check17h0328ca7e7f0749c4E(i64 noundef %17, i64 noundef %11, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.47af8473826c8c2585696a780e517604.27) #46, !noalias !76 unreachable -21: ; preds = %19 +21: ; preds = %13 %22 = shl nuw i64 %.sroa.0.017.i, 1 %23 = getelementptr inbounds nuw i8, ptr %12, i64 %17 %24 = load i8, ptr %23, align 1, !noalias !76, !noundef !8 @@ -591,10 +586,6 @@ define hidden noundef zeroext i1 @"_ZN13generic_array3hex91_$LT$impl$u20$core..f %28 = icmp ugt i64 %11, %27 br i1 %28, label %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17hb605a1c2a52bd367E.exit.i", label %30 -29: ; preds = %19 - tail call void @_ZN4core9panicking18panic_bounds_check17h0328ca7e7f0749c4E(i64 noundef 64, i64 noundef 64, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.47af8473826c8c2585696a780e517604.28) #46, !noalias !76 - unreachable - 30: ; preds = %21 tail call void @_ZN4core9panicking18panic_bounds_check17h0328ca7e7f0749c4E(i64 noundef %27, i64 noundef %11, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.47af8473826c8c2585696a780e517604.29) #46, !noalias !76 unreachable diff --git a/bench/wasmtime-rs/optimized/5079e95b7v1wxko.ll b/bench/wasmtime-rs/optimized/5079e95b7v1wxko.ll index af2ff7cd098..615501f872c 100644 --- a/bench/wasmtime-rs/optimized/5079e95b7v1wxko.ll +++ b/bench/wasmtime-rs/optimized/5079e95b7v1wxko.ll @@ -9164,15 +9164,13 @@ _ZN5alloc11collections5btree4node13move_to_slice17hd3fee00edead3fbaE.exit: ; pre 66: ; preds = %66, %_ZN5alloc11collections5btree4node13move_to_slice17hd3fee00edead3fbaE.exit %.sroa.0.05.i = phi i64 [ 0, %_ZN5alloc11collections5btree4node13move_to_slice17hd3fee00edead3fbaE.exit ], [ %67, %66 ] %67 = add nuw nsw i64 %.sroa.0.05.i, 1 - %68 = icmp samesign ult i64 %.sroa.0.05.i, 12 - tail call void @llvm.assume(i1 %68) - %69 = getelementptr inbounds nuw ptr, ptr %60, i64 %.sroa.0.05.i - %70 = load ptr, ptr %69, align 8, !nonnull !17, !noundef !17 - %71 = getelementptr inbounds nuw i8, ptr %70, i64 352 - store ptr %10, ptr %71, align 8 - %72 = trunc nuw nsw i64 %.sroa.0.05.i to i16 - %73 = getelementptr inbounds nuw i8, ptr %70, i64 448 - store i16 %72, ptr %73, align 8 + %68 = getelementptr inbounds nuw ptr, ptr %60, i64 %.sroa.0.05.i + %69 = load ptr, ptr %68, align 8, !nonnull !17, !noundef !17 + %69 = getelementptr inbounds nuw i8, ptr %69, i64 352 + store ptr %10, ptr %69, align 8 + %71 = trunc nuw nsw i64 %.sroa.0.05.i to i16 + %72 = getelementptr inbounds nuw i8, ptr %69, i64 448 + store i16 %71, ptr %72, align 8 %exitcond.not.i = icmp eq i64 %.sroa.0.05.i, %14 br i1 %exitcond.not.i, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17hbcef04da733ac000E.exit", label %66 } @@ -9308,14 +9306,12 @@ _ZN5alloc11collections5btree4node13move_to_slice17hfcac2bd30222122bE.exit: ; pre 67: ; preds = %67, %_ZN5alloc11collections5btree4node13move_to_slice17hfcac2bd30222122bE.exit %.sroa.0.05.i = phi i64 [ 0, %_ZN5alloc11collections5btree4node13move_to_slice17hfcac2bd30222122bE.exit ], [ %68, %67 ] %68 = add nuw nsw i64 %.sroa.0.05.i, 1 - %69 = icmp samesign ult i64 %.sroa.0.05.i, 12 - tail call void @llvm.assume(i1 %69) - %70 = getelementptr inbounds nuw ptr, ptr %60, i64 %.sroa.0.05.i - %71 = load ptr, ptr %70, align 8, !nonnull !17, !noundef !17 - store ptr %11, ptr %71, align 8 - %72 = trunc nuw nsw i64 %.sroa.0.05.i to i16 - %73 = getelementptr inbounds nuw i8, ptr %71, i64 316 - store i16 %72, ptr %73, align 4 + %69 = getelementptr inbounds nuw ptr, ptr %60, i64 %.sroa.0.05.i + %70 = load ptr, ptr %69, align 8, !nonnull !17, !noundef !17 + store ptr %11, ptr %70, align 8 + %71 = trunc nuw nsw i64 %.sroa.0.05.i to i16 + %72 = getelementptr inbounds nuw i8, ptr %70, i64 316 + store i16 %71, ptr %72, align 4 %exitcond.not.i = icmp eq i64 %.sroa.0.05.i, %15 br i1 %exitcond.not.i, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17hd7a8a7f009248e98E.exit", label %67 } @@ -9441,15 +9437,13 @@ _ZN5alloc11collections5btree4node13move_to_slice17hed6fd6d8b38bc861E.exit: ; pre 68: ; preds = %68, %_ZN5alloc11collections5btree4node13move_to_slice17hed6fd6d8b38bc861E.exit %.sroa.0.05.i = phi i64 [ 0, %_ZN5alloc11collections5btree4node13move_to_slice17hed6fd6d8b38bc861E.exit ], [ %69, %68 ] %69 = add nuw nsw i64 %.sroa.0.05.i, 1 - %70 = icmp samesign ult i64 %.sroa.0.05.i, 12 - tail call void @llvm.assume(i1 %70) - %71 = getelementptr inbounds nuw ptr, ptr %62, i64 %.sroa.0.05.i - %72 = load ptr, ptr %71, align 8, !nonnull !17, !noundef !17 - %73 = getelementptr inbounds nuw i8, ptr %72, i64 176 - store ptr %9, ptr %73, align 8 - %74 = trunc nuw nsw i64 %.sroa.0.05.i to i16 - %75 = getelementptr inbounds nuw i8, ptr %72, i64 272 - store i16 %74, ptr %75, align 8 + %70 = getelementptr inbounds nuw ptr, ptr %62, i64 %.sroa.0.05.i + %71 = load ptr, ptr %70, align 8, !nonnull !17, !noundef !17 + %71 = getelementptr inbounds nuw i8, ptr %71, i64 176 + store ptr %9, ptr %71, align 8 + %73 = trunc nuw nsw i64 %.sroa.0.05.i to i16 + %74 = getelementptr inbounds nuw i8, ptr %71, i64 272 + store i16 %73, ptr %74, align 8 %exitcond.not.i = icmp eq i64 %.sroa.0.05.i, %13 br i1 %exitcond.not.i, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17hfb301a5605c4626fE.exit", label %68 } @@ -9556,14 +9550,12 @@ _ZN5alloc11collections5btree4node13move_to_slice17hee63a9b64f0d9711E.exit: ; pre 54: ; preds = %54, %_ZN5alloc11collections5btree4node13move_to_slice17hee63a9b64f0d9711E.exit %.sroa.0.05.i = phi i64 [ 0, %_ZN5alloc11collections5btree4node13move_to_slice17hee63a9b64f0d9711E.exit ], [ %55, %54 ] %55 = add nuw nsw i64 %.sroa.0.05.i, 1 - %56 = icmp samesign ult i64 %.sroa.0.05.i, 12 - tail call void @llvm.assume(i1 %56) - %57 = getelementptr inbounds nuw ptr, ptr %25, i64 %.sroa.0.05.i - %58 = load ptr, ptr %57, align 8, !nonnull !17, !noundef !17 - store ptr %9, ptr %58, align 8 - %59 = trunc nuw nsw i64 %.sroa.0.05.i to i16 - %60 = getelementptr inbounds nuw i8, ptr %58, i64 52 - store i16 %59, ptr %60, align 4 + %56 = getelementptr inbounds nuw ptr, ptr %25, i64 %.sroa.0.05.i + %57 = load ptr, ptr %56, align 8, !nonnull !17, !noundef !17 + store ptr %9, ptr %57, align 8 + %58 = trunc nuw nsw i64 %.sroa.0.05.i to i16 + %59 = getelementptr inbounds nuw i8, ptr %57, i64 52 + store i16 %58, ptr %59, align 4 %exitcond.not.i = icmp eq i64 %.sroa.0.05.i, %13 br i1 %exitcond.not.i, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17hf39dddbe49f011a4E.exit", label %54 } diff --git a/bench/wireshark/optimized/packet-dsr.ll b/bench/wireshark/optimized/packet-dsr.ll index 956eac56a21..1d4449d9716 100644 --- a/bench/wireshark/optimized/packet-dsr.ll +++ b/bench/wireshark/optimized/packet-dsr.ll @@ -288,16 +288,13 @@ define internal noundef i32 @dissect_dsr(ptr noundef %0, ptr noundef %1, ptr nou %64 = load ptr, ptr %6, align 8 call void (ptr, ptr, ...) @proto_item_append_text(ptr noundef %64, ptr noundef nonnull @.str.94) %65 = add nsw i32 %47, -4 - %.not397 = icmp samesign ult i32 %65, 4 - br i1 %.not397, label %.loopexit, label %.lr.ph391.preheader - -.lr.ph391.preheader: ; preds = %60 %66 = lshr i32 %65, 2 - br label %.lr.ph391 + %.not397 = icmp samesign ult i32 %65, 4 + br i1 %.not397, label %.loopexit, label %.lr.ph391 -.lr.ph391: ; preds = %.lr.ph391.preheader, %.lr.ph391 - %.0362390 = phi i32 [ %73, %.lr.ph391 ], [ 0, %.lr.ph391.preheader ] - %.0367389 = phi i32 [ %72, %.lr.ph391 ], [ %61, %.lr.ph391.preheader ] +.lr.ph391: ; preds = %60, %.lr.ph391 + %.0362390 = phi i32 [ %73, %.lr.ph391 ], [ 0, %60 ] + %.0367389 = phi i32 [ %72, %.lr.ph391 ], [ %61, %60 ] %67 = load i32, ptr @hf_dsr_opt_rreq_address, align 4 %68 = call ptr @proto_tree_add_item(ptr noundef %63, i32 noundef %67, ptr noundef %0, i32 noundef %.0367389, i32 noundef 4, i32 noundef 0) %69 = load ptr, ptr %6, align 8 @@ -522,16 +519,13 @@ define internal noundef i32 @dissect_dsr(ptr noundef %0, ptr noundef %1, ptr nou %236 = load ptr, ptr %6, align 8 call void (ptr, ptr, ...) @proto_item_append_text(ptr noundef %236, ptr noundef nonnull @.str.94) %237 = add nsw i32 %212, -2 - %.not395 = icmp samesign ult i32 %237, 4 - br i1 %.not395, label %.loopexit, label %.lr.ph.preheader - -.lr.ph.preheader: ; preds = %232 %238 = lshr i32 %237, 2 - br label %.lr.ph + %.not395 = icmp samesign ult i32 %237, 4 + br i1 %.not395, label %.loopexit, label %.lr.ph -.lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph - %.2385 = phi i32 [ %245, %.lr.ph ], [ 0, %.lr.ph.preheader ] - %.2369384 = phi i32 [ %244, %.lr.ph ], [ %233, %.lr.ph.preheader ] +.lr.ph: ; preds = %232, %.lr.ph + %.2385 = phi i32 [ %245, %.lr.ph ], [ 0, %232 ] + %.2369384 = phi i32 [ %244, %.lr.ph ], [ %233, %232 ] %239 = load i32, ptr @hf_dsr_opt_srcrt_address, align 4 %240 = call ptr @proto_tree_add_item(ptr noundef %235, i32 noundef %239, ptr noundef %0, i32 noundef %.2369384, i32 noundef 4, i32 noundef 0) %241 = load ptr, ptr %6, align 8 diff --git a/bench/wireshark/optimized/packet-epl.ll b/bench/wireshark/optimized/packet-epl.ll index 6be02b5e436..3efa4316269 100644 --- a/bench/wireshark/optimized/packet-epl.ll +++ b/bench/wireshark/optimized/packet-epl.ll @@ -4436,13 +4436,9 @@ define internal fastcc i32 @dissect_epl_asnd_sres(ptr noundef %0, ptr noundef %1 %.not107 = icmp ult i32 %51, 20 br i1 %.not107, label %._crit_edge, label %.lr.ph.preheader -.lr.ph.preheader: ; preds = %4 - %umax = tail call i32 @llvm.umax.i32(i32 %52, i32 1) - br label %.lr.ph - -.lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph - %.0106 = phi i32 [ %80, %.lr.ph ], [ %49, %.lr.ph.preheader ] - %.0104105 = phi i32 [ %56, %.lr.ph ], [ 0, %.lr.ph.preheader ] +.lr.ph.preheader: ; preds = %4, %.lr.ph + %.0106 = phi i32 [ %80, %.lr.ph ], [ %49, %4 ] + %.0104105 = phi i32 [ %56, %.lr.ph ], [ 0, %4 ] %55 = load i32, ptr @ett_epl_el_entry, align 4 %56 = add nuw nsw i32 %.0104105, 1 %57 = call ptr (ptr, ptr, i32, i32, i32, ptr, ptr, ...) @proto_tree_add_subtree_format(ptr noundef %54, ptr noundef %1, i32 noundef %.0106, i32 noundef 20, i32 noundef %55, ptr noundef nonnull %5, ptr noundef nonnull @.str.743, i32 noundef %56) @@ -4469,7 +4465,7 @@ define internal fastcc i32 @dissect_epl_asnd_sres(ptr noundef %0, ptr noundef %1 %78 = load i32, ptr @hf_epl_asnd_statusresponse_el_entry_add, align 4 %79 = call ptr @proto_tree_add_item(ptr noundef %57, i32 noundef %78, ptr noundef %1, i32 noundef %77, i32 noundef 8, i32 noundef -2147483648) %80 = add i32 %.0106, 20 - %exitcond.not = icmp eq i32 %56, %umax + %exitcond.not = icmp eq i32 %56, %52 br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !18 ._crit_edge: ; preds = %.lr.ph, %4 @@ -7678,9 +7674,6 @@ declare i32 @bcmp(ptr captures(none), ptr captures(none), i64) local_unnamed_add ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare range(i32 -1, 2) i32 @llvm.ucmp.i32.i16(i16, i16) #19 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umax.i32(i32, i32) #19 - attributes #0 = { nofree norecurse nounwind null_pointer_is_valid sspstrong memory(read, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "probe-stack"="inline-asm" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { mustprogress nocallback nofree nounwind null_pointer_is_valid willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { null_pointer_is_valid sspstrong uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "probe-stack"="inline-asm" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/wireshark/optimized/packet-lustre.ll b/bench/wireshark/optimized/packet-lustre.ll index 5b9611f3ad9..430931bed37 100644 --- a/bench/wireshark/optimized/packet-lustre.ll +++ b/bench/wireshark/optimized/packet-lustre.ll @@ -9211,16 +9211,13 @@ define internal fastcc noundef i32 @dissect_struct_llog_log_hdr(ptr noundef %0, %.neg81 = add i32 %.neg, %24 %reass.sub = sub i32 %.neg81, %29 %59 = add i32 %reass.sub, -72 - %.not85 = icmp ult i32 %59, 4 - br i1 %.not85, label %._crit_edge, label %.lr.ph.preheader - -.lr.ph.preheader: ; preds = %27 %60 = lshr i32 %59, 2 - br label %.lr.ph + %.not85 = icmp ult i32 %59, 4 + br i1 %.not85, label %._crit_edge, label %.lr.ph -.lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph - %.084 = phi i32 [ %64, %.lr.ph ], [ 0, %.lr.ph.preheader ] - %.07683 = phi i32 [ %63, %.lr.ph ], [ %58, %.lr.ph.preheader ] +.lr.ph: ; preds = %27, %.lr.ph + %.084 = phi i32 [ %64, %.lr.ph ], [ 0, %27 ] + %.07683 = phi i32 [ %63, %.lr.ph ], [ %58, %27 ] %61 = load i32, ptr @hf_lustre_llog_log_hdr_bitmap, align 4 %62 = tail call ptr @proto_tree_add_item(ptr noundef %23, i32 noundef %61, ptr noundef %0, i32 noundef %.07683, i32 noundef 4, i32 noundef -2147483648) %63 = add i32 %.07683, 4 diff --git a/bench/wireshark/optimized/packet-pgm.ll b/bench/wireshark/optimized/packet-pgm.ll index 5a089af6cf8..12e53591335 100644 --- a/bench/wireshark/optimized/packet-pgm.ll +++ b/bench/wireshark/optimized/packet-pgm.ll @@ -1156,14 +1156,9 @@ paritystr.exit.i: ; preds = %421, %420, %389 %.not534.i = icmp ult i8 %481, 4 br i1 %.not534.i, label %._crit_edge.thread.i, label %.lr.ph.preheader.i -.lr.ph.preheader.i: ; preds = %468 - %umax.i = call i32 @llvm.umax.i32(i32 %486, i32 1) - %wide.trip.count.i = zext nneg i32 %umax.i to i64 - br label %.lr.ph.i.outer - -.lr.ph.i.outer: ; preds = %.thread.i, %.lr.ph.preheader.i - %indvars.iv.i.ph = phi i64 [ %indvars.iv.next589.i, %.thread.i ], [ 0, %.lr.ph.preheader.i ] - %.0451527.i.ph = phi i1 [ false, %.thread.i ], [ true, %.lr.ph.preheader.i ] +.lr.ph.preheader.i: ; preds = %468, %.thread.i + %indvars.iv.i.ph = phi i64 [ %indvars.iv.next589.i, %.thread.i ], [ 0, %468 ] + %.0451527.i.ph = phi i1 [ false, %.thread.i ], [ true, %468 ] br label %.lr.ph.i .lr.ph.i: ; preds = %.lr.ph.i.outer, %521 @@ -1218,13 +1213,13 @@ paritystr.exit.i: ; preds = %421, %420, %389 521: ; preds = %508 %522 = add i32 %509, %.0448528.i %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %wide.trip.count.i + %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %485 br i1 %exitcond.not.i, label %523, label %.lr.ph.i, !llvm.loop !10 .thread.i: ; preds = %519, %517 call void @ptvcursor_advance(ptr noundef %26, i32 noundef %516) %indvars.iv.next589.i = add nuw nsw i64 %indvars.iv.i, 1 - %exitcond.not590.i = icmp eq i64 %indvars.iv.next589.i, %wide.trip.count.i + %exitcond.not590.i = icmp eq i64 %indvars.iv.next589.i, %485 br i1 %exitcond.not590.i, label %._crit_edge.thread.i, label %.lr.ph.i.outer, !llvm.loop !10 523: ; preds = %521 @@ -1872,9 +1867,6 @@ declare i32 @llvm.smin.i32(i32, i32) #5 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) declare void @llvm.assume(i1 noundef) #6 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umax.i32(i32, i32) #5 - attributes #0 = { null_pointer_is_valid sspstrong uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "probe-stack"="inline-asm" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { null_pointer_is_valid "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { null_pointer_is_valid allocsize(1) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/wireshark/optimized/packet-uftp4.ll b/bench/wireshark/optimized/packet-uftp4.ll index 91dddd299c5..5fe3ad289fb 100644 --- a/bench/wireshark/optimized/packet-uftp4.ll +++ b/bench/wireshark/optimized/packet-uftp4.ll @@ -1236,17 +1236,16 @@ dissect_uftp_encinfo.exit: ; preds = %135, %134 dissect_uftp_encinfo.exit.thread: ; preds = %dissect_uftp_encinfo.exit, %.lr.ph, %52, %80, %60 %141 = tail call i32 @tvb_reported_length(ptr noundef %0) %142 = sub i32 %141, %12 + %143 = lshr i32 %142, 2 %.not124 = icmp ult i32 %142, 4 br i1 %.not124, label %.loopexit, label %.lr.ph137.preheader .lr.ph137.preheader: ; preds = %dissect_uftp_encinfo.exit.thread - %143 = lshr i32 %142, 2 %144 = load i32, ptr @hf_uftp_destlist, align 4 %145 = and i32 %142, -4 %146 = tail call ptr @proto_tree_add_item(ptr noundef %23, i32 noundef %144, ptr noundef %0, i32 noundef %12, i32 noundef %145, i32 noundef 0) %147 = load i32, ptr @ett_uftp_destlist, align 4 %148 = tail call ptr @proto_item_add_subtree(ptr noundef %146, i32 noundef %147) - %umax = tail call i32 @llvm.umax.i32(i32 %143, i32 1) br label %.lr.ph137 .lr.ph137: ; preds = %.lr.ph137.preheader, %.lr.ph137 @@ -1256,7 +1255,7 @@ dissect_uftp_encinfo.exit.thread: ; preds = %dissect_uftp_encinf %150 = tail call ptr @proto_tree_add_item(ptr noundef %148, i32 noundef %149, ptr noundef %0, i32 noundef %.3135, i32 noundef 4, i32 noundef 0) %151 = add i32 %.3135, 4 %152 = add nuw nsw i32 %.0115136, 1 - %exitcond.not = icmp eq i32 %152, %umax + %exitcond.not = icmp eq i32 %152, %143 br i1 %exitcond.not, label %.loopexit, label %.lr.ph137, !llvm.loop !8 .loopexit: ; preds = %.lr.ph137, %dissect_uftp_encinfo.exit.thread, %15, %6 @@ -3148,14 +3147,10 @@ unquantize_rate.exit: ; preds = %.lr.ph.i, %19 ret i32 %.0 } -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umax.i32(i32, i32) #3 - attributes #0 = { null_pointer_is_valid sspstrong uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "probe-stack"="inline-asm" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { null_pointer_is_valid "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nocallback nofree nounwind null_pointer_is_valid willreturn memory(errnomem: write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #4 = { nounwind } +attributes #3 = { nounwind } !llvm.module.flags = !{!0, !1, !2, !3, !4, !5} diff --git a/bench/wireshark/optimized/packet-umts_rlc.ll b/bench/wireshark/optimized/packet-umts_rlc.ll index 09d682840c8..7da0647894f 100644 --- a/bench/wireshark/optimized/packet-umts_rlc.ll +++ b/bench/wireshark/optimized/packet-umts_rlc.ll @@ -4167,18 +4167,21 @@ define internal fastcc void @reassemble_sequence(ptr noundef captures(none) %0, %55 = icmp samesign ult i32 %51, %54 br i1 %55, label %.preheader.i, label %76 -.preheader.i: ; preds = %47, %58 - %.0.i35 = phi ptr [ %57, %58 ], [ %33, %47 ] - %56 = getelementptr inbounds nuw i8, ptr %.0.i35, i64 48 - %57 = load ptr, ptr %56, align 8 - %.not70.i = icmp eq ptr %57, null - br i1 %.not70.i, label %63, label %58 - -58: ; preds = %.preheader.i - %59 = getelementptr inbounds nuw i8, ptr %.0.i35, i64 28 - %60 = load i16, ptr %59, align 4 - %61 = zext i16 %60 to i32 - %62 = icmp samesign ult i32 %51, %61 +.preheader.i: ; preds = %47 + %56 = trunc nuw i32 %51 to i16 + br label %.preheader.i + +.preheader.i:; preds = %59, %.preheader.i + %.0.i35 = phi ptr [ %58, %59 ], [ %33, %.preheader.preheader.i ] + %57 = getelementptr inbounds nuw i8, ptr %.0.i35, i64 48 + %58 = load ptr, ptr %57, align 8 + %.not70.i = icmp eq ptr %58, null + br i1 %.not70.i, label %63, label %59 + +59:; preds = %.preheader.i + %60 = getelementptr inbounds nuw i8, ptr %.0.i35, i64 28 + %61 = load i16, ptr %60, align 4 + %62 = icmp ugt i16 %61, %56 br i1 %62, label %.preheader.i, label %.critedge.i, !llvm.loop !20 63: ; preds = %.preheader.i @@ -4187,8 +4190,8 @@ define internal fastcc void @reassemble_sequence(ptr noundef captures(none) %0, store ptr %32, ptr %23, align 8 br label %91 -.critedge.i: ; preds = %58, %67 - %.1.i = phi ptr [ %66, %67 ], [ %.0.i35, %58 ] +.critedge.i: ; preds = %59, %67 + %.1.i = phi ptr [ %66, %67 ], [ %.0.i35, %59 ] %65 = getelementptr inbounds nuw i8, ptr %.1.i, i64 48 %66 = load ptr, ptr %65, align 8 %.not71.i = icmp eq ptr %66, null diff --git a/bench/wireshark/optimized/packet-z3950.ll b/bench/wireshark/optimized/packet-z3950.ll index 5ef5b502d87..14c053e3ff3 100644 --- a/bench/wireshark/optimized/packet-z3950.ll +++ b/bench/wireshark/optimized/packet-z3950.ll @@ -5015,14 +5015,9 @@ define internal noundef i32 @dissect_marc_record(ptr noundef %0, ptr noundef %1, %.not355 = icmp ult i32 %116, 12 br i1 %.not355, label %._crit_edge353, label %.lr.ph352.preheader -.lr.ph352.preheader: ; preds = %._crit_edge - %umax = call i32 @llvm.umax.i32(i32 %117, i32 1) - %wide.trip.count = zext nneg i32 %umax to i64 - br label %.lr.ph352 - -.lr.ph352: ; preds = %.lr.ph352.preheader, %246 - %indvars.iv = phi i64 [ 0, %.lr.ph352.preheader ], [ %indvars.iv.next, %246 ] - %.1293349 = phi i32 [ %191, %.lr.ph352.preheader ], [ %.2, %246 ] +.lr.ph352.preheader: ; preds = %._crit_edge, %246 + %indvars.iv = phi i64 [ %indvars.iv.next, %246 ], [ 0, %._crit_edge ] + %.1293349 = phi i32 [ %.2, %246 ], [ %191, %._crit_edge ] %197 = load i32, ptr @hf_marc_field, align 4 %198 = getelementptr %struct.marc_directory_entry, ptr %121, i64 %indvars.iv %199 = getelementptr inbounds nuw i8, ptr %198, i64 4 @@ -5102,7 +5097,7 @@ define internal noundef i32 @dissect_marc_record(ptr noundef %0, ptr noundef %1, 246: ; preds = %.loopexit, %210 %.2 = phi i32 [ %217, %210 ], [ %245, %.loopexit ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count + %exitcond.not = icmp eq i64 %indvars.iv.next, %119 br i1 %exitcond.not, label %._crit_edge353, label %.lr.ph352, !llvm.loop !11 ._crit_edge353: ; preds = %246, %._crit_edge @@ -8082,9 +8077,6 @@ declare void @llvm.lifetime.start.p0(ptr captures(none)) #7 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(ptr captures(none)) #7 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umax.i32(i32, i32) #8 - attributes #0 = { null_pointer_is_valid sspstrong uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "probe-stack"="inline-asm" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { null_pointer_is_valid "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { nounwind null_pointer_is_valid returns_twice "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } @@ -8093,11 +8085,10 @@ attributes #4 = { mustprogress nofree norecurse nosync nounwind null_pointer_is_ attributes #5 = { null_pointer_is_valid allocsize(1) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #6 = { mustprogress nocallback nofree nounwind null_pointer_is_valid willreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #8 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #9 = { nounwind } -attributes #10 = { allocsize(1) } -attributes #11 = { nounwind returns_twice } -attributes #12 = { noreturn } +attributes #8 = { nounwind } +attributes #9 = { allocsize(1) } +attributes #10 = { nounwind returns_twice } +attributes #11 = { noreturn } !llvm.module.flags = !{!0, !1, !2, !3, !4, !5} diff --git a/bench/wolfssl/optimized/keys.ll b/bench/wolfssl/optimized/keys.ll index d8c5eedfa6b..3738d1c74de 100644 --- a/bench/wolfssl/optimized/keys.ll +++ b/bench/wolfssl/optimized/keys.ll @@ -1632,8 +1632,7 @@ define i32 @DeriveKeys(ptr noundef captures(none) %0) local_unnamed_addr #0 { .lr.ph: ; preds = %27 %31 = getelementptr inbounds nuw i8, ptr %3, i64 48 - %umax = call i32 @llvm.umax.i32(i32 %21, i32 1) - %wide.trip.count = zext nneg i32 %umax to i64 + %wide.trip.count = zext nneg i32 %21 to i64 br label %32 32: ; preds = %.lr.ph, %SetPrefix.exit @@ -2069,17 +2068,13 @@ declare void @llvm.lifetime.start.p0(ptr captures(none)) #5 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(ptr captures(none)) #5 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umax.i32(i32, i32) #6 - attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #4 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #6 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #7 = { nounwind } +attributes #6 = { nounwind } !llvm.module.flags = !{!0, !1, !2} diff --git a/bench/z3/optimized/mpz.ll b/bench/z3/optimized/mpz.ll index 8e87cb792c5..1b9c912f29b 100644 --- a/bench/z3/optimized/mpz.ll +++ b/bench/z3/optimized/mpz.ll @@ -14056,15 +14056,12 @@ _ZNK11mpz_managerILb1EE10get_uint64ERK3mpz.exit: ; preds = %69, %66, %57 .preheader: ; preds = %74 %80 = sub nuw i32 %3, %79 - %.not65 = icmp ult i32 %80, 4 - br i1 %.not65, label %.loopexit, label %.lr.ph.preheader - -.lr.ph.preheader: ; preds = %.preheader %81 = lshr i32 %80, 2 - br label %.lr.ph + %.not65 = icmp ult i32 %80, 4 + br i1 %.not65, label %.loopexit, label %.lr.ph -.lr.ph: ; preds = %.lr.ph.preheader, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit - %.03962 = phi i32 [ %83, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit ], [ 0, %.lr.ph.preheader ] +.lr.ph: ; preds = %.preheader, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit + %.03962 = phi i32 [ %83, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit ], [ 0, %.preheader ] %82 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull @.str.6, i64 noundef 1) to label %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit unwind label %84 @@ -30824,15 +30821,12 @@ _ZNK11mpz_managerILb0EE10get_uint64ERK3mpz.exit: ; preds = %69, %66, %57 .preheader: ; preds = %74 %80 = sub nuw i32 %3, %79 - %.not65 = icmp ult i32 %80, 4 - br i1 %.not65, label %.loopexit, label %.lr.ph.preheader - -.lr.ph.preheader: ; preds = %.preheader %81 = lshr i32 %80, 2 - br label %.lr.ph + %.not65 = icmp ult i32 %80, 4 + br i1 %.not65, label %.loopexit, label %.lr.ph -.lr.ph: ; preds = %.lr.ph.preheader, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit - %.03962 = phi i32 [ %83, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit ], [ 0, %.lr.ph.preheader ] +.lr.ph: ; preds = %.preheader, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit + %.03962 = phi i32 [ %83, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit ], [ 0, %.preheader ] %82 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull @.str.6, i64 noundef 1) to label %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit unwind label %84 diff --git a/bench/zed-rs/optimized/8n2fsvz9zbnw9ojg9jkj0503g.ll b/bench/zed-rs/optimized/8n2fsvz9zbnw9ojg9jkj0503g.ll index e992ba8c889..45ae800d066 100644 --- a/bench/zed-rs/optimized/8n2fsvz9zbnw9ojg9jkj0503g.ll +++ b/bench/zed-rs/optimized/8n2fsvz9zbnw9ojg9jkj0503g.ll @@ -4393,7 +4393,7 @@ _ZN3std2io4Read10read_exact17h69fc1beb8c4a7c5dE.exit.i: ; preds = %"_ZN63_$LT$u8 .loopexit167.i: ; preds = %509, %.preheader166.i %.not82.not.i = icmp eq i64 %.sroa.073.1184.i, 0 %502 = add i64 %.sroa.072.1183.i, 4 - %.sroa.073.1283.i = add i64 %.sroa.073.1184.i, -1 + %.sroa.073.1283.i = add nsw i64 %.sroa.073.1184.i, -1 br i1 %.not82.not.i, label %.loopexit168.i, label %.preheader166.i .preheader166.i: ; preds = %.loopexit167.i, %.preheader166.lr.ph.i @@ -4430,7 +4430,7 @@ _ZN3std2io4Read10read_exact17h69fc1beb8c4a7c5dE.exit.i: ; preds = %"_ZN63_$LT$u8 .loopexit163.i: ; preds = %516, %.preheader162.i %.not83.not.i = icmp eq i64 %.sroa.071.1194.i, 0 %514 = add i64 %.sroa.070.1193.i, 4 - %.sroa.071.1282.i = add i64 %.sroa.071.1194.i, -1 + %.sroa.071.1282.i = add nsw i64 %.sroa.071.1194.i, -1 br i1 %.not83.not.i, label %.thread131.i, label %.preheader162.i .preheader162.i: ; preds = %.loopexit163.i, %.preheader162.lr.ph.i @@ -4541,18 +4541,18 @@ _ZN3std2io4Read10read_exact17h69fc1beb8c4a7c5dE.exit.i: ; preds = %"_ZN63_$LT$u8 .loopexit156.i: ; preds = %550, %.preheader155.i %.not85.not.i = icmp eq i64 %.sroa.077.1209.i, 0 - %543 = add i64 %.sroa.076.1208.i, 4 + %543 = add nuw nsw i64 %.sroa.076.1208.i, 4 br i1 %.not85.not.i, label %.loopexit157.i, label %.preheader155.i .preheader155.i: ; preds = %.loopexit156.i, %.preheader155.lr.ph.i %.sroa.077.1209.in.i = phi i64 [ %.sroa.0.0.i.i110.i, %.preheader155.lr.ph.i ], [ %.sroa.077.1209.i, %.loopexit156.i ] %.sroa.076.1208.i = phi i64 [ 8, %.preheader155.lr.ph.i ], [ %543, %.loopexit156.i ] %.sroa.633.0207.i = phi i64 [ 4, %.preheader155.lr.ph.i ], [ %.sroa.076.1208.i, %.loopexit156.i ] - %.sroa.077.1209.i = add i64 %.sroa.077.1209.in.i, -1 + %.sroa.077.1209.i = add nsw i64 %.sroa.077.1209.in.i, -1 br i1 %.not230.i, label %.loopexit156.i, label %.lr.ph203.i .lr.ph203.i: ; preds = %.preheader155.i - %544 = add i64 %.sroa.633.0207.i, %395 + %544 = add nuw nsw i64 %.sroa.633.0207.i, %395 %545 = mul i64 %544, %376 %546 = add i64 %545, %467 br label %550 @@ -4569,7 +4569,7 @@ _ZN3std2io4Read10read_exact17h69fc1beb8c4a7c5dE.exit.i: ; preds = %"_ZN63_$LT$u8 550: ; preds = %550, %.lr.ph203.i %.sroa.066.0202.i = phi i64 [ 0, %.lr.ph203.i ], [ %551, %550 ] %551 = add nuw nsw i64 %.sroa.066.0202.i, 1 - %552 = add i64 %546, %.sroa.066.0202.i + %552 = add nuw nsw i64 %546, %.sroa.066.0202.i call void @_ZN10image_webp11loop_filter15subblock_filter17h0bc3b7c1f6b38ca8E(i8 noundef %.sroa.010.0.i276.i, i8 noundef %spec.store.select.i277.i, i8 noundef %465, ptr noalias noundef nonnull align 1 %402, i64 noundef %403, i64 noundef %552, i64 noundef %376), !noalias !811 %exitcond253.not.i = icmp eq i64 %551, %umax252.i br i1 %exitcond253.not.i, label %.loopexit156.i, label %550 @@ -4583,7 +4583,7 @@ _ZN3std2io4Read10read_exact17h69fc1beb8c4a7c5dE.exit.i: ; preds = %"_ZN63_$LT$u8 %.sroa.075.1219.in.i = phi i64 [ %.sroa.0.0.i.i108.i, %.preheader.lr.ph.i ], [ %.sroa.075.1219.i, %.loopexit.i ] %.sroa.629.0218.i = phi i64 [ 4, %.preheader.lr.ph.i ], [ %.sroa.074.1217.i, %.loopexit.i ] %.sroa.074.1217.i = phi i64 [ 8, %.preheader.lr.ph.i ], [ %553, %.loopexit.i ] - %.sroa.075.1219.i = add i64 %.sroa.075.1219.in.i, -1 + %.sroa.075.1219.i = add nsw i64 %.sroa.075.1219.in.i, -1 br i1 %.not231.i, label %.loopexit.i, label %.lr.ph213.i .lr.ph213.i: ; preds = %.preheader.i diff --git a/bench/zed-rs/optimized/8v1arbgzeu88ynf653tketgap.ll b/bench/zed-rs/optimized/8v1arbgzeu88ynf653tketgap.ll index 1d380812c3f..455549363da 100644 --- a/bench/zed-rs/optimized/8v1arbgzeu88ynf653tketgap.ll +++ b/bench/zed-rs/optimized/8v1arbgzeu88ynf653tketgap.ll @@ -45358,14 +45358,14 @@ define hidden void @"_ZN170_$LT$exr..image..read..specific_channels..SpecificCha %158 = getelementptr inbounds nuw i8, ptr %85, i64 8 %159 = getelementptr inbounds { { { float, float }, float }, float }, ptr %.sroa.5.0.copyload, i64 %storemerge20.i.i %.idx.i.i = shl nsw i64 %storemerge20.i.i, 4 - %160 = and i64 %storemerge20.i.i, 15 + %160 = lshr i64 %.idx.i.i, 8 + %161 = and i64 %storemerge20.i.i, 15 %.not.i68.i.i = icmp ult i64 %.idx.i.i, 256 - %161 = lshr i64 %.idx.i.i, 8 - %162 = icmp eq i64 %160, 0 - %163 = shl nuw nsw i64 %160, 2 + %162 = icmp eq i64 %161, 0 + %163 = shl nuw nsw i64 %161, 2 %164 = getelementptr inbounds nuw i8, ptr %71, i64 %163 %165 = shl i64 %storemerge20.i.i, 1 - %166 = shl nuw nsw i64 %160, 1 + %166 = shl nuw nsw i64 %161, 1 %167 = getelementptr inbounds nuw i8, ptr %77, i64 %163 %168 = getelementptr inbounds nuw i8, ptr %83, i64 %163 %169 = getelementptr inbounds i8, ptr %.sroa.5.0.copyload, i64 %.idx.i.i @@ -45472,7 +45472,7 @@ default.unreachable: ; preds = %"_ZN3exr5image4read br i1 %.not.i68.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h0b436eefa0172855E.exit._crit_edge.i.i.i", label %.lr.ph.i.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h0b436eefa0172855E.exit.loopexit.i.i.i": ; preds = %235 - %exitcond.not.i.i.i = icmp eq i64 %217, %161 + %exitcond.not.i.i.i = icmp eq i64 %217, %160 br i1 %exitcond.not.i.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h0b436eefa0172855E.exit._crit_edge.i.i.i", label %.lr.ph.i.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h0b436eefa0172855E.exit._crit_edge.i.i.i": ; preds = %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h0b436eefa0172855E.exit.loopexit.i.i.i", %.noexc14 @@ -45613,7 +45613,7 @@ _ZN3exr5block7samples16FromNativeSample9from_u32s17h280aa2bf7c60018aE.exit.i.i.i %253 = load i32, ptr %251, align 4, !alias.scope !13404, !noalias !13409, !noundef !14 %254 = uitofp i32 %253 to float store float %254, ptr %252, align 4, !alias.scope !13407, !noalias !13410 - %exitcond.not.i13.i.i.i = icmp eq i64 %250, %160 + %exitcond.not.i13.i.i.i = icmp eq i64 %250, %161 br i1 %exitcond.not.i13.i.i.i, label %_ZN3exr5block7samples16FromNativeSample9from_u32s17h280aa2bf7c60018aE.exit14.i.i.i, label %.lr.ph.i11.i.i.i _ZN3exr5block7samples16FromNativeSample9from_u32s17h280aa2bf7c60018aE.exit14.i.i.i: ; preds = %.lr.ph.i11.i.i.i @@ -45667,7 +45667,7 @@ _ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched17h0f br i1 %.not.i68.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h231c9e143076061dE.exit._crit_edge.i.i.i", label %.lr.ph.i56.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h231c9e143076061dE.exit.loopexit.i.i.i": ; preds = %338 - %exitcond.not.i64.i.i = icmp eq i64 %271, %161 + %exitcond.not.i64.i.i = icmp eq i64 %271, %160 br i1 %exitcond.not.i64.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h231c9e143076061dE.exit._crit_edge.i.i.i", label %.lr.ph.i56.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h231c9e143076061dE.exit._crit_edge.i.i.i": ; preds = %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h231c9e143076061dE.exit.loopexit.i.i.i", %.noexc26 @@ -45890,7 +45890,7 @@ _ZN4half8binary164arch19f16_to_f32_fallback17h933e17d3c6a5f97aE.exit.i.i.i192: ; "_ZN4core6result19Result$LT$T$C$E$GT$6expect17hbf1f3257c2f9ff57E.exit9.i.i.i": ; preds = %.noexc32, %.noexc31 call void @llvm.lifetime.end.p0(ptr nonnull %75), !noalias !13417 - invoke fastcc void @"_ZN61_$LT$f32$u20$as$u20$exr..block..samples..FromNativeSample$GT$9from_f16s17h962e79544cad257bE"(ptr noalias noundef nonnull readonly align 2 %78, i64 noundef %160, ptr noalias noundef nonnull align 4 %77, i64 noundef %160) + invoke fastcc void @"_ZN61_$LT$f32$u20$as$u20$exr..block..samples..FromNativeSample$GT$9from_f16s17h962e79544cad257bE"(ptr noalias noundef nonnull readonly align 2 %78, i64 noundef %161, ptr noalias noundef nonnull align 4 %77, i64 noundef %161) to label %.noexc33 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit .noexc33: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6expect17hbf1f3257c2f9ff57E.exit9.i.i.i" @@ -45944,7 +45944,7 @@ _ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched17h2e br i1 %.not.i68.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17hfcb01eea03268729E.exit._crit_edge.i.i.i", label %.lr.ph.i69.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17hfcb01eea03268729E.exit.loopexit.i.i.i": ; preds = %382 - %exitcond.not.i79.i.i = icmp eq i64 %369, %161 + %exitcond.not.i79.i.i = icmp eq i64 %369, %160 br i1 %exitcond.not.i79.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17hfcb01eea03268729E.exit._crit_edge.i.i.i", label %.lr.ph.i69.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17hfcb01eea03268729E.exit._crit_edge.i.i.i": ; preds = %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17hfcb01eea03268729E.exit.loopexit.i.i.i", %.noexc38 @@ -46127,7 +46127,7 @@ _ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched17h2a br i1 %.not.i68.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17haa148987e1209348E.exit._crit_edge.i.i.i.i", label %.lr.ph.i.i.i9.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17haa148987e1209348E.exit.loopexit.i.i.i.i": ; preds = %432 - %exitcond.not.i.i.i10.i = icmp eq i64 %414, %161 + %exitcond.not.i.i.i10.i = icmp eq i64 %414, %160 br i1 %exitcond.not.i.i.i10.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17haa148987e1209348E.exit._crit_edge.i.i.i.i", label %.lr.ph.i.i.i9.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17haa148987e1209348E.exit._crit_edge.i.i.i.i": ; preds = %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17haa148987e1209348E.exit.loopexit.i.i.i.i", %.noexc48 @@ -46268,7 +46268,7 @@ _ZN3exr5block7samples16FromNativeSample9from_u32s17h280aa2bf7c60018aE.exit.i.i.i %450 = load i32, ptr %448, align 4, !alias.scope !13562, !noalias !13567, !noundef !14 %451 = uitofp i32 %450 to float store float %451, ptr %449, align 4, !alias.scope !13565, !noalias !13568 - %exitcond.not.i13.i.i.i.i = icmp eq i64 %447, %160 + %exitcond.not.i13.i.i.i.i = icmp eq i64 %447, %161 br i1 %exitcond.not.i13.i.i.i.i, label %_ZN3exr5block7samples16FromNativeSample9from_u32s17h280aa2bf7c60018aE.exit14.i.i.i.i, label %.lr.ph.i11.i.i.i.i _ZN3exr5block7samples16FromNativeSample9from_u32s17h280aa2bf7c60018aE.exit14.i.i.i.i: ; preds = %.lr.ph.i11.i.i.i.i @@ -46322,7 +46322,7 @@ _ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched17hb6 br i1 %.not.i68.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17ha5e5b9f099b9429dE.exit._crit_edge.i.i.i.i", label %.lr.ph.i56.i.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17ha5e5b9f099b9429dE.exit.loopexit.i.i.i.i": ; preds = %535 - %exitcond.not.i64.i.i.i = icmp eq i64 %468, %161 + %exitcond.not.i64.i.i.i = icmp eq i64 %468, %160 br i1 %exitcond.not.i64.i.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17ha5e5b9f099b9429dE.exit._crit_edge.i.i.i.i", label %.lr.ph.i56.i.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17ha5e5b9f099b9429dE.exit._crit_edge.i.i.i.i": ; preds = %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17ha5e5b9f099b9429dE.exit.loopexit.i.i.i.i", %.noexc58 @@ -46545,7 +46545,7 @@ _ZN4half8binary164arch19f16_to_f32_fallback17h933e17d3c6a5f97aE.exit.i.i.i175: ; "_ZN4core6result19Result$LT$T$C$E$GT$6expect17hbf1f3257c2f9ff57E.exit9.i.i.i.i": ; preds = %.noexc64, %.noexc63 call void @llvm.lifetime.end.p0(ptr nonnull %56), !noalias !13575 - invoke fastcc void @"_ZN61_$LT$f32$u20$as$u20$exr..block..samples..FromNativeSample$GT$9from_f16s17h962e79544cad257bE"(ptr noalias noundef nonnull readonly align 2 %59, i64 noundef %160, ptr noalias noundef nonnull align 4 %58, i64 noundef %160) + invoke fastcc void @"_ZN61_$LT$f32$u20$as$u20$exr..block..samples..FromNativeSample$GT$9from_f16s17h962e79544cad257bE"(ptr noalias noundef nonnull readonly align 2 %59, i64 noundef %161, ptr noalias noundef nonnull align 4 %58, i64 noundef %161) to label %.noexc65 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit .noexc65: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6expect17hbf1f3257c2f9ff57E.exit9.i.i.i.i" @@ -46599,7 +46599,7 @@ _ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched17h35 br i1 %.not.i68.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h14dfeadb41116c00E.exit._crit_edge.i.i.i.i", label %.lr.ph.i69.i.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h14dfeadb41116c00E.exit.loopexit.i.i.i.i": ; preds = %579 - %exitcond.not.i79.i.i.i = icmp eq i64 %566, %161 + %exitcond.not.i79.i.i.i = icmp eq i64 %566, %160 br i1 %exitcond.not.i79.i.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h14dfeadb41116c00E.exit._crit_edge.i.i.i.i", label %.lr.ph.i69.i.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h14dfeadb41116c00E.exit._crit_edge.i.i.i.i": ; preds = %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h14dfeadb41116c00E.exit.loopexit.i.i.i.i", %.noexc70 @@ -46779,7 +46779,7 @@ _ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched17h53 br i1 %.not.i68.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17hd584069adede5721E.exit._crit_edge.i.i.i.i.i", label %.lr.ph.i.i.i6.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17hd584069adede5721E.exit.loopexit.i.i.i.i.i": ; preds = %629 - %exitcond.not.i.i.i7.i.i = icmp eq i64 %611, %161 + %exitcond.not.i.i.i7.i.i = icmp eq i64 %611, %160 br i1 %exitcond.not.i.i.i7.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17hd584069adede5721E.exit._crit_edge.i.i.i.i.i", label %.lr.ph.i.i.i6.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17hd584069adede5721E.exit._crit_edge.i.i.i.i.i": ; preds = %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17hd584069adede5721E.exit.loopexit.i.i.i.i.i", %.noexc80 @@ -46920,7 +46920,7 @@ _ZN3exr5block7samples16FromNativeSample9from_u32s17h280aa2bf7c60018aE.exit.i.i.i %647 = load i32, ptr %645, align 4, !alias.scope !13720, !noalias !13725, !noundef !14 %648 = uitofp i32 %647 to float store float %648, ptr %646, align 4, !alias.scope !13723, !noalias !13726 - %exitcond.not.i13.i.i.i.i.i = icmp eq i64 %644, %160 + %exitcond.not.i13.i.i.i.i.i = icmp eq i64 %644, %161 br i1 %exitcond.not.i13.i.i.i.i.i, label %_ZN3exr5block7samples16FromNativeSample9from_u32s17h280aa2bf7c60018aE.exit14.i.i.i.i.i, label %.lr.ph.i11.i.i.i.i.i _ZN3exr5block7samples16FromNativeSample9from_u32s17h280aa2bf7c60018aE.exit14.i.i.i.i.i: ; preds = %.lr.ph.i11.i.i.i.i.i @@ -46974,7 +46974,7 @@ _ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched17hf9 br i1 %.not.i68.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17hf33718d80e332ac6E.exit._crit_edge.i.i.i.i.i", label %.lr.ph.i56.i.i.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17hf33718d80e332ac6E.exit.loopexit.i.i.i.i.i": ; preds = %732 - %exitcond.not.i64.i.i.i.i = icmp eq i64 %665, %161 + %exitcond.not.i64.i.i.i.i = icmp eq i64 %665, %160 br i1 %exitcond.not.i64.i.i.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17hf33718d80e332ac6E.exit._crit_edge.i.i.i.i.i", label %.lr.ph.i56.i.i.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17hf33718d80e332ac6E.exit._crit_edge.i.i.i.i.i": ; preds = %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17hf33718d80e332ac6E.exit.loopexit.i.i.i.i.i", %.noexc90 @@ -47197,7 +47197,7 @@ _ZN4half8binary164arch19f16_to_f32_fallback17h933e17d3c6a5f97aE.exit.i.i.i158: ; "_ZN4core6result19Result$LT$T$C$E$GT$6expect17hbf1f3257c2f9ff57E.exit9.i.i.i.i.i": ; preds = %.noexc96, %.noexc95 call void @llvm.lifetime.end.p0(ptr nonnull %37), !noalias !13733 - invoke fastcc void @"_ZN61_$LT$f32$u20$as$u20$exr..block..samples..FromNativeSample$GT$9from_f16s17h962e79544cad257bE"(ptr noalias noundef nonnull readonly align 2 %40, i64 noundef %160, ptr noalias noundef nonnull align 4 %39, i64 noundef %160) + invoke fastcc void @"_ZN61_$LT$f32$u20$as$u20$exr..block..samples..FromNativeSample$GT$9from_f16s17h962e79544cad257bE"(ptr noalias noundef nonnull readonly align 2 %40, i64 noundef %161, ptr noalias noundef nonnull align 4 %39, i64 noundef %161) to label %.noexc97 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit .noexc97: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6expect17hbf1f3257c2f9ff57E.exit9.i.i.i.i.i" @@ -47251,7 +47251,7 @@ _ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched17hbf br i1 %.not.i68.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17hd0795b66b9a0d188E.exit._crit_edge.i.i.i.i.i", label %.lr.ph.i69.i.i.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17hd0795b66b9a0d188E.exit.loopexit.i.i.i.i.i": ; preds = %776 - %exitcond.not.i79.i.i.i.i = icmp eq i64 %763, %161 + %exitcond.not.i79.i.i.i.i = icmp eq i64 %763, %160 br i1 %exitcond.not.i79.i.i.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17hd0795b66b9a0d188E.exit._crit_edge.i.i.i.i.i", label %.lr.ph.i69.i.i.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17hd0795b66b9a0d188E.exit._crit_edge.i.i.i.i.i": ; preds = %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17hd0795b66b9a0d188E.exit.loopexit.i.i.i.i.i", %.noexc102 @@ -47430,7 +47430,7 @@ _ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched17hd1 br i1 %.not.i68.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h7841ed94d2fca133E.exit._crit_edge.i.i.i.i.i.i", label %.lr.ph.i.i.i4.i.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h7841ed94d2fca133E.exit.loopexit.i.i.i.i.i.i": ; preds = %826 - %exitcond.not.i.i.i5.i.i.i = icmp eq i64 %808, %161 + %exitcond.not.i.i.i5.i.i.i = icmp eq i64 %808, %160 br i1 %exitcond.not.i.i.i5.i.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h7841ed94d2fca133E.exit._crit_edge.i.i.i.i.i.i", label %.lr.ph.i.i.i4.i.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h7841ed94d2fca133E.exit._crit_edge.i.i.i.i.i.i": ; preds = %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h7841ed94d2fca133E.exit.loopexit.i.i.i.i.i.i", %.noexc112 @@ -47570,7 +47570,7 @@ _ZN3exr5block7samples16FromNativeSample9from_u32s17h280aa2bf7c60018aE.exit.i.i.i %843 = load i32, ptr %841, align 4, !alias.scope !13874, !noalias !13879, !noundef !14 %844 = uitofp i32 %843 to float store float %844, ptr %842, align 4, !alias.scope !13877, !noalias !13880 - %exitcond.not.i13.i.i.i.i.i.i = icmp eq i64 %840, %160 + %exitcond.not.i13.i.i.i.i.i.i = icmp eq i64 %840, %161 br i1 %exitcond.not.i13.i.i.i.i.i.i, label %_ZN3exr5block7samples16FromNativeSample9from_u32s17h280aa2bf7c60018aE.exit14.i.i.i.i.i.i, label %.lr.ph.i11.i.i.i.i.i.i _ZN3exr5block7samples16FromNativeSample9from_u32s17h280aa2bf7c60018aE.exit14.i.i.i.i.i.i: ; preds = %.lr.ph.i11.i.i.i.i.i.i @@ -47623,7 +47623,7 @@ _ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched17h6f br i1 %.not.i68.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h121d98f8d11958b9E.exit._crit_edge.i.i.i.i.i.i", label %.lr.ph.i56.i.i.i.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h121d98f8d11958b9E.exit.loopexit.i.i.i.i.i.i": ; preds = %927 - %exitcond.not.i64.i.i.i.i.i = icmp eq i64 %860, %161 + %exitcond.not.i64.i.i.i.i.i = icmp eq i64 %860, %160 br i1 %exitcond.not.i64.i.i.i.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h121d98f8d11958b9E.exit._crit_edge.i.i.i.i.i.i", label %.lr.ph.i56.i.i.i.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h121d98f8d11958b9E.exit._crit_edge.i.i.i.i.i.i": ; preds = %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h121d98f8d11958b9E.exit.loopexit.i.i.i.i.i.i", %.noexc122 @@ -47845,7 +47845,7 @@ _ZN4half8binary164arch19f16_to_f32_fallback17h933e17d3c6a5f97aE.exit.i.i.i: ; pr "_ZN4core6result19Result$LT$T$C$E$GT$6expect17hbf1f3257c2f9ff57E.exit9.i.i.i.i.i.i": ; preds = %.noexc128, %.noexc127 call void @llvm.lifetime.end.p0(ptr nonnull %18), !noalias !13887 - invoke fastcc void @"_ZN61_$LT$f32$u20$as$u20$exr..block..samples..FromNativeSample$GT$9from_f16s17h962e79544cad257bE"(ptr noalias noundef nonnull readonly align 2 %21, i64 noundef %160, ptr noalias noundef nonnull align 4 %20, i64 noundef %160) + invoke fastcc void @"_ZN61_$LT$f32$u20$as$u20$exr..block..samples..FromNativeSample$GT$9from_f16s17h962e79544cad257bE"(ptr noalias noundef nonnull readonly align 2 %21, i64 noundef %161, ptr noalias noundef nonnull align 4 %20, i64 noundef %161) to label %.noexc129 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit .noexc129: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6expect17hbf1f3257c2f9ff57E.exit9.i.i.i.i.i.i" @@ -47915,7 +47915,7 @@ _ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched17h60 br i1 %.not.i68.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h65da184ca6e83e25E.exit._crit_edge.i.i.i.i.i.i", label %.lr.ph.i69.i.i.i.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h65da184ca6e83e25E.exit.loopexit.i.i.i.i.i.i": ; preds = %972 - %exitcond.not.i79.i.i.i.i.i = icmp eq i64 %959, %161 + %exitcond.not.i79.i.i.i.i.i = icmp eq i64 %959, %160 br i1 %exitcond.not.i79.i.i.i.i.i, label %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h65da184ca6e83e25E.exit._crit_edge.i.i.i.i.i.i", label %.lr.ph.i69.i.i.i.i.i "_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h65da184ca6e83e25E.exit._crit_edge.i.i.i.i.i.i": ; preds = %"_ZN3exr5image4read17specific_channels36read_and_convert_all_samples_batched28_$u7b$$u7b$closure$u7d$$u7d$17h65da184ca6e83e25E.exit.loopexit.i.i.i.i.i.i", %.noexc134 diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c8d0fce0bf7..ee357bf261b 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/159942 export COMPTIME_MODE=0 export STAT_MODE=0 export STAT_NAME=""