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

@eax = internal unnamed_addr global i32 0, align 8
@ecx = internal unnamed_addr global i32 0, align 8

define i32 @function_0(i32 %arg1) local_unnamed_addr {
dec_label_pc_0:
  %cf.global-to-local = alloca i1, align 1
  %esi.global-to-local = alloca i32, align 4
  %xmm3.global-to-local = alloca i128, align 8
  %xmm5.global-to-local = alloca i128, align 8
  %v0_3 = load i32, i32* %esi.global-to-local, align 4
  store i32 %arg1, i32* %esi.global-to-local, align 4
  %v1_7 = add i32 %arg1, 48
  %v2_7 = inttoptr i32 %v1_7 to i32*
  %v3_7 = load i32, i32* %v2_7, align 4
  store i32 %v3_7, i32* %esi.global-to-local, align 4
  %v2_a = load i128, i128* bitcast (i32* @eax to i128*), align 8
  %v3_a = call i128 @__asm_movupd(i128 %v2_a)
  %v2_e = load i64, i64* bitcast (i32* @ecx to i64*), align 8
  %v3_e = call i128 @__asm_movsd(i64 %v2_e)
  %v1_12 = call i128 @__asm_movapd(i128 %v3_a)
  %v2_16 = add i32 %v3_7, -64
  %v3_16 = inttoptr i32 %v2_16 to i128*
  %v4_16 = load i128, i128* %v3_16, align 4
  %v5_16 = call i128 @__asm_maxpd(i128 %v1_12, i128 %v4_16)
  %v1_1b = load i32, i32* %esi.global-to-local, align 4
  %v2_1b = add i32 %v1_1b, -64
  %v3_1b = inttoptr i32 %v2_1b to i64*
  %v4_1b = load i64, i64* %v3_1b, align 4
  %v5_1b = call i128 @__asm_maxsd(i128 %v3_e, i64 %v4_1b)
  %v2_20 = add i32 %v1_1b, -48
  %v3_20 = inttoptr i32 %v2_20 to i128*
  %v4_20 = load i128, i128* %v3_20, align 4
  %v5_20 = call i128 @__asm_minpd(i128 %v5_16, i128 %v4_20)
  %v1_25 = load i32, i32* %esi.global-to-local, align 4
  %v2_25 = add i32 %v1_25, -48
  %v3_25 = inttoptr i32 %v2_25 to i64*
  %v4_25 = load i64, i64* %v3_25, align 4
  %v5_25 = call i128 @__asm_minsd(i128 %v5_1b, i64 %v4_25)
  %v2_2a = call i128 @__asm_addpd(i128 %v5_20, i128 %v5_20)
  %v2_2e = call i128 @__asm_addsd(i128 %v5_25, i128 %v5_25)
  %v2_32 = call i128 @__asm_subpd(i128 %v2_2a, i128 %v3_a)
  %v3_36 = load i64, i64* bitcast (i32* @ecx to i64*), align 8
  %v4_36 = call i128 @__asm_subsd(i128 %v2_2e, i64 %v3_36)
  %v1_3a = call i128 @__asm_movapd(i128 %v2_32)
  %v0_3e = load i128, i128* %xmm5.global-to-local, align 8
  %v2_3e = call i128 @__asm_movsd.1(i128 %v0_3e, i128 %v4_36)
  store i128 %v2_3e, i128* %xmm5.global-to-local, align 8
  %v2_42 = call i128 @__asm_mulpd(i128 %v1_3a, i128 %v1_3a)
  %v2_46 = call i128 @__asm_mulsd(i128 %v2_3e, i128 %v2_3e)
  store i128 %v2_46, i128* %xmm5.global-to-local, align 8
  %v1_4a = call i128 @__asm_pshufd(i128 %v2_42, i32 78)
  %v2_4f = call i128 @__asm_addsd(i128 %v2_42, i128 %v2_46)
  %v2_53 = call i128 @__asm_addsd(i128 %v2_4f, i128 %v1_4a)
  %v1_57 = load i32, i32* %esi.global-to-local, align 4
  %v2_57 = add i32 %v1_57, -32
  %v3_57 = inttoptr i32 %v2_57 to i64*
  %v4_57 = load i64, i64* %v3_57, align 4
  call void @__asm_ucomisd(i128 %v2_53, i64 %v4_57)
  %v0_5c = load i1, i1* %cf.global-to-local, align 1
  %v1_5c = icmp eq i1 %v0_5c, false
  %v1_65 = load i32, i32* %esi.global-to-local, align 4
  br i1 %v1_5c, label %dec_label_pc_65, label %dec_label_pc_5e

dec_label_pc_5e:                                  ; preds = %dec_label_pc_0
  %v1_5e = add i32 %v1_65, -24
  %v2_5e = inttoptr i32 %v1_5e to i64*
  %v3_5e = load i64, i64* %v2_5e, align 4
  %v4_5e = call i128 @__asm_movsd(i64 %v3_5e)
  store i128 %v4_5e, i128* %xmm3.global-to-local, align 8
  br label %dec_label_pc_74

dec_label_pc_65:                                  ; preds = %dec_label_pc_0
  %v2_65 = inttoptr i32 %v1_65 to i64*
  %v3_65 = load i64, i64* %v2_65, align 4
  call void @__asm_ucomisd(i128 %v2_53, i64 %v3_65)
  %v0_69 = load i32, i32* %esi.global-to-local, align 4
  %v1_69 = add i32 %v0_69, -16
  %v2_69 = inttoptr i32 %v1_69 to i64*
  %v3_69 = load i64, i64* %v2_69, align 4
  %v4_69 = call i128 @__asm_movsd(i64 %v3_69)
  store i128 %v4_69, i128* %xmm3.global-to-local, align 8
  %v0_6e = load i1, i1* %cf.global-to-local, align 1
  %v1_6e = icmp eq i1 %v0_6e, false
  br i1 %v1_6e, label %dec_label_pc_74, label %dec_label_pc_70

dec_label_pc_70:                                  ; preds = %dec_label_pc_65
  %v2_70 = call i128 @__asm_divsd(i128 %v4_69, i128 %v2_53)
  store i128 %v2_70, i128* %xmm3.global-to-local, align 8
  br label %dec_label_pc_74

dec_label_pc_74:                                  ; preds = %dec_label_pc_70, %dec_label_pc_65, %dec_label_pc_5e
  %v1_74 = load i32, i32* @ecx, align 8
  %v2_74 = add i32 %v1_74, 8
  %v3_74 = inttoptr i32 %v2_74 to i64*
  %v4_74 = load i64, i64* %v3_74, align 4
  %v5_74 = call i128 @__asm_movhpd(i128 %v4_36, i64 %v4_74)
  %v0_79 = load i128, i128* %xmm3.global-to-local, align 8
  %v2_79 = call i128 @__asm_shufpd(i128 %v0_79, i128 %v0_79, i32 0)
  store i128 %v2_79, i128* %xmm3.global-to-local, align 8
  %v2_7e = call i128 @__asm_mulpd(i128 %v2_32, i128 %v2_79)
  %v2_82 = call i128 @__asm_mulpd(i128 %v5_74, i128 %v2_79)
  %v2_86 = load i128, i128* bitcast (i32* @eax to i128*), align 8
  call void @__asm_movupd.2(i128 %v2_86, i128 %v2_7e)
  %v2_8a = load i128, i128* bitcast (i32* @ecx to i128*), align 8
  call void @__asm_movupd.2(i128 %v2_8a, i128 %v2_82)
  store i32 %v0_3, i32* %esi.global-to-local, align 4
  %v0_90 = load i32, i32* @eax, align 8
  ret i32 %v0_90
}

