#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ da_fast_renorm(double, double, double, double, double,
                                  double, double, double, double, double,
                                  double, double *, double *, double *,
                                  double *, double *, double *, double *,
                                  double *, double *, double *);
int /*<<< orphan*/ da_mul_da_d(double const *, double, double *);
int /*<<< orphan*/ da_sub(double const *, double *, double *);
void da_div(const double *a, const double *b, double *c) {
  double acc[10];
  double q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10;
  q0 = a[0] / b[0];
  da_mul_da_d(b, q0, acc);
  da_sub(a, acc, c);
  q1 = c[0] / b[0];
  da_mul_da_d(b, q1, acc);
  da_sub(c, acc, c);
  q2 = c[0] / b[0];
  da_mul_da_d(b, q2, acc);
  da_sub(c, acc, c);
  q3 = c[0] / b[0];
  da_mul_da_d(b, q3, acc);
  da_sub(c, acc, c);
  q4 = c[0] / b[0];
  da_mul_da_d(b, q4, acc);
  da_sub(c, acc, c);
  q5 = c[0] / b[0];
  da_mul_da_d(b, q5, acc);
  da_sub(c, acc, c);
  q6 = c[0] / b[0];
  da_mul_da_d(b, q6, acc);
  da_sub(c, acc, c);
  q7 = c[0] / b[0];
  da_mul_da_d(b, q7, acc);
  da_sub(c, acc, c);
  q8 = c[0] / b[0];
  da_mul_da_d(b, q8, acc);
  da_sub(c, acc, c);
  q9 = c[0] / b[0];
  da_mul_da_d(b, q9, acc);
  da_sub(c, acc, c);
  q10 = c[0] / b[0];
  da_fast_renorm(q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, &c[0], &c[1],
                 &c[2], &c[3], &c[4], &c[5], &c[6], &c[7], &c[8], &c[9]);
}


