diff --git a/bench/cpython/optimized/Hacl_Hash_Blake2b.ll b/bench/cpython/optimized/Hacl_Hash_Blake2b.ll index 42aa46b458d..5a3cbd3816b 100644 --- a/bench/cpython/optimized/Hacl_Hash_Blake2b.ll +++ b/bench/cpython/optimized/Hacl_Hash_Blake2b.ll @@ -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 @@ -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 @@ -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} diff --git a/bench/cpython/optimized/Hacl_Hash_Blake2b_Simd256.ll b/bench/cpython/optimized/Hacl_Hash_Blake2b_Simd256.ll index a92ebeca03a..0d9be48812b 100644 --- a/bench/cpython/optimized/Hacl_Hash_Blake2b_Simd256.ll +++ b/bench/cpython/optimized/Hacl_Hash_Blake2b_Simd256.ll @@ -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> , ptr %10, align 32, !tbaa !3 store <4 x i64> , 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 %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 %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 @@ -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} diff --git a/bench/wasmtime-rs/optimized/4v5zacq1pia1727a.ll b/bench/wasmtime-rs/optimized/4v5zacq1pia1727a.ll index 684fdf70a44..9e976820f7e 100644 --- a/bench/wasmtime-rs/optimized/4v5zacq1pia1727a.ll +++ b/bench/wasmtime-rs/optimized/4v5zacq1pia1727a.ll @@ -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 @@ -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 } diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c5409e09ef4..8fb1d259a6b 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/154375 export COMPTIME_MODE=0 # Please rebase manually