declare i128 @__asm_movupd(i128) local_unnamed_addr

declare i128 @__asm_movsd(i64) local_unnamed_addr

declare i128 @__asm_movapd(i128) local_unnamed_addr

declare i128 @__asm_maxpd(i128, i128) local_unnamed_addr

declare i128 @__asm_maxsd(i128, i64) local_unnamed_addr

declare i128 @__asm_minpd(i128, i128) local_unnamed_addr

declare i128 @__asm_minsd(i128, i64) local_unnamed_addr

declare i128 @__asm_addpd(i128, i128) local_unnamed_addr

declare i128 @__asm_addsd(i128, i128) local_unnamed_addr

declare i128 @__asm_subpd(i128, i128) local_unnamed_addr

declare i128 @__asm_subsd(i128, i64) local_unnamed_addr

declare i128 @__asm_movsd.1(i128, i128) local_unnamed_addr

declare i128 @__asm_mulpd(i128, i128) local_unnamed_addr

declare i128 @__asm_mulsd(i128, i128) local_unnamed_addr

declare i128 @__asm_pshufd(i128, i32) local_unnamed_addr

declare void @__asm_ucomisd(i128, i64) local_unnamed_addr

declare i128 @__asm_divsd(i128, i128) local_unnamed_addr

declare i128 @__asm_movhpd(i128, i64) local_unnamed_addr

declare i128 @__asm_shufpd(i128, i128, i32) local_unnamed_addr

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