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
@edx = internal unnamed_addr global i32 0, align 8

define i32 @function_0(i32 %arg1) local_unnamed_addr {
dec_label_pc_0:
  %esi.global-to-local = alloca i32, align 4
  %xmm4.global-to-local = alloca i128, align 8
  %xmm5.global-to-local = alloca i128, align 8
  %xmm6.global-to-local = alloca i128, align 8
  store i32 %arg1, i32* %esi.global-to-local, align 4
  %v1_a = add i32 %arg1, 48
  %v2_a = inttoptr i32 %v1_a to i32*
  %v3_a = load i32, i32* %v2_a, align 4
  store i32 %v3_a, i32* @edx, align 8
  %v1_d = add i32 %arg1, 128
  store i32 %v1_d, i32* %esi.global-to-local, align 4
  %v1_16 = add i32 %arg1, 208
  %v2_16 = inttoptr i32 %v1_16 to i32*
  %v3_16 = load i32, i32* %v2_16, align 4
  %v10_16 = icmp eq i32 %v3_16, 0
  %v1_1a = icmp eq i1 %v10_16, false
  br i1 %v1_1a, label %dec_label_pc_80, label %dec_label_pc_1c

dec_label_pc_1c:                                  ; preds = %dec_label_pc_0
  %v4_1c = add i32 %v3_16, 1
  store i32 %v4_1c, i32* %v2_16, align 4
  %v2_1f = load i128, i128* bitcast (i32* @eax to i128*), align 8
  %v3_1f = call i128 @__asm_movupd(i128 %v2_1f)
  store i128 %v3_1f, i128* %xmm6.global-to-local, align 8
  %v0_23 = load i128, i128* %xmm5.global-to-local, align 8
  %v3_23 = load i64, i64* bitcast (i32* @ecx to i64*), align 8
  %v4_23 = call i128 @__asm_movlpd(i128 %v0_23, i64 %v3_23)
  store i128 %v4_23, i128* %xmm5.global-to-local, align 8
  %v0_27 = load i128, i128* %xmm4.global-to-local, align 8
  %v2_27 = call i128 @__asm_xorpd(i128 %v0_27, i128 %v0_27)
  store i128 %v2_27, i128* %xmm4.global-to-local, align 8
  %v2_2b = call i128 @__asm_unpcklpd(i128 %v4_23, i128 %v4_23)
  store i128 %v2_2b, i128* %xmm5.global-to-local, align 8
  %v0_2f = load i32, i32* %esi.global-to-local, align 4
  %v1_2f = add i32 %v0_2f, 88
  %v2_2f = inttoptr i32 %v1_2f to i128*
  %v3_2f = load i128, i128* %v2_2f, align 4
  %v4_2f = load i128, i128* %xmm6.global-to-local, align 8
  call void @__asm_movupd.1(i128 %v3_2f, i128 %v4_2f)
  %v1_34 = add i32 %v0_2f, 112
  %v2_34 = inttoptr i32 %v1_34 to i128*
  %v3_34 = load i128, i128* %v2_34, align 4
  %v4_34 = load i128, i128* %xmm5.global-to-local, align 8
  call void @__asm_movupd.1(i128 %v3_34, i128 %v4_34)
  %v0_39 = load i32, i32* %esi.global-to-local, align 4
  %v1_39 = add i32 %v0_39, -144
  %v2_39 = inttoptr i32 %v1_39 to i64*
  %v3_39 = load i64, i64* %v2_39, align 4
  call void @__asm_movlpd.2(i64 %v3_39, i128 %v2_27)
  br label %dec_label_pc_8a

dec_label_pc_80:                                  ; preds = %dec_label_pc_0
  %v1_80 = add i32 %arg1, 216
  %v2_80 = inttoptr i32 %v1_80 to i128*
  %v3_80 = load i128, i128* %v2_80, align 4
  %v4_80 = call i128 @__asm_movupd(i128 %v3_80)
  store i128 %v4_80, i128* %xmm6.global-to-local, align 8
  %v0_85 = load i32, i32* %esi.global-to-local, align 4
  %v1_85 = add i32 %v0_85, 112
  %v2_85 = inttoptr i32 %v1_85 to i128*
  %v3_85 = load i128, i128* %v2_85, align 4
  %v4_85 = call i128 @__asm_movupd(i128 %v3_85)
  store i128 %v4_85, i128* %xmm5.global-to-local, align 8
  br label %dec_label_pc_8a

dec_label_pc_8a:                                  ; preds = %dec_label_pc_80, %dec_label_pc_1c
  %v0_8a = load i128, i128* %xmm6.global-to-local, align 8
  %v1_8a = call i128 @__asm_movapd(i128 %v0_8a)
  %v0_8e = load i128, i128* %xmm5.global-to-local, align 8
  %v1_8e = call i128 @__asm_movapd(i128 %v0_8e)
  %v1_44 = call i128 @__asm_movapd(i128 %v1_8a)
  %v2_48 = call i128 @__asm_mulpd(i128 %v1_8a, i128 %v1_8e)
  %v2_4c = call i128 @__asm_mulpd(i128 %v1_8e, i128 %v1_8e)
  %v2_50 = call i128 @__asm_mulpd(i128 %v1_44, i128 %v1_44)
  %v2_54 = call i128 @__asm_addpd(i128 %v2_48, i128 %v2_48)
  %v2_58 = call i128 @__asm_subpd(i128 %v2_4c, i128 %v2_50)
  %v0_5c = load i32, i32* @eax, align 8
  ret i32 %v0_5c
}

