diff --git a/bench/libigl/optimized/coplanar.ll b/bench/libigl/optimized/coplanar.ll index 4b8defff0e6..98ccabf36da 100644 --- a/bench/libigl/optimized/coplanar.ll +++ b/bench/libigl/optimized/coplanar.ll @@ -8235,17 +8235,17 @@ _ZN5boost14multiprecision8backends12eval_is_zeroILm512ELm0ELNS0_16cpp_integer_ty %49 = load i8, ptr %48, align 2, !range !81 %50 = trunc nuw i8 %49 to i1 %or.cond.i.i.i.i = select i1 %36, i1 true, i1 %50 - br i1 %or.cond.i.i.i.i, label %56, label %51 + br i1 %or.cond.i.i.i.i, label %55, label %50 -51: ; preds = %46 - %52 = getelementptr inbounds nuw i8, ptr %13, i64 8 - %53 = load ptr, ptr %52, align 8 - %54 = load i64, ptr %13, align 16 - %55 = shl i64 %54, 3 - call void @_ZdlPvm(ptr noundef %53, i64 noundef %55) #32 - br label %56 +56: ; preds = %46 + %51 = getelementptr inbounds nuw i8, ptr %13, i64 8 + %52 = load ptr, ptr %51, align 8 + %53 = load i64, ptr %13, align 16 + %54 = shl i64 %53, 3 + call void @_ZdlPvm(ptr noundef %52, i64 noundef %54) #32 + br label %55 -56: ; preds = %51, %46 +55: ; preds = %50, %_ZN4CGAL4signINS_9cpp_floatEEENS_22Real_embeddable_traitsIT_E3Sgn11result_typeERKS3_.exit.i call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %13) #26 %57 = getelementptr inbounds nuw i8, ptr %22, i64 73 %58 = load i8, ptr %57, align 1, !tbaa !67, !range !81, !noundef !82 @@ -8256,7 +8256,7 @@ _ZN5boost14multiprecision8backends12eval_is_zeroILm512ELm0ELNS0_16cpp_integer_ty %or.cond.i.i.i = select i1 %59, i1 true, i1 %62 br i1 %or.cond.i.i.i, label %_ZN4CGAL9cpp_floatD2Ev.exit, label %63 -63: ; preds = %56 +63: ; preds = %55 %64 = getelementptr inbounds nuw i8, ptr %22, i64 8 %65 = load ptr, ptr %64, align 8 %66 = load i64, ptr %22, align 16 @@ -8264,7 +8264,7 @@ _ZN5boost14multiprecision8backends12eval_is_zeroILm512ELm0ELNS0_16cpp_integer_ty call void @_ZdlPvm(ptr noundef %65, i64 noundef %67) #32 br label %_ZN4CGAL9cpp_floatD2Ev.exit -_ZN4CGAL9cpp_floatD2Ev.exit: ; preds = %56, %63 +_ZN4CGAL9cpp_floatD2Ev.exit: ; preds = %55, %63 call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %22) #26 %68 = getelementptr inbounds nuw i8, ptr %21, i64 73 %69 = load i8, ptr %68, align 1, !tbaa !67, !range !81, !noundef !82 @@ -8417,9 +8417,8 @@ _ZN4CGAL9cpp_floatD2Ev.exit48: ; preds = %_ZN4CGAL9cpp_floatD br label %_ZN4CGAL9cpp_floatD2Ev.exit50 _ZN4CGAL9cpp_floatD2Ev.exit50: ; preds = %_ZN4CGAL9cpp_floatD2Ev.exit48, %151 - %.0.i.i.i.i.i.i.i.i = call noundef i32 @llvm.scmp.i32.i32(i32 %47, i32 0) call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %14) #26 - ret i32 %.0.i.i.i.i.i.i.i.i + ret i32 %46 156: ; preds = %12 %157 = landingpad { ptr, i32 } @@ -8482,7 +8481,7 @@ _ZN4CGAL9cpp_floatD2Ev.exit50: ; preds = %_ZN4CGAL9cpp_floatD br label %_ZN4CGAL9cpp_floatD2Ev.exit52 _ZN4CGAL9cpp_floatD2Ev.exit52: ; preds = %180, %172, %170 - %.pn = phi { ptr, i32 } [ %171, %170 ], [ %173, %172 ], [ %173, %180 ] + %.pn = phi { ptr, i32 } [ %171, %169 ], [ %173, %171 ], [ %173, %179 ] call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %22) #26 %185 = getelementptr inbounds nuw i8, ptr %21, i64 73 %186 = load i8, ptr %185, align 1, !tbaa !67, !range !81, !noundef !82 @@ -8502,7 +8501,7 @@ _ZN4CGAL9cpp_floatD2Ev.exit52: ; preds = %180, %172, %170 br label %_ZN4CGAL9cpp_floatD2Ev.exit54 _ZN4CGAL9cpp_floatD2Ev.exit54: ; preds = %191, %_ZN4CGAL9cpp_floatD2Ev.exit52, %168 - %.pn.pn = phi { ptr, i32 } [ %169, %168 ], [ %.pn, %_ZN4CGAL9cpp_floatD2Ev.exit52 ], [ %.pn, %191 ] + %.pn.pn = phi { ptr, i32 } [ %169, %167 ], [ %.pn, %_ZN4CGAL9cpp_floatD2Ev.exit52 ], [ %.pn, %190 ] call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %21) #26 %196 = getelementptr inbounds nuw i8, ptr %20, i64 73 %197 = load i8, ptr %196, align 1, !tbaa !67, !range !81, !noundef !82 @@ -8522,7 +8521,7 @@ _ZN4CGAL9cpp_floatD2Ev.exit54: ; preds = %191, %_ZN4CGAL9cpp_ br label %_ZN4CGAL9cpp_floatD2Ev.exit56 _ZN4CGAL9cpp_floatD2Ev.exit56: ; preds = %202, %_ZN4CGAL9cpp_floatD2Ev.exit54, %166 - %.pn.pn.pn = phi { ptr, i32 } [ %167, %166 ], [ %.pn.pn, %_ZN4CGAL9cpp_floatD2Ev.exit54 ], [ %.pn.pn, %202 ] + %.pn.pn.pn = phi { ptr, i32 } [ %167, %165 ], [ %.pn.pn, %_ZN4CGAL9cpp_floatD2Ev.exit54 ], [ %.pn.pn, %201 ] call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %20) #26 %207 = getelementptr inbounds nuw i8, ptr %19, i64 73 %208 = load i8, ptr %207, align 1, !tbaa !67, !range !81, !noundef !82 @@ -8542,7 +8541,7 @@ _ZN4CGAL9cpp_floatD2Ev.exit56: ; preds = %202, %_ZN4CGAL9cpp_ br label %_ZN4CGAL9cpp_floatD2Ev.exit58 _ZN4CGAL9cpp_floatD2Ev.exit58: ; preds = %213, %_ZN4CGAL9cpp_floatD2Ev.exit56, %164 - %.pn.pn.pn.pn = phi { ptr, i32 } [ %165, %164 ], [ %.pn.pn.pn, %_ZN4CGAL9cpp_floatD2Ev.exit56 ], [ %.pn.pn.pn, %213 ] + %.pn.pn.pn.pn = phi { ptr, i32 } [ %165, %163 ], [ %.pn.pn.pn, %_ZN4CGAL9cpp_floatD2Ev.exit56 ], [ %.pn.pn.pn, %212 ] call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %19) #26 %218 = getelementptr inbounds nuw i8, ptr %18, i64 73 %219 = load i8, ptr %218, align 1, !tbaa !67, !range !81, !noundef !82 @@ -8562,7 +8561,7 @@ _ZN4CGAL9cpp_floatD2Ev.exit58: ; preds = %213, %_ZN4CGAL9cpp_ br label %_ZN4CGAL9cpp_floatD2Ev.exit60 _ZN4CGAL9cpp_floatD2Ev.exit60: ; preds = %224, %_ZN4CGAL9cpp_floatD2Ev.exit58, %162 - %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %163, %162 ], [ %.pn.pn.pn.pn, %_ZN4CGAL9cpp_floatD2Ev.exit58 ], [ %.pn.pn.pn.pn, %224 ] + %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %163, %161 ], [ %.pn.pn.pn.pn, %_ZN4CGAL9cpp_floatD2Ev.exit58 ], [ %.pn.pn.pn.pn, %223 ] call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %18) #26 %229 = getelementptr inbounds nuw i8, ptr %17, i64 73 %230 = load i8, ptr %229, align 1, !tbaa !67, !range !81, !noundef !82 @@ -8582,7 +8581,7 @@ _ZN4CGAL9cpp_floatD2Ev.exit60: ; preds = %224, %_ZN4CGAL9cpp_ br label %_ZN4CGAL9cpp_floatD2Ev.exit62 _ZN4CGAL9cpp_floatD2Ev.exit62: ; preds = %235, %_ZN4CGAL9cpp_floatD2Ev.exit60, %160 - %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %161, %160 ], [ %.pn.pn.pn.pn.pn, %_ZN4CGAL9cpp_floatD2Ev.exit60 ], [ %.pn.pn.pn.pn.pn, %235 ] + %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %161, %159 ], [ %.pn.pn.pn.pn.pn, %_ZN4CGAL9cpp_floatD2Ev.exit60 ], [ %.pn.pn.pn.pn.pn, %234 ] call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %17) #26 %240 = getelementptr inbounds nuw i8, ptr %16, i64 73 %241 = load i8, ptr %240, align 1, !tbaa !67, !range !81, !noundef !82 @@ -8602,7 +8601,7 @@ _ZN4CGAL9cpp_floatD2Ev.exit62: ; preds = %235, %_ZN4CGAL9cpp_ br label %_ZN4CGAL9cpp_floatD2Ev.exit64 _ZN4CGAL9cpp_floatD2Ev.exit64: ; preds = %246, %_ZN4CGAL9cpp_floatD2Ev.exit62, %158 - %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %159, %158 ], [ %.pn.pn.pn.pn.pn.pn, %_ZN4CGAL9cpp_floatD2Ev.exit62 ], [ %.pn.pn.pn.pn.pn.pn, %246 ] + %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %159, %157 ], [ %.pn.pn.pn.pn.pn.pn, %_ZN4CGAL9cpp_floatD2Ev.exit62 ], [ %.pn.pn.pn.pn.pn.pn, %245 ] call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %16) #26 %251 = getelementptr inbounds nuw i8, ptr %15, i64 73 %252 = load i8, ptr %251, align 1, !tbaa !67, !range !81, !noundef !82 @@ -8622,7 +8621,7 @@ _ZN4CGAL9cpp_floatD2Ev.exit64: ; preds = %246, %_ZN4CGAL9cpp_ br label %_ZN4CGAL9cpp_floatD2Ev.exit66 _ZN4CGAL9cpp_floatD2Ev.exit66: ; preds = %257, %_ZN4CGAL9cpp_floatD2Ev.exit64, %156 - %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %157, %156 ], [ %.pn.pn.pn.pn.pn.pn.pn, %_ZN4CGAL9cpp_floatD2Ev.exit64 ], [ %.pn.pn.pn.pn.pn.pn.pn, %257 ] + %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %157, %155 ], [ %.pn.pn.pn.pn.pn.pn.pn, %_ZN4CGAL9cpp_floatD2Ev.exit64 ], [ %.pn.pn.pn.pn.pn.pn.pn, %256 ] call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %15) #26 %262 = getelementptr inbounds nuw i8, ptr %14, i64 73 %263 = load i8, ptr %262, align 1, !tbaa !67, !range !81, !noundef !82 @@ -10117,9 +10116,6 @@ declare i64 @llvm.umin.i64(i64, i64) #30 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare { i64, i1 } @llvm.uadd.with.overflow.i64(i64, i64) #30 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare range(i32 -1, 2) i32 @llvm.scmp.i32.i32(i32, i32) #30 - attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #1 = { mustprogress nocallback nofree nounwind 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 #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } diff --git a/bench/pingora-rs/optimized/3xykeu3ahcx95h5cpflh1bahm.ll b/bench/pingora-rs/optimized/3xykeu3ahcx95h5cpflh1bahm.ll index 4f20a8ea24d..a20de1bb943 100644 --- a/bench/pingora-rs/optimized/3xykeu3ahcx95h5cpflh1bahm.ll +++ b/bench/pingora-rs/optimized/3xykeu3ahcx95h5cpflh1bahm.ll @@ -11955,20 +11955,16 @@ define noundef range(i8 -1, 2) i8 @"_ZN82_$LT$pingora_core..protocols..l4..socke tail call void @llvm.experimental.noalias.scope.decl(metadata !1122) %16 = load i16, ptr %15, align 4, !range !945, !alias.scope !1119, !noalias !1122, !noundef !7 %17 = load i16, ptr %14, align 4, !range !945, !alias.scope !1122, !noalias !1119, !noundef !7 - %18 = icmp eq i16 %16, %17 - br i1 %18, label %19, label %21 - -19: ; preds = %13 - %20 = trunc nuw i16 %16 to i1 - br i1 %20, label %25, label %86 + %18 = sub nsw i16 %16, %17 + %19 = trunc nsw i16 %18 to i8 + %20 = icmp eq i16 %16, %17 + br i1 %20, label %21, label %"_ZN69_$LT$core..net..socket_addr..SocketAddr$u20$as$u20$core..cmp..Ord$GT$3cmp17hac1a1c15e4fde12dE.exit" 21: ; preds = %13 - %22 = zext nneg i16 %17 to i64 - %23 = zext nneg i16 %16 to i64 - %24 = tail call i8 @llvm.scmp.i8.i64(i64 %23, i64 %22) - br label %"_ZN69_$LT$core..net..socket_addr..SocketAddr$u20$as$u20$core..cmp..Ord$GT$3cmp17hac1a1c15e4fde12dE.exit" + %22 = trunc nuw i16 %16 to i1 + br i1 %22, label %23, label %84 -25: ; preds = %19 +25: ; preds = %21 %26 = getelementptr inbounds nuw i8, ptr %0, i64 8 %27 = getelementptr inbounds nuw i8, ptr %1, i64 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1124) @@ -12001,19 +11997,19 @@ define noundef range(i8 -1, 2) i8 @"_ZN82_$LT$pingora_core..protocols..l4..socke %35 = tail call i16 @llvm.bswap.i16(i16 %.sroa.108.0.copyload.i.i.i) store i16 %28, ptr %4, align 2, !noalias !1134 %36 = getelementptr inbounds nuw i8, ptr %4, i64 2 + store i16 %27, ptr %34, align 2, !noalias !1134 + %35 = getelementptr inbounds nuw i8, ptr %4, i64 4 + store i16 %28, ptr %35, align 2, !noalias !1134 + %36 = getelementptr inbounds nuw i8, ptr %4, i64 6 store i16 %29, ptr %36, align 2, !noalias !1134 - %37 = getelementptr inbounds nuw i8, ptr %4, i64 4 + %37 = getelementptr inbounds nuw i8, ptr %4, i64 8 store i16 %30, ptr %37, align 2, !noalias !1134 - %38 = getelementptr inbounds nuw i8, ptr %4, i64 6 + %38 = getelementptr inbounds nuw i8, ptr %4, i64 10 store i16 %31, ptr %38, align 2, !noalias !1134 - %39 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %39 = getelementptr inbounds nuw i8, ptr %4, i64 12 store i16 %32, ptr %39, align 2, !noalias !1134 - %40 = getelementptr inbounds nuw i8, ptr %4, i64 10 + %40 = getelementptr inbounds nuw i8, ptr %4, i64 14 store i16 %33, ptr %40, align 2, !noalias !1134 - %41 = getelementptr inbounds nuw i8, ptr %4, i64 12 - store i16 %34, ptr %41, align 2, !noalias !1134 - %42 = getelementptr inbounds nuw i8, ptr %4, i64 14 - store i16 %35, ptr %42, align 2, !noalias !1134 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3), !noalias !1134 %.sroa.017.0.copyload.i.i.i = load i16, ptr %27, align 4, !alias.scope !1136, !noalias !1135 %.sroa.418.0..sroa_idx.i.i.i = getelementptr inbounds nuw i8, ptr %1, i64 10 @@ -12040,25 +12036,25 @@ define noundef range(i8 -1, 2) i8 @"_ZN82_$LT$pingora_core..protocols..l4..socke %50 = tail call i16 @llvm.bswap.i16(i16 %.sroa.1024.0.copyload.i.i.i) store i16 %43, ptr %3, align 2, !noalias !1134 %51 = getelementptr inbounds nuw i8, ptr %3, i64 2 + store i16 %42, ptr %49, align 2, !noalias !1134 + %50 = getelementptr inbounds nuw i8, ptr %3, i64 4 + store i16 %43, ptr %50, align 2, !noalias !1134 + %51 = getelementptr inbounds nuw i8, ptr %3, i64 6 store i16 %44, ptr %51, align 2, !noalias !1134 - %52 = getelementptr inbounds nuw i8, ptr %3, i64 4 + %52 = getelementptr inbounds nuw i8, ptr %3, i64 8 store i16 %45, ptr %52, align 2, !noalias !1134 - %53 = getelementptr inbounds nuw i8, ptr %3, i64 6 + %53 = getelementptr inbounds nuw i8, ptr %3, i64 10 store i16 %46, ptr %53, align 2, !noalias !1134 - %54 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %54 = getelementptr inbounds nuw i8, ptr %3, i64 12 store i16 %47, ptr %54, align 2, !noalias !1134 - %55 = getelementptr inbounds nuw i8, ptr %3, i64 10 + %55 = getelementptr inbounds nuw i8, ptr %3, i64 14 store i16 %48, ptr %55, align 2, !noalias !1134 - %56 = getelementptr inbounds nuw i8, ptr %3, i64 12 - store i16 %49, ptr %56, align 2, !noalias !1134 - %57 = getelementptr inbounds nuw i8, ptr %3, i64 14 - store i16 %50, ptr %57, align 2, !noalias !1134 tail call void @llvm.experimental.noalias.scope.decl(metadata !1137) tail call void @llvm.experimental.noalias.scope.decl(metadata !1140) br label %58 58: ; preds = %64, %25 - %.sroa.01.0.i.i.i.i = phi i64 [ 0, %25 ], [ %65, %64 ] + %.sroa.01.0.i.i.i.i = phi i64 [ 0, %23 ], [ %65, %62 ] %exitcond.not.i.i.i.i = icmp eq i64 %.sroa.01.0.i.i.i.i, 8 br i1 %exitcond.not.i.i.i.i, label %"_ZN63_$LT$core..net..ip_addr..Ipv6Addr$u20$as$u20$core..cmp..Ord$GT$3cmp17hc9e4bb486f8f927cE.exit.thread.i.i", label %64 @@ -12111,7 +12107,7 @@ define noundef range(i8 -1, 2) i8 @"_ZN82_$LT$pingora_core..protocols..l4..socke %85 = tail call i8 @llvm.ucmp.i8.i32(i32 %72, i32 %74) br label %"_ZN69_$LT$core..net..socket_addr..SocketAddr$u20$as$u20$core..cmp..Ord$GT$3cmp17hac1a1c15e4fde12dE.exit" -86: ; preds = %19 +86: ; preds = %21 %87 = getelementptr inbounds nuw i8, ptr %0, i64 6 %88 = getelementptr inbounds nuw i8, ptr %1, i64 6 tail call void @llvm.experimental.noalias.scope.decl(metadata !1146) @@ -12133,8 +12129,8 @@ define noundef range(i8 -1, 2) i8 @"_ZN82_$LT$pingora_core..protocols..l4..socke %99 = tail call i8 @llvm.scmp.i8.i64(i64 %98, i64 0) br label %"_ZN69_$LT$core..net..socket_addr..SocketAddr$u20$as$u20$core..cmp..Ord$GT$3cmp17hac1a1c15e4fde12dE.exit" -"_ZN69_$LT$core..net..socket_addr..SocketAddr$u20$as$u20$core..cmp..Ord$GT$3cmp17hac1a1c15e4fde12dE.exit": ; preds = %97, %91, %84, %78, %76, %"_ZN63_$LT$core..net..ip_addr..Ipv6Addr$u20$as$u20$core..cmp..Ord$GT$3cmp17hc9e4bb486f8f927cE.exit.i.i", %21, %11, %110, %111, %109, %12 - %.sroa.0.1 = phi i8 [ -1, %12 ], [ 1, %11 ], [ %112, %111 ], [ %., %110 ], [ 1, %109 ], [ %24, %21 ], [ %83, %78 ], [ %85, %84 ], [ %77, %76 ], [ %69, %"_ZN63_$LT$core..net..ip_addr..Ipv6Addr$u20$as$u20$core..cmp..Ord$GT$3cmp17hc9e4bb486f8f927cE.exit.i.i" ], [ %96, %91 ], [ %99, %97 ] +"_ZN69_$LT$core..net..socket_addr..SocketAddr$u20$as$u20$core..cmp..Ord$GT$3cmp17hac1a1c15e4fde12dE.exit": ; preds = %97, %91, %84, %78, %76, %"_ZN63_$LT$core..net..ip_addr..Ipv6Addr$u20$as$u20$core..cmp..Ord$GT$3cmp17hc9e4bb486f8f927cE.exit.i.i", %13, %11, %108, %109, %107, %12 + %.sroa.0.1 = phi i8 [ -1, %12 ], [ 1, %11 ], [ %112, %109 ], [ %., %108 ], [ 1, %107 ], [ %19, %13 ], [ %81, %76 ], [ %85, %82 ], [ %75, %74 ], [ %69, %"_ZN63_$LT$core..net..ip_addr..Ipv6Addr$u20$as$u20$core..cmp..Ord$GT$3cmp17hc9e4bb486f8f927cE.exit.i.i" ], [ %96, %89 ], [ %97, %95 ] ret i8 %.sroa.0.1 100: ; preds = %11 diff --git a/bench/quiche-rs/optimized/6ul87t4hcbwe4e6ac6zvtugwa.ll b/bench/quiche-rs/optimized/6ul87t4hcbwe4e6ac6zvtugwa.ll index 15ec5056ba2..f96d4f82592 100644 --- a/bench/quiche-rs/optimized/6ul87t4hcbwe4e6ac6zvtugwa.ll +++ b/bench/quiche-rs/optimized/6ul87t4hcbwe4e6ac6zvtugwa.ll @@ -5623,8 +5623,8 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br i1 %6, label %.split.us.i.preheader.us, label %.split.i.preheader .split.us.i.preheader.us: ; preds = %4, %30 - %.sroa.3.0.us = phi i64 [ %35, %30 ], [ %2, %4 ] - %.sroa.0.0.us = phi ptr [ %34, %30 ], [ %1, %4 ] + %.sroa.3.0.us = phi i64 [ %35, %31 ], [ %2, %4 ] + %.sroa.0.0.us = phi ptr [ %34, %31 ], [ %1, %4 ] tail call void @llvm.experimental.noalias.scope.decl(metadata !1017) %11 = getelementptr inbounds nuw i8, ptr %.sroa.0.0.us, i64 538 %12 = load i16, ptr %11, align 2, !noalias !1017, !noundef !7 @@ -5644,9 +5644,10 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. tail call void @llvm.experimental.noalias.scope.decl(metadata !1020) tail call void @llvm.experimental.noalias.scope.decl(metadata !1023) %18 = load i64, ptr %.sroa.01.0.us.i.us, align 8, !range !6, !alias.scope !1023, !noalias !1025, !noundef !7 - %19 = tail call i8 @llvm.scmp.i8.i64(i64 %.fr18.i, i64 %18) - %20 = icmp eq i64 %.fr18.i, %18 - br i1 %20, label %21, label %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" + %19 = sub nuw nsw i64 %.fr18.i, %18 + %20 = trunc nsw i64 %19 to i8 + %21 = icmp eq i64 %.fr18.i, %18 + br i1 %21, label %22, label %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" 21: ; preds = %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc35aa2d22f2de718E.exit.us.i.us" %22 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.us.i.us, i64 8 @@ -5655,7 +5656,7 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br label %23 23: ; preds = %24, %21 - %.sroa.01.0.i.i.us.i.us = phi i64 [ 0, %21 ], [ %25, %24 ] + %.sroa.01.0.i.i.us.i.us = phi i64 [ 0, %22 ], [ %25, %25 ] %exitcond.not.i.i.us.i.us = icmp eq i64 %.sroa.01.0.i.i.us.i.us, 3 br i1 %exitcond.not.i.i.us.i.us, label %.split84.us, label %24 @@ -5673,7 +5674,7 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br label %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" "_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us": ; preds = %.split.loop.exit17.i.i.us.i.us, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc35aa2d22f2de718E.exit.us.i.us" - %.sroa.0.0.i5.us.i.us = phi i8 [ %19, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc35aa2d22f2de718E.exit.us.i.us" ], [ %29, %.split.loop.exit17.i.i.us.i.us ] + %.sroa.0.0.i5.us.i.us = phi i8 [ %20, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc35aa2d22f2de718E.exit.us.i.us" ], [ %29, %.split.loop.exit17.i.i.us.i.us ] switch i8 %.sroa.0.0.i5.us.i.us, label %.split16.us.i [ i8 -1, label %.loopexit55.us i8 0, label %.split84.us @@ -5695,8 +5696,8 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br i1 %36, label %.split84.us, label %30 .split.i.preheader: ; preds = %4, %59 - %.sroa.3.0 = phi i64 [ %64, %59 ], [ %2, %4 ] - %.sroa.0.0 = phi ptr [ %63, %59 ], [ %1, %4 ] + %.sroa.3.0 = phi i64 [ %64, %61 ], [ %2, %4 ] + %.sroa.0.0 = phi ptr [ %63, %61 ], [ %1, %4 ] tail call void @llvm.experimental.noalias.scope.decl(metadata !1017) %37 = getelementptr inbounds nuw i8, ptr %.sroa.0.0, i64 538 %38 = load i16, ptr %37, align 2, !noalias !1017, !noundef !7 @@ -5716,26 +5717,27 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. tail call void @llvm.experimental.noalias.scope.decl(metadata !1020) tail call void @llvm.experimental.noalias.scope.decl(metadata !1023) %44 = load i64, ptr %.sroa.01.0.i, align 8, !range !6, !alias.scope !1023, !noalias !1025, !noundef !7 - %45 = tail call i8 @llvm.scmp.i8.i64(i64 %.fr18.i, i64 %44) - %46 = icmp eq i64 %.fr18.i, %44 - br i1 %46, label %47, label %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" - -47: ; preds = %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc35aa2d22f2de718E.exit.i" - %48 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.i, i64 8 - %49 = load ptr, ptr %48, align 8, !alias.scope !1023, !noalias !1025, !nonnull !7, !noundef !7 - %50 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.i, i64 16 - %51 = load i64, ptr %50, align 8, !alias.scope !1023, !noalias !1025, !noundef !7 - %spec.store.select.i.i = tail call i64 @llvm.umin.i64(i64 %10, i64 %51) - %52 = tail call i32 @memcmp(ptr nonnull %8, ptr nonnull %49, i64 %spec.store.select.i.i), !noalias !1036 - %53 = sext i32 %52 to i64 - %54 = icmp eq i32 %52, 0 - %55 = sub i64 %10, %51 - %spec.select.i.i = select i1 %54, i64 %55, i64 %53 - %56 = tail call i8 @llvm.scmp.i8.i64(i64 %spec.select.i.i, i64 0) + %46 = sub nsw i64 %.fr18.i, %44 + %47 = trunc nsw i64 %46 to i8 + %48 = icmp eq i64 %.fr18.i, %45 + br i1 %48, label %49, label %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" + +49: ; preds = %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc35aa2d22f2de718E.exit.i" + %50 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.i, i64 8 + %51 = load ptr, ptr %50, align 8, !alias.scope !1023, !noalias !1025, !nonnull !7, !noundef !7 + %52 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.i, i64 16 + %53 = load i64, ptr %52, align 8, !alias.scope !1023, !noalias !1025, !noundef !7 + %52 = tail call i64 @llvm.umin.i64(i64 %10, i64 %53) + %54 = tail call i32 @memcmp(ptr nonnull %8, ptr nonnull %51, i64 %52), !noalias !1036 + %55 = sext i32 %54 to i64 + %56 = icmp eq i32 %54, 0 + %57 = sub i64 %10, %53 + %spec.select.i.i = select i1 %56, i64 %57, i64 %55 + %58 = tail call i8 @llvm.scmp.i8.i64(i64 %spec.select.i.i, i64 0) br label %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" -"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i": ; preds = %47, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc35aa2d22f2de718E.exit.i" - %.sroa.0.0.i5.i = phi i8 [ %56, %47 ], [ %45, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc35aa2d22f2de718E.exit.i" ] +"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i": ; preds = %49, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc35aa2d22f2de718E.exit.i" + %.sroa.0.0.i5.i = phi i8 [ %58, %49 ], [ %47, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc35aa2d22f2de718E.exit.i" ] switch i8 %.sroa.0.0.i5.i, label %.split16.us.i [ i8 -1, label %.loopexit57 i8 0, label %.split84.us @@ -5751,10 +5753,10 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br i1 %57, label %.split84.us, label %59 .split84.us: ; preds = %.loopexit57, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i", %.loopexit55.us, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us", %23 - %.us-phi86.sink = phi ptr [ %.sroa.0.0.us, %23 ], [ %.sroa.0.0.us, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" ], [ %.sroa.0.0.us, %.loopexit55.us ], [ %.sroa.0.0, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" ], [ %.sroa.0.0, %.loopexit57 ] - %.sink = phi i64 [ %.sroa.3.0.us, %23 ], [ %.sroa.3.0.us, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" ], [ 0, %.loopexit55.us ], [ %.sroa.3.0, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" ], [ 0, %.loopexit57 ] - %.us-phi85.sink = phi i64 [ %.sroa.8.0.us.i.us, %23 ], [ %.sroa.8.0.us.i.us, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" ], [ %.sroa.4.0.i.ph.ph.us, %.loopexit55.us ], [ %.sroa.8.0.i, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" ], [ %.sroa.4.0.i.ph.ph58, %.loopexit57 ] - %storemerge = phi i64 [ 0, %23 ], [ 0, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" ], [ 1, %.loopexit55.us ], [ 0, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" ], [ 1, %.loopexit57 ] + %.us-phi86.sink = phi ptr [ %.sroa.0.0.us, %24 ], [ %.sroa.0.0.us, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" ], [ %.sroa.0.0.us, %.loopexit55.us ], [ %.sroa.0.0, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" ], [ %.sroa.0.0, %.loopexit57 ] + %.sink = phi i64 [ %.sroa.3.0.us, %24 ], [ %.sroa.3.0.us, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" ], [ 0, %.loopexit55.us ], [ %.sroa.3.0, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" ], [ 0, %.loopexit57 ] + %.us-phi85.sink = phi i64 [ %.sroa.8.0.us.i.us, %24 ], [ %.sroa.8.0.us.i.us, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" ], [ %.sroa.4.0.i.ph.ph.us, %.loopexit55.us ], [ %.sroa.8.0.i, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" ], [ %.sroa.4.0.i.ph.ph58, %.loopexit57 ] + %storemerge = phi i64 [ 0, %24 ], [ 0, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" ], [ 1, %.loopexit55.us ], [ 0, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" ], [ 1, %.loopexit57 ] %58 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %.us-phi86.sink, ptr %58, align 8 %.sroa.242.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -5849,8 +5851,8 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br i1 %6, label %.split.us.i.preheader.us, label %.split.i.preheader .split.us.i.preheader.us: ; preds = %4, %30 - %.sroa.3.0.us = phi i64 [ %35, %30 ], [ %2, %4 ] - %.sroa.0.0.us = phi ptr [ %34, %30 ], [ %1, %4 ] + %.sroa.3.0.us = phi i64 [ %35, %31 ], [ %2, %4 ] + %.sroa.0.0.us = phi ptr [ %34, %31 ], [ %1, %4 ] tail call void @llvm.experimental.noalias.scope.decl(metadata !1040) %11 = getelementptr inbounds nuw i8, ptr %.sroa.0.0.us, i64 538 %12 = load i16, ptr %11, align 2, !noalias !1040, !noundef !7 @@ -5870,9 +5872,10 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. tail call void @llvm.experimental.noalias.scope.decl(metadata !1043) tail call void @llvm.experimental.noalias.scope.decl(metadata !1046) %18 = load i64, ptr %.sroa.01.0.us.i.us, align 8, !range !6, !alias.scope !1046, !noalias !1048, !noundef !7 - %19 = tail call i8 @llvm.scmp.i8.i64(i64 %.fr18.i, i64 %18) - %20 = icmp eq i64 %.fr18.i, %18 - br i1 %20, label %21, label %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" + %19 = sub nuw nsw i64 %.fr18.i, %18 + %20 = trunc nsw i64 %19 to i8 + %21 = icmp eq i64 %.fr18.i, %18 + br i1 %21, label %22, label %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" 21: ; preds = %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc35aa2d22f2de718E.exit.us.i.us" %22 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.us.i.us, i64 8 @@ -5881,7 +5884,7 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br label %23 23: ; preds = %24, %21 - %.sroa.01.0.i.i.us.i.us = phi i64 [ 0, %21 ], [ %25, %24 ] + %.sroa.01.0.i.i.us.i.us = phi i64 [ 0, %22 ], [ %25, %25 ] %exitcond.not.i.i.us.i.us = icmp eq i64 %.sroa.01.0.i.i.us.i.us, 3 br i1 %exitcond.not.i.i.us.i.us, label %.split84.us, label %24 @@ -5899,7 +5902,7 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br label %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" "_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us": ; preds = %.split.loop.exit17.i.i.us.i.us, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc35aa2d22f2de718E.exit.us.i.us" - %.sroa.0.0.i5.us.i.us = phi i8 [ %19, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc35aa2d22f2de718E.exit.us.i.us" ], [ %29, %.split.loop.exit17.i.i.us.i.us ] + %.sroa.0.0.i5.us.i.us = phi i8 [ %20, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc35aa2d22f2de718E.exit.us.i.us" ], [ %29, %.split.loop.exit17.i.i.us.i.us ] switch i8 %.sroa.0.0.i5.us.i.us, label %.split16.us.i [ i8 -1, label %.loopexit55.us i8 0, label %.split84.us @@ -5921,8 +5924,8 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br i1 %36, label %.split84.us, label %30 .split.i.preheader: ; preds = %4, %59 - %.sroa.3.0 = phi i64 [ %64, %59 ], [ %2, %4 ] - %.sroa.0.0 = phi ptr [ %63, %59 ], [ %1, %4 ] + %.sroa.3.0 = phi i64 [ %64, %61 ], [ %2, %4 ] + %.sroa.0.0 = phi ptr [ %63, %61 ], [ %1, %4 ] tail call void @llvm.experimental.noalias.scope.decl(metadata !1040) %37 = getelementptr inbounds nuw i8, ptr %.sroa.0.0, i64 538 %38 = load i16, ptr %37, align 2, !noalias !1040, !noundef !7 @@ -5942,26 +5945,27 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. tail call void @llvm.experimental.noalias.scope.decl(metadata !1043) tail call void @llvm.experimental.noalias.scope.decl(metadata !1046) %44 = load i64, ptr %.sroa.01.0.i, align 8, !range !6, !alias.scope !1046, !noalias !1048, !noundef !7 - %45 = tail call i8 @llvm.scmp.i8.i64(i64 %.fr18.i, i64 %44) - %46 = icmp eq i64 %.fr18.i, %44 - br i1 %46, label %47, label %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" - -47: ; preds = %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc35aa2d22f2de718E.exit.i" - %48 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.i, i64 8 - %49 = load ptr, ptr %48, align 8, !alias.scope !1046, !noalias !1048, !nonnull !7, !noundef !7 - %50 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.i, i64 16 - %51 = load i64, ptr %50, align 8, !alias.scope !1046, !noalias !1048, !noundef !7 - %spec.store.select.i.i = tail call i64 @llvm.umin.i64(i64 %10, i64 %51) - %52 = tail call i32 @memcmp(ptr nonnull %8, ptr nonnull %49, i64 %spec.store.select.i.i), !noalias !1059 - %53 = sext i32 %52 to i64 - %54 = icmp eq i32 %52, 0 - %55 = sub i64 %10, %51 - %spec.select.i.i = select i1 %54, i64 %55, i64 %53 - %56 = tail call i8 @llvm.scmp.i8.i64(i64 %spec.select.i.i, i64 0) + %46 = sub nsw i64 %.fr18.i, %44 + %47 = trunc nsw i64 %46 to i8 + %48 = icmp eq i64 %.fr18.i, %45 + br i1 %48, label %49, label %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" + +49: ; preds = %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc35aa2d22f2de718E.exit.i" + %50 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.i, i64 8 + %51 = load ptr, ptr %50, align 8, !alias.scope !1046, !noalias !1048, !nonnull !7, !noundef !7 + %52 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.i, i64 16 + %53 = load i64, ptr %52, align 8, !alias.scope !1046, !noalias !1048, !noundef !7 + %52 = tail call i64 @llvm.umin.i64(i64 %10, i64 %53) + %54 = tail call i32 @memcmp(ptr nonnull %8, ptr nonnull %51, i64 %52), !noalias !1059 + %55 = sext i32 %54 to i64 + %56 = icmp eq i32 %54, 0 + %57 = sub i64 %10, %53 + %spec.select.i.i = select i1 %56, i64 %57, i64 %55 + %58 = tail call i8 @llvm.scmp.i8.i64(i64 %spec.select.i.i, i64 0) br label %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" -"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i": ; preds = %47, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc35aa2d22f2de718E.exit.i" - %.sroa.0.0.i5.i = phi i8 [ %56, %47 ], [ %45, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc35aa2d22f2de718E.exit.i" ] +"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i": ; preds = %49, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc35aa2d22f2de718E.exit.i" + %.sroa.0.0.i5.i = phi i8 [ %58, %49 ], [ %47, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc35aa2d22f2de718E.exit.i" ] switch i8 %.sroa.0.0.i5.i, label %.split16.us.i [ i8 -1, label %.loopexit57 i8 0, label %.split84.us @@ -5977,10 +5981,10 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br i1 %57, label %.split84.us, label %59 .split84.us: ; preds = %.loopexit57, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i", %.loopexit55.us, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us", %23 - %.us-phi86.sink = phi ptr [ %.sroa.0.0.us, %23 ], [ %.sroa.0.0.us, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" ], [ %.sroa.0.0.us, %.loopexit55.us ], [ %.sroa.0.0, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" ], [ %.sroa.0.0, %.loopexit57 ] - %.sink = phi i64 [ %.sroa.3.0.us, %23 ], [ %.sroa.3.0.us, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" ], [ 0, %.loopexit55.us ], [ %.sroa.3.0, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" ], [ 0, %.loopexit57 ] - %.us-phi85.sink = phi i64 [ %.sroa.8.0.us.i.us, %23 ], [ %.sroa.8.0.us.i.us, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" ], [ %.sroa.4.0.i.ph.ph.us, %.loopexit55.us ], [ %.sroa.8.0.i, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" ], [ %.sroa.4.0.i.ph.ph58, %.loopexit57 ] - %storemerge = phi i64 [ 0, %23 ], [ 0, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" ], [ 1, %.loopexit55.us ], [ 0, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" ], [ 1, %.loopexit57 ] + %.us-phi86.sink = phi ptr [ %.sroa.0.0.us, %24 ], [ %.sroa.0.0.us, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" ], [ %.sroa.0.0.us, %.loopexit55.us ], [ %.sroa.0.0, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" ], [ %.sroa.0.0, %.loopexit57 ] + %.sink = phi i64 [ %.sroa.3.0.us, %24 ], [ %.sroa.3.0.us, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" ], [ 0, %.loopexit55.us ], [ %.sroa.3.0, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" ], [ 0, %.loopexit57 ] + %.us-phi85.sink = phi i64 [ %.sroa.8.0.us.i.us, %24 ], [ %.sroa.8.0.us.i.us, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" ], [ %.sroa.4.0.i.ph.ph.us, %.loopexit55.us ], [ %.sroa.8.0.i, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" ], [ %.sroa.4.0.i.ph.ph58, %.loopexit57 ] + %storemerge = phi i64 [ 0, %24 ], [ 0, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.us.i.us" ], [ 1, %.loopexit55.us ], [ 0, %"_ZN80_$LT$tokio_quiche..quic..connection..map..CidOwned$u20$as$u20$core..cmp..Ord$GT$3cmp17hf28e6175d165ddf6E.exit.i" ], [ 1, %.loopexit57 ] %58 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %.us-phi86.sink, ptr %58, align 8 %.sroa.242.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 diff --git a/bench/ruff-rs/optimized/3dfok8d8aknyc1byq695kiju1.ll b/bench/ruff-rs/optimized/3dfok8d8aknyc1byq695kiju1.ll index a5f403b3f70..1c32dc1d76a 100644 --- a/bench/ruff-rs/optimized/3dfok8d8aknyc1byq695kiju1.ll +++ b/bench/ruff-rs/optimized/3dfok8d8aknyc1byq695kiju1.ll @@ -24434,7 +24434,7 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. %5 = load i64, ptr %3, align 8, !range !270, !alias.scope !3751 %.fr26.i = freeze i64 %5 %6 = icmp ne i64 %.fr26.i, -9223372036854775808 - %7 = zext i1 %6 to i64 + %7 = zext i1 %6 to i8 %8 = getelementptr inbounds nuw i8, ptr %3, i64 16 %.val7.i2.i.i = load ptr, ptr %8, align 8, !alias.scope !3751 %9 = getelementptr inbounds nuw i8, ptr %3, i64 24 @@ -24458,12 +24458,11 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. %17 = ptrtoint ptr %.val.i8.i.i to i64 %18 = getelementptr inbounds nuw i8, ptr %3, i64 72 %19 = load i32, ptr %18, align 8, !alias.scope !3751 - %20 = tail call i8 @llvm.scmp.i8.i64(i64 %7, i64 0) br i1 %6, label %.split.us.i.preheader.us, label %.split .split.us.i.preheader.us: ; preds = %4, %70 - %.sroa.3.0.us = phi i64 [ %75, %70 ], [ %2, %4 ] - %.sroa.0.0.us = phi ptr [ %74, %70 ], [ %1, %4 ] + %.sroa.3.0.us = phi i64 [ %75, %69 ], [ %2, %4 ] + %.sroa.0.0.us = phi ptr [ %74, %69 ], [ %1, %4 ] tail call void @llvm.experimental.noalias.scope.decl(metadata !3751) %21 = getelementptr inbounds nuw i8, ptr %.sroa.0.0.us, i64 890 %22 = load i16, ptr %21, align 2, !noalias !3751, !noundef !4 @@ -24558,7 +24557,7 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br label %"_ZN71_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..Ord$GT$3cmp17h2f7bfbdccbe8e325E.exit.i.i.us.i.us" "_ZN71_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..Ord$GT$3cmp17h2f7bfbdccbe8e325E.exit.i.i.us.i.us": ; preds = %64, %56, %43 - %.sroa.0.0.i.i.i.us.i.us = phi i8 [ %63, %56 ], [ %50, %43 ], [ %..i.i.i.us.i.us, %64 ] + %.sroa.0.0.i.i.i.us.i.us = phi i8 [ %63, %55 ], [ %50, %43 ], [ %..i.i.i.us.i.us, %63 ] %65 = icmp eq i8 %.sroa.0.0.i.i.i.us.i.us, 0 br i1 %65, label %66, label %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us.i.us" @@ -24569,7 +24568,7 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br label %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us.i.us" "_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us.i.us": ; preds = %66, %"_ZN71_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..Ord$GT$3cmp17h2f7bfbdccbe8e325E.exit.i.i.us.i.us", %55, %33, %32, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5696f62cf826e661E.exit.us.i.us" - %.sroa.0.0.i5.us.i.us = phi i8 [ %20, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5696f62cf826e661E.exit.us.i.us" ], [ %69, %66 ], [ %.sroa.0.0.i.i.i.us.i.us, %"_ZN71_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..Ord$GT$3cmp17h2f7bfbdccbe8e325E.exit.i.i.us.i.us" ], [ %40, %33 ], [ 1, %32 ], [ 1, %55 ] + %.sroa.0.0.i5.us.i.us = phi i8 [ %7, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5696f62cf826e661E.exit.us.i.us" ], [ %69, %65 ], [ %.sroa.0.0.i.i.i.us.i.us, %"_ZN71_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..Ord$GT$3cmp17h2f7bfbdccbe8e325E.exit.i.i.us.i.us" ], [ %40, %33 ], [ 1, %32 ], [ 1, %54 ] switch i8 %.sroa.0.0.i5.us.i.us, label %.split12.us.i [ i8 -1, label %.loopexit.us i8 0, label %.split87.us @@ -24595,8 +24594,8 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br i1 %.not.i7.i.i, label %.split.i.us, label %.split.i .split.i.us: ; preds = %.split, %100 - %.sroa.3.0.us90 = phi i64 [ %105, %100 ], [ %2, %.split ] - %.sroa.0.0.us91 = phi ptr [ %104, %100 ], [ %1, %.split ] + %.sroa.3.0.us90 = phi i64 [ %105, %98 ], [ %2, %.split ] + %.sroa.0.0.us91 = phi ptr [ %104, %98 ], [ %1, %.split ] tail call void @llvm.experimental.noalias.scope.decl(metadata !3751) %77 = getelementptr inbounds nuw i8, ptr %.sroa.0.0.us91, i64 890 %78 = load i16, ptr %77, align 2, !noalias !3751, !noundef !4 @@ -24605,8 +24604,8 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br label %.split.split.us.i.us .split.split.us.i.us: ; preds = %.split.i.us, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us20.i.us" - %.sroa.01.0.us16.i.us = phi ptr [ %82, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us20.i.us" ], [ %.sroa.0.0.us91, %.split.i.us ] - %.sroa.8.0.us17.i.us = phi i64 [ %83, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us20.i.us" ], [ 0, %.split.i.us ] + %.sroa.01.0.us16.i.us = phi ptr [ %82, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us21.i.us" ], [ %.sroa.0.0.us91, %.split.i.us ] + %.sroa.8.0.us17.i.us = phi i64 [ %83, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us21.i.us" ], [ 0, %.split.i.us ] %81 = icmp eq ptr %.sroa.01.0.us16.i.us, %80 br i1 %81, label %.loopexit56.us, label %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5696f62cf826e661E.exit.us18.i.us" @@ -24616,8 +24615,8 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. tail call void @llvm.experimental.noalias.scope.decl(metadata !3754) %84 = load i64, ptr %.sroa.01.0.us16.i.us, align 8, !range !270, !alias.scope !3754, !noalias !3757, !noundef !4 %85 = icmp ne i64 %84, -9223372036854775808 - %86 = zext i1 %85 to i64 - %87 = tail call i8 @llvm.scmp.i8.i64(i64 %7, i64 %86) + %.neg.i.us20.i.us = sext i1 %85 to i8 + %85 = add nsw i8 %.neg.i.us20.i.us, %7 br i1 %85, label %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us20.i.us", label %88 88: ; preds = %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5696f62cf826e661E.exit.us18.i.us" @@ -24644,7 +24643,7 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br label %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us20.i.us" "_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us20.i.us": ; preds = %97, %88, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5696f62cf826e661E.exit.us18.i.us" - %.sroa.0.0.i5.us21.i.us = phi i8 [ %87, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5696f62cf826e661E.exit.us18.i.us" ], [ %95, %88 ], [ %..i.i.us.i.us, %97 ] + %.sroa.0.0.i5.us21.i.us = phi i8 [ %85, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5696f62cf826e661E.exit.us18.i.us" ], [ %95, %86 ], [ %..i.i.us.i.us, %95 ] switch i8 %.sroa.0.0.i5.us21.i.us, label %.split12.us.i [ i8 -1, label %.loopexit56.us i8 0, label %.split87.us @@ -24661,13 +24660,13 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br label %.split.i.us .loopexit56.us: ; preds = %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us20.i.us", %.split.split.us.i.us - %.sroa.4.0.i.ph.ph57.us = phi i64 [ %79, %.split.split.us.i.us ], [ %.sroa.8.0.us17.i.us, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us20.i.us" ] + %.sroa.4.0.i.ph.ph57.us = phi i64 [ %79, %.split.split.us.i.us ], [ %.sroa.8.0.us17.i.us, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us21.i.us" ] %106 = icmp eq i64 %.sroa.3.0.us90, 0 br i1 %106, label %.split87.us, label %100 .split.i: ; preds = %.split, %140 - %.sroa.3.0 = phi i64 [ %145, %140 ], [ %2, %.split ] - %.sroa.0.0 = phi ptr [ %144, %140 ], [ %1, %.split ] + %.sroa.3.0 = phi i64 [ %145, %137 ], [ %2, %.split ] + %.sroa.0.0 = phi ptr [ %144, %137 ], [ %1, %.split ] tail call void @llvm.experimental.noalias.scope.decl(metadata !3751) %107 = getelementptr inbounds nuw i8, ptr %.sroa.0.0, i64 890 %108 = load i16, ptr %107, align 2, !noalias !3751, !noundef !4 @@ -24687,8 +24686,8 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. tail call void @llvm.experimental.noalias.scope.decl(metadata !3754) %114 = load i64, ptr %.sroa.01.0.i, align 8, !range !270, !alias.scope !3754, !noalias !3757, !noundef !4 %115 = icmp ne i64 %114, -9223372036854775808 - %116 = zext i1 %115 to i64 - %117 = tail call i8 @llvm.scmp.i8.i64(i64 %7, i64 %116) + %.neg.i.i = sext i1 %115 to i8 + %114 = add nsw i8 %.neg.i.i, %7 br i1 %115, label %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.i", label %118 118: ; preds = %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5696f62cf826e661E.exit.i" @@ -24728,7 +24727,7 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br label %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.i" "_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.i": ; preds = %130, %127, %118, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5696f62cf826e661E.exit.i" - %.sroa.0.0.i5.i = phi i8 [ %117, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5696f62cf826e661E.exit.i" ], [ %137, %130 ], [ %125, %118 ], [ 1, %127 ] + %.sroa.0.0.i5.i = phi i8 [ %114, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h5696f62cf826e661E.exit.i" ], [ %137, %127 ], [ %125, %115 ], [ 1, %124 ] switch i8 %.sroa.0.0.i5.i, label %.split12.us.i [ i8 -1, label %.loopexit60 i8 0, label %.split87.us @@ -24744,10 +24743,10 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br i1 %138, label %.split87.us, label %140 .split87.us: ; preds = %.loopexit60, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.i", %.loopexit56.us, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us20.i.us", %.loopexit.us, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us.i.us" - %.us-phi89.sink = phi ptr [ %.sroa.0.0.us, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us.i.us" ], [ %.sroa.0.0.us, %.loopexit.us ], [ %.sroa.0.0.us91, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us20.i.us" ], [ %.sroa.0.0.us91, %.loopexit56.us ], [ %.sroa.0.0, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.i" ], [ %.sroa.0.0, %.loopexit60 ] - %.sink = phi i64 [ %.sroa.3.0.us, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us.i.us" ], [ 0, %.loopexit.us ], [ %.sroa.3.0.us90, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us20.i.us" ], [ 0, %.loopexit56.us ], [ %.sroa.3.0, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.i" ], [ 0, %.loopexit60 ] - %.us-phi88.sink = phi i64 [ %.sroa.8.0.us.i.us, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us.i.us" ], [ %.sroa.4.0.i.ph.ph.us, %.loopexit.us ], [ %.sroa.8.0.us17.i.us, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us20.i.us" ], [ %.sroa.4.0.i.ph.ph57.us, %.loopexit56.us ], [ %.sroa.8.0.i, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.i" ], [ %.sroa.4.0.i.ph.ph61, %.loopexit60 ] - %storemerge = phi i64 [ 0, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us.i.us" ], [ 1, %.loopexit.us ], [ 0, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us20.i.us" ], [ 1, %.loopexit56.us ], [ 0, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.i" ], [ 1, %.loopexit60 ] + %.us-phi89.sink = phi ptr [ %.sroa.0.0.us, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us.i.us" ], [ %.sroa.0.0.us, %.loopexit.us ], [ %.sroa.0.0.us91, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us21.i.us" ], [ %.sroa.0.0.us91, %.loopexit56.us ], [ %.sroa.0.0, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.i" ], [ %.sroa.0.0, %.loopexit60 ] + %.sink = phi i64 [ %.sroa.3.0.us, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us.i.us" ], [ 0, %.loopexit.us ], [ %.sroa.3.0.us90, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us21.i.us" ], [ 0, %.loopexit56.us ], [ %.sroa.3.0, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.i" ], [ 0, %.loopexit60 ] + %.us-phi88.sink = phi i64 [ %.sroa.8.0.us.i.us, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us.i.us" ], [ %.sroa.4.0.i.ph.ph.us, %.loopexit.us ], [ %.sroa.8.0.us17.i.us, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us21.i.us" ], [ %.sroa.4.0.i.ph.ph57.us, %.loopexit56.us ], [ %.sroa.8.0.i, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.i" ], [ %.sroa.4.0.i.ph.ph61, %.loopexit60 ] + %storemerge = phi i64 [ 0, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us.i.us" ], [ 1, %.loopexit.us ], [ 0, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.us21.i.us" ], [ 1, %.loopexit56.us ], [ 0, %"_ZN76_$LT$ruff_python_semantic..imports..NameImport$u20$as$u20$core..cmp..Ord$GT$3cmp17h761b97473960e4f7E.exit.i" ], [ 1, %.loopexit60 ] %139 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %.us-phi89.sink, ptr %139, align 8 %.sroa.242.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -25093,12 +25092,12 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. tail call void @llvm.experimental.noalias.scope.decl(metadata !3827) %19 = load i64, ptr %.val48, align 8, !range !270, !alias.scope !3824, !noalias !3827, !noundef !4 %20 = icmp ne i64 %19, -9223372036854775808 - %21 = zext i1 %20 to i64 + %21 = zext i1 %20 to i8 %22 = load i64, ptr %.val6.i, align 8, !range !270, !alias.scope !3827, !noalias !3824, !noundef !4 %23 = icmp eq i64 %22, -9223372036854775808 %not..i.i.i = xor i1 %23, true - %24 = zext i1 %not..i.i.i to i64 - %25 = tail call i8 @llvm.scmp.i8.i64(i64 %21, i64 %24) + %.neg.i.i.i = sext i1 %not..i.i.i to i8 + %25 = add nsw i8 %.neg.i.i.i, %21 %26 = xor i1 %20, %23 br i1 %26, label %27, label %"_ZN4core3cmp5impls50_$LT$impl$u20$core..cmp..Ord$u20$for$u20$$RF$A$GT$3cmp17hc47c52706e26e5f2E.exit.i" @@ -25893,14 +25892,13 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. %5 = load i64, ptr %3, align 8, !range !270, !alias.scope !3903 %.fr14.i = freeze i64 %5 %6 = icmp ne i64 %.fr14.i, -9223372036854775808 - %7 = zext i1 %6 to i64 + %7 = zext i1 %6 to i8 %8 = getelementptr inbounds nuw i8, ptr %3, i64 8 %9 = load i8, ptr %8, align 8, !range !3834, !alias.scope !3903 %10 = zext nneg i8 %9 to i64 %.val.i.i = load ptr, ptr %8, align 8, !alias.scope !3903, !nonnull !4 %11 = getelementptr inbounds nuw i8, ptr %3, i64 16 %.val2.i.i = load i64, ptr %11, align 8, !alias.scope !3903 - %12 = tail call i8 @llvm.scmp.i8.i64(i64 %7, i64 0) br i1 %6, label %.split.us.i.preheader.us, label %.split.i.preheader .split.us.i.preheader.us: ; preds = %4, %31 @@ -25944,7 +25942,7 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br label %"_ZN87_$LT$ruff_linter..rules..isort..categorize..ImportSection$u20$as$u20$core..cmp..Ord$GT$3cmp17h7017a42cee3c80eaE.exit.us.i.us" "_ZN87_$LT$ruff_linter..rules..isort..categorize..ImportSection$u20$as$u20$core..cmp..Ord$GT$3cmp17h7017a42cee3c80eaE.exit.us.i.us": ; preds = %23, %19 - %.sroa.0.0.i6.us.i.us = phi i8 [ %30, %23 ], [ %12, %19 ] + %.sroa.0.0.i6.us.i.us = phi i8 [ %30, %23 ], [ %7, %18 ] switch i8 %.sroa.0.0.i6.us.i.us, label %.split10.us.i [ i8 -1, label %.loopexit.us i8 0, label %.split77.us @@ -25966,8 +25964,8 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br i1 %37, label %.split77.us, label %31 .split.i.preheader: ; preds = %4, %58 - %.sroa.3.0 = phi i64 [ %63, %58 ], [ %2, %4 ] - %.sroa.0.0 = phi ptr [ %62, %58 ], [ %1, %4 ] + %.sroa.3.0 = phi i64 [ %63, %56 ], [ %2, %4 ] + %.sroa.0.0 = phi ptr [ %62, %56 ], [ %1, %4 ] tail call void @llvm.experimental.noalias.scope.decl(metadata !3903) %38 = getelementptr inbounds nuw i8, ptr %.sroa.0.0, i64 1416 %39 = getelementptr inbounds nuw i8, ptr %.sroa.0.0, i64 1506 @@ -25989,8 +25987,8 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. tail call void @llvm.experimental.noalias.scope.decl(metadata !3906) %47 = load i64, ptr %.val5.i, align 8, !range !270, !alias.scope !3906, !noalias !3909, !noundef !4 %48 = icmp ne i64 %47, -9223372036854775808 - %49 = zext i1 %48 to i64 - %50 = tail call i8 @llvm.scmp.i8.i64(i64 %7, i64 %49) + %.neg.i.i = sext i1 %48 to i8 + %48 = add nsw i8 %.neg.i.i, %7 br i1 %48, label %"_ZN87_$LT$ruff_linter..rules..isort..categorize..ImportSection$u20$as$u20$core..cmp..Ord$GT$3cmp17h7017a42cee3c80eaE.exit.i", label %51 51: ; preds = %44 @@ -26001,7 +25999,7 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br label %"_ZN87_$LT$ruff_linter..rules..isort..categorize..ImportSection$u20$as$u20$core..cmp..Ord$GT$3cmp17h7017a42cee3c80eaE.exit.i" "_ZN87_$LT$ruff_linter..rules..isort..categorize..ImportSection$u20$as$u20$core..cmp..Ord$GT$3cmp17h7017a42cee3c80eaE.exit.i": ; preds = %51, %44 - %.sroa.0.0.i6.i = phi i8 [ %55, %51 ], [ %50, %44 ] + %.sroa.0.0.i6.i = phi i8 [ %55, %51 ], [ %48, %44 ] switch i8 %.sroa.0.0.i6.i, label %.split10.us.i [ i8 -1, label %.loopexit56 i8 0, label %.split77.us diff --git a/bench/ruff-rs/optimized/4fmseylws5ehrksof90dvjc4p.ll b/bench/ruff-rs/optimized/4fmseylws5ehrksof90dvjc4p.ll index af76632027b..2ba1e3062d4 100644 --- a/bench/ruff-rs/optimized/4fmseylws5ehrksof90dvjc4p.ll +++ b/bench/ruff-rs/optimized/4fmseylws5ehrksof90dvjc4p.ll @@ -3870,10 +3870,10 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 tail call void @llvm.experimental.noalias.scope.decl(metadata !424) %3 = load i64, ptr %0, align 8, !range !191, !alias.scope !426, !noalias !427, !noundef !8 %4 = icmp ne i64 %3, -9223372036854775808 - %5 = zext i1 %4 to i64 + %5 = zext i1 %4 to i8 %6 = load i64, ptr %1, align 8, !range !191, !alias.scope !427, !noalias !426, !noundef !8 %7 = icmp ne i64 %6, -9223372036854775808 - %8 = zext i1 %7 to i64 + %.neg.i.i = sext i1 %7 to i8 br i1 %4, label %9, label %10 9: ; preds = %2 @@ -3883,7 +3883,7 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 br i1 %7, label %11, label %13 11: ; preds = %10, %9 - %12 = tail call i8 @llvm.scmp.i8.i64(i64 %5, i64 %8) + %11 = add nsw i8 %.neg.i.i, %5 br label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit 13: ; preds = %10 @@ -3899,9 +3899,9 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 %.val12.i.i.i = load i64, ptr %17, align 8, !alias.scope !434, !noalias !433, !noundef !8 %18 = tail call noundef range(i8 -1, 3) i8 @"_ZN55_$LT$A$u20$as$u20$core..slice..cmp..SlicePartialOrd$GT$15partial_compare17h3f9d375bc5e0b193E"(ptr noalias noundef nonnull readonly align 1 %.val9.i.i.i, i64 noundef %.val10.i.i.i, ptr noalias noundef nonnull readonly align 1 %.val11.i.i.i, i64 noundef %.val12.i.i.i), !noalias !435 %19 = icmp eq i8 %18, 0 - br i1 %19, label %20, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit + br i1 %19, label %110, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit -20: ; preds = %13 +110: ; preds = %13 %21 = getelementptr inbounds nuw i8, ptr %0, i64 32 %22 = load i64, ptr %21, align 8, !range !191, !alias.scope !433, !noalias !434, !noundef !8 %.not.i.i.i = icmp eq i64 %22, -9223372036854775808 @@ -3909,11 +3909,11 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 %24 = load i64, ptr %23, align 8, !range !191, !alias.scope !434, !noalias !433, !noundef !8 br i1 %.not.i.i.i, label %26, label %25 -25: ; preds = %20 +25: ; preds = %110 %.not5.i.i.i = icmp eq i64 %24, -9223372036854775808 br i1 %.not5.i.i.i, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit, label %27 -26: ; preds = %20 +26: ; preds = %110 %.not4.i.i.i = icmp ne i64 %24, -9223372036854775808 %..i.i.i = sext i1 %.not4.i.i.i to i8 br label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit @@ -3924,7 +3924,7 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 %29 = getelementptr inbounds nuw i8, ptr %0, i64 48 %.val6.i.i.i = load i64, ptr %29, align 8, !alias.scope !433, !noalias !434, !noundef !8 %30 = getelementptr inbounds nuw i8, ptr %1, i64 40 - %.val7.i.i.i = load ptr, ptr %30, align 8, !alias.scope !434, !noalias !433, !nonnull !8, !noundef !8 + %.val7.i.i.i = load ptr, ptr %210, align 8, !alias.scope !434, !noalias !433, !nonnull !8, !noundef !8 %31 = getelementptr inbounds nuw i8, ptr %1, i64 48 %.val8.i.i.i = load i64, ptr %31, align 8, !alias.scope !434, !noalias !433, !noundef !8 %32 = tail call noundef range(i8 -1, 3) i8 @"_ZN55_$LT$A$u20$as$u20$core..slice..cmp..SlicePartialOrd$GT$15partial_compare17h3f9d375bc5e0b193E"(ptr noalias noundef nonnull readonly align 1 %.val.i.i.i, i64 noundef %.val6.i.i.i, ptr noalias noundef nonnull readonly align 1 %.val7.i.i.i, i64 noundef %.val8.i.i.i), !noalias !435 @@ -3945,9 +3945,9 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 br i1 %.not8.i.i.i, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit, label %61 39: ; preds = %33 - br i1 %.not8.i.i.i, label %40, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit + br i1 %.not8.i.i.i, label %310, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit -40: ; preds = %61, %39 +310: ; preds = %61, %39 tail call void @llvm.experimental.noalias.scope.decl(metadata !443) tail call void @llvm.experimental.noalias.scope.decl(metadata !446) %41 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -3962,12 +3962,12 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 %46 = icmp eq i8 %45, 0 br i1 %46, label %47, label %"_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i" -47: ; preds = %40 +47: ; preds = %310 %48 = getelementptr inbounds nuw i8, ptr %0, i64 24 %49 = load i64, ptr %48, align 8, !range !191, !alias.scope !448, !noalias !449, !noundef !8 %.not.i.i.i.i = icmp eq i64 %49, -9223372036854775808 %50 = getelementptr inbounds nuw i8, ptr %1, i64 24 - %51 = load i64, ptr %50, align 8, !range !191, !alias.scope !449, !noalias !448, !noundef !8 + %51 = load i64, ptr %410, align 8, !range !191, !alias.scope !449, !noalias !448, !noundef !8 br i1 %.not.i.i.i.i, label %53, label %52 52: ; preds = %47 @@ -3991,10 +3991,10 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 %59 = tail call noundef range(i8 -1, 3) i8 @"_ZN55_$LT$A$u20$as$u20$core..slice..cmp..SlicePartialOrd$GT$15partial_compare17h3f9d375bc5e0b193E"(ptr noalias noundef nonnull readonly align 1 %.val.i.i.i.i, i64 noundef %.val6.i.i.i.i, ptr noalias noundef nonnull readonly align 1 %.val7.i.i.i.i, i64 noundef %.val8.i.i.i.i), !noalias !450 br label %"_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i" -"_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i": ; preds = %54, %53, %40 - %.sroa.0.0.i.i.i.i = phi i8 [ %59, %54 ], [ %45, %40 ], [ %..i.i.i.i, %53 ] +"_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i": ; preds = %54, %53, %310 + %.sroa.0.0.i.i.i.i = phi i8 [ %59, %53 ], [ %45, %39 ], [ %..i.i.i.i, %52 ] %60 = icmp eq i8 %.sroa.0.0.i.i.i.i, 0 - br i1 %60, label %68, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit + br i1 %510, label %68, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit 61: ; preds = %38 %62 = getelementptr inbounds nuw i8, ptr %0, i64 56 @@ -4007,18 +4007,18 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 %.val12.i5.i.i = load i64, ptr %65, align 8, !alias.scope !442, !noalias !441, !noundef !8 %66 = tail call noundef range(i8 -1, 3) i8 @"_ZN55_$LT$A$u20$as$u20$core..slice..cmp..SlicePartialOrd$GT$15partial_compare17h3f9d375bc5e0b193E"(ptr noalias noundef nonnull readonly align 1 %.val.i2.i.i, i64 noundef %.val10.i3.i.i, ptr noalias noundef nonnull readonly align 1 %.val11.i4.i.i, i64 noundef %.val12.i5.i.i), !noalias !451 %67 = icmp eq i8 %66, 0 - br i1 %67, label %40, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit + br i1 %67, label %310, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit 68: ; preds = %"_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i" %69 = getelementptr inbounds nuw i8, ptr %0, i64 72 %70 = load i32, ptr %69, align 8, !alias.scope !441, !noalias !442, !noundef !8 %71 = getelementptr inbounds nuw i8, ptr %1, i64 72 %72 = load i32, ptr %71, align 8, !alias.scope !442, !noalias !441, !noundef !8 - %73 = tail call i8 @llvm.ucmp.i8.i32(i32 %70, i32 %72) + %73 = tail call i8 @llvm.ucmp.i8.i32(i32 %610, i32 %72) br label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit _ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit: ; preds = %11, %13, %25, %26, %27, %38, %39, %52, %"_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i", %61, %68 - %.sroa.0.0.i.i = phi i8 [ %12, %11 ], [ %32, %27 ], [ %18, %13 ], [ %..i.i.i, %26 ], [ 1, %25 ], [ %73, %68 ], [ %.sroa.0.0.i.i.i.i, %"_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i" ], [ %66, %61 ], [ -1, %39 ], [ 1, %38 ], [ 1, %52 ] + %.sroa.0.0.i.i = phi i8 [ %11, %10 ], [ %31, %26 ], [ %17, %12 ], [ %..i.i.i, %25 ], [ 1, %24 ], [ %72, %67 ], [ %.sroa.0.0.i.i.i.i, %"_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i" ], [ %66, %60 ], [ -1, %38 ], [ 1, %37 ], [ 1, %51 ] %74 = icmp slt i8 %.sroa.0.0.i.i, 0 ret i1 %74 } @@ -36686,9 +36686,6 @@ declare noundef zeroext i1 @"_ZN185_$LT$ruff_workspace..options.._..$LT$impl$u20 ; Function Attrs: mustprogress nocallback nofree nounwind nonlazybind willreturn memory(argmem: read) declare i32 @memcmp(ptr captures(none), ptr captures(none), i64) local_unnamed_addr #15 -; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare range(i8 -1, 2) i8 @llvm.scmp.i8.i64(i64, i64) #16 - ; Function Attrs: nonlazybind uwtable declare noundef zeroext i1 @"_ZN77_$LT$ruff_linter..rule_selector..ParseError$u20$as$u20$core..fmt..Display$GT$3fmt17h75e7b729446ad4b9E"(ptr noalias noundef readonly align 8 dereferenceable(24), ptr noalias noundef align 8 dereferenceable(24)) unnamed_addr #0 @@ -37233,9 +37230,9 @@ attributes #12 = { cold minsize noreturn nounwind nonlazybind optsize uwtable "p attributes #13 = { cold noreturn nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #14 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #15 = { mustprogress nocallback nofree nounwind nonlazybind willreturn memory(argmem: read) } -attributes #16 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #17 = { cold minsize noreturn nonlazybind optsize uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } -attributes #18 = { nounwind nonlazybind allockind("alloc,uninitialized,aligned") allocsize(0) uwtable "alloc-family"="__rust_alloc" "probe-stack"="inline-asm" "target-cpu"="x86-64" } +attributes #16 = { cold minsize noreturn nonlazybind optsize uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } +attributes #17 = { nounwind nonlazybind allockind("alloc,uninitialized,aligned") allocsize(0) uwtable "alloc-family"="__rust_alloc" "probe-stack"="inline-asm" "target-cpu"="x86-64" } +attributes #18 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #19 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #20 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #21 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) } diff --git a/bench/ruff-rs/optimized/7zg9jf95egit7y0tewaqgowsn.ll b/bench/ruff-rs/optimized/7zg9jf95egit7y0tewaqgowsn.ll index 18678a3059b..288ead5467b 100644 --- a/bench/ruff-rs/optimized/7zg9jf95egit7y0tewaqgowsn.ll +++ b/bench/ruff-rs/optimized/7zg9jf95egit7y0tewaqgowsn.ll @@ -100,10 +100,10 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 tail call void @llvm.experimental.noalias.scope.decl(metadata !28) %3 = load i64, ptr %0, align 8, !range !30, !alias.scope !31, !noalias !32, !noundef !3 %4 = icmp ne i64 %3, -9223372036854775808 - %5 = zext i1 %4 to i64 + %5 = zext i1 %4 to i8 %6 = load i64, ptr %1, align 8, !range !30, !alias.scope !32, !noalias !31, !noundef !3 %7 = icmp ne i64 %6, -9223372036854775808 - %8 = zext i1 %7 to i64 + %.neg.i.i = sext i1 %7 to i8 br i1 %4, label %9, label %10 9: ; preds = %2 @@ -113,7 +113,7 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 br i1 %7, label %11, label %13 11: ; preds = %10, %9 - %12 = tail call i8 @llvm.scmp.i8.i64(i64 %5, i64 %8) + %11 = add nsw i8 %.neg.i.i, %5 br label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit 13: ; preds = %10 @@ -129,9 +129,9 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 %.val12.i.i.i = load i64, ptr %17, align 8, !alias.scope !39, !noalias !38, !noundef !3 %18 = tail call noundef range(i8 -1, 3) i8 @"_ZN55_$LT$A$u20$as$u20$core..slice..cmp..SlicePartialOrd$GT$15partial_compare17h3f9d375bc5e0b193E"(ptr noalias noundef nonnull readonly align 1 %.val9.i.i.i, i64 noundef %.val10.i.i.i, ptr noalias noundef nonnull readonly align 1 %.val11.i.i.i, i64 noundef %.val12.i.i.i), !noalias !40 %19 = icmp eq i8 %18, 0 - br i1 %19, label %20, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit + br i1 %19, label %110, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit -20: ; preds = %13 +110: ; preds = %13 %21 = getelementptr inbounds nuw i8, ptr %0, i64 32 %22 = load i64, ptr %21, align 8, !range !30, !alias.scope !38, !noalias !39, !noundef !3 %.not.i.i.i = icmp eq i64 %22, -9223372036854775808 @@ -139,11 +139,11 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 %24 = load i64, ptr %23, align 8, !range !30, !alias.scope !39, !noalias !38, !noundef !3 br i1 %.not.i.i.i, label %26, label %25 -25: ; preds = %20 +25: ; preds = %110 %.not5.i.i.i = icmp eq i64 %24, -9223372036854775808 br i1 %.not5.i.i.i, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit, label %27 -26: ; preds = %20 +26: ; preds = %110 %.not4.i.i.i = icmp ne i64 %24, -9223372036854775808 %..i.i.i = sext i1 %.not4.i.i.i to i8 br label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit @@ -154,7 +154,7 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 %29 = getelementptr inbounds nuw i8, ptr %0, i64 48 %.val6.i.i.i = load i64, ptr %29, align 8, !alias.scope !38, !noalias !39, !noundef !3 %30 = getelementptr inbounds nuw i8, ptr %1, i64 40 - %.val7.i.i.i = load ptr, ptr %30, align 8, !alias.scope !39, !noalias !38, !nonnull !3, !noundef !3 + %.val7.i.i.i = load ptr, ptr %210, align 8, !alias.scope !39, !noalias !38, !nonnull !3, !noundef !3 %31 = getelementptr inbounds nuw i8, ptr %1, i64 48 %.val8.i.i.i = load i64, ptr %31, align 8, !alias.scope !39, !noalias !38, !noundef !3 %32 = tail call noundef range(i8 -1, 3) i8 @"_ZN55_$LT$A$u20$as$u20$core..slice..cmp..SlicePartialOrd$GT$15partial_compare17h3f9d375bc5e0b193E"(ptr noalias noundef nonnull readonly align 1 %.val.i.i.i, i64 noundef %.val6.i.i.i, ptr noalias noundef nonnull readonly align 1 %.val7.i.i.i, i64 noundef %.val8.i.i.i), !noalias !40 @@ -175,9 +175,9 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 br i1 %.not8.i.i.i, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit, label %61 39: ; preds = %33 - br i1 %.not8.i.i.i, label %40, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit + br i1 %.not8.i.i.i, label %310, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit -40: ; preds = %61, %39 +310: ; preds = %61, %39 tail call void @llvm.experimental.noalias.scope.decl(metadata !48) tail call void @llvm.experimental.noalias.scope.decl(metadata !51) %41 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -192,12 +192,12 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 %46 = icmp eq i8 %45, 0 br i1 %46, label %47, label %"_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i" -47: ; preds = %40 +47: ; preds = %310 %48 = getelementptr inbounds nuw i8, ptr %0, i64 24 %49 = load i64, ptr %48, align 8, !range !30, !alias.scope !53, !noalias !54, !noundef !3 %.not.i.i.i.i = icmp eq i64 %49, -9223372036854775808 %50 = getelementptr inbounds nuw i8, ptr %1, i64 24 - %51 = load i64, ptr %50, align 8, !range !30, !alias.scope !54, !noalias !53, !noundef !3 + %51 = load i64, ptr %410, align 8, !range !30, !alias.scope !54, !noalias !53, !noundef !3 br i1 %.not.i.i.i.i, label %53, label %52 52: ; preds = %47 @@ -221,10 +221,10 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 %59 = tail call noundef range(i8 -1, 3) i8 @"_ZN55_$LT$A$u20$as$u20$core..slice..cmp..SlicePartialOrd$GT$15partial_compare17h3f9d375bc5e0b193E"(ptr noalias noundef nonnull readonly align 1 %.val.i.i.i.i, i64 noundef %.val6.i.i.i.i, ptr noalias noundef nonnull readonly align 1 %.val7.i.i.i.i, i64 noundef %.val8.i.i.i.i), !noalias !55 br label %"_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i" -"_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i": ; preds = %54, %53, %40 - %.sroa.0.0.i.i.i.i = phi i8 [ %59, %54 ], [ %45, %40 ], [ %..i.i.i.i, %53 ] +"_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i": ; preds = %54, %53, %310 + %.sroa.0.0.i.i.i.i = phi i8 [ %59, %53 ], [ %45, %39 ], [ %..i.i.i.i, %52 ] %60 = icmp eq i8 %.sroa.0.0.i.i.i.i, 0 - br i1 %60, label %68, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit + br i1 %510, label %68, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit 61: ; preds = %38 %62 = getelementptr inbounds nuw i8, ptr %0, i64 56 @@ -237,18 +237,18 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 %.val12.i5.i.i = load i64, ptr %65, align 8, !alias.scope !47, !noalias !46, !noundef !3 %66 = tail call noundef range(i8 -1, 3) i8 @"_ZN55_$LT$A$u20$as$u20$core..slice..cmp..SlicePartialOrd$GT$15partial_compare17h3f9d375bc5e0b193E"(ptr noalias noundef nonnull readonly align 1 %.val.i2.i.i, i64 noundef %.val10.i3.i.i, ptr noalias noundef nonnull readonly align 1 %.val11.i4.i.i, i64 noundef %.val12.i5.i.i), !noalias !56 %67 = icmp eq i8 %66, 0 - br i1 %67, label %40, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit + br i1 %67, label %310, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit 68: ; preds = %"_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i" %69 = getelementptr inbounds nuw i8, ptr %0, i64 72 %70 = load i32, ptr %69, align 8, !alias.scope !46, !noalias !47, !noundef !3 %71 = getelementptr inbounds nuw i8, ptr %1, i64 72 %72 = load i32, ptr %71, align 8, !alias.scope !47, !noalias !46, !noundef !3 - %73 = tail call i8 @llvm.ucmp.i8.i32(i32 %70, i32 %72) + %73 = tail call i8 @llvm.ucmp.i8.i32(i32 %610, i32 %72) br label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit _ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit: ; preds = %11, %13, %25, %26, %27, %38, %39, %52, %"_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i", %61, %68 - %.sroa.0.0.i.i = phi i8 [ %12, %11 ], [ %32, %27 ], [ %18, %13 ], [ %..i.i.i, %26 ], [ 1, %25 ], [ %73, %68 ], [ %.sroa.0.0.i.i.i.i, %"_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i" ], [ %66, %61 ], [ -1, %39 ], [ 1, %38 ], [ 1, %52 ] + %.sroa.0.0.i.i = phi i8 [ %11, %10 ], [ %31, %26 ], [ %17, %12 ], [ %..i.i.i, %25 ], [ 1, %24 ], [ %72, %67 ], [ %.sroa.0.0.i.i.i.i, %"_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i" ], [ %66, %60 ], [ -1, %38 ], [ 1, %37 ], [ 1, %51 ] %74 = icmp slt i8 %.sroa.0.0.i.i, 0 ret i1 %74 } @@ -41840,9 +41840,6 @@ declare noundef zeroext i1 @_ZN3std9panicking11panic_count17is_zero_slow_path17h ; Function Attrs: mustprogress nocallback nofree nounwind nonlazybind willreturn memory(argmem: read) declare i32 @memcmp(ptr captures(none), ptr captures(none), i64) local_unnamed_addr #13 -; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare range(i8 -1, 2) i8 @llvm.scmp.i8.i64(i64, i64) #14 - ; Function Attrs: cold noreturn nonlazybind uwtable declare void @_ZN4core9panicking9panic_fmt17hd54fb667be51beeaE(ptr noalias noundef align 8 captures(none) dereferenceable(48), ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #11 @@ -42379,8 +42376,8 @@ attributes #10 = { cold minsize noreturn nounwind nonlazybind optsize uwtable "p attributes #11 = { cold noreturn nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #12 = { cold nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #13 = { mustprogress nocallback nofree nounwind nonlazybind willreturn memory(argmem: read) } -attributes #14 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #15 = { cold noreturn nounwind memory(inaccessiblemem: write) } +attributes #14 = { cold noreturn nounwind memory(inaccessiblemem: write) } +attributes #15 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #16 = { nounwind nonlazybind allockind("free") uwtable "alloc-family"="__rust_alloc" "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #17 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #18 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } diff --git a/bench/ruff-rs/optimized/co1701b6aa0fe470mc77w75c3.ll b/bench/ruff-rs/optimized/co1701b6aa0fe470mc77w75c3.ll index 65551c657be..11efb7f079a 100644 --- a/bench/ruff-rs/optimized/co1701b6aa0fe470mc77w75c3.ll +++ b/bench/ruff-rs/optimized/co1701b6aa0fe470mc77w75c3.ll @@ -1693,10 +1693,8 @@ define hidden noundef nonnull align 8 dereferenceable(16) ptr @_ZN4core3fmt8buil define hidden noundef range(i8 -1, 2) i8 @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17h492d437a6fceead0E"(ptr noalias noundef nonnull readnone align 1 captures(none) %0, ptr noalias noundef readonly align 1 captures(none) dereferenceable(1) %1, ptr noalias noundef readonly align 1 captures(none) dereferenceable(1) %2) unnamed_addr #4 { %.val = load i8, ptr %1, align 1, !range !107, !noundef !3 %.val1 = load i8, ptr %2, align 1, !range !107, !noundef !3 - %4 = zext nneg i8 %.val to i64 - %5 = zext nneg i8 %.val1 to i64 - %6 = tail call noundef range(i8 -1, 2) i8 @llvm.scmp.i8.i64(i64 %4, i64 %5) - ret i8 %6 + %4 = sub nsw i8 %.val, %.val1 + ret i8 %4 } ; Function Attrs: nonlazybind uwtable @@ -11146,9 +11144,6 @@ declare void @_ZN7ruff_db10diagnostic4Span5range17h9c69a3602c5b3c54E(ptr dead_on ; Function Attrs: nonlazybind uwtable declare hidden void @"_ZN4core3ptr46drop_in_place$LT$ruff_db..diagnostic..Span$GT$17h651a44a8674b0d43E"(ptr noalias noundef align 8 dereferenceable(32)) unnamed_addr #0 -; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare range(i8 -1, 2) i8 @llvm.scmp.i8.i64(i64, i64) #9 - ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #18 diff --git a/bench/ruff-rs/optimized/dn5bjyhl0n84tpscj7t0xgdj1.ll b/bench/ruff-rs/optimized/dn5bjyhl0n84tpscj7t0xgdj1.ll index b5bfc741739..ebd10057985 100644 --- a/bench/ruff-rs/optimized/dn5bjyhl0n84tpscj7t0xgdj1.ll +++ b/bench/ruff-rs/optimized/dn5bjyhl0n84tpscj7t0xgdj1.ll @@ -2341,10 +2341,10 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 tail call void @llvm.experimental.noalias.scope.decl(metadata !449) %3 = load i64, ptr %0, align 8, !range !35, !alias.scope !451, !noalias !452, !noundef !3 %4 = icmp ne i64 %3, -9223372036854775808 - %5 = zext i1 %4 to i64 + %5 = zext i1 %4 to i8 %6 = load i64, ptr %1, align 8, !range !35, !alias.scope !452, !noalias !451, !noundef !3 %7 = icmp ne i64 %6, -9223372036854775808 - %8 = zext i1 %7 to i64 + %.neg.i.i = sext i1 %7 to i8 br i1 %4, label %9, label %10 9: ; preds = %2 @@ -2354,7 +2354,7 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 br i1 %7, label %11, label %13 11: ; preds = %10, %9 - %12 = tail call i8 @llvm.scmp.i8.i64(i64 %5, i64 %8) + %11 = add nsw i8 %.neg.i.i, %5 br label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit 13: ; preds = %10 @@ -2373,7 +2373,7 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 %19 = tail call i32 @memcmp(ptr nonnull readonly align 1 %.val9.i.i.i, ptr nonnull readonly align 1 %.val11.i.i.i, i64 %..i.i.i.i.i.i), !alias.scope !460, !noalias !467 %20 = sext i32 %19 to i64 %21 = icmp eq i32 %19, 0 - %spec.store.select.i.i.i.i.i.i = select i1 %21, i64 %18, i64 %20 + %spec.store.select.i.i.i.i.i.i = select i1 %21, i64 %18, i64 %110 %22 = tail call noundef range(i8 -1, 2) i8 @llvm.scmp.i8.i64(i64 %spec.store.select.i.i.i.i.i.i, i64 0) %23 = icmp eq i64 %spec.store.select.i.i.i.i.i.i, 0 br i1 %23, label %24, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit @@ -2384,13 +2384,13 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 %.not.i.i.i = icmp eq i64 %26, -9223372036854775808 %27 = getelementptr inbounds nuw i8, ptr %1, i64 32 %28 = load i64, ptr %27, align 8, !range !35, !alias.scope !459, !noalias !458, !noundef !3 - br i1 %.not.i.i.i, label %30, label %29 + br i1 %.not.i.i.i, label %210, label %29 29: ; preds = %24 %.not5.i.i.i = icmp eq i64 %28, -9223372036854775808 br i1 %.not5.i.i.i, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit, label %31 -30: ; preds = %24 +210: ; preds = %24 %.not4.i.i.i = icmp ne i64 %28, -9223372036854775808 %..i.i.i = sext i1 %.not4.i.i.i to i8 br label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit @@ -2436,7 +2436,7 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 %49 = getelementptr inbounds nuw i8, ptr %0, i64 8 %.val9.i.i.i.i = load ptr, ptr %49, align 8, !alias.scope !487, !noalias !488, !nonnull !3, !noundef !3 %50 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %.val10.i.i.i.i = load i64, ptr %50, align 8, !alias.scope !487, !noalias !488, !noundef !3 + %.val10.i.i.i.i = load i64, ptr %410, align 8, !alias.scope !487, !noalias !488, !noundef !3 %51 = getelementptr inbounds nuw i8, ptr %1, i64 8 %.val11.i.i.i.i = load ptr, ptr %51, align 8, !alias.scope !488, !noalias !487, !nonnull !3, !noundef !3 %52 = getelementptr inbounds nuw i8, ptr %1, i64 16 @@ -2453,7 +2453,7 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 59: ; preds = %48 %60 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %61 = load i64, ptr %60, align 8, !range !35, !alias.scope !487, !noalias !488, !noundef !3 + %61 = load i64, ptr %510, align 8, !range !35, !alias.scope !487, !noalias !488, !noundef !3 %.not.i.i.i.i = icmp eq i64 %61, -9223372036854775808 %62 = getelementptr inbounds nuw i8, ptr %1, i64 24 %63 = load i64, ptr %62, align 8, !range !35, !alias.scope !488, !noalias !487, !noundef !3 @@ -2476,7 +2476,7 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 %69 = getelementptr inbounds nuw i8, ptr %1, i64 32 %.val7.i.i.i.i = load ptr, ptr %69, align 8, !alias.scope !488, !noalias !487, !nonnull !3, !noundef !3 %70 = getelementptr inbounds nuw i8, ptr %1, i64 40 - %.val8.i.i.i.i = load i64, ptr %70, align 8, !alias.scope !488, !noalias !487, !noundef !3 + %.val8.i.i.i.i = load i64, ptr %610, align 8, !alias.scope !488, !noalias !487, !noundef !3 %..i.i.i13.i.i.i.i = tail call i64 @llvm.umin.i64(i64 %.val6.i.i.i.i, i64 %.val8.i.i.i.i) %71 = sub i64 %.val6.i.i.i.i, %.val8.i.i.i.i %72 = tail call i32 @memcmp(ptr nonnull readonly align 1 %.val.i.i.i.i, ptr nonnull readonly align 1 %.val7.i.i.i.i, i64 %..i.i.i13.i.i.i.i), !alias.scope !497, !noalias !496 @@ -2487,7 +2487,7 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 br label %"_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i" "_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i": ; preds = %66, %65, %48 - %.sroa.0.0.i.i.i.i = phi i8 [ %75, %66 ], [ %57, %48 ], [ %..i.i.i.i, %65 ] + %.sroa.0.0.i.i.i.i = phi i8 [ %75, %65 ], [ %57, %47 ], [ %..i.i.i.i, %64 ] %76 = icmp eq i8 %.sroa.0.0.i.i.i.i, 0 br i1 %76, label %88, label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit @@ -2497,7 +2497,7 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 %79 = getelementptr inbounds nuw i8, ptr %0, i64 64 %.val10.i3.i.i = load i64, ptr %79, align 8, !alias.scope !480, !noalias !481, !noundef !3 %80 = getelementptr inbounds nuw i8, ptr %1, i64 56 - %.val11.i4.i.i = load ptr, ptr %80, align 8, !alias.scope !481, !noalias !480, !nonnull !3, !noundef !3 + %.val11.i4.i.i = load ptr, ptr %710, align 8, !alias.scope !481, !noalias !480, !nonnull !3, !noundef !3 %81 = getelementptr inbounds nuw i8, ptr %1, i64 64 %.val12.i5.i.i = load i64, ptr %81, align 8, !alias.scope !481, !noalias !480, !noundef !3 %..i.i.i.i6.i.i = tail call i64 @llvm.umin.i64(i64 %.val10.i3.i.i, i64 %.val12.i5.i.i) @@ -2518,8 +2518,8 @@ define internal fastcc noundef zeroext i1 @_ZN4core3ops8function5FnMut8call_mut1 %93 = tail call i8 @llvm.ucmp.i8.i32(i32 %90, i32 %92) br label %_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit -_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit: ; preds = %11, %13, %29, %30, %31, %46, %47, %64, %"_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i", %77, %88 - %.sroa.0.0.i.i = phi i8 [ %12, %11 ], [ %40, %31 ], [ %22, %13 ], [ %..i.i.i, %30 ], [ 1, %29 ], [ %93, %88 ], [ %.sroa.0.0.i.i.i.i, %"_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i" ], [ %86, %77 ], [ -1, %47 ], [ 1, %46 ], [ 1, %64 ] +_ZN4core3cmp10PartialOrd2lt17h24572b287f700874E.exit: ; preds = %11, %13, %28, %29, %30, %46, %47, %64, %"_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i", %77, %88 + %.sroa.0.0.i.i = phi i8 [ %11, %10 ], [ %310, %30 ], [ %21, %12 ], [ %..i.i.i, %29 ], [ 1, %28 ], [ %93, %87 ], [ %.sroa.0.0.i.i.i.i, %"_ZN78_$LT$ruff_python_semantic..imports..Alias$u20$as$u20$core..cmp..PartialOrd$GT$11partial_cmp17hb5da6b06178dd87dE.exit.i.i.i" ], [ %86, %76 ], [ -1, %46 ], [ 1, %45 ], [ 1, %63 ] %94 = icmp slt i8 %.sroa.0.0.i.i, 0 ret i1 %94 } diff --git a/bench/ruff-rs/optimized/eutw83t5mls0gkbq7io4ak5nv.ll b/bench/ruff-rs/optimized/eutw83t5mls0gkbq7io4ak5nv.ll index 1db3781116e..b9de96a82ef 100644 --- a/bench/ruff-rs/optimized/eutw83t5mls0gkbq7io4ak5nv.ll +++ b/bench/ruff-rs/optimized/eutw83t5mls0gkbq7io4ak5nv.ll @@ -11867,12 +11867,10 @@ _ZN21ruff_python_formatter7pattern33CanOmitOptionalParenthesesVisitor21update_ma 42: ; preds = %9 %43 = getelementptr inbounds nuw i8, ptr %0, i64 33 %44 = load i8, ptr %43, align 1, !range !605, !alias.scope !1091, !noundef !3 - %45 = zext nneg i8 %44 to i64 - %46 = tail call i8 @llvm.scmp.i8.i64(i64 %45, i64 1) - switch i8 %46, label %47 [ - i8 -1, label %48 - i8 0, label %50 - i8 1, label %_ZN21ruff_python_formatter7pattern33CanOmitOptionalParenthesesVisitor21update_max_precedence17h49dc27f28e0c9c01E.exit3 + switch i8 %44, label %45 [ + i8 0, label %46 + i8 1, label %48 + i8 2, label %_ZN21ruff_python_formatter7pattern33CanOmitOptionalParenthesesVisitor21update_max_precedence17h49dc27f28e0c9c01E.exit3 ] 47: ; preds = %42 diff --git a/bench/wasmi-rs/optimized/apu427tbl3luqie4ryqrtwt7n.ll b/bench/wasmi-rs/optimized/apu427tbl3luqie4ryqrtwt7n.ll index 39be012b12c..19326ad270f 100644 --- a/bench/wasmi-rs/optimized/apu427tbl3luqie4ryqrtwt7n.ll +++ b/bench/wasmi-rs/optimized/apu427tbl3luqie4ryqrtwt7n.ll @@ -6857,24 +6857,23 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc..collections..btree..node..NodeRef$LT$BorrowType$C$K$C$V$C$alloc..collections..btree..node..marker..LeafOrInternal$GT$$GT$11search_tree17hff2072445f920431E"(ptr dead_on_unwind noalias noundef writable writeonly sret([32 x i8]) align 8 captures(none) dereferenceable(32) %0, ptr noundef nonnull %1, i64 noundef %2, ptr noalias noundef readonly align 8 captures(none) dereferenceable(24) %3) unnamed_addr #6 personality ptr @rust_eh_personality { %5 = load i8, ptr %3, align 8, !range !1304, !alias.scope !1305 %.fr16.i = freeze i8 %5 - %6 = zext nneg i8 %.fr16.i to i64 - %7 = trunc i8 %.fr16.i to i1 - %8 = getelementptr inbounds nuw i8, ptr %3, i64 3 - %9 = getelementptr inbounds nuw i8, ptr %3, i64 1 - %10 = load i8, ptr %9, align 1, !alias.scope !1305 - %11 = getelementptr inbounds nuw i8, ptr %3, i64 2 - %12 = load i8, ptr %11, align 2, !alias.scope !1305 - %13 = load i16, ptr %11, align 2, !alias.scope !1305 - %14 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %15 = load ptr, ptr %14, align 8, !alias.scope !1305, !nonnull !3 - %16 = getelementptr inbounds nuw i8, ptr %3, i64 16 - %17 = load i64, ptr %16, align 8, !alias.scope !1305 - %18 = getelementptr inbounds nuw i8, ptr %15, i64 16 - br i1 %7, label %.split.us.i.preheader.us, label %.split.i.preheader - -.split.us.i.preheader.us: ; preds = %4, %55 - %.sroa.3.0.us = phi i64 [ %60, %55 ], [ %2, %4 ] - %.sroa.0.0.us = phi ptr [ %59, %55 ], [ %1, %4 ] + %6 = trunc i8 %.fr16.i to i1 + %7 = getelementptr inbounds nuw i8, ptr %3, i64 3 + %8 = getelementptr inbounds nuw i8, ptr %3, i64 1 + %9 = load i8, ptr %8, align 1, !alias.scope !1305 + %10 = getelementptr inbounds nuw i8, ptr %3, i64 2 + %11 = load i8, ptr %10, align 2, !alias.scope !1305 + %12 = load i16, ptr %10, align 2, !alias.scope !1305 + %13 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %14 = load ptr, ptr %13, align 8, !alias.scope !1305, !nonnull !3 + %15 = getelementptr inbounds nuw i8, ptr %3, i64 16 + %16 = load i64, ptr %15, align 8, !alias.scope !1305 + %17 = getelementptr inbounds nuw i8, ptr %14, i64 16 + br i1 %6, label %.split.us.i.preheader.us, label %.split.i.preheader + +.split.us.i.preheader.us: ; preds = %4, %53 + %.sroa.3.0.us = phi i64 [ %58, %53 ], [ %2, %4 ] + %.sroa.3.0.us = phi ptr [ %57, %53 ], [ %1, %4 ] tail call void @llvm.experimental.noalias.scope.decl(metadata !1305) %19 = getelementptr inbounds nuw i8, ptr %.sroa.0.0.us, i64 8 %20 = getelementptr inbounds nuw i8, ptr %.sroa.0.0.us, i64 318 @@ -6898,39 +6897,38 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. tail call void @llvm.experimental.noalias.scope.decl(metadata !1316) %28 = load i8, ptr %.sroa.01.0.us.i.us, align 8, !range !1304, !alias.scope !1318, !noalias !1319, !noundef !3 %29 = trunc nuw i8 %28 to i1 - %30 = zext nneg i8 %28 to i64 - %31 = tail call i8 @llvm.scmp.i8.i64(i64 %6, i64 %30) - %32 = icmp eq i8 %.fr16.i, %28 - br i1 %32, label %33, label %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.us.i.us" - -33: ; preds = %25 - tail call void @llvm.assume(i1 %29) - %34 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.us.i.us, i64 2 - %35 = load i16, ptr %34, align 2, !alias.scope !1318, !noalias !1319, !noundef !3 - %36 = tail call i8 @llvm.ucmp.i8.i16(i16 %13, i16 %35) - %37 = icmp eq i16 %13, %35 - br i1 %37, label %38, label %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.us.i.us" - -38: ; preds = %33 - %39 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.us.i.us, i64 8 - %40 = load ptr, ptr %39, align 8, !alias.scope !1318, !noalias !1319, !nonnull !3, !noundef !3 - %41 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.us.i.us, i64 16 - %42 = load i64, ptr %41, align 8, !alias.scope !1318, !noalias !1319, !noundef !3 - %43 = getelementptr inbounds nuw i8, ptr %40, i64 16 + %29 = sub nuw nsw i8 %.fr16.i, %28 + %30 = icmp eq i8 %29, 0 + br i1 %30, label %31, label %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.us.i.us" + +31: ; preds = %24 + tail call void @llvm.assume(i1 %28) + %32 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.us.i.us, i64 2 + %33 = load i16, ptr %32, align 2, !alias.scope !1318, !noalias !1319, !noundef !3 + %34 = tail call i8 @llvm.ucmp.i8.i16(i16 %12, i16 %33) + %35 = icmp eq i16 %12, %33 + br i1 %35, label %36, label %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.us.i.us" + +36: ; preds = %31 + %37 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.us.i.us, i64 8 + %38 = load ptr, ptr %37, align 8, !alias.scope !1318, !noalias !1319, !nonnull !3, !noundef !3 + %39 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.us.i.us, i64 16 + %40 = load i64, ptr %39, align 8, !alias.scope !1318, !noalias !1319, !noundef !3 + %41 = getelementptr inbounds nuw i8, ptr %38, i64 16 tail call void @llvm.experimental.noalias.scope.decl(metadata !1320) tail call void @llvm.experimental.noalias.scope.decl(metadata !1323) - %.sroa.0.0.sroa.speculated.i.i.i.i.us.i.us = tail call noundef i64 @llvm.umin.i64(i64 %42, i64 %17) + %.sroa.0.0.sroa.speculated.i.i.i.i.us.i.us = tail call noundef i64 @llvm.umin.i64(i64 %40, i64 %16) br label %44 -44: ; preds = %45, %38 - %.sroa.01.0.i10.i.i.us.i.us = phi i64 [ 0, %38 ], [ %46, %45 ] +44: ; preds = %45, %36 + %.sroa.01.0.i10.i.i.us.i.us = phi i64 [ 0, %36 ], [ %46, %43 ] %exitcond.not.i11.i.i.us.i.us = icmp eq i64 %.sroa.01.0.i10.i.i.us.i.us, %.sroa.0.0.sroa.speculated.i.i.i.i.us.i.us br i1 %exitcond.not.i11.i.i.us.i.us, label %53, label %45 45: ; preds = %44 %46 = add i64 %.sroa.01.0.i10.i.i.us.i.us, 1 - %47 = getelementptr inbounds nuw i8, ptr %18, i64 %.sroa.01.0.i10.i.i.us.i.us - %48 = getelementptr inbounds nuw i8, ptr %43, i64 %.sroa.01.0.i10.i.i.us.i.us + %47 = getelementptr inbounds nuw i8, ptr %17, i64 %.sroa.01.0.i10.i.i.us.i.us + %48 = getelementptr inbounds nuw i8, ptr %41, i64 %.sroa.01.0.i10.i.i.us.i.us %.val14.i12.i.i.us.i.us = load i8, ptr %47, align 1, !range !1325, !alias.scope !1320, !noalias !1326, !noundef !3 %.val15.i13.i.i.us.i.us = load i8, ptr %48, align 1, !range !1325, !alias.scope !1323, !noalias !1327, !noundef !3 %49 = icmp eq i8 %.val14.i12.i.i.us.i.us, %.val15.i13.i.i.us.i.us @@ -6943,11 +6941,11 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br label %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.us.i.us" 53: ; preds = %44 - %54 = tail call noundef range(i8 -1, 2) i8 @llvm.ucmp.i8.i64(i64 %17, i64 %42) + %54 = tail call noundef range(i8 -1, 2) i8 @llvm.ucmp.i8.i64(i64 %16, i64 %40) br label %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.us.i.us" -"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.us.i.us": ; preds = %53, %.loopexit.i14.i.i.us.i.us, %33, %25 - %.sroa.0.0.i.i.us.i.us = phi i8 [ %36, %33 ], [ %31, %25 ], [ %54, %53 ], [ %52, %.loopexit.i14.i.i.us.i.us ] +"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.us.i.us": ; preds = %53, %.loopexit.i14.i.i.us.i.us, %31, %25 + %.sroa.0.0.i.i.us.i.us = phi i8 [ %34, %31 ], [ %29, %24 ], [ %54, %51 ], [ %52, %.loopexit.i14.i.i.us.i.us ] switch i8 %.sroa.0.0.i.i.us.i.us, label %.split14.us.i [ i8 -1, label %.loopexit55.us i8 0, label %.split81.us @@ -6969,8 +6967,8 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br i1 %61, label %.split81.us, label %55 .split.i.preheader: ; preds = %4, %98 - %.sroa.3.0 = phi i64 [ %103, %98 ], [ %2, %4 ] - %.sroa.0.0 = phi ptr [ %102, %98 ], [ %1, %4 ] + %.sroa.3.0 = phi i64 [ %103, %96 ], [ %2, %4 ] + %.sroa.0.0 = phi ptr [ %102, %96 ], [ %1, %4 ] tail call void @llvm.experimental.noalias.scope.decl(metadata !1305) %62 = getelementptr inbounds nuw i8, ptr %.sroa.0.0, i64 8 %63 = getelementptr inbounds nuw i8, ptr %.sroa.0.0, i64 318 @@ -6993,33 +6991,34 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. tail call void @llvm.experimental.noalias.scope.decl(metadata !1313) tail call void @llvm.experimental.noalias.scope.decl(metadata !1316) %71 = load i8, ptr %.sroa.01.0.i, align 8, !range !1304, !alias.scope !1318, !noalias !1319, !noundef !3 - %72 = zext nneg i8 %71 to i64 - %73 = tail call i8 @llvm.scmp.i8.i64(i64 %6, i64 %72) - %74 = icmp eq i8 %.fr16.i, %71 - br i1 %74, label %75, label %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.i" - -75: ; preds = %68 - %76 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.i, i64 3 - %77 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.i, i64 1 - %78 = load i8, ptr %77, align 1, !alias.scope !1318, !noalias !1319, !noundef !3 - %79 = tail call i8 @llvm.ucmp.i8.i8(i8 %10, i8 %78) - %80 = icmp eq i8 %10, %78 - br i1 %80, label %81, label %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.i" - -81: ; preds = %75 - %82 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.i, i64 2 - %83 = load i8, ptr %82, align 2, !alias.scope !1318, !noalias !1319, !noundef !3 - %84 = tail call i8 @llvm.ucmp.i8.i8(i8 %12, i8 %83) - %85 = icmp eq i8 %12, %83 - br i1 %85, label %86, label %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.i" - -86: ; preds = %81 + %70 = sub nsw i8 %.fr16.i, %69 + %71 = icmp eq i8 %70, 0 + br i1 %71, label %72, label %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.i" + +72: ; preds = %66 + %73 = icmp eq i8 %69, 0 + tail call void @llvm.assume(i1 %73) + %77 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.i, i64 3 + %75 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.i, i64 1 + %76 = load i8, ptr %75, align 1, !alias.scope !1318, !noalias !1319, !noundef !3 + %77 = tail call i8 @llvm.ucmp.i8.i8(i8 %9, i8 %76) + %78 = icmp eq i8 %9, %76 + br i1 %78, label %79, label %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.i" + +79: ; preds = %72 + %80 = getelementptr inbounds nuw i8, ptr %.sroa.01.0.i, i64 2 + %81 = load i8, ptr %80, align 2, !alias.scope !1318, !noalias !1319, !noundef !3 + %82 = tail call i8 @llvm.ucmp.i8.i8(i8 %11, i8 %81) + %83 = icmp eq i8 %11, %81 + br i1 %83, label %84, label %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.i" + +84: ; preds = %79 tail call void @llvm.experimental.noalias.scope.decl(metadata !1331) tail call void @llvm.experimental.noalias.scope.decl(metadata !1334) br label %87 -87: ; preds = %91, %86 - %.sroa.01.0.i.i.i.i = phi i64 [ 0, %86 ], [ %92, %91 ] +87: ; preds = %91, %84 + %.sroa.01.0.i.i.i.i = phi i64 [ 0, %84 ], [ %92, %89 ] %exitcond.not.i.i.i.i = icmp eq i64 %.sroa.01.0.i.i.i.i, 21 br i1 %exitcond.not.i.i.i.i, label %.split81.us, label %91 @@ -7031,15 +7030,15 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. 91: ; preds = %87 %92 = add nuw nsw i64 %.sroa.01.0.i.i.i.i, 1 - %93 = getelementptr inbounds nuw i8, ptr %8, i64 %.sroa.01.0.i.i.i.i - %94 = getelementptr inbounds nuw i8, ptr %76, i64 %.sroa.01.0.i.i.i.i + %93 = getelementptr inbounds nuw i8, ptr %7, i64 %.sroa.01.0.i.i.i.i + %94 = getelementptr inbounds nuw i8, ptr %74, i64 %.sroa.01.0.i.i.i.i %.val14.i.i.i.i = load i8, ptr %93, align 1, !range !1325, !alias.scope !1336, !noalias !1337, !noundef !3 %.val15.i.i.i.i = load i8, ptr %94, align 1, !range !1325, !alias.scope !1337, !noalias !1336, !noundef !3 %95 = icmp eq i8 %.val14.i.i.i.i, %.val15.i.i.i.i br i1 %95, label %87, label %.loopexit.i.i.i.i -"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.i": ; preds = %.loopexit.i.i.i.i, %81, %75, %68 - %.sroa.0.0.i.i.i = phi i8 [ %84, %81 ], [ %79, %75 ], [ %73, %68 ], [ %90, %.loopexit.i.i.i.i ] +"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.i": ; preds = %.loopexit.i.i.i.i, %79, %72, %68 + %.sroa.0.0.i.i.i = phi i8 [ %82, %79 ], [ %77, %72 ], [ %70, %66 ], [ %90, %.loopexit.i.i.i.i ] switch i8 %.sroa.0.0.i.i.i, label %.split14.us.i [ i8 -1, label %.loopexit57 i8 0, label %.split81.us @@ -7055,10 +7054,10 @@ define hidden void @"_ZN5alloc11collections5btree6search142_$LT$impl$u20$alloc.. br i1 %96, label %.split81.us, label %98 .split81.us: ; preds = %.loopexit57, %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.i", %87, %.loopexit55.us, %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.us.i.us" - %.us-phi83.sink = phi ptr [ %.sroa.0.0.us, %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.us.i.us" ], [ %.sroa.0.0.us, %.loopexit55.us ], [ %.sroa.0.0, %87 ], [ %.sroa.0.0, %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.i" ], [ %.sroa.0.0, %.loopexit57 ] - %.sink = phi i64 [ %.sroa.3.0.us, %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.us.i.us" ], [ 0, %.loopexit55.us ], [ %.sroa.3.0, %87 ], [ %.sroa.3.0, %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.i" ], [ 0, %.loopexit57 ] - %.us-phi82.sink = phi i64 [ %.sroa.8.0.us.i.us, %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.us.i.us" ], [ %.sroa.4.0.i.ph.ph.us, %.loopexit55.us ], [ %.sroa.8.0.i, %87 ], [ %.sroa.8.0.i, %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.i" ], [ %.sroa.4.0.i.ph.ph58, %.loopexit57 ] - %storemerge = phi i64 [ 0, %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.us.i.us" ], [ 1, %.loopexit55.us ], [ 0, %87 ], [ 0, %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.i" ], [ 1, %.loopexit57 ] + %.us-phi83.sink = phi ptr [ %.sroa.0.0.us, %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.us.i.us" ], [ %.sroa.0.0.us, %.loopexit55.us ], [ %.sroa.0.0, %85 ], [ %.sroa.0.0, %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.i" ], [ %.sroa.0.0, %.loopexit57 ] + %.sink = phi i64 [ %.sroa.3.0.us, %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.us.i.us" ], [ 0, %.loopexit55.us ], [ %.sroa.3.0, %85 ], [ %.sroa.3.0, %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.i" ], [ 0, %.loopexit57 ] + %.us-phi82.sink = phi i64 [ %.sroa.8.0.us.i.us, %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.us.i.us" ], [ %.sroa.4.0.i.ph.ph.us, %.loopexit55.us ], [ %.sroa.8.0.i, %85 ], [ %.sroa.8.0.i, %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.i" ], [ %.sroa.4.0.i.ph.ph58, %.loopexit57 ] + %storemerge = phi i64 [ 0, %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.us.i.us" ], [ 1, %.loopexit55.us ], [ 0, %85 ], [ 0, %"_ZN60_$LT$wasmi..func..ty..FuncType$u20$as$u20$core..cmp..Ord$GT$3cmp17hcbc49cdaf33a79dcE.exit.i" ], [ 1, %.loopexit57 ] %97 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %.us-phi83.sink, ptr %97, align 8 %.sroa.242.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c5409e09ef4..6b0db4a69b9 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/144717 export COMPTIME_MODE=0 # Please rebase manually