Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
137 changes: 58 additions & 79 deletions bench/cpython/optimized/Hacl_Hash_Blake2b.ll
Original file line number Diff line number Diff line change
Expand Up @@ -2579,82 +2579,64 @@ define hidden void @python_hashlib_Hacl_Hash_Blake2b_hash_with_key_and_params(pt
store i64 2270897969802886507, ptr %18, align 16, !tbaa !3
%19 = getelementptr inbounds nuw i8, ptr %9, i64 120
store i64 6620516959819538809, ptr %19, align 8, !tbaa !3
%20 = getelementptr inbounds nuw i8, ptr %3, i64 1
%21 = load i8, ptr %20, align 1, !tbaa !19
%22 = load i8, ptr %3, align 8, !tbaa !22
%20 = load i64, ptr %3, align 8
%21 = lshr i64 %20, 8
%22 = trunc i64 %21 to i8
%23 = getelementptr inbounds nuw i8, ptr %3, i64 24
%24 = load ptr, ptr %23, align 8, !tbaa !23
%24 = load ptr, ptr %23, align 8, !tbaa !22
%.val87 = load i64, ptr %24, align 1
%25 = getelementptr i8, ptr %24, i64 8
%.val86 = load i64, ptr %25, align 1
%26 = getelementptr inbounds nuw i8, ptr %3, i64 32
%27 = load ptr, ptr %26, align 8, !tbaa !24
%27 = load ptr, ptr %26, align 8, !tbaa !23
%.val85 = load i64, ptr %27, align 1
%28 = getelementptr i8, ptr %27, i64 8
%.val = load i64, ptr %28, align 1
%29 = zext i8 %22 to i64
%30 = zext i8 %21 to i64
%31 = shl nuw nsw i64 %30, 8
%32 = getelementptr inbounds nuw i8, ptr %3, i64 2
%33 = load i8, ptr %32, align 2, !tbaa !25
%34 = zext i8 %33 to i64
%35 = shl nuw nsw i64 %34, 16
%36 = getelementptr inbounds nuw i8, ptr %3, i64 3
%37 = load i8, ptr %36, align 1, !tbaa !26
%38 = zext i8 %37 to i64
%39 = shl nuw nsw i64 %38, 24
%40 = getelementptr inbounds nuw i8, ptr %3, i64 4
%41 = load i32, ptr %40, align 4, !tbaa !27
%42 = zext i32 %41 to i64
%43 = shl nuw i64 %42, 32
%44 = or disjoint i64 %31, %35
%45 = or disjoint i64 %44, %39
%46 = or disjoint i64 %45, %43
%47 = or disjoint i64 %46, %29
%48 = getelementptr inbounds nuw i8, ptr %3, i64 8
%49 = load i64, ptr %48, align 8, !tbaa !28
%50 = getelementptr inbounds nuw i8, ptr %3, i64 16
%51 = load i16, ptr %50, align 8
%52 = zext i16 %51 to i64
%53 = xor i64 %47, 7640891576956012808
%54 = xor i64 %49, -4942790177534073029
%55 = xor i64 %52, 4354685564936845355
%56 = xor i64 %.val87, 5840696475078001361
%57 = xor i64 %.val86, -7276294671716946913
%58 = xor i64 %.val85, 2270897969802886507
%59 = xor i64 %.val, 6620516959819538809
store i64 %53, ptr %9, align 16, !tbaa !3
%60 = getelementptr inbounds nuw i8, ptr %9, i64 8
store i64 %54, ptr %60, align 8, !tbaa !3
%61 = getelementptr inbounds nuw i8, ptr %9, i64 16
store i64 %55, ptr %61, align 16, !tbaa !3
%62 = getelementptr inbounds nuw i8, ptr %9, i64 24
store i64 -6534734903238641935, ptr %62, align 8, !tbaa !3
store i64 %56, ptr %11, align 16, !tbaa !3
%63 = getelementptr inbounds nuw i8, ptr %9, i64 40
store i64 %57, ptr %63, align 8, !tbaa !3
%64 = getelementptr inbounds nuw i8, ptr %9, i64 48
store i64 %58, ptr %64, align 16, !tbaa !3
%65 = getelementptr inbounds nuw i8, ptr %9, i64 56
store i64 %59, ptr %65, align 8, !tbaa !3
%.not.i = icmp eq i8 %21, 0
br i1 %.not.i, label %73, label %66

66: ; preds = %5
%29 = getelementptr inbounds nuw i8, ptr %3, i64 8
%30 = load i64, ptr %29, align 8, !tbaa !24
%31 = getelementptr inbounds nuw i8, ptr %3, i64 16
%32 = load i16, ptr %31, align 8
%33 = zext i16 %32 to i64
%34 = xor i64 %20, 7640891576956012808
%35 = xor i64 %30, -4942790177534073029
%36 = xor i64 %33, 4354685564936845355
%37 = xor i64 %.val87, 5840696475078001361
%38 = xor i64 %.val86, -7276294671716946913
%39 = xor i64 %.val85, 2270897969802886507
%40 = xor i64 %.val, 6620516959819538809
store i64 %34, ptr %9, align 16, !tbaa !3
%41 = getelementptr inbounds nuw i8, ptr %9, i64 8
store i64 %35, ptr %41, align 8, !tbaa !3
%42 = getelementptr inbounds nuw i8, ptr %9, i64 16
store i64 %36, ptr %42, align 16, !tbaa !3
%43 = getelementptr inbounds nuw i8, ptr %9, i64 24
store i64 -6534734903238641935, ptr %43, align 8, !tbaa !3
store i64 %37, ptr %11, align 16, !tbaa !3
%44 = getelementptr inbounds nuw i8, ptr %9, i64 40
store i64 %38, ptr %44, align 8, !tbaa !3
%45 = getelementptr inbounds nuw i8, ptr %9, i64 48
store i64 %39, ptr %45, align 16, !tbaa !3
%46 = getelementptr inbounds nuw i8, ptr %9, i64 56
store i64 %40, ptr %46, align 8, !tbaa !3
%.not.i = icmp eq i8 %22, 0
br i1 %.not.i, label %55, label %47

47:; preds = %5
call void @llvm.lifetime.start.p0(ptr nonnull %8)
%67 = icmp slt i8 %21, 0
%68 = sub nsw i64 128, %30
%69 = select i1 %67, i64 0, i64 %68
%70 = getelementptr i8, ptr %8, i64 %30
call void @llvm.memset.p0.i64(ptr align 1 %70, i8 0, i64 %69, i1 false)
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(1) %8, ptr noundef nonnull readonly align 1 dereferenceable(1) %4, i64 %30, i1 false)
%71 = icmp eq i32 %2, 0
call fastcc void @update_block(ptr noundef nonnull %10, ptr noundef nonnull %9, i1 noundef zeroext %71, i1 noundef zeroext false, i64 128, i64 0, ptr noundef nonnull %8)
%48 = and i64 %21, 255
%49 = icmp slt i8 %22, 0
%50 = sub nsw i64 128, %48
%51 = select i1 %49, i64 0, i64 %50
%52 = getelementptr i8, ptr %8, i64 %48
call void @llvm.memset.p0.i64(ptr align 1 %52, i8 0, i64 %51, i1 false)
call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(1) %8, ptr noundef nonnull readonly align 1 dereferenceable(1) %4, i64 %48, i1 false)
%53 = icmp eq i32 %2, 0
call fastcc void @update_block(ptr noundef nonnull %10, ptr noundef nonnull %9, i1 noundef zeroext %53, i1 noundef zeroext false, i64 128, i64 0, ptr noundef nonnull %8)
call void @Lib_Memzero0_memzero0(ptr noundef nonnull %8, i64 noundef 128) #19
call void @llvm.lifetime.end.p0(ptr nonnull %8)
br i1 %71, label %update.exit, label %72
br i1 %53, label %update.exit, label %72

