source_filename = "test"
target datalayout = "e-p:32:32-f64:32:64-f80:32-n8:16:32-S128"

@edi = internal unnamed_addr global i32 0, align 8

define i32 @function_0() local_unnamed_addr {
dec_label_pc_0:
  %eax.global-to-local = alloca i32, align 4
  %esi.global-to-local = alloca i32, align 4
  %v0_0 = load i32, i32* %esi.global-to-local, align 4
  %v1_0 = add i32 %v0_0, -120
  %v2_0 = inttoptr i32 %v1_0 to i128*
  %v3_0 = load i128, i128* %v2_0, align 4
  %v4_0 = call i128 @__asm_movupd(i128 %v3_0)
  %v1_5 = add i32 %v0_0, -104
  %v2_5 = inttoptr i32 %v1_5 to i64*
  %v3_5 = load i64, i64* %v2_5, align 4
  %v4_5 = call i128 @__asm_movsd(i64 %v3_5)
  %v1_a = load i32, i32* @edi, align 8
  %v2_a = add i32 %v1_a, -32
  %v3_a = inttoptr i32 %v2_a to i128*
  %v4_a = load i128, i128* %v3_a, align 4
  %v5_a = call i128 @__asm_mulpd(i128 %v4_0, i128 %v4_a)
  %v1_f = load i32, i32* @edi, align 8
  %v2_f = add i32 %v1_f, -32
  %v3_f = inttoptr i32 %v2_f to i64*
  %v4_f = load i64, i64* %v3_f, align 4
  %v5_f = call i128 @__asm_mulsd(i128 %v4_5, i64 %v4_f)
  %v1_14 = load i32, i32* @edi, align 8
  %v2_14 = add i32 %v1_14, -64
  %v3_14 = inttoptr i32 %v2_14 to i128*
  %v4_14 = load i128, i128* %v3_14, align 4
  %v5_14 = call i128 @__asm_addpd(i128 %v5_a, i128 %v4_14)
  %v1_19 = load i32, i32* @edi, align 8
  %v2_19 = add i32 %v1_19, -48
  %v3_19 = inttoptr i32 %v2_19 to i64*
  %v4_19 = load i64, i64* %v3_19, align 4
  %v5_19 = call i128 @__asm_addsd(i128 %v5_f, i64 %v4_19)
  %v0_1e = load i32, i32* @edi, align 8
  %v1_1e = add i32 %v0_1e, -100
  %v2_1e = inttoptr i32 %v1_1e to i32*
  %v3_1e = load i32, i32* %v2_1e, align 4
  %v10_1e = icmp eq i32 %v3_1e, 0
  br i1 %v10_1e, label %dec_label_pc_3d, label %dec_label_pc_24

dec_label_pc_24:                                  ; preds = %dec_label_pc_0
  %v0_24 = load i32, i32* %esi.global-to-local, align 4
  %v1_24 = add i32 %v0_24, 112
  %v2_24 = inttoptr i32 %v1_24 to i64*
  %v3_24 = load i64, i64* %v2_24, align 4
  %v4_24 = call i128 @__asm_movsd(i64 %v3_24)
  %v1_29 = load i32, i32* @edi, align 8
  %v2_29 = add i32 %v1_29, -32
  %v3_29 = inttoptr i32 %v2_29 to i64*
  %v4_29 = load i64, i64* %v3_29, align 4
  %v5_29 = call i128 @__asm_mulsd(i128 %v4_24, i64 %v4_29)
  %v0_2e = load i32, i32* %esi.global-to-local, align 4
  %v1_2e = add i32 %v0_2e, -120
  %v2_2e = inttoptr i32 %v1_2e to i128*
  %v3_2e = load i128, i128* %v2_2e, align 4
  call void @__asm_movupd.1(i128 %v3_2e, i128 %v5_14)
  %v1_33 = call i32 @__asm_movsd.2(i128 %v5_19)
  %v3_33 = add i32 %v0_2e, -104
  %v4_33 = sext i32 %v1_33 to i64
  %v5_33 = inttoptr i32 %v3_33 to i64*
  store i64 %v4_33, i64* %v5_33, align 4
  %v1_38 = call i32 @__asm_movsd.2(i128 %v5_29)
  %v2_38 = load i32, i32* %esi.global-to-local, align 4
  %v3_38 = add i32 %v2_38, 112
  %v4_38 = sext i32 %v1_38 to i64
  %v5_38 = inttoptr i32 %v3_38 to i64*
  store i64 %v4_38, i64* %v5_38, align 4
  %v0_3d.pre = load i32, i32* @edi, align 8
  br label %dec_label_pc_3d

dec_label_pc_3d:                                  ; preds = %dec_label_pc_24, %dec_label_pc_0
  %v0_3d = phi i32 [ %v0_3d.pre, %dec_label_pc_24 ], [ %v0_1e, %dec_label_pc_0 ]
  %v1_3d = add i32 %v0_3d, -96
  %v2_3d = inttoptr i32 %v1_3d to i128*
  %v3_3d = load i128, i128* %v2_3d, align 4
  %v4_3d = call i128 @__asm_movapd(i128 %v3_3d)
  %v0_42 = load i32, i32* @edi, align 8
  %v1_42 = add i32 %v0_42, -80
  %v2_42 = inttoptr i32 %v1_42 to i64*
  %v3_42 = load i64, i64* %v2_42, align 4
  %v4_42 = call i128 @__asm_movsd(i64 %v3_42)
  %v2_47 = call i128 @__asm_mulpd(i128 %v5_14, i128 %v4_3d)
  %v2_4b = call i128 @__asm_mulsd.3(i128 %v5_19, i128 %v4_42)
  %v2_4f = call i128 @__asm_mulpd(i128 %v2_47, i128 %v2_47)
  %v2_53 = call i128 @__asm_mulsd.3(i128 %v2_4b, i128 %v2_4b)
  %v2_57 = call i128 @__asm_addsd.4(i128 %v2_53, i128 %v2_4f)
  %v2_5b = call i128 @__asm_unpckhpd(i128 %v2_4f, i128 %v2_4f)
  %v2_5f = call i128 @__asm_addsd.4(i128 %v2_57, i128 %v2_5b)
  %v1_63 = call i128 @__asm_sqrtsd(i128 %v2_5f)
  %v0_67 = load i32, i32* @edi, align 8
  %v1_67 = add i32 %v0_67, -120
  %v2_67 = inttoptr i32 %v1_67 to i64*
  %v3_67 = load i64, i64* %v2_67, align 4
  %v4_67 = call i128 @__asm_movsd(i64 %v3_67)
  %v2_6c = call i128 @__asm_subsd(i128 %v4_67, i128 %v1_63)
  %v1_70 = load i32, i32* @edi, align 8
  %v2_70 = add i32 %v1_70, -16
  %v3_70 = inttoptr i32 %v2_70 to i64*
  %v4_70 = load i64, i64* %v3_70, align 4
  %v5_70 = call i128 @__asm_subsd.5(i128 %v1_63, i64 %v4_70)
  %v2_75 = call i128 @__asm_maxsd(i128 %v5_70, i128 %v2_6c)
  %v3_79 = load i128, i128* bitcast (i32* @edi to i128*), align 8
  %v4_79 = call i128 @__asm_andpd(i128 %v4_3d, i128 %v3_79)
  %v3_7d = load i128, i128* bitcast (i32* @edi to i128*), align 8
  %v4_7d = call i128 @__asm_andpd(i128 %v4_42, i128 %v3_7d)
  %v2_81 = call i128 @__asm_maxsd(i128 %v4_7d, i128 %v4_79)
  %v2_85 = call i128 @__asm_unpckhpd(i128 %v4_79, i128 %v4_79)
  %v2_89 = call i128 @__asm_maxsd(i128 %v2_81, i128 %v2_85)
  %v2_8d = call i128 @__asm_divsd(i128 %v2_75, i128 %v2_89)
  %v0_91 = load i32, i32* @edi, align 8
  %v1_91 = add i32 %v0_91, -100
  %v2_91 = inttoptr i32 %v1_91 to i32*
  %v3_91 = load i32, i32* %v2_91, align 4
  %v10_91 = icmp eq i32 %v3_91, 0
  %v1_95 = icmp eq i1 %v10_91, false
  br i1 %v1_95, label %dec_label_pc_9c, label %dec_label_pc_97

dec_label_pc_97:                                  ; preds = %dec_label_pc_3d
  %v2_97 = add i32 %v0_91, -32
  %v3_97 = inttoptr i32 %v2_97 to i64*
  %v4_97 = load i64, i64* %v3_97, align 4
  %v5_97 = call i128 @__asm_divsd.6(i128 %v2_8d, i64 %v4_97)
  %v0_9c.pre = load i32, i32* @edi, align 8
  br label %dec_label_pc_9c

dec_label_pc_9c:                                  ; preds = %dec_label_pc_97, %dec_label_pc_3d
  %v0_9f = phi i128 [ %v5_97, %dec_label_pc_97 ], [ %v2_8d, %dec_label_pc_3d ]
  %v0_9c = phi i32 [ %v0_9c.pre, %dec_label_pc_97 ], [ %v0_91, %dec_label_pc_3d ]
  %v1_9c = add i32 %v0_9c, -104
  %v2_9c = inttoptr i32 %v1_9c to i32*
  %v3_9c = load i32, i32* %v2_9c, align 4
  store i32 %v3_9c, i32* %eax.global-to-local, align 4
  %v1_9f = call i32 @__asm_movsd.2(i128 %v0_9f)
  %v2_9f = load i32, i32* %esi.global-to-local, align 4
  %v3_9f = add i32 %v2_9f, -32
  %v4_9f = sext i32 %v1_9f to i64
  %v5_9f = inttoptr i32 %v3_9f to i64*
  store i64 %v4_9f, i64* %v5_9f, align 4
  %v0_a4 = load i32, i32* %eax.global-to-local, align 4
  %v1_a4 = urem i32 %v0_a4, 4
  store i32 %v1_a4, i32* %eax.global-to-local, align 4
  %v3_a7 = mul i32 %v1_a4, 8
  %v4_a7 = or i32 %v3_a7, -128
  %v5_a7 = add i32 %v4_a7, %v2_9f
  %v6_a7 = inttoptr i32 %v5_a7 to double*
  %v7_a7 = load double, double* %v6_a7, align 4
  %v8_a7 = fpext double %v7_a7 to x86_fp80
  %v2_ab = load i32, i32* @edi, align 8
  %v3_ab = add i32 %v2_ab, -112
  %v4_ab = inttoptr i32 %v3_ab to float*
  %v5_ab = load float, float* %v4_ab, align 4
  %v6_ab = fpext float %v5_ab to x86_fp80
  %v7_ab = fmul x86_fp80 %v8_a7, %v6_ab
  %v3_ae = add i32 %v2_ab, -108
  %v4_ae = inttoptr i32 %v3_ae to float*
  %v5_ae = load float, float* %v4_ae, align 4
  %v6_ae = fpext float %v5_ae to x86_fp80
  %v7_ae = fadd x86_fp80 %v7_ab, %v6_ae
  %v3_b1 = add i32 %v2_9f, 128
  %v4_b1 = fptrunc x86_fp80 %v7_ae to double
  %v5_b1 = inttoptr i32 %v3_b1 to double*
  store double %v4_b1, double* %v5_b1, align 4
  ret i32 %v1_a4
}

