diff --git a/bench/actix-rs/optimized/5dylu5g0crehei80.ll b/bench/actix-rs/optimized/5dylu5g0crehei80.ll index 546aafe3582..06d7ffea140 100644 --- a/bench/actix-rs/optimized/5dylu5g0crehei80.ll +++ b/bench/actix-rs/optimized/5dylu5g0crehei80.ll @@ -14033,7 +14033,7 @@ common.ret: ; preds = %96, %81, %62 70: ; preds = %"_ZN4core3ptr402drop_in_place$LT$futures_util..sink..send..Send$LT$actix_codec..framed..Framed$LT$awc..client..connection..Connection$LT$tokio..net..tcp..stream..TcpStream$C$alloc..boxed..Box$LT$dyn$u20$awc..client..connection..ConnectionIo$GT$$GT$$C$actix_http..h1..client..ClientCodec$GT$$C$actix_http..h1..Message$LT$$LP$actix_http..requests..head..RequestHeadType$C$actix_http..body..size..BodySize$RP$$GT$$GT$$GT$17h1df0d97a8620fad0E.exit", %98 %.sroa.7.0 = phi ptr [ %.sroa.7.2, %98 ], [ %43, %"_ZN4core3ptr402drop_in_place$LT$futures_util..sink..send..Send$LT$actix_codec..framed..Framed$LT$awc..client..connection..Connection$LT$tokio..net..tcp..stream..TcpStream$C$alloc..boxed..Box$LT$dyn$u20$awc..client..connection..ConnectionIo$GT$$GT$$C$actix_http..h1..client..ClientCodec$GT$$C$actix_http..h1..Message$LT$$LP$actix_http..requests..head..RequestHeadType$C$actix_http..body..size..BodySize$RP$$GT$$GT$$GT$17h1df0d97a8620fad0E.exit" ] %.sroa.052.0 = phi i8 [ %.sroa.052.2, %98 ], [ 2, %"_ZN4core3ptr402drop_in_place$LT$futures_util..sink..send..Send$LT$actix_codec..framed..Framed$LT$awc..client..connection..Connection$LT$tokio..net..tcp..stream..TcpStream$C$alloc..boxed..Box$LT$dyn$u20$awc..client..connection..ConnectionIo$GT$$GT$$C$actix_http..h1..client..ClientCodec$GT$$C$actix_http..h1..Message$LT$$LP$actix_http..requests..head..RequestHeadType$C$actix_http..body..size..BodySize$RP$$GT$$GT$$GT$17h1df0d97a8620fad0E.exit" ] - %.sroa.8.sroa.0.0 = phi ptr [ %.sroa.036.sroa.11.0.copyload71, %98 ], [ undef, %"_ZN4core3ptr402drop_in_place$LT$futures_util..sink..send..Send$LT$actix_codec..framed..Framed$LT$awc..client..connection..Connection$LT$tokio..net..tcp..stream..TcpStream$C$alloc..boxed..Box$LT$dyn$u20$awc..client..connection..ConnectionIo$GT$$GT$$C$actix_http..h1..client..ClientCodec$GT$$C$actix_http..h1..Message$LT$$LP$actix_http..requests..head..RequestHeadType$C$actix_http..body..size..BodySize$RP$$GT$$GT$$GT$17h1df0d97a8620fad0E.exit" ] + %.sroa.8.sroa.0.0 = phi ptr [ %.sroa.036.sroa.11.0103, %98 ], [ undef, %"_ZN4core3ptr402drop_in_place$LT$futures_util..sink..send..Send$LT$actix_codec..framed..Framed$LT$awc..client..connection..Connection$LT$tokio..net..tcp..stream..TcpStream$C$alloc..boxed..Box$LT$dyn$u20$awc..client..connection..ConnectionIo$GT$$GT$$C$actix_http..h1..client..ClientCodec$GT$$C$actix_http..h1..Message$LT$$LP$actix_http..requests..head..RequestHeadType$C$actix_http..body..size..BodySize$RP$$GT$$GT$$GT$17h1df0d97a8620fad0E.exit" ] %.sroa.8.sroa.4.sroa.0.0 = phi ptr [ %.sroa.8.sroa.4.sroa.0.2, %98 ], [ undef, %"_ZN4core3ptr402drop_in_place$LT$futures_util..sink..send..Send$LT$actix_codec..framed..Framed$LT$awc..client..connection..Connection$LT$tokio..net..tcp..stream..TcpStream$C$alloc..boxed..Box$LT$dyn$u20$awc..client..connection..ConnectionIo$GT$$GT$$C$actix_http..h1..client..ClientCodec$GT$$C$actix_http..h1..Message$LT$$LP$actix_http..requests..head..RequestHeadType$C$actix_http..body..size..BodySize$RP$$GT$$GT$$GT$17h1df0d97a8620fad0E.exit" ] %.sroa.8.sroa.4.sroa.3.sroa.0.0 = phi i64 [ %.sroa.8.sroa.4.sroa.3.sroa.0.2, %98 ], [ undef, %"_ZN4core3ptr402drop_in_place$LT$futures_util..sink..send..Send$LT$actix_codec..framed..Framed$LT$awc..client..connection..Connection$LT$tokio..net..tcp..stream..TcpStream$C$alloc..boxed..Box$LT$dyn$u20$awc..client..connection..ConnectionIo$GT$$GT$$C$actix_http..h1..client..ClientCodec$GT$$C$actix_http..h1..Message$LT$$LP$actix_http..requests..head..RequestHeadType$C$actix_http..body..size..BodySize$RP$$GT$$GT$$GT$17h1df0d97a8620fad0E.exit" ] %.sroa.8.sroa.4.sroa.3.sroa.3.0 = phi i64 [ %.sroa.8.sroa.4.sroa.3.sroa.3.2, %98 ], [ undef, %"_ZN4core3ptr402drop_in_place$LT$futures_util..sink..send..Send$LT$actix_codec..framed..Framed$LT$awc..client..connection..Connection$LT$tokio..net..tcp..stream..TcpStream$C$alloc..boxed..Box$LT$dyn$u20$awc..client..connection..ConnectionIo$GT$$GT$$C$actix_http..h1..client..ClientCodec$GT$$C$actix_http..h1..Message$LT$$LP$actix_http..requests..head..RequestHeadType$C$actix_http..body..size..BodySize$RP$$GT$$GT$$GT$17h1df0d97a8620fad0E.exit" ] @@ -14093,20 +14093,20 @@ common.ret: ; preds = %96, %81, %62 %86 = getelementptr inbounds nuw i8, ptr %7, i64 83 %87 = load i8, ptr %86, align 1, !range !555, !alias.scope !1673, !noalias !1670, !noundef !7 %88 = icmp eq i8 %87, 7 - %.sroa.036.sroa.0.0.copyload67 = load i8, ptr %7, align 8, !alias.scope !1675 - %.sroa.036.sroa.10.0..sroa_idx69 = getelementptr inbounds nuw i8, ptr %7, i64 1 - %.sroa.036.sroa.10.sroa.0.0.copyload86 = load i56, ptr %.sroa.036.sroa.10.0..sroa_idx69, align 1, !alias.scope !1675 - %.sroa.036.sroa.11.0..sroa_idx70 = getelementptr inbounds nuw i8, ptr %7, i64 8 - %.sroa.036.sroa.11.0.copyload71 = load ptr, ptr %.sroa.036.sroa.11.0..sroa_idx70, align 8, !alias.scope !1675 - %.sroa.036.sroa.12.0..sroa_idx73 = getelementptr inbounds nuw i8, ptr %7, i64 16 - %.sroa.036.sroa.12.sroa.0.0.copyload76 = load ptr, ptr %.sroa.036.sroa.12.0..sroa_idx73, align 8, !alias.scope !1675 - %.sroa.036.sroa.12.sroa.10.0..sroa.036.sroa.12.0..sroa_idx73.sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 24 - %.sroa.036.sroa.12.sroa.10.sroa.0.0.copyload79 = load ptr, ptr %.sroa.036.sroa.12.sroa.10.0..sroa.036.sroa.12.0..sroa_idx73.sroa_idx, align 8, !alias.scope !1675 - %.sroa.036.sroa.12.sroa.10.sroa.10.0..sroa.036.sroa.12.sroa.10.0..sroa.036.sroa.12.0..sroa_idx73.sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 32 - %.sroa.036.sroa.12.sroa.10.sroa.10.sroa.0.0.copyload82 = load i64, ptr %.sroa.036.sroa.12.sroa.10.sroa.10.0..sroa.036.sroa.12.sroa.10.0..sroa.036.sroa.12.0..sroa_idx73.sroa_idx.sroa_idx, align 8, !alias.scope !1675 br i1 %88, label %91, label %89 89: ; preds = %85 + %.sroa.036.sroa.0.0.copyload = load i8, ptr %7, align 8, !alias.scope !1675 + %.sroa.036.sroa.10.0..sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 1 + %.sroa.036.sroa.10.sroa.0.0.copyload = load i56, ptr %.sroa.036.sroa.10.0..sroa_idx, align 1, !alias.scope !1675 + %.sroa.036.sroa.11.0..sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 8 + %.sroa.036.sroa.11.0.copyload = load ptr, ptr %.sroa.036.sroa.11.0..sroa_idx, align 8, !alias.scope !1675 + %.sroa.036.sroa.12.0..sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 16 + %.sroa.036.sroa.12.sroa.0.0.copyload = load ptr, ptr %.sroa.036.sroa.12.0..sroa_idx, align 8, !alias.scope !1675 + %.sroa.036.sroa.12.sroa.10.0..sroa.036.sroa.12.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 24 + %.sroa.036.sroa.12.sroa.10.sroa.0.0.copyload = load ptr, ptr %.sroa.036.sroa.12.sroa.10.0..sroa.036.sroa.12.0..sroa_idx.sroa_idx, align 8, !alias.scope !1675 + %.sroa.036.sroa.12.sroa.10.sroa.10.0..sroa.036.sroa.12.sroa.10.0..sroa.036.sroa.12.0..sroa_idx.sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 32 + %.sroa.036.sroa.12.sroa.10.sroa.10.sroa.0.0.copyload = load i64, ptr %.sroa.036.sroa.12.sroa.10.sroa.10.0..sroa.036.sroa.12.sroa.10.0..sroa.036.sroa.12.0..sroa_idx.sroa_idx.sroa_idx, align 8, !alias.scope !1675 %.sroa.036.sroa.12.sroa.10.sroa.10.sroa.10.0..sroa.036.sroa.12.sroa.10.sroa.10.0..sroa.036.sroa.12.sroa.10.0..sroa.036.sroa.12.0..sroa_idx.sroa_idx.sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 40 %.sroa.036.sroa.12.sroa.10.sroa.10.sroa.10.0.copyload = load i64, ptr %.sroa.036.sroa.12.sroa.10.sroa.10.sroa.10.0..sroa.036.sroa.12.sroa.10.sroa.10.0..sroa.036.sroa.12.sroa.10.0..sroa.036.sroa.12.0..sroa_idx.sroa_idx.sroa_idx.sroa_idx, align 8, !alias.scope !1675 %.sroa.036.sroa.12.sroa.11.0..sroa.036.sroa.12.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 48 @@ -14118,11 +14118,16 @@ common.ret: ; preds = %96, %81, %62 br i1 %90, label %95, label %93 91: ; preds = %85 + %.sroa.036.sroa.0.0.copyload67 = load i64, ptr %7, align 8, !alias.scope !1675 + %.sroa.036.sroa.11.0..sroa_idx70 = getelementptr inbounds nuw i8, ptr %7, i64 8 + %.sroa.036.sroa.11.0.copyload71 = load ptr, ptr %.sroa.036.sroa.11.0..sroa_idx70, align 8, !alias.scope !1675 + %.sroa.036.sroa.12.0..sroa_idx73 = getelementptr inbounds nuw i8, ptr %7, i64 16 + %.sroa.036.sroa.12.sroa.0.0.copyload76 = load ptr, ptr %.sroa.036.sroa.12.0..sroa_idx73, align 8, !alias.scope !1675 + %.sroa.036.sroa.12.sroa.10.0..sroa.036.sroa.12.0..sroa_idx73.sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 24 + %.sroa.036.sroa.12.sroa.10.sroa.0.0.copyload79 = load ptr, ptr %.sroa.036.sroa.12.sroa.10.0..sroa.036.sroa.12.0..sroa_idx73.sroa_idx, align 8, !alias.scope !1675 + %.sroa.036.sroa.12.sroa.10.sroa.10.0..sroa.036.sroa.12.sroa.10.0..sroa.036.sroa.12.0..sroa_idx73.sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 32 + %.sroa.036.sroa.12.sroa.10.sroa.10.sroa.0.0.copyload82 = load i64, ptr %.sroa.036.sroa.12.sroa.10.sroa.10.0..sroa.036.sroa.12.sroa.10.0..sroa.036.sroa.12.0..sroa_idx73.sroa_idx.sroa_idx, align 8, !alias.scope !1675 call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %7) - %.sroa.4.i.sroa.3.7.insert.ext = zext i8 %.sroa.036.sroa.0.0.copyload67 to i64 - %.sroa.4.i.sroa.3.8.insert.ext = zext i56 %.sroa.036.sroa.10.sroa.0.0.copyload86 to i64 - %.sroa.4.i.sroa.3.8.insert.shift = shl nuw i64 %.sroa.4.i.sroa.3.8.insert.ext, 8 - %.sroa.4.i.sroa.3.8.insert.insert = or disjoint i64 %.sroa.4.i.sroa.3.8.insert.shift, %.sroa.4.i.sroa.3.7.insert.ext %92 = ptrtoint ptr %.sroa.036.sroa.12.sroa.10.sroa.0.0.copyload79 to i64 br label %98 @@ -14135,8 +14140,8 @@ common.ret: ; preds = %96, %81, %62 br label %96 95: ; preds = %89 - %.sroa.4.i23.sroa.3.7.insert.ext = zext i8 %.sroa.036.sroa.0.0.copyload67 to i64 - %.sroa.4.i23.sroa.3.8.insert.ext = zext i56 %.sroa.036.sroa.10.sroa.0.0.copyload86 to i64 + %.sroa.4.i23.sroa.3.7.insert.ext = zext i8 %.sroa.036.sroa.0.0.copyload to i64 + %.sroa.4.i23.sroa.3.8.insert.ext = zext i56 %.sroa.036.sroa.10.sroa.0.0.copyload to i64 %.sroa.4.i23.sroa.3.8.insert.shift = shl nuw i64 %.sroa.4.i23.sroa.3.8.insert.ext, 8 %.sroa.4.i23.sroa.3.8.insert.insert = or disjoint i64 %.sroa.4.i23.sroa.3.8.insert.shift, %.sroa.4.i23.sroa.3.7.insert.ext br label %98 @@ -14145,13 +14150,13 @@ common.ret: ; preds = %96, %81, %62 %.sroa.1058.1 = phi i64 [ %.sroa.059.0.copyload, %93 ], [ 2, %70 ] %.sroa.9.0 = phi i32 [ %.sroa.1240.0.copyload42, %93 ], [ undef, %70 ] %.sroa.857.0 = phi i8 [ %87, %93 ], [ undef, %70 ] - %.sroa.7.1 = phi ptr [ %.sroa.036.sroa.11.0.copyload71, %93 ], [ %.sroa.7.0, %70 ] - %.sroa.052.1 = phi i8 [ %.sroa.036.sroa.0.0.copyload67, %93 ], [ %.sroa.052.0, %70 ] - %.sroa.8.sroa.0.1 = phi ptr [ %.sroa.036.sroa.12.sroa.0.0.copyload76, %93 ], [ %.sroa.8.sroa.0.0, %70 ] - %.sroa.8.sroa.4.sroa.0.1 = phi ptr [ %.sroa.036.sroa.12.sroa.10.sroa.0.0.copyload79, %93 ], [ %.sroa.8.sroa.4.sroa.0.0, %70 ] - %.sroa.8.sroa.4.sroa.3.sroa.0.1 = phi i64 [ %.sroa.036.sroa.12.sroa.10.sroa.10.sroa.0.0.copyload82, %93 ], [ %.sroa.8.sroa.4.sroa.3.sroa.0.0, %70 ] + %.sroa.7.1 = phi ptr [ %.sroa.036.sroa.11.0.copyload, %93 ], [ %.sroa.7.0, %70 ] + %.sroa.052.1 = phi i8 [ %.sroa.036.sroa.0.0.copyload, %93 ], [ %.sroa.052.0, %70 ] + %.sroa.8.sroa.0.1 = phi ptr [ %.sroa.036.sroa.12.sroa.0.0.copyload, %93 ], [ %.sroa.8.sroa.0.0, %70 ] + %.sroa.8.sroa.4.sroa.0.1 = phi ptr [ %.sroa.036.sroa.12.sroa.10.sroa.0.0.copyload, %93 ], [ %.sroa.8.sroa.4.sroa.0.0, %70 ] + %.sroa.8.sroa.4.sroa.3.sroa.0.1 = phi i64 [ %.sroa.036.sroa.12.sroa.10.sroa.10.sroa.0.0.copyload, %93 ], [ %.sroa.8.sroa.4.sroa.3.sroa.0.0, %70 ] %.sroa.8.sroa.4.sroa.3.sroa.3.1 = phi i64 [ %.sroa.036.sroa.12.sroa.10.sroa.10.sroa.10.0.copyload, %93 ], [ %.sroa.8.sroa.4.sroa.3.sroa.3.0, %70 ] - %.sroa.554.sroa.0.1 = phi i56 [ %.sroa.036.sroa.10.sroa.0.0.copyload86, %93 ], [ undef, %70 ] + %.sroa.554.sroa.0.1 = phi i56 [ %.sroa.036.sroa.10.sroa.0.0.copyload, %93 ], [ undef, %70 ] %97 = getelementptr inbounds nuw i8, ptr %1, i64 593 store i8 0, ptr %97, align 1 call void @llvm.lifetime.end.p0(i64 216, ptr nonnull %10) @@ -14181,7 +14186,8 @@ common.ret: ; preds = %96, %81, %62 br label %common.ret 98: ; preds = %95, %91 - %.sroa.7.2.in = phi i64 [ %.sroa.4.i.sroa.3.8.insert.insert, %91 ], [ %.sroa.4.i23.sroa.3.8.insert.insert, %95 ] + %.sroa.7.2.in = phi ptr [ %.sroa.036.sroa.11.0.copyload71, %91 ], [ %.sroa.036.sroa.11.0.copyload, %95 ] + %.sroa.7.2.in = phi i64 [ %.sroa.036.sroa.0.0.copyload67, %91 ], [ %.sroa.4.i23.sroa.3.8.insert.insert, %95 ] %.sroa.052.2 = phi i8 [ 1, %91 ], [ 3, %95 ] %.sroa.8.sroa.4.sroa.0.2 = phi ptr [ %.sroa.036.sroa.12.sroa.0.0.copyload76, %91 ], [ undef, %95 ] %.sroa.8.sroa.4.sroa.3.sroa.0.2 = phi i64 [ %92, %91 ], [ undef, %95 ] diff --git a/bench/coreutils-rs/optimized/11fdr7kbbvsdssj2.ll b/bench/coreutils-rs/optimized/11fdr7kbbvsdssj2.ll index fbf6f5af385..b3d97ff7d5f 100644 --- a/bench/coreutils-rs/optimized/11fdr7kbbvsdssj2.ll +++ b/bench/coreutils-rs/optimized/11fdr7kbbvsdssj2.ll @@ -1813,9 +1813,8 @@ _ZN12clap_builder6parser5error12MatchesError6unwrap17h90b853b39b127050E.exit.i: %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %18, i64 8 %.sroa.5.0.copyload.i = load i64, ptr %.sroa.5.0..sroa_idx.i, align 8, !noalias !561 %.sroa.8.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %18, i64 16 - %.sroa.8.0.copyload.i = load i8, ptr %.sroa.8.0..sroa_idx.i, align 8, !noalias !561 - %.sroa.1172.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %18, i64 17 - %.sroa.1172.i.sroa.0.0.copyload = load i56, ptr %.sroa.1172.0..sroa_idx.i, align 1, !noalias !561 + %.sroa.8.0.copyload.i = load i64, ptr %.sroa.8.0..sroa_idx.i, align 8 + %92 = trunc i64 %.sroa.8.0.copyload.i to i8 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18), !noalias !542 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24), !noalias !527 %92 = icmp eq i64 %.sroa.0.0.copyload.i, -9223372036854775808 @@ -1850,7 +1849,7 @@ _ZN12clap_builder6parser5error12MatchesError6unwrap17h90b853b39b127050E.exit.i: %108 = getelementptr i8, ptr %107, i64 16 %109 = getelementptr inbounds nuw i8, ptr %102, i64 24 %110 = load ptr, ptr %109, align 8, !invariant.load !5, !alias.scope !569, !noalias !568, !nonnull !5 - %111 = invoke noundef i128 %110(ptr noundef nonnull align 1 %108) + %111 = invoke noundef i128 %111(ptr noundef nonnull align 1 %108) to label %.noexc33 unwind label %36 .noexc33: ; preds = %99 @@ -1902,7 +1901,7 @@ _ZN12clap_builder6parser5error12MatchesError6unwrap17h90b853b39b127050E.exit67.i 121: ; preds = %.noexc30, %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h3e08ebe2fafa1867E.exit.thread.i" %.sroa.5.096.ph.i = phi i64 [ %.sroa.5.0.copyload.i, %.noexc30 ], [ %83, %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h3e08ebe2fafa1867E.exit.thread.i" ] - %.sroa.8.094.ph.i = phi i8 [ %.sroa.8.0.copyload.i, %.noexc30 ], [ %85, %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h3e08ebe2fafa1867E.exit.thread.i" ] + %.sroa.8.094.ph.i = phi i8 [ %92, %.noexc30 ], [ %85, %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h3e08ebe2fafa1867E.exit.thread.i" ] %122 = trunc i8 %.sroa.8.094.ph.i to i1 %spec.select = select i1 %122, i64 3, i64 2 br label %136 @@ -1960,9 +1959,8 @@ _ZN12clap_builder6parser5error12MatchesError6unwrap17h90b853b39b127050E.exit67.i %.sroa.574.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %10, i64 8 %.sroa.574.0.copyload.i = load i64, ptr %.sroa.574.0..sroa_idx.i, align 8, !noalias !601 %.sroa.875.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %10, i64 16 - %.sroa.875.0.copyload.i = load i8, ptr %.sroa.875.0..sroa_idx.i, align 8, !noalias !601 - %.sroa.1176.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %10, i64 17 - %.sroa.1176.i.sroa.0.0.copyload = load i56, ptr %.sroa.1176.0..sroa_idx.i, align 1, !noalias !601 + %.sroa.875.0.copyload.i = load i64, ptr %.sroa.875.0..sroa_idx.i, align 8 + %134 = trunc i64 %.sroa.875.0.copyload.i to i8 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10), !noalias !582 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23), !noalias !527 %133 = icmp eq i64 %.sroa.073.0.copyload.i, -9223372036854775808 @@ -1970,7 +1968,7 @@ _ZN12clap_builder6parser5error12MatchesError6unwrap17h90b853b39b127050E.exit67.i 134: ; preds = %.noexc37, %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h43de001a91c7d1d3E.exit.thread.i" %.sroa.574.0114.ph.i = phi i64 [ %.sroa.574.0.copyload.i, %.noexc37 ], [ %124, %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h43de001a91c7d1d3E.exit.thread.i" ] - %.sroa.875.0112.ph.i = phi i8 [ %.sroa.875.0.copyload.i, %.noexc37 ], [ %126, %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h43de001a91c7d1d3E.exit.thread.i" ] + %.sroa.875.0112.ph.i = phi i8 [ %134, %.noexc37 ], [ %126, %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h43de001a91c7d1d3E.exit.thread.i" ] %135 = and i8 %.sroa.875.0112.ph.i, 1 %spec.select65 = zext nneg i8 %135 to i64 br label %136 @@ -1987,20 +1985,15 @@ _ZN12clap_builder6parser5error12MatchesError6unwrap17h90b853b39b127050E.exit67.i to label %138 unwind label %36 _ZN7uu_head4Mode4from17h11a1c85a530c4291E.exit: ; preds = %.noexc37, %.noexc30 - %.sroa.8.0.copyload.i.sink = phi i8 [ %.sroa.8.0.copyload.i, %.noexc30 ], [ %.sroa.875.0.copyload.i, %.noexc37 ] - %.sroa.1172.i.sroa.0.0.copyload.sink = phi i56 [ %.sroa.1172.i.sroa.0.0.copyload, %.noexc30 ], [ %.sroa.1176.i.sroa.0.0.copyload, %.noexc37 ] + %.sroa.8.0.copyload.i.sink = phi i64 [ %.sroa.8.0.copyload.i, %.noexc30 ], [ %.sroa.875.0.copyload.i, %.noexc37 ] %.sroa.10.0 = phi i64 [ %.sroa.5.0.copyload.i, %.noexc30 ], [ %.sroa.574.0.copyload.i, %.noexc37 ] %.sroa.0.059 = phi i64 [ %.sroa.0.0.copyload.i, %.noexc30 ], [ %.sroa.073.0.copyload.i, %.noexc37 ] - %.sroa.19.16.insert.ext = zext i8 %.sroa.8.0.copyload.i.sink to i64 - %.sroa.19.17.insert.ext = zext i56 %.sroa.1172.i.sroa.0.0.copyload.sink to i64 - %.sroa.19.17.insert.shift = shl nuw i64 %.sroa.19.17.insert.ext, 8 - %.sroa.19.17.insert.insert = or disjoint i64 %.sroa.19.17.insert.shift, %.sroa.19.16.insert.ext - %137 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i64 %.sroa.0.059, ptr %137, align 8 + %139 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i64 %.sroa.0.059, ptr %139, align 8 %.sroa.214.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 store i64 %.sroa.10.0, ptr %.sroa.214.0..sroa_idx, align 8 %.sroa.315.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 - store i64 %.sroa.19.17.insert.insert, ptr %.sroa.315.0..sroa_idx, align 8 + store i64 %.sroa.19.0, ptr %.sroa.315.0..sroa_idx, align 8 store i64 4, ptr %0, align 8 call void @"_ZN4core3ptr65drop_in_place$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$17hbfe64d6658486ebcE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %34) br label %166 diff --git a/bench/coreutils-rs/optimized/4jcegsvljtrqsq46.ll b/bench/coreutils-rs/optimized/4jcegsvljtrqsq46.ll index 5246c508680..0b714c190dc 100644 --- a/bench/coreutils-rs/optimized/4jcegsvljtrqsq46.ll +++ b/bench/coreutils-rs/optimized/4jcegsvljtrqsq46.ll @@ -696,21 +696,15 @@ define { i64, i8 } @_ZN6uu_env15string_expander14StringExpander8take_one17ha9db1 %8 = getelementptr inbounds nuw i8, ptr %4, i64 8 %9 = load i64, ptr %8, align 8 %10 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %11 = load i8, ptr %10, align 8 - br i1 %7, label %19, label %12 + br i1 %7, label %18, label %11 12: ; preds = %1 - %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 17 - %.sroa.6.sroa.0.0.copyload = load i56, ptr %.sroa.6.0..sroa_idx, align 1 + %.sroa.512.0.copyload = load i64, ptr %10, align 8 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) %13 = inttoptr i64 %9 to ptr %14 = icmp ne i64 %9, 0 tail call void @llvm.assume(i1 %14) - %.sroa.623.16.insert.ext = zext i56 %.sroa.6.sroa.0.0.copyload to i64 - %.sroa.623.16.insert.shift = shl nuw i64 %.sroa.623.16.insert.ext, 8 - %.sroa.4.16.insert.ext = zext i8 %11 to i64 - %.sroa.4.16.insert.insert = or disjoint i64 %.sroa.623.16.insert.shift, %.sroa.4.16.insert.ext - %15 = getelementptr inbounds { ptr, [1 x i64] }, ptr %13, i64 %.sroa.4.16.insert.insert + %14 = getelementptr inbounds { ptr, [1 x i64] }, ptr %12, i64 %.sroa.512.0.copyload call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) store ptr %13, ptr %3, align 8 %.sroa.425.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 8 @@ -718,8 +712,8 @@ define { i64, i8 } @_ZN6uu_env15string_expander14StringExpander8take_one17ha9db1 %.sroa.5.0..sroa_idx26 = getelementptr inbounds nuw i8, ptr %3, i64 16 store i64 %6, ptr %.sroa.5.0..sroa_idx26, align 8 %.sroa.628.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 24 - store ptr %15, ptr %.sroa.628.0..sroa_idx, align 8 - %16 = icmp eq i64 %.sroa.4.16.insert.insert, 0 + store ptr %14, ptr %.sroa.628.0..sroa_idx, align 8 + %16 = icmp eq i64 %.sroa.512.0.copyload, 0 br i1 %16, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %12 @@ -728,6 +722,7 @@ define { i64, i8 } @_ZN6uu_env15string_expander14StringExpander8take_one17ha9db1 br label %27 19: ; preds = %1 + %19 = load i8, ptr %10, align 8, !range !126, !noundef !5 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) br label %31 @@ -738,8 +733,8 @@ define { i64, i8 } @_ZN6uu_env15string_expander14StringExpander8take_one17ha9db1 to label %common.resume unwind label %57 ._crit_edge: ; preds = %51, %12 - call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2), !noalias !126 - store ptr %3, ptr %2, align 8, !noalias !126 + call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2), !noalias !127 + store ptr %3, ptr %2, align 8, !noalias !127 %22 = invoke noundef i64 @_ZN4core4iter6traits10exact_size17ExactSizeIterator3len17h2cfa835aed68e748E.llvm.2234762414713439624(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %3) to label %"_ZN4core3ptr88drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$uu_env..string_parser..Chunk$GT$$GT$17h5d21fdba17a4baafE.exit" unwind label %23 @@ -761,31 +756,31 @@ common.resume: ; preds = %20, %23 "_ZN4core3ptr88drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$uu_env..string_parser..Chunk$GT$$GT$17h5d21fdba17a4baafE.exit": ; preds = %._crit_edge call void @"_ZN157_$LT$$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$..drop..DropGuard$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h1c759b82aef686edE.llvm.12269880611312064175"(ptr noalias noundef nonnull align 8 dereferenceable(8) %2) - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2), !noalias !126 + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2), !noalias !127 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) br label %31 27: ; preds = %.lr.ph, %51 %28 = phi ptr [ %13, %.lr.ph ], [ %55, %51 ] - tail call void @llvm.experimental.noalias.scope.decl(metadata !131) + tail call void @llvm.experimental.noalias.scope.decl(metadata !132) %29 = getelementptr inbounds nuw i8, ptr %28, i64 16 - store ptr %29, ptr %.sroa.425.0..sroa_idx, align 8, !alias.scope !131, !noalias !134 - %.sroa.530.8.copyload = load ptr, ptr %28, align 8, !noalias !131 + store ptr %29, ptr %.sroa.425.0..sroa_idx, align 8, !alias.scope !132, !noalias !135 + %.sroa.530.8.copyload = load ptr, ptr %28, align 8, !noalias !132 %.sroa.7.8..sroa_idx = getelementptr inbounds nuw i8, ptr %28, i64 8 - %.sroa.7.8.copyload = load i64, ptr %.sroa.7.8..sroa_idx, align 8, !noalias !131 + %.sroa.7.8.copyload = load i64, ptr %.sroa.7.8..sroa_idx, align 8, !noalias !132 %30 = icmp eq ptr %.sroa.530.8.copyload, null br i1 %30, label %43, label %34 31: ; preds = %"_ZN4core3ptr88drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$uu_env..string_parser..Chunk$GT$$GT$17h5d21fdba17a4baafE.exit", %19 - %.sroa.3.0 = phi i8 [ %11, %19 ], [ 2, %"_ZN4core3ptr88drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$uu_env..string_parser..Chunk$GT$$GT$17h5d21fdba17a4baafE.exit" ] + %.sroa.3.0 = phi i8 [ %19, %19 ], [ 2, %"_ZN4core3ptr88drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$uu_env..string_parser..Chunk$GT$$GT$17h5d21fdba17a4baafE.exit" ] %.sroa.0.0 = phi i64 [ %9, %19 ], [ undef, %"_ZN4core3ptr88drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$uu_env..string_parser..Chunk$GT$$GT$17h5d21fdba17a4baafE.exit" ] %32 = insertvalue { i64, i8 } poison, i64 %.sroa.0.0, 0 %33 = insertvalue { i64, i8 } %32, i8 %.sroa.3.0, 1 ret { i64, i8 } %33 34: ; preds = %27 - %35 = load i64, ptr %17, align 8, !alias.scope !136, !noundef !5 - %36 = load i64, ptr %0, align 8, !alias.scope !136, !noundef !5 + %35 = load i64, ptr %17, align 8, !alias.scope !137, !noundef !5 + %36 = load i64, ptr %0, align 8, !alias.scope !137, !noundef !5 %37 = sub i64 %36, %35 %38 = icmp ugt i64 %.sroa.7.8.copyload, %37 br i1 %38, label %39, label %"_ZN132_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$$RF$T$C$core..slice..iter..Iter$LT$T$GT$$GT$$GT$11spec_extend17h6a650d4252cb6caaE.exit" @@ -795,12 +790,12 @@ common.resume: ; preds = %20, %23 to label %.noexc unwind label %20 .noexc: ; preds = %39 - %.pre.i = load i64, ptr %17, align 8, !alias.scope !141 + %.pre.i = load i64, ptr %17, align 8, !alias.scope !142 br label %"_ZN132_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$$RF$T$C$core..slice..iter..Iter$LT$T$GT$$GT$$GT$11spec_extend17h6a650d4252cb6caaE.exit" "_ZN132_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$$RF$T$C$core..slice..iter..Iter$LT$T$GT$$GT$$GT$11spec_extend17h6a650d4252cb6caaE.exit": ; preds = %34, %.noexc %40 = phi i64 [ %35, %34 ], [ %.pre.i, %.noexc ] - %41 = load ptr, ptr %18, align 8, !alias.scope !141, !nonnull !5, !noundef !5 + %41 = load ptr, ptr %18, align 8, !alias.scope !142, !nonnull !5, !noundef !5 %42 = getelementptr inbounds i8, ptr %41, i64 %40 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %42, ptr nonnull align 1 %.sroa.530.8.copyload, i64 %.sroa.7.8.copyload, i1 false) br label %51 @@ -808,8 +803,8 @@ common.resume: ; preds = %20, %23 43: ; preds = %27 %.sroa.5.12.extract.shift = lshr i64 %.sroa.7.8.copyload, 32 %.sroa.5.12.extract.trunc = trunc i64 %.sroa.5.12.extract.shift to i8 - %44 = load i64, ptr %17, align 8, !alias.scope !142, !noundef !5 - %45 = load i64, ptr %0, align 8, !alias.scope !142, !noundef !5 + %44 = load i64, ptr %17, align 8, !alias.scope !143, !noundef !5 + %45 = load i64, ptr %0, align 8, !alias.scope !143, !noundef !5 %46 = icmp eq i64 %44, %45 br i1 %46, label %47, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17he3e42d29207d138bE.exit" @@ -818,12 +813,12 @@ common.resume: ; preds = %20, %23 to label %.noexc22 unwind label %20 .noexc22: ; preds = %47 - %.pre.i21 = load i64, ptr %17, align 8, !alias.scope !142 + %.pre.i21 = load i64, ptr %17, align 8, !alias.scope !143 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17he3e42d29207d138bE.exit" "_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17he3e42d29207d138bE.exit": ; preds = %43, %.noexc22 %48 = phi i64 [ %.pre.i21, %.noexc22 ], [ %44, %43 ] - %49 = load ptr, ptr %18, align 8, !alias.scope !142, !nonnull !5, !noundef !5 + %49 = load ptr, ptr %18, align 8, !alias.scope !143, !nonnull !5, !noundef !5 %50 = getelementptr inbounds i8, ptr %49, i64 %48 store i8 %.sroa.5.12.extract.trunc, ptr %50, align 1 br label %51 @@ -833,8 +828,8 @@ common.resume: ; preds = %20, %23 %52 = load i64, ptr %17, align 8, !noundef !5 %53 = add i64 %52, %.sink43 store i64 %53, ptr %17, align 8 - %54 = load ptr, ptr %.sroa.628.0..sroa_idx, align 8, !alias.scope !145, !noalias !134, !nonnull !5, !noundef !5 - %55 = load ptr, ptr %.sroa.425.0..sroa_idx, align 8, !alias.scope !145, !noalias !134, !nonnull !5, !noundef !5 + %54 = load ptr, ptr %.sroa.628.0..sroa_idx, align 8, !alias.scope !146, !noalias !135, !nonnull !5, !noundef !5 + %55 = load ptr, ptr %.sroa.425.0..sroa_idx, align 8, !alias.scope !146, !noalias !135, !nonnull !5, !noundef !5 %56 = icmp eq ptr %55, %54 br i1 %56, label %._crit_edge, label %27 @@ -850,7 +845,7 @@ define void @_ZN6uu_env15string_expander14StringExpander12put_one_char17hc94b037 %.sroa.0.i = alloca i32, align 4 %3 = alloca { { { { i64, ptr, {} }, i64 } } }, align 8 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %.sroa.0.i) - store i32 0, ptr %.sroa.0.i, align 4, !noalias !147 + store i32 0, ptr %.sroa.0.i, align 4, !noalias !148 %4 = icmp samesign ult i32 %1, 128 br i1 %4, label %9, label %5 @@ -864,71 +859,71 @@ define void @_ZN6uu_env15string_expander14StringExpander12put_one_char17hc94b037 9: ; preds = %2 %10 = trunc nuw i32 %1 to i8 - store i8 %10, ptr %.sroa.0.i, align 4, !alias.scope !151, !noalias !147 + store i8 %10, ptr %.sroa.0.i, align 4, !alias.scope !152, !noalias !148 br label %"_ZN48_$LT$char$u20$as$u20$alloc..string..ToString$GT$9to_string17h30cc80c750be000fE.llvm.13937350941176931499.exit" 11: ; preds = %5 %12 = lshr i32 %1, 6 %13 = trunc nuw i32 %12 to i8 %14 = or disjoint i8 %13, -64 - store i8 %14, ptr %.sroa.0.i, align 4, !alias.scope !151, !noalias !147 + store i8 %14, ptr %.sroa.0.i, align 4, !alias.scope !152, !noalias !148 %15 = trunc i32 %1 to i8 %16 = and i8 %15, 63 %17 = or disjoint i8 %16, -128 %.sroa.0.i.1.i.1.i.1..sroa_idx12 = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 1 - store i8 %17, ptr %.sroa.0.i.1.i.1.i.1..sroa_idx12, align 1, !alias.scope !151, !noalias !147 + store i8 %17, ptr %.sroa.0.i.1.i.1.i.1..sroa_idx12, align 1, !alias.scope !152, !noalias !148 br label %"_ZN48_$LT$char$u20$as$u20$alloc..string..ToString$GT$9to_string17h30cc80c750be000fE.llvm.13937350941176931499.exit" 18: ; preds = %7 %19 = lshr i32 %1, 12 %20 = trunc nuw i32 %19 to i8 %21 = or disjoint i8 %20, -32 - store i8 %21, ptr %.sroa.0.i, align 4, !alias.scope !151, !noalias !147 + store i8 %21, ptr %.sroa.0.i, align 4, !alias.scope !152, !noalias !148 %22 = lshr i32 %1, 6 %23 = trunc i32 %22 to i8 %24 = and i8 %23, 63 %25 = or disjoint i8 %24, -128 %.sroa.0.i.1.i.1.i.1..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 1 - store i8 %25, ptr %.sroa.0.i.1.i.1.i.1..sroa_idx, align 1, !alias.scope !151, !noalias !147 + store i8 %25, ptr %.sroa.0.i.1.i.1.i.1..sroa_idx, align 1, !alias.scope !152, !noalias !148 %26 = trunc i32 %1 to i8 %27 = and i8 %26, 63 %28 = or disjoint i8 %27, -128 %.sroa.0.i.2.i.2.i.2..sroa_idx13 = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 2 - store i8 %28, ptr %.sroa.0.i.2.i.2.i.2..sroa_idx13, align 2, !alias.scope !151, !noalias !147 + store i8 %28, ptr %.sroa.0.i.2.i.2.i.2..sroa_idx13, align 2, !alias.scope !152, !noalias !148 br label %"_ZN48_$LT$char$u20$as$u20$alloc..string..ToString$GT$9to_string17h30cc80c750be000fE.llvm.13937350941176931499.exit" 29: ; preds = %7 %30 = lshr i32 %1, 18 %31 = trunc nuw nsw i32 %30 to i8 %32 = or disjoint i8 %31, -16 - store i8 %32, ptr %.sroa.0.i, align 4, !alias.scope !151, !noalias !147 + store i8 %32, ptr %.sroa.0.i, align 4, !alias.scope !152, !noalias !148 %33 = lshr i32 %1, 12 %34 = trunc i32 %33 to i8 %35 = and i8 %34, 63 %36 = or disjoint i8 %35, -128 %.sroa.0.i.1.i.1.i.1..sroa_idx11 = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 1 - store i8 %36, ptr %.sroa.0.i.1.i.1.i.1..sroa_idx11, align 1, !alias.scope !151, !noalias !147 + store i8 %36, ptr %.sroa.0.i.1.i.1.i.1..sroa_idx11, align 1, !alias.scope !152, !noalias !148 %37 = lshr i32 %1, 6 %38 = trunc i32 %37 to i8 %39 = and i8 %38, 63 %40 = or disjoint i8 %39, -128 %.sroa.0.i.2.i.2.i.2..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 2 - store i8 %40, ptr %.sroa.0.i.2.i.2.i.2..sroa_idx, align 2, !alias.scope !151, !noalias !147 + store i8 %40, ptr %.sroa.0.i.2.i.2.i.2..sroa_idx, align 2, !alias.scope !152, !noalias !148 %41 = trunc i32 %1 to i8 %42 = and i8 %41, 63 %43 = or disjoint i8 %42, -128 %.sroa.0.i.3.i.3.i.3..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 3 - store i8 %43, ptr %.sroa.0.i.3.i.3.i.3..sroa_idx, align 1, !alias.scope !151, !noalias !147 + store i8 %43, ptr %.sroa.0.i.3.i.3.i.3..sroa_idx, align 1, !alias.scope !152, !noalias !148 br label %"_ZN48_$LT$char$u20$as$u20$alloc..string..ToString$GT$9to_string17h30cc80c750be000fE.llvm.13937350941176931499.exit" "_ZN48_$LT$char$u20$as$u20$alloc..string..ToString$GT$9to_string17h30cc80c750be000fE.llvm.13937350941176931499.exit": ; preds = %9, %11, %18, %29 %44 = phi i64 [ 4, %29 ], [ 3, %18 ], [ 2, %11 ], [ 1, %9 ] - %45 = tail call { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17h94b64fd980b0ab3eE"(i64 noundef %44, i1 noundef zeroext false), !noalias !147 + %45 = tail call { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17h94b64fd980b0ab3eE"(i64 noundef %44, i1 noundef zeroext false), !noalias !148 %46 = extractvalue { i64, ptr } %45, 0 %47 = extractvalue { i64, ptr } %45, 1 %48 = icmp ne ptr %47, null tail call void @llvm.assume(i1 %48) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %47, ptr noundef nonnull align 4 dereferenceable(1) %.sroa.0.i, i64 %44, i1 false), !noalias !147 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %47, ptr noundef nonnull align 4 dereferenceable(1) %.sroa.0.i, i64 %44, i1 false), !noalias !148 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %.sroa.0.i) store i64 %46, ptr %3, align 8 %.sroa.0.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 8 @@ -942,26 +937,26 @@ define void @_ZN6uu_env15string_expander14StringExpander12put_one_char17hc94b037 ; Function Attrs: nonlazybind uwtable define void @_ZN6uu_env15string_expander14StringExpander17put_native_string17h6d02a56aaa7dc00aE(ptr noalias noundef align 8 dereferenceable(64) %0, ptr noalias noundef nonnull readonly align 1 captures(none) %1, i64 noundef %2) unnamed_addr #9 { %4 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %5 = load i64, ptr %4, align 8, !alias.scope !154, !noundef !5 - %6 = load i64, ptr %0, align 8, !alias.scope !154, !noundef !5 + %5 = load i64, ptr %4, align 8, !alias.scope !155, !noundef !5 + %6 = load i64, ptr %0, align 8, !alias.scope !155, !noundef !5 %7 = sub i64 %6, %5 %8 = icmp ugt i64 %2, %7 br i1 %8, label %9, label %"_ZN132_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$$RF$T$C$core..slice..iter..Iter$LT$T$GT$$GT$$GT$11spec_extend17h6a650d4252cb6caaE.exit" 9: ; preds = %3 tail call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$7reserve21do_reserve_and_handle17h7361855f4f29edfbE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %5, i64 noundef %2) - %.pre.i = load i64, ptr %4, align 8, !alias.scope !159 + %.pre.i = load i64, ptr %4, align 8, !alias.scope !160 br label %"_ZN132_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$$RF$T$C$core..slice..iter..Iter$LT$T$GT$$GT$$GT$11spec_extend17h6a650d4252cb6caaE.exit" "_ZN132_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$$RF$T$C$core..slice..iter..Iter$LT$T$GT$$GT$$GT$11spec_extend17h6a650d4252cb6caaE.exit": ; preds = %3, %9 %10 = phi i64 [ %5, %3 ], [ %.pre.i, %9 ] %11 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %12 = load ptr, ptr %11, align 8, !alias.scope !159, !nonnull !5, !noundef !5 + %12 = load ptr, ptr %11, align 8, !alias.scope !160, !nonnull !5, !noundef !5 %13 = getelementptr inbounds i8, ptr %12, i64 %10 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %13, ptr nonnull align 1 %1, i64 %2, i1 false) - %14 = load i64, ptr %4, align 8, !alias.scope !159, !noundef !5 + %14 = load i64, ptr %4, align 8, !alias.scope !160, !noundef !5 %15 = add i64 %14, %2 - store i64 %15, ptr %4, align 8, !alias.scope !159 + store i64 %15, ptr %4, align 8, !alias.scope !160 ret void } @@ -1221,37 +1216,38 @@ attributes #23 = { cold noreturn nounwind } !123 = !{!124} !124 = distinct !{!124, !125, !"_ZN6uu_env13string_parser12StringParser17get_peek_position17heb5766bc7833dc00E: argument 0"} !125 = distinct !{!125, !"_ZN6uu_env13string_parser12StringParser17get_peek_position17heb5766bc7833dc00E"} -!126 = !{!127, !129} -!127 = distinct !{!127, !128, !"_ZN86_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17he859c1f3faa1ac9eE.llvm.12269880611312064175: argument 0"} -!128 = distinct !{!128, !"_ZN86_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17he859c1f3faa1ac9eE.llvm.12269880611312064175"} -!129 = distinct !{!129, !130, !"_ZN4core3ptr88drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$uu_env..string_parser..Chunk$GT$$GT$17h5d21fdba17a4baafE: argument 0"} -!130 = distinct !{!130, !"_ZN4core3ptr88drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$uu_env..string_parser..Chunk$GT$$GT$17h5d21fdba17a4baafE"} -!131 = !{!132} -!132 = distinct !{!132, !133, !"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h04aa070de7cca47bE: argument 1"} -!133 = distinct !{!133, !"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h04aa070de7cca47bE"} -!134 = !{!135} -!135 = distinct !{!135, !133, !"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h04aa070de7cca47bE: argument 0"} -!136 = !{!137, !139} -!137 = distinct !{!137, !138, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h8faa83b7e509385bE.llvm.13541151684951271691: argument 0"} -!138 = distinct !{!138, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h8faa83b7e509385bE.llvm.13541151684951271691"} -!139 = distinct !{!139, !140, !"_ZN132_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$$RF$T$C$core..slice..iter..Iter$LT$T$GT$$GT$$GT$11spec_extend17h6a650d4252cb6caaE: argument 0"} -!140 = distinct !{!140, !"_ZN132_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$$RF$T$C$core..slice..iter..Iter$LT$T$GT$$GT$$GT$11spec_extend17h6a650d4252cb6caaE"} -!141 = !{!139} -!142 = !{!143} -!143 = distinct !{!143, !144, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17he3e42d29207d138bE: argument 0"} -!144 = distinct !{!144, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17he3e42d29207d138bE"} -!145 = !{!146} -!146 = distinct !{!146, !133, !"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h04aa070de7cca47bE: argument 1:h.rot"} -!147 = !{!148, !150} -!148 = distinct !{!148, !149, !"_ZN48_$LT$char$u20$as$u20$alloc..string..ToString$GT$9to_string17h30cc80c750be000fE.llvm.13937350941176931499: argument 0"} -!149 = distinct !{!149, !"_ZN48_$LT$char$u20$as$u20$alloc..string..ToString$GT$9to_string17h30cc80c750be000fE.llvm.13937350941176931499"} -!150 = distinct !{!150, !149, !"_ZN48_$LT$char$u20$as$u20$alloc..string..ToString$GT$9to_string17h30cc80c750be000fE.llvm.13937350941176931499: argument 1"} -!151 = !{!152} -!152 = distinct !{!152, !153, !"_ZN4core4char7methods15encode_utf8_raw17ha5a8bd16826d1590E.llvm.13937350941176931499: argument 0"} -!153 = distinct !{!153, !"_ZN4core4char7methods15encode_utf8_raw17ha5a8bd16826d1590E.llvm.13937350941176931499"} -!154 = !{!155, !157} -!155 = distinct !{!155, !156, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h8faa83b7e509385bE.llvm.13541151684951271691: argument 0"} -!156 = distinct !{!156, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h8faa83b7e509385bE.llvm.13541151684951271691"} -!157 = distinct !{!157, !158, !"_ZN132_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$$RF$T$C$core..slice..iter..Iter$LT$T$GT$$GT$$GT$11spec_extend17h6a650d4252cb6caaE: argument 0"} -!158 = distinct !{!158, !"_ZN132_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$$RF$T$C$core..slice..iter..Iter$LT$T$GT$$GT$$GT$11spec_extend17h6a650d4252cb6caaE"} -!159 = !{!157} +!126 = !{i8 0, i8 2} +!127 = !{!128, !130} +!128 = distinct !{!128, !129, !"_ZN86_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17he859c1f3faa1ac9eE.llvm.12269880611312064175: argument 0"} +!129 = distinct !{!129, !"_ZN86_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17he859c1f3faa1ac9eE.llvm.12269880611312064175"} +!130 = distinct !{!130, !131, !"_ZN4core3ptr88drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$uu_env..string_parser..Chunk$GT$$GT$17h5d21fdba17a4baafE: argument 0"} +!131 = distinct !{!131, !"_ZN4core3ptr88drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$uu_env..string_parser..Chunk$GT$$GT$17h5d21fdba17a4baafE"} +!132 = !{!133} +!133 = distinct !{!133, !134, !"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h04aa070de7cca47bE: argument 1"} +!134 = distinct !{!134, !"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h04aa070de7cca47bE"} +!135 = !{!136} +!136 = distinct !{!136, !134, !"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h04aa070de7cca47bE: argument 0"} +!137 = !{!138, !140} +!138 = distinct !{!138, !139, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h8faa83b7e509385bE.llvm.13541151684951271691: argument 0"} +!139 = distinct !{!139, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h8faa83b7e509385bE.llvm.13541151684951271691"} +!140 = distinct !{!140, !141, !"_ZN132_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$$RF$T$C$core..slice..iter..Iter$LT$T$GT$$GT$$GT$11spec_extend17h6a650d4252cb6caaE: argument 0"} +!141 = distinct !{!141, !"_ZN132_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$$RF$T$C$core..slice..iter..Iter$LT$T$GT$$GT$$GT$11spec_extend17h6a650d4252cb6caaE"} +!142 = !{!140} +!143 = !{!144} +!144 = distinct !{!144, !145, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17he3e42d29207d138bE: argument 0"} +!145 = distinct !{!145, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17he3e42d29207d138bE"} +!146 = !{!147} +!147 = distinct !{!147, !134, !"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h04aa070de7cca47bE: argument 1:h.rot"} +!148 = !{!149, !151} +!149 = distinct !{!149, !150, !"_ZN48_$LT$char$u20$as$u20$alloc..string..ToString$GT$9to_string17h30cc80c750be000fE.llvm.13937350941176931499: argument 0"} +!150 = distinct !{!150, !"_ZN48_$LT$char$u20$as$u20$alloc..string..ToString$GT$9to_string17h30cc80c750be000fE.llvm.13937350941176931499"} +!151 = distinct !{!151, !150, !"_ZN48_$LT$char$u20$as$u20$alloc..string..ToString$GT$9to_string17h30cc80c750be000fE.llvm.13937350941176931499: argument 1"} +!152 = !{!153} +!153 = distinct !{!153, !154, !"_ZN4core4char7methods15encode_utf8_raw17ha5a8bd16826d1590E.llvm.13937350941176931499: argument 0"} +!154 = distinct !{!154, !"_ZN4core4char7methods15encode_utf8_raw17ha5a8bd16826d1590E.llvm.13937350941176931499"} +!155 = !{!156, !158} +!156 = distinct !{!156, !157, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h8faa83b7e509385bE.llvm.13541151684951271691: argument 0"} +!157 = distinct !{!157, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$7reserve17h8faa83b7e509385bE.llvm.13541151684951271691"} +!158 = distinct !{!158, !159, !"_ZN132_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$$RF$T$C$core..slice..iter..Iter$LT$T$GT$$GT$$GT$11spec_extend17h6a650d4252cb6caaE: argument 0"} +!159 = distinct !{!159, !"_ZN132_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$$RF$T$C$core..slice..iter..Iter$LT$T$GT$$GT$$GT$11spec_extend17h6a650d4252cb6caaE"} +!160 = !{!158} diff --git a/bench/coreutils-rs/optimized/4mp8yj8jciru6ppi.ll b/bench/coreutils-rs/optimized/4mp8yj8jciru6ppi.ll index 92bbeda741c..7556f71fddb 100644 --- a/bench/coreutils-rs/optimized/4mp8yj8jciru6ppi.ll +++ b/bench/coreutils-rs/optimized/4mp8yj8jciru6ppi.ll @@ -304,17 +304,11 @@ define hidden i32 @"_ZN99_$LT$core..array..iter..IntoIter$LT$T$C$_$GT$$u20$as$u2 %8 = icmp ult i64 %4, 22 tail call void @llvm.assume(i1 %8) %9 = getelementptr inbounds nuw { [4 x i8] }, ptr %7, i64 %4 - %.sroa.03.0.copyload = load i8, ptr %9, align 4 - %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %9, i64 1 - %.sroa.4.0.copyload = load i24, ptr %.sroa.4.0..sroa_idx, align 1 - %10 = zext i24 %.sroa.4.0.copyload to i32 - %11 = shl nuw i32 %10, 8 - %12 = zext i8 %.sroa.03.0.copyload to i32 - %13 = or disjoint i32 %11, %12 + %.sroa.03.0.copyload = load i32, ptr %9, align 4 br label %.thread .thread: ; preds = %1, %5 - %.sroa.0.0.insert.insert = phi i32 [ %13, %5 ], [ 2, %1 ] + %.sroa.0.0.insert.insert = phi i32 [ %.sroa.03.0.copyload, %5 ], [ 2, %1 ] ret i32 %.sroa.0.0.insert.insert } diff --git a/bench/cpython/optimized/Hacl_Hash_Blake2b.ll b/bench/cpython/optimized/Hacl_Hash_Blake2b.ll index b5dc8d5a8db..c7e8bd5037a 100644 --- a/bench/cpython/optimized/Hacl_Hash_Blake2b.ll +++ b/bench/cpython/optimized/Hacl_Hash_Blake2b.ll @@ -1829,124 +1829,99 @@ define hidden noalias noundef ptr @python_hashlib_Hacl_Hash_Blake2b_malloc() loc ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable define hidden void @python_hashlib_Hacl_Hash_Blake2b_reset_with_key_and_params(ptr noundef captures(none) initializes((32, 40)) %0, ptr noundef readonly captures(none) %1, ptr noundef readonly captures(none) %2) local_unnamed_addr #9 { - tail call fastcc void @reset_raw(ptr noundef %0, ptr %1, ptr %2) - ret void -} - -; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable -define internal fastcc void @reset_raw(ptr noundef captures(none) initializes((32, 40)) %0, ptr readonly captures(none) %1, ptr readonly captures(none) %2) unnamed_addr #9 { - %.sroa.8121 = alloca [13 x i8], align 1 - %.sroa.0.0.copyload = load i8, ptr %0, align 8, !tbaa !9 - %.sroa.4127.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 1 - %.sroa.4127.0.copyload = load i8, ptr %.sroa.4127.0..sroa_idx, align 1, !tbaa !9 - %.sroa.5128.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 2 - %.sroa.5128.0.copyload = load i8, ptr %.sroa.5128.0..sroa_idx, align 2, !tbaa !10 - %.sroa.6129.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 3 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(13) %.sroa.8121, ptr noundef nonnull align 1 dereferenceable(13) %.sroa.6129.0..sroa_idx, i64 13, i1 false) - %.sroa.7130.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 - %.sroa.7130.0.copyload = load ptr, ptr %.sroa.7130.0..sroa_idx, align 8, !tbaa !12 - %.sroa.8131.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 - %.sroa.8131.0.copyload = load ptr, ptr %.sroa.8131.0..sroa_idx, align 8, !tbaa !15 + %.sroa.8121.i = alloca [13 x i8], align 1 + %.sroa.0.0.copyload.i = load i8, ptr %0, align 8, !tbaa !9 + %.sroa.4.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 1 + %.sroa.4.0.copyload.i = load i8, ptr %.sroa.4.0..sroa_idx.i, align 1, !tbaa !9 + %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 2 + %.sroa.5.0.copyload.i = load i8, ptr %.sroa.5.0..sroa_idx.i, align 2, !tbaa !10 + call void @llvm.lifetime.start.p0(i64 13, ptr nonnull %.sroa.8121.i) + %.sroa.6129.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 3 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(13) %.sroa.8121.i, ptr noundef nonnull align 1 dereferenceable(13) %.sroa.6129.0..sroa_idx.i, i64 13, i1 false) + %.sroa.7130.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 16 + %.sroa.7130.0.copyload.i = load ptr, ptr %.sroa.7130.0..sroa_idx.i, align 8, !tbaa !12 + %.sroa.8131.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 24 + %.sroa.8131.0.copyload.i = load ptr, ptr %.sroa.8131.0..sroa_idx.i, align 8, !tbaa !15 %4 = getelementptr inbounds nuw i8, ptr %1, i64 1 %5 = load i8, ptr %4, align 1, !tbaa !19 %6 = icmp eq i8 %5, 0 - br i1 %6, label %14, label %7 + br i1 %6, label %reset_raw.exit, label %7 7: ; preds = %3 %8 = zext i8 %5 to i64 - %9 = getelementptr i8, ptr %.sroa.8131.0.copyload, i64 %8 + %9 = getelementptr i8, ptr %.sroa.8131.0.copyload.i, i64 %8 %10 = sub nsw i64 128, %8 %11 = and i64 %10, 4294967295 tail call void @llvm.memset.p0.i64(ptr align 1 %9, i8 0, i64 %11, i1 false) - tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %.sroa.8131.0.copyload, ptr align 1 %2, i64 %8, i1 false) - %.sroa.484.0.copyload.pre = load i8, ptr %4, align 1, !tbaa !9 - %12 = zext i8 %.sroa.484.0.copyload.pre to i64 - %13 = shl nuw nsw i64 %12, 8 - br label %14 - -14: ; preds = %7, %3 - %.sroa.484.0.copyload = phi i64 [ %13, %7 ], [ 0, %3 ] - %.sroa.083.0.copyload = load i8, ptr %1, align 8, !tbaa !9 - %.sroa.585.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 2 - %.sroa.585.0.copyload = load i8, ptr %.sroa.585.0..sroa_idx, align 2, !tbaa !9 - %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 3 - %.sroa.6.0.copyload = load i8, ptr %.sroa.6.0..sroa_idx, align 1, !tbaa !9 - %.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 4 - %.sroa.7.0.copyload = load i32, ptr %.sroa.7.0..sroa_idx, align 4, !tbaa !17 - %.sroa.8.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 8 - %.sroa.8.0.copyload = load i64, ptr %.sroa.8.0..sroa_idx, align 8, !tbaa !3 - %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 16 - %.sroa.9.0.copyload = load i16, ptr %.sroa.9.0..sroa_idx, align 8 - %15 = zext i16 %.sroa.9.0.copyload to i64 - %.sroa.1186.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 24 - %.sroa.1186.0.copyload = load ptr, ptr %.sroa.1186.0..sroa_idx, align 8, !tbaa !15 - %.sroa.13.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 32 - %.sroa.13.0.copyload = load ptr, ptr %.sroa.13.0..sroa_idx, align 8, !tbaa !15 - %16 = getelementptr i8, ptr %.sroa.7130.0.copyload, i64 32 - %17 = getelementptr i8, ptr %.sroa.7130.0.copyload, i64 64 - %18 = getelementptr i8, ptr %.sroa.7130.0.copyload, i64 96 - store i64 7640891576956012808, ptr %17, align 8, !tbaa !3 - %19 = getelementptr i8, ptr %.sroa.7130.0.copyload, i64 72 - store i64 -4942790177534073029, ptr %19, align 8, !tbaa !3 - %20 = getelementptr i8, ptr %.sroa.7130.0.copyload, i64 80 - store i64 4354685564936845355, ptr %20, align 8, !tbaa !3 - %21 = getelementptr i8, ptr %.sroa.7130.0.copyload, i64 88 - store i64 -6534734903238641935, ptr %21, align 8, !tbaa !3 - store i64 5840696475078001361, ptr %18, align 8, !tbaa !3 - %22 = getelementptr i8, ptr %.sroa.7130.0.copyload, i64 104 - store i64 -7276294671716946913, ptr %22, align 8, !tbaa !3 - %23 = getelementptr i8, ptr %.sroa.7130.0.copyload, i64 112 - store i64 2270897969802886507, ptr %23, align 8, !tbaa !3 - %24 = getelementptr i8, ptr %.sroa.7130.0.copyload, i64 120 - store i64 6620516959819538809, ptr %24, align 8, !tbaa !3 - %.sroa.1186.0.copyload.val = load i64, ptr %.sroa.1186.0.copyload, align 1 - %25 = getelementptr i8, ptr %.sroa.1186.0.copyload, i64 8 - %.val137 = load i64, ptr %25, align 1 - %.sroa.13.0.copyload.val = load i64, ptr %.sroa.13.0.copyload, align 1 - %26 = getelementptr i8, ptr %.sroa.13.0.copyload, i64 8 - %.val = load i64, ptr %26, align 1 - %27 = zext i8 %.sroa.083.0.copyload to i64 - %28 = zext i8 %.sroa.585.0.copyload to i64 - %29 = shl nuw nsw i64 %28, 16 - %30 = zext i8 %.sroa.6.0.copyload to i64 - %31 = shl nuw nsw i64 %30, 24 - %32 = zext i32 %.sroa.7.0.copyload to i64 - %33 = shl nuw i64 %32, 32 - %34 = or disjoint i64 %.sroa.484.0.copyload, %27 - %35 = or disjoint i64 %34, %29 - %36 = or disjoint i64 %35, %31 - %37 = or disjoint i64 %36, %33 - %38 = xor i64 %37, 7640891576956012808 - %39 = xor i64 %.sroa.8.0.copyload, -4942790177534073029 - %40 = xor i64 %15, 4354685564936845355 - %41 = xor i64 %.sroa.1186.0.copyload.val, 5840696475078001361 - %42 = xor i64 %.val137, -7276294671716946913 - %43 = xor i64 %.sroa.13.0.copyload.val, 2270897969802886507 - %44 = xor i64 %.val, 6620516959819538809 - store i64 %38, ptr %.sroa.7130.0.copyload, align 8, !tbaa !3 - %45 = getelementptr i8, ptr %.sroa.7130.0.copyload, i64 8 - store i64 %39, ptr %45, align 8, !tbaa !3 - %46 = getelementptr i8, ptr %.sroa.7130.0.copyload, i64 16 - store i64 %40, ptr %46, align 8, !tbaa !3 - %47 = getelementptr i8, ptr %.sroa.7130.0.copyload, i64 24 - store i64 -6534734903238641935, ptr %47, align 8, !tbaa !3 - store i64 %41, ptr %16, align 8, !tbaa !3 - %48 = getelementptr i8, ptr %.sroa.7130.0.copyload, i64 40 - store i64 %42, ptr %48, align 8, !tbaa !3 - %49 = getelementptr i8, ptr %.sroa.7130.0.copyload, i64 48 - store i64 %43, ptr %49, align 8, !tbaa !3 - %50 = getelementptr i8, ptr %.sroa.7130.0.copyload, i64 56 - store i64 %44, ptr %50, align 8, !tbaa !3 - %.not = icmp eq i8 %.sroa.0.0.copyload, 0 - %. = select i1 %.not, i64 0, i64 128 - %.sroa.9132.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 - store i8 %.sroa.0.0.copyload, ptr %0, align 8, !tbaa !9 - store i8 %.sroa.4127.0.copyload, ptr %.sroa.4127.0..sroa_idx, align 1, !tbaa !9 - store i8 %.sroa.5128.0.copyload, ptr %.sroa.5128.0..sroa_idx, align 2, !tbaa !10 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(13) %.sroa.6129.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(13) %.sroa.8121, i64 13, i1 false), !tbaa.struct !21 - store ptr %.sroa.7130.0.copyload, ptr %.sroa.7130.0..sroa_idx, align 8, !tbaa !12 - store ptr %.sroa.8131.0.copyload, ptr %.sroa.8131.0..sroa_idx, align 8, !tbaa !15 - store i64 %., ptr %.sroa.9132.0..sroa_idx, align 8, !tbaa !3 + tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %.sroa.8131.0.copyload.i, ptr readonly align 1 %2, i64 %8, i1 false) + br label %reset_raw.exit + +reset_raw.exit:; preds = %3, %7 + %.sroa.083.0.copyload.i = load i64, ptr %1, align 8 + %.sroa.8.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 8 + %.sroa.8.0.copyload.i = load i64, ptr %.sroa.8.0..sroa_idx.i, align 8, !tbaa !3 + %.sroa.9.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 16 + %.sroa.083.0.copyload = load i16, ptr %.sroa.9.0..sroa_idx.i, align 8 + %12 = zext i16 %.sroa.083.0.copyload to i64 + %.sroa.1186.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 24 + %.sroa.1186.0.copyload.i = load ptr, ptr %.sroa.1186.0..sroa_idx.i, align 8, !tbaa !15 + %.sroa.13.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 32 + %.sroa.13.0.copyload.i = load ptr, ptr %.sroa.13.0..sroa_idx.i, align 8, !tbaa !15 + %13 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 32 + %.sroa.8.0..sroa_idx = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 64 + %15 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 96 + store i64 7640891576956012808, ptr %.sroa.8.0..sroa_idx, align 8, !tbaa !3 + %16 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 72 + store i64 -4942790177534073029, ptr %16, align 8, !tbaa !3 + %.sroa.1186.0..sroa_idx = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 80 + store i64 4354685564936845355, ptr %.sroa.1186.0..sroa_idx, align 8, !tbaa !3 + %.sroa.13.0..sroa_idx = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 88 + store i64 -6534734903238641935, ptr %.sroa.13.0..sroa_idx, align 8, !tbaa !3 + store i64 5840696475078001361, ptr %15, align 8, !tbaa !3 + %17 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 104 + store i64 -7276294671716946913, ptr %19, align 8, !tbaa !3 + %20 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 112 + store i64 2270897969802886507, ptr %20, align 8, !tbaa !3 + %21 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 120 + store i64 6620516959819538809, ptr %21, align 8, !tbaa !3 + %.sroa.1186.0.copyload.val.i = load i64, ptr %.sroa.1186.0.copyload.i, align 1 + %21 = getelementptr i8, ptr %.sroa.1186.0.copyload.i, i64 8 + %.val137.i = load i64, ptr %21, align 1 + %.sroa.13.0.copyload.val.i = load i64, ptr %.sroa.13.0.copyload.i, align 1 + %22 = getelementptr i8, ptr %.sroa.13.0.copyload.i, i64 8 + %.val.i = load i64, ptr %22, align 1 + %24 = xor i64 %.sroa.083.0.copyload.i, 7640891576956012808 + %25 = xor i64 %.sroa.8.0.copyload.i, -4942790177534073029 + %26 = xor i64 %12, 4354685564936845355 + %27 = xor i64 %.sroa.1186.0.copyload.val.i, 5840696475078001361 + %28 = xor i64 %.val137.i, -7276294671716946913 + %29 = xor i64 %.sroa.13.0.copyload.val.i, 2270897969802886507 + %30 = xor i64 %.val.i, 6620516959819538809 + store i64 %24, ptr %.sroa.7130.0.copyload.i, align 8, !tbaa !3 + %26 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 8 + store i64 %25, ptr %26, align 8, !tbaa !3 + %32 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 16 + store i64 %26, ptr %32, align 8, !tbaa !3 + %33 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 24 + store i64 -6534734903238641935, ptr %33, align 8, !tbaa !3 + store i64 %27, ptr %13, align 8, !tbaa !3 + %34 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 40 + store i64 %28, ptr %34, align 8, !tbaa !3 + %35 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 48 + store i64 %29, ptr %35, align 8, !tbaa !3 + %36 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 56 + store i64 %30, ptr %36, align 8, !tbaa !3 + %.not.i = icmp eq i8 %.sroa.0.0.copyload.i, 0 + %..i = select i1 %.not.i, i64 0, i64 128 + %.sroa.9132.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 32 + store i8 %.sroa.0.0.copyload.i, ptr %0, align 8, !tbaa !9 + store i8 %.sroa.4.0.copyload.i, ptr %.sroa.4.0..sroa_idx.i, align 1, !tbaa !9 + store i8 %.sroa.5.0.copyload.i, ptr %.sroa.5.0..sroa_idx.i, align 2, !tbaa !10 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(13) %.sroa.6129.0..sroa_idx.i, ptr noundef nonnull align 1 dereferenceable(13) %.sroa.8121.i, i64 13, i1 false), !tbaa.struct !21 + store ptr %.sroa.7130.0.copyload.i, ptr %.sroa.7130.0..sroa_idx.i, align 8, !tbaa !12 + store ptr %.sroa.8131.0.copyload.i, ptr %.sroa.8131.0..sroa_idx.i, align 8, !tbaa !15 + store i64 %..i, ptr %.sroa.9132.0..sroa_idx.i, align 8, !tbaa !3 + call void @llvm.lifetime.end.p0(i64 13, ptr nonnull %.sroa.8121.i) ret void } @@ -1981,6 +1956,8 @@ define hidden void @python_hashlib_Hacl_Hash_Blake2b_reset_with_key(ptr noundef reset_raw.exit: ; preds = %2, %4 %..i = phi i64 [ 128, %4 ], [ 0, %2 ] %.sroa.484.0.copyload.i = phi i64 [ %9, %4 ], [ 0, %2 ] + %.sroa.0.0.insert.ext = zext i8 %.sroa.4.0.copyload.i to i64 + %.sroa.0.1.insert.insert = or disjoint i64 %.sroa.0.1.insert.ext.pre-phi, %.sroa.0.0.insert.ext %10 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 32 %11 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 64 %12 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 96 @@ -1998,16 +1975,14 @@ reset_raw.exit: ; preds = %2, %4 store i64 2270897969802886507, ptr %17, align 8, !tbaa !3 %18 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 120 store i64 6620516959819538809, ptr %18, align 8, !tbaa !3 - %19 = zext i8 %.sroa.4.0.copyload.i to i64 - %20 = or disjoint i64 %.sroa.484.0.copyload.i, %19 - %21 = xor i64 %20, 7640891576939301128 - store i64 %21, ptr %.sroa.7130.0.copyload.i, align 8, !tbaa !3 - %22 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 8 - store i64 -4942790177534073029, ptr %22, align 8, !tbaa !3 - %23 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 16 - store i64 4354685564936845355, ptr %23, align 8, !tbaa !3 - %24 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 24 - store i64 -6534734903238641935, ptr %24, align 8, !tbaa !3 + %19 = xor i64 %.sroa.0.1.insert.insert, 7640891576939301128 + store i64 %19, ptr %.sroa.7130.0.copyload.i, align 8, !tbaa !3 + %20 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 8 + store i64 -4942790177534073029, ptr %20, align 8, !tbaa !3 + %22 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 16 + store i64 4354685564936845355, ptr %22, align 8, !tbaa !3 + %23 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 24 + store i64 -6534734903238641935, ptr %23, align 8, !tbaa !3 store i64 5840696475078001361, ptr %10, align 8, !tbaa !3 %25 = getelementptr i8, ptr %.sroa.7130.0.copyload.i, i64 40 store i64 -7276294671716946913, ptr %25, align 8, !tbaa !3 @@ -2043,6 +2018,7 @@ python_hashlib_Hacl_Hash_Blake2b_reset_with_key.exit: %.sroa.8131.0.copyload.i.i = load ptr, ptr %.sroa.8131.0..sroa_idx.i.i, align 8, !tbaa !15 %1 = icmp eq i8 %.sroa.0.0.copyload.i.i, 0 tail call void @llvm.assume(i1 %1) + %.sroa.0.0.insert.ext.i = zext i8 %.sroa.4.0.copyload.i.i to i64 %2 = getelementptr i8, ptr %.sroa.7130.0.copyload.i.i, i64 32 %3 = getelementptr i8, ptr %.sroa.7130.0.copyload.i.i, i64 64 %4 = getelementptr i8, ptr %.sroa.7130.0.copyload.i.i, i64 96 @@ -2060,15 +2036,14 @@ python_hashlib_Hacl_Hash_Blake2b_reset_with_key.exit: store i64 2270897969802886507, ptr %9, align 8, !tbaa !3 %10 = getelementptr i8, ptr %.sroa.7130.0.copyload.i.i, i64 120 store i64 6620516959819538809, ptr %10, align 8, !tbaa !3 - %11 = zext i8 %.sroa.4.0.copyload.i.i to i64 - %12 = xor i64 %11, 7640891576939301128 - store i64 %12, ptr %.sroa.7130.0.copyload.i.i, align 8, !tbaa !3 - %13 = getelementptr i8, ptr %.sroa.7130.0.copyload.i.i, i64 8 - store i64 -4942790177534073029, ptr %13, align 8, !tbaa !3 - %14 = getelementptr i8, ptr %.sroa.7130.0.copyload.i.i, i64 16 - store i64 4354685564936845355, ptr %14, align 8, !tbaa !3 - %15 = getelementptr i8, ptr %.sroa.7130.0.copyload.i.i, i64 24 - store i64 -6534734903238641935, ptr %15, align 8, !tbaa !3 + %11 = xor i64 %.sroa.0.0.insert.ext.i, 7640891576939301128 + store i64 %11, ptr %.sroa.7130.0.copyload.i.i, align 8, !tbaa !3 + %12 = getelementptr i8, ptr %.sroa.7130.0.copyload.i.i, i64 8 + store i64 -4942790177534073029, ptr %12, align 8, !tbaa !3 + %13 = getelementptr i8, ptr %.sroa.7130.0.copyload.i.i, i64 16 + store i64 4354685564936845355, ptr %13, align 8, !tbaa !3 + %14 = getelementptr i8, ptr %.sroa.7130.0.copyload.i.i, i64 24 + store i64 -6534734903238641935, ptr %.sroa.8.0..sroa_idx, align 8, !tbaa !3 store i64 5840696475078001361, ptr %2, align 8, !tbaa !3 %16 = getelementptr i8, ptr %.sroa.7130.0.copyload.i.i, i64 40 store i64 -7276294671716946913, ptr %16, align 8, !tbaa !3 diff --git a/bench/cpython/optimized/Hacl_Hash_Blake2b_Simd256.ll b/bench/cpython/optimized/Hacl_Hash_Blake2b_Simd256.ll index e01b9a61f07..02c52f6d71e 100644 --- a/bench/cpython/optimized/Hacl_Hash_Blake2b_Simd256.ll +++ b/bench/cpython/optimized/Hacl_Hash_Blake2b_Simd256.ll @@ -1149,112 +1149,87 @@ define hidden noalias noundef ptr @python_hashlib_Hacl_Hash_Blake2b_Simd256_mall ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable define hidden void @python_hashlib_Hacl_Hash_Blake2b_Simd256_reset_with_key_and_params(ptr noundef captures(none) initializes((32, 40)) %0, ptr noundef readonly captures(none) %1, ptr noundef readonly captures(none) %2) local_unnamed_addr #14 { - tail call fastcc void @reset_raw(ptr noundef %0, ptr %1, ptr %2) - ret void -} - -; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable -define internal fastcc void @reset_raw(ptr noundef captures(none) initializes((32, 40)) %0, ptr readonly captures(none) %1, ptr readonly captures(none) %2) unnamed_addr #15 { - %.sroa.8109 = alloca [13 x i8], align 1 - %.sroa.0.0.copyload = load i8, ptr %0, align 8, !tbaa !3 - %.sroa.4115.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 1 - %.sroa.4115.0.copyload = load i8, ptr %.sroa.4115.0..sroa_idx, align 1, !tbaa !3 - %.sroa.5116.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 2 - %.sroa.5116.0.copyload = load i8, ptr %.sroa.5116.0..sroa_idx, align 2, !tbaa !10 - %.sroa.6117.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 3 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(13) %.sroa.8109, ptr noundef nonnull align 1 dereferenceable(13) %.sroa.6117.0..sroa_idx, i64 13, i1 false) - %.sroa.7118.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 - %.sroa.7118.0.copyload = load ptr, ptr %.sroa.7118.0..sroa_idx, align 8, !tbaa !12 - %.sroa.8119.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 - %.sroa.8119.0.copyload = load ptr, ptr %.sroa.8119.0..sroa_idx, align 8, !tbaa !14 + %.sroa.8109.i = alloca [13 x i8], align 1 + %.sroa.0.0.copyload.i = load i8, ptr %0, align 8, !tbaa !3 + %.sroa.4.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 1 + %.sroa.4.0.copyload.i = load i8, ptr %.sroa.4.0..sroa_idx.i, align 1, !tbaa !3 + %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 2 + %.sroa.5.0.copyload.i = load i8, ptr %.sroa.5.0..sroa_idx.i, align 2, !tbaa !10 + call void @llvm.lifetime.start.p0(i64 13, ptr nonnull %.sroa.8109.i) + %.sroa.6117.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 3 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(13) %.sroa.8109.i, ptr noundef nonnull align 1 dereferenceable(13) %.sroa.6117.0..sroa_idx.i, i64 13, i1 false) + %.sroa.7118.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 16 + %.sroa.7118.0.copyload.i = load ptr, ptr %.sroa.7118.0..sroa_idx.i, align 8, !tbaa !12 + %.sroa.8119.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 24 + %.sroa.8119.0.copyload.i = load ptr, ptr %.sroa.8119.0..sroa_idx.i, align 8, !tbaa !14 %4 = getelementptr inbounds nuw i8, ptr %1, i64 1 %5 = load i8, ptr %4, align 1, !tbaa !18 %6 = icmp eq i8 %5, 0 - br i1 %6, label %14, label %7 + br i1 %6, label %reset_raw.exit, label %7 7: ; preds = %3 %8 = zext i8 %5 to i64 - %9 = getelementptr i8, ptr %.sroa.8119.0.copyload, i64 %8 + %9 = getelementptr i8, ptr %.sroa.8119.0.copyload.i, i64 %8 %10 = sub nsw i64 128, %8 %11 = and i64 %10, 4294967295 tail call void @llvm.memset.p0.i64(ptr align 1 %9, i8 0, i64 %11, i1 false) - tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %.sroa.8119.0.copyload, ptr align 1 %2, i64 %8, i1 false) - %.sroa.472.0.copyload.pre = load i8, ptr %4, align 1, !tbaa !3 - %12 = zext i8 %.sroa.472.0.copyload.pre to i64 - %13 = shl nuw nsw i64 %12, 8 - br label %14 - -14: ; preds = %7, %3 - %.sroa.472.0.copyload = phi i64 [ %13, %7 ], [ 0, %3 ] - %.sroa.071.0.copyload = load i8, ptr %1, align 8, !tbaa !3 - %.sroa.573.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 2 - %.sroa.573.0.copyload = load i8, ptr %.sroa.573.0..sroa_idx, align 2, !tbaa !3 - %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 3 - %.sroa.6.0.copyload = load i8, ptr %.sroa.6.0..sroa_idx, align 1, !tbaa !3 - %.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 4 - %.sroa.7.0.copyload = load i32, ptr %.sroa.7.0..sroa_idx, align 4, !tbaa !16 - %.sroa.8.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 8 - %.sroa.8.0.copyload = load i64, ptr %.sroa.8.0..sroa_idx, align 8, !tbaa !8 - %.sroa.9.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 16 - %.sroa.9.0.copyload = load i16, ptr %.sroa.9.0..sroa_idx, align 8 - %15 = zext i16 %.sroa.9.0.copyload to i64 - %.sroa.1174.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 24 - %.sroa.1174.0.copyload = load ptr, ptr %.sroa.1174.0..sroa_idx, align 8, !tbaa !14 - %.sroa.13.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 32 - %.sroa.13.0.copyload = load ptr, ptr %.sroa.13.0..sroa_idx, align 8, !tbaa !14 - %16 = getelementptr i8, ptr %.sroa.7118.0.copyload, i64 32 - %17 = getelementptr i8, ptr %.sroa.7118.0.copyload, i64 64 - %18 = getelementptr i8, ptr %.sroa.7118.0.copyload, i64 96 - store <4 x i64> , ptr %17, align 32, !tbaa !3 - store <4 x i64> , ptr %18, align 32, !tbaa !3 - %.sroa.1174.0.copyload.val = load i64, ptr %.sroa.1174.0.copyload, align 1 - %19 = getelementptr i8, ptr %.sroa.1174.0.copyload, i64 8 - %.val125 = load i64, ptr %19, align 1 - %.sroa.13.0.copyload.val = load i64, ptr %.sroa.13.0.copyload, align 1 - %20 = getelementptr i8, ptr %.sroa.13.0.copyload, i64 8 - %.val = load i64, ptr %20, align 1 - %21 = zext i8 %.sroa.071.0.copyload to i64 - %22 = zext i8 %.sroa.573.0.copyload to i64 - %23 = shl nuw nsw i64 %22, 16 - %24 = zext i8 %.sroa.6.0.copyload to i64 - %25 = shl nuw nsw i64 %24, 24 - %26 = zext i32 %.sroa.7.0.copyload to i64 - %27 = shl nuw i64 %26, 32 - %28 = or disjoint i64 %.sroa.472.0.copyload, %21 - %29 = or disjoint i64 %28, %23 - %30 = or disjoint i64 %29, %25 - %31 = or disjoint i64 %30, %27 - %32 = xor i64 %31, 7640891576956012808 - %33 = xor i64 %.sroa.8.0.copyload, -4942790177534073029 - %34 = xor i64 %15, 4354685564936845355 - %35 = xor i64 %.sroa.1174.0.copyload.val, 5840696475078001361 - %36 = xor i64 %.val125, -7276294671716946913 - %37 = xor i64 %.sroa.13.0.copyload.val, 2270897969802886507 - %38 = xor i64 %.val, 6620516959819538809 - %39 = insertelement <4 x i64> , i64 %32, i64 0 - %40 = insertelement <4 x i64> %39, i64 %33, i64 1 - %41 = insertelement <4 x i64> %40, i64 %34, i64 2 - store <4 x i64> %41, ptr %.sroa.7118.0.copyload, align 32, !tbaa !3 - %42 = insertelement <4 x i64> poison, i64 %35, i64 0 - %43 = insertelement <4 x i64> %42, i64 %36, i64 1 - %44 = insertelement <4 x i64> %43, i64 %37, i64 2 - %45 = insertelement <4 x i64> %44, i64 %38, i64 3 - store <4 x i64> %45, ptr %16, align 32, !tbaa !3 - %.not = icmp eq i8 %.sroa.0.0.copyload, 0 - %. = select i1 %.not, i64 0, i64 128 - %.sroa.9120.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 - store i8 %.sroa.0.0.copyload, ptr %0, align 8, !tbaa !3 - store i8 %.sroa.4115.0.copyload, ptr %.sroa.4115.0..sroa_idx, align 1, !tbaa !3 - store i8 %.sroa.5116.0.copyload, ptr %.sroa.5116.0..sroa_idx, align 2, !tbaa !10 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(13) %.sroa.6117.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(13) %.sroa.8109, i64 13, i1 false), !tbaa.struct !20 - store ptr %.sroa.7118.0.copyload, ptr %.sroa.7118.0..sroa_idx, align 8, !tbaa !12 - store ptr %.sroa.8119.0.copyload, ptr %.sroa.8119.0..sroa_idx, align 8, !tbaa !14 - store i64 %., ptr %.sroa.9120.0..sroa_idx, align 8, !tbaa !8 + tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %.sroa.8119.0.copyload.i, ptr readonly align 1 %2, i64 %8, i1 false) + br label %reset_raw.exit + +reset_raw.exit:; preds = %3, %7 + %.sroa.071.0.copyload.i = load i64, ptr %1, align 8 + %.sroa.8.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 8 + %.sroa.8.0.copyload.i = load i64, ptr %.sroa.8.0..sroa_idx.i, align 8, !tbaa !8 + %.sroa.9.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 16 + %.sroa.071.0.copyload = load i16, ptr %.sroa.9.0..sroa_idx.i, align 8 + %12 = zext i16 %.sroa.071.0.copyload to i64 + %.sroa.1174.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 24 + %.sroa.1174.0.copyload.i = load ptr, ptr %.sroa.1174.0..sroa_idx.i, align 8, !tbaa !14 + %.sroa.13.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 32 + %.sroa.13.0.copyload.i = load ptr, ptr %.sroa.13.0..sroa_idx.i, align 8, !tbaa !14 + %13 = getelementptr i8, ptr %.sroa.7118.0.copyload.i, i64 32 + %.sroa.8.0..sroa_idx = getelementptr i8, ptr %.sroa.7118.0.copyload.i, i64 64 + %15 = getelementptr i8, ptr %.sroa.7118.0.copyload.i, i64 96 + store <4 x i64> , ptr %14, align 32, !tbaa !3 + store <4 x i64> , ptr %15, align 32, !tbaa !3 + %.sroa.1174.0.copyload.val.i = load i64, ptr %.sroa.1174.0.copyload.i, align 1 + %.sroa.1174.0..sroa_idx = getelementptr i8, ptr %.sroa.1174.0.copyload.i, i64 8 + %.sroa.1174.0.copyload = load i64, ptr %.sroa.1174.0..sroa_idx, align 1 + %.sroa.13.0.copyload.val.i = load i64, ptr %.sroa.13.0.copyload.i, align 1 + %17 = getelementptr i8, ptr %.sroa.13.0.copyload.i, i64 8 + %.val.i = load i64, ptr %17, align 1 + %18 = xor i64 %.sroa.071.0.copyload.i, 7640891576956012808 + %19 = xor i64 %.sroa.8.0.copyload.i, -4942790177534073029 + %20 = xor i64 %12, 4354685564936845355 + %21 = xor i64 %.sroa.1174.0.copyload.val.i, 5840696475078001361 + %22 = xor i64 %.sroa.1174.0.copyload, -7276294671716946913 + %23 = xor i64 %.sroa.13.0.copyload.val.i, 2270897969802886507 + %24 = xor i64 %.val.i, 6620516959819538809 + %25 = insertelement <4 x i64> , i64 %18, i64 0 + %26 = insertelement <4 x i64> %25, i64 %19, i64 1 + %27 = insertelement <4 x i64> %26, i64 %20, i64 2 + store <4 x i64> %27, ptr %.sroa.7118.0.copyload.i, align 32, !tbaa !3 + %28 = insertelement <4 x i64> poison, i64 %21, i64 0 + %29 = insertelement <4 x i64> %28, i64 %22, i64 1 + %30 = insertelement <4 x i64> %29, i64 %23, i64 2 + %31 = insertelement <4 x i64> %30, i64 %24, i64 3 + store <4 x i64> %31, ptr %13, align 32, !tbaa !3 + %.not.i = icmp eq i8 %.sroa.0.0.copyload.i, 0 + %..i = select i1 %.not.i, i64 0, i64 128 + %.sroa.9120.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 32 + store i8 %.sroa.0.0.copyload.i, ptr %0, align 8, !tbaa !3 + store i8 %.sroa.4.0.copyload.i, ptr %.sroa.4.0..sroa_idx.i, align 1, !tbaa !3 + store i8 %.sroa.5.0.copyload.i, ptr %.sroa.5.0..sroa_idx.i, align 2, !tbaa !10 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(13) %.sroa.6117.0..sroa_idx.i, ptr noundef nonnull align 1 dereferenceable(13) %.sroa.8109.i, i64 13, i1 false), !tbaa.struct !20 + store ptr %.sroa.7118.0.copyload.i, ptr %.sroa.7118.0..sroa_idx.i, align 8, !tbaa !12 + store ptr %.sroa.8119.0.copyload.i, ptr %.sroa.8119.0..sroa_idx.i, align 8, !tbaa !14 + store i64 %..i, ptr %.sroa.9120.0..sroa_idx.i, align 8, !tbaa !8 + call void @llvm.lifetime.end.p0(i64 13, ptr nonnull %.sroa.8109.i) ret void } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable -define hidden void @python_hashlib_Hacl_Hash_Blake2b_Simd256_reset_with_key(ptr noundef captures(none) initializes((32, 40)) %0, ptr noundef readonly captures(none) %1) local_unnamed_addr #15 { +define hidden void @python_hashlib_Hacl_Hash_Blake2b_Simd256_reset_with_key(ptr noundef captures(none) initializes((32, 40)) %0, ptr noundef readonly captures(none) %1) local_unnamed_addr #14 { %.sroa.8109.i = alloca [13 x i8], align 1 %.sroa.0.0.copyload.i = load i8, ptr %0, align 8, !tbaa !3 %.sroa.4.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 1 @@ -1284,16 +1259,16 @@ define hidden void @python_hashlib_Hacl_Hash_Blake2b_Simd256_reset_with_key(ptr reset_raw.exit: ; preds = %2, %4 %..i = phi i64 [ 128, %4 ], [ 0, %2 ] %.sroa.472.0.copyload.i = phi i64 [ %9, %4 ], [ 0, %2 ] + %.sroa.0.0.insert.ext = zext i8 %.sroa.4.0.copyload.i to i64 + %.sroa.0.1.insert.insert = or disjoint i64 %.sroa.0.1.insert.ext.pre-phi, %.sroa.0.0.insert.ext %10 = getelementptr i8, ptr %.sroa.7118.0.copyload.i, i64 32 %11 = getelementptr i8, ptr %.sroa.7118.0.copyload.i, i64 64 %12 = getelementptr i8, ptr %.sroa.7118.0.copyload.i, i64 96 store <4 x i64> , ptr %11, align 32, !tbaa !3 store <4 x i64> , ptr %12, align 32, !tbaa !3 - %13 = zext i8 %.sroa.4.0.copyload.i to i64 - %14 = or disjoint i64 %.sroa.472.0.copyload.i, %13 - %15 = xor i64 %14, 7640891576939301128 - %16 = insertelement <4 x i64> , i64 %15, i64 0 - store <4 x i64> %16, ptr %.sroa.7118.0.copyload.i, align 32, !tbaa !3 + %13 = xor i64 %.sroa.0.1.insert.insert, 7640891576939301128 + %.sroa.8.0..sroa_idx = insertelement <4 x i64> , i64 %13, i64 0 + store <4 x i64> %14, ptr %.sroa.7118.0.copyload.i, align 32, !tbaa !3 store <4 x i64> , ptr %10, align 32, !tbaa !3 %.sroa.9120.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 32 store i8 %.sroa.0.0.copyload.i, ptr %0, align 8, !tbaa !3 @@ -1308,7 +1283,7 @@ reset_raw.exit: ; preds = %2, %4 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: readwrite) uwtable -define hidden void @python_hashlib_Hacl_Hash_Blake2b_Simd256_reset(ptr noundef captures(none) initializes((32, 40)) %0) local_unnamed_addr #16 { +define hidden void @python_hashlib_Hacl_Hash_Blake2b_Simd256_reset(ptr noundef captures(none) initializes((32, 40)) %0) local_unnamed_addr #15 { python_hashlib_Hacl_Hash_Blake2b_Simd256_reset_with_key.exit: %.sroa.8109.i.i = alloca [13 x i8], align 1 %.sroa.0.0.copyload.i.i = load i8, ptr %0, align 8, !tbaa !3 @@ -1325,15 +1300,15 @@ python_hashlib_Hacl_Hash_Blake2b_Simd256_reset_with_key.exit: %.sroa.8119.0.copyload.i.i = load ptr, ptr %.sroa.8119.0..sroa_idx.i.i, align 8, !tbaa !14 %1 = icmp eq i8 %.sroa.0.0.copyload.i.i, 0 tail call void @llvm.assume(i1 %1) + %.sroa.0.0.insert.ext.i = zext i8 %.sroa.4.0.copyload.i.i to i64 %2 = getelementptr i8, ptr %.sroa.7118.0.copyload.i.i, i64 32 %3 = getelementptr i8, ptr %.sroa.7118.0.copyload.i.i, i64 64 %4 = getelementptr i8, ptr %.sroa.7118.0.copyload.i.i, i64 96 store <4 x i64> , ptr %3, align 32, !tbaa !3 store <4 x i64> , ptr %4, align 32, !tbaa !3 - %5 = zext i8 %.sroa.4.0.copyload.i.i to i64 - %6 = xor i64 %5, 7640891576939301128 - %7 = insertelement <4 x i64> , i64 %6, i64 0 - store <4 x i64> %7, ptr %.sroa.7118.0.copyload.i.i, align 32, !tbaa !3 + %5 = xor i64 %.sroa.0.0.insert.ext.i, 7640891576939301128 + %6 = insertelement <4 x i64> , i64 %5, i64 0 + store <4 x i64> %6, ptr %.sroa.7118.0.copyload.i.i, align 32, !tbaa !3 store <4 x i64> , ptr %2, align 32, !tbaa !3 %.sroa.9120.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %0, i64 32 store i8 0, ptr %0, align 8, !tbaa !3 @@ -1348,7 +1323,7 @@ python_hashlib_Hacl_Hash_Blake2b_Simd256_reset_with_key.exit: } ; Function Attrs: nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define hidden zeroext range(i8 0, 4) i8 @python_hashlib_Hacl_Hash_Blake2b_Simd256_update(ptr noundef captures(none) %0, ptr noundef readonly captures(none) %1, i32 noundef %2) local_unnamed_addr #17 { +define hidden zeroext range(i8 0, 4) i8 @python_hashlib_Hacl_Hash_Blake2b_Simd256_update(ptr noundef captures(none) %0, ptr noundef readonly captures(none) %1, i32 noundef %2) local_unnamed_addr #16 { %.sroa.0130 = alloca %struct.Hacl_Hash_Blake2b_Simd256_block_state_t_s, align 8 %.sroa.053 = alloca %struct.Hacl_Hash_Blake2b_Simd256_block_state_t_s, align 8 %.sroa.3153.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 @@ -1590,7 +1565,7 @@ define hidden zeroext i8 @python_hashlib_Hacl_Hash_Blake2b_Simd256_digest(ptr no } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable -define hidden range(i24 0, 131072) i24 @python_hashlib_Hacl_Hash_Blake2b_Simd256_info(ptr noundef readonly captures(none) %0) local_unnamed_addr #18 { +define hidden range(i24 0, 131072) i24 @python_hashlib_Hacl_Hash_Blake2b_Simd256_info(ptr noundef readonly captures(none) %0) local_unnamed_addr #17 { %.sroa.0.0.copyload = load i8, ptr %0, align 8, !tbaa !3 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 1 %.sroa.4.0.copyload = load i8, ptr %.sroa.4.0..sroa_idx, align 1, !tbaa !3 @@ -1608,7 +1583,7 @@ define hidden range(i24 0, 131072) i24 @python_hashlib_Hacl_Hash_Blake2b_Simd256 } ; Function Attrs: mustprogress nounwind willreturn uwtable -define hidden void @python_hashlib_Hacl_Hash_Blake2b_Simd256_free(ptr noundef captures(none) %0) local_unnamed_addr #19 { +define hidden void @python_hashlib_Hacl_Hash_Blake2b_Simd256_free(ptr noundef captures(none) %0) local_unnamed_addr #18 { %.sroa.44.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 %.sroa.44.0.copyload = load ptr, ptr %.sroa.44.0..sroa_idx, align 8, !tbaa !12 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -1711,7 +1686,7 @@ define hidden void @python_hashlib_Hacl_Hash_Blake2b_Simd256_hash_with_key(ptr n } ; Function Attrs: inlinehint nounwind uwtable -define internal fastcc void @update(ptr noundef nonnull captures(none) initializes((0, 128)) %0, ptr noundef nonnull captures(none) %1, i32 noundef %2, ptr noundef readonly captures(none) %3, i32 noundef %4, ptr noundef readonly captures(none) %5) unnamed_addr #23 { +define internal fastcc void @update(ptr noundef nonnull captures(none) initializes((0, 128)) %0, ptr noundef nonnull captures(none) %1, i32 noundef %2, ptr noundef readonly captures(none) %3, i32 noundef %4, ptr noundef readonly captures(none) %5) unnamed_addr #22 { %7 = alloca [128 x i8], align 16 %8 = alloca [128 x i8], align 16 %9 = alloca [128 x i8], align 16 @@ -1926,22 +1901,21 @@ attributes #10 = { mustprogress nofree nounwind willreturn memory(write, argmem: attributes #11 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized,aligned") allocsize(1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } attributes #12 = { mustprogress nofree nounwind willreturn uwtable "min-legal-vector-width"="256" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } attributes #13 = { mustprogress nofree nounwind willreturn uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #14 = { mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #15 = { mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="256" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #16 = { mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: readwrite) uwtable "min-legal-vector-width"="256" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #17 = { nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #18 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #19 = { mustprogress nounwind willreturn uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #20 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #14 = { mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="256" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #15 = { mustprogress nofree norecurse nosync nounwind willreturn memory(readwrite, inaccessiblemem: readwrite) uwtable "min-legal-vector-width"="256" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #16 = { mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #17 = { nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: read) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #18 = { mustprogress nounwind willreturn uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #19 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #20 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } attributes #21 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #22 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #23 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } -attributes #24 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #25 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } -attributes #26 = { nounwind } -attributes #27 = { nounwind allocsize(1) } -attributes #28 = { nounwind allocsize(0,1) } -attributes #29 = { nounwind allocsize(0) } +attributes #22 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+avx,+avx2,+cmov,+crc32,+cx8,+fxsr,+mmx,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave" "tune-cpu"="generic" } +attributes #23 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #24 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } +attributes #25 = { nounwind } +attributes #26 = { nounwind allocsize(1) } +attributes #27 = { nounwind allocsize(0,1) } +attributes #28 = { nounwind allocsize(0) } !llvm.module.flags = !{!0, !1, !2} diff --git a/bench/delta-rs/optimized/11f8x98axanecwnw.ll b/bench/delta-rs/optimized/11f8x98axanecwnw.ll index 6a36878a697..45f15e5eb97 100644 --- a/bench/delta-rs/optimized/11f8x98axanecwnw.ll +++ b/bench/delta-rs/optimized/11f8x98axanecwnw.ll @@ -83040,9 +83040,7 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h7a0280ef360f84c5E.llvm.82263 150: ; preds = %"_ZN72_$LT$core..pin..Pin$LT$P$GT$$u20$as$u20$core..future..future..Future$GT$4poll17h1c66dfeb98559e72E.exit" %.sroa.3147.0..sroa_idx = getelementptr inbounds nuw i8, ptr %28, i64 8 - %.sroa.3147.0.copyload = load i8, ptr %.sroa.3147.0..sroa_idx, align 8 - %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %28, i64 9 - %.sroa.5.sroa.0.0.copyload = load i56, ptr %.sroa.5.0..sroa_idx, align 1 + %.sroa.3147.0.copyload = load i64, ptr %.sroa.3147.0..sroa_idx, align 8 %.sroa.5.sroa.2.0..sroa.5.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %28, i64 16 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(72) %.sroa.5.sroa.2, ptr noundef nonnull align 8 dereferenceable(72) %.sroa.5.sroa.2.0..sroa.5.0..sroa_idx.sroa_idx, i64 72, i1 false) call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %28) @@ -83090,7 +83088,7 @@ common.ret: ; preds = %416, %401, %375, %2 br i1 %161, label %162, label %200 162: ; preds = %"_ZN4core3ptr227drop_in_place$LT$core..pin..Pin$LT$alloc..boxed..Box$LT$dyn$u20$core..future..future..Future$u2b$Output$u20$$u3d$$u20$core..result..Result$LT$bool$C$deltalake_core..errors..DeltaTableError$GT$$u2b$core..marker..Send$GT$$GT$$GT$17h54e842bb370725e6E.exit" - %163 = trunc nuw i8 %.sroa.3147.0.copyload to i1 + %163 = trunc i64 %.sroa.3147.0.copyload to i1 br i1 %163, label %164, label %167 164: ; preds = %162 @@ -83240,11 +83238,7 @@ common.ret: ; preds = %416, %401, %375, %2 200: ; preds = %"_ZN4core3ptr227drop_in_place$LT$core..pin..Pin$LT$alloc..boxed..Box$LT$dyn$u20$core..future..future..Future$u2b$Output$u20$$u3d$$u20$core..result..Result$LT$bool$C$deltalake_core..errors..DeltaTableError$GT$$u2b$core..marker..Send$GT$$GT$$GT$17h54e842bb370725e6E.exit" call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %.sroa.30, ptr noundef nonnull align 1 dereferenceable(72) %.sroa.5.sroa.2, i64 72, i1 false) - %.sroa.23.0.insert.ext = zext i8 %.sroa.3147.0.copyload to i64 - %.sroa.23.1.insert.ext = zext i56 %.sroa.5.sroa.0.0.copyload to i64 - %.sroa.23.1.insert.shift = shl nuw i64 %.sroa.23.1.insert.ext, 8 - %.sroa.23.1.insert.insert = or disjoint i64 %.sroa.23.1.insert.shift, %.sroa.23.0.insert.ext - %201 = inttoptr i64 %.sroa.23.1.insert.insert to ptr + %201 = inttoptr i64 %.sroa.3147.0.copyload to ptr br label %182 202: ; preds = %463, %354, %235, %192, %474, %471, %469, %467, %465, %363, %146 diff --git a/bench/flac/optimized/foreign_metadata.ll b/bench/flac/optimized/foreign_metadata.ll index fb71c79fcad..71690c57e7a 100644 --- a/bench/flac/optimized/foreign_metadata.ll +++ b/bench/flac/optimized/foreign_metadata.ll @@ -1176,47 +1176,27 @@ safe_realloc_nofree_muladd2_.exit.thread.i.i: ; preds = %safe_realloc_nofree store i64 %37, ptr %27, align 8, !tbaa !15 store ptr %32, ptr %26, align 8, !tbaa !11 %38 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %39 = load i32, ptr %38, align 16 - %40 = zext i32 %39 to i64 - %41 = getelementptr inbounds nuw i8, ptr %4, i64 20 - %42 = load i8, ptr %41, align 4, !tbaa !19 - %43 = zext i8 %42 to i64 - %44 = shl nuw nsw i64 %43, 32 - %45 = or disjoint i64 %44, %40 - %46 = getelementptr inbounds nuw i8, ptr %4, i64 21 - %47 = load i8, ptr %46, align 1, !tbaa !19 - %48 = zext i8 %47 to i64 - %49 = shl nuw nsw i64 %48, 40 - %50 = or disjoint i64 %45, %49 - %51 = getelementptr inbounds nuw i8, ptr %4, i64 22 - %52 = load i8, ptr %51, align 2, !tbaa !19 - %53 = zext i8 %52 to i64 - %54 = shl nuw nsw i64 %53, 48 - %55 = or disjoint i64 %50, %54 - %56 = getelementptr inbounds nuw i8, ptr %4, i64 23 - %57 = load i8, ptr %56, align 1, !tbaa !19 - %58 = zext i8 %57 to i64 - %59 = shl nuw i64 %58, 56 - %60 = or disjoint i64 %55, %59 - %61 = getelementptr inbounds nuw i8, ptr %0, i64 32 - %62 = getelementptr inbounds nuw i8, ptr %0, i64 24 - br label %63 - -63: ; preds = %116, %33 - %64 = call i32 @feof(ptr noundef nonnull %5) #14 - %.not69.i = icmp eq i32 %64, 0 - br i1 %.not69.i, label %65, label %.thread120.i - -65: ; preds = %63 - %66 = call i64 @ftello64(ptr noundef nonnull %5) - %67 = icmp slt i64 %66, 0 - br i1 %67, label %68, label %fread.inline.exit103.i - -68: ; preds = %65 + %39 = load i64, ptr %38, align 16 + %40 = getelementptr inbounds nuw i8, ptr %4, i64 20 + %41 = getelementptr inbounds nuw i8, ptr %0, i64 32 + %42 = getelementptr inbounds nuw i8, ptr %0, i64 24 + br label %43 + +43:; preds = %96, %33 + %44 = call i32 @feof(ptr noundef nonnull %5) #14 + %.not69.i = icmp eq i32 %44, 0 + br i1 %.not69.i, label %45, label %.thread120.i + +45:; preds = %43 + %46 = call i64 @ftello64(ptr noundef nonnull %5) + %47 = icmp slt i64 %46, 0 + br i1 %47, label %48, label %fread.inline.exit103.i + +48:; preds = %45 %.not90.i = icmp eq ptr %2, null br i1 %.not90.i, label %read_from_wave64_.exit, label %append_block_.exit.thread.sink.split.i -fread.inline.exit103.i: ; preds = %65 +fread.inline.exit103.i: ; preds = %45 %69 = call i64 @fread(ptr noundef nonnull %4, i64 noundef 1, i64 noundef 24, ptr noundef nonnull %5) %70 = icmp ult i64 %69, 24 br i1 %70, label %71, label %76 @@ -1237,7 +1217,7 @@ fread.inline.exit103.i: ; preds = %65 76: ; preds = %fread.inline.exit103.i %77 = load i32, ptr %38, align 16 %78 = zext i32 %77 to i64 - %79 = load i32, ptr %41, align 4 + %79 = load i32, ptr %40, align 4 %80 = zext i32 %79 to i64 %81 = shl nuw i64 %80, 32 %82 = or disjoint i64 %81, %78 @@ -1259,7 +1239,7 @@ fread.inline.exit103.i: ; preds = %65 br i1 %.not72.i, label %89, label %97 89: ; preds = %88 - %90 = load i64, ptr %62, align 8, !tbaa !20 + %90 = load i64, ptr %42, align 8, !tbaa !20 %.not73.i = icmp eq i64 %90, 0 br i1 %.not73.i, label %92, label %91 @@ -1268,7 +1248,7 @@ fread.inline.exit103.i: ; preds = %65 br i1 %.not76.i, label %read_from_wave64_.exit, label %append_block_.exit.thread.sink.split.i 92: ; preds = %89 - %93 = load i64, ptr %61, align 8, !tbaa !21 + %93 = load i64, ptr %41, align 8, !tbaa !21 %.not74.i = icmp eq i64 %93, 0 br i1 %.not74.i, label %95, label %94 @@ -1278,7 +1258,7 @@ fread.inline.exit103.i: ; preds = %65 95: ; preds = %92 %96 = load i64, ptr %27, align 8, !tbaa !15 - store i64 %96, ptr %62, align 8, !tbaa !20 + store i64 %96, ptr %42, align 8, !tbaa !20 br label %106 97: ; preds = %88 @@ -1287,7 +1267,7 @@ fread.inline.exit103.i: ; preds = %65 br i1 %.not78.i, label %98, label %106 98: ; preds = %97 - %99 = load i64, ptr %61, align 8, !tbaa !21 + %99 = load i64, ptr %41, align 8, !tbaa !21 %.not79.i = icmp eq i64 %99, 0 br i1 %.not79.i, label %101, label %100 @@ -1296,7 +1276,7 @@ fread.inline.exit103.i: ; preds = %65 br i1 %.not82.i, label %read_from_wave64_.exit, label %append_block_.exit.thread.sink.split.i 101: ; preds = %98 - %102 = load i64, ptr %62, align 8, !tbaa !20 + %102 = load i64, ptr %42, align 8, !tbaa !20 %.not80.i = icmp eq i64 %102, 0 br i1 %.not80.i, label %103, label %104 @@ -1306,7 +1286,7 @@ fread.inline.exit103.i: ; preds = %65 104: ; preds = %101 %105 = load i64, ptr %27, align 8, !tbaa !15 - store i64 %105, ptr %61, align 8, !tbaa !21 + store i64 %105, ptr %41, align 8, !tbaa !21 br label %106 106: ; preds = %104, %97, %95 @@ -1341,7 +1321,7 @@ safe_realloc_nofree_muladd2_.exit.thread.i112.i: ; preds = %safe_realloc_nofree 116: ; preds = %safe_realloc_nofree_muladd2_.exit.i110.i %117 = load i64, ptr %27, align 8, !tbaa !15 %118 = getelementptr inbounds nuw %struct.foreign_block_t, ptr %115, i64 %117 - store i64 %66, ptr %118, align 8, !tbaa !16 + store i64 %46, ptr %118, align 8, !tbaa !16 %119 = getelementptr inbounds nuw %struct.foreign_block_t, ptr %115, i64 %117, i32 1 store i32 %108, ptr %119, align 8, !tbaa !18 %120 = add i64 %117, 1 @@ -1350,15 +1330,15 @@ safe_realloc_nofree_muladd2_.exit.thread.i112.i: ; preds = %safe_realloc_nofree %121 = add i64 %.0.i, -24 %122 = call i32 @fseeko64(ptr noundef nonnull %5, i64 noundef %121, i32 noundef 1) %123 = icmp slt i32 %122, 0 - br i1 %123, label %124, label %63 + br i1 %123, label %124, label %43 124: ; preds = %116 %.not86.i = icmp eq ptr %2, null br i1 %.not86.i, label %read_from_wave64_.exit, label %append_block_.exit.thread.sink.split.i -.thread120.i: ; preds = %63, %73 +.thread120.i: ; preds = %43, %73 %125 = call i64 @ftello64(ptr noundef nonnull %5) - %.not91.i = icmp eq i64 %60, %125 + %.not91.i = icmp eq i64 %39, %125 br i1 %.not91.i, label %127, label %126 126: ; preds = %.thread120.i @@ -1366,7 +1346,7 @@ safe_realloc_nofree_muladd2_.exit.thread.i112.i: ; preds = %safe_realloc_nofree br i1 %.not96.i, label %read_from_wave64_.exit, label %append_block_.exit.thread.sink.split.i 127: ; preds = %.thread120.i - %128 = load i64, ptr %62, align 8, !tbaa !20 + %128 = load i64, ptr %42, align 8, !tbaa !20 %.not92.i = icmp eq i64 %128, 0 br i1 %.not92.i, label %129, label %130 @@ -1375,7 +1355,7 @@ safe_realloc_nofree_muladd2_.exit.thread.i112.i: ; preds = %safe_realloc_nofree br i1 %.not93.i, label %read_from_wave64_.exit, label %append_block_.exit.thread.sink.split.i 130: ; preds = %127 - %131 = load i64, ptr %61, align 8, !tbaa !21 + %131 = load i64, ptr %41, align 8, !tbaa !21 %.not94.i = icmp eq i64 %131, 0 br i1 %.not94.i, label %132, label %read_from_wave64_.exit @@ -1383,13 +1363,13 @@ safe_realloc_nofree_muladd2_.exit.thread.i112.i: ; preds = %safe_realloc_nofree %.not95.i = icmp eq ptr %2, null br i1 %.not95.i, label %read_from_wave64_.exit, label %append_block_.exit.thread.sink.split.i -append_block_.exit.thread.sink.split.i: ; preds = %132, %129, %126, %124, %safe_realloc_nofree_muladd2_.exit.thread.i112.i, %109, %103, %100, %94, %91, %87, %75, %68, %safe_realloc_nofree_muladd2_.exit.thread.i.i, %24, %17, %11 - %.str.37.sink.i = phi ptr [ @.str.17, %11 ], [ @.str.68, %17 ], [ @.str.36, %24 ], [ @.str.37, %safe_realloc_nofree_muladd2_.exit.thread.i.i ], [ @.str.22, %68 ], [ @.str.69, %75 ], [ @.str.70, %87 ], [ @.str.72, %91 ], [ @.str.73, %94 ], [ @.str.75, %100 ], [ @.str.76, %103 ], [ @.str.36, %109 ], [ @.str.37, %safe_realloc_nofree_muladd2_.exit.thread.i112.i ], [ @.str.77, %124 ], [ @.str.78, %126 ], [ @.str.79, %129 ], [ @.str.80, %132 ] +append_block_.exit.thread.sink.split.i: ; preds = %132, %129, %126, %124, %safe_realloc_nofree_muladd2_.exit.thread.i112.i, %109, %103, %100, %94, %91, %87, %75, %48, %safe_realloc_nofree_muladd2_.exit.thread.i.i, %24, %17, %11 + %.str.37.sink.i = phi ptr [ @.str.17, %11 ], [ @.str.68, %17 ], [ @.str.36, %24 ], [ @.str.37, %safe_realloc_nofree_muladd2_.exit.thread.i.i ], [ @.str.22, %48 ], [ @.str.69, %75 ], [ @.str.70, %87 ], [ @.str.72, %91 ], [ @.str.73, %94 ], [ @.str.75, %100 ], [ @.str.76, %103 ], [ @.str.36, %109 ], [ @.str.37, %safe_realloc_nofree_muladd2_.exit.thread.i112.i ], [ @.str.77, %124 ], [ @.str.78, %126 ], [ @.str.79, %129 ], [ @.str.80, %132 ] store ptr %.str.37.sink.i, ptr %2, align 8, !tbaa !12 br label %read_from_wave64_.exit -read_from_wave64_.exit: ; preds = %11, %17, %24, %safe_realloc_nofree_muladd2_.exit.thread.i.i, %68, %75, %87, %91, %94, %100, %103, %109, %safe_realloc_nofree_muladd2_.exit.thread.i112.i, %124, %126, %129, %130, %132, %append_block_.exit.thread.sink.split.i - %.059.i = phi i32 [ 0, %11 ], [ 0, %17 ], [ 0, %126 ], [ 0, %129 ], [ 0, %132 ], [ 1, %130 ], [ 0, %24 ], [ 0, %safe_realloc_nofree_muladd2_.exit.thread.i.i ], [ 0, %68 ], [ 0, %75 ], [ 0, %87 ], [ 0, %91 ], [ 0, %94 ], [ 0, %100 ], [ 0, %103 ], [ 0, %124 ], [ 0, %109 ], [ 0, %safe_realloc_nofree_muladd2_.exit.thread.i112.i ], [ 0, %append_block_.exit.thread.sink.split.i ] +read_from_wave64_.exit: ; preds = %11, %17, %24, %safe_realloc_nofree_muladd2_.exit.thread.i.i, %48, %75, %87, %91, %94, %100, %103, %109, %safe_realloc_nofree_muladd2_.exit.thread.i112.i, %124, %126, %129, %130, %132, %append_block_.exit.thread.sink.split.i + %.059.i = phi i32 [ 0, %11 ], [ 0, %17 ], [ 0, %126 ], [ 0, %129 ], [ 0, %132 ], [ 1, %130 ], [ 0, %24 ], [ 0, %safe_realloc_nofree_muladd2_.exit.thread.i.i ], [ 0, %48 ], [ 0, %75 ], [ 0, %87 ], [ 0, %91 ], [ 0, %94 ], [ 0, %100 ], [ 0, %103 ], [ 0, %124 ], [ 0, %109 ], [ 0, %safe_realloc_nofree_muladd2_.exit.thread.i112.i ], [ 0, %append_block_.exit.thread.sink.split.i ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %4) #14 %133 = call i32 @fclose(ptr noundef nonnull %5) br label %134 diff --git a/bench/image-rs/optimized/1clnprdgqfw2q9lq.ll b/bench/image-rs/optimized/1clnprdgqfw2q9lq.ll index 6f13d3f3468..1a23d31f452 100644 --- a/bench/image-rs/optimized/1clnprdgqfw2q9lq.ll +++ b/bench/image-rs/optimized/1clnprdgqfw2q9lq.ll @@ -22613,9 +22613,7 @@ define hidden void @"_ZN3exr5block6reader15Reader$LT$R$GT$18read_from_buffered17 .noexc18: ; preds = %"_ZN36_$LT$u8$u20$as$u20$exr..io..Data$GT$10read_slice17hed4c3ef9568bd99fE.exit.i.i.i.i" %.sroa.0.0.copyload.i.i.i.i = load i64, ptr %8, align 8, !noalias !4731 %.sroa.5.0..sroa_idx.i.i.i.i = getelementptr inbounds nuw i8, ptr %8, i64 8 - %.sroa.5.i.sroa.0.0.copyload.i.i.i = load i8, ptr %.sroa.5.0..sroa_idx.i.i.i.i, align 8, !noalias !4731 - %.sroa.5.i.sroa.5.0..sroa.5.0..sroa_idx.i.sroa_idx.i.i.i = getelementptr inbounds nuw i8, ptr %8, i64 9 - %.sroa.5.i.sroa.5.i.sroa.0.0.copyload.i.i = load i56, ptr %.sroa.5.i.sroa.5.0..sroa.5.0..sroa_idx.i.sroa_idx.i.i.i, align 1, !noalias !4731 + %.sroa.5.i.sroa.0.0.copyload.i.i.i = load i68, ptr %.sroa.5.0..sroa_idx.i.i.i.i, align 8, !noalias !4731 %.sroa.5.i.sroa.5.i.sroa.5.0..sroa.5.i.sroa.5.0..sroa.5.0..sroa_idx.i.sroa_idx.i.sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %8, i64 16 %.sroa.5.i.sroa.5.i.sroa.5.0.copyload.i.i = load ptr, ptr %.sroa.5.i.sroa.5.i.sroa.5.0..sroa.5.i.sroa.5.0..sroa.5.0..sroa_idx.i.sroa_idx.i.sroa_idx.i.i, align 8, !noalias !4731 %.sroa.5.i.sroa.5.i.sroa.6.0..sroa.5.i.sroa.5.0..sroa.5.0..sroa_idx.i.sroa_idx.i.sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %8, i64 24 @@ -22632,10 +22630,6 @@ define hidden void @"_ZN3exr5block6reader15Reader$LT$R$GT$18read_from_buffered17 23: ; preds = %.noexc18 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9), !noalias !4716 - %24 = zext i56 %.sroa.5.i.sroa.5.i.sroa.0.0.copyload.i.i to i64 - %25 = shl nuw i64 %24, 8 - %26 = zext i8 %.sroa.5.i.sroa.0.0.copyload.i.i.i to i64 - %27 = or disjoint i64 %25, %26 br label %35 28: ; preds = %20 @@ -22685,7 +22679,7 @@ define hidden void @"_ZN3exr5block6reader15Reader$LT$R$GT$18read_from_buffered17 %.sroa.11.0.ph.i.i = phi i64 [ 23, %20 ], [ %.sroa.5.i.sroa.5.i.sroa.6.0.copyload.i.i, %23 ] %.sroa.10.0.ph.i.i = phi ptr [ @anon.485243c0b6e0c52e847d698bbee735f0.18, %20 ], [ %.sroa.5.i.sroa.5.i.sroa.5.0.copyload.i.i, %23 ] %.sroa.0.098.ph.i.i = phi i64 [ 2, %20 ], [ %.sroa.0.0.copyload.i.i.i.i, %23 ] - %.sroa.665.sroa.0.0.insert.insert.i.i = phi i64 [ -9223372036854775808, %20 ], [ %27, %23 ] + %.sroa.665.sroa.0.0.insert.insert.i.i = phi i64 [ -9223372036854775808, %20 ], [ %.sroa.5.i.sroa.0.0.copyload.i.i.i, %23 ] %.sroa.15.sroa.0.0.extract.trunc49.i = trunc i64 %.sroa.665.sroa.0.0.insert.insert.i.i to i32 %.sroa.15.sroa.9.0.extract.shift56.i = lshr i64 %.sroa.665.sroa.0.0.insert.insert.i.i, 32 %.sroa.15.sroa.9.0.extract.trunc57.i = trunc i64 %.sroa.15.sroa.9.0.extract.shift56.i to i8 @@ -23084,9 +23078,7 @@ define hidden void @"_ZN3exr5block6reader15Reader$LT$R$GT$18read_from_buffered17 .noexc18: ; preds = %"_ZN36_$LT$u8$u20$as$u20$exr..io..Data$GT$10read_slice17h90b4ee9929429676E.exit.i.i.i.i" %.sroa.0.0.copyload.i.i.i.i = load i64, ptr %7, align 8, !noalias !4807 %.sroa.5.0..sroa_idx.i.i.i.i = getelementptr inbounds nuw i8, ptr %7, i64 8 - %.sroa.5.i.sroa.0.0.copyload.i.i.i = load i8, ptr %.sroa.5.0..sroa_idx.i.i.i.i, align 8, !noalias !4807 - %.sroa.5.i.sroa.5.0..sroa.5.0..sroa_idx.i.sroa_idx.i.i.i = getelementptr inbounds nuw i8, ptr %7, i64 9 - %.sroa.5.i.sroa.5.i.sroa.0.0.copyload.i.i = load i56, ptr %.sroa.5.i.sroa.5.0..sroa.5.0..sroa_idx.i.sroa_idx.i.i.i, align 1, !noalias !4807 + %.sroa.5.i.sroa.0.0.copyload.i.i.i = load i68, ptr %.sroa.5.0..sroa_idx.i.i.i.i, align 8, !noalias !4807 %.sroa.5.i.sroa.5.i.sroa.5.0..sroa.5.i.sroa.5.0..sroa.5.0..sroa_idx.i.sroa_idx.i.sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %7, i64 16 %.sroa.5.i.sroa.5.i.sroa.5.0.copyload.i.i = load ptr, ptr %.sroa.5.i.sroa.5.i.sroa.5.0..sroa.5.i.sroa.5.0..sroa.5.0..sroa_idx.i.sroa_idx.i.sroa_idx.i.i, align 8, !noalias !4807 %.sroa.5.i.sroa.5.i.sroa.6.0..sroa.5.i.sroa.5.0..sroa.5.0..sroa_idx.i.sroa_idx.i.sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %7, i64 24 @@ -23103,11 +23095,7 @@ define hidden void @"_ZN3exr5block6reader15Reader$LT$R$GT$18read_from_buffered17 22: ; preds = %.noexc18 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8), !noalias !4792 - %23 = zext i56 %.sroa.5.i.sroa.5.i.sroa.0.0.copyload.i.i to i64 - %24 = shl nuw i64 %23, 8 - %25 = zext i8 %.sroa.5.i.sroa.0.0.copyload.i.i.i to i64 - %26 = or disjoint i64 %24, %25 - br label %34 + br label %30 27: ; preds = %19 call void @llvm.lifetime.start.p0(i64 5, ptr nonnull %10), !noalias !4808 @@ -23156,7 +23144,7 @@ define hidden void @"_ZN3exr5block6reader15Reader$LT$R$GT$18read_from_buffered17 %.sroa.11.0.ph.i.i = phi i64 [ 23, %19 ], [ %.sroa.5.i.sroa.5.i.sroa.6.0.copyload.i.i, %22 ] %.sroa.10.0.ph.i.i = phi ptr [ @anon.485243c0b6e0c52e847d698bbee735f0.18, %19 ], [ %.sroa.5.i.sroa.5.i.sroa.5.0.copyload.i.i, %22 ] %.sroa.0.098.ph.i.i = phi i64 [ 2, %19 ], [ %.sroa.0.0.copyload.i.i.i.i, %22 ] - %.sroa.665.sroa.0.0.insert.insert.i.i = phi i64 [ -9223372036854775808, %19 ], [ %26, %22 ] + %.sroa.665.sroa.0.0.insert.insert.i.i = phi i64 [ -9223372036854775808, %19 ], [ %.sroa.5.i.sroa.0.0.copyload.i.i.i, %22 ] %.sroa.15.sroa.0.0.extract.trunc49.i = trunc i64 %.sroa.665.sroa.0.0.insert.insert.i.i to i32 %.sroa.15.sroa.9.0.extract.shift56.i = lshr i64 %.sroa.665.sroa.0.0.insert.insert.i.i, 32 %.sroa.15.sroa.9.0.extract.trunc57.i = trunc i64 %.sroa.15.sroa.9.0.extract.shift56.i to i8 diff --git a/bench/linux/optimized/af_packet.ll b/bench/linux/optimized/af_packet.ll index 413899a70b8..f254e88ccd0 100644 --- a/bench/linux/optimized/af_packet.ll +++ b/bench/linux/optimized/af_packet.ll @@ -2918,7 +2918,7 @@ define internal range(i32 -92, 1) i32 @packet_getsockopt(ptr noundef readonly ca call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %7) #19 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #19 %11 = icmp eq i32 %1, 263 - br i1 %11, label %12, label %149 + br i1 %11, label %12, label %138 12: ; preds = %5 %13 = tail call i64 @llvm.read_register.i64(metadata !0) @@ -2930,17 +2930,17 @@ define internal range(i32 -92, 1) i32 @packet_getsockopt(ptr noundef readonly ca tail call void @llvm.write_register.i64(metadata !0, i64 %17) %19 = and i64 %18, 4294967295 %20 = icmp eq i64 %19, 0 - br i1 %20, label %21, label %149 + br i1 %20, label %21, label %138 21: ; preds = %12 %22 = icmp slt i32 %16, 0 - br i1 %22, label %149, label %23 + br i1 %22, label %138, label %23 23: ; preds = %21 store i32 0, ptr %6, align 4, !annotation !48 call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %7, i8 0, i64 12, i1 false), !annotation !48 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %8, i8 0, i64 24, i1 false), !annotation !48 - switch i32 %2, label %149 [ + switch i32 %2, label %138 [ i32 6, label %24 i32 8, label %36 i32 9, label %42 @@ -2952,10 +2952,10 @@ define internal range(i32 -92, 1) i32 @packet_getsockopt(ptr noundef readonly ca i32 14, label %74 i32 17, label %80 i32 18, label %83 - i32 23, label %103 - i32 21, label %107 - i32 19, label %120 - i32 20, label %126 + i32 23, label %92 + i32 21, label %96 + i32 19, label %109 + i32 20, label %115 ] 24: ; preds = %23 @@ -2976,7 +2976,7 @@ define internal range(i32 -92, 1) i32 @packet_getsockopt(ptr noundef readonly ca %34 = add i32 %33, %28 store i32 %34, ptr %7, align 4 %35 = select i1 %31, i32 12, i32 8 - br label %132 + br label %121 36: ; preds = %23 %37 = getelementptr inbounds nuw i8, ptr %10, i64 1208 @@ -2985,7 +2985,7 @@ define internal range(i32 -92, 1) i32 @packet_getsockopt(ptr noundef readonly ca %40 = lshr i32 %39, 1 %41 = and i32 %40, 1 store i32 %41, ptr %6, align 4 - br label %132 + br label %121 42: ; preds = %23 %43 = getelementptr inbounds nuw i8, ptr %10, i64 1208 @@ -2993,7 +2993,7 @@ define internal range(i32 -92, 1) i32 @packet_getsockopt(ptr noundef readonly ca %45 = trunc i64 %44 to i32 %46 = and i32 %45, 1 store i32 %46, ptr %6, align 4 - br label %132 + br label %121 47: ; preds = %23 %48 = getelementptr inbounds nuw i8, ptr %10, i64 1220 @@ -3001,35 +3001,35 @@ define internal range(i32 -92, 1) i32 @packet_getsockopt(ptr noundef readonly ca %50 = icmp ne i8 %49, 0 %51 = zext i1 %50 to i32 store i32 %51, ptr %6, align 4 - br label %132 + br label %121 52: ; preds = %23 %53 = getelementptr inbounds nuw i8, ptr %10, i64 1220 %54 = load volatile i8, ptr %53, align 4 %55 = zext i8 %54 to i32 store i32 %55, ptr %6, align 4 - br label %132 + br label %121 56: ; preds = %23 %57 = getelementptr inbounds nuw i8, ptr %10, i64 1248 %58 = load i32, ptr %57, align 32 store i32 %58, ptr %6, align 4 - br label %132 + br label %121 59: ; preds = %23 %60 = tail call i32 @llvm.umin.i32(i32 %16, i32 4) %61 = icmp samesign ult i32 %16, 4 - br i1 %61, label %149, label %62 + br i1 %61, label %138, label %62 62: ; preds = %59 %63 = zext nneg i32 %60 to i64 %64 = call i64 @_copy_from_user(ptr noundef nonnull %6, ptr noundef %3, i64 noundef %63) #19 %65 = icmp eq i64 %64, 0 - br i1 %65, label %66, label %149 + br i1 %65, label %66, label %138 66: ; preds = %62 %67 = load i32, ptr %6, align 4 - switch i32 %67, label %149 [ + switch i32 %67, label %138 [ i32 0, label %68 i32 1, label %69 i32 2, label %70 @@ -3037,21 +3037,21 @@ define internal range(i32 -92, 1) i32 @packet_getsockopt(ptr noundef readonly ca 68: ; preds = %66 store i32 32, ptr %6, align 4 - br label %132 + br label %121 69: ; preds = %66 store i32 32, ptr %6, align 4 - br label %132 + br label %121 70: ; preds = %66 store i32 48, ptr %6, align 4 - br label %132 + br label %121 71: ; preds = %23 %72 = getelementptr inbounds nuw i8, ptr %10, i64 1256 %73 = load i32, ptr %72, align 8 store i32 %73, ptr %6, align 4 - br label %132 + br label %121 74: ; preds = %23 %75 = getelementptr inbounds nuw i8, ptr %10, i64 1208 @@ -3060,114 +3060,103 @@ define internal range(i32 -92, 1) i32 @packet_getsockopt(ptr noundef readonly ca %78 = lshr i32 %77, 3 %79 = and i32 %78, 1 store i32 %79, ptr %6, align 4 - br label %132 + br label %121 80: ; preds = %23 %81 = getelementptr inbounds nuw i8, ptr %10, i64 1260 %82 = load volatile i32, ptr %81, align 4 store i32 %82, ptr %6, align 4 - br label %132 + br label %121 83: ; preds = %23 %84 = getelementptr inbounds nuw i8, ptr %10, i64 744 %85 = load ptr, ptr %84, align 8 %86 = icmp eq ptr %85, null - br i1 %86, label %101, label %87 + br i1 %86, label %90, label %87 87: ; preds = %83 %88 = getelementptr inbounds nuw i8, ptr %85, i64 16 - %89 = load i16, ptr %88, align 16 - %90 = zext i16 %89 to i32 - %91 = getelementptr inbounds nuw i8, ptr %85, i64 18 - %92 = load i8, ptr %91, align 2 - %93 = zext i8 %92 to i32 - %94 = shl nuw nsw i32 %93, 16 - %95 = or disjoint i32 %94, %90 - %96 = getelementptr inbounds nuw i8, ptr %85, i64 19 - %97 = load i8, ptr %96, align 1 - %98 = zext i8 %97 to i32 - %99 = shl nuw i32 %98, 24 - %100 = or disjoint i32 %95, %99 - br label %101 - -101: ; preds = %87, %83 - %102 = phi i32 [ %100, %87 ], [ 0, %83 ] - store i32 %102, ptr %6, align 4 - br label %132 - -103: ; preds = %23 - %104 = getelementptr inbounds nuw i8, ptr %10, i64 1346 - %105 = load i8, ptr %104, align 2, !range !57, !noundef !58 - %106 = zext nneg i8 %105 to i32 - store i32 %106, ptr %6, align 4 - br label %132 - -107: ; preds = %23 - %108 = getelementptr inbounds nuw i8, ptr %10, i64 1224 - %109 = load ptr, ptr %108, align 8 - %110 = icmp eq ptr %109, null - br i1 %110, label %149, label %111 + %89 = load i32, ptr %88, align 16 + br label %90 + +90:; preds = %87, %83 + %91 = phi i32 [ %89, %87 ], [ 0, %83 ] + store i32 %91, ptr %6, align 4 + br label %121 + +92:; preds = %23 + %93 = getelementptr inbounds nuw i8, ptr %10, i64 1346 + %94 = load i8, ptr %93, align 2, !range !57, !noundef !58 + %95 = zext nneg i8 %94 to i32 + store i32 %95, ptr %6, align 4 + br label %121 + +96:; preds = %23 + %97 = getelementptr inbounds nuw i8, ptr %10, i64 1224 + %98 = load ptr, ptr %97, align 8 + %99 = icmp eq ptr %98, null + br i1 %99, label %138, label %100 + +100:; preds = %96 + %101 = getelementptr inbounds nuw i8, ptr %98, i64 8 + %102 = load volatile i64, ptr %101, align 8 + store i64 %102, ptr %8, align 8 + %103 = getelementptr inbounds nuw i8, ptr %98, i64 16 + %104 = load volatile i64, ptr %103, align 8 + %108 = getelementptr inbounds nuw i8, ptr %8, i64 8 + store i64 %104, ptr %108, align 8 + %106 = getelementptr inbounds nuw i8, ptr %98, i64 24 + %107 = load volatile i64, ptr %106, align 8 + %108 = getelementptr inbounds nuw i8, ptr %8, i64 16 + store i64 %107, ptr %108, align 8 + br label %121 + +109: ; preds = %23 + %110 = getelementptr inbounds nuw i8, ptr %10, i64 1208 + %111 = load volatile i64, ptr %110, align 8 + %112 = trunc i64 %111 to i32 + %113 = lshr i32 %112, 2 + %114 = and i32 %113, 1 + store i32 %114, ptr %6, align 4 + br label %121 + +115: ; preds = %23 + %116 = getelementptr inbounds nuw i8, ptr %10, i64 1208 + %117 = load volatile i64, ptr %116, align 8 + %118 = trunc i64 %117 to i32 + %119 = lshr i32 %118, 6 + %120 = and i32 %119, 1 + store i32 %120, ptr %6, align 4 + br label %121 + +121: ; preds = %115, %109, %100, %92, %90, %80, %74, %71, %70, %69, %68, %56, %52, %47, %42, %36, %24 + %122 = phi ptr [ %6, %115 ], [ %6, %109 ], [ %8, %100 ], [ %6, %92 ], [ %6, %90 ], [ %6, %80 ], [ %6, %74 ], [ %6, %71 ], [ %6, %70 ], [ %6, %69 ], [ %6, %68 ], [ %6, %56 ], [ %6, %52 ], [ %6, %47 ], [ %6, %42 ], [ %6, %36 ], [ %7, %24 ] + %123 = phi i32 [ 4, %115 ], [ 4, %109 ], [ 24, %100 ], [ 4, %92 ], [ 4, %90 ], [ 4, %80 ], [ 4, %74 ], [ 4, %71 ], [ 4, %70 ], [ 4, %69 ], [ 4, %68 ], [ 4, %56 ], [ 4, %52 ], [ 4, %47 ], [ 4, %42 ], [ 4, %36 ], [ %35, %24 ] + %124 = phi i32 [ %16, %115 ], [ %16, %109 ], [ %16, %100 ], [ %16, %92 ], [ %16, %90 ], [ %16, %80 ], [ %16, %74 ], [ %16, %71 ], [ %60, %70 ], [ %60, %69 ], [ %60, %68 ], [ %16, %56 ], [ %16, %52 ], [ %16, %47 ], [ %16, %42 ], [ %16, %36 ], [ %16, %24 ] + %125 = call i32 @llvm.umin.i32(i32 %124, i32 %123) + %126 = call i64 @llvm.read_register.i64(metadata !0) + %127 = call { ptr, i64 } asm sideeffect "call __put_user_${4:P}", "={cx},={rsp},0,{rax},i,{rsp},~{ebx},~{dirflag},~{fpsr},~{flags}"(ptr %4, i32 %125, i64 4, i64 %126) #19, !srcloc !59 + %128 = extractvalue { ptr, i64 } %127, 0 + %129 = extractvalue { ptr, i64 } %127, 1 + %130 = ptrtoint ptr %128 to i64 + call void @llvm.write_register.i64(metadata !0, i64 %129) + %131 = and i64 %130, 4294967295 + %132 = icmp eq i64 %131, 0 + br i1 %132, label %133, label %138 + +133: ; preds = %121 + %134 = zext nneg i32 %125 to i64 + %135 = call i64 @_copy_to_user(ptr noundef %3, ptr noundef nonnull %122, i64 noundef %134) #19 + %136 = icmp eq i64 %135, 0 + %137 = select i1 %136, i32 0, i32 -14 + br label %138 -111: ; preds = %107 - %112 = getelementptr inbounds nuw i8, ptr %109, i64 8 - %113 = load volatile i64, ptr %112, align 8 - store i64 %113, ptr %8, align 8 - %114 = getelementptr inbounds nuw i8, ptr %109, i64 16 - %115 = load volatile i64, ptr %114, align 8 - %116 = getelementptr inbounds nuw i8, ptr %8, i64 8 - store i64 %115, ptr %116, align 8 - %117 = getelementptr inbounds nuw i8, ptr %109, i64 24 - %118 = load volatile i64, ptr %117, align 8 - %119 = getelementptr inbounds nuw i8, ptr %8, i64 16 - store i64 %118, ptr %119, align 8 - br label %132 - -120: ; preds = %23 - %121 = getelementptr inbounds nuw i8, ptr %10, i64 1208 - %122 = load volatile i64, ptr %121, align 8 - %123 = trunc i64 %122 to i32 - %124 = lshr i32 %123, 2 - %125 = and i32 %124, 1 - store i32 %125, ptr %6, align 4 - br label %132 - -126: ; preds = %23 - %127 = getelementptr inbounds nuw i8, ptr %10, i64 1208 - %128 = load volatile i64, ptr %127, align 8 - %129 = trunc i64 %128 to i32 - %130 = lshr i32 %129, 6 - %131 = and i32 %130, 1 - store i32 %131, ptr %6, align 4 - br label %132 - -132: ; preds = %126, %120, %111, %103, %101, %80, %74, %71, %70, %69, %68, %56, %52, %47, %42, %36, %24 - %133 = phi ptr [ %6, %126 ], [ %6, %120 ], [ %8, %111 ], [ %6, %103 ], [ %6, %101 ], [ %6, %80 ], [ %6, %74 ], [ %6, %71 ], [ %6, %70 ], [ %6, %69 ], [ %6, %68 ], [ %6, %56 ], [ %6, %52 ], [ %6, %47 ], [ %6, %42 ], [ %6, %36 ], [ %7, %24 ] - %134 = phi i32 [ 4, %126 ], [ 4, %120 ], [ 24, %111 ], [ 4, %103 ], [ 4, %101 ], [ 4, %80 ], [ 4, %74 ], [ 4, %71 ], [ 4, %70 ], [ 4, %69 ], [ 4, %68 ], [ 4, %56 ], [ 4, %52 ], [ 4, %47 ], [ 4, %42 ], [ 4, %36 ], [ %35, %24 ] - %135 = phi i32 [ %16, %126 ], [ %16, %120 ], [ %16, %111 ], [ %16, %103 ], [ %16, %101 ], [ %16, %80 ], [ %16, %74 ], [ %16, %71 ], [ %60, %70 ], [ %60, %69 ], [ %60, %68 ], [ %16, %56 ], [ %16, %52 ], [ %16, %47 ], [ %16, %42 ], [ %16, %36 ], [ %16, %24 ] - %136 = call i32 @llvm.umin.i32(i32 %135, i32 %134) - %137 = call i64 @llvm.read_register.i64(metadata !0) - %138 = call { ptr, i64 } asm sideeffect "call __put_user_${4:P}", "={cx},={rsp},0,{rax},i,{rsp},~{ebx},~{dirflag},~{fpsr},~{flags}"(ptr %4, i32 %136, i64 4, i64 %137) #19, !srcloc !59 - %139 = extractvalue { ptr, i64 } %138, 0 - %140 = extractvalue { ptr, i64 } %138, 1 - %141 = ptrtoint ptr %139 to i64 - call void @llvm.write_register.i64(metadata !0, i64 %140) - %142 = and i64 %141, 4294967295 - %143 = icmp eq i64 %142, 0 - br i1 %143, label %144, label %149 - -144: ; preds = %132 - %145 = zext nneg i32 %136 to i64 - %146 = call i64 @_copy_to_user(ptr noundef %3, ptr noundef nonnull %133, i64 noundef %145) #19 - %147 = icmp eq i64 %146, 0 - %148 = select i1 %147, i32 0, i32 -14 - br label %149 - -149: ; preds = %144, %132, %107, %66, %62, %59, %23, %21, %12, %5 - %150 = phi i32 [ -92, %5 ], [ -14, %12 ], [ -22, %21 ], [ -22, %59 ], [ -14, %62 ], [ -22, %66 ], [ -22, %107 ], [ -92, %23 ], [ -14, %132 ], [ %148, %144 ] +111: ; preds = %133, %121, %96, %66, %62, %59, %23, %21, %12, %5 + %139 = phi i32 [ -92, %5 ], [ -14, %12 ], [ -22, %21 ], [ -22, %59 ], [ -14, %62 ], [ -22, %66 ], [ -22, %96 ], [ -92, %23 ], [ -14, %121 ], [ %137, %133 ] call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #19 call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %7) #19 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #19 - ret i32 %150 + ret i32 %139 } ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid diff --git a/bench/linux/optimized/xhci-ring.ll b/bench/linux/optimized/xhci-ring.ll index 2b4c00b7a7e..e6869f55d43 100644 --- a/bench/linux/optimized/xhci-ring.ll +++ b/bench/linux/optimized/xhci-ring.ll @@ -5353,26 +5353,20 @@ define dso_local range(i32 -2147483648, 1) i32 @xhci_queue_ctrl_tx(ptr noundef % 63: ; preds = %61, %59, %53, %48 %64 = phi i32 [ %60, %59 ], [ %62, %61 ], [ %44, %53 ], [ %44, %48 ] - %65 = load i16, ptr %42, align 1 - %66 = zext i16 %65 to i32 - %67 = getelementptr inbounds nuw i8, ptr %42, i64 2 - %68 = load i16, ptr %67, align 1 - %69 = zext i16 %68 to i32 - %70 = shl nuw i32 %69, 16 - %71 = or disjoint i32 %70, %66 - %72 = getelementptr inbounds nuw i8, ptr %42, i64 4 - %73 = load i32, ptr %72, align 1 - tail call fastcc void @queue_trb(ptr noundef %0, ptr noundef nonnull %16, i1 noundef zeroext true, i32 noundef %71, i32 noundef %73, i32 noundef 8, i32 noundef %64) - %74 = getelementptr inbounds nuw i8, ptr %2, i64 92 - %75 = load i32, ptr %74, align 4 - %76 = and i32 %75, 512 - %77 = icmp eq i32 %76, 0 - %78 = select i1 %77, i32 3072, i32 3076 - %79 = load i32, ptr %23, align 8 - %80 = icmp eq i32 %79, 0 - br i1 %80, label %135, label %81 - -81: ; preds = %63 + %65 = load i32, ptr %42, align 1 + %66 = getelementptr inbounds nuw i8, ptr %42, i64 4 + %67 = load i32, ptr %66, align 1 + tail call fastcc void @queue_trb(ptr noundef %0, ptr noundef nonnull %16, i1 noundef zeroext true, i32 noundef %65, i32 noundef %67, i32 noundef 8, i32 noundef %64) + %68 = getelementptr inbounds nuw i8, ptr %2, i64 92 + %69 = load i32, ptr %68, align 4 + %70 = and i32 %69, 512 + %71 = icmp eq i32 %70, 0 + %72 = select i1 %71, i32 3072, i32 3076 + %73 = load i32, ptr %23, align 8 + %74 = icmp eq i32 %73, 0 + br i1 %74, label %147, label %75 + +75:; preds = %63 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) store i64 0, ptr %6, align 8 %82 = load ptr, ptr %11, align 8 @@ -5380,102 +5374,102 @@ define dso_local range(i32 -2147483648, 1) i32 @xhci_queue_ctrl_tx(ptr noundef % %84 = load i8, ptr %83, align 1 %85 = and i8 %84, 3 %86 = icmp ne i8 %85, 1 - %87 = select i1 %86, i1 %77, i1 false - br i1 %87, label %88, label %102 + %87 = select i1 %86, i1 %71, i1 false + br i1 %87, label %88, label %109 -88: ; preds = %81 +88: ; preds = %75 %89 = getelementptr inbounds nuw i8, ptr %82, i64 4 %90 = load i16, ptr %89, align 1 %91 = and i16 %90, 2040 %92 = icmp eq i16 %91, 0 - br i1 %92, label %102, label %93 + br i1 %92, label %109, label %93 93: ; preds = %88 - %94 = icmp ult i32 %79, 9 - %95 = and i32 %75, 4 + %94 = icmp ult i32 %73, 9 + %95 = and i32 %69, 4 %96 = icmp eq i32 %95, 0 %97 = and i1 %96, %94 - br i1 %97, label %98, label %102 - -98: ; preds = %93 - %99 = getelementptr inbounds nuw i8, ptr %2, i64 124 - %100 = load i32, ptr %99, align 4 - %101 = icmp eq i32 %100, 0 - br i1 %101, label %105, label %102 + br i1 %97, label %92, label %109 + +105: ; preds = %87 + %106 = getelementptr inbounds nuw i8, ptr %2, i64 124 + %107 = load i32, ptr %106, align 4 + %95 = icmp eq i32 %94, 0 + br i1 %95, label %99, label %96 + +109: ; preds = %105, %87, %82, %75 + %97 = getelementptr inbounds nuw i8, ptr %2, i64 104 + %111 = load i64, ptr %97, align 8 + store i64 %111, ptr %6, align 8 + br label %103 -102: ; preds = %98, %93, %88, %81 - %103 = getelementptr inbounds nuw i8, ptr %2, i64 104 - %104 = load i64, ptr %103, align 8 - store i64 %104, ptr %6, align 8 - br label %109 +135: ; preds = %105 + %100 = getelementptr inbounds nuw i8, ptr %2, i64 96 + %101 = load ptr, ptr %100, align 8 + %102 = zext nneg i32 %73 to i64 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %6, ptr align 1 %101, i64 %102, i1 false) + br label %103 -105: ; preds = %98 - %106 = getelementptr inbounds nuw i8, ptr %2, i64 96 - %107 = load ptr, ptr %106, align 8 - %108 = zext nneg i32 %79 to i64 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %6, ptr align 1 %107, i64 %108, i1 false) - br label %109 +143: ; preds = %135, %109 + %104 = phi i32 [ 3136, %99 ], [ %72, %96 ] + %105 = load i16, ptr %45, align 2 + %106 = icmp ult i16 %105, 256 + br i1 %106, label %107, label %114 -109: ; preds = %105, %102 - %110 = phi i32 [ 3136, %105 ], [ %78, %102 ] - %111 = load i16, ptr %45, align 2 - %112 = icmp ult i16 %111, 256 - br i1 %112, label %113, label %120 - -113: ; preds = %109 - %114 = getelementptr inbounds nuw i8, ptr %0, i64 2488 - %115 = load i64, ptr %114, align 8 - %116 = and i64 %115, 2097152 - %117 = icmp eq i64 %116, 0 - %118 = lshr i32 %79, 10 - %119 = select i1 %117, i32 %118, i32 0 - br label %120 - -120: ; preds = %113, %109 - %121 = phi i32 [ 0, %109 ], [ %119, %113 ] - %122 = and i32 %79, 131071 - %123 = tail call i32 @llvm.umin.i32(i32 %121, i32 31) - %124 = shl nuw nsw i32 %123, 17 - %125 = or disjoint i32 %124, %122 - %126 = load i8, ptr %42, align 1 - %127 = or disjoint i32 %110, 65536 - %128 = icmp slt i8 %126, 0 - %129 = select i1 %128, i32 %127, i32 %110 +146: ; preds = %143 + %108 = getelementptr inbounds nuw i8, ptr %0, i64 2488 + %109 = load i64, ptr %108, align 8 + %110 = and i64 %109, 2097152 + %111 = icmp eq i64 %110, 0 + %112 = lshr i32 %73, 10 + %113 = select i1 %111, i32 %112, i32 0 + br label %114 + +114: ; preds = %107, %103 + %115 = phi i32 [ 0, %103 ], [ %113, %107 ] + %116 = and i32 %73, 131071 + %117 = tail call i32 @llvm.umin.i32(i32 %115, i32 31) + %118 = shl nuw nsw i32 %117, 17 + %119 = or disjoint i32 %118, %116 + %120 = load i8, ptr %42, align 1 + %121 = or disjoint i32 %104, 65536 + %122 = icmp slt i8 %120, 0 + %123 = select i1 %122, i32 %121, i32 %104 %.0..0..0..0. = load i64, ptr %6, align 8 - %130 = trunc i64 %.0..0..0..0. to i32 - %131 = lshr i64 %.0..0..0..0., 32 - %132 = trunc nuw i64 %131 to i32 - %133 = load i32, ptr %40, align 8 - %134 = or i32 %129, %133 - tail call fastcc void @queue_trb(ptr noundef %0, ptr noundef nonnull %16, i1 noundef zeroext true, i32 noundef %130, i32 noundef %132, i32 noundef %125, i32 noundef %134) + %124 = trunc i64 %.0..0..0..0. to i32 + %125 = lshr i64 %.0..0..0..0., 32 + %126 = trunc nuw i64 %125 to i32 + %127 = load i32, ptr %40, align 8 + %128 = or i32 %123, %127 + tail call fastcc void @queue_trb(ptr noundef %0, ptr noundef nonnull %16, i1 noundef zeroext true, i32 noundef %124, i32 noundef %126, i32 noundef %119, i32 noundef %128) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) - br label %135 - -135: ; preds = %120, %63 - %136 = load ptr, ptr %38, align 8 - %137 = getelementptr inbounds nuw i8, ptr %36, i64 72 - store ptr %136, ptr %137, align 8 - %138 = getelementptr inbounds nuw i8, ptr %16, i64 24 - %139 = load ptr, ptr %138, align 8 - %140 = getelementptr inbounds nuw i8, ptr %36, i64 80 - store ptr %139, ptr %140, align 8 - %141 = load i32, ptr %23, align 8 - %142 = icmp eq i32 %141, 0 - br i1 %142, label %146, label %143 - -143: ; preds = %135 - %144 = load i8, ptr %42, align 1 - %145 = icmp sgt i8 %144, -1 - br i1 %145, label %146, label %147 - -146: ; preds = %143, %135 - br label %147 + br label %129 -147: ; preds = %146, %143 - %148 = phi i32 [ 69664, %146 ], [ 4128, %143 ] - %149 = load i32, ptr %40, align 8 - %150 = or i32 %149, %148 - tail call fastcc void @queue_trb(ptr noundef %0, ptr noundef nonnull %16, i1 noundef zeroext false, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef %150) +147: ; preds = %114, %63 + %130 = load ptr, ptr %38, align 8 + %131 = getelementptr inbounds nuw i8, ptr %36, i64 72 + store ptr %130, ptr %131, align 8 + %132 = getelementptr inbounds nuw i8, ptr %16, i64 24 + %133 = load ptr, ptr %132, align 8 + %134 = getelementptr inbounds nuw i8, ptr %36, i64 80 + store ptr %133, ptr %134, align 8 + %135 = load i32, ptr %23, align 8 + %136 = icmp eq i32 %135, 0 + br i1 %136, label %140, label %137 + +137: ; preds = %129 + %138 = load i8, ptr %42, align 1 + %139 = icmp sgt i8 %138, -1 + br i1 %139, label %140, label %141 + +140: ; preds = %137, %129 + br label %141 + +141: ; preds = %140, %137 + %142 = phi i32 [ 69664, %140 ], [ 4128, %137 ] + %143 = load i32, ptr %40, align 8 + %144 = or i32 %143, %142 + tail call fastcc void @queue_trb(ptr noundef %0, ptr noundef nonnull %16, i1 noundef zeroext false, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef %144) tail call void asm sideeffect "sfence", "~{memory},~{dirflag},~{fpsr},~{flags}"() #14, !srcloc !73 %151 = getelementptr i8, ptr %39, i64 12 %152 = load i32, ptr %151, align 4 @@ -5498,11 +5492,11 @@ define dso_local range(i32 -2147483648, 1) i32 @xhci_queue_ctrl_tx(ptr noundef % %167 = icmp eq i32 %166, 0 br i1 %167, label %168, label %giveback_first_trb.exit -168: ; preds = %147 +168: ; preds = %141 %169 = add i32 %4, 1 %170 = and i32 %169, 255 callbr void asm sideeffect "1:jmp ${2:l} # objtool NOPs this \0A\09.pushsection __jump_table, \22aw\22 \0A\09 .balign 8 \0A\09.long 1b - . \0A\09.long ${2:l} - . \0A\09 .quad ${0:c} + ${1:c} - .\0A\09.popsection \0A\09", "i,i,!i,~{dirflag},~{fpsr},~{flags}"(ptr nonnull getelementptr inbounds nuw (i8, ptr @__tracepoint_xhci_ring_ep_doorbell, i64 8), i32 2) #14 - to label %191 [label %171], !srcloc !9 + to label %191 [label %165], !srcloc !9 171: ; preds = %168 %172 = tail call i32 asm sideeffect "movl %gs:$1, $0", "=r,*m,~{dirflag},~{fpsr},~{flags}"(ptr nonnull elementtype(i32) getelementptr inbounds nuw (i8, ptr @pcpu_hot, i64 12)) #14, !srcloc !24 @@ -5545,8 +5539,8 @@ define dso_local range(i32 -2147483648, 1) i32 @xhci_queue_ctrl_tx(ptr noundef % %192 = tail call i32 asm sideeffect "movl $1,$0", "=r,*m,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr elementtype(i32) %159) #14, !srcloc !23 br label %giveback_first_trb.exit -giveback_first_trb.exit: ; preds = %191, %147, %22, %18, %5 - %193 = phi i32 [ -22, %5 ], [ -22, %18 ], [ %32, %22 ], [ 0, %147 ], [ 0, %191 ] +giveback_first_trb.exit: ; preds = %191, %141, %22, %18, %5 + %193 = phi i32 [ -22, %5 ], [ -22, %18 ], [ %32, %22 ], [ 0, %141 ], [ 0, %191 ] ret i32 %193 } diff --git a/bench/ockam-rs/optimized/48m1civl6b0v2j4c.ll b/bench/ockam-rs/optimized/48m1civl6b0v2j4c.ll index 922fa9e9de5..d17028ffc80 100644 --- a/bench/ockam-rs/optimized/48m1civl6b0v2j4c.ll +++ b/bench/ockam-rs/optimized/48m1civl6b0v2j4c.ll @@ -9662,24 +9662,17 @@ common.ret: ; preds = %178, %176, %100 .noexc22.i: ; preds = %137 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !1370 - call void @llvm.experimental.noalias.scope.decl(metadata !1377) - %151 = load ptr, ptr %6, align 8, !alias.scope !1380, !noalias !1382, !noundef !13 + %151 = load ptr, ptr %6, align 8, !alias.scope !1377, !noalias !1380, !noundef !13 %152 = icmp eq ptr %151, null br i1 %152, label %"_ZN11ockam_vault5error112_$LT$impl$u20$core..convert..From$LT$ockam_vault..error..VaultError$GT$$u20$for$u20$ockam_core..error..Error$GT$4from17h2c44bd1dbd5b3fdbE.exit.i.i", label %153 153: ; preds = %.noexc22.i %.sroa.58.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %6, i64 8 - %.sroa.58.0.copyload.i.i = load i8, ptr %.sroa.58.0..sroa_idx.i.i, align 8, !alias.scope !1383, !noalias !1370 - %.sroa.8.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %6, i64 9 - %.sroa.3.i.sroa.0.0.copyload.i = load i56, ptr %.sroa.8.0..sroa_idx.i.i, align 1, !noalias !1370 + %.sroa.58.0.copyload.i.i = load i64, ptr %.sroa.58.0..sroa_idx.i.i, align 8, !noalias !1370 %.sroa.3.i.sroa.4.0..sroa.8.0..sroa_idx.i.sroa_idx.i = getelementptr inbounds nuw i8, ptr %6, i64 16 %.sroa.3.i.sroa.4.0.copyload.i = load i64, ptr %.sroa.3.i.sroa.4.0..sroa.8.0..sroa_idx.i.sroa_idx.i, align 8, !noalias !1370 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6), !noalias !1370 - %.sroa.511.0.insert.ext.i = zext i8 %.sroa.58.0.copyload.i.i to i64 - %.sroa.511.1.insert.ext.i = zext i56 %.sroa.3.i.sroa.0.0.copyload.i to i64 - %.sroa.511.1.insert.shift.i = shl nuw i64 %.sroa.511.1.insert.ext.i, 8 - %.sroa.511.1.insert.insert.i = or disjoint i64 %.sroa.511.1.insert.shift.i, %.sroa.511.0.insert.ext.i - %154 = inttoptr i64 %.sroa.511.1.insert.insert.i to ptr + %154 = inttoptr i64 %.sroa.58.0.copyload.i.i to ptr br label %_ZN11ockam_vault8software25vault_for_secure_channels3aes6AesGen15decrypt_message17hfa71a56ca12eb69cE.exit.i "_ZN11ockam_vault5error112_$LT$impl$u20$core..convert..From$LT$ockam_vault..error..VaultError$GT$$u20$for$u20$ockam_core..error..Error$GT$4from17h2c44bd1dbd5b3fdbE.exit.i.i": ; preds = %.noexc22.i @@ -9715,11 +9708,11 @@ _ZN11ockam_vault8software25vault_for_secure_channels3aes6AesGen15decrypt_message "_ZN4core3ptr82drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..aes..AesGen$GT$17he3d62f9adfbeb8f2E.exit.i": ; preds = %162, %.noexc25.i call void @llvm.lifetime.end.p0(i64 992, ptr nonnull %7), !noalias !1367 - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4), !noalias !1384 + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4), !noalias !1382 %163 = getelementptr inbounds nuw i8, ptr %9, i64 32 - store ptr %9, ptr %4, align 8, !noalias !1384 + store ptr %9, ptr %4, align 8, !noalias !1382 %164 = getelementptr inbounds nuw i8, ptr %4, i64 8 - store ptr %163, ptr %164, align 8, !noalias !1384 + store ptr %163, ptr %164, align 8, !noalias !1382 %165 = invoke noundef align 1 dereferenceable_or_null(1) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h838485e2f8eb269cE.llvm.1290069140160153612"(ptr noalias noundef nonnull align 8 dereferenceable(16) %4) to label %.noexc27.i unwind label %.loopexit.split-lp.i, !noalias !1367 @@ -9729,7 +9722,7 @@ _ZN11ockam_vault8software25vault_for_secure_channels3aes6AesGen15decrypt_message .lr.ph.i.i.i.i.i: ; preds = %.noexc27.i, %.noexc28.i %167 = phi ptr [ %168, %.noexc28.i ], [ %165, %.noexc27.i ] - store volatile i8 0, ptr %167, align 1, !alias.scope !1391, !noalias !1367 + store volatile i8 0, ptr %167, align 1, !alias.scope !1389, !noalias !1367 fence syncscope("singlethread") seq_cst %168 = invoke noundef align 1 dereferenceable_or_null(1) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h838485e2f8eb269cE.llvm.1290069140160153612"(ptr noalias noundef nonnull align 8 dereferenceable(16) %4) to label %.noexc28.i unwind label %.loopexit.i, !noalias !1367 @@ -9749,7 +9742,7 @@ _ZN11ockam_vault8software25vault_for_secure_channels3aes6AesGen15decrypt_message br label %117 .loopexit15.i: ; preds = %.noexc28.i, %.noexc27.i - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4), !noalias !1384 + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4), !noalias !1382 br label %177 170: ; preds = %158, %131 @@ -9821,8 +9814,8 @@ define { ptr, ptr } @"_ZN198_$LT$ockam_vault..software..vault_for_secure_channel call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %1, i64 24, i1 false) %6 = getelementptr inbounds nuw i8, ptr %3, i64 75 store i8 0, ptr %6, align 1 - %7 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !1394 - %8 = tail call noundef align 8 dereferenceable_or_null(160) ptr @__rust_alloc(i64 noundef range(i64 16, 265) 160, i64 noundef 8) #19, !noalias !1394 + %7 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !1392 + %8 = tail call noundef align 8 dereferenceable_or_null(160) ptr @__rust_alloc(i64 noundef range(i64 16, 265) 160, i64 noundef 8) #19, !noalias !1392 %9 = icmp eq ptr %8, null br i1 %9, label %10, label %"_ZN5alloc5boxed12Box$LT$T$GT$3new17hc2cad052f32d363cE.exit" @@ -9957,9 +9950,9 @@ default.unreachable84: ; preds = %106, %3 .thread82: ; preds = %30, %24, %42, %36 call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %18) %45 = load ptr, ptr @"_ZN198_$LT$ockam_vault..software..vault_for_secure_channels..vault_for_secure_channels..SoftwareVaultForSecureChannels$u20$as$u20$ockam_vault..traits..vault_for_secure_channels..VaultForSecureChannels$GT$22delete_aead_secret_key28_$u7b$$u7b$closure$u7d$$u7d$10__CALLSITE17h07ab5e4a41149645E", align 8, !nonnull !13, !align !81, !noundef !13 - store i64 2, ptr %18, align 8, !alias.scope !1397, !noalias !1400 + store i64 2, ptr %18, align 8, !alias.scope !1395, !noalias !1398 %46 = getelementptr inbounds nuw i8, ptr %18, i64 32 - store ptr %45, ptr %46, align 8, !alias.scope !1397, !noalias !1400 + store ptr %45, ptr %46, align 8, !alias.scope !1395, !noalias !1398 %47 = load atomic i8, ptr @_ZN12tracing_core10dispatcher6EXISTS17ha75096dd2289f006E monotonic, align 1 %.not = icmp eq i8 %47, 0 br i1 %.not, label %50, label %44 @@ -9974,11 +9967,11 @@ default.unreachable84: ; preds = %106, %3 50: ; preds = %.thread82 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %17) %51 = getelementptr inbounds nuw i8, ptr %45, i64 48 - store ptr @anon.5fe3d84f6d257fff72c0f1af51e75b8d.26, ptr %17, align 8, !alias.scope !1402, !noalias !1405 + store ptr @anon.5fe3d84f6d257fff72c0f1af51e75b8d.26, ptr %17, align 8, !alias.scope !1400, !noalias !1403 %52 = getelementptr inbounds nuw i8, ptr %17, i64 8 - store i64 0, ptr %52, align 8, !alias.scope !1402, !noalias !1405 + store i64 0, ptr %52, align 8, !alias.scope !1400, !noalias !1403 %53 = getelementptr inbounds nuw i8, ptr %17, i64 16 - store ptr %51, ptr %53, align 8, !alias.scope !1402, !noalias !1405 + store ptr %51, ptr %53, align 8, !alias.scope !1400, !noalias !1403 %54 = invoke noundef align 8 dereferenceable(40) ptr @_ZN7tracing4span4Span10record_all17h98718504e78d109aE(ptr noalias noundef nonnull readonly align 8 dereferenceable(40) %18, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %17) to label %55 unwind label %48 @@ -10002,11 +9995,11 @@ default.unreachable84: ; preds = %106, %3 %61 = load ptr, ptr @"_ZN198_$LT$ockam_vault..software..vault_for_secure_channels..vault_for_secure_channels..SoftwareVaultForSecureChannels$u20$as$u20$ockam_vault..traits..vault_for_secure_channels..VaultForSecureChannels$GT$22delete_aead_secret_key28_$u7b$$u7b$closure$u7d$$u7d$10__CALLSITE17h07ab5e4a41149645E", align 8, !nonnull !13, !align !81, !noundef !13 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) %62 = getelementptr inbounds nuw i8, ptr %61, i64 48 - store ptr @anon.5fe3d84f6d257fff72c0f1af51e75b8d.26, ptr %19, align 8, !alias.scope !1408, !noalias !1411 + store ptr @anon.5fe3d84f6d257fff72c0f1af51e75b8d.26, ptr %19, align 8, !alias.scope !1406, !noalias !1409 %63 = getelementptr inbounds nuw i8, ptr %19, i64 8 - store i64 0, ptr %63, align 8, !alias.scope !1408, !noalias !1411 + store i64 0, ptr %63, align 8, !alias.scope !1406, !noalias !1409 %64 = getelementptr inbounds nuw i8, ptr %19, i64 16 - store ptr %62, ptr %64, align 8, !alias.scope !1408, !noalias !1411 + store ptr %62, ptr %64, align 8, !alias.scope !1406, !noalias !1409 invoke void @_ZN7tracing4span4Span3new17hedd32398282d0e4eE(ptr noalias noundef nonnull sret({ { i64, [3 x i64] }, ptr }) align 8 captures(none) dereferenceable(40) %1, ptr noalias noundef nonnull readonly align 8 dereferenceable(120) %61, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %19) to label %65 unwind label %58 @@ -10141,7 +10134,7 @@ common.ret: ; preds = %203, %201, %99 %107 = getelementptr inbounds nuw i8, ptr %1, i64 80 call void @llvm.lifetime.start.p0(i64 15, ptr nonnull %.sroa.4) %108 = getelementptr inbounds nuw i8, ptr %1, i64 112 - %109 = load i8, ptr %108, align 8, !range !134, !noalias !1414, !noundef !13 + %109 = load i8, ptr %108, align 8, !range !134, !noalias !1412, !noundef !13 switch i8 %109, label %default.unreachable84 [ i8 0, label %110 i8 1, label %.invoke @@ -10149,27 +10142,27 @@ common.ret: ; preds = %203, %201, %99 ] 110: ; preds = %106 - %111 = load ptr, ptr %107, align 8, !noalias !1414, !nonnull !13, !align !81, !noundef !13 - call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13), !noalias !1414 + %111 = load ptr, ptr %107, align 8, !noalias !1412, !nonnull !13, !align !81, !noundef !13 + call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13), !noalias !1412 %112 = getelementptr inbounds nuw i8, ptr %1, i64 88 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 8 dereferenceable(24) %112, i64 24, i1 false), !noalias !1414 - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12), !noalias !1414 - call void @llvm.lifetime.start.p0(i64 33, ptr nonnull %11), !noalias !1414 - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10), !noalias !1414 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 8 dereferenceable(24) %112, i64 24, i1 false), !noalias !1412 + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12), !noalias !1412 + call void @llvm.lifetime.start.p0(i64 33, ptr nonnull %11), !noalias !1412 + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10), !noalias !1412 %113 = getelementptr inbounds nuw i8, ptr %111, i64 8 - %.val.i = load ptr, ptr %113, align 8, !noalias !1414, !nonnull !13, !noundef !13 + %.val.i = load ptr, ptr %113, align 8, !noalias !1412, !nonnull !13, !noundef !13 %114 = getelementptr inbounds nuw i8, ptr %.val.i, i64 16 - %115 = cmpxchg weak ptr %114, i32 0, i32 1073741823 acquire monotonic, align 4, !noalias !1417 + %115 = cmpxchg weak ptr %114, i32 0, i32 1073741823 acquire monotonic, align 4, !noalias !1415 %.sroa.18.0.in.i.i.i = extractvalue { i32, i1 } %115, 1 br i1 %.sroa.18.0.in.i.i.i, label %.noexc.i, label %116 116: ; preds = %110 invoke void @_ZN3std3sys4unix5locks12futex_rwlock6RwLock15write_contended17h596ab57a11d07e4fE(ptr noundef nonnull align 8 %114) - to label %.noexc.i unwind label %126, !noalias !1414 + to label %.noexc.i unwind label %126, !noalias !1412 .noexc.i: ; preds = %116, %110 %117 = invoke noundef i64 @_ZN4core4sync6atomic11atomic_load17h1654999892c21201E.llvm.18098550234714842923(ptr noundef nonnull @_ZN3std9panicking11panic_count18GLOBAL_PANIC_COUNT17h0c0cb700fd497c9fE, i8 noundef 0) - to label %.noexc18.i unwind label %126, !noalias !1414 + to label %.noexc18.i unwind label %126, !noalias !1412 .noexc18.i: ; preds = %.noexc.i %118 = and i64 %117, 9223372036854775807 @@ -10178,7 +10171,7 @@ common.ret: ; preds = %203, %201, %99 120: ; preds = %.noexc18.i %121 = invoke noundef zeroext i1 @_ZN3std9panicking11panic_count17is_zero_slow_path17h4671fa193704fdaeE() - to label %.noexc19.i unwind label %126, !noalias !1414 + to label %.noexc19.i unwind label %126, !noalias !1412 .noexc19.i: ; preds = %120 %122 = xor i1 %121, true @@ -10189,7 +10182,7 @@ common.ret: ; preds = %203, %201, %99 %.0.i.i.i.i.i = phi i8 [ %123, %.noexc19.i ], [ 0, %.noexc18.i ] %124 = getelementptr inbounds nuw i8, ptr %.val.i, i64 24 %125 = invoke noundef i8 @_ZN4core4sync6atomic11atomic_load17hf9f4aa610696abfeE.llvm.18098550234714842923(ptr noundef nonnull align 1 %124, i8 noundef 0) - to label %128 unwind label %126, !noalias !1414 + to label %128 unwind label %126, !noalias !1412 126: ; preds = %"_ZN3std4sync6rwlock25RwLockWriteGuard$LT$T$GT$3new17h2d72f190dc4572e8E.exit.i.i", %120, %.noexc.i, %116 %127 = landingpad { ptr, i32 } @@ -10201,18 +10194,18 @@ common.ret: ; preds = %203, %201, %99 br i1 %.not.i64, label %136, label %129 129: ; preds = %128 - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9), !noalias !1420 - store ptr %114, ptr %9, align 8, !noalias !1420 + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9), !noalias !1418 + store ptr %114, ptr %9, align 8, !noalias !1418 %130 = getelementptr inbounds nuw i8, ptr %9, i64 8 - store i8 %.0.i.i.i.i.i, ptr %130, align 8, !noalias !1420 + store i8 %.0.i.i.i.i.i, ptr %130, align 8, !noalias !1418 invoke void @_ZN4core6result13unwrap_failed17hed0fccbe07e724fcE(ptr noalias noundef nonnull readonly align 1 @anon.5fe3d84f6d257fff72c0f1af51e75b8d.49.llvm.16095487977111887712, i64 noundef 43, ptr noundef nonnull align 1 %9, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.5fe3d84f6d257fff72c0f1af51e75b8d.52, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.5fe3d84f6d257fff72c0f1af51e75b8d.149) #21 - to label %133 unwind label %131, !noalias !1424 + to label %133 unwind label %131, !noalias !1422 131: ; preds = %129 %132 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr267drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..rwlock..RwLockWriteGuard$LT$alloc..collections..btree..map..BTreeMap$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$C$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$$GT$$GT$17h6741236e65d999acE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %9) #18 - to label %.body21.i unwind label %134, !noalias !1424 + to label %.body21.i unwind label %134, !noalias !1422 133: ; preds = %129 unreachable @@ -10220,80 +10213,80 @@ common.ret: ; preds = %203, %201, %99 134: ; preds = %131 %135 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17hceade526831b1e89E() #20, !noalias !1424 + call void @_ZN4core9panicking16panic_in_cleanup17hceade526831b1e89E() #20, !noalias !1422 unreachable 136: ; preds = %128 - store ptr %114, ptr %10, align 8, !noalias !1414 + store ptr %114, ptr %10, align 8, !noalias !1412 %.fca.1.gep.i = getelementptr inbounds nuw i8, ptr %10, i64 8 - store i8 %.0.i.i.i.i.i, ptr %.fca.1.gep.i, align 8, !noalias !1414 + store i8 %.0.i.i.i.i.i, ptr %.fca.1.gep.i, align 8, !noalias !1412 %137 = getelementptr inbounds nuw i8, ptr %.val.i, i64 32 - call void @llvm.experimental.noalias.scope.decl(metadata !1425) - call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %8), !noalias !1428 + call void @llvm.experimental.noalias.scope.decl(metadata !1423) + call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %8), !noalias !1426 invoke void @"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$12remove_entry17h98b438ef038d2a85E.llvm.16200579503313032053"(ptr noalias noundef nonnull sret({ ptr, [6 x i64] }) align 8 captures(none) dereferenceable(56) %8, ptr noalias noundef nonnull align 8 dereferenceable(24) %137, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %13) - to label %.noexc23.i unwind label %151, !noalias !1414 + to label %.noexc23.i unwind label %151, !noalias !1412 .noexc23.i: ; preds = %136 - %138 = load ptr, ptr %8, align 8, !noalias !1428, !noundef !13 + %138 = load ptr, ptr %8, align 8, !noalias !1426, !noundef !13 %139 = icmp eq ptr %138, null br i1 %139, label %.thread.i, label %141 .thread.i: ; preds = %.noexc23.i - store i8 0, ptr %11, align 1, !alias.scope !1425, !noalias !1431 - call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %8), !noalias !1428 + store i8 0, ptr %11, align 1, !alias.scope !1423, !noalias !1429 + call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %8), !noalias !1426 %140 = getelementptr inbounds nuw i8, ptr %12, i64 1 - store i8 0, ptr %140, align 1, !noalias !1414 - store i8 0, ptr %12, align 8, !noalias !1414 + store i8 0, ptr %140, align 1, !noalias !1412 + store i8 0, ptr %12, align 8, !noalias !1412 br label %"_ZN4core3ptr116drop_in_place$LT$core..option..Option$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$17hf78810b25d9e78d1E.exit.i" 141: ; preds = %.noexc23.i - call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %7), !noalias !1428 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %7, ptr noundef nonnull align 8 dereferenceable(56) %8, i64 56, i1 false), !noalias !1428 + call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %7), !noalias !1426 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %7, ptr noundef nonnull align 8 dereferenceable(56) %8, i64 56, i1 false), !noalias !1426 %142 = getelementptr inbounds nuw i8, ptr %8, i64 24 - call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6), !noalias !1432 + call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6), !noalias !1430 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hebdac3a053a092f8E"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %7) - to label %.noexc24.i unwind label %151, !noalias !1414 + to label %.noexc24.i unwind label %151, !noalias !1412 .noexc24.i: ; preds = %141 %143 = getelementptr inbounds nuw i8, ptr %6, i64 8 - %144 = load i64, ptr %143, align 8, !range !23, !noalias !1432, !noundef !13 + %144 = load i64, ptr %143, align 8, !range !23, !noalias !1430, !noundef !13 %.not.i.i.i.i.i.i.i.i = icmp eq i64 %144, 0 br i1 %.not.i.i.i.i.i.i.i.i, label %153, label %145 145: ; preds = %.noexc24.i %146 = getelementptr inbounds nuw i8, ptr %6, i64 16 - %147 = load i64, ptr %146, align 8, !noalias !1432, !noundef !13 + %147 = load i64, ptr %146, align 8, !noalias !1430, !noundef !13 %148 = icmp eq i64 %147, 0 br i1 %148, label %153, label %149 149: ; preds = %145 - %150 = load ptr, ptr %6, align 8, !noalias !1432, !nonnull !13, !noundef !13 - call void @__rust_dealloc(ptr noundef nonnull %150, i64 noundef %147, i64 noundef %144) #19, !noalias !1445 + %150 = load ptr, ptr %6, align 8, !noalias !1430, !nonnull !13, !noundef !13 + call void @__rust_dealloc(ptr noundef nonnull %150, i64 noundef %147, i64 noundef %144) #19, !noalias !1443 br label %153 151: ; preds = %141, %136 %152 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr229drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$alloc..collections..btree..map..BTreeMap$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$C$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$$GT$17hcdf6c7afaea4cfdeE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %10) #18 - to label %.body21.i unwind label %190, !noalias !1414 + to label %.body21.i unwind label %190, !noalias !1412 153: ; preds = %149, %145, %.noexc24.i - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6), !noalias !1432 - call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %7), !noalias !1428 + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6), !noalias !1430 + call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %7), !noalias !1426 %154 = getelementptr inbounds nuw i8, ptr %11, i64 1 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %154, ptr noundef nonnull align 8 dereferenceable(32) %142, i64 32, i1 false), !noalias !1431 - store i8 1, ptr %11, align 1, !alias.scope !1425, !noalias !1431 - call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %8), !noalias !1428 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %154, ptr noundef nonnull align 8 dereferenceable(32) %142, i64 32, i1 false), !noalias !1429 + store i8 1, ptr %11, align 1, !alias.scope !1423, !noalias !1429 + call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %8), !noalias !1426 %155 = getelementptr inbounds nuw i8, ptr %12, i64 1 - store i8 1, ptr %155, align 1, !noalias !1414 - store i8 0, ptr %12, align 8, !noalias !1414 - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5), !noalias !1446 + store i8 1, ptr %155, align 1, !noalias !1412 + store i8 0, ptr %12, align 8, !noalias !1412 + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5), !noalias !1444 %156 = getelementptr inbounds nuw i8, ptr %11, i64 33 - store ptr %154, ptr %5, align 8, !noalias !1446 + store ptr %154, ptr %5, align 8, !noalias !1444 %157 = getelementptr inbounds nuw i8, ptr %5, i64 8 - store ptr %156, ptr %157, align 8, !noalias !1446 + store ptr %156, ptr %157, align 8, !noalias !1444 %158 = invoke noundef align 1 dereferenceable_or_null(1) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h838485e2f8eb269cE.llvm.1290069140160153612"(ptr noalias noundef nonnull align 8 dereferenceable(16) %5) - to label %.noexc25.i unwind label %.loopexit.split-lp.i, !noalias !1414 + to label %.noexc25.i unwind label %.loopexit.split-lp.i, !noalias !1412 .noexc25.i: ; preds = %153 %159 = icmp eq ptr %158, null @@ -10301,17 +10294,17 @@ common.ret: ; preds = %203, %201, %99 .lr.ph.i.i.i.i.i.i: ; preds = %.noexc25.i, %.noexc26.i %160 = phi ptr [ %161, %.noexc26.i ], [ %158, %.noexc25.i ] - store volatile i8 0, ptr %160, align 1, !alias.scope !1455, !noalias !1414 + store volatile i8 0, ptr %160, align 1, !alias.scope !1453, !noalias !1412 fence syncscope("singlethread") seq_cst %161 = invoke noundef align 1 dereferenceable_or_null(1) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h838485e2f8eb269cE.llvm.1290069140160153612"(ptr noalias noundef nonnull align 8 dereferenceable(16) %5) - to label %.noexc26.i unwind label %.loopexit.i, !noalias !1414 + to label %.noexc26.i unwind label %.loopexit.i, !noalias !1412 .noexc26.i: ; preds = %.lr.ph.i.i.i.i.i.i %162 = icmp eq ptr %161, null br i1 %162, label %"_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE.exit.i.i", label %.lr.ph.i.i.i.i.i.i "_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE.exit.i.i": ; preds = %.noexc26.i, %.noexc25.i - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5), !noalias !1446 + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5), !noalias !1444 br label %"_ZN4core3ptr116drop_in_place$LT$core..option..Option$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$17hf78810b25d9e78d1E.exit.i" .loopexit.i: ; preds = %.lr.ph.i.i.i.i.i.i @@ -10327,19 +10320,19 @@ common.ret: ; preds = %203, %201, %99 163: ; preds = %.loopexit.split-lp.i, %.loopexit.i %lpad.phi.i = phi { ptr, i32 } [ %lpad.loopexit.i, %.loopexit.i ], [ %lpad.loopexit.split-lp.i, %.loopexit.split-lp.i ] invoke void @"_ZN4core3ptr229drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$alloc..collections..btree..map..BTreeMap$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$C$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$$GT$17hcdf6c7afaea4cfdeE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %10) #18 - to label %177 unwind label %190, !noalias !1414 + to label %177 unwind label %190, !noalias !1412 "_ZN4core3ptr116drop_in_place$LT$core..option..Option$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$17hf78810b25d9e78d1E.exit.i": ; preds = %"_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE.exit.i.i", %.thread.i - call void @llvm.experimental.noalias.scope.decl(metadata !1458) - call void @llvm.experimental.noalias.scope.decl(metadata !1461) - %164 = load ptr, ptr %10, align 8, !alias.scope !1464, !noalias !1414, !nonnull !13, !align !81, !noundef !13 - %165 = load i8, ptr %.fca.1.gep.i, align 8, !range !133, !alias.scope !1464, !noalias !1414, !noundef !13 + call void @llvm.experimental.noalias.scope.decl(metadata !1456) + call void @llvm.experimental.noalias.scope.decl(metadata !1459) + %164 = load ptr, ptr %10, align 8, !alias.scope !1462, !noalias !1412, !nonnull !13, !align !81, !noundef !13 + %165 = load i8, ptr %.fca.1.gep.i, align 8, !range !133, !alias.scope !1462, !noalias !1412, !noundef !13 %166 = trunc nuw i8 %165 to i1 br i1 %166, label %_ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.9153531805506995525.exit.thread.i.i.i, label %167 167: ; preds = %"_ZN4core3ptr116drop_in_place$LT$core..option..Option$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$17hf78810b25d9e78d1E.exit.i" %168 = invoke noundef i64 @_ZN4core4sync6atomic11atomic_load17h1654999892c21201E.llvm.9153531805506995525(ptr noundef nonnull @_ZN3std9panicking11panic_count18GLOBAL_PANIC_COUNT17h0c0cb700fd497c9fE, i8 noundef 0) - to label %.noexc27.i unwind label %178, !noalias !1414 + to label %.noexc27.i unwind label %178, !noalias !1412 .noexc27.i: ; preds = %167 %169 = and i64 %168, 9223372036854775807 @@ -10348,13 +10341,13 @@ common.ret: ; preds = %203, %201, %99 _ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.9153531805506995525.exit.i.i.i: ; preds = %.noexc27.i %171 = invoke noundef zeroext i1 @_ZN3std9panicking11panic_count17is_zero_slow_path17h4671fa193704fdaeE() - to label %.noexc28.i unwind label %178, !noalias !1414 + to label %.noexc28.i unwind label %178, !noalias !1412 .noexc28.i: ; preds = %_ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.9153531805506995525.exit.i.i.i br i1 %171, label %_ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.9153531805506995525.exit.thread.i.i.i, label %174 _ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.9153531805506995525.exit.thread.i.i.i: ; preds = %174, %.noexc28.i, %.noexc27.i, %"_ZN4core3ptr116drop_in_place$LT$core..option..Option$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$17hf78810b25d9e78d1E.exit.i" - %172 = atomicrmw sub ptr %164, i32 1073741823 release, align 4, !noalias !1465 + %172 = atomicrmw sub ptr %164, i32 1073741823 release, align 4, !noalias !1463 %173 = add i32 %172, -1073741823 %or.cond.i.i.i = icmp ult i32 %173, 1073741824 br i1 %or.cond.i.i.i, label %"_ZN4core3ptr229drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$alloc..collections..btree..map..BTreeMap$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$C$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$$GT$17hcdf6c7afaea4cfdeE.exit.i", label %176 @@ -10362,18 +10355,18 @@ _ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.9153531805506995525.exit.th 174: ; preds = %.noexc28.i %175 = getelementptr inbounds nuw i8, ptr %164, i64 8 invoke void @_ZN4core4sync6atomic12atomic_store17hedbf084fd6b9bc1eE.llvm.9153531805506995525(ptr noundef nonnull %175, i8 noundef 1, i8 noundef 0) - to label %_ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.9153531805506995525.exit.thread.i.i.i unwind label %178, !noalias !1414 + to label %_ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.9153531805506995525.exit.thread.i.i.i unwind label %178, !noalias !1412 176: ; preds = %_ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.9153531805506995525.exit.thread.i.i.i invoke void @_ZN3std3sys4unix5locks12futex_rwlock6RwLock22wake_writer_or_readers17h18502b593df6c008E(ptr noundef nonnull align 4 %164, i32 noundef %173) - to label %"_ZN4core3ptr229drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$alloc..collections..btree..map..BTreeMap$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$C$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$$GT$17hcdf6c7afaea4cfdeE.exit.i" unwind label %178, !noalias !1414 + to label %"_ZN4core3ptr229drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$alloc..collections..btree..map..BTreeMap$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$C$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$$GT$17hcdf6c7afaea4cfdeE.exit.i" unwind label %178, !noalias !1412 177: ; preds = %178, %163 %.pn11.i = phi { ptr, i32 } [ %179, %178 ], [ %lpad.phi.i, %163 ] - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10), !noalias !1414 - call void @llvm.lifetime.end.p0(i64 33, ptr nonnull %11), !noalias !1414 + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10), !noalias !1412 + call void @llvm.lifetime.end.p0(i64 33, ptr nonnull %11), !noalias !1412 invoke fastcc void @"_ZN4core3ptr80drop_in_place$LT$core..result..Result$LT$bool$C$ockam_core..error..Error$GT$$GT$17ha0d3ed782b962206E"(ptr noalias noundef align 8 dereferenceable(16) %12) #18 - to label %192 unwind label %190, !noalias !1414 + to label %192 unwind label %190, !noalias !1412 178: ; preds = %176, %174, %_ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.9153531805506995525.exit.i.i.i, %167 %179 = landingpad { ptr, i32 } @@ -10381,31 +10374,31 @@ _ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.9153531805506995525.exit.th br label %177 "_ZN4core3ptr229drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$alloc..collections..btree..map..BTreeMap$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$C$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$$GT$17hcdf6c7afaea4cfdeE.exit.i": ; preds = %176, %_ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.9153531805506995525.exit.thread.i.i.i - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10), !noalias !1414 - call void @llvm.lifetime.end.p0(i64 33, ptr nonnull %11), !noalias !1414 - %.sroa.079.0.copyload = load i8, ptr %12, align 8, !noalias !1414 + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10), !noalias !1412 + call void @llvm.lifetime.end.p0(i64 33, ptr nonnull %11), !noalias !1412 + %.sroa.079.0.copyload = load i8, ptr %12, align 8, !noalias !1412 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %12, i64 1 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(15) %.sroa.4, ptr noundef nonnull align 1 dereferenceable(15) %.sroa.4.0..sroa_idx, i64 15, i1 false), !noalias !1414 - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12), !noalias !1414 - call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4), !noalias !1466 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(15) %.sroa.4, ptr noundef nonnull align 1 dereferenceable(15) %.sroa.4.0..sroa_idx, i64 15, i1 false), !noalias !1412 + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12), !noalias !1412 + call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4), !noalias !1464 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hebdac3a053a092f8E"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %13) - to label %.noexc31.i unwind label %188, !noalias !1414 + to label %.noexc31.i unwind label %188, !noalias !1412 .noexc31.i: ; preds = %"_ZN4core3ptr229drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$alloc..collections..btree..map..BTreeMap$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$C$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$$GT$17hcdf6c7afaea4cfdeE.exit.i" %180 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %181 = load i64, ptr %180, align 8, !range !23, !noalias !1466, !noundef !13 + %181 = load i64, ptr %180, align 8, !range !23, !noalias !1464, !noundef !13 %.not.i.i.i.i.i.i.i = icmp eq i64 %181, 0 br i1 %.not.i.i.i.i.i.i.i, label %199, label %182 182: ; preds = %.noexc31.i %183 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %184 = load i64, ptr %183, align 8, !noalias !1466, !noundef !13 + %184 = load i64, ptr %183, align 8, !noalias !1464, !noundef !13 %185 = icmp eq i64 %184, 0 br i1 %185, label %199, label %186 186: ; preds = %182 - %187 = load ptr, ptr %4, align 8, !noalias !1466, !nonnull !13, !noundef !13 - call void @__rust_dealloc(ptr noundef nonnull %187, i64 noundef %184, i64 noundef %181) #19, !noalias !1414 + %187 = load ptr, ptr %4, align 8, !noalias !1464, !nonnull !13, !noundef !13 + call void @__rust_dealloc(ptr noundef nonnull %187, i64 noundef %184, i64 noundef %181) #19, !noalias !1412 br label %199 188: ; preds = %"_ZN4core3ptr229drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$alloc..collections..btree..map..BTreeMap$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$C$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$$GT$17hcdf6c7afaea4cfdeE.exit.i" @@ -10416,25 +10409,25 @@ _ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.9153531805506995525.exit.th 190: ; preds = %192, %177, %163, %151 %191 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17hceade526831b1e89E() #20, !noalias !1414 + call void @_ZN4core9panicking16panic_in_cleanup17hceade526831b1e89E() #20, !noalias !1412 unreachable 192: ; preds = %.body21.i, %177 %.pn11.pn.i = phi { ptr, i32 } [ %.pn11.i, %177 ], [ %.pn8.pn.i, %.body21.i ] - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12), !noalias !1414 + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12), !noalias !1412 invoke void @"_ZN4core3ptr68drop_in_place$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$GT$17ha48cc83956a07441E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %13) #18 - to label %193 unwind label %190, !noalias !1414 + to label %193 unwind label %190, !noalias !1412 .body21.i: ; preds = %151, %131, %126 %.pn8.pn.i = phi { ptr, i32 } [ %152, %151 ], [ %127, %126 ], [ %132, %131 ] - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10), !noalias !1414 - call void @llvm.lifetime.end.p0(i64 33, ptr nonnull %11), !noalias !1414 + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10), !noalias !1412 + call void @llvm.lifetime.end.p0(i64 33, ptr nonnull %11), !noalias !1412 br label %192 193: ; preds = %192, %188 %.pn14.i = phi { ptr, i32 } [ %189, %188 ], [ %.pn11.pn.i, %192 ] - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13), !noalias !1414 - store i8 2, ptr %108, align 8, !noalias !1414 + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13), !noalias !1412 + store i8 2, ptr %108, align 8, !noalias !1412 br label %.body65 194: ; preds = %106 @@ -10455,10 +10448,10 @@ _ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.9153531805506995525.exit.th br label %.body65 199: ; preds = %186, %182, %.noexc31.i - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !1466 - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13), !noalias !1414 + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !1464 + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13), !noalias !1412 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(15) %.sroa.7, ptr noundef nonnull align 1 dereferenceable(15) %.sroa.4, i64 15, i1 false) - store i8 1, ptr %108, align 8, !noalias !1414 + store i8 1, ptr %108, align 8, !noalias !1412 call void @llvm.lifetime.end.p0(i64 15, ptr nonnull %.sroa.4) %200 = icmp eq i8 %.sroa.079.0.copyload, 2 br i1 %200, label %201, label %202 @@ -12348,104 +12341,102 @@ attributes #21 = { noreturn } !1375 = distinct !{!1375, !1372, !"_ZN11ockam_vault8software25vault_for_secure_channels3aes6AesGen15decrypt_message17hfa71a56ca12eb69cE: argument 3"} !1376 = distinct !{!1376, !1372, !"_ZN11ockam_vault8software25vault_for_secure_channels3aes6AesGen15decrypt_message17hfa71a56ca12eb69cE: argument 4"} !1377 = !{!1378} -!1378 = distinct !{!1378, !1379, !"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17ha574bc84039e05f6E.llvm.10553303005396541960: argument 0"} +!1378 = distinct !{!1378, !1379, !"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17ha574bc84039e05f6E.llvm.10553303005396541960: argument 1"} !1379 = distinct !{!1379, !"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17ha574bc84039e05f6E.llvm.10553303005396541960"} -!1380 = !{!1381} -!1381 = distinct !{!1381, !1379, !"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17ha574bc84039e05f6E.llvm.10553303005396541960: argument 1"} -!1382 = !{!1378, !1371, !1373, !1374, !1375, !1376, !1368} -!1383 = !{!1378, !1381} -!1384 = !{!1385, !1387, !1389, !1368} -!1385 = distinct !{!1385, !1386, !"_ZN59_$LT$$u5b$Z$u3b$$u20$N$u5d$$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h91ff1e532593904cE: argument 0"} -!1386 = distinct !{!1386, !"_ZN59_$LT$$u5b$Z$u3b$$u20$N$u5d$$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h91ff1e532593904cE"} -!1387 = distinct !{!1387, !1388, !"_ZN109_$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6599864979acc3b1E: argument 0"} -!1388 = distinct !{!1388, !"_ZN109_$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6599864979acc3b1E"} -!1389 = distinct !{!1389, !1390, !"_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE: argument 0"} -!1390 = distinct !{!1390, !"_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE"} -!1391 = !{!1392} -!1392 = distinct !{!1392, !1393, !"_ZN38_$LT$Z$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h62b40a9d8a347e36E.llvm.1290069140160153612: argument 0"} -!1393 = distinct !{!1393, !"_ZN38_$LT$Z$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h62b40a9d8a347e36E.llvm.1290069140160153612"} -!1394 = !{!1395} -!1395 = distinct !{!1395, !1396, !"_ZN5alloc5boxed12Box$LT$T$GT$3new17hc2cad052f32d363cE: argument 0"} -!1396 = distinct !{!1396, !"_ZN5alloc5boxed12Box$LT$T$GT$3new17hc2cad052f32d363cE"} -!1397 = !{!1398} -!1398 = distinct !{!1398, !1399, !"_ZN7tracing15__macro_support15__disabled_span17h3cacbc38be70021fE: argument 0"} -!1399 = distinct !{!1399, !"_ZN7tracing15__macro_support15__disabled_span17h3cacbc38be70021fE"} +!1380 = !{!1381, !1371, !1373, !1374, !1375, !1376, !1368} +!1381 = distinct !{!1381, !1379, !"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17ha574bc84039e05f6E.llvm.10553303005396541960: argument 0"} +!1382 = !{!1383, !1385, !1387, !1368} +!1383 = distinct !{!1383, !1384, !"_ZN59_$LT$$u5b$Z$u3b$$u20$N$u5d$$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h91ff1e532593904cE: argument 0"} +!1384 = distinct !{!1384, !"_ZN59_$LT$$u5b$Z$u3b$$u20$N$u5d$$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h91ff1e532593904cE"} +!1385 = distinct !{!1385, !1386, !"_ZN109_$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6599864979acc3b1E: argument 0"} +!1386 = distinct !{!1386, !"_ZN109_$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6599864979acc3b1E"} +!1387 = distinct !{!1387, !1388, !"_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE: argument 0"} +!1388 = distinct !{!1388, !"_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE"} +!1389 = !{!1390} +!1390 = distinct !{!1390, !1391, !"_ZN38_$LT$Z$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h62b40a9d8a347e36E.llvm.1290069140160153612: argument 0"} +!1391 = distinct !{!1391, !"_ZN38_$LT$Z$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h62b40a9d8a347e36E.llvm.1290069140160153612"} +!1392 = !{!1393} +!1393 = distinct !{!1393, !1394, !"_ZN5alloc5boxed12Box$LT$T$GT$3new17hc2cad052f32d363cE: argument 0"} +!1394 = distinct !{!1394, !"_ZN5alloc5boxed12Box$LT$T$GT$3new17hc2cad052f32d363cE"} +!1395 = !{!1396} +!1396 = distinct !{!1396, !1397, !"_ZN7tracing15__macro_support15__disabled_span17h3cacbc38be70021fE: argument 0"} +!1397 = distinct !{!1397, !"_ZN7tracing15__macro_support15__disabled_span17h3cacbc38be70021fE"} +!1398 = !{!1399} +!1399 = distinct !{!1399, !1397, !"_ZN7tracing15__macro_support15__disabled_span17h3cacbc38be70021fE: argument 1"} !1400 = !{!1401} -!1401 = distinct !{!1401, !1399, !"_ZN7tracing15__macro_support15__disabled_span17h3cacbc38be70021fE: argument 1"} -!1402 = !{!1403} -!1403 = distinct !{!1403, !1404, !"_ZN12tracing_core5field8FieldSet9value_set17h8c289b86f8c3d3e1E: argument 0"} -!1404 = distinct !{!1404, !"_ZN12tracing_core5field8FieldSet9value_set17h8c289b86f8c3d3e1E"} -!1405 = !{!1406, !1407} -!1406 = distinct !{!1406, !1404, !"_ZN12tracing_core5field8FieldSet9value_set17h8c289b86f8c3d3e1E: argument 1"} -!1407 = distinct !{!1407, !1404, !"_ZN12tracing_core5field8FieldSet9value_set17h8c289b86f8c3d3e1E: argument 2"} -!1408 = !{!1409} -!1409 = distinct !{!1409, !1410, !"_ZN12tracing_core5field8FieldSet9value_set17h8c289b86f8c3d3e1E: argument 0"} -!1410 = distinct !{!1410, !"_ZN12tracing_core5field8FieldSet9value_set17h8c289b86f8c3d3e1E"} -!1411 = !{!1412, !1413} -!1412 = distinct !{!1412, !1410, !"_ZN12tracing_core5field8FieldSet9value_set17h8c289b86f8c3d3e1E: argument 1"} -!1413 = distinct !{!1413, !1410, !"_ZN12tracing_core5field8FieldSet9value_set17h8c289b86f8c3d3e1E: argument 2"} -!1414 = !{!1415} -!1415 = distinct !{!1415, !1416, !"_ZN198_$LT$ockam_vault..software..vault_for_secure_channels..vault_for_secure_channels..SoftwareVaultForSecureChannels$u20$as$u20$ockam_vault..traits..vault_for_secure_channels..VaultForSecureChannels$GT$22delete_aead_secret_key28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17haa8661ec67423c87E: argument 0"} -!1416 = distinct !{!1416, !"_ZN198_$LT$ockam_vault..software..vault_for_secure_channels..vault_for_secure_channels..SoftwareVaultForSecureChannels$u20$as$u20$ockam_vault..traits..vault_for_secure_channels..VaultForSecureChannels$GT$22delete_aead_secret_key28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17haa8661ec67423c87E"} -!1417 = !{!1418, !1415} -!1418 = distinct !{!1418, !1419, !"_ZN3std4sync6rwlock15RwLock$LT$T$GT$5write17h0cb7a9d68be70b0bE: argument 0"} -!1419 = distinct !{!1419, !"_ZN3std4sync6rwlock15RwLock$LT$T$GT$5write17h0cb7a9d68be70b0bE"} -!1420 = !{!1421, !1423, !1415} -!1421 = distinct !{!1421, !1422, !"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17ha0d8a8e584711fbcE: argument 0"} -!1422 = distinct !{!1422, !"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17ha0d8a8e584711fbcE"} -!1423 = distinct !{!1423, !1422, !"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17ha0d8a8e584711fbcE: argument 1"} -!1424 = !{!1421, !1415} -!1425 = !{!1426} -!1426 = distinct !{!1426, !1427, !"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6remove17h7c402ba60af5a57aE: argument 0"} -!1427 = distinct !{!1427, !"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6remove17h7c402ba60af5a57aE"} -!1428 = !{!1426, !1429, !1430, !1415} -!1429 = distinct !{!1429, !1427, !"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6remove17h7c402ba60af5a57aE: argument 1"} -!1430 = distinct !{!1430, !1427, !"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6remove17h7c402ba60af5a57aE: argument 2"} -!1431 = !{!1429, !1430, !1415} -!1432 = !{!1433, !1435, !1437, !1439, !1441, !1443, !1426, !1429, !1430, !1415} -!1433 = distinct !{!1433, !1434, !"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h381b1b38aed2f732E.llvm.9153531805506995525: argument 0"} -!1434 = distinct !{!1434, !"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h381b1b38aed2f732E.llvm.9153531805506995525"} -!1435 = distinct !{!1435, !1436, !"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17hf38ac44a865e42b2E: argument 0"} -!1436 = distinct !{!1436, !"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17hf38ac44a865e42b2E"} -!1437 = distinct !{!1437, !1438, !"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hceabcfa060b47853E: argument 0"} -!1438 = distinct !{!1438, !"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hceabcfa060b47853E"} -!1439 = distinct !{!1439, !1440, !"_ZN4core3ptr64drop_in_place$LT$ockam_vault..types..secrets..HandleToSecret$GT$17h0cac01d31fae2c14E: argument 0"} -!1440 = distinct !{!1440, !"_ZN4core3ptr64drop_in_place$LT$ockam_vault..types..secrets..HandleToSecret$GT$17h0cac01d31fae2c14E"} -!1441 = distinct !{!1441, !1442, !"_ZN4core3ptr73drop_in_place$LT$ockam_vault..types..hashes..Aes256GcmSecretKeyHandle$GT$17h4eeef3c455334963E.llvm.9153531805506995525: argument 0"} -!1442 = distinct !{!1442, !"_ZN4core3ptr73drop_in_place$LT$ockam_vault..types..hashes..Aes256GcmSecretKeyHandle$GT$17h4eeef3c455334963E.llvm.9153531805506995525"} -!1443 = distinct !{!1443, !1444, !"_ZN4core3ptr68drop_in_place$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$GT$17ha48cc83956a07441E: argument 0"} -!1444 = distinct !{!1444, !"_ZN4core3ptr68drop_in_place$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$GT$17ha48cc83956a07441E"} -!1445 = !{!1426, !1415} -!1446 = !{!1447, !1449, !1451, !1453, !1415} -!1447 = distinct !{!1447, !1448, !"_ZN59_$LT$$u5b$Z$u3b$$u20$N$u5d$$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h91ff1e532593904cE: argument 0"} -!1448 = distinct !{!1448, !"_ZN59_$LT$$u5b$Z$u3b$$u20$N$u5d$$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h91ff1e532593904cE"} -!1449 = distinct !{!1449, !1450, !"_ZN109_$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6599864979acc3b1E: argument 0"} -!1450 = distinct !{!1450, !"_ZN109_$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6599864979acc3b1E"} -!1451 = distinct !{!1451, !1452, !"_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE: argument 0"} -!1452 = distinct !{!1452, !"_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE"} -!1453 = distinct !{!1453, !1454, !"_ZN4core3ptr116drop_in_place$LT$core..option..Option$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$17hf78810b25d9e78d1E: argument 0"} -!1454 = distinct !{!1454, !"_ZN4core3ptr116drop_in_place$LT$core..option..Option$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$17hf78810b25d9e78d1E"} -!1455 = !{!1456} -!1456 = distinct !{!1456, !1457, !"_ZN38_$LT$Z$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h62b40a9d8a347e36E.llvm.1290069140160153612: argument 0"} -!1457 = distinct !{!1457, !"_ZN38_$LT$Z$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h62b40a9d8a347e36E.llvm.1290069140160153612"} -!1458 = !{!1459} -!1459 = distinct !{!1459, !1460, !"_ZN4core3ptr229drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$alloc..collections..btree..map..BTreeMap$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$C$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$$GT$17hcdf6c7afaea4cfdeE: argument 0"} -!1460 = distinct !{!1460, !"_ZN4core3ptr229drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$alloc..collections..btree..map..BTreeMap$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$C$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$$GT$17hcdf6c7afaea4cfdeE"} -!1461 = !{!1462} -!1462 = distinct !{!1462, !1463, !"_ZN86_$LT$std..sync..rwlock..RwLockWriteGuard$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h58b19a3403fd45a7E.llvm.9153531805506995525: argument 0"} -!1463 = distinct !{!1463, !"_ZN86_$LT$std..sync..rwlock..RwLockWriteGuard$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h58b19a3403fd45a7E.llvm.9153531805506995525"} -!1464 = !{!1462, !1459} -!1465 = !{!1462, !1459, !1415} -!1466 = !{!1467, !1469, !1471, !1473, !1475, !1477, !1415} -!1467 = distinct !{!1467, !1468, !"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h381b1b38aed2f732E.llvm.9153531805506995525: argument 0"} -!1468 = distinct !{!1468, !"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h381b1b38aed2f732E.llvm.9153531805506995525"} -!1469 = distinct !{!1469, !1470, !"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17hf38ac44a865e42b2E: argument 0"} -!1470 = distinct !{!1470, !"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17hf38ac44a865e42b2E"} -!1471 = distinct !{!1471, !1472, !"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hceabcfa060b47853E: argument 0"} -!1472 = distinct !{!1472, !"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hceabcfa060b47853E"} -!1473 = distinct !{!1473, !1474, !"_ZN4core3ptr64drop_in_place$LT$ockam_vault..types..secrets..HandleToSecret$GT$17h0cac01d31fae2c14E: argument 0"} -!1474 = distinct !{!1474, !"_ZN4core3ptr64drop_in_place$LT$ockam_vault..types..secrets..HandleToSecret$GT$17h0cac01d31fae2c14E"} -!1475 = distinct !{!1475, !1476, !"_ZN4core3ptr73drop_in_place$LT$ockam_vault..types..hashes..Aes256GcmSecretKeyHandle$GT$17h4eeef3c455334963E.llvm.9153531805506995525: argument 0"} -!1476 = distinct !{!1476, !"_ZN4core3ptr73drop_in_place$LT$ockam_vault..types..hashes..Aes256GcmSecretKeyHandle$GT$17h4eeef3c455334963E.llvm.9153531805506995525"} -!1477 = distinct !{!1477, !1478, !"_ZN4core3ptr68drop_in_place$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$GT$17ha48cc83956a07441E: argument 0"} -!1478 = distinct !{!1478, !"_ZN4core3ptr68drop_in_place$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$GT$17ha48cc83956a07441E"} +!1401 = distinct !{!1401, !1402, !"_ZN12tracing_core5field8FieldSet9value_set17h8c289b86f8c3d3e1E: argument 0"} +!1402 = distinct !{!1402, !"_ZN12tracing_core5field8FieldSet9value_set17h8c289b86f8c3d3e1E"} +!1403 = !{!1404, !1405} +!1404 = distinct !{!1404, !1402, !"_ZN12tracing_core5field8FieldSet9value_set17h8c289b86f8c3d3e1E: argument 1"} +!1405 = distinct !{!1405, !1402, !"_ZN12tracing_core5field8FieldSet9value_set17h8c289b86f8c3d3e1E: argument 2"} +!1406 = !{!1407} +!1407 = distinct !{!1407, !1408, !"_ZN12tracing_core5field8FieldSet9value_set17h8c289b86f8c3d3e1E: argument 0"} +!1408 = distinct !{!1408, !"_ZN12tracing_core5field8FieldSet9value_set17h8c289b86f8c3d3e1E"} +!1409 = !{!1410, !1411} +!1410 = distinct !{!1410, !1408, !"_ZN12tracing_core5field8FieldSet9value_set17h8c289b86f8c3d3e1E: argument 1"} +!1411 = distinct !{!1411, !1408, !"_ZN12tracing_core5field8FieldSet9value_set17h8c289b86f8c3d3e1E: argument 2"} +!1412 = !{!1413} +!1413 = distinct !{!1413, !1414, !"_ZN198_$LT$ockam_vault..software..vault_for_secure_channels..vault_for_secure_channels..SoftwareVaultForSecureChannels$u20$as$u20$ockam_vault..traits..vault_for_secure_channels..VaultForSecureChannels$GT$22delete_aead_secret_key28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17haa8661ec67423c87E: argument 0"} +!1414 = distinct !{!1414, !"_ZN198_$LT$ockam_vault..software..vault_for_secure_channels..vault_for_secure_channels..SoftwareVaultForSecureChannels$u20$as$u20$ockam_vault..traits..vault_for_secure_channels..VaultForSecureChannels$GT$22delete_aead_secret_key28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17haa8661ec67423c87E"} +!1415 = !{!1416, !1413} +!1416 = distinct !{!1416, !1417, !"_ZN3std4sync6rwlock15RwLock$LT$T$GT$5write17h0cb7a9d68be70b0bE: argument 0"} +!1417 = distinct !{!1417, !"_ZN3std4sync6rwlock15RwLock$LT$T$GT$5write17h0cb7a9d68be70b0bE"} +!1418 = !{!1419, !1421, !1413} +!1419 = distinct !{!1419, !1420, !"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17ha0d8a8e584711fbcE: argument 0"} +!1420 = distinct !{!1420, !"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17ha0d8a8e584711fbcE"} +!1421 = distinct !{!1421, !1420, !"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17ha0d8a8e584711fbcE: argument 1"} +!1422 = !{!1419, !1413} +!1423 = !{!1424} +!1424 = distinct !{!1424, !1425, !"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6remove17h7c402ba60af5a57aE: argument 0"} +!1425 = distinct !{!1425, !"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6remove17h7c402ba60af5a57aE"} +!1426 = !{!1424, !1427, !1428, !1413} +!1427 = distinct !{!1427, !1425, !"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6remove17h7c402ba60af5a57aE: argument 1"} +!1428 = distinct !{!1428, !1425, !"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6remove17h7c402ba60af5a57aE: argument 2"} +!1429 = !{!1427, !1428, !1413} +!1430 = !{!1431, !1433, !1435, !1437, !1439, !1441, !1424, !1427, !1428, !1413} +!1431 = distinct !{!1431, !1432, !"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h381b1b38aed2f732E.llvm.9153531805506995525: argument 0"} +!1432 = distinct !{!1432, !"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h381b1b38aed2f732E.llvm.9153531805506995525"} +!1433 = distinct !{!1433, !1434, !"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17hf38ac44a865e42b2E: argument 0"} +!1434 = distinct !{!1434, !"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17hf38ac44a865e42b2E"} +!1435 = distinct !{!1435, !1436, !"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hceabcfa060b47853E: argument 0"} +!1436 = distinct !{!1436, !"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hceabcfa060b47853E"} +!1437 = distinct !{!1437, !1438, !"_ZN4core3ptr64drop_in_place$LT$ockam_vault..types..secrets..HandleToSecret$GT$17h0cac01d31fae2c14E: argument 0"} +!1438 = distinct !{!1438, !"_ZN4core3ptr64drop_in_place$LT$ockam_vault..types..secrets..HandleToSecret$GT$17h0cac01d31fae2c14E"} +!1439 = distinct !{!1439, !1440, !"_ZN4core3ptr73drop_in_place$LT$ockam_vault..types..hashes..Aes256GcmSecretKeyHandle$GT$17h4eeef3c455334963E.llvm.9153531805506995525: argument 0"} +!1440 = distinct !{!1440, !"_ZN4core3ptr73drop_in_place$LT$ockam_vault..types..hashes..Aes256GcmSecretKeyHandle$GT$17h4eeef3c455334963E.llvm.9153531805506995525"} +!1441 = distinct !{!1441, !1442, !"_ZN4core3ptr68drop_in_place$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$GT$17ha48cc83956a07441E: argument 0"} +!1442 = distinct !{!1442, !"_ZN4core3ptr68drop_in_place$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$GT$17ha48cc83956a07441E"} +!1443 = !{!1424, !1413} +!1444 = !{!1445, !1447, !1449, !1451, !1413} +!1445 = distinct !{!1445, !1446, !"_ZN59_$LT$$u5b$Z$u3b$$u20$N$u5d$$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h91ff1e532593904cE: argument 0"} +!1446 = distinct !{!1446, !"_ZN59_$LT$$u5b$Z$u3b$$u20$N$u5d$$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h91ff1e532593904cE"} +!1447 = distinct !{!1447, !1448, !"_ZN109_$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6599864979acc3b1E: argument 0"} +!1448 = distinct !{!1448, !"_ZN109_$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6599864979acc3b1E"} +!1449 = distinct !{!1449, !1450, !"_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE: argument 0"} +!1450 = distinct !{!1450, !"_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE"} +!1451 = distinct !{!1451, !1452, !"_ZN4core3ptr116drop_in_place$LT$core..option..Option$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$17hf78810b25d9e78d1E: argument 0"} +!1452 = distinct !{!1452, !"_ZN4core3ptr116drop_in_place$LT$core..option..Option$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$17hf78810b25d9e78d1E"} +!1453 = !{!1454} +!1454 = distinct !{!1454, !1455, !"_ZN38_$LT$Z$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h62b40a9d8a347e36E.llvm.1290069140160153612: argument 0"} +!1455 = distinct !{!1455, !"_ZN38_$LT$Z$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h62b40a9d8a347e36E.llvm.1290069140160153612"} +!1456 = !{!1457} +!1457 = distinct !{!1457, !1458, !"_ZN4core3ptr229drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$alloc..collections..btree..map..BTreeMap$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$C$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$$GT$17hcdf6c7afaea4cfdeE: argument 0"} +!1458 = distinct !{!1458, !"_ZN4core3ptr229drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$alloc..collections..btree..map..BTreeMap$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$C$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$$GT$17hcdf6c7afaea4cfdeE"} +!1459 = !{!1460} +!1460 = distinct !{!1460, !1461, !"_ZN86_$LT$std..sync..rwlock..RwLockWriteGuard$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h58b19a3403fd45a7E.llvm.9153531805506995525: argument 0"} +!1461 = distinct !{!1461, !"_ZN86_$LT$std..sync..rwlock..RwLockWriteGuard$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h58b19a3403fd45a7E.llvm.9153531805506995525"} +!1462 = !{!1460, !1457} +!1463 = !{!1460, !1457, !1413} +!1464 = !{!1465, !1467, !1469, !1471, !1473, !1475, !1413} +!1465 = distinct !{!1465, !1466, !"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h381b1b38aed2f732E.llvm.9153531805506995525: argument 0"} +!1466 = distinct !{!1466, !"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h381b1b38aed2f732E.llvm.9153531805506995525"} +!1467 = distinct !{!1467, !1468, !"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17hf38ac44a865e42b2E: argument 0"} +!1468 = distinct !{!1468, !"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17hf38ac44a865e42b2E"} +!1469 = distinct !{!1469, !1470, !"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hceabcfa060b47853E: argument 0"} +!1470 = distinct !{!1470, !"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hceabcfa060b47853E"} +!1471 = distinct !{!1471, !1472, !"_ZN4core3ptr64drop_in_place$LT$ockam_vault..types..secrets..HandleToSecret$GT$17h0cac01d31fae2c14E: argument 0"} +!1472 = distinct !{!1472, !"_ZN4core3ptr64drop_in_place$LT$ockam_vault..types..secrets..HandleToSecret$GT$17h0cac01d31fae2c14E"} +!1473 = distinct !{!1473, !1474, !"_ZN4core3ptr73drop_in_place$LT$ockam_vault..types..hashes..Aes256GcmSecretKeyHandle$GT$17h4eeef3c455334963E.llvm.9153531805506995525: argument 0"} +!1474 = distinct !{!1474, !"_ZN4core3ptr73drop_in_place$LT$ockam_vault..types..hashes..Aes256GcmSecretKeyHandle$GT$17h4eeef3c455334963E.llvm.9153531805506995525"} +!1475 = distinct !{!1475, !1476, !"_ZN4core3ptr68drop_in_place$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$GT$17ha48cc83956a07441E: argument 0"} +!1476 = distinct !{!1476, !"_ZN4core3ptr68drop_in_place$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$GT$17ha48cc83956a07441E"} diff --git a/bench/ockam-rs/optimized/4o6a2p97oy1nlemw.ll b/bench/ockam-rs/optimized/4o6a2p97oy1nlemw.ll index f91155f6be3..70ef9203ced 100644 --- a/bench/ockam-rs/optimized/4o6a2p97oy1nlemw.ll +++ b/bench/ockam-rs/optimized/4o6a2p97oy1nlemw.ll @@ -9268,24 +9268,17 @@ common.ret: ; preds = %29, %13 .noexc: ; preds = %38 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !1383 - call void @llvm.experimental.noalias.scope.decl(metadata !1390) - %52 = load ptr, ptr %6, align 8, !alias.scope !1393, !noalias !1395, !noundef !5 + %52 = load ptr, ptr %6, align 8, !alias.scope !1390, !noalias !1393, !noundef !5 %53 = icmp eq ptr %52, null br i1 %53, label %"_ZN11ockam_vault5error112_$LT$impl$u20$core..convert..From$LT$ockam_vault..error..VaultError$GT$$u20$for$u20$ockam_core..error..Error$GT$4from17h2c44bd1dbd5b3fdbE.exit.i", label %54 54: ; preds = %.noexc %.sroa.58.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %6, i64 8 - %.sroa.58.0.copyload.i = load i8, ptr %.sroa.58.0..sroa_idx.i, align 8, !alias.scope !1396, !noalias !1383 - %.sroa.8.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %6, i64 9 - %.sroa.3.i.sroa.0.0.copyload = load i56, ptr %.sroa.8.0..sroa_idx.i, align 1, !noalias !1383 + %.sroa.58.0.copyload.i = load i64, ptr %.sroa.58.0..sroa_idx.i, align 8, !noalias !1383 %.sroa.3.i.sroa.4.0..sroa.8.0..sroa_idx.i.sroa_idx = getelementptr inbounds nuw i8, ptr %6, i64 16 %.sroa.3.i.sroa.4.0.copyload = load i64, ptr %.sroa.3.i.sroa.4.0..sroa.8.0..sroa_idx.i.sroa_idx, align 8, !noalias !1383 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6), !noalias !1383 - %.sroa.538.0.insert.ext = zext i8 %.sroa.58.0.copyload.i to i64 - %.sroa.538.1.insert.ext = zext i56 %.sroa.3.i.sroa.0.0.copyload to i64 - %.sroa.538.1.insert.shift = shl nuw i64 %.sroa.538.1.insert.ext, 8 - %.sroa.538.1.insert.insert = or disjoint i64 %.sroa.538.1.insert.shift, %.sroa.538.0.insert.ext - %55 = inttoptr i64 %.sroa.538.1.insert.insert to ptr + %55 = inttoptr i64 %.sroa.58.0.copyload.i to ptr br label %_ZN11ockam_vault8software25vault_for_secure_channels3aes6AesGen15decrypt_message17hfa71a56ca12eb69cE.exit "_ZN11ockam_vault5error112_$LT$impl$u20$core..convert..From$LT$ockam_vault..error..VaultError$GT$$u20$for$u20$ockam_core..error..Error$GT$4from17h2c44bd1dbd5b3fdbE.exit.i": ; preds = %.noexc @@ -9321,11 +9314,11 @@ _ZN11ockam_vault8software25vault_for_secure_channels3aes6AesGen15decrypt_message "_ZN4core3ptr82drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..aes..AesGen$GT$17he3d62f9adfbeb8f2E.exit": ; preds = %.noexc24, %63 call void @llvm.lifetime.end.p0(i64 992, ptr nonnull %7) - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4), !noalias !1397 + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4), !noalias !1395 %64 = getelementptr inbounds nuw i8, ptr %9, i64 32 - store ptr %9, ptr %4, align 8, !noalias !1397 + store ptr %9, ptr %4, align 8, !noalias !1395 %65 = getelementptr inbounds nuw i8, ptr %4, i64 8 - store ptr %64, ptr %65, align 8, !noalias !1397 + store ptr %64, ptr %65, align 8, !noalias !1395 %66 = invoke noundef align 1 dereferenceable_or_null(1) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h838485e2f8eb269cE.llvm.1290069140160153612"(ptr noalias noundef nonnull align 8 dereferenceable(16) %4) to label %.noexc26 unwind label %.loopexit.split-lp @@ -9335,7 +9328,7 @@ _ZN11ockam_vault8software25vault_for_secure_channels3aes6AesGen15decrypt_message .lr.ph.i.i.i.i: ; preds = %.noexc26, %.noexc27 %68 = phi ptr [ %69, %.noexc27 ], [ %66, %.noexc26 ] - store volatile i8 0, ptr %68, align 1, !alias.scope !1404 + store volatile i8 0, ptr %68, align 1, !alias.scope !1402 fence syncscope("singlethread") seq_cst %69 = invoke noundef align 1 dereferenceable_or_null(1) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h838485e2f8eb269cE.llvm.1290069140160153612"(ptr noalias noundef nonnull align 8 dereferenceable(16) %4) to label %.noexc27 unwind label %.loopexit @@ -9361,7 +9354,7 @@ _ZN11ockam_vault8software25vault_for_secure_channels3aes6AesGen15decrypt_message br label %71 .loopexit42: ; preds = %.noexc27, %.noexc26 - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4), !noalias !1397 + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4), !noalias !1395 br label %13 72: ; preds = %59, %32 @@ -9408,7 +9401,7 @@ default.unreachable36: ; preds = %3 %17 = getelementptr inbounds nuw i8, ptr %15, i64 8 %.val = load ptr, ptr %17, align 8, !nonnull !5, !noundef !5 %18 = getelementptr inbounds nuw i8, ptr %.val, i64 16 - %19 = cmpxchg weak ptr %18, i32 0, i32 1073741823 acquire monotonic, align 4, !noalias !1407 + %19 = cmpxchg weak ptr %18, i32 0, i32 1073741823 acquire monotonic, align 4, !noalias !1405 %.sroa.18.0.in.i.i = extractvalue { i32, i1 } %19, 1 br i1 %.sroa.18.0.in.i.i, label %.noexc, label %20 @@ -9417,7 +9410,7 @@ default.unreachable36: ; preds = %3 to label %.noexc unwind label %28 .noexc: ; preds = %20, %14 - %21 = load atomic i64, ptr @_ZN3std9panicking11panic_count18GLOBAL_PANIC_COUNT17h0c0cb700fd497c9fE monotonic, align 8, !noalias !1410 + %21 = load atomic i64, ptr @_ZN3std9panicking11panic_count18GLOBAL_PANIC_COUNT17h0c0cb700fd497c9fE monotonic, align 8, !noalias !1408 %22 = and i64 %21, 9223372036854775807 %23 = icmp eq i64 %22, 0 br i1 %23, label %30, label %24 @@ -9439,23 +9432,23 @@ default.unreachable36: ; preds = %3 30: ; preds = %.noexc18, %.noexc %.0.i.i.i.i = phi i8 [ %27, %.noexc18 ], [ 0, %.noexc ] %31 = getelementptr inbounds nuw i8, ptr %.val, i64 24 - %32 = load atomic i8, ptr %31 monotonic, align 1, !noalias !1410 + %32 = load atomic i8, ptr %31 monotonic, align 1, !noalias !1408 %.not = icmp eq i8 %32, 0 br i1 %.not, label %40, label %33 33: ; preds = %30 - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6), !noalias !1413 - store ptr %18, ptr %6, align 8, !noalias !1413 + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6), !noalias !1411 + store ptr %18, ptr %6, align 8, !noalias !1411 %34 = getelementptr inbounds nuw i8, ptr %6, i64 8 - store i8 %.0.i.i.i.i, ptr %34, align 8, !noalias !1413 + store i8 %.0.i.i.i.i, ptr %34, align 8, !noalias !1411 invoke void @_ZN4core6result13unwrap_failed17hed0fccbe07e724fcE(ptr noalias noundef nonnull readonly align 1 @anon.a73c850a832fd27dbe7b4d2d1a099f4e.40, i64 noundef 43, ptr noundef nonnull align 1 %6, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.a73c850a832fd27dbe7b4d2d1a099f4e.42, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.a73c850a832fd27dbe7b4d2d1a099f4e.84) #37 - to label %37 unwind label %35, !noalias !1413 + to label %37 unwind label %35, !noalias !1411 35: ; preds = %33 %36 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr267drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..rwlock..RwLockWriteGuard$LT$alloc..collections..btree..map..BTreeMap$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$C$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$$GT$$GT$17h6741236e65d999acE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %6) #38 - to label %.body19 unwind label %38, !noalias !1413 + to label %.body19 unwind label %38, !noalias !1411 37: ; preds = %33 unreachable @@ -9463,7 +9456,7 @@ default.unreachable36: ; preds = %3 38: ; preds = %35 %39 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17hceade526831b1e89E() #39, !noalias !1413 + call void @_ZN4core9panicking16panic_in_cleanup17hceade526831b1e89E() #39, !noalias !1411 unreachable 40: ; preds = %30 @@ -9471,19 +9464,19 @@ default.unreachable36: ; preds = %3 %.fca.1.gep = getelementptr inbounds nuw i8, ptr %8, i64 8 store i8 %.0.i.i.i.i, ptr %.fca.1.gep, align 8 %41 = getelementptr inbounds nuw i8, ptr %.val, i64 32 - tail call void @llvm.experimental.noalias.scope.decl(metadata !1416) - call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %5), !noalias !1419 + tail call void @llvm.experimental.noalias.scope.decl(metadata !1414) + call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %5), !noalias !1417 invoke void @"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$12remove_entry17h98b438ef038d2a85E.llvm.16200579503313032053"(ptr noalias noundef nonnull sret({ ptr, [6 x i64] }) align 8 captures(none) dereferenceable(56) %5, ptr noalias noundef nonnull align 8 dereferenceable(24) %41, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %11) to label %.noexc21 unwind label %48 .noexc21: ; preds = %40 - %42 = load ptr, ptr %5, align 8, !noalias !1419, !noundef !5 + %42 = load ptr, ptr %5, align 8, !noalias !1417, !noundef !5 %43 = icmp eq ptr %42, null br i1 %43, label %.thread, label %45 .thread: ; preds = %.noexc21 - store i8 0, ptr %9, align 1, !alias.scope !1416, !noalias !1422 - call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %5), !noalias !1419 + store i8 0, ptr %9, align 1, !alias.scope !1414, !noalias !1420 + call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %5), !noalias !1417 %44 = getelementptr inbounds nuw i8, ptr %10, i64 1 store i8 0, ptr %44, align 1 store i8 0, ptr %10, align 8 @@ -9491,13 +9484,13 @@ default.unreachable36: ; preds = %3 45: ; preds = %.noexc21 %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %5, i64 8 - %.sroa.2.0.copyload.i = load i64, ptr %.sroa.2.0..sroa_idx.i, align 8, !noalias !1419 + %.sroa.2.0.copyload.i = load i64, ptr %.sroa.2.0..sroa_idx.i, align 8, !noalias !1417 %46 = getelementptr inbounds nuw i8, ptr %5, i64 24 %47 = icmp eq i64 %.sroa.2.0.copyload.i, 0 br i1 %47, label %50, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h6940b36ff7ab085dE.llvm.9153531805506995525.exit.i.i.i.i.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h6940b36ff7ab085dE.llvm.9153531805506995525.exit.i.i.i.i.i.i.i": ; preds = %45 - call void @__rust_dealloc(ptr noundef nonnull %42, i64 noundef %.sroa.2.0.copyload.i, i64 noundef 1) #40, !noalias !1423 + call void @__rust_dealloc(ptr noundef nonnull %42, i64 noundef %.sroa.2.0.copyload.i, i64 noundef 1) #40, !noalias !1421 br label %50 48: ; preds = %40 @@ -9508,17 +9501,17 @@ default.unreachable36: ; preds = %3 50: ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h6940b36ff7ab085dE.llvm.9153531805506995525.exit.i.i.i.i.i.i.i", %45 %51 = getelementptr inbounds nuw i8, ptr %9, i64 1 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(32) %46, i64 32, i1 false), !noalias !1422 - store i8 1, ptr %9, align 1, !alias.scope !1416, !noalias !1422 - call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %5), !noalias !1419 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(32) %46, i64 32, i1 false), !noalias !1420 + store i8 1, ptr %9, align 1, !alias.scope !1414, !noalias !1420 + call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %5), !noalias !1417 %52 = getelementptr inbounds nuw i8, ptr %10, i64 1 store i8 1, ptr %52, align 1 store i8 0, ptr %10, align 8 - call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4), !noalias !1436 + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4), !noalias !1434 %53 = getelementptr inbounds nuw i8, ptr %9, i64 33 - store ptr %51, ptr %4, align 8, !noalias !1436 + store ptr %51, ptr %4, align 8, !noalias !1434 %54 = getelementptr inbounds nuw i8, ptr %4, i64 8 - store ptr %53, ptr %54, align 8, !noalias !1436 + store ptr %53, ptr %54, align 8, !noalias !1434 %55 = invoke noundef align 1 dereferenceable_or_null(1) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h838485e2f8eb269cE.llvm.1290069140160153612"(ptr noalias noundef nonnull align 8 dereferenceable(16) %4) to label %.noexc22 unwind label %.loopexit.split-lp @@ -9528,7 +9521,7 @@ default.unreachable36: ; preds = %3 .lr.ph.i.i.i.i.i: ; preds = %.noexc22, %.noexc23 %57 = phi ptr [ %58, %.noexc23 ], [ %55, %.noexc22 ] - store volatile i8 0, ptr %57, align 1, !alias.scope !1445 + store volatile i8 0, ptr %57, align 1, !alias.scope !1443 fence syncscope("singlethread") seq_cst %58 = invoke noundef align 1 dereferenceable_or_null(1) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h838485e2f8eb269cE.llvm.1290069140160153612"(ptr noalias noundef nonnull align 8 dereferenceable(16) %4) to label %.noexc23 unwind label %.loopexit @@ -9538,7 +9531,7 @@ default.unreachable36: ; preds = %3 br i1 %59, label %"_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE.exit.i", label %.lr.ph.i.i.i.i.i "_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE.exit.i": ; preds = %.noexc23, %.noexc22 - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4), !noalias !1436 + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4), !noalias !1434 br label %"_ZN4core3ptr116drop_in_place$LT$core..option..Option$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$17hf78810b25d9e78d1E.exit" .loopexit: ; preds = %.lr.ph.i.i.i.i.i @@ -9557,10 +9550,10 @@ default.unreachable36: ; preds = %3 to label %74 unwind label %81 "_ZN4core3ptr116drop_in_place$LT$core..option..Option$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$17hf78810b25d9e78d1E.exit": ; preds = %"_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE.exit.i", %.thread - call void @llvm.experimental.noalias.scope.decl(metadata !1448) - call void @llvm.experimental.noalias.scope.decl(metadata !1451) - %61 = load ptr, ptr %8, align 8, !alias.scope !1454, !nonnull !5, !align !16, !noundef !5 - %62 = load i8, ptr %.fca.1.gep, align 8, !range !102, !alias.scope !1454, !noundef !5 + call void @llvm.experimental.noalias.scope.decl(metadata !1446) + call void @llvm.experimental.noalias.scope.decl(metadata !1449) + %61 = load ptr, ptr %8, align 8, !alias.scope !1452, !nonnull !5, !align !16, !noundef !5 + %62 = load i8, ptr %.fca.1.gep, align 8, !range !102, !alias.scope !1452, !noundef !5 %63 = trunc nuw i8 %62 to i1 br i1 %63, label %_ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.9153531805506995525.exit.thread.i.i, label %64 @@ -9581,7 +9574,7 @@ _ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.9153531805506995525.exit.i. br i1 %68, label %_ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.9153531805506995525.exit.thread.i.i, label %71 _ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.9153531805506995525.exit.thread.i.i: ; preds = %71, %.noexc25, %.noexc24, %"_ZN4core3ptr116drop_in_place$LT$core..option..Option$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$17hf78810b25d9e78d1E.exit" - %69 = atomicrmw sub ptr %61, i32 1073741823 release, align 4, !noalias !1454 + %69 = atomicrmw sub ptr %61, i32 1073741823 release, align 4, !noalias !1452 %70 = add i32 %69, -1073741823 %or.cond.i.i = icmp ult i32 %70, 1073741824 br i1 %or.cond.i.i, label %"_ZN4core3ptr229drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$alloc..collections..btree..map..BTreeMap$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$C$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$$GT$17hcdf6c7afaea4cfdeE.exit", label %73 @@ -9612,20 +9605,20 @@ _ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.9153531805506995525.exit.th call void @llvm.lifetime.end.p0(i64 33, ptr nonnull %9) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(16) %10, i64 16, i1 false) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) - call void @llvm.experimental.noalias.scope.decl(metadata !1455) - call void @llvm.experimental.noalias.scope.decl(metadata !1458) - call void @llvm.experimental.noalias.scope.decl(metadata !1461) - call void @llvm.experimental.noalias.scope.decl(metadata !1464) - call void @llvm.experimental.noalias.scope.decl(metadata !1467) - call void @llvm.experimental.noalias.scope.decl(metadata !1470) + call void @llvm.experimental.noalias.scope.decl(metadata !1453) + call void @llvm.experimental.noalias.scope.decl(metadata !1456) + call void @llvm.experimental.noalias.scope.decl(metadata !1459) + call void @llvm.experimental.noalias.scope.decl(metadata !1462) + call void @llvm.experimental.noalias.scope.decl(metadata !1465) + call void @llvm.experimental.noalias.scope.decl(metadata !1468) %77 = getelementptr inbounds nuw i8, ptr %11, i64 8 - %78 = load i64, ptr %77, align 8, !alias.scope !1473, !noalias !1476, !noundef !5 + %78 = load i64, ptr %77, align 8, !alias.scope !1471, !noalias !1474, !noundef !5 %79 = icmp eq i64 %78, 0 br i1 %79, label %"_ZN4core3ptr68drop_in_place$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$GT$17ha48cc83956a07441E.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h6940b36ff7ab085dE.llvm.9153531805506995525.exit.i.i.i.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h6940b36ff7ab085dE.llvm.9153531805506995525.exit.i.i.i.i.i.i": ; preds = %"_ZN4core3ptr229drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$alloc..collections..btree..map..BTreeMap$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$C$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$$GT$17hcdf6c7afaea4cfdeE.exit" - %80 = load ptr, ptr %11, align 8, !alias.scope !1473, !noalias !1476, !nonnull !5, !noundef !5 - call void @__rust_dealloc(ptr noundef nonnull %80, i64 noundef %78, i64 noundef 1) #40, !noalias !1478 + %80 = load ptr, ptr %11, align 8, !alias.scope !1471, !noalias !1474, !nonnull !5, !noundef !5 + call void @__rust_dealloc(ptr noundef nonnull %80, i64 noundef %78, i64 noundef 1) #40, !noalias !1476 br label %"_ZN4core3ptr68drop_in_place$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$GT$17ha48cc83956a07441E.exit" "_ZN4core3ptr68drop_in_place$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$GT$17ha48cc83956a07441E.exit": ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h6940b36ff7ab085dE.llvm.9153531805506995525.exit.i.i.i.i.i.i", %"_ZN4core3ptr229drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$alloc..collections..btree..map..BTreeMap$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$C$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$$GT$17hcdf6c7afaea4cfdeE.exit" @@ -11651,91 +11644,89 @@ attributes #40 = { nounwind } !1388 = distinct !{!1388, !1385, !"_ZN11ockam_vault8software25vault_for_secure_channels3aes6AesGen15decrypt_message17hfa71a56ca12eb69cE: argument 3"} !1389 = distinct !{!1389, !1385, !"_ZN11ockam_vault8software25vault_for_secure_channels3aes6AesGen15decrypt_message17hfa71a56ca12eb69cE: argument 4"} !1390 = !{!1391} -!1391 = distinct !{!1391, !1392, !"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17ha574bc84039e05f6E.llvm.10553303005396541960: argument 0"} +!1391 = distinct !{!1391, !1392, !"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17ha574bc84039e05f6E.llvm.10553303005396541960: argument 1"} !1392 = distinct !{!1392, !"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17ha574bc84039e05f6E.llvm.10553303005396541960"} -!1393 = !{!1394} -!1394 = distinct !{!1394, !1392, !"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17ha574bc84039e05f6E.llvm.10553303005396541960: argument 1"} -!1395 = !{!1391, !1384, !1386, !1387, !1388, !1389} -!1396 = !{!1391, !1394} -!1397 = !{!1398, !1400, !1402} -!1398 = distinct !{!1398, !1399, !"_ZN59_$LT$$u5b$Z$u3b$$u20$N$u5d$$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h91ff1e532593904cE: argument 0"} -!1399 = distinct !{!1399, !"_ZN59_$LT$$u5b$Z$u3b$$u20$N$u5d$$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h91ff1e532593904cE"} -!1400 = distinct !{!1400, !1401, !"_ZN109_$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6599864979acc3b1E: argument 0"} -!1401 = distinct !{!1401, !"_ZN109_$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6599864979acc3b1E"} -!1402 = distinct !{!1402, !1403, !"_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE: argument 0"} -!1403 = distinct !{!1403, !"_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE"} -!1404 = !{!1405} -!1405 = distinct !{!1405, !1406, !"_ZN38_$LT$Z$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h62b40a9d8a347e36E.llvm.1290069140160153612: argument 0"} -!1406 = distinct !{!1406, !"_ZN38_$LT$Z$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h62b40a9d8a347e36E.llvm.1290069140160153612"} -!1407 = !{!1408} -!1408 = distinct !{!1408, !1409, !"_ZN3std4sync6rwlock15RwLock$LT$T$GT$5write17h0cb7a9d68be70b0bE: argument 0"} -!1409 = distinct !{!1409, !"_ZN3std4sync6rwlock15RwLock$LT$T$GT$5write17h0cb7a9d68be70b0bE"} -!1410 = !{!1411, !1408} -!1411 = distinct !{!1411, !1412, !"_ZN3std4sync6rwlock25RwLockWriteGuard$LT$T$GT$3new17h2d72f190dc4572e8E: argument 0"} -!1412 = distinct !{!1412, !"_ZN3std4sync6rwlock25RwLockWriteGuard$LT$T$GT$3new17h2d72f190dc4572e8E"} -!1413 = !{!1414} -!1414 = distinct !{!1414, !1415, !"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17ha0d8a8e584711fbcE: argument 0"} -!1415 = distinct !{!1415, !"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17ha0d8a8e584711fbcE"} -!1416 = !{!1417} -!1417 = distinct !{!1417, !1418, !"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6remove17h7c402ba60af5a57aE: argument 0"} -!1418 = distinct !{!1418, !"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6remove17h7c402ba60af5a57aE"} -!1419 = !{!1417, !1420, !1421} -!1420 = distinct !{!1420, !1418, !"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6remove17h7c402ba60af5a57aE: argument 1"} -!1421 = distinct !{!1421, !1418, !"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6remove17h7c402ba60af5a57aE: argument 2"} -!1422 = !{!1420, !1421} -!1423 = !{!1424, !1426, !1428, !1430, !1432, !1434, !1417} -!1424 = distinct !{!1424, !1425, !"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h381b1b38aed2f732E.llvm.9153531805506995525: argument 0"} -!1425 = distinct !{!1425, !"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h381b1b38aed2f732E.llvm.9153531805506995525"} -!1426 = distinct !{!1426, !1427, !"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17hf38ac44a865e42b2E: argument 0"} -!1427 = distinct !{!1427, !"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17hf38ac44a865e42b2E"} -!1428 = distinct !{!1428, !1429, !"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hceabcfa060b47853E: argument 0"} -!1429 = distinct !{!1429, !"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hceabcfa060b47853E"} -!1430 = distinct !{!1430, !1431, !"_ZN4core3ptr64drop_in_place$LT$ockam_vault..types..secrets..HandleToSecret$GT$17h0cac01d31fae2c14E: argument 0"} -!1431 = distinct !{!1431, !"_ZN4core3ptr64drop_in_place$LT$ockam_vault..types..secrets..HandleToSecret$GT$17h0cac01d31fae2c14E"} -!1432 = distinct !{!1432, !1433, !"_ZN4core3ptr73drop_in_place$LT$ockam_vault..types..hashes..Aes256GcmSecretKeyHandle$GT$17h4eeef3c455334963E.llvm.9153531805506995525: argument 0"} -!1433 = distinct !{!1433, !"_ZN4core3ptr73drop_in_place$LT$ockam_vault..types..hashes..Aes256GcmSecretKeyHandle$GT$17h4eeef3c455334963E.llvm.9153531805506995525"} -!1434 = distinct !{!1434, !1435, !"_ZN4core3ptr68drop_in_place$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$GT$17ha48cc83956a07441E: argument 0"} -!1435 = distinct !{!1435, !"_ZN4core3ptr68drop_in_place$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$GT$17ha48cc83956a07441E"} -!1436 = !{!1437, !1439, !1441, !1443} -!1437 = distinct !{!1437, !1438, !"_ZN59_$LT$$u5b$Z$u3b$$u20$N$u5d$$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h91ff1e532593904cE: argument 0"} -!1438 = distinct !{!1438, !"_ZN59_$LT$$u5b$Z$u3b$$u20$N$u5d$$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h91ff1e532593904cE"} -!1439 = distinct !{!1439, !1440, !"_ZN109_$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6599864979acc3b1E: argument 0"} -!1440 = distinct !{!1440, !"_ZN109_$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6599864979acc3b1E"} -!1441 = distinct !{!1441, !1442, !"_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE: argument 0"} -!1442 = distinct !{!1442, !"_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE"} -!1443 = distinct !{!1443, !1444, !"_ZN4core3ptr116drop_in_place$LT$core..option..Option$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$17hf78810b25d9e78d1E: argument 0"} -!1444 = distinct !{!1444, !"_ZN4core3ptr116drop_in_place$LT$core..option..Option$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$17hf78810b25d9e78d1E"} -!1445 = !{!1446} -!1446 = distinct !{!1446, !1447, !"_ZN38_$LT$Z$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h62b40a9d8a347e36E.llvm.1290069140160153612: argument 0"} -!1447 = distinct !{!1447, !"_ZN38_$LT$Z$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h62b40a9d8a347e36E.llvm.1290069140160153612"} -!1448 = !{!1449} -!1449 = distinct !{!1449, !1450, !"_ZN4core3ptr229drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$alloc..collections..btree..map..BTreeMap$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$C$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$$GT$17hcdf6c7afaea4cfdeE: argument 0"} -!1450 = distinct !{!1450, !"_ZN4core3ptr229drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$alloc..collections..btree..map..BTreeMap$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$C$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$$GT$17hcdf6c7afaea4cfdeE"} -!1451 = !{!1452} -!1452 = distinct !{!1452, !1453, !"_ZN86_$LT$std..sync..rwlock..RwLockWriteGuard$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h58b19a3403fd45a7E.llvm.9153531805506995525: argument 0"} -!1453 = distinct !{!1453, !"_ZN86_$LT$std..sync..rwlock..RwLockWriteGuard$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h58b19a3403fd45a7E.llvm.9153531805506995525"} -!1454 = !{!1452, !1449} -!1455 = !{!1456} -!1456 = distinct !{!1456, !1457, !"_ZN4core3ptr68drop_in_place$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$GT$17ha48cc83956a07441E: argument 0"} -!1457 = distinct !{!1457, !"_ZN4core3ptr68drop_in_place$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$GT$17ha48cc83956a07441E"} -!1458 = !{!1459} -!1459 = distinct !{!1459, !1460, !"_ZN4core3ptr73drop_in_place$LT$ockam_vault..types..hashes..Aes256GcmSecretKeyHandle$GT$17h4eeef3c455334963E.llvm.9153531805506995525: argument 0"} -!1460 = distinct !{!1460, !"_ZN4core3ptr73drop_in_place$LT$ockam_vault..types..hashes..Aes256GcmSecretKeyHandle$GT$17h4eeef3c455334963E.llvm.9153531805506995525"} -!1461 = !{!1462} -!1462 = distinct !{!1462, !1463, !"_ZN4core3ptr64drop_in_place$LT$ockam_vault..types..secrets..HandleToSecret$GT$17h0cac01d31fae2c14E: argument 0"} -!1463 = distinct !{!1463, !"_ZN4core3ptr64drop_in_place$LT$ockam_vault..types..secrets..HandleToSecret$GT$17h0cac01d31fae2c14E"} -!1464 = !{!1465} -!1465 = distinct !{!1465, !1466, !"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hceabcfa060b47853E: argument 0"} -!1466 = distinct !{!1466, !"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hceabcfa060b47853E"} -!1467 = !{!1468} -!1468 = distinct !{!1468, !1469, !"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17hf38ac44a865e42b2E: argument 0"} -!1469 = distinct !{!1469, !"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17hf38ac44a865e42b2E"} -!1470 = !{!1471} -!1471 = distinct !{!1471, !1472, !"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h381b1b38aed2f732E.llvm.9153531805506995525: argument 0"} -!1472 = distinct !{!1472, !"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h381b1b38aed2f732E.llvm.9153531805506995525"} -!1473 = !{!1474, !1471, !1468, !1465, !1462, !1459, !1456} -!1474 = distinct !{!1474, !1475, !"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hebdac3a053a092f8E: argument 1"} -!1475 = distinct !{!1475, !"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hebdac3a053a092f8E"} -!1476 = !{!1477} -!1477 = distinct !{!1477, !1475, !"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hebdac3a053a092f8E: argument 0"} -!1478 = !{!1471, !1468, !1465, !1462, !1459, !1456} +!1393 = !{!1394, !1384, !1386, !1387, !1388, !1389} +!1394 = distinct !{!1394, !1392, !"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17ha574bc84039e05f6E.llvm.10553303005396541960: argument 0"} +!1395 = !{!1396, !1398, !1400} +!1396 = distinct !{!1396, !1397, !"_ZN59_$LT$$u5b$Z$u3b$$u20$N$u5d$$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h91ff1e532593904cE: argument 0"} +!1397 = distinct !{!1397, !"_ZN59_$LT$$u5b$Z$u3b$$u20$N$u5d$$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h91ff1e532593904cE"} +!1398 = distinct !{!1398, !1399, !"_ZN109_$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6599864979acc3b1E: argument 0"} +!1399 = distinct !{!1399, !"_ZN109_$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6599864979acc3b1E"} +!1400 = distinct !{!1400, !1401, !"_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE: argument 0"} +!1401 = distinct !{!1401, !"_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE"} +!1402 = !{!1403} +!1403 = distinct !{!1403, !1404, !"_ZN38_$LT$Z$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h62b40a9d8a347e36E.llvm.1290069140160153612: argument 0"} +!1404 = distinct !{!1404, !"_ZN38_$LT$Z$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h62b40a9d8a347e36E.llvm.1290069140160153612"} +!1405 = !{!1406} +!1406 = distinct !{!1406, !1407, !"_ZN3std4sync6rwlock15RwLock$LT$T$GT$5write17h0cb7a9d68be70b0bE: argument 0"} +!1407 = distinct !{!1407, !"_ZN3std4sync6rwlock15RwLock$LT$T$GT$5write17h0cb7a9d68be70b0bE"} +!1408 = !{!1409, !1406} +!1409 = distinct !{!1409, !1410, !"_ZN3std4sync6rwlock25RwLockWriteGuard$LT$T$GT$3new17h2d72f190dc4572e8E: argument 0"} +!1410 = distinct !{!1410, !"_ZN3std4sync6rwlock25RwLockWriteGuard$LT$T$GT$3new17h2d72f190dc4572e8E"} +!1411 = !{!1412} +!1412 = distinct !{!1412, !1413, !"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17ha0d8a8e584711fbcE: argument 0"} +!1413 = distinct !{!1413, !"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17ha0d8a8e584711fbcE"} +!1414 = !{!1415} +!1415 = distinct !{!1415, !1416, !"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6remove17h7c402ba60af5a57aE: argument 0"} +!1416 = distinct !{!1416, !"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6remove17h7c402ba60af5a57aE"} +!1417 = !{!1415, !1418, !1419} +!1418 = distinct !{!1418, !1416, !"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6remove17h7c402ba60af5a57aE: argument 1"} +!1419 = distinct !{!1419, !1416, !"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$6remove17h7c402ba60af5a57aE: argument 2"} +!1420 = !{!1418, !1419} +!1421 = !{!1422, !1424, !1426, !1428, !1430, !1432, !1415} +!1422 = distinct !{!1422, !1423, !"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h381b1b38aed2f732E.llvm.9153531805506995525: argument 0"} +!1423 = distinct !{!1423, !"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h381b1b38aed2f732E.llvm.9153531805506995525"} +!1424 = distinct !{!1424, !1425, !"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17hf38ac44a865e42b2E: argument 0"} +!1425 = distinct !{!1425, !"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17hf38ac44a865e42b2E"} +!1426 = distinct !{!1426, !1427, !"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hceabcfa060b47853E: argument 0"} +!1427 = distinct !{!1427, !"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hceabcfa060b47853E"} +!1428 = distinct !{!1428, !1429, !"_ZN4core3ptr64drop_in_place$LT$ockam_vault..types..secrets..HandleToSecret$GT$17h0cac01d31fae2c14E: argument 0"} +!1429 = distinct !{!1429, !"_ZN4core3ptr64drop_in_place$LT$ockam_vault..types..secrets..HandleToSecret$GT$17h0cac01d31fae2c14E"} +!1430 = distinct !{!1430, !1431, !"_ZN4core3ptr73drop_in_place$LT$ockam_vault..types..hashes..Aes256GcmSecretKeyHandle$GT$17h4eeef3c455334963E.llvm.9153531805506995525: argument 0"} +!1431 = distinct !{!1431, !"_ZN4core3ptr73drop_in_place$LT$ockam_vault..types..hashes..Aes256GcmSecretKeyHandle$GT$17h4eeef3c455334963E.llvm.9153531805506995525"} +!1432 = distinct !{!1432, !1433, !"_ZN4core3ptr68drop_in_place$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$GT$17ha48cc83956a07441E: argument 0"} +!1433 = distinct !{!1433, !"_ZN4core3ptr68drop_in_place$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$GT$17ha48cc83956a07441E"} +!1434 = !{!1435, !1437, !1439, !1441} +!1435 = distinct !{!1435, !1436, !"_ZN59_$LT$$u5b$Z$u3b$$u20$N$u5d$$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h91ff1e532593904cE: argument 0"} +!1436 = distinct !{!1436, !"_ZN59_$LT$$u5b$Z$u3b$$u20$N$u5d$$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h91ff1e532593904cE"} +!1437 = distinct !{!1437, !1438, !"_ZN109_$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6599864979acc3b1E: argument 0"} +!1438 = distinct !{!1438, !"_ZN109_$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6599864979acc3b1E"} +!1439 = distinct !{!1439, !1440, !"_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE: argument 0"} +!1440 = distinct !{!1440, !"_ZN4core3ptr88drop_in_place$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$17hb7fa6acfefb3873eE"} +!1441 = distinct !{!1441, !1442, !"_ZN4core3ptr116drop_in_place$LT$core..option..Option$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$17hf78810b25d9e78d1E: argument 0"} +!1442 = distinct !{!1442, !"_ZN4core3ptr116drop_in_place$LT$core..option..Option$LT$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$17hf78810b25d9e78d1E"} +!1443 = !{!1444} +!1444 = distinct !{!1444, !1445, !"_ZN38_$LT$Z$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h62b40a9d8a347e36E.llvm.1290069140160153612: argument 0"} +!1445 = distinct !{!1445, !"_ZN38_$LT$Z$u20$as$u20$zeroize..Zeroize$GT$7zeroize17h62b40a9d8a347e36E.llvm.1290069140160153612"} +!1446 = !{!1447} +!1447 = distinct !{!1447, !1448, !"_ZN4core3ptr229drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$alloc..collections..btree..map..BTreeMap$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$C$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$$GT$17hcdf6c7afaea4cfdeE: argument 0"} +!1448 = distinct !{!1448, !"_ZN4core3ptr229drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$alloc..collections..btree..map..BTreeMap$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$C$ockam_vault..software..vault_for_secure_channels..types..AeadSecret$GT$$GT$$GT$17hcdf6c7afaea4cfdeE"} +!1449 = !{!1450} +!1450 = distinct !{!1450, !1451, !"_ZN86_$LT$std..sync..rwlock..RwLockWriteGuard$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h58b19a3403fd45a7E.llvm.9153531805506995525: argument 0"} +!1451 = distinct !{!1451, !"_ZN86_$LT$std..sync..rwlock..RwLockWriteGuard$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h58b19a3403fd45a7E.llvm.9153531805506995525"} +!1452 = !{!1450, !1447} +!1453 = !{!1454} +!1454 = distinct !{!1454, !1455, !"_ZN4core3ptr68drop_in_place$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$GT$17ha48cc83956a07441E: argument 0"} +!1455 = distinct !{!1455, !"_ZN4core3ptr68drop_in_place$LT$ockam_vault..types..hashes..AeadSecretKeyHandle$GT$17ha48cc83956a07441E"} +!1456 = !{!1457} +!1457 = distinct !{!1457, !1458, !"_ZN4core3ptr73drop_in_place$LT$ockam_vault..types..hashes..Aes256GcmSecretKeyHandle$GT$17h4eeef3c455334963E.llvm.9153531805506995525: argument 0"} +!1458 = distinct !{!1458, !"_ZN4core3ptr73drop_in_place$LT$ockam_vault..types..hashes..Aes256GcmSecretKeyHandle$GT$17h4eeef3c455334963E.llvm.9153531805506995525"} +!1459 = !{!1460} +!1460 = distinct !{!1460, !1461, !"_ZN4core3ptr64drop_in_place$LT$ockam_vault..types..secrets..HandleToSecret$GT$17h0cac01d31fae2c14E: argument 0"} +!1461 = distinct !{!1461, !"_ZN4core3ptr64drop_in_place$LT$ockam_vault..types..secrets..HandleToSecret$GT$17h0cac01d31fae2c14E"} +!1462 = !{!1463} +!1463 = distinct !{!1463, !1464, !"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hceabcfa060b47853E: argument 0"} +!1464 = distinct !{!1464, !"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hceabcfa060b47853E"} +!1465 = !{!1466} +!1466 = distinct !{!1466, !1467, !"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17hf38ac44a865e42b2E: argument 0"} +!1467 = distinct !{!1467, !"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17hf38ac44a865e42b2E"} +!1468 = !{!1469} +!1469 = distinct !{!1469, !1470, !"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h381b1b38aed2f732E.llvm.9153531805506995525: argument 0"} +!1470 = distinct !{!1470, !"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h381b1b38aed2f732E.llvm.9153531805506995525"} +!1471 = !{!1472, !1469, !1466, !1463, !1460, !1457, !1454} +!1472 = distinct !{!1472, !1473, !"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hebdac3a053a092f8E: argument 1"} +!1473 = distinct !{!1473, !"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hebdac3a053a092f8E"} +!1474 = !{!1475} +!1475 = distinct !{!1475, !1473, !"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hebdac3a053a092f8E: argument 0"} +!1476 = !{!1469, !1466, !1463, !1460, !1457, !1454} diff --git a/bench/openssl/optimized/x509_cmp.ll b/bench/openssl/optimized/x509_cmp.ll index 33b4d05b832..e3d768520dc 100644 --- a/bench/openssl/optimized/x509_cmp.ll +++ b/bench/openssl/optimized/x509_cmp.ll @@ -342,22 +342,12 @@ define range(i64 0, 4294967296) i64 @X509_issuer_name_hash(ptr noundef readonly br i1 %.not16.i, label %X509_NAME_hash_ex.exit, label %16 16: ; preds = %9 - %17 = load i16, ptr %2, align 16 - %18 = zext i16 %17 to i64 - %19 = getelementptr inbounds nuw i8, ptr %2, i64 2 - %20 = load i8, ptr %19, align 2, !tbaa !55 - %21 = zext i8 %20 to i64 - %22 = shl nuw nsw i64 %21, 16 - %23 = or disjoint i64 %22, %18 - %24 = getelementptr inbounds nuw i8, ptr %2, i64 3 - %25 = load i8, ptr %24, align 1, !tbaa !55 - %26 = zext i8 %25 to i64 - %27 = shl nuw nsw i64 %26, 24 - %28 = or disjoint i64 %23, %27 + %17 = load i32, ptr %2, align 16 + %18 = zext i32 %17 to i64 br label %X509_NAME_hash_ex.exit X509_NAME_hash_ex.exit: ; preds = %1, %9, %16 - %.0.i = phi i64 [ %28, %16 ], [ 0, %9 ], [ 0, %1 ] + %.0.i = phi i64 [ %18, %16 ], [ 0, %9 ], [ 0, %1 ] call void @EVP_MD_free(ptr noundef %5) #8 call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %2) #8 ret i64 %.0.i @@ -373,7 +363,7 @@ define range(i64 0, 4294967296) i64 @X509_NAME_hash_ex(ptr noundef %0, ptr nound br i1 %.not, label %9, label %8 8: ; preds = %4 - store i32 0, ptr %3, align 4, !tbaa !56 + store i32 0, ptr %3, align 4, !tbaa !55 br label %9 9: ; preds = %8, %4 @@ -396,19 +386,19 @@ define range(i64 0, 4294967296) i64 @X509_NAME_hash_ex(ptr noundef %0, ptr nound %20 = load i16, ptr %5, align 16 %21 = zext i16 %20 to i64 %22 = getelementptr inbounds nuw i8, ptr %5, i64 2 - %23 = load i8, ptr %22, align 2, !tbaa !55 + %23 = load i8, ptr %22, align 2, !tbaa !56 %24 = zext i8 %23 to i64 %25 = shl nuw nsw i64 %24, 16 %26 = or disjoint i64 %25, %21 %27 = getelementptr inbounds nuw i8, ptr %5, i64 3 - %28 = load i8, ptr %27, align 1, !tbaa !55 + %28 = load i8, ptr %27, align 1, !tbaa !56 %29 = zext i8 %28 to i64 %30 = shl nuw nsw i64 %29, 24 %31 = or disjoint i64 %26, %30 br i1 %.not, label %33, label %32 32: ; preds = %19 - store i32 1, ptr %3, align 4, !tbaa !56 + store i32 1, ptr %3, align 4, !tbaa !55 br label %33 33: ; preds = %19, %32, %12, %9 @@ -518,22 +508,12 @@ define range(i64 0, 4294967296) i64 @X509_subject_name_hash(ptr noundef readonly br i1 %.not16.i, label %X509_NAME_hash_ex.exit, label %16 16: ; preds = %9 - %17 = load i16, ptr %2, align 16 - %18 = zext i16 %17 to i64 - %19 = getelementptr inbounds nuw i8, ptr %2, i64 2 - %20 = load i8, ptr %19, align 2, !tbaa !55 - %21 = zext i8 %20 to i64 - %22 = shl nuw nsw i64 %21, 16 - %23 = or disjoint i64 %22, %18 - %24 = getelementptr inbounds nuw i8, ptr %2, i64 3 - %25 = load i8, ptr %24, align 1, !tbaa !55 - %26 = zext i8 %25 to i64 - %27 = shl nuw nsw i64 %26, 24 - %28 = or disjoint i64 %23, %27 + %17 = load i32, ptr %2, align 16 + %18 = zext i32 %17 to i64 br label %X509_NAME_hash_ex.exit X509_NAME_hash_ex.exit: ; preds = %1, %9, %16 - %.0.i = phi i64 [ %28, %16 ], [ 0, %9 ], [ 0, %1 ] + %.0.i = phi i64 [ %18, %16 ], [ 0, %9 ], [ 0, %1 ] call void @EVP_MD_free(ptr noundef %5) #8 call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %2) #8 ret i64 %.0.i @@ -1350,7 +1330,7 @@ check_suite_b.exit71.thread: ; preds = %65, %X509_get0_pubk %or.cond3 = select i1 %.039137185, i1 %101, i1 false %102 = sext i1 %or.cond3 to i32 %spec.select = add nsw i32 %.1138184, %102 - store i32 %spec.select, ptr %0, align 4, !tbaa !56 + store i32 %spec.select, ptr %0, align 4, !tbaa !55 br label %103 103: ; preds = %95, %100, %.thread131.thread, %4, %check_suite_b.exit @@ -1559,8 +1539,8 @@ attributes #9 = { nounwind willreturn memory(read) } !52 = !{!"p1 _ZTS22stack_st_GENERAL_NAMES", !6, i64 0} !53 = !{!"p1 _ZTS18x509_crl_method_st", !6, i64 0} !54 = !{!48, !10, i64 132} -!55 = !{!7, !7, i64 0} -!56 = !{!10, !10, i64 0} +!55 = !{!10, !10, i64 0} +!56 = !{!7, !7, i64 0} !57 = !{!22, !24, i64 16} !58 = !{!59, !11, i64 8} !59 = !{!"buf_mem_st", !12, i64 0, !11, i64 8, !12, i64 16, !12, i64 24} @@ -1574,7 +1554,7 @@ attributes #9 = { nounwind willreturn memory(read) } !67 = distinct !{!67, !68} !68 = !{!"llvm.loop.mustprogress"} !69 = distinct !{!69, !68} -!70 = !{i64 0, i64 4, !56, i64 4, i64 4, !56, i64 8, i64 8, !71, i64 16, i64 8, !72} +!70 = !{i64 0, i64 4, !55, i64 4, i64 4, !55, i64 8, i64 8, !71, i64 16, i64 8, !72} !71 = !{!11, !11, i64 0} !72 = !{!12, !12, i64 0} !73 = distinct !{!73, !68} diff --git a/bench/wasmtime-rs/optimized/3jqdez78s6gt3fnc.ll b/bench/wasmtime-rs/optimized/3jqdez78s6gt3fnc.ll index 1ceec43dac8..e566d65f313 100644 --- a/bench/wasmtime-rs/optimized/3jqdez78s6gt3fnc.ll +++ b/bench/wasmtime-rs/optimized/3jqdez78s6gt3fnc.ll @@ -2126,25 +2126,22 @@ define hidden noundef range(i8 -1, 3) i8 @_ZN4core4iter6traits8iterator12iter_co "_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hfe6169925af08d89E.exit.i.i": ; preds = %"_ZN4core4iter6traits8iterator8Iterator12try_for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17hd0dfed1a8b695f14E.exit.i.i" %10 = getelementptr inbounds nuw i8, ptr %7, i64 4 - %.sroa.02.0.copyload.i.i.i.i = load i8, ptr %7, align 1, !noalias !254 - %.sroa.4.0..0.1.sroa_idx.i.i.i.i = getelementptr inbounds nuw i8, ptr %7, i64 1 - %.sroa.4.0.copyload.i.i.i.i = load i24, ptr %.sroa.4.0..0.1.sroa_idx.i.i.i.i, align 1, !noalias !254 - %11 = zext i24 %.sroa.4.0.copyload.i.i.i.i to i32 - %12 = shl nuw i32 %11, 8 - %.not.i.i = icmp eq i8 %.sroa.02.0.copyload.i.i.i.i, 6 - br i1 %.not.i.i, label %_ZN4core4iter6traits8iterator8Iterator12try_for_each17h4e00a8e6617dd036E.llvm.7808069312437652055.exit, label %13 - -13: ; preds = %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hfe6169925af08d89E.exit.i.i" + %.sroa.02.0.copyload.i.i.i.i = load i32, ptr %7, align 1, !noalias !254 + %11 = and i32 %.sroa.02.0.copyload.i.i.i.i, 255 + %.not.i.i = icmp eq i32 %11, 6 + br i1 %.not.i.i, label %_ZN4core4iter6traits8iterator8Iterator12try_for_each17h4e00a8e6617dd036E.llvm.7808069312437652055.exit, label %12 + +12:; preds = %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hfe6169925af08d89E.exit.i.i" tail call void @llvm.experimental.noalias.scope.decl(metadata !259) %14 = icmp eq ptr %6, null br i1 %14, label %15, label %16 -15: ; preds = %13 +15: ; preds = %12 %.sroa.0.0.copyload.i.i.i.i.i.i = load i32, ptr %4, align 8, !alias.scope !262, !noalias !251 store i8 6, ptr %4, align 8, !alias.scope !262, !noalias !251 br label %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i.i.i.i" -16: ; preds = %13 +16: ; preds = %12 tail call void @llvm.experimental.noalias.scope.decl(metadata !265) %17 = load ptr, ptr %4, align 8, !alias.scope !268, !noalias !251, !nonnull !4, !noundef !4 %18 = icmp eq ptr %6, %17 @@ -2153,31 +2150,26 @@ define hidden noundef range(i8 -1, 3) i8 @_ZN4core4iter6traits8iterator12iter_co 19: ; preds = %16 %20 = getelementptr inbounds nuw i8, ptr %6, i64 4 store ptr %20, ptr %2, align 8, !alias.scope !268, !noalias !251 - %.sroa.02.0.copyload.i.i.i.i.i.i = load i8, ptr %6, align 1, !noalias !271 - %.sroa.4.0..0.1.sroa_idx.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %6, i64 1 - %.sroa.4.0.copyload.i.i.i.i.i.i = load i24, ptr %.sroa.4.0..0.1.sroa_idx.i.i.i.i.i.i, align 1, !noalias !271 - %21 = zext i24 %.sroa.4.0.copyload.i.i.i.i.i.i to i32 - %22 = shl nuw i32 %21, 8 - %23 = zext i8 %.sroa.02.0.copyload.i.i.i.i.i.i to i32 - %24 = or disjoint i32 %22, %23 + %.sroa.02.0.copyload.i.i.i.i.i.i = load i32, ptr %6, align 1, !noalias !271 br label %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i.i.i.i" "_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i.i.i.i": ; preds = %19, %15 %25 = phi ptr [ %5, %15 ], [ %20, %19 ] %26 = phi ptr [ null, %15 ], [ %20, %19 ] - %.sroa.0.0.i.i.i.i.i = phi i32 [ %.sroa.0.0.copyload.i.i.i.i.i.i, %15 ], [ %24, %19 ] + %.sroa.0.0.i.i.i.i.i = phi i32 [ %.sroa.0.0.copyload.i.i.i.i.i.i, %15 ], [ %.sroa.02.0.copyload.i.i.i.i.i.i, %19 ] %27 = and i32 %.sroa.0.0.i.i.i.i.i, 255 %28 = icmp eq i32 %27, 6 br i1 %28, label %_ZN4core4iter6traits8iterator8Iterator12try_for_each17h4e00a8e6617dd036E.llvm.7808069312437652055.exit.thread, label %29 29: ; preds = %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i.i.i.i" + %.sroa.0.0.extract.trunc.i.i.i.i.i.i = trunc i32 %.sroa.02.0.copyload.i.i.i.i to i8 %.sroa.01.0.extract.trunc.i.i.i.i.i.i = trunc i32 %.sroa.0.0.i.i.i.i.i to i8 - %30 = icmp eq i8 %.sroa.02.0.copyload.i.i.i.i, %.sroa.01.0.extract.trunc.i.i.i.i.i.i + %30 = icmp eq i8 %.sroa.0.0.extract.trunc.i.i.i.i.i.i, %.sroa.01.0.extract.trunc.i.i.i.i.i.i br i1 %30, label %"_ZN4core4iter6traits8iterator8Iterator5eq_by7compare28_$u7b$$u7b$closure$u7d$$u7d$17h9688b5591ceea2c3E.exit.i.i.i.i", label %_ZN4core4iter6traits8iterator8Iterator12try_for_each17h4e00a8e6617dd036E.llvm.7808069312437652055.exit.thread "_ZN4core4iter6traits8iterator8Iterator5eq_by7compare28_$u7b$$u7b$closure$u7d$$u7d$17h9688b5591ceea2c3E.exit.i.i.i.i": ; preds = %29 - %31 = icmp eq i8 %.sroa.02.0.copyload.i.i.i.i, 5 - %.unshifted.i.i.i.i.i.i = xor i32 %.sroa.0.0.i.i.i.i.i, %12 + %31 = icmp eq i8 %.sroa.0.0.extract.trunc.i.i.i.i.i.i, 5 + %.unshifted.i.i.i.i.i.i = xor i32 %.sroa.0.0.i.i.i.i.i, %.sroa.02.0.copyload.i.i.i.i %32 = icmp ugt i32 %.unshifted.i.i.i.i.i.i, 255 %spec.select.i.i.not.i.i.i.i.i = and i1 %31, %32 %cond.fr.i.i.i.i = freeze i1 %spec.select.i.i.not.i.i.i.i.i @@ -2191,7 +2183,6 @@ _ZN4core4iter6traits8iterator8Iterator12try_for_each17h4e00a8e6617dd036E.llvm.78 34: ; preds = %_ZN4core4iter6traits8iterator8Iterator12try_for_each17h4e00a8e6617dd036E.llvm.7808069312437652055.exit %.sroa.0.0.copyload.i.i = load i32, ptr %4, align 8, !alias.scope !275 store i8 6, ptr %4, align 8, !alias.scope !275 - %35 = and i32 %.sroa.0.0.copyload.i.i, 255 br label %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit" 36: ; preds = %_ZN4core4iter6traits8iterator8Iterator12try_for_each17h4e00a8e6617dd036E.llvm.7808069312437652055.exit @@ -2203,14 +2194,14 @@ _ZN4core4iter6traits8iterator8Iterator12try_for_each17h4e00a8e6617dd036E.llvm.78 39: ; preds = %36 %40 = getelementptr inbounds nuw i8, ptr %5, i64 4 store ptr %40, ptr %2, align 8, !alias.scope !281 - %.sroa.02.0.copyload.i.i = load i8, ptr %5, align 1, !noalias !284 - %41 = zext i8 %.sroa.02.0.copyload.i.i to i32 + %.sroa.02.0.copyload.i.i = load i32, ptr %5, align 1, !noalias !284 br label %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit" "_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit": ; preds = %34, %36, %39 - %.sroa.0.0.i = phi i32 [ %35, %34 ], [ %41, %39 ], [ 6, %36 ] - %42 = icmp ne i32 %.sroa.0.0.i, 6 - %.08 = sext i1 %42 to i8 + %.sroa.0.0.i = phi i32 [ %.sroa.0.0.copyload.i.i, %34 ], [ %.sroa.02.0.copyload.i.i, %39 ], [ 6, %36 ] + %40 = and i32 %.sroa.0.0.i, 255 + %36 = icmp ne i32 %40, 6 + %.08 = sext i1 %36 to i8 br label %_ZN4core4iter6traits8iterator8Iterator12try_for_each17h4e00a8e6617dd036E.llvm.7808069312437652055.exit.thread _ZN4core4iter6traits8iterator8Iterator12try_for_each17h4e00a8e6617dd036E.llvm.7808069312437652055.exit.thread: ; preds = %29, %"_ZN4core4iter6traits8iterator8Iterator5eq_by7compare28_$u7b$$u7b$closure$u7d$$u7d$17h9688b5591ceea2c3E.exit.i.i.i.i", %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i.i.i.i", %16, %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit" @@ -2244,15 +2235,12 @@ define hidden noundef range(i8 1, 4) i8 @_ZN4core4iter6traits8iterator8Iterator1 "_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hfe6169925af08d89E.exit.i": ; preds = %9 %11 = getelementptr inbounds nuw i8, ptr %7, i64 4 store ptr %11, ptr %0, align 8, !alias.scope !297, !noalias !288 - %.sroa.02.0.copyload.i.i.i = load i8, ptr %7, align 1, !noalias !300 - %.sroa.4.0..0.1.sroa_idx.i.i.i = getelementptr inbounds nuw i8, ptr %7, i64 1 - %.sroa.4.0.copyload.i.i.i = load i24, ptr %.sroa.4.0..0.1.sroa_idx.i.i.i, align 1, !noalias !300 - %12 = zext i24 %.sroa.4.0.copyload.i.i.i to i32 - %13 = shl nuw i32 %12, 8 - %.not.i = icmp eq i8 %.sroa.02.0.copyload.i.i.i, 6 - br i1 %.not.i, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34e552c573b3760bE.llvm.7808069312437652055.exit, label %14 - -14: ; preds = %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hfe6169925af08d89E.exit.i" + %.sroa.02.0.copyload.i.i.i = load i32, ptr %7, align 1, !noalias !300 + %12 = and i32 %.sroa.02.0.copyload.i.i.i, 255 + %.not.i = icmp eq i32 %12, 6 + br i1 %.not.i, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34e552c573b3760bE.llvm.7808069312437652055.exit, label %13 + +13:; preds = %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hfe6169925af08d89E.exit.i" tail call void @llvm.experimental.noalias.scope.decl(metadata !301) %15 = icmp eq ptr %6, null br i1 %15, label %16, label %17 @@ -2271,30 +2259,25 @@ define hidden noundef range(i8 1, 4) i8 @_ZN4core4iter6traits8iterator8Iterator1 20: ; preds = %17 %21 = getelementptr inbounds nuw i8, ptr %6, i64 4 store ptr %21, ptr %1, align 8, !alias.scope !310, !noalias !285 - %.sroa.02.0.copyload.i.i.i.i.i = load i8, ptr %6, align 1, !noalias !313 - %.sroa.4.0..0.1.sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %6, i64 1 - %.sroa.4.0.copyload.i.i.i.i.i = load i24, ptr %.sroa.4.0..0.1.sroa_idx.i.i.i.i.i, align 1, !noalias !313 - %22 = zext i24 %.sroa.4.0.copyload.i.i.i.i.i to i32 - %23 = shl nuw i32 %22, 8 - %24 = zext i8 %.sroa.02.0.copyload.i.i.i.i.i to i32 - %25 = or disjoint i32 %23, %24 + %.sroa.02.0.copyload.i.i.i.i.i = load i32, ptr %6, align 1, !noalias !313 br label %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i.i.i" "_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i.i.i": ; preds = %20, %16 %26 = phi ptr [ null, %16 ], [ %21, %20 ] - %.sroa.0.0.i.i.i.i = phi i32 [ %.sroa.0.0.copyload.i.i.i.i.i, %16 ], [ %25, %20 ] + %.sroa.0.0.i.i.i.i = phi i32 [ %.sroa.0.0.copyload.i.i.i.i.i, %16 ], [ %.sroa.02.0.copyload.i.i.i.i.i, %20 ] %27 = and i32 %.sroa.0.0.i.i.i.i, 255 %28 = icmp eq i32 %27, 6 br i1 %28, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34e552c573b3760bE.llvm.7808069312437652055.exit, label %29 29: ; preds = %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i.i.i" + %.sroa.0.0.extract.trunc.i.i.i.i.i = trunc i32 %.sroa.02.0.copyload.i.i.i to i8 %.sroa.01.0.extract.trunc.i.i.i.i.i = trunc i32 %.sroa.0.0.i.i.i.i to i8 - %30 = icmp eq i8 %.sroa.02.0.copyload.i.i.i, %.sroa.01.0.extract.trunc.i.i.i.i.i + %30 = icmp eq i8 %.sroa.0.0.extract.trunc.i.i.i.i.i, %.sroa.01.0.extract.trunc.i.i.i.i.i br i1 %30, label %"_ZN4core4iter6traits8iterator8Iterator5eq_by7compare28_$u7b$$u7b$closure$u7d$$u7d$17h9688b5591ceea2c3E.exit.i.i.i", label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h34e552c573b3760bE.llvm.7808069312437652055.exit "_ZN4core4iter6traits8iterator8Iterator5eq_by7compare28_$u7b$$u7b$closure$u7d$$u7d$17h9688b5591ceea2c3E.exit.i.i.i": ; preds = %29 - %31 = icmp eq i8 %.sroa.02.0.copyload.i.i.i, 5 - %.unshifted.i.i.i.i.i = xor i32 %.sroa.0.0.i.i.i.i, %13 + %31 = icmp eq i8 %.sroa.0.0.extract.trunc.i.i.i.i.i, 5 + %.unshifted.i.i.i.i.i = xor i32 %.sroa.0.0.i.i.i.i, %.sroa.02.0.copyload.i.i.i %32 = icmp ugt i32 %.unshifted.i.i.i.i.i, 255 %spec.select.i.i.not.i.i.i.i = and i1 %31, %32 %cond.fr.i.i.i = freeze i1 %spec.select.i.i.not.i.i.i.i @@ -2324,27 +2307,24 @@ define hidden noundef zeroext i1 @_ZN4core4iter6traits8iterator8Iterator5eq_by17 "_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hfe6169925af08d89E.exit.i.i.i": ; preds = %"_ZN4core4iter6traits8iterator8Iterator12try_for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17hd0dfed1a8b695f14E.exit.i.i.i" %9 = getelementptr inbounds nuw i8, ptr %6, i64 4 - %.sroa.02.0.copyload.i.i.i.i.i = load i8, ptr %6, align 1, !noalias !318 - %.sroa.4.0..0.1.sroa_idx.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %6, i64 1 - %.sroa.4.0.copyload.i.i.i.i.i = load i24, ptr %.sroa.4.0..0.1.sroa_idx.i.i.i.i.i, align 1, !noalias !318 - %10 = zext i24 %.sroa.4.0.copyload.i.i.i.i.i to i32 - %11 = shl nuw i32 %10, 8 - %.not.i.i.i = icmp eq i8 %.sroa.02.0.copyload.i.i.i.i.i, 6 - br i1 %.not.i.i.i, label %_ZN4core4iter6traits8iterator8Iterator12try_for_each17h4e00a8e6617dd036E.llvm.7808069312437652055.exit.i, label %12 - -12: ; preds = %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hfe6169925af08d89E.exit.i.i.i" - %13 = icmp eq ptr %5, null - br i1 %13, label %14, label %17 - -14: ; preds = %12 + %.sroa.02.0.copyload.i.i.i.i.i = load i32, ptr %6, align 1, !noalias !318 + %10 = and i32 %.sroa.02.0.copyload.i.i.i.i.i, 255 + %.not.i.i.i = icmp eq i32 %10, 6 + br i1 %.not.i.i.i, label %_ZN4core4iter6traits8iterator8Iterator12try_for_each17h4e00a8e6617dd036E.llvm.7808069312437652055.exit.i, label %11 + +11:; preds = %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hfe6169925af08d89E.exit.i.i.i" + %12 = icmp eq ptr %5, null + br i1 %12, label %13, label %16 + +13:; preds = %11 %15 = ptrtoint ptr %.sroa.6.0 to i64 - %.sroa.6.8.extract.trunc = trunc i64 %15 to i32 - %.sroa.6.8.insert.mask = and i64 %15, -256 + %.sroa.6.8.extract.trunc = trunc i64 %14 to i32 + %.sroa.6.8.insert.mask = and i64 %14, -256 %.sroa.6.8.insert.insert = or disjoint i64 %.sroa.6.8.insert.mask, 6 %16 = inttoptr i64 %.sroa.6.8.insert.insert to ptr br label %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i.i.i.i.i" -17: ; preds = %12 +17: ; preds = %11 %18 = icmp ne ptr %.sroa.6.0, null tail call void @llvm.assume(i1 %18) %19 = icmp eq ptr %5, %.sroa.6.0 @@ -2352,43 +2332,39 @@ define hidden noundef zeroext i1 @_ZN4core4iter6traits8iterator8Iterator5eq_by17 20: ; preds = %17 %21 = getelementptr inbounds nuw i8, ptr %5, i64 4 - %.sroa.02.0.copyload.i.i.i.i.i.i.i = load i8, ptr %5, align 1, !noalias !331 - %.sroa.4.0..0.1.sroa_idx.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %5, i64 1 - %.sroa.4.0.copyload.i.i.i.i.i.i.i = load i24, ptr %.sroa.4.0..0.1.sroa_idx.i.i.i.i.i.i.i, align 1, !noalias !331 - %22 = zext i24 %.sroa.4.0.copyload.i.i.i.i.i.i.i to i32 - %23 = shl nuw i32 %22, 8 - %24 = zext i8 %.sroa.02.0.copyload.i.i.i.i.i.i.i to i32 - %25 = or disjoint i32 %23, %24 + %.sroa.02.0.copyload.i.i.i.i.i.i.i = load i32, ptr %5, align 1, !noalias !331 br label %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i.i.i.i.i" "_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i.i.i.i.i": ; preds = %20, %14 %.sroa.6.1 = phi ptr [ %16, %14 ], [ %.sroa.6.0, %20 ] %26 = phi ptr [ %4, %14 ], [ %21, %20 ] %27 = phi ptr [ null, %14 ], [ %21, %20 ] - %.sroa.0.0.i.i.i.i.i.i = phi i32 [ %.sroa.6.8.extract.trunc, %14 ], [ %25, %20 ] + %.sroa.0.0.i.i.i.i.i.i = phi i32 [ %.sroa.6.8.extract.trunc, %14 ], [ %.sroa.02.0.copyload.i.i.i.i.i.i.i, %20 ] %28 = and i32 %.sroa.0.0.i.i.i.i.i.i, 255 - %29 = icmp ne i32 %28, 6 + %29 = icmp eq i32 %28, 6 + br i1 %24, label %_ZN4core4iter6traits8iterator12iter_compare17hb3e3dac9d30ee57fE.llvm.7808069312437652055.exit, label %25 + +25: ; preds = %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i.i.i.i.i" + %.sroa.0.0.extract.trunc.i.i.i.i.i.i.i = trunc i32 %.sroa.02.0.copyload.i.i.i.i.i to i8 %.sroa.01.0.extract.trunc.i.i.i.i.i.i.i = trunc i32 %.sroa.0.0.i.i.i.i.i.i to i8 - %30 = icmp eq i8 %.sroa.02.0.copyload.i.i.i.i.i, %.sroa.01.0.extract.trunc.i.i.i.i.i.i.i - %or.cond = and i1 %29, %30 - br i1 %or.cond, label %"_ZN4core4iter6traits8iterator8Iterator5eq_by7compare28_$u7b$$u7b$closure$u7d$$u7d$17h9688b5591ceea2c3E.exit.i.i.i.i.i", label %_ZN4core4iter6traits8iterator12iter_compare17hb3e3dac9d30ee57fE.llvm.7808069312437652055.exit - -"_ZN4core4iter6traits8iterator8Iterator5eq_by7compare28_$u7b$$u7b$closure$u7d$$u7d$17h9688b5591ceea2c3E.exit.i.i.i.i.i": ; preds = %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i.i.i.i.i" - %31 = icmp eq i8 %.sroa.02.0.copyload.i.i.i.i.i, 5 - %.unshifted.i.i.i.i.i.i.i = xor i32 %.sroa.0.0.i.i.i.i.i.i, %11 - %32 = icmp ugt i32 %.unshifted.i.i.i.i.i.i.i, 255 - %spec.select.i.i.not.i.i.i.i.i.i = and i1 %31, %32 + %30 = icmp eq i8 %.sroa.0.0.extract.trunc.i.i.i.i.i.i.i, %.sroa.01.0.extract.trunc.i.i.i.i.i.i.i + br i1 %26, label %"_ZN4core4iter6traits8iterator8Iterator5eq_by7compare28_$u7b$$u7b$closure$u7d$$u7d$17h9688b5591ceea2c3E.exit.i.i.i.i.i", label %_ZN4core4iter6traits8iterator12iter_compare17hb3e3dac9d30ee57fE.llvm.7808069312437652055.exit + +"_ZN4core4iter6traits8iterator8Iterator5eq_by7compare28_$u7b$$u7b$closure$u7d$$u7d$17h9688b5591ceea2c3E.exit.i.i.i.i.i": ; preds = %25 + %27 = icmp eq i8 %.sroa.0.0.extract.trunc.i.i.i.i.i.i.i, 5 + %.unshifted.i.i.i.i.i.i.i = xor i32 %.sroa.0.0.i.i.i.i.i.i, %.sroa.02.0.copyload.i.i.i.i.i + %28 = icmp ugt i32 %.unshifted.i.i.i.i.i.i.i, 255 + %spec.select.i.i.not.i.i.i.i.i.i = and i1 %27, %28 %cond.fr.i.i.i.i.i = freeze i1 %spec.select.i.i.not.i.i.i.i.i.i br i1 %cond.fr.i.i.i.i.i, label %_ZN4core4iter6traits8iterator12iter_compare17hb3e3dac9d30ee57fE.llvm.7808069312437652055.exit, label %"_ZN4core4iter6traits8iterator8Iterator12try_for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17hd0dfed1a8b695f14E.exit.i.i.i" _ZN4core4iter6traits8iterator8Iterator12try_for_each17h4e00a8e6617dd036E.llvm.7808069312437652055.exit.i: ; preds = %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hfe6169925af08d89E.exit.i.i.i", %"_ZN4core4iter6traits8iterator8Iterator12try_for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17hd0dfed1a8b695f14E.exit.i.i.i" - %33 = icmp eq ptr %4, null + %34 = icmp eq ptr %4, null br i1 %33, label %34, label %37 34: ; preds = %_ZN4core4iter6traits8iterator8Iterator12try_for_each17h4e00a8e6617dd036E.llvm.7808069312437652055.exit.i %35 = ptrtoint ptr %.sroa.6.0 to i64 %.sroa.6.8.extract.trunc7 = trunc i64 %35 to i32 - %36 = and i32 %.sroa.6.8.extract.trunc7, 255 br label %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i" 37: ; preds = %_ZN4core4iter6traits8iterator8Iterator12try_for_each17h4e00a8e6617dd036E.llvm.7808069312437652055.exit.i @@ -2398,17 +2374,17 @@ _ZN4core4iter6traits8iterator8Iterator12try_for_each17h4e00a8e6617dd036E.llvm.78 br i1 %39, label %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i", label %40 40: ; preds = %37 - %.sroa.02.0.copyload.i.i.i = load i8, ptr %4, align 1, !noalias !336 - %41 = zext i8 %.sroa.02.0.copyload.i.i.i to i32 + %.sroa.02.0.copyload.i.i.i = load i32, ptr %4, align 1, !noalias !336 br label %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i" "_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i": ; preds = %40, %37, %34 - %.sroa.0.0.i.i = phi i32 [ %36, %34 ], [ %41, %40 ], [ 6, %37 ] - %.not = icmp eq i32 %.sroa.0.0.i.i, 6 + %.sroa.0.0.i.i = phi i32 [ %.sroa.6.8.extract.trunc7, %34 ], [ %.sroa.02.0.copyload.i.i.i, %40 ], [ 6, %37 ] + %36 = and i32 %.sroa.0.0.i.i, 255 + %.not = icmp eq i32 %36, 6 br label %_ZN4core4iter6traits8iterator12iter_compare17hb3e3dac9d30ee57fE.llvm.7808069312437652055.exit -_ZN4core4iter6traits8iterator12iter_compare17hb3e3dac9d30ee57fE.llvm.7808069312437652055.exit: ; preds = %17, %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i.i.i.i.i", %"_ZN4core4iter6traits8iterator8Iterator5eq_by7compare28_$u7b$$u7b$closure$u7d$$u7d$17h9688b5591ceea2c3E.exit.i.i.i.i.i", %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i" - %.0.i = phi i1 [ %.not, %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i" ], [ false, %"_ZN4core4iter6traits8iterator8Iterator5eq_by7compare28_$u7b$$u7b$closure$u7d$$u7d$17h9688b5591ceea2c3E.exit.i.i.i.i.i" ], [ false, %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i.i.i.i.i" ], [ false, %17 ] +_ZN4core4iter6traits8iterator12iter_compare17hb3e3dac9d30ee57fE.llvm.7808069312437652055.exit: ; preds = %17, %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i.i.i.i.i", %25, %"_ZN4core4iter6traits8iterator8Iterator5eq_by7compare28_$u7b$$u7b$closure$u7d$$u7d$17h9688b5591ceea2c3E.exit.i.i.i.i.i", %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i" + %.0.i = phi i1 [ %.not, %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i" ], [ false, %"_ZN4core4iter6traits8iterator8Iterator5eq_by7compare28_$u7b$$u7b$closure$u7d$$u7d$17h9688b5591ceea2c3E.exit.i.i.i.i.i" ], [ false, %25 ], [ false, %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i.i.i.i.i" ], [ false, %17 ] ret i1 %.0.i } @@ -2436,15 +2412,12 @@ define hidden noundef range(i8 1, 4) i8 @_ZN4core4iter6traits8iterator8Iterator8 "_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hfe6169925af08d89E.exit": ; preds = %9 %11 = getelementptr inbounds nuw i8, ptr %7, i64 4 store ptr %11, ptr %0, align 8, !alias.scope !347 - %.sroa.02.0.copyload.i.i = load i8, ptr %7, align 1, !noalias !350 - %.sroa.4.0..0.1.sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %7, i64 1 - %.sroa.4.0.copyload.i.i = load i24, ptr %.sroa.4.0..0.1.sroa_idx.i.i, align 1, !noalias !350 - %12 = zext i24 %.sroa.4.0.copyload.i.i to i32 - %13 = shl nuw i32 %12, 8 - %.not = icmp eq i8 %.sroa.02.0.copyload.i.i, 6 - br i1 %.not, label %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hfe6169925af08d89E.exit.thread", label %14 - -14: ; preds = %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hfe6169925af08d89E.exit" + %.sroa.02.0.copyload.i.i = load i32, ptr %7, align 1, !noalias !350 + %12 = and i32 %.sroa.02.0.copyload.i.i, 255 + %.not = icmp eq i32 %12, 6 + br i1 %.not, label %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hfe6169925af08d89E.exit.thread", label %13 + +13:; preds = %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hfe6169925af08d89E.exit" tail call void @llvm.experimental.noalias.scope.decl(metadata !351) %15 = icmp eq ptr %6, null br i1 %15, label %16, label %17 @@ -2463,30 +2436,25 @@ define hidden noundef range(i8 1, 4) i8 @_ZN4core4iter6traits8iterator8Iterator8 20: ; preds = %17 %21 = getelementptr inbounds nuw i8, ptr %6, i64 4 store ptr %21, ptr %1, align 8, !alias.scope !360 - %.sroa.02.0.copyload.i.i.i.i = load i8, ptr %6, align 1, !noalias !363 - %.sroa.4.0..0.1.sroa_idx.i.i.i.i = getelementptr inbounds nuw i8, ptr %6, i64 1 - %.sroa.4.0.copyload.i.i.i.i = load i24, ptr %.sroa.4.0..0.1.sroa_idx.i.i.i.i, align 1, !noalias !363 - %22 = zext i24 %.sroa.4.0.copyload.i.i.i.i to i32 - %23 = shl nuw i32 %22, 8 - %24 = zext i8 %.sroa.02.0.copyload.i.i.i.i to i32 - %25 = or disjoint i32 %23, %24 + %.sroa.02.0.copyload.i.i.i.i = load i32, ptr %6, align 1, !noalias !363 br label %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i.i" "_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i.i": ; preds = %20, %16 %26 = phi ptr [ null, %16 ], [ %21, %20 ] - %.sroa.0.0.i.i.i = phi i32 [ %.sroa.0.0.copyload.i.i.i.i, %16 ], [ %25, %20 ] + %.sroa.0.0.i.i.i = phi i32 [ %.sroa.0.0.copyload.i.i.i.i, %16 ], [ %.sroa.02.0.copyload.i.i.i.i, %20 ] %27 = and i32 %.sroa.0.0.i.i.i, 255 %28 = icmp eq i32 %27, 6 br i1 %28, label %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hfe6169925af08d89E.exit.thread", label %29 29: ; preds = %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb6f21accce1ea9b1E.exit.i.i" + %.sroa.0.0.extract.trunc.i.i.i.i = trunc i32 %.sroa.02.0.copyload.i.i to i8 %.sroa.01.0.extract.trunc.i.i.i.i = trunc i32 %.sroa.0.0.i.i.i to i8 - %30 = icmp eq i8 %.sroa.02.0.copyload.i.i, %.sroa.01.0.extract.trunc.i.i.i.i + %30 = icmp eq i8 %.sroa.0.0.extract.trunc.i.i.i.i, %.sroa.01.0.extract.trunc.i.i.i.i br i1 %30, label %"_ZN4core4iter6traits8iterator8Iterator5eq_by7compare28_$u7b$$u7b$closure$u7d$$u7d$17h9688b5591ceea2c3E.exit.i.i", label %"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hfe6169925af08d89E.exit.thread" "_ZN4core4iter6traits8iterator8Iterator5eq_by7compare28_$u7b$$u7b$closure$u7d$$u7d$17h9688b5591ceea2c3E.exit.i.i": ; preds = %29 - %31 = icmp eq i8 %.sroa.02.0.copyload.i.i, 5 - %.unshifted.i.i.i.i = xor i32 %.sroa.0.0.i.i.i, %13 + %31 = icmp eq i8 %.sroa.0.0.extract.trunc.i.i.i.i, 5 + %.unshifted.i.i.i.i = xor i32 %.sroa.0.0.i.i.i, %.sroa.02.0.copyload.i.i %32 = icmp ugt i32 %.unshifted.i.i.i.i, 255 %spec.select.i.i.not.i.i.i = and i1 %31, %32 %cond.fr.i.i = freeze i1 %spec.select.i.i.not.i.i.i @@ -3420,17 +3388,11 @@ define hidden i32 @"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter. 10: ; preds = %6 %11 = getelementptr inbounds nuw i8, ptr %2, i64 4 store ptr %11, ptr %0, align 8, !alias.scope !420 - %.sroa.02.0.copyload.i = load i8, ptr %2, align 1, !noalias !417 - %.sroa.4.0..0.1.sroa_idx.i = getelementptr inbounds nuw i8, ptr %2, i64 1 - %.sroa.4.0.copyload.i = load i24, ptr %.sroa.4.0..0.1.sroa_idx.i, align 1, !noalias !417 - %12 = zext i24 %.sroa.4.0.copyload.i to i32 - %13 = shl nuw i32 %12, 8 - %14 = zext i8 %.sroa.02.0.copyload.i to i32 - %15 = or disjoint i32 %13, %14 + %.sroa.02.0.copyload.i = load i32, ptr %2, align 1, !noalias !417 br label %"_ZN104_$LT$core..iter..adapters..copied..Copied$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0f2759607db4c7e1E.exit" "_ZN104_$LT$core..iter..adapters..copied..Copied$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0f2759607db4c7e1E.exit": ; preds = %10, %6, %4 - %.sroa.0.0 = phi i32 [ %.sroa.0.0.copyload.i, %4 ], [ %15, %10 ], [ 6, %6 ] + %.sroa.0.0 = phi i32 [ %.sroa.0.0.copyload.i, %4 ], [ %.sroa.02.0.copyload.i, %10 ], [ 6, %6 ] ret i32 %.sroa.0.0 } @@ -3450,17 +3412,11 @@ define hidden i32 @"_ZN86_$LT$either..Either$LT$L$C$R$GT$$u20$as$u20$core..iter. 8: ; preds = %4 %9 = getelementptr inbounds nuw i8, ptr %2, i64 4 store ptr %9, ptr %0, align 8, !alias.scope !426 - %.sroa.02.0.copyload.i = load i8, ptr %2, align 1, !noalias !423 - %.sroa.4.0..0.1.sroa_idx.i = getelementptr inbounds nuw i8, ptr %2, i64 1 - %.sroa.4.0.copyload.i = load i24, ptr %.sroa.4.0..0.1.sroa_idx.i, align 1, !noalias !423 - %10 = zext i24 %.sroa.4.0.copyload.i to i32 - %11 = shl nuw i32 %10, 8 - %12 = zext i8 %.sroa.02.0.copyload.i to i32 - %13 = or disjoint i32 %11, %12 + %.sroa.02.0.copyload.i = load i32, ptr %2, align 1, !noalias !423 br label %"_ZN104_$LT$core..iter..adapters..copied..Copied$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0f2759607db4c7e1E.exit" "_ZN104_$LT$core..iter..adapters..copied..Copied$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0f2759607db4c7e1E.exit": ; preds = %8, %4, %1 - %.sroa.0.0 = phi i32 [ 6, %1 ], [ %13, %8 ], [ 6, %4 ] + %.sroa.0.0 = phi i32 [ 6, %1 ], [ %.sroa.02.0.copyload.i, %8 ], [ 6, %4 ] ret i32 %.sroa.0.0 } @@ -3596,17 +3552,11 @@ define hidden i32 @"_ZN99_$LT$core..array..iter..IntoIter$LT$T$C$_$GT$$u20$as$u2 %6 = getelementptr inbounds nuw i8, ptr %0, i64 16 %7 = icmp eq i64 %4, 0 tail call void @llvm.assume(i1 %7) - %.sroa.03.0.copyload = load i8, ptr %6, align 8 - %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 17 - %.sroa.4.0.copyload = load i24, ptr %.sroa.4.0..sroa_idx, align 1 - %8 = zext i24 %.sroa.4.0.copyload to i32 - %9 = shl nuw i32 %8, 8 - %10 = zext i8 %.sroa.03.0.copyload to i32 - %11 = or disjoint i32 %9, %10 + %.sroa.03.0.copyload = load i32, ptr %6, align 8 br label %.thread .thread: ; preds = %1, %5 - %.sroa.0.0.insert.insert = phi i32 [ %11, %5 ], [ 6, %1 ] + %.sroa.0.0.insert.insert = phi i32 [ %.sroa.03.0.copyload, %5 ], [ 6, %1 ] ret i32 %.sroa.0.0.insert.insert } diff --git a/bench/wasmtime-rs/optimized/3vdx8w41hjyzioqv.ll b/bench/wasmtime-rs/optimized/3vdx8w41hjyzioqv.ll index d7858514407..69d6ca36b1c 100644 --- a/bench/wasmtime-rs/optimized/3vdx8w41hjyzioqv.ll +++ b/bench/wasmtime-rs/optimized/3vdx8w41hjyzioqv.ll @@ -2863,17 +2863,11 @@ define hidden i32 @"_ZN104_$LT$core..iter..adapters..copied..Copied$LT$I$GT$$u20 6: ; preds = %1 %7 = getelementptr inbounds nuw i8, ptr %4, i64 4 store ptr %7, ptr %0, align 8, !alias.scope !606 - %.sroa.02.0.copyload = load i8, ptr %4, align 1 - %.sroa.4.0..0.1.sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 1 - %.sroa.4.0.copyload = load i24, ptr %.sroa.4.0..0.1.sroa_idx, align 1 - %8 = zext i24 %.sroa.4.0.copyload to i32 - %9 = shl nuw i32 %8, 8 - %10 = zext i8 %.sroa.02.0.copyload to i32 - %11 = or disjoint i32 %9, %10 + %.sroa.02.0.copyload = load i32, ptr %4, align 1 br label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb77ba305180dea4cE.llvm.3458943816331328394.exit.thread" "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb77ba305180dea4cE.llvm.3458943816331328394.exit.thread": ; preds = %1, %6 - %.sroa.0.0.insert.insert = phi i32 [ %11, %6 ], [ 6, %1 ] + %.sroa.0.0.insert.insert = phi i32 [ %.sroa.02.0.copyload, %6 ], [ 6, %1 ] ret i32 %.sroa.0.0.insert.insert } @@ -4621,17 +4615,11 @@ define hidden i32 @"_ZN119_$LT$core..iter..adapters..copied..Copied$LT$I$GT$$u20 6: ; preds = %1 %7 = getelementptr inbounds i8, ptr %3, i64 -4 store ptr %7, ptr %2, align 8, !alias.scope !1098 - %.sroa.02.0.copyload = load i8, ptr %7, align 1 - %.sroa.4.0..0.1.sroa_idx = getelementptr inbounds i8, ptr %3, i64 -3 - %.sroa.4.0.copyload = load i24, ptr %.sroa.4.0..0.1.sroa_idx, align 1 - %8 = zext i24 %.sroa.4.0.copyload to i32 - %9 = shl nuw i32 %8, 8 - %10 = zext i8 %.sroa.02.0.copyload to i32 - %11 = or disjoint i32 %9, %10 + %.sroa.02.0.copyload = load i32, ptr %7, align 1 br label %"_ZN106_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..double_ended..DoubleEndedIterator$GT$9next_back17h634d3e4d7b412b4cE.llvm.3458943816331328394.exit.thread" "_ZN106_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..double_ended..DoubleEndedIterator$GT$9next_back17h634d3e4d7b412b4cE.llvm.3458943816331328394.exit.thread": ; preds = %1, %6 - %.sroa.0.0.insert.insert = phi i32 [ %11, %6 ], [ 6, %1 ] + %.sroa.0.0.insert.insert = phi i32 [ %.sroa.02.0.copyload, %6 ], [ 6, %1 ] ret i32 %.sroa.0.0.insert.insert } diff --git a/bench/wasmtime-rs/optimized/enal6epyb0tyurl.ll b/bench/wasmtime-rs/optimized/enal6epyb0tyurl.ll index cf9b35c5a9d..bd0797f924e 100644 --- a/bench/wasmtime-rs/optimized/enal6epyb0tyurl.ll +++ b/bench/wasmtime-rs/optimized/enal6epyb0tyurl.ll @@ -34089,16 +34089,15 @@ define hidden void @"_ZN9addr2line16ResUnit$LT$R$GT$25find_function_or_location2 br label %82 "_ZN9addr2line16ResUnit$LT$R$GT$11parse_lines17h264def43600fdabcE.exit.i.i": ; preds = %69 - %.sroa.0.0.copyload.i.i = load i8, ptr %80, align 8, !noalias !6442 - %.sroa.6.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %80, i64 1 - %.sroa.6.i.sroa.0.0.copyload.i = load i56, ptr %.sroa.6.0..sroa_idx.i.i, align 1, !noalias !6442 + %.sroa.0.0.copyload.i.i = load i64, ptr %80, align 8, !noalias !6450 %.sroa.761.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %80, i64 8 %.sroa.761.0.copyload.i.i = load ptr, ptr %.sroa.761.0..sroa_idx.i.i, align 8, !noalias !6442 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5), !noalias !6447 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6), !noalias !6442 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7), !noalias !6442 - %81 = icmp eq i8 %.sroa.0.0.copyload.i.i, 75 - br i1 %81, label %82, label %158 + %81 = and i64 %.sroa.0.0.copyload.i.i, 255 + %82 = icmp eq i64 %81, 75 + br i1 %82, label %83, label %159 82: ; preds = %"_ZN9addr2line16ResUnit$LT$R$GT$11parse_lines17h264def43600fdabcE.exit.i.i", %"_ZN9addr2line16ResUnit$LT$R$GT$11parse_lines17h264def43600fdabcE.exit.thread.i.i" %.sroa.761.065.ph.i.i = phi ptr [ %.sroa.761.0.copyload.i.i, %"_ZN9addr2line16ResUnit$LT$R$GT$11parse_lines17h264def43600fdabcE.exit.i.i" ], [ %.sroa.761.0.ph.i.i, %"_ZN9addr2line16ResUnit$LT$R$GT$11parse_lines17h264def43600fdabcE.exit.thread.i.i" ] @@ -34123,9 +34122,9 @@ define hidden void @"_ZN9addr2line16ResUnit$LT$R$GT$25find_function_or_location2 call void @llvm.assume(i1 %90) %91 = getelementptr inbounds { { { { { ptr, i64 } }, {} }, {} }, i64, i64 }, ptr %85, i64 %89 %92 = getelementptr i8, ptr %91, i64 16 - %.val23.i.i.i = load i64, ptr %92, align 8, !alias.scope !6450, !noalias !6453, !noundef !4 + %.val23.i.i.i = load i64, ptr %92, align 8, !alias.scope !6451, !noalias !6454, !noundef !4 %93 = getelementptr i8, ptr %91, i64 24 - %.val24.i.i.i = load i64, ptr %93, align 8, !alias.scope !6450, !noalias !6453 + %.val24.i.i.i = load i64, ptr %93, align 8, !alias.scope !6451, !noalias !6454 %94 = icmp uge i64 %63, %.val23.i.i.i %.not.i.i.i.i102 = icmp uge i64 %63, %.val24.i.i.i %not..i.i.i = xor i1 %94, true @@ -34172,7 +34171,7 @@ define hidden void @"_ZN9addr2line16ResUnit$LT$R$GT$25find_function_or_location2 %111 = icmp ult i64 %.fr94.i.i, %108 call void @llvm.assume(i1 %111) %112 = getelementptr inbounds { i64, i64, i32, i32 }, ptr %106, i64 %.fr94.i.i - %.val23.i53.i.i = load i64, ptr %112, align 8, !alias.scope !6455, !noalias !6458, !noundef !4 + %.val23.i53.i.i = load i64, ptr %112, align 8, !alias.scope !6456, !noalias !6459, !noundef !4 %113 = icmp eq i64 %.val23.i53.i.i, %63 br i1 %113, label %.loopexit.i, label %114 @@ -34199,22 +34198,22 @@ define hidden void @"_ZN9addr2line16ResUnit$LT$R$GT$25find_function_or_location2 .loopexit.i: ; preds = %.lr.ph.i52.i.i, %.thread90.i.i, %120, %.thread83.i.i %.0.i.i103 = phi i64 [ 0, %.thread83.i.i ], [ 0, %.thread90.i.i ], [ %123, %120 ], [ %.fr94.i.i, %.lr.ph.i52.i.i ] %124 = ptrtoint ptr %85 to i64 - call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %9), !noalias !6460 - store ptr %.sroa.761.065.ph.i.i, ptr %9, align 8, !noalias !6460 + call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %9), !noalias !6450 + store ptr %.sroa.761.065.ph.i.i, ptr %9, align 8, !noalias !6450 %.sroa.3.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %9, i64 8 - store i64 %124, ptr %.sroa.3.0..sroa_idx.i, align 8, !noalias !6460 + store i64 %124, ptr %.sroa.3.0..sroa_idx.i, align 8, !noalias !6450 %.sroa.3.sroa.2.0..sroa.3.0..sroa_idx.sroa_idx.i = getelementptr inbounds nuw i8, ptr %9, i64 16 - store i64 %87, ptr %.sroa.3.sroa.2.0..sroa.3.0..sroa_idx.sroa_idx.i, align 8, !noalias !6460 + store i64 %87, ptr %.sroa.3.sroa.2.0..sroa.3.0..sroa_idx.sroa_idx.i, align 8, !noalias !6450 %.sroa.3.sroa.2.sroa.2.0..sroa.3.sroa.2.0..sroa.3.0..sroa_idx.sroa_idx.sroa_idx.i = getelementptr inbounds nuw i8, ptr %9, i64 24 - store i64 %103, ptr %.sroa.3.sroa.2.sroa.2.0..sroa.3.sroa.2.0..sroa.3.0..sroa_idx.sroa_idx.sroa_idx.i, align 8, !noalias !6460 + store i64 %103, ptr %.sroa.3.sroa.2.sroa.2.0..sroa.3.sroa.2.0..sroa.3.0..sroa_idx.sroa_idx.sroa_idx.i, align 8, !noalias !6450 %.sroa.3.sroa.2.sroa.3.0..sroa.3.sroa.2.0..sroa.3.0..sroa_idx.sroa_idx.sroa_idx.i = getelementptr inbounds nuw i8, ptr %9, i64 32 - store i64 %.0.i.i103, ptr %.sroa.3.sroa.2.sroa.3.0..sroa.3.sroa.2.0..sroa.3.0..sroa_idx.sroa_idx.sroa_idx.i, align 8, !noalias !6460 + store i64 %.0.i.i103, ptr %.sroa.3.sroa.2.sroa.3.0..sroa.3.sroa.2.0..sroa.3.0..sroa_idx.sroa_idx.sroa_idx.i, align 8, !noalias !6450 %.sroa.3.sroa.2.sroa.4.0..sroa.3.sroa.2.0..sroa.3.0..sroa_idx.sroa_idx.sroa_idx.i = getelementptr inbounds nuw i8, ptr %9, i64 40 - store i64 %65, ptr %.sroa.3.sroa.2.sroa.4.0..sroa.3.sroa.2.0..sroa.3.0..sroa_idx.sroa_idx.sroa_idx.i, align 8, !noalias !6460 - call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %8), !noalias !6460 - call void @"_ZN91_$LT$addr2line..LocationRangeUnitIter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b2d0bbe114507cfE"(ptr noalias noundef nonnull sret({ [4 x i32], i32, [7 x i32] }) align 8 captures(none) dereferenceable(48) %8, ptr noalias noundef nonnull align 8 dereferenceable(48) %9), !noalias !6460 + store i64 %65, ptr %.sroa.3.sroa.2.sroa.4.0..sroa.3.sroa.2.0..sroa.3.0..sroa_idx.sroa_idx.sroa_idx.i, align 8, !noalias !6450 + call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %8), !noalias !6450 + call void @"_ZN91_$LT$addr2line..LocationRangeUnitIter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6b2d0bbe114507cfE"(ptr noalias noundef nonnull sret({ [4 x i32], i32, [7 x i32] }) align 8 captures(none) dereferenceable(48) %8, ptr noalias noundef nonnull align 8 dereferenceable(48) %9), !noalias !6450 %125 = getelementptr inbounds nuw i8, ptr %8, i64 16 - %126 = load i32, ptr %125, align 8, !range !360, !noalias !6460, !noundef !4 + %126 = load i32, ptr %125, align 8, !range !360, !noalias !6450, !noundef !4 %127 = icmp eq i32 %126, 2 br i1 %127, label %129, label %128 @@ -34234,8 +34233,8 @@ define hidden void @"_ZN9addr2line16ResUnit$LT$R$GT$25find_function_or_location2 %.sroa.10.0115 = phi i64 [ %.sroa.10.0.copyload, %128 ], [ undef, %.loopexit.i ] %.sroa.8.0 = phi ptr [ %.sroa.8.0.copyload, %128 ], [ undef, %.loopexit.i ] %.sroa.7108.0 = phi i32 [ %.sroa.7108.0.copyload, %128 ], [ undef, %.loopexit.i ] - call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %8), !noalias !6460 - call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9), !noalias !6460 + call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %8), !noalias !6450 + call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9), !noalias !6450 br label %157 130: ; preds = %.lr.ph.i.i @@ -34328,16 +34327,12 @@ define hidden void @"_ZN9addr2line16ResUnit$LT$R$GT$25find_function_or_location2 br label %163 158: ; preds = %"_ZN9addr2line16ResUnit$LT$R$GT$11parse_lines17h264def43600fdabcE.exit.i.i" - %.sroa.6.8.insert.ext.i = zext i8 %.sroa.0.0.copyload.i.i to i64 - %.sroa.6.9.insert.ext.i = zext i56 %.sroa.6.i.sroa.0.0.copyload.i to i64 - %.sroa.6.9.insert.shift.i = shl nuw i64 %.sroa.6.9.insert.ext.i, 8 - %.sroa.6.9.insert.insert.i = or disjoint i64 %.sroa.6.9.insert.shift.i, %.sroa.6.8.insert.ext.i - %159 = inttoptr i64 %.sroa.6.9.insert.insert.i to ptr - %160 = ptrtoint ptr %.sroa.761.0.copyload.i.i to i64 - %161 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %159, ptr %161, align 8 + %160 = inttoptr i64 %.sroa.0.0.copyload.i.i to ptr + %161 = ptrtoint ptr %.sroa.761.0.copyload.i.i to i64 + %162 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr %160, ptr %162, align 8 %.sroa.2.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 - store i64 %160, ptr %.sroa.2.0..sroa_idx, align 8 + store i64 %161, ptr %.sroa.2.0..sroa_idx, align 8 %162 = getelementptr inbounds nuw i8, ptr %0, i64 8 store i32 3, ptr %162, align 8 br label %164 @@ -47278,17 +47273,17 @@ attributes #44 = { cold noreturn nounwind } !6447 = !{!6448, !6443, !6445} !6448 = distinct !{!6448, !6449, !"_ZN9addr2line16ResUnit$LT$R$GT$11parse_lines17h264def43600fdabcE: argument 0"} !6449 = distinct !{!6449, !"_ZN9addr2line16ResUnit$LT$R$GT$11parse_lines17h264def43600fdabcE"} -!6450 = !{!6451} -!6451 = distinct !{!6451, !6452, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16binary_search_by17hcdcbdd7b13b7ba63E: argument 0"} -!6452 = distinct !{!6452, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16binary_search_by17hcdcbdd7b13b7ba63E"} -!6453 = !{!6454, !6443, !6445} -!6454 = distinct !{!6454, !6452, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16binary_search_by17hcdcbdd7b13b7ba63E: argument 1"} -!6455 = !{!6456} -!6456 = distinct !{!6456, !6457, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16binary_search_by17h9663e5dd4452c22aE: argument 0"} -!6457 = distinct !{!6457, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16binary_search_by17h9663e5dd4452c22aE"} -!6458 = !{!6459, !6443, !6445} -!6459 = distinct !{!6459, !6457, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16binary_search_by17h9663e5dd4452c22aE: argument 1"} -!6460 = !{!6445} +!6450 = !{!6445} +!6451 = !{!6452} +!6452 = distinct !{!6452, !6453, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16binary_search_by17hcdcbdd7b13b7ba63E: argument 0"} +!6453 = distinct !{!6453, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16binary_search_by17hcdcbdd7b13b7ba63E"} +!6454 = !{!6455, !6443, !6445} +!6455 = distinct !{!6455, !6453, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16binary_search_by17hcdcbdd7b13b7ba63E: argument 1"} +!6456 = !{!6457} +!6457 = distinct !{!6457, !6458, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16binary_search_by17h9663e5dd4452c22aE: argument 0"} +!6458 = distinct !{!6458, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16binary_search_by17h9663e5dd4452c22aE"} +!6459 = !{!6460, !6443, !6445} +!6460 = distinct !{!6460, !6458, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$16binary_search_by17h9663e5dd4452c22aE: argument 1"} !6461 = !{i32 0, i32 5} !6462 = !{!6463, !6465, !6467, !6469, !6471} !6463 = distinct !{!6463, !6464, !"_ZN86_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6d4a23860c981198E.llvm.5456684732158232753: argument 0"} diff --git a/bench/wireshark/optimized/packet-autosar-ipdu-multiplexer.ll b/bench/wireshark/optimized/packet-autosar-ipdu-multiplexer.ll index 4f2a75e77d2..309655b19f0 100644 --- a/bench/wireshark/optimized/packet-autosar-ipdu-multiplexer.ll +++ b/bench/wireshark/optimized/packet-autosar-ipdu-multiplexer.ll @@ -1553,22 +1553,17 @@ define internal i32 @dissect_ipdum_message_flexray(ptr noundef %0, ptr noundef % br i1 %9, label %get_flexray_mapping.exit.thread, label %get_flexray_mapping.exit get_flexray_mapping.exit: ; preds = %7 - %10 = load i16, ptr %3, align 2 - %11 = getelementptr inbounds nuw i8, ptr %3, i64 2 - %12 = load i16, ptr %11, align 2 - %13 = zext i16 %12 to i64 - %14 = shl nuw nsw i64 %13, 16 + %10 = load i32, ptr %3, align 2 + %11 = zext i32 %10 to i64 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #14 - %15 = zext i16 %10 to i64 - %16 = or disjoint i64 %14, %15 - store i64 %16, ptr %5, align 8 - %17 = call ptr @g_hash_table_lookup(ptr noundef nonnull %8, ptr noundef nonnull %5) + store i64 %11, ptr %5, align 8 + %12 = call ptr @g_hash_table_lookup(ptr noundef nonnull %8, ptr noundef nonnull %5) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #14 - %18 = icmp eq ptr %17, null + %18 = icmp eq ptr %12, null br i1 %18, label %get_flexray_mapping.exit.thread, label %19 19: ; preds = %get_flexray_mapping.exit - %20 = getelementptr inbounds nuw i8, ptr %17, i64 12 + %20 = getelementptr inbounds nuw i8, ptr %12, i64 12 %21 = load i32, ptr %20, align 4 %22 = call fastcc i32 @dissect_ipdum_payload(ptr noundef %0, ptr noundef %1, ptr noundef %2, i32 noundef %21) br label %get_flexray_mapping.exit.thread diff --git a/bench/wireshark/optimized/packet-flexray.ll b/bench/wireshark/optimized/packet-flexray.ll index eb59b78746f..799943792d6 100644 --- a/bench/wireshark/optimized/packet-flexray.ll +++ b/bench/wireshark/optimized/packet-flexray.ll @@ -175,27 +175,17 @@ ht_lookup_sender_receiver_config.exit.thread19: ; preds = %2 br label %41 8: ; preds = %2 - %9 = getelementptr inbounds nuw i8, ptr %1, i64 4 - %10 = load i16, ptr %9, align 2 - %11 = getelementptr inbounds nuw i8, ptr %1, i64 3 - %12 = load i8, ptr %11, align 1 - %13 = getelementptr inbounds nuw i8, ptr %1, i64 2 - %14 = load i8, ptr %13, align 2 - %15 = load i16, ptr %1, align 2 - %16 = zext i16 %10 to i64 - %17 = shl nuw nsw i64 %16, 32 - %18 = zext i8 %12 to i64 - %19 = shl nuw nsw i64 %18, 24 - %20 = or disjoint i64 %19, %17 - %21 = zext i8 %14 to i64 - %22 = shl nuw nsw i64 %21, 16 - %23 = or disjoint i64 %20, %22 - %24 = zext i16 %15 to i64 - %25 = or disjoint i64 %23, %24 - store i64 %25, ptr %3, align 8 - %26 = call ptr @g_hash_table_lookup(ptr noundef nonnull %6, ptr noundef nonnull %3) - %27 = icmp eq ptr %26, null - br i1 %27, label %ht_lookup_sender_receiver_config.exit, label %ht_lookup_sender_receiver_config.exit.thread + %9 = getelementptr i8, ptr %1, i64 2 + %10 = load i32, ptr %9, align 2 + %11 = zext i32 %10 to i64 + %12 = shl nuw nsw i64 %11, 16 + %13 = load i16, ptr %1, align 2 + %14 = zext i16 %13 to i64 + %15 = or disjoint i64 %12, %14 + store i64 %15, ptr %3, align 8 + %16 = call ptr @g_hash_table_lookup(ptr noundef nonnull %6, ptr noundef nonnull %3) + %17 = icmp eq ptr %16, null + br i1 %17, label %ht_lookup_sender_receiver_config.exit, label %ht_lookup_sender_receiver_config.exit.thread ht_lookup_sender_receiver_config.exit.thread: ; preds = %8 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #9 @@ -212,7 +202,7 @@ ht_lookup_sender_receiver_config.exit: ; preds = %8 br i1 %.not.not, label %41, label %32 32: ; preds = %ht_lookup_sender_receiver_config.exit.thread, %ht_lookup_sender_receiver_config.exit - %.011.i16 = phi ptr [ %26, %ht_lookup_sender_receiver_config.exit.thread ], [ %31, %ht_lookup_sender_receiver_config.exit ] + %.011.i16 = phi ptr [ %16, %ht_lookup_sender_receiver_config.exit.thread ], [ %31, %ht_lookup_sender_receiver_config.exit ] %33 = getelementptr inbounds nuw i8, ptr %0, i64 112 %34 = getelementptr inbounds nuw i8, ptr %0, i64 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(144) %33, i8 0, i64 144, i1 false) @@ -422,49 +412,50 @@ declare ptr @register_dissector(ptr noundef, ptr noundef, i32 noundef) local_unn ; Function Attrs: null_pointer_is_valid sspstrong uwtable define internal i32 @dissect_flexray(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr readnone captures(none) %3) #0 { - %5 = alloca i8, align 1 - %6 = alloca i32, align 4 - %7 = alloca i8, align 1 + %5 = alloca i64, align 8 + %6 = alloca i8, align 1 + %7 = alloca i32, align 4 %8 = alloca i8, align 1 %9 = alloca i8, align 1 - %10 = alloca i32, align 4 + %10 = alloca i8, align 1 %11 = alloca i32, align 4 %12 = alloca i32, align 4 - %13 = alloca %struct.flexray_info, align 2 - %14 = alloca i32, align 4 - %15 = getelementptr inbounds nuw i8, ptr %1, i64 8 - %16 = load ptr, ptr %15, align 8 - tail call void @col_set_str(ptr noundef %16, i32 noundef 35, ptr noundef nonnull @.str.51) - %17 = load ptr, ptr %15, align 8 - tail call void @col_clear(ptr noundef %17, i32 noundef 25) - %18 = load i32, ptr @proto_flexray, align 4 - %19 = tail call ptr @proto_tree_add_item(ptr noundef %2, i32 noundef %18, ptr noundef %0, i32 noundef 0, i32 noundef -1, i32 noundef 0) - %20 = load i32, ptr @ett_flexray, align 4 - %21 = tail call ptr @proto_item_add_subtree(ptr noundef %19, i32 noundef %20) - %22 = load i32, ptr @hf_flexray_measurement_header_field, align 4 - %23 = tail call ptr @proto_tree_add_item(ptr noundef %21, i32 noundef %22, ptr noundef %0, i32 noundef 0, i32 noundef 1, i32 noundef 0) - %24 = load i32, ptr @ett_flexray_measurement_header, align 4 - %25 = tail call ptr @proto_item_add_subtree(ptr noundef %23, i32 noundef %24) - call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #9 - %26 = load i32, ptr @hf_flexray_ch, align 4 - %27 = call ptr @proto_tree_add_item_ret_boolean(ptr noundef %25, i32 noundef %26, ptr noundef %0, i32 noundef 0, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %5) - call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #9 - %28 = load i32, ptr @hf_flexray_ti, align 4 - %29 = call ptr @proto_tree_add_item_ret_uint(ptr noundef %25, i32 noundef %28, ptr noundef %0, i32 noundef 0, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %6) - %30 = load ptr, ptr %15, align 8 - %31 = load i32, ptr %6, align 4 - %32 = call ptr @val_to_str(i32 noundef %31, ptr noundef nonnull @flexray_type_names, ptr noundef nonnull @.str.88) - call void (ptr, i32, ptr, ...) @col_add_fstr(ptr noundef %30, i32 noundef 25, ptr noundef nonnull @.str.87, ptr noundef %32) - %33 = load i32, ptr %6, align 4 - switch i32 %33, label %148 [ + %13 = alloca i32, align 4 + %14 = alloca %struct.flexray_info, align 4 + %15 = alloca i32, align 4 + %16 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %17 = load ptr, ptr %16, align 8 + tail call void @col_set_str(ptr noundef %17, i32 noundef 35, ptr noundef nonnull @.str.51) + %18 = load ptr, ptr %16, align 8 + tail call void @col_clear(ptr noundef %18, i32 noundef 25) + %19 = load i32, ptr @proto_flexray, align 4 + %20 = tail call ptr @proto_tree_add_item(ptr noundef %2, i32 noundef %19, ptr noundef %0, i32 noundef 0, i32 noundef -1, i32 noundef 0) + %21 = load i32, ptr @ett_flexray, align 4 + %22 = tail call ptr @proto_item_add_subtree(ptr noundef %20, i32 noundef %21) + %23 = load i32, ptr @hf_flexray_measurement_header_field, align 4 + %24 = tail call ptr @proto_tree_add_item(ptr noundef %22, i32 noundef %23, ptr noundef %0, i32 noundef 0, i32 noundef 1, i32 noundef 0) + %25 = load i32, ptr @ett_flexray_measurement_header, align 4 + %26 = tail call ptr @proto_item_add_subtree(ptr noundef %24, i32 noundef %25) + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #9 + %27 = load i32, ptr @hf_flexray_ch, align 4 + %28 = call ptr @proto_tree_add_item_ret_boolean(ptr noundef %26, i32 noundef %27, ptr noundef %0, i32 noundef 0, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %6) + call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #9 + %29 = load i32, ptr @hf_flexray_ti, align 4 + %30 = call ptr @proto_tree_add_item_ret_uint(ptr noundef %26, i32 noundef %29, ptr noundef %0, i32 noundef 0, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %7) + %31 = load ptr, ptr %16, align 8 + %32 = load i32, ptr %7, align 4 + %33 = call ptr @val_to_str(i32 noundef %32, ptr noundef nonnull @flexray_type_names, ptr noundef nonnull @.str.88) + call void (ptr, i32, ptr, ...) @col_add_fstr(ptr noundef %41, i32 noundef 25, ptr noundef nonnull @.str.87, ptr noundef %33) + %34 = load i32, ptr %7, align 4 + switch i32 %34, label %172 [ i32 1, label %34 - i32 2, label %142 + i32 2, label %166 ] 34: ; preds = %4 %35 = load i32, ptr @hf_flexray_error_flags_field, align 4 %36 = load i32, ptr @ett_flexray_error_flags, align 4 - %37 = call ptr @proto_tree_add_bitmask(ptr noundef %21, ptr noundef %0, i32 noundef 1, i32 noundef %35, i32 noundef %36, ptr noundef nonnull @error_fields, i32 noundef 0) + %37 = call ptr @proto_tree_add_bitmask(ptr noundef %22, ptr noundef %0, i32 noundef 1, i32 noundef %35, i32 noundef %36, ptr noundef nonnull @error_fields, i32 noundef 0) %38 = load i32, ptr @ett_flexray_error_flags, align 4 %39 = call ptr @proto_item_add_subtree(ptr noundef %37, i32 noundef %38) %40 = call zeroext i8 @tvb_get_uint8(ptr noundef %0, i32 noundef 1) @@ -479,187 +470,239 @@ define internal i32 @dissect_flexray(ptr noundef %0, ptr noundef %1, ptr noundef 44: ; preds = %42, %34 %45 = call i32 @tvb_captured_length(ptr noundef %0) %46 = load i32, ptr @hf_flexray_frame_header, align 4 - %47 = call ptr @proto_tree_add_item(ptr noundef %21, i32 noundef %46, ptr noundef %0, i32 noundef 2, i32 noundef -1, i32 noundef 0) + %47 = call ptr @proto_tree_add_item(ptr noundef %22, i32 noundef %46, ptr noundef %0, i32 noundef 2, i32 noundef -1, i32 noundef 0) %48 = load i32, ptr @ett_flexray_frame, align 4 %49 = call ptr @proto_item_add_subtree(ptr noundef %47, i32 noundef %48) - call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #9 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #9 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #9 - %50 = load i32, ptr @hf_flexray_res, align 4 - %51 = call ptr @proto_tree_add_item(ptr noundef %49, i32 noundef %50, ptr noundef %0, i32 noundef 2, i32 noundef 1, i32 noundef 0) - %52 = load i32, ptr @hf_flexray_ppi, align 4 - %53 = call ptr @proto_tree_add_item(ptr noundef %49, i32 noundef %52, ptr noundef %0, i32 noundef 2, i32 noundef 1, i32 noundef 0) - %54 = load i32, ptr @hf_flexray_nfi, align 4 - %55 = call ptr @proto_tree_add_item_ret_boolean(ptr noundef %49, i32 noundef %54, ptr noundef %0, i32 noundef 2, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %7) - %56 = load i32, ptr @hf_flexray_sfi, align 4 - %57 = call ptr @proto_tree_add_item_ret_boolean(ptr noundef %49, i32 noundef %56, ptr noundef %0, i32 noundef 2, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %8) - %58 = load i32, ptr @hf_flexray_stfi, align 4 - %59 = call ptr @proto_tree_add_item_ret_boolean(ptr noundef %49, i32 noundef %58, ptr noundef %0, i32 noundef 2, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %9) - %60 = load i8, ptr %9, align 1, !range !6, !noundef !7 - %61 = trunc nuw i8 %60 to i1 - br i1 %61, label %62, label %67 - -62: ; preds = %44 - %63 = load i8, ptr %8, align 1, !range !6, !noundef !7 - %64 = trunc nuw i8 %63 to i1 - br i1 %64, label %67, label %65 - -65: ; preds = %62 - %66 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %49, ptr noundef nonnull @ei_flexray_stfi_flag) - br label %67 - -67: ; preds = %65, %62, %44 - %.1 = phi i1 [ %.not, %62 ], [ false, %65 ], [ %.not, %44 ] - call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #9 - %68 = load i32, ptr @hf_flexray_fid, align 4 - %69 = call ptr @proto_tree_add_item_ret_uint(ptr noundef %49, i32 noundef %68, ptr noundef %0, i32 noundef 2, i32 noundef 2, i32 noundef 0, ptr noundef nonnull %10) - %70 = load ptr, ptr %15, align 8 - %71 = load i32, ptr %10, align 4 - call void (ptr, i32, ptr, ...) @col_append_fstr(ptr noundef %70, i32 noundef 25, ptr noundef nonnull @.str.89, i32 noundef %71) - %72 = load i32, ptr %10, align 4 + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #9 + %51 = load i32, ptr @hf_flexray_res, align 4 + %52 = call ptr @proto_tree_add_item(ptr noundef %50, i32 noundef %51, ptr noundef %0, i32 noundef 2, i32 noundef 1, i32 noundef 0) + %53 = load i32, ptr @hf_flexray_ppi, align 4 + %54 = call ptr @proto_tree_add_item(ptr noundef %50, i32 noundef %53, ptr noundef %0, i32 noundef 2, i32 noundef 1, i32 noundef 0) + %55 = load i32, ptr @hf_flexray_nfi, align 4 + %56 = call ptr @proto_tree_add_item_ret_boolean(ptr noundef %50, i32 noundef %55, ptr noundef %0, i32 noundef 2, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %8) + %57 = load i32, ptr @hf_flexray_sfi, align 4 + %58 = call ptr @proto_tree_add_item_ret_boolean(ptr noundef %50, i32 noundef %57, ptr noundef %0, i32 noundef 2, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %9) + %59 = load i32, ptr @hf_flexray_stfi, align 4 + %60 = call ptr @proto_tree_add_item_ret_boolean(ptr noundef %50, i32 noundef %59, ptr noundef %0, i32 noundef 2, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %10) + %61 = load i8, ptr %10, align 1, !range !6, !noundef !7 + %62 = trunc nuw i8 %61 to i1 + br i1 %62, label %63, label %68 + +63:; preds = %45 + %64 = load i8, ptr %9, align 1, !range !6, !noundef !7 + %65 = trunc nuw i8 %64 to i1 + br i1 %65, label %68, label %66 + +66:; preds = %63 + %67 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %50, ptr noundef nonnull @ei_flexray_stfi_flag) + br label %68 + +68:; preds = %66, %63, %44 + %.1 = phi i1 [ %.not, %63 ], [ false, %66 ], [ %.not, %45 ] call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #9 - %73 = load i32, ptr @hf_flexray_pl, align 4 - %74 = call ptr @proto_tree_add_item_ret_uint(ptr noundef %49, i32 noundef %73, ptr noundef %0, i32 noundef 4, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %11) - %75 = load i32, ptr %11, align 4 - %76 = shl i32 %75, 1 - %77 = add i32 %45, -7 - %78 = icmp sgt i32 %76, %77 - %79 = icmp slt i32 %76, %77 - %80 = call i32 @llvm.smax.i32(i32 %76, i32 0) - %.091 = select i1 %79, i32 %80, i32 %77 - %81 = load i32, ptr @hf_flexray_hcrc, align 4 - %82 = call ptr @proto_tree_add_item(ptr noundef %49, i32 noundef %81, ptr noundef %0, i32 noundef 4, i32 noundef 3, i32 noundef 0) + %73 = load i32, ptr @hf_flexray_fid, align 4 + %74 = call ptr @proto_tree_add_item_ret_uint(ptr noundef %49, i32 noundef %73, ptr noundef %0, i32 noundef 2, i32 noundef 2, i32 noundef 0, ptr noundef nonnull %11) + %75 = load ptr, ptr %16, align 8 + %72 = load i32, ptr %11, align 4 + call void (ptr, i32, ptr, ...) @col_append_fstr(ptr noundef %71, i32 noundef 25, ptr noundef nonnull @.str.89, i32 noundef %72) + %73 = load i32, ptr %11, align 4 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #9 - %83 = load i32, ptr @hf_flexray_cc, align 4 - %84 = call ptr @proto_tree_add_item_ret_uint(ptr noundef %49, i32 noundef %83, ptr noundef %0, i32 noundef 6, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %12) - %85 = load ptr, ptr %15, align 8 - %86 = load i32, ptr %12, align 4 - call void (ptr, i32, ptr, ...) @col_append_fstr(ptr noundef %85, i32 noundef 25, ptr noundef nonnull @.str.90, i32 noundef %86) - %87 = load i8, ptr %7, align 1, !range !6, !noundef !7 - %88 = trunc nuw i8 %87 to i1 - br i1 %88, label %89, label %101 - -89: ; preds = %67 - %90 = icmp ne i32 %72, 0 - %spec.select = and i1 %90, %.1 - br i1 %78, label %91, label %93 - -91: ; preds = %89 - %92 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %49, ptr noundef nonnull @ei_flexray_frame_payload_truncated) - br label %93 - -93: ; preds = %91, %89 - %.3 = phi i1 [ false, %91 ], [ %spec.select, %89 ] - %94 = icmp ne ptr %0, null - %95 = icmp sgt i32 %.091, 0 - %or.cond = and i1 %94, %95 - br i1 %or.cond, label %96, label %106 - -96: ; preds = %93 - %97 = load ptr, ptr %15, align 8 - %98 = getelementptr inbounds nuw i8, ptr %1, i64 408 - %99 = load ptr, ptr %98, align 8 - %100 = call ptr @tvb_bytes_to_str_punct(ptr noundef %99, ptr noundef nonnull %0, i32 noundef 7, i32 noundef %.091, i8 noundef signext 32) - call void (ptr, i32, ptr, ...) @col_append_fstr(ptr noundef %97, i32 noundef 25, ptr noundef nonnull @.str.91, ptr noundef %100) - br label %106 - -101: ; preds = %67 - %102 = load ptr, ptr %15, align 8 - call void @col_append_str(ptr noundef %102, i32 noundef 25, ptr noundef nonnull @.str.92) - %103 = icmp ne i32 %.091, 0 - %or.cond3 = and i1 %78, %103 - br i1 %or.cond3, label %104, label %106 - -104: ; preds = %101 - %105 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %49, ptr noundef nonnull @ei_flexray_frame_payload_truncated) - br label %106 - -106: ; preds = %101, %104, %93, %96 - %.4 = phi i1 [ %.3, %96 ], [ %.3, %93 ], [ false, %104 ], [ false, %101 ] - call void @proto_item_set_end(ptr noundef %47, ptr noundef %0, i32 noundef 7) - call void @llvm.lifetime.start.p0(i64 6, ptr nonnull %13) #9 - %107 = load i32, ptr %10, align 4 - %108 = trunc i32 %107 to i16 - store i16 %108, ptr %13, align 2 - %109 = getelementptr inbounds nuw i8, ptr %13, i64 2 - %110 = load i32, ptr %12, align 4 - %111 = trunc i32 %110 to i8 - store i8 %111, ptr %109, align 2 - %112 = getelementptr inbounds nuw i8, ptr %13, i64 3 - %113 = load i8, ptr %5, align 1, !range !6, !noundef !7 - store i8 %113, ptr %112, align 1 - %114 = getelementptr inbounds nuw i8, ptr %13, i64 4 - store i16 0, ptr %114, align 2 - %115 = load i32, ptr @hf_flexray_flexray_id, align 4 - %116 = zext nneg i8 %113 to i32 - %117 = shl nuw nsw i32 %116, 24 - %118 = shl i32 %107, 8 - %119 = and i32 %118, 16776960 - %120 = or disjoint i32 %117, %119 - %121 = and i32 %110, 255 - %122 = or disjoint i32 %120, %121 - %123 = call ptr @proto_tree_add_uint(ptr noundef %49, i32 noundef %115, ptr noundef %0, i32 noundef 0, i32 noundef 7, i32 noundef %122) - %.not.i = icmp eq ptr %123, null - br i1 %.not.i, label %proto_item_set_hidden.exit, label %124 - -124: ; preds = %106 - %125 = getelementptr inbounds nuw i8, ptr %123, i64 40 - %126 = load ptr, ptr %125, align 8 - %.not5.i = icmp eq ptr %126, null - br i1 %.not5.i, label %proto_item_set_hidden.exit, label %127 - -127: ; preds = %124 - %128 = getelementptr inbounds nuw i8, ptr %126, i64 28 - %129 = load i32, ptr %128, align 4 - %130 = or i32 %129, 1 - store i32 %130, ptr %128, align 4 + %83 = load i32, ptr @hf_flexray_pl, align 4 + %84 = call ptr @proto_tree_add_item_ret_uint(ptr noundef %49, i32 noundef %83, ptr noundef %0, i32 noundef 4, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %12) + %85 = load i32, ptr %12, align 4 + %77 = shl i32 %76, 1 + %78 = add i32 %45, -7 + %79 = icmp sgt i32 %77, %78 + %80 = icmp slt i32 %77, %78 + %81 = call i32 @llvm.smax.i32(i32 %77, i32 0) + %.091 = select i1 %80, i32 %81, i32 %78 + %82 = load i32, ptr @hf_flexray_hcrc, align 4 + %83 = call ptr @proto_tree_add_item(ptr noundef %50, i32 noundef %82, ptr noundef %0, i32 noundef 4, i32 noundef 3, i32 noundef 0) + call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #9 + %84 = load i32, ptr @hf_flexray_cc, align 4 + %85 = call ptr @proto_tree_add_item_ret_uint(ptr noundef %50, i32 noundef %84, ptr noundef %0, i32 noundef 6, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %13) + %86 = load ptr, ptr %16, align 8 + %87 = load i32, ptr %13, align 4 + call void (ptr, i32, ptr, ...) @col_append_fstr(ptr noundef %86, i32 noundef 25, ptr noundef nonnull @.str.90, i32 noundef %87) + %88 = load i8, ptr %8, align 1, !range !6, !noundef !7 + %89 = trunc nuw i8 %88 to i1 + br i1 %89, label %90, label %102 + +90:; preds = %68 + %91 = icmp ne i32 %73, 0 + %spec.select = and i1 %91, %.1 + br i1 %79, label %92, label %94 + +92:; preds = %90 + %93 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %50, ptr noundef nonnull @ei_flexray_frame_payload_truncated) + br label %94 + +94: ; preds = %92, %90 + %.3 = phi i1 [ false, %92 ], [ %spec.select, %90 ] + %95 = icmp ne ptr %0, null + %96 = icmp sgt i32 %.091, 0 + %or.cond = and i1 %95, %96 + br i1 %or.cond, label %97, label %107 + +97:; preds = %94 + %98 = load ptr, ptr %16, align 8 + %99 = getelementptr inbounds nuw i8, ptr %1, i64 408 + %100 = load ptr, ptr %99, align 8 + %105 = call ptr @tvb_bytes_to_str_punct(ptr noundef %100, ptr noundef nonnull %0, i32 noundef 7, i32 noundef %.091, i8 noundef signext 32) + call void (ptr, i32, ptr, ...) @col_append_fstr(ptr noundef %98, i32 noundef 25, ptr noundef nonnull @.str.91, ptr noundef %101) + br label %107 + +102:; preds = %68 + %103 = load ptr, ptr %16, align 8 + call void @col_append_str(ptr noundef %103, i32 noundef 25, ptr noundef nonnull @.str.92) + %104 = icmp ne i32 %.091, 0 + %or.cond3 = and i1 %79, %104 + br i1 %or.cond3, label %105, label %107 + +105:; preds = %102 + %106 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %50, ptr noundef nonnull @ei_flexray_frame_payload_truncated) + br label %107 + +107:; preds = %102, %105, %94, %97 + %.4 = phi i1 [ %.3, %97 ], [ %.3, %94 ], [ false, %105 ], [ false, %102 ] + call void @proto_item_set_end(ptr noundef %48, ptr noundef %0, i32 noundef 7) + call void @llvm.lifetime.start.p0(i64 6, ptr nonnull %14) #9 + %115 = load i32, ptr %11, align 4 + %109 = trunc i32 %115 to i16 + store i16 %109, ptr %14, align 4 + %110 = getelementptr inbounds nuw i8, ptr %14, i64 2 + %111 = load i32, ptr %13, align 4 + %112 = trunc i32 %111 to i8 + store i8 %112, ptr %110, align 2 + %113 = getelementptr inbounds nuw i8, ptr %14, i64 3 + %114 = load i8, ptr %6, align 1, !range !6, !noundef !7 + store i8 %114, ptr %113, align 1 + %115 = getelementptr inbounds nuw i8, ptr %14, i64 4 + store i16 0, ptr %115, align 4 + %116 = load i32, ptr @hf_flexray_flexray_id, align 4 + %117 = zext nneg i8 %114 to i32 + %118 = shl nuw nsw i32 %117, 24 + %119 = shl i32 %108, 8 + %120 = and i32 %119, 16776960 + %121 = or disjoint i32 %118, %120 + %122 = and i32 %111, 255 + %123 = or disjoint i32 %121, %122 + %124 = call ptr @proto_tree_add_uint(ptr noundef %50, i32 noundef %116, ptr noundef %0, i32 noundef 0, i32 noundef 7, i32 noundef %123) + %.not.i = icmp eq ptr %124, null + br i1 %.not.i, label %proto_item_set_hidden.exit, label %125 + +125: ; preds = %107 + %126 = getelementptr inbounds nuw i8, ptr %124, i64 40 + %127 = load ptr, ptr %126, align 8 + %.not5.i = icmp eq ptr %127, null + br i1 %.not5.i, label %proto_item_set_hidden.exit, label %128 + +128: ; preds = %125 + %129 = getelementptr inbounds nuw i8, ptr %127, i64 28 + %130 = load i32, ptr %129, align 4 + %131 = or i32 %130, 1 + store i32 %131, ptr %129, align 4 br label %proto_item_set_hidden.exit -proto_item_set_hidden.exit: ; preds = %106, %124, %127 - %131 = call zeroext i1 @flexray_set_source_and_destination_columns(ptr noundef %1, ptr noundef nonnull %13) - %132 = icmp sgt i32 %.091, 0 - br i1 %132, label %133, label %141 - -133: ; preds = %proto_item_set_hidden.exit - %134 = call ptr @tvb_new_subset_length(ptr noundef %0, i32 noundef 7, i32 noundef %.091) - br i1 %.4, label %135, label %139 - -135: ; preds = %133 - %136 = load i8, ptr @prefvar_try_heuristic_first, align 1, !range !6, !noundef !7 - %137 = trunc nuw i8 %136 to i1 - %138 = call zeroext i1 @flexray_call_subdissectors(ptr noundef %134, ptr noundef %1, ptr noundef %2, ptr noundef nonnull %13, i1 noundef zeroext %137) - br i1 %138, label %141, label %139 - -139: ; preds = %135, %133 - %140 = call i32 @call_data_dissector(ptr noundef %134, ptr noundef %1, ptr noundef %2) - br label %141 +proto_item_set_hidden.exit: ; preds = %107, %125, %128 + call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #9 + %132 = load ptr, ptr @sender_receiver_configs, align 8 + %133 = icmp eq ptr %132, null + %134 = load ptr, ptr @data_sender_receiver, align 8 + %135 = icmp eq ptr %134, null + %or.cond.i.i = select i1 %133, i1 true, i1 %135 + br i1 %or.cond.i.i, label %135, label %136 + +135: ; preds = %proto_item_set_hidden.exit + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #9 + br label %flexray_set_source_and_destination_columns.exit + +136:; preds = %proto_item_set_hidden.exit + %137 = load i32, ptr %110, align 2 + %138 = zext i32 %137 to i64 + %139 = shl nuw nsw i64 %138, 16 + %.mask = and i32 %108, 65534 + %140 = zext nneg i32 %.mask to i64 + %141 = or disjoint i64 %139, %140 + store i64 %141, ptr %5, align 8 + %142 = call ptr @g_hash_table_lookup(ptr noundef nonnull %134, ptr noundef nonnull %5) + %143 = icmp eq ptr %142, null + br i1 %143, label %ht_lookup_sender_receiver_config.exit.i, label %ht_lookup_sender_receiver_config.exit.thread.i + +ht_lookup_sender_receiver_config.exit.thread.i: ; preds = %136 + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #9 + br label %148 -141: ; preds = %135, %139, %proto_item_set_hidden.exit - call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %13) #9 +141: ; preds = %136 + %144 = load i32, ptr %14, align 4 + %145 = zext i32 %144 to i64 + store i64 %145, ptr %5, align 8 + %146 = load ptr, ptr @data_sender_receiver, align 8 + %147 = call ptr @g_hash_table_lookup(ptr noundef %146, ptr noundef nonnull %5) + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #9 + %.not.not.i = icmp eq ptr %147, null + br i1 %.not.not.i, label %flexray_set_source_and_destination_columns.exit, label %148 + +148: ; preds = %ht_lookup_sender_receiver_config.exit.i, %ht_lookup_sender_receiver_config.exit.thread.i + %.011.i16.i = phi ptr [ %142, %ht_lookup_sender_receiver_config.exit.thread.i ], [ %147, %ht_lookup_sender_receiver_config.exit.i ] + %149 = getelementptr inbounds nuw i8, ptr %1, i64 112 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(144) %149, i8 0, i64 144, i1 false) + %150 = load ptr, ptr %16, align 8 + %151 = getelementptr inbounds nuw i8, ptr %.011.i16.i, i64 16 + %152 = load ptr, ptr %151, align 8 + call void @col_add_str(ptr noundef %150, i32 noundef 37, ptr noundef %152) + %153 = load ptr, ptr %16, align 8 + %154 = getelementptr inbounds nuw i8, ptr %.011.i16.i, i64 24 + %155 = load ptr, ptr %154, align 8 + call void @col_add_str(ptr noundef %153, i32 noundef 11, ptr noundef %155) + br label %flexray_set_source_and_destination_columns.exit + +flexray_set_source_and_destination_columns.exit: ; preds = %ht_lookup_sender_receiver_config.exit.thread19.i, %ht_lookup_sender_receiver_config.exit.i, %148 + %156 = icmp sgt i32 %.091, 0 + br i1 %156, label %157, label %165 + +157: ; preds = %flexray_set_source_and_destination_columns.exit + %158 = call ptr @tvb_new_subset_length(ptr noundef %0, i32 noundef 7, i32 noundef %.091) + br i1 %.4, label %159, label %163 + +159: ; preds = %157 + %160 = load i8, ptr @prefvar_try_heuristic_first, align 1, !range !6, !noundef !7 + %161 = trunc nuw i8 %160 to i1 + %162 = call zeroext i1 @flexray_call_subdissectors(ptr noundef %158, ptr noundef %1, ptr noundef %2, ptr noundef nonnull %14, i1 noundef zeroext %161) + br i1 %162, label %165, label %163 + +163: ; preds = %159, %157 + %164 = call i32 @call_data_dissector(ptr noundef %158, ptr noundef %1, ptr noundef %2) + br label %165 + +165: ; preds = %159, %163, %flexray_set_source_and_destination_columns.exit + call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %14) #9 + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #9 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #9 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #9 - call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #9 + call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #9 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #9 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #9 - call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #9 - br label %148 - -142: ; preds = %4 - %143 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %21, ptr noundef nonnull @ei_flexray_symbol_frame) - call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #9 - %144 = load i32, ptr @hf_flexray_sl, align 4 - %145 = call ptr @proto_tree_add_item_ret_uint(ptr noundef %21, i32 noundef %144, ptr noundef %0, i32 noundef 1, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %14) - %146 = load ptr, ptr %15, align 8 - %147 = load i32, ptr %14, align 4 - call void (ptr, i32, ptr, ...) @col_append_fstr(ptr noundef %146, i32 noundef 25, ptr noundef nonnull @.str.93, i32 noundef %147) - call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #9 - br label %148 - -148: ; preds = %4, %142, %141 - %149 = call i32 @tvb_captured_length(ptr noundef %0) - call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #9 - call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #9 - ret i32 %149 + br label %172 + +166: ; preds = %4 + %167 = call ptr @expert_add_info(ptr noundef %1, ptr noundef %22, ptr noundef nonnull @ei_flexray_symbol_frame) + call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #9 + %168 = load i32, ptr @hf_flexray_sl, align 4 + %169 = call ptr @proto_tree_add_item_ret_uint(ptr noundef %22, i32 noundef %168, ptr noundef %0, i32 noundef 1, i32 noundef 1, i32 noundef 0, ptr noundef nonnull %15) + %170 = load ptr, ptr %16, align 8 + %146 = load i32, ptr %15, align 4 + call void (ptr, i32, ptr, ...) @col_append_fstr(ptr noundef %170, i32 noundef 25, ptr noundef nonnull @.str.93, i32 noundef %171) + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #9 + br label %172 + +172: ; preds = %4, %166, %165 + %173 = call i32 @tvb_captured_length(ptr noundef %0) + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #9 + call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #9 + ret i32 %173 } ; Function Attrs: null_pointer_is_valid diff --git a/bench/wireshark/optimized/packet-signal-pdu.ll b/bench/wireshark/optimized/packet-signal-pdu.ll index d6cbaa9998a..6ed03f11960 100644 --- a/bench/wireshark/optimized/packet-signal-pdu.ll +++ b/bench/wireshark/optimized/packet-signal-pdu.ll @@ -4945,31 +4945,26 @@ define internal i32 @dissect_spdu_message_flexray(ptr noundef %0, ptr noundef %1 10: ; preds = %7 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #16 - %11 = getelementptr i8, ptr %3, i64 2 - %12 = load i16, ptr %11, align 2 - %13 = zext i16 %12 to i64 - %14 = shl nuw nsw i64 %13, 16 - %15 = load i16, ptr %3, align 2 - %16 = zext i16 %15 to i64 - %17 = or disjoint i64 %14, %16 - store i64 %17, ptr %5, align 8 - %18 = call ptr @g_hash_table_lookup(ptr noundef nonnull %8, ptr noundef nonnull %5) - %19 = icmp eq ptr %18, null - br i1 %19, label %24, label %20 - -20: ; preds = %10 - %21 = getelementptr inbounds nuw i8, ptr %18, i64 12 - %22 = load i32, ptr %21, align 4 - %23 = call fastcc i32 @dissect_spdu_payload(ptr noundef %0, ptr noundef %1, ptr noundef %2, i32 noundef %22, i1 noundef zeroext true) - br label %24 + %11 = load i32, ptr %3, align 2 + %12 = zext i32 %11 to i64 + store i64 %12, ptr %5, align 8 + %13 = call ptr @g_hash_table_lookup(ptr noundef nonnull %8, ptr noundef nonnull %5) + %14 = icmp eq ptr %13, null + br i1 %14, label %19, label %15 + +24: ; preds = %10 + %16 = getelementptr inbounds nuw i8, ptr %13, i64 12 + %17 = load i32, ptr %16, align 4 + %18 = call fastcc i32 @dissect_spdu_payload(ptr noundef %0, ptr noundef %1, ptr noundef %2, i32 noundef %17, i1 noundef zeroext true) + br label %19 -24: ; preds = %10, %20 - %.1 = phi i32 [ %23, %20 ], [ 0, %10 ] +19: ; preds = %10, %15 + %.1 = phi i32 [ %18, %15 ], [ 0, %10 ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #16 br label %25 -25: ; preds = %7, %24 - %.0 = phi i32 [ %.1, %24 ], [ 0, %7 ] +25: ; preds = %7, %19 + %.0 = phi i32 [ %.1, %19 ], [ 0, %7 ] ret i32 %.0 } diff --git a/bench/zed-rs/optimized/38pyrye3lmvdaenlt6t0na0m3.ll b/bench/zed-rs/optimized/38pyrye3lmvdaenlt6t0na0m3.ll index 1f752e5a414..be35309b53d 100644 --- a/bench/zed-rs/optimized/38pyrye3lmvdaenlt6t0na0m3.ll +++ b/bench/zed-rs/optimized/38pyrye3lmvdaenlt6t0na0m3.ll @@ -2849,17 +2849,11 @@ default.unreachable187: ; preds = %3 br i1 %150, label %155, label %152 152: ; preds = %148 - %.sroa.898.0.copyload100 = load i16, ptr %151, align 8, !alias.scope !570 - %153 = zext i16 %.sroa.898.0.copyload100 to i64 - %.sroa.12.0..sroa_idx103 = getelementptr inbounds nuw i8, ptr %19, i64 10 - %.sroa.12.sroa.0.0.copyload = load i48, ptr %.sroa.12.0..sroa_idx103, align 2, !alias.scope !570 + %.sroa.898.0.copyload100 = load i64, ptr %151, align 8, !alias.scope !570 %.sroa.12.sroa.6.0..sroa.12.0..sroa_idx103.sroa_idx = getelementptr inbounds nuw i8, ptr %19, i64 16 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(128) %.sroa.9, ptr noundef nonnull align 8 dereferenceable(128) %.sroa.12.sroa.6.0..sroa.12.0..sroa_idx103.sroa_idx, i64 128, i1 false) call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %19) - %.sroa.4107.2.insert.ext = zext i48 %.sroa.12.sroa.0.0.copyload to i64 - %.sroa.4107.2.insert.shift = shl nuw i64 %.sroa.4107.2.insert.ext, 16 - %.sroa.4107.2.insert.insert = or disjoint i64 %.sroa.4107.2.insert.shift, %153 - %154 = inttoptr i64 %.sroa.4107.2.insert.insert to ptr + %153 = inttoptr i64 %.sroa.898.0.copyload100 to ptr br label %"_ZN4core3ptr55drop_in_place$LT$gpui..executor..BackgroundExecutor$GT$17h52dd96dc51d7eb26E.exit.sink.split" 155: ; preds = %148 @@ -2872,7 +2866,7 @@ default.unreachable187: ; preds = %3 "_ZN4core3ptr55drop_in_place$LT$gpui..executor..BackgroundExecutor$GT$17h52dd96dc51d7eb26E.exit.sink.split": ; preds = %155, %152 %.sroa.0106.0.ph = phi i64 [ %149, %152 ], [ 3, %155 ] - %.sroa.4107.0.ph = phi ptr [ %154, %152 ], [ %159, %155 ] + %.sroa.4107.0.ph = phi ptr [ %153, %152 ], [ %159, %155 ] call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %27) call void @llvm.lifetime.end.p0(i64 264, ptr nonnull %31) br label %"_ZN4core3ptr55drop_in_place$LT$gpui..executor..BackgroundExecutor$GT$17h52dd96dc51d7eb26E.exit" diff --git a/bench/zed-rs/optimized/3puy2qvhvlnhff2105q9h6j8i.ll b/bench/zed-rs/optimized/3puy2qvhvlnhff2105q9h6j8i.ll index 610c2aa0533..d2251e1ebc8 100644 --- a/bench/zed-rs/optimized/3puy2qvhvlnhff2105q9h6j8i.ll +++ b/bench/zed-rs/optimized/3puy2qvhvlnhff2105q9h6j8i.ll @@ -182728,17 +182728,11 @@ _ZN4gpui8platform5linux7wayland6window13WaylandWindow6borrow17h6c5f3c0ba95c6c68E 8: ; preds = %_ZN4gpui8platform5linux7wayland6window13WaylandWindow6borrow17h6c5f3c0ba95c6c68E.exit %9 = getelementptr inbounds nuw i8, ptr %.val, i64 4116 - %.sroa.01.0.copyload = load i8, ptr %9, align 4 - %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %.val, i64 4117 - %.sroa.4.0.copyload = load i24, ptr %.sroa.4.0..sroa_idx, align 1 - %10 = zext i24 %.sroa.4.0.copyload to i32 - %11 = shl nuw i32 %10, 8 - %12 = zext i8 %.sroa.01.0.copyload to i32 - %13 = or disjoint i32 %11, %12 - br label %14 + %.sroa.01.0.copyload = load i32, ptr %9, align 4 + br label %10 14: ; preds = %_ZN4gpui8platform5linux7wayland6window13WaylandWindow6borrow17h6c5f3c0ba95c6c68E.exit, %8 - %.sroa.0.0.insert.insert = phi i32 [ %13, %8 ], [ 2, %_ZN4gpui8platform5linux7wayland6window13WaylandWindow6borrow17h6c5f3c0ba95c6c68E.exit ] + %.sroa.0.0.insert.insert = phi i32 [ %.sroa.01.0.copyload, %8 ], [ 2, %_ZN4gpui8platform5linux7wayland6window13WaylandWindow6borrow17h6c5f3c0ba95c6c68E.exit ] ret i32 %.sroa.0.0.insert.insert } diff --git a/bench/zed-rs/optimized/cj1jynvjfep2fqbkboer45ptu.ll b/bench/zed-rs/optimized/cj1jynvjfep2fqbkboer45ptu.ll index b91bfa3073b..780af3cf734 100644 --- a/bench/zed-rs/optimized/cj1jynvjfep2fqbkboer45ptu.ll +++ b/bench/zed-rs/optimized/cj1jynvjfep2fqbkboer45ptu.ll @@ -95430,18 +95430,11 @@ common.resume.sink.split.i: ; preds = %48, %33 %84 = getelementptr inbounds nuw i8, ptr %1, i64 8 %85 = load float, ptr %84, align 8, !alias.scope !18828, !noalias !18761, !noundef !9 %86 = getelementptr inbounds nuw i8, ptr %1, i64 12 - %87 = load i8, ptr %86, align 4, !range !2182, !alias.scope !18764, !noalias !18761, !noundef !9 - %88 = getelementptr inbounds nuw i8, ptr %1, i64 13 - %.sroa.24.1.copyload75 = load i24, ptr %88, align 1, !alias.scope !18786 - %.sroa.24.1.insert.ext77 = zext i24 %.sroa.24.1.copyload75 to i32 - %.sroa.24.1.insert.shift78 = shl nuw i32 %.sroa.24.1.insert.ext77, 8 + %87 = load float, ptr %86, align 4, !alias.scope !18786 %.sroa.31.13..sroa_idx47 = getelementptr inbounds nuw i8, ptr %1, i64 16 %.sroa.31.0.copyload66 = load i16, ptr %.sroa.31.13..sroa_idx47, align 8, !alias.scope !18786 %.sroa.31.0.insert.ext68 = zext i16 %.sroa.31.0.copyload66 to i32 - %.sroa.24.0.insert.ext72 = zext nneg i8 %87 to i32 - %.sroa.24.0.insert.insert74 = or disjoint i32 %.sroa.24.1.insert.shift78, %.sroa.24.0.insert.ext72 - %89 = bitcast i32 %.sroa.24.0.insert.insert74 to float - br label %141 + br label %137 90: ; preds = %24 %91 = getelementptr inbounds nuw i8, ptr %1, i64 4 @@ -95449,18 +95442,11 @@ common.resume.sink.split.i: ; preds = %48, %33 %93 = getelementptr inbounds nuw i8, ptr %1, i64 8 %94 = load float, ptr %93, align 8, !alias.scope !18836, !noalias !18761, !noundef !9 %95 = getelementptr inbounds nuw i8, ptr %1, i64 12 - %96 = load i8, ptr %95, align 4, !range !2182, !alias.scope !18764, !noalias !18761, !noundef !9 - %97 = getelementptr inbounds nuw i8, ptr %1, i64 13 - %.sroa.24.1.copyload = load i24, ptr %97, align 1, !alias.scope !18786 - %.sroa.24.1.insert.ext = zext i24 %.sroa.24.1.copyload to i32 - %.sroa.24.1.insert.shift = shl nuw i32 %.sroa.24.1.insert.ext, 8 + %96 = load float, ptr %95, align 4, !alias.scope !18786 %.sroa.31.13..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 16 %.sroa.31.0.copyload65 = load i16, ptr %.sroa.31.13..sroa_idx, align 8, !alias.scope !18786 %.sroa.31.0.insert.ext = zext i16 %.sroa.31.0.copyload65 to i32 - %.sroa.24.0.insert.ext = zext nneg i8 %96 to i32 - %.sroa.24.0.insert.insert = or disjoint i32 %.sroa.24.1.insert.shift, %.sroa.24.0.insert.ext - %98 = bitcast i32 %.sroa.24.0.insert.insert to float - br label %141 + br label %137 99: ; preds = %24 %100 = getelementptr inbounds nuw i8, ptr %1, i64 4 @@ -95608,7 +95594,7 @@ default.unreachable1.i.i: ; preds = %108 141: ; preds = %"_ZN71_$LT$gpui..interactive..FileDropEvent$u20$as$u20$core..clone..Clone$GT$5clone17h96149a192a66ca8dE.exit.i", %99, %90, %81, %70, %57, %54, %"_ZN75_$LT$gpui..platform..keystroke..Keystroke$u20$as$u20$core..clone..Clone$GT$5clone17h8d38c0ae52e3aa65E.exit37.i", %"_ZN75_$LT$gpui..platform..keystroke..Keystroke$u20$as$u20$core..clone..Clone$GT$5clone17h8d38c0ae52e3aa65E.exit.i" %.sroa.17.0 = phi float [ %.sroa.10.0.i, %"_ZN71_$LT$gpui..interactive..FileDropEvent$u20$as$u20$core..clone..Clone$GT$5clone17h96149a192a66ca8dE.exit.i" ], [ %.sroa.17.4.copyload, %99 ], [ %94, %90 ], [ %85, %81 ], [ %74, %70 ], [ %61, %57 ], [ %56, %54 ], [ %.sroa.17.8.copyload, %"_ZN75_$LT$gpui..platform..keystroke..Keystroke$u20$as$u20$core..clone..Clone$GT$5clone17h8d38c0ae52e3aa65E.exit37.i" ], [ %.sroa.17.8.copyload41, %"_ZN75_$LT$gpui..platform..keystroke..Keystroke$u20$as$u20$core..clone..Clone$GT$5clone17h8d38c0ae52e3aa65E.exit.i" ] - %.sroa.24.0 = phi float [ undef, %"_ZN71_$LT$gpui..interactive..FileDropEvent$u20$as$u20$core..clone..Clone$GT$5clone17h96149a192a66ca8dE.exit.i" ], [ %.sroa.24.4.copyload, %99 ], [ %98, %90 ], [ %89, %81 ], [ %76, %70 ], [ %63, %57 ], [ undef, %54 ], [ %.sroa.24.8.copyload, %"_ZN75_$LT$gpui..platform..keystroke..Keystroke$u20$as$u20$core..clone..Clone$GT$5clone17h8d38c0ae52e3aa65E.exit37.i" ], [ %.sroa.24.8.copyload43, %"_ZN75_$LT$gpui..platform..keystroke..Keystroke$u20$as$u20$core..clone..Clone$GT$5clone17h8d38c0ae52e3aa65E.exit.i" ] + %.sroa.24.0 = phi float [ undef, %"_ZN71_$LT$gpui..interactive..FileDropEvent$u20$as$u20$core..clone..Clone$GT$5clone17h96149a192a66ca8dE.exit.i" ], [ %.sroa.24.4.copyload, %99 ], [ %94, %88 ], [ %87, %81 ], [ %76, %70 ], [ %63, %57 ], [ undef, %54 ], [ %.sroa.24.8.copyload, %"_ZN75_$LT$gpui..platform..keystroke..Keystroke$u20$as$u20$core..clone..Clone$GT$5clone17h8d38c0ae52e3aa65E.exit37.i" ], [ %.sroa.24.8.copyload43, %"_ZN75_$LT$gpui..platform..keystroke..Keystroke$u20$as$u20$core..clone..Clone$GT$5clone17h8d38c0ae52e3aa65E.exit.i" ] %.sroa.31.0 = phi i32 [ %.sroa.13.i.sroa.3.0, %"_ZN71_$LT$gpui..interactive..FileDropEvent$u20$as$u20$core..clone..Clone$GT$5clone17h96149a192a66ca8dE.exit.i" ], [ %102, %99 ], [ %.sroa.31.0.insert.ext, %90 ], [ %.sroa.31.0.insert.ext68, %81 ], [ %79, %70 ], [ %66, %57 ], [ undef, %54 ], [ %.sroa.31.8.copyload, %"_ZN75_$LT$gpui..platform..keystroke..Keystroke$u20$as$u20$core..clone..Clone$GT$5clone17h8d38c0ae52e3aa65E.exit37.i" ], [ %.sroa.31.8.copyload46, %"_ZN75_$LT$gpui..platform..keystroke..Keystroke$u20$as$u20$core..clone..Clone$GT$5clone17h8d38c0ae52e3aa65E.exit.i" ] %.sroa.5064.0 = phi i8 [ %.sroa.13.i.sroa.15.0, %"_ZN71_$LT$gpui..interactive..FileDropEvent$u20$as$u20$core..clone..Clone$GT$5clone17h96149a192a66ca8dE.exit.i" ], [ undef, %99 ], [ undef, %90 ], [ undef, %81 ], [ undef, %70 ], [ undef, %57 ], [ undef, %54 ], [ undef, %"_ZN75_$LT$gpui..platform..keystroke..Keystroke$u20$as$u20$core..clone..Clone$GT$5clone17h8d38c0ae52e3aa65E.exit37.i" ], [ %41, %"_ZN75_$LT$gpui..platform..keystroke..Keystroke$u20$as$u20$core..clone..Clone$GT$5clone17h8d38c0ae52e3aa65E.exit.i" ] %.sroa.4463.0 = phi i64 [ %.sroa.13.i.sroa.11.0, %"_ZN71_$LT$gpui..interactive..FileDropEvent$u20$as$u20$core..clone..Clone$GT$5clone17h96149a192a66ca8dE.exit.i" ], [ undef, %99 ], [ undef, %90 ], [ undef, %81 ], [ undef, %70 ], [ undef, %57 ], [ undef, %54 ], [ %.sroa.0.0.i35.i, %"_ZN75_$LT$gpui..platform..keystroke..Keystroke$u20$as$u20$core..clone..Clone$GT$5clone17h8d38c0ae52e3aa65E.exit37.i" ], [ %.sroa.0.0.i.i, %"_ZN75_$LT$gpui..platform..keystroke..Keystroke$u20$as$u20$core..clone..Clone$GT$5clone17h8d38c0ae52e3aa65E.exit.i" ] @@ -95662,7 +95648,7 @@ default.unreachable1.i.i: ; preds = %108 %144 = load ptr, ptr %143, align 8, !alias.scope !18893, !noalias !18896, !nonnull !9, !align !890, !noundef !9 %145 = getelementptr inbounds nuw i8, ptr %144, i64 32 %146 = load ptr, ptr %145, align 8, !invariant.load !9, !noalias !18898, !nonnull !9 - %147 = invoke { i1, i1 } %146(ptr noundef nonnull align 1 %142, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(72) %6) + %147 = invoke { i1, i1 } %142(ptr noundef nonnull align 1 %142, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(72) %6) to label %148 unwind label %137 148: ; preds = %141 @@ -95793,7 +95779,7 @@ default.unreachable1.i.i: ; preds = %108 %189 = getelementptr inbounds nuw i8, ptr %12, i64 64 %190 = load ptr, ptr %189, align 8, !alias.scope !18930, !noalias !18936, !nonnull !9, !align !128, !noundef !9 %191 = getelementptr inbounds nuw i8, ptr %12, i64 72 - %192 = load ptr, ptr %191, align 8, !alias.scope !18930, !noalias !18936, !nonnull !9, !align !890, !noundef !9 + %190 = load ptr, ptr %191, align 8, !alias.scope !18930, !noalias !18936, !nonnull !9, !align !890, !noundef !9 call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %3), !noalias !18933 store i64 0, ptr %3, align 8, !noalias !18937 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4), !noalias !18933 @@ -95802,7 +95788,7 @@ default.unreachable1.i.i: ; preds = %108 %.sroa.4.0..sroa_idx.i26 = getelementptr inbounds nuw i8, ptr %3, i64 24 store ptr %190, ptr %.sroa.4.0..sroa_idx.i26, align 8, !noalias !18933 %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %3, i64 32 - store ptr %192, ptr %.sroa.5.0..sroa_idx.i, align 8, !noalias !18933 + store ptr %190, ptr %.sroa.5.0..sroa_idx.i, align 8, !noalias !18933 %.sroa.6.0..sroa_idx.i27 = getelementptr inbounds nuw i8, ptr %3, i64 40 store ptr %186, ptr %.sroa.6.0..sroa_idx.i27, align 8, !noalias !18933 %.sroa.7.0..sroa_idx.i28 = getelementptr inbounds nuw i8, ptr %3, i64 48 diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c5409e09ef4..bf0e1e3d4bb 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/129263 export COMPTIME_MODE=0 # Please rebase manually