72: ; preds = %66
72: ; preds = %47
call fastcc void @update_blocks(i32 noundef %2, ptr noundef nonnull %10, ptr noundef nonnull %9, i64 128, ptr noundef readonly %1)
br label %update.exit

Expand Down Expand Up @@ -2700,32 +2682,33 @@ update_blocks.exit: ; preds = %.lr.ph.i.i, %73
call void @llvm.lifetime.end.p0(ptr nonnull %6)
br label %update.exit

update.exit: ; preds = %66, %72, %update_blocks.exit
update.exit: ; preds = %47, %72, %update_blocks.exit
call void @llvm.lifetime.start.p0(ptr nonnull %7)
%90 = getelementptr inbounds nuw i8, ptr %7, i64 32
%91 = load i64, ptr %9, align 16, !tbaa !3
store i64 %91, ptr %7, align 16
%92 = getelementptr inbounds nuw i8, ptr %7, i64 8
%93 = load i64, ptr %60, align 8, !tbaa !3
%93 = load i64, ptr %41, align 8, !tbaa !3
store i64 %93, ptr %92, align 8
%94 = getelementptr inbounds nuw i8, ptr %7, i64 16
%95 = load i64, ptr %61, align 16, !tbaa !3
%95 = load i64, ptr %42, align 16, !tbaa !3
store i64 %95, ptr %94, align 16
%96 = getelementptr inbounds nuw i8, ptr %7, i64 24
%97 = load i64, ptr %62, align 8, !tbaa !3
%97 = load i64, ptr %43, align 8, !tbaa !3
store i64 %97, ptr %96, align 8
%98 = load i64, ptr %11, align 16, !tbaa !3
store i64 %98, ptr %90, align 16
%99 = getelementptr inbounds nuw i8, ptr %7, i64 40
%100 = load i64, ptr %63, align 8, !tbaa !3
%100 = load i64, ptr %44, align 8, !tbaa !3
store i64 %100, ptr %99, align 8
%101 = getelementptr inbounds nuw i8, ptr %7, i64 48
%102 = load i64, ptr %64, align 16, !tbaa !3
%102 = load i64, ptr %45, align 16, !tbaa !3
store i64 %102, ptr %101, align 16
%103 = getelementptr inbounds nuw i8, ptr %7, i64 56
%104 = load i64, ptr %65, align 8, !tbaa !3
%104 = load i64, ptr %46, align 8, !tbaa !3
store i64 %104, ptr %103, align 8
call void @llvm.memcpy.p0.p0.i64(ptr align 1 %0, ptr nonnull align 16 %7, i64 %29, i1 false)
%87 = and i64 %20, 255
call void @llvm.memcpy.p0.p0.i64(ptr align 1 %0, ptr nonnull align 16 %7, i64 %87, i1 false)
call void @Lib_Memzero0_memzero0(ptr noundef nonnull %7, i64 noundef 64) #19
call void @llvm.lifetime.end.p0(ptr nonnull %7)
call void @Lib_Memzero0_memzero0(ptr noundef nonnull %10, i64 noundef 128) #19
Expand Down Expand Up @@ -2847,10 +2830,6 @@ attributes #21 = { nounwind allocsize(0) }
!19 = !{!20, !5, i64 1}
!20 = !{!"Hacl_Hash_Blake2b_blake2_params_s", !5, i64 0, !5, i64 1, !5, i64 2, !5, i64 3, !18, i64 4, !4, i64 8, !5, i64 16, !5, i64 17, !16, i64 24, !16, i64 32}
!21 = !{i64 0, i64 1, !9, i64 1, i64 1, !9, i64 2, i64 1, !10, i64 8, i64 8, !12, i64 16, i64 8, !12, i64 24, i64 8, !15, i64 32, i64 8, !3}
!22 = !{!20, !5, i64 0}
!23 = !{!20, !16, i64 24}
!24 = !{!20, !16, i64 32}
!25 = !{!20, !5, i64 2}
!26 = !{!20, !5, i64 3}
!27 = !{!20, !18, i64 4}
!28 = !{!20, !4, i64 8}
!22 = !{!20, !16, i64 24}
!23 = !{!20, !16, i64 32}
!24 = !{!20, !4, i64 8}
88 changes: 33 additions & 55 deletions bench/cpython/optimized/Hacl_Hash_Blake2b_Simd256.ll
Original file line number Diff line number Diff line change
Expand Up @@ -1806,68 +1806,50 @@ define hidden void @python_hashlib_Hacl_Hash_Blake2b_Simd256_hash_with_key_and_p
%11 = getelementptr inbounds nuw i8, ptr %7, i64 96
store <4 x i64> <i64 7640891576956012808, i64 -4942790177534073029, i64 4354685564936845355, i64 -6534734903238641935>, ptr %10, align 32, !tbaa !3
store <4 x i64> <i64 5840696475078001361, i64 -7276294671716946913, i64 2270897969802886507, i64 6620516959819538809>, ptr %11, align 32, !tbaa !3
%12 = getelementptr inbounds nuw i8, ptr %3, i64 1
%13 = load i8, ptr %12, align 1, !tbaa !18
%14 = load i8, ptr %3, align 8, !tbaa !21
%12 = load i64, ptr %3, align 8
%13 = trunc i64 %12 to i32
%14 = lshr i32 %13, 8
%15 = getelementptr inbounds nuw i8, ptr %3, i64 24
%16 = load ptr, ptr %15, align 8, !tbaa !22
%16 = load ptr, ptr %15, align 8, !tbaa !21
%.val75 = load i64, ptr %16, align 1
%17 = getelementptr i8, ptr %16, i64 8
%.val74 = load i64, ptr %17, align 1
%18 = getelementptr inbounds nuw i8, ptr %3, i64 32
%19 = load ptr, ptr %18, align 8, !tbaa !23
%19 = load ptr, ptr %18, align 8, !tbaa !22
%.val73 = load i64, ptr %19, align 1
%20 = getelementptr i8, ptr %19, i64 8
%.val = load i64, ptr %20, align 1
%21 = zext i8 %14 to i64
%22 = zext i8 %13 to i64
%23 = shl nuw nsw i64 %22, 8
%24 = getelementptr inbounds nuw i8, ptr %3, i64 2
%25 = load i8, ptr %24, align 2, !tbaa !24
%26 = zext i8 %25 to i64
%27 = shl nuw nsw i64 %26, 16
%28 = getelementptr inbounds nuw i8, ptr %3, i64 3
%29 = load i8, ptr %28, align 1, !tbaa !25
%30 = zext i8 %29 to i64
%31 = shl nuw nsw i64 %30, 24
%32 = getelementptr inbounds nuw i8, ptr %3, i64 4
%33 = load i32, ptr %32, align 4, !tbaa !26
%34 = zext i32 %33 to i64
%35 = shl nuw i64 %34, 32
%36 = or disjoint i64 %23, %27
%37 = or disjoint i64 %36, %31
%38 = or disjoint i64 %37, %35
%39 = or disjoint i64 %38, %21
%40 = getelementptr inbounds nuw i8, ptr %3, i64 8
%41 = load i64, ptr %40, align 8, !tbaa !27
%42 = getelementptr inbounds nuw i8, ptr %3, i64 16
%43 = load i16, ptr %42, align 8
%44 = zext i16 %43 to i64
%45 = xor i64 %39, 7640891576956012808
%46 = xor i64 %41, -4942790177534073029
%47 = xor i64 %44, 4354685564936845355
%48 = xor i64 %.val75, 5840696475078001361
%49 = xor i64 %.val74, -7276294671716946913
%50 = xor i64 %.val73, 2270897969802886507
%51 = xor i64 %.val, 6620516959819538809
%52 = insertelement <4 x i64> <i64 poison, i64 poison, i64 poison, i64 -6534734903238641935>, i64 %45, i64 0
%53 = insertelement <4 x i64> %52, i64 %46, i64 1
%54 = insertelement <4 x i64> %53, i64 %47, i64 2
store <4 x i64> %54, ptr %7, align 32, !tbaa !3
%55 = insertelement <4 x i64> poison, i64 %48, i64 0
%56 = insertelement <4 x i64> %55, i64 %49, i64 1
%57 = insertelement <4 x i64> %56, i64 %50, i64 2
%58 = insertelement <4 x i64> %57, i64 %51, i64 3
store <4 x i64> %58, ptr %9, align 32, !tbaa !3
%59 = zext i8 %13 to i32
call fastcc void @update(ptr noundef %8, ptr noundef %7, i32 noundef %59, ptr noundef %4, i32 noundef %2, ptr noundef %1)
%21 = getelementptr inbounds nuw i8, ptr %3, i64 8
%22 = load i64, ptr %21, align 8, !tbaa !23
%23 = getelementptr inbounds nuw i8, ptr %3, i64 16
%24 = load i16, ptr %23, align 8
%25 = zext i16 %24 to i64
%26 = xor i64 %12, 7640891576956012808
%27 = xor i64 %22, -4942790177534073029
%28 = xor i64 %25, 4354685564936845355
%29 = xor i64 %.val75, 5840696475078001361
%30 = xor i64 %.val74, -7276294671716946913
%31 = xor i64 %.val73, 2270897969802886507
%32 = xor i64 %.val, 6620516959819538809
%33 = insertelement <4 x i64> <i64 poison, i64 poison, i64 poison, i64 -6534734903238641935>, i64 %26, i64 0
%34 = insertelement <4 x i64> %33, i64 %27, i64 1
%35 = insertelement <4 x i64> %34, i64 %28, i64 2
store <4 x i64> %35, ptr %7, align 32, !tbaa !3
%36 = insertelement <4 x i64> poison, i64 %29, i64 0
%37 = insertelement <4 x i64> %36, i64 %30, i64 1
%38 = insertelement <4 x i64> %37, i64 %31, i64 2
%39 = insertelement <4 x i64> %38, i64 %32, i64 3
store <4 x i64> %39, ptr %9, align 32, !tbaa !3
%40 = and i32 %14, 255
call fastcc void @update(ptr noundef %8, ptr noundef %7, i32 noundef %40, ptr noundef %4, i32 noundef %2, ptr noundef %1)
call void @llvm.lifetime.start.p0(ptr nonnull %6)
%60 = getelementptr inbounds nuw i8, ptr %6, i64 32
%61 = load <4 x i64>, ptr %7, align 32, !tbaa !3
store <4 x i64> %61, ptr %6, align 16, !tbaa !3
%62 = load <4 x i64>, ptr %9, align 32, !tbaa !3
store <4 x i64> %62, ptr %60, align 16, !tbaa !3
call void @llvm.memcpy.p0.p0.i64(ptr align 1 %0, ptr nonnull align 16 %6, i64 %21, i1 false)
%44 = and i64 %12, 255
call void @llvm.memcpy.p0.p0.i64(ptr align 1 %0, ptr nonnull align 16 %6, i64 %44, i1 false)
call void @Lib_Memzero0_memzero0(ptr noundef nonnull %6, i64 noundef 64) #25
call void @llvm.lifetime.end.p0(ptr nonnull %6)
call void @Lib_Memzero0_memzero0(ptr noundef nonnull %8, i64 noundef 128) #25
Expand Down Expand Up @@ -1942,10 +1924,6 @@ attributes #28 = { nounwind allocsize(0) }
!18 = !{!19, !4, i64 1}
!19 = !{!"Hacl_Hash_Blake2b_blake2_params_s", !4, i64 0, !4, i64 1, !4, i64 2, !4, i64 3, !17, i64 4, !9, i64 8, !4, i64 16, !4, i64 17, !15, i64 24, !15, i64 32}
!20 = !{i64 0, i64 1, !3, i64 1, i64 1, !3, i64 2, i64 1, !10, i64 8, i64 8, !12, i64 16, i64 8, !12, i64 24, i64 8, !14, i64 32, i64 8, !8}
!21 = !{!19, !4, i64 0}
!22 = !{!19, !15, i64 24}
!23 = !{!19, !15, i64 32}
!24 = !{!19, !4, i64 2}
!25 = !{!19, !4, i64 3}
!26 = !{!19, !17, i64 4}
!27 = !{!19, !9, i64 8}
!21 = !{!19, !15, i64 24}
!22 = !{!19, !15, i64 32}
!23 = !{!19, !9, i64 8}
76 changes: 36 additions & 40 deletions bench/wasmtime-rs/optimized/4v5zacq1pia1727a.ll
Original file line number Diff line number Diff line change
Expand Up @@ -568,9 +568,9 @@ define hidden zeroext i1 @"_ZN14cranelift_isle9serialize13Decomposition17best_co
%3 = getelementptr inbounds nuw i8, ptr %1, i64 16
%.sroa.0.0.copyload = load i16, ptr %3, align 8
%.sroa.3.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 18
%.sroa.3.0.copyload = load i16, ptr %.sroa.3.0..sroa_idx, align 2
%.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 20
%.sroa.5.0.copyload = load i16, ptr %.sroa.5.0..sroa_idx, align 4
%.sroa.3.0.copyload = load i32, ptr %.sroa.3.0..sroa_idx, align 2
%4 = zext i32 %.sroa.3.0.copyload to i48
%5 = shl nuw i48 %4, 14
%switch = icmp eq i16 %.sroa.0.0.copyload, 1
br i1 %switch, label %4, label %5

Expand All @@ -579,49 +579,45 @@ define hidden zeroext i1 @"_ZN14cranelift_isle9serialize13Decomposition17best_co
unreachable

5: ; preds = %2
%6 = getelementptr inbounds nuw i8, ptr %0, i64 8
%7 = load ptr, ptr %6, align 8, !nonnull !3, !align !4, !noundef !3
%8 = tail call i64 @_ZN14cranelift_isle10trie_again9BindingId5index17h7cbb3f2975c0bf3bE(i16 %.sroa.3.0.copyload)
%9 = getelementptr inbounds nuw i8, ptr %7, i64 16
%10 = load i64, ptr %9, align 8, !noundef !3
%11 = icmp ult i64 %8, %10
br i1 %11, label %12, label %28, !prof !7

12: ; preds = %5
%13 = getelementptr inbounds nuw i8, ptr %7, i64 8
%14 = load ptr, ptr %13, align 8, !nonnull !3, !noundef !3
%15 = getelementptr inbounds [0 x i8], ptr %14, i64 0, i64 %8
%16 = load i8, ptr %15, align 1, !range !8, !noundef !3
%17 = icmp eq i8 %16, 3
br i1 %17, label %_ZN14cranelift_isle9serialize5Score6update17h0d1baf10ec1c31a6E.exit, label %18