declare i128 @__asm_movupd(i128) local_unnamed_addr

declare i128 @__asm_movsd(i64) local_unnamed_addr

declare i128 @__asm_mulpd(i128, i128) local_unnamed_addr

declare i128 @__asm_mulsd(i128, i64) local_unnamed_addr

declare i128 @__asm_addpd(i128, i128) local_unnamed_addr

declare i128 @__asm_addsd(i128, i64) local_unnamed_addr

declare void @__asm_movupd.1(i128, i128) local_unnamed_addr

declare i32 @__asm_movsd.2(i128) local_unnamed_addr

declare i128 @__asm_movapd(i128) local_unnamed_addr

declare i128 @__asm_mulsd.3(i128, i128) local_unnamed_addr

declare i128 @__asm_addsd.4(i128, i128) local_unnamed_addr

declare i128 @__asm_unpckhpd(i128, i128) local_unnamed_addr

declare i128 @__asm_sqrtsd(i128) local_unnamed_addr

declare i128 @__asm_subsd(i128, i128) local_unnamed_addr

declare i128 @__asm_subsd.5(i128, i64) local_unnamed_addr

declare i128 @__asm_maxsd(i128, i128) local_unnamed_addr

declare i128 @__asm_andpd(i128, i128) local_unnamed_addr

declare i128 @__asm_divsd(i128, i128) local_unnamed_addr

declare i128 @__asm_divsd.6(i128, i64) local_unnamed_addr