x86 assembly (clang, -O0):
<da_div>:
push   %rbp
mov    %rsp,%rbp
push   %rbx
sub    $0xf8,%rsp
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %rdx,-0x20(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
divsd  (%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x18(%rbp),%rdi
movsd  -0x78(%rbp),%xmm0
lea    -0x70(%rbp),%rsi
call   1050 <da_mul_da_d@plt>
mov    -0x10(%rbp),%rdi
lea    -0x70(%rbp),%rsi
mov    -0x20(%rbp),%rdx
call   1030 <da_sub@plt>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
divsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x18(%rbp),%rdi
movsd  -0x80(%rbp),%xmm0
lea    -0x70(%rbp),%rsi
call   1050 <da_mul_da_d@plt>
mov    -0x20(%rbp),%rdi
lea    -0x70(%rbp),%rsi
mov    -0x20(%rbp),%rdx
call   1030 <da_sub@plt>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
divsd  (%rax),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
mov    -0x18(%rbp),%rdi
movsd  -0x88(%rbp),%xmm0
ff
lea    -0x70(%rbp),%rsi
call   1050 <da_mul_da_d@plt>
mov    -0x20(%rbp),%rdi
lea    -0x70(%rbp),%rsi
mov    -0x20(%rbp),%rdx
call   1030 <da_sub@plt>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
divsd  (%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
mov    -0x18(%rbp),%rdi
movsd  -0x90(%rbp),%xmm0
ff
lea    -0x70(%rbp),%rsi
call   1050 <da_mul_da_d@plt>
mov    -0x20(%rbp),%rdi
lea    -0x70(%rbp),%rsi
mov    -0x20(%rbp),%rdx
call   1030 <da_sub@plt>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
divsd  (%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rdi
movsd  -0x98(%rbp),%xmm0
ff
lea    -0x70(%rbp),%rsi
call   1050 <da_mul_da_d@plt>
mov    -0x20(%rbp),%rdi
lea    -0x70(%rbp),%rsi
mov    -0x20(%rbp),%rdx
call   1030 <da_sub@plt>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
divsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rdi
movsd  -0xa0(%rbp),%xmm0
ff
lea    -0x70(%rbp),%rsi
call   1050 <da_mul_da_d@plt>
mov    -0x20(%rbp),%rdi
lea    -0x70(%rbp),%rsi
mov    -0x20(%rbp),%rdx
call   1030 <da_sub@plt>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
divsd  (%rax),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    -0x18(%rbp),%rdi
movsd  -0xa8(%rbp),%xmm0
ff
lea    -0x70(%rbp),%rsi
call   1050 <da_mul_da_d@plt>
mov    -0x20(%rbp),%rdi
lea    -0x70(%rbp),%rsi
mov    -0x20(%rbp),%rdx
call   1030 <da_sub@plt>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
divsd  (%rax),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x18(%rbp),%rdi
movsd  -0xb0(%rbp),%xmm0
ff
lea    -0x70(%rbp),%rsi
call   1050 <da_mul_da_d@plt>
mov    -0x20(%rbp),%rdi
lea    -0x70(%rbp),%rsi
mov    -0x20(%rbp),%rdx
call   1030 <da_sub@plt>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
divsd  (%rax),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
mov    -0x18(%rbp),%rdi
movsd  -0xb8(%rbp),%xmm0
ff
lea    -0x70(%rbp),%rsi
call   1050 <da_mul_da_d@plt>
mov    -0x20(%rbp),%rdi
lea    -0x70(%rbp),%rsi
mov    -0x20(%rbp),%rdx
call   1030 <da_sub@plt>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
divsd  (%rax),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
mov    -0x18(%rbp),%rdi
movsd  -0xc0(%rbp),%xmm0
ff
lea    -0x70(%rbp),%rsi
call   1050 <da_mul_da_d@plt>
mov    -0x20(%rbp),%rdi
lea    -0x70(%rbp),%rsi
mov    -0x20(%rbp),%rdx
call   1030 <da_sub@plt>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
divsd  (%rax),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
movsd  -0x88(%rbp),%xmm2
ff
movsd  -0x90(%rbp),%xmm3
ff
movsd  -0x98(%rbp),%xmm4
ff
movsd  -0xa0(%rbp),%xmm5
ff
movsd  -0xa8(%rbp),%xmm6
ff
movsd  -0xb0(%rbp),%xmm7
ff
movsd  -0xb8(%rbp),%xmm10
ff ff
movsd  -0xc0(%rbp),%xmm9
ff ff
movsd  -0xc8(%rbp),%xmm8
ff ff
mov    -0x20(%rbp),%rdi
mov    -0x20(%rbp),%rsi
add    $0x8,%rsi
mov    -0x20(%rbp),%rdx
add    $0x10,%rdx
mov    -0x20(%rbp),%rcx
add    $0x18,%rcx
mov    -0x20(%rbp),%r8
add    $0x20,%r8
mov    -0x20(%rbp),%r9
add    $0x28,%r9
mov    -0x20(%rbp),%rbx
add    $0x30,%rbx
mov    -0x20(%rbp),%r11
add    $0x38,%r11
mov    -0x20(%rbp),%r10
add    $0x40,%r10
mov    -0x20(%rbp),%rax
add    $0x48,%rax
movsd  %xmm10,(%rsp)
movsd  %xmm9,0x8(%rsp)
movsd  %xmm8,0x10(%rsp)
mov    %rbx,0x18(%rsp)
mov    %r11,0x20(%rsp)
mov    %r10,0x28(%rsp)
mov    %rax,0x30(%rsp)
call   1040 <da_fast_renorm@plt>
add    $0xf8,%rsp
pop    %rbx
pop    %rbp
ret

x86 assembly (clang, -O2):
<da_div>:
push   %r15
push   %r14
push   %r12
push   %rbx
sub    $0xe8,%rsp
mov    %rdx,%rbx
mov    %rsi,%r14
mov    %rdi,%r12
movsd  (%rdi),%xmm0
divsd  (%rsi),%xmm0
movsd  %xmm0,0x88(%rsp)
lea    0x90(%rsp),%r15
mov    %rsi,%rdi
mov    %r15,%rsi
call   1050 <da_mul_da_d@plt>
mov    %r12,%rdi
mov    %r15,%rsi
mov    %rbx,%rdx
call   1030 <da_sub@plt>
movsd  (%rbx),%xmm0
divsd  (%r14),%xmm0
movsd  %xmm0,0x80(%rsp)
mov    %r14,%rdi
mov    %r15,%rsi
call   1050 <da_mul_da_d@plt>
mov    %rbx,%rdi
mov    %r15,%rsi
mov    %rbx,%rdx
call   1030 <da_sub@plt>
movsd  (%rbx),%xmm0
divsd  (%r14),%xmm0
movsd  %xmm0,0x78(%rsp)
mov    %r14,%rdi
mov    %r15,%rsi
call   1050 <da_mul_da_d@plt>
mov    %rbx,%rdi
mov    %r15,%rsi
mov    %rbx,%rdx
call   1030 <da_sub@plt>
movsd  (%rbx),%xmm0
divsd  (%r14),%xmm0
movsd  %xmm0,0x70(%rsp)
mov    %r14,%rdi
mov    %r15,%rsi
call   1050 <da_mul_da_d@plt>
mov    %rbx,%rdi
mov    %r15,%rsi
mov    %rbx,%rdx
call   1030 <da_sub@plt>
movsd  (%rbx),%xmm0
divsd  (%r14),%xmm0
movsd  %xmm0,0x68(%rsp)
mov    %r14,%rdi
mov    %r15,%rsi
call   1050 <da_mul_da_d@plt>
mov    %rbx,%rdi
mov    %r15,%rsi
mov    %rbx,%rdx
call   1030 <da_sub@plt>
movsd  (%rbx),%xmm0
divsd  (%r14),%xmm0
movsd  %xmm0,0x60(%rsp)
mov    %r14,%rdi
mov    %r15,%rsi
call   1050 <da_mul_da_d@plt>
mov    %rbx,%rdi
mov    %r15,%rsi
mov    %rbx,%rdx
call   1030 <da_sub@plt>
movsd  (%rbx),%xmm0
divsd  (%r14),%xmm0
movsd  %xmm0,0x58(%rsp)
mov    %r14,%rdi
mov    %r15,%rsi
call   1050 <da_mul_da_d@plt>
mov    %rbx,%rdi
mov    %r15,%rsi
mov    %rbx,%rdx
call   1030 <da_sub@plt>
movsd  (%rbx),%xmm0
divsd  (%r14),%xmm0
movsd  %xmm0,0x50(%rsp)
mov    %r14,%rdi
mov    %r15,%rsi
call   1050 <da_mul_da_d@plt>
mov    %rbx,%rdi
mov    %r15,%rsi
mov    %rbx,%rdx
call   1030 <da_sub@plt>
movsd  (%rbx),%xmm0
divsd  (%r14),%xmm0
movsd  %xmm0,0x48(%rsp)
mov    %r14,%rdi
mov    %r15,%rsi
call   1050 <da_mul_da_d@plt>
mov    %rbx,%rdi
mov    %r15,%rsi
mov    %rbx,%rdx
call   1030 <da_sub@plt>
movsd  (%rbx),%xmm0
divsd  (%r14),%xmm0
movsd  %xmm0,0x40(%rsp)
mov    %r14,%rdi
mov    %r15,%rsi
call   1050 <da_mul_da_d@plt>
mov    %rbx,%rdi
mov    %r15,%rsi
mov    %rbx,%rdx
call   1030 <da_sub@plt>
movsd  (%rbx),%xmm0
divsd  (%r14),%xmm0
lea    0x8(%rbx),%rsi
lea    0x10(%rbx),%rdx
lea    0x18(%rbx),%rcx
lea    0x20(%rbx),%r8
lea    0x28(%rbx),%r9
lea    0x30(%rbx),%r10
lea    0x38(%rbx),%r11
lea    0x40(%rbx),%rax
lea    0x48(%rbx),%rdi
mov    %rdi,0x30(%rsp)
mov    %rax,0x28(%rsp)
mov    %r11,0x20(%rsp)
mov    %r10,0x18(%rsp)
movsd  %xmm0,0x10(%rsp)
movsd  0x40(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x48(%rsp),%xmm0
movsd  %xmm0,(%rsp)
movsd  0x88(%rsp),%xmm0
movsd  0x80(%rsp),%xmm1
movsd  0x78(%rsp),%xmm2
movsd  0x70(%rsp),%xmm3
movsd  0x68(%rsp),%xmm4
movsd  0x60(%rsp),%xmm5
movsd  0x58(%rsp),%xmm6
movsd  0x50(%rsp),%xmm7
mov    %rbx,%rdi
call   1040 <da_fast_renorm@plt>
add    $0xe8,%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
ret

LLVM IR (-O0):
define void @da_div(double* %0, double* %1, double* %2) {
%4 = alloca double*
%5 = alloca double*
%6 = alloca double*
%7 = alloca [10 x double]
%8 = alloca double
%9 = alloca double
%10 = alloca double
%11 = alloca double
%12 = alloca double
%13 = alloca double
%14 = alloca double
%15 = alloca double
%16 = alloca double
%17 = alloca double
%18 = alloca double
store double* %0, double** %4
store double* %1, double** %5
store double* %2, double** %6
%19 = load double*, double** %4
%20 = getelementptr inbounds double, double* %19, i64 0
%21 = load double, double* %20
%22 = load double*, double** %5
%23 = getelementptr inbounds double, double* %22, i64 0
%24 = load double, double* %23
%25 = fdiv double %21, %24
store double %25, double* %8
%26 = load double*, double** %5
%27 = load double, double* %8
%28 = getelementptr inbounds [10 x double], [10 x double]* %7, i64 0, i64 0
%29 = call i32 @da_mul_da_d(double* %26, double %27, double* %28)
%30 = load double*, double** %4
%31 = getelementptr inbounds [10 x double], [10 x double]* %7, i64 0, i64 0
%32 = load double*, double** %6
%33 = call i32 @da_sub(double* %30, double* %31, double* %32)
%34 = load double*, double** %6
%35 = getelementptr inbounds double, double* %34, i64 0
%36 = load double, double* %35
%37 = load double*, double** %5
%38 = getelementptr inbounds double, double* %37, i64 0
%39 = load double, double* %38
%40 = fdiv double %36, %39
store double %40, double* %9
%41 = load double*, double** %5
%42 = load double, double* %9
%43 = getelementptr inbounds [10 x double], [10 x double]* %7, i64 0, i64 0
%44 = call i32 @da_mul_da_d(double* %41, double %42, double* %43)
%45 = load double*, double** %6
%46 = getelementptr inbounds [10 x double], [10 x double]* %7, i64 0, i64 0
%47 = load double*, double** %6
%48 = call i32 @da_sub(double* %45, double* %46, double* %47)
%49 = load double*, double** %6
%50 = getelementptr inbounds double, double* %49, i64 0
%51 = load double, double* %50
%52 = load double*, double** %5
%53 = getelementptr inbounds double, double* %52, i64 0
%54 = load double, double* %53
%55 = fdiv double %51, %54
store double %55, double* %10
%56 = load double*, double** %5
%57 = load double, double* %10
%58 = getelementptr inbounds [10 x double], [10 x double]* %7, i64 0, i64 0
%59 = call i32 @da_mul_da_d(double* %56, double %57, double* %58)
%60 = load double*, double** %6
%61 = getelementptr inbounds [10 x double], [10 x double]* %7, i64 0, i64 0
%62 = load double*, double** %6
%63 = call i32 @da_sub(double* %60, double* %61, double* %62)
%64 = load double*, double** %6
%65 = getelementptr inbounds double, double* %64, i64 0
%66 = load double, double* %65
%67 = load double*, double** %5
%68 = getelementptr inbounds double, double* %67, i64 0
%69 = load double, double* %68
%70 = fdiv double %66, %69
store double %70, double* %11
%71 = load double*, double** %5
%72 = load double, double* %11
%73 = getelementptr inbounds [10 x double], [10 x double]* %7, i64 0, i64 0
%74 = call i32 @da_mul_da_d(double* %71, double %72, double* %73)
%75 = load double*, double** %6
%76 = getelementptr inbounds [10 x double], [10 x double]* %7, i64 0, i64 0
%77 = load double*, double** %6
%78 = call i32 @da_sub(double* %75, double* %76, double* %77)
%79 = load double*, double** %6
%80 = getelementptr inbounds double, double* %79, i64 0
%81 = load double, double* %80
%82 = load double*, double** %5
%83 = getelementptr inbounds double, double* %82, i64 0
%84 = load double, double* %83
%85 = fdiv double %81, %84
store double %85, double* %12
%86 = load double*, double** %5
%87 = load double, double* %12
%88 = getelementptr inbounds [10 x double], [10 x double]* %7, i64 0, i64 0
%89 = call i32 @da_mul_da_d(double* %86, double %87, double* %88)
%90 = load double*, double** %6
%91 = getelementptr inbounds [10 x double], [10 x double]* %7, i64 0, i64 0
%92 = load double*, double** %6
%93 = call i32 @da_sub(double* %90, double* %91, double* %92)
%94 = load double*, double** %6
%95 = getelementptr inbounds double, double* %94, i64 0
%96 = load double, double* %95
%97 = load double*, double** %5
%98 = getelementptr inbounds double, double* %97, i64 0
%99 = load double, double* %98
%100 = fdiv double %96, %99
store double %100, double* %13
%101 = load double*, double** %5
%102 = load double, double* %13
%103 = getelementptr inbounds [10 x double], [10 x double]* %7, i64 0, i64 0
%104 = call i32 @da_mul_da_d(double* %101, double %102, double* %103)
%105 = load double*, double** %6
%106 = getelementptr inbounds [10 x double], [10 x double]* %7, i64 0, i64 0
%107 = load double*, double** %6
%108 = call i32 @da_sub(double* %105, double* %106, double* %107)
%109 = load double*, double** %6
%110 = getelementptr inbounds double, double* %109, i64 0
%111 = load double, double* %110
%112 = load double*, double** %5
%113 = getelementptr inbounds double, double* %112, i64 0
%114 = load double, double* %113
%115 = fdiv double %111, %114
store double %115, double* %14
%116 = load double*, double** %5
%117 = load double, double* %14
%118 = getelementptr inbounds [10 x double], [10 x double]* %7, i64 0, i64 0
%119 = call i32 @da_mul_da_d(double* %116, double %117, double* %118)
%120 = load double*, double** %6
%121 = getelementptr inbounds [10 x double], [10 x double]* %7, i64 0, i64 0
%122 = load double*, double** %6
%123 = call i32 @da_sub(double* %120, double* %121, double* %122)
%124 = load double*, double** %6
%125 = getelementptr inbounds double, double* %124, i64 0
%126 = load double, double* %125
%127 = load double*, double** %5
%128 = getelementptr inbounds double, double* %127, i64 0
%129 = load double, double* %128
%130 = fdiv double %126, %129
store double %130, double* %15
%131 = load double*, double** %5
%132 = load double, double* %15
%133 = getelementptr inbounds [10 x double], [10 x double]* %7, i64 0, i64 0
%134 = call i32 @da_mul_da_d(double* %131, double %132, double* %133)
%135 = load double*, double** %6
%136 = getelementptr inbounds [10 x double], [10 x double]* %7, i64 0, i64 0
%137 = load double*, double** %6
%138 = call i32 @da_sub(double* %135, double* %136, double* %137)
%139 = load double*, double** %6
%140 = getelementptr inbounds double, double* %139, i64 0
%141 = load double, double* %140
%142 = load double*, double** %5
%143 = getelementptr inbounds double, double* %142, i64 0
%144 = load double, double* %143
%145 = fdiv double %141, %144
store double %145, double* %16
%146 = load double*, double** %5
%147 = load double, double* %16
%148 = getelementptr inbounds [10 x double], [10 x double]* %7, i64 0, i64 0
%149 = call i32 @da_mul_da_d(double* %146, double %147, double* %148)
%150 = load double*, double** %6
%151 = getelementptr inbounds [10 x double], [10 x double]* %7, i64 0, i64 0
%152 = load double*, double** %6
%153 = call i32 @da_sub(double* %150, double* %151, double* %152)
%154 = load double*, double** %6
%155 = getelementptr inbounds double, double* %154, i64 0
%156 = load double, double* %155
%157 = load double*, double** %5
%158 = getelementptr inbounds double, double* %157, i64 0
%159 = load double, double* %158
%160 = fdiv double %156, %159
store double %160, double* %17
%161 = load double*, double** %5
%162 = load double, double* %17
%163 = getelementptr inbounds [10 x double], [10 x double]* %7, i64 0, i64 0
%164 = call i32 @da_mul_da_d(double* %161, double %162, double* %163)
%165 = load double*, double** %6
%166 = getelementptr inbounds [10 x double], [10 x double]* %7, i64 0, i64 0
%167 = load double*, double** %6
%168 = call i32 @da_sub(double* %165, double* %166, double* %167)
%169 = load double*, double** %6
%170 = getelementptr inbounds double, double* %169, i64 0
%171 = load double, double* %170
%172 = load double*, double** %5
%173 = getelementptr inbounds double, double* %172, i64 0
%174 = load double, double* %173
%175 = fdiv double %171, %174
store double %175, double* %18
%176 = load double, double* %8
%177 = load double, double* %9
%178 = load double, double* %10
%179 = load double, double* %11
%180 = load double, double* %12
%181 = load double, double* %13
%182 = load double, double* %14
%183 = load double, double* %15
%184 = load double, double* %16
%185 = load double, double* %17
%186 = load double, double* %18
%187 = load double*, double** %6
%188 = getelementptr inbounds double, double* %187, i64 0
%189 = load double*, double** %6
%190 = getelementptr inbounds double, double* %189, i64 1
%191 = load double*, double** %6
%192 = getelementptr inbounds double, double* %191, i64 2
%193 = load double*, double** %6
%194 = getelementptr inbounds double, double* %193, i64 3
%195 = load double*, double** %6
%196 = getelementptr inbounds double, double* %195, i64 4
%197 = load double*, double** %6
%198 = getelementptr inbounds double, double* %197, i64 5
%199 = load double*, double** %6
%200 = getelementptr inbounds double, double* %199, i64 6
%201 = load double*, double** %6
%202 = getelementptr inbounds double, double* %201, i64 7
%203 = load double*, double** %6
%204 = getelementptr inbounds double, double* %203, i64 8
%205 = load double*, double** %6
%206 = getelementptr inbounds double, double* %205, i64 9
%207 = call i32 @da_fast_renorm(double %176, double %177, double %178, double %179, double %180, double %181, double %182, double %183, double %184, double %185, double %186, double* %188, double* %190, double* %192, double* %194, double* %196, double* %198, double* %200, double* %202, double* %204, double* %206)
ret void
}

LLVM IR (-O2):
define void @da_div(double* %0, double* %1, double* %2) {
%4 = alloca [10 x double]
%5 = bitcast [10 x double]* %4 to i8*
%6 = load double, double* %0
%7 = load double, double* %1
%8 = fdiv double %6, %7
%9 = getelementptr inbounds [10 x double], [10 x double]* %4, i64 0, i64 0
%10 = call i32 @da_mul_da_d(double* %1, double %8, double* %9)
%11 = call i32 @da_sub(double* %0, double* %9, double* %2)
%12 = load double, double* %2
%13 = load double, double* %1
%14 = fdiv double %12, %13
%15 = call i32 @da_mul_da_d(double* %1, double %14, double* %9)
%16 = call i32 @da_sub(double* %2, double* %9, double* %2)
%17 = load double, double* %2
%18 = load double, double* %1
%19 = fdiv double %17, %18
%20 = call i32 @da_mul_da_d(double* %1, double %19, double* %9)
%21 = call i32 @da_sub(double* %2, double* %9, double* %2)
%22 = load double, double* %2
%23 = load double, double* %1
%24 = fdiv double %22, %23
%25 = call i32 @da_mul_da_d(double* %1, double %24, double* %9)
%26 = call i32 @da_sub(double* %2, double* %9, double* %2)
%27 = load double, double* %2
%28 = load double, double* %1
%29 = fdiv double %27, %28
%30 = call i32 @da_mul_da_d(double* %1, double %29, double* %9)
%31 = call i32 @da_sub(double* %2, double* %9, double* %2)
%32 = load double, double* %2
%33 = load double, double* %1
%34 = fdiv double %32, %33
%35 = call i32 @da_mul_da_d(double* %1, double %34, double* %9)
%36 = call i32 @da_sub(double* %2, double* %9, double* %2)
%37 = load double, double* %2
%38 = load double, double* %1
%39 = fdiv double %37, %38
%40 = call i32 @da_mul_da_d(double* %1, double %39, double* %9)
%41 = call i32 @da_sub(double* %2, double* %9, double* %2)
%42 = load double, double* %2
%43 = load double, double* %1
%44 = fdiv double %42, %43
%45 = call i32 @da_mul_da_d(double* %1, double %44, double* %9)
%46 = call i32 @da_sub(double* %2, double* %9, double* %2)
%47 = load double, double* %2
%48 = load double, double* %1
%49 = fdiv double %47, %48
%50 = call i32 @da_mul_da_d(double* %1, double %49, double* %9)
%51 = call i32 @da_sub(double* %2, double* %9, double* %2)
%52 = load double, double* %2
%53 = load double, double* %1
%54 = fdiv double %52, %53
%55 = call i32 @da_mul_da_d(double* %1, double %54, double* %9)
%56 = call i32 @da_sub(double* %2, double* %9, double* %2)
%57 = load double, double* %2
%58 = load double, double* %1
%59 = fdiv double %57, %58
%60 = getelementptr inbounds double, double* %2, i64 1
%61 = getelementptr inbounds double, double* %2, i64 2
%62 = getelementptr inbounds double, double* %2, i64 3
%63 = getelementptr inbounds double, double* %2, i64 4
%64 = getelementptr inbounds double, double* %2, i64 5
%65 = getelementptr inbounds double, double* %2, i64 6
%66 = getelementptr inbounds double, double* %2, i64 7
%67 = getelementptr inbounds double, double* %2, i64 8
%68 = getelementptr inbounds double, double* %2, i64 9
%69 = call i32 @da_fast_renorm(double %8, double %14, double %19, double %24, double %29, double %34, double %39, double %44, double %49, double %54, double %59, double* %2, double* %60, double* %61, double* %62, double* %63, double* %64, double* %65, double* %66, double* %67, double* %68)
ret void
}