18: ; preds = %12
%19 = getelementptr inbounds nuw i8, ptr %0, i64 24
%20 = load i64, ptr %19, align 8, !noundef !3
%21 = getelementptr inbounds nuw i8, ptr %0, i64 16
%22 = load ptr, ptr %21, align 8, !nonnull !3, !align !4, !noundef !3
%23 = load ptr, ptr %0, align 8, !nonnull !3, !align !4, !noundef !3
%24 = getelementptr inbounds nuw i8, ptr %1, i64 8
store i8 %16, ptr %24, align 8
%.sroa.5.0.insert.ext = zext i16 %.sroa.5.0.copyload to i48
%.sroa.5.0.insert.shift = shl nuw i48 %.sroa.5.0.insert.ext, 32
%.sroa.3.0.insert.ext = zext i16 %.sroa.3.0.copyload to i48
%.sroa.3.0.insert.shift = shl nuw nsw i48 %.sroa.3.0.insert.ext, 16
%8 = trunc i32 %.sroa.3.0.copyload to i16
%9 = getelementptr inbounds nuw i8, ptr %0, i64 8
%10 = load ptr, ptr %9, align 8, !nonnull !3, !align !4, !noundef !3
%11 = tail call i64 @_ZN14cranelift_isle10trie_again9BindingId5index17h7cbb3f2975c0bf3bE(i16 %8)
%12 = getelementptr inbounds nuw i8, ptr %10, i64 16
%13 = load i64, ptr %12, align 8, !noundef !3
%14 = icmp ult i64 %11, %13
br i1 %14, label %15, label %31, !prof !7