define i32 @function_97(i32 %arg1, i32 %arg2, i32 %arg3, i32 %arg4, i32 %arg5) local_unnamed_addr {
dec_label_pc_97:
  %edi.global-to-local = alloca i32, align 4
  %esi.global-to-local = alloca i32, align 4
  %xmm0.global-to-local = alloca i128, align 8
  %xmm1.global-to-local = alloca i128, align 8
  %xmm2.global-to-local = alloca i128, align 8
  %v0_97 = load i32, i32* %edi.global-to-local, align 4
  %v2_99 = udiv i32 %v0_97, 2
  %v1_af = add nsw i32 %v2_99, -4
  store i32 %v1_af, i32* %edi.global-to-local, align 4
  %v0_c2 = load i128, i128* %xmm2.global-to-local, align 8
  %v1_c2 = load i32, i32* %esi.global-to-local, align 4
  %v2_c2 = add i32 %v1_c2, -88
  %v3_c2 = inttoptr i32 %v2_c2 to i64*
  %v4_c2 = load i64, i64* %v3_c2, align 4
  %v5_c2 = call i128 @__asm_movlpd(i128 %v0_c2, i64 %v4_c2)
  store i128 %v5_c2, i128* %xmm2.global-to-local, align 8
  %v1_c7 = add i32 %v1_c2, -104
  %v2_c7 = inttoptr i32 %v1_c7 to i128*
  %v3_c7 = load i128, i128* %v2_c7, align 4
  %v4_c7 = call i128 @__asm_movupd(i128 %v3_c7)
  %v2_cc = call i128 @__asm_unpcklpd(i128 %v5_c2, i128 %v5_c2)
  store i128 %v2_cc, i128* %xmm2.global-to-local, align 8
  %v0_d0 = load i128, i128* %xmm1.global-to-local, align 8
  %v2_d0 = call i128 @__asm_addpd(i128 %v0_d0, i128 %v4_c7)
  store i128 %v2_d0, i128* %xmm1.global-to-local, align 8
  %v0_d4 = load i128, i128* %xmm0.global-to-local, align 8
  %v2_d4 = call i128 @__asm_addpd(i128 %v0_d4, i128 %v2_cc)
  store i128 %v2_d4, i128* %xmm0.global-to-local, align 8
  %v0_d8 = load i32, i32* %esi.global-to-local, align 4
  %v1_d8 = add i32 %v0_d8, 88
  %v2_d8 = inttoptr i32 %v1_d8 to i128*
  %v3_d8 = load i128, i128* %v2_d8, align 4
  call void @__asm_movupd.1(i128 %v3_d8, i128 %v2_d0)
  %v1_dd = add i32 %v0_d8, 112
  %v2_dd = inttoptr i32 %v1_dd to i128*
  %v3_dd = load i128, i128* %v2_dd, align 4
  call void @__asm_movupd.1(i128 %v3_dd, i128 %v2_d4)
  %v1_e2 = call i128 @__asm_pshufd(i128 %v2_d4, i32 78)
  store i128 %v1_e2, i128* %xmm2.global-to-local, align 8
  %v1_e7 = call i128 @__asm_pshufd(i128 %v2_d0, i32 78)
  %v2_ec = call i128 @__asm_addsd(i128 %v1_e2, i128 %v2_d4)
  store i128 %v2_ec, i128* %xmm2.global-to-local, align 8
  %v2_f0 = call i128 @__asm_addsd(i128 %v1_e7, i128 %v2_d0)
  %v2_f4 = call i128 @__asm_mulpd(i128 %v2_d4, i128 %v2_d4)
  store i128 %v2_f4, i128* %xmm0.global-to-local, align 8
  %v2_f8 = call i128 @__asm_mulpd(i128 %v2_d0, i128 %v2_d0)
  store i128 %v2_f8, i128* %xmm1.global-to-local, align 8
  %v2_fc = call i128 @__asm_unpcklpd(i128 %v2_ec, i128 %v2_f0)
  store i128 %v2_fc, i128* %xmm2.global-to-local, align 8
  %v2_100 = call i128 @__asm_addpd(i128 %v2_f4, i128 %v2_f8)
  store i128 %v2_100, i128* %xmm0.global-to-local, align 8
  %v1_104 = call i128 @__asm_movapd(i128 %v2_fc)
  %v1_108 = call i128 @__asm_pshufd(i128 %v2_100, i32 78)
  %v2_10d = call i128 @__asm_mulpd(i128 %v1_104, i128 %v1_104)
  %v2_111 = call i128 @__asm_addsd(i128 %v2_100, i128 %v1_108)
  store i128 %v2_111, i128* %xmm0.global-to-local, align 8
  %v1_115 = call i128 @__asm_pshufd(i128 %v2_10d, i32 78)
  %v1_11a = load i32, i32* @edx, align 8
  %v2_11a = add i32 %v1_11a, -8
  %v3_11a = inttoptr i32 %v2_11a to i64*
  %v4_11a = load i64, i64* %v3_11a, align 4
  %v5_11a = call i128 @__asm_mulsd(i128 %v2_111, i64 %v4_11a)
  store i128 %v5_11a, i128* %xmm0.global-to-local, align 8
  %v2_11f = call i128 @__asm_addsd(i128 %v1_115, i128 %v2_10d)
  %v3_123 = load i64, i64* bitcast (i32* @edx to i64*), align 8
  %v4_123 = call i128 @__asm_addsd.3(i128 %v2_11f, i64 %v3_123)
  %v2_127 = call i128 @__asm_divsd(i128 %v5_11a, i128 %v4_123)
  store i128 %v2_127, i128* %xmm0.global-to-local, align 8
  %v1_12b = call i128 @__asm_sqrtsd(i128 %v2_127)
  store i128 %v1_12b, i128* %xmm0.global-to-local, align 8
  %v2_12f = call i128 @__asm_unpcklpd(i128 %v1_12b, i128 %v1_12b)
  store i128 %v2_12f, i128* %xmm0.global-to-local, align 8
  %v2_133 = call i128 @__asm_mulpd(i128 %v2_fc, i128 %v2_12f)
  store i128 %v2_133, i128* %xmm2.global-to-local, align 8
  %v2_137 = load i128, i128* bitcast (i32* @eax to i128*), align 8
  call void @__asm_movupd.1(i128 %v2_137, i128 %v2_133)
  store i32 %arg1, i32* @edx, align 8
  store i32 %arg3, i32* %esi.global-to-local, align 4
  store i32 %arg4, i32* %edi.global-to-local, align 4
  %v0_140 = load i32, i32* @eax, align 8
  ret i32 %v0_140
}

declare i128 @__asm_movupd(i128) local_unnamed_addr

declare i128 @__asm_movlpd(i128, i64) local_unnamed_addr

declare i128 @__asm_xorpd(i128, i128) local_unnamed_addr

declare i128 @__asm_unpcklpd(i128, i128) local_unnamed_addr

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

declare void @__asm_movlpd.2(i64, i128) local_unnamed_addr

declare i128 @__asm_movapd(i128) local_unnamed_addr

declare i128 @__asm_mulpd(i128, i128) local_unnamed_addr

declare i128 @__asm_addpd(i128, i128) local_unnamed_addr

declare i128 @__asm_subpd(i128, i128) local_unnamed_addr

declare i128 @__asm_pshufd(i128, i32) local_unnamed_addr

declare i128 @__asm_addsd(i128, i128) local_unnamed_addr

declare i128 @__asm_mulsd(i128, i64) local_unnamed_addr

declare i128 @__asm_addsd.3(i128, i64) local_unnamed_addr

declare i128 @__asm_divsd(i128, i128) local_unnamed_addr

declare i128 @__asm_sqrtsd(i128) local_unnamed_addr