15: ; preds = %7
%16 = getelementptr inbounds nuw i8, ptr %10, i64 8
%17 = load ptr, ptr %14, align 8, !nonnull !3, !noundef !3
%18 = getelementptr inbounds [0 x i8], ptr %15, i64 0, i64 %11
%19 = load i8, ptr %18, align 1, !range !8, !noundef !3
%20 = icmp eq i8 %19, 3
br i1 %20, label %_ZN14cranelift_isle9serialize5Score6update17h0d1baf10ec1c31a6E.exit, label %21

21: ; preds = %15
%22 = getelementptr inbounds nuw i8, ptr %0, i64 24
%23 = load i64, ptr %22, align 8, !noundef !3
%24 = getelementptr inbounds nuw i8, ptr %0, i64 16
%23 = load ptr, ptr %24, align 8, !nonnull !3, !align !4, !noundef !3
%26 = load ptr, ptr %0, align 8, !nonnull !3, !align !4, !noundef !3
%27 = getelementptr inbounds nuw i8, ptr %1, i64 8
store i8 %19, ptr %27, align 8
%.sroa.0.0.insert.ext = zext nneg i16 %.sroa.0.0.copyload to i48
%.sroa.3.0.insert.insert = or disjoint i48 %.sroa.3.0.insert.shift, %.sroa.0.0.insert.ext
%.sroa.0.0.insert.insert = or disjoint i48 %.sroa.3.0.insert.insert, %.sroa.5.0.insert.shift
%25 = tail call { i64, i1 } @_ZN14cranelift_isle9serialize14HasControlFlow9partition17h81dbf483baf6fda1E(i48 %.sroa.0.0.insert.insert, ptr nonnull align 8 %23, ptr nonnull align 8 %22, i64 %20)
%26 = extractvalue { i64, i1 } %25, 0
%27 = extractvalue { i64, i1 } %25, 1
store i64 %26, ptr %1, align 8
%.sroa.3.0.insert.insert = or disjoint i48 %5, %.sroa.0.0.insert.ext
%28 = tail call { i64, i1 } @_ZN14cranelift_isle9serialize14HasControlFlow9partition17h81dbf483baf6fda1E(i48 %.sroa.3.0.insert.insert, ptr nonnull align 8 %26, ptr nonnull align 8 %25, i64 %23)
%29 = extractvalue { i64, i1 } %28, 0
%26 = extractvalue { i64, i1 } %28, 1
store i64 %29, ptr %1, align 8
br label %_ZN14cranelift_isle9serialize5Score6update17h0d1baf10ec1c31a6E.exit

_ZN14cranelift_isle9serialize5Score6update17h0d1baf10ec1c31a6E.exit: ; preds = %12, %18
%.0.i = phi i1 [ %27, %18 ], [ false, %12 ]
_ZN14cranelift_isle9serialize5Score6update17h0d1baf10ec1c31a6E.exit: ; preds = %15, %21
%.0.i = phi i1 [ %26, %21 ], [ false, %15 ]
ret i1 %.0.i

28: ; preds = %5
tail call void @_ZN4core9panicking18panic_bounds_check17h5aa5e8a957e001f9E(i64 %8, i64 %10, ptr nonnull align 8 @anon.fd7e60ab9a15ebc6f18dcc2034e4fa44.21) #10
tail call void @_ZN4core9panicking18panic_bounds_check17h5aa5e8a957e001f9E(i64 %11, i64 %13, ptr nonnull align 8 @anon.fd7e60ab9a15ebc6f18dcc2034e4fa44.21) #10
unreachable
}

Expand Down
Loading