void scalars_res_poly_scale_SD(int version, double a1, double a2,
                               double *scalar) {
  scalar[0] /= a1;
  scalar[1] /= a1;
  scalar[2] /= a2;
  scalar[3] /= a2;
  scalar[4] /= a1;
  scalar[5] /= a1;
  scalar[6] /= a2;
  scalar[7] /= a2;
  if (version == 0)
    return;
  double a12 = a1 * a1;
  double a13 = a12 * a1;
  double a22 = a2 * a2;
  double a23 = a22 * a2;
  scalar[8] /= a12;
  scalar[9] /= a12;
  scalar[10] /= a22;
  scalar[11] /= a22;
  scalar[12] /= a13;
  scalar[13] /= a13;
  scalar[14] /= a23;
  scalar[15] /= a23;
  scalar[16] /= a13;
  scalar[17] /= a13;
  scalar[18] /= a23;
  scalar[19] /= a23;
  if (version == 1)
    return;
  scalar[20] /= a12;
  scalar[21] /= a12;
  scalar[22] /= a22;
  scalar[23] /= a22;
  scalar[24] /= a12;
  scalar[25] /= a12;
  scalar[26] /= a22;
  scalar[27] /= a22;
  scalar[28] /= a13;
  scalar[29] /= a13;
  scalar[30] /= a23;
  scalar[31] /= a23;
  scalar[32] /= a13;
  scalar[33] /= a13;
  scalar[34] /= a23;
  scalar[35] /= a23;
  scalar[36] /= a13;
  scalar[37] /= a13;
  scalar[38] /= a23;
  scalar[39] /= a23;
  scalar[40] /= a13;
  scalar[41] /= a13;
  scalar[42] /= a23;
  scalar[43] /= a23;
}


x86 assembly (clang, -O0):
<scalars_res_poly_scale_SD>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x4(%rbp)
movsd  %xmm0,-0x10(%rbp)
movsd  %xmm1,-0x18(%rbp)
mov    %rsi,-0x20(%rbp)
movsd  -0x10(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,(%rax)
movsd  -0x10(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x8(%rax)
movsd  -0x18(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x10(%rax)
movsd  -0x18(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x18(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x18(%rax)
movsd  -0x10(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x20(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x20(%rax)
movsd  -0x10(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x28(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x28(%rax)
movsd  -0x18(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x30(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x30(%rax)
movsd  -0x18(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x38(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x38(%rax)
cmpl   $0x0,-0x4(%rbp)
jne    11da <scalars_res_poly_scale_SD+0xda>
jmp    1609 <scalars_res_poly_scale_SD+0x509>
movsd  -0x10(%rbp),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x28(%rbp),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x18(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x38(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x28(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x40(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x40(%rax)
movsd  -0x28(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x48(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x48(%rax)
movsd  -0x38(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x50(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x50(%rax)
movsd  -0x38(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x58(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x58(%rax)
movsd  -0x30(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x60(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x60(%rax)
movsd  -0x30(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x68(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x68(%rax)
movsd  -0x40(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x70(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x70(%rax)
movsd  -0x40(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x78(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x78(%rax)
movsd  -0x30(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x80(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x80(%rax)
movsd  -0x30(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x88(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x88(%rax)
movsd  -0x40(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x90(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x90(%rax)
movsd  -0x40(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x98(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x98(%rax)
cmpl   $0x1,-0x4(%rbp)
jne    1351 <scalars_res_poly_scale_SD+0x251>
jmp    1609 <scalars_res_poly_scale_SD+0x509>
movsd  -0x28(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0xa0(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0xa0(%rax)
movsd  -0x28(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0xa8(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0xa8(%rax)
movsd  -0x38(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0xb0(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0xb0(%rax)
movsd  -0x38(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0xb8(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0xb8(%rax)
movsd  -0x28(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0xc0(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0xc0(%rax)
movsd  -0x28(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0xc8(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0xc8(%rax)
movsd  -0x38(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0xd0(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0xd0(%rax)
movsd  -0x38(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0xd8(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0xd8(%rax)
movsd  -0x30(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0xe0(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0xe0(%rax)
movsd  -0x30(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0xe8(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0xe8(%rax)
movsd  -0x40(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0xf0(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0xf0(%rax)
movsd  -0x40(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0xf8(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0xf8(%rax)
movsd  -0x30(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x100(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x100(%rax)
movsd  -0x30(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x108(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x108(%rax)
movsd  -0x40(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x110(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x110(%rax)
movsd  -0x40(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x118(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x118(%rax)
movsd  -0x30(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x120(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x120(%rax)
movsd  -0x30(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x128(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x128(%rax)
movsd  -0x40(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x130(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x130(%rax)
movsd  -0x40(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x138(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x138(%rax)
movsd  -0x30(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x140(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x140(%rax)
movsd  -0x30(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x148(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x148(%rax)
movsd  -0x40(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x150(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x150(%rax)
movsd  -0x40(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movsd  0x158(%rax),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,0x158(%rax)
pop    %rbp
ret

x86 assembly (clang, -O2):
<scalars_res_poly_scale_SD>:
movapd %xmm0,%xmm2
unpcklpd %xmm0,%xmm2
movupd (%rsi),%xmm3
movupd 0x10(%rsi),%xmm4
movupd 0x20(%rsi),%xmm5
movupd 0x30(%rsi),%xmm6
divpd  %xmm2,%xmm3
movupd %xmm3,(%rsi)
movapd %xmm1,%xmm3
unpcklpd %xmm1,%xmm3
divpd  %xmm3,%xmm4
movupd %xmm4,0x10(%rsi)
divpd  %xmm2,%xmm5
movupd %xmm5,0x20(%rsi)
divpd  %xmm3,%xmm6
movupd %xmm6,0x30(%rsi)
test   %edi,%edi
je     12cf <scalars_res_poly_scale_SD+0x1cf>
movapd %xmm0,%xmm2
mulsd  %xmm0,%xmm2
mulsd  %xmm2,%xmm0
movapd %xmm1,%xmm3
mulsd  %xmm1,%xmm3
mulsd  %xmm3,%xmm1
unpcklpd %xmm2,%xmm2
movupd 0x40(%rsi),%xmm4
movupd 0x50(%rsi),%xmm5
movupd 0x60(%rsi),%xmm6
movupd 0x70(%rsi),%xmm7
divpd  %xmm2,%xmm4
movupd %xmm4,0x40(%rsi)
unpcklpd %xmm3,%xmm3
divpd  %xmm3,%xmm5
movupd %xmm5,0x50(%rsi)
unpcklpd %xmm0,%xmm0
divpd  %xmm0,%xmm6
movupd %xmm6,0x60(%rsi)
unpcklpd %xmm1,%xmm1
divpd  %xmm1,%xmm7
movupd %xmm7,0x70(%rsi)
movupd 0x80(%rsi),%xmm4
divpd  %xmm0,%xmm4
movupd %xmm4,0x80(%rsi)
movupd 0x90(%rsi),%xmm4
divpd  %xmm1,%xmm4
movupd %xmm4,0x90(%rsi)
cmp    $0x1,%edi
je     12cf <scalars_res_poly_scale_SD+0x1cf>
movupd 0xa0(%rsi),%xmm4
movupd 0xb0(%rsi),%xmm5
movupd 0xc0(%rsi),%xmm6
movupd 0xd0(%rsi),%xmm7
divpd  %xmm2,%xmm4
movupd %xmm4,0xa0(%rsi)
divpd  %xmm3,%xmm5
movupd %xmm5,0xb0(%rsi)
divpd  %xmm2,%xmm6
movupd %xmm6,0xc0(%rsi)
divpd  %xmm3,%xmm7
movupd %xmm7,0xd0(%rsi)
movupd 0xe0(%rsi),%xmm2
divpd  %xmm0,%xmm2
movupd %xmm2,0xe0(%rsi)
movupd 0xf0(%rsi),%xmm2
divpd  %xmm1,%xmm2
movupd %xmm2,0xf0(%rsi)
movupd 0x100(%rsi),%xmm2
divpd  %xmm0,%xmm2
movupd %xmm2,0x100(%rsi)
movupd 0x110(%rsi),%xmm2
divpd  %xmm1,%xmm2
movupd %xmm2,0x110(%rsi)
movupd 0x120(%rsi),%xmm2
divpd  %xmm0,%xmm2
movupd %xmm2,0x120(%rsi)
movupd 0x130(%rsi),%xmm2
divpd  %xmm1,%xmm2
movupd %xmm2,0x130(%rsi)
movupd 0x140(%rsi),%xmm2
divpd  %xmm0,%xmm2
movupd %xmm2,0x140(%rsi)
movupd 0x150(%rsi),%xmm0
divpd  %xmm1,%xmm0
movupd %xmm0,0x150(%rsi)
ret

LLVM IR (-O0):
define void @scalars_res_poly_scale_SD(i32 %0, double %1, double %2, double* %3) {
%5 = alloca i32
%6 = alloca double
%7 = alloca double
%8 = alloca double*
%9 = alloca double
%10 = alloca double
%11 = alloca double
%12 = alloca double
store i32 %0, i32* %5
store double %1, double* %6
store double %2, double* %7
store double* %3, double** %8
%13 = load double, double* %6
%14 = load double*, double** %8
%15 = getelementptr inbounds double, double* %14, i64 0
%16 = load double, double* %15
%17 = fdiv double %16, %13
store double %17, double* %15
%18 = load double, double* %6
%19 = load double*, double** %8
%20 = getelementptr inbounds double, double* %19, i64 1
%21 = load double, double* %20
%22 = fdiv double %21, %18
store double %22, double* %20
%23 = load double, double* %7
%24 = load double*, double** %8
%25 = getelementptr inbounds double, double* %24, i64 2
%26 = load double, double* %25
%27 = fdiv double %26, %23
store double %27, double* %25
%28 = load double, double* %7
%29 = load double*, double** %8
%30 = getelementptr inbounds double, double* %29, i64 3
%31 = load double, double* %30
%32 = fdiv double %31, %28
store double %32, double* %30
%33 = load double, double* %6
%34 = load double*, double** %8
%35 = getelementptr inbounds double, double* %34, i64 4
%36 = load double, double* %35
%37 = fdiv double %36, %33
store double %37, double* %35
%38 = load double, double* %6
%39 = load double*, double** %8
%40 = getelementptr inbounds double, double* %39, i64 5
%41 = load double, double* %40
%42 = fdiv double %41, %38
store double %42, double* %40
%43 = load double, double* %7
%44 = load double*, double** %8
%45 = getelementptr inbounds double, double* %44, i64 6
%46 = load double, double* %45
%47 = fdiv double %46, %43
store double %47, double* %45
%48 = load double, double* %7
%49 = load double*, double** %8
%50 = getelementptr inbounds double, double* %49, i64 7
%51 = load double, double* %50
%52 = fdiv double %51, %48
store double %52, double* %50
%53 = load i32, i32* %5
%54 = icmp eq i32 %53, 0
br i1 %54, label %55, label %56
55: ; preds = %4
br label %253
56: ; preds = %4
%57 = load double, double* %6
%58 = load double, double* %6
%59 = fmul double %57, %58
store double %59, double* %9
%60 = load double, double* %9
%61 = load double, double* %6
%62 = fmul double %60, %61
store double %62, double* %10
%63 = load double, double* %7
%64 = load double, double* %7
%65 = fmul double %63, %64
store double %65, double* %11
%66 = load double, double* %11
%67 = load double, double* %7
%68 = fmul double %66, %67
store double %68, double* %12
%69 = load double, double* %9
%70 = load double*, double** %8
%71 = getelementptr inbounds double, double* %70, i64 8
%72 = load double, double* %71
%73 = fdiv double %72, %69
store double %73, double* %71
%74 = load double, double* %9
%75 = load double*, double** %8
%76 = getelementptr inbounds double, double* %75, i64 9
%77 = load double, double* %76
%78 = fdiv double %77, %74
store double %78, double* %76
%79 = load double, double* %11
%80 = load double*, double** %8
%81 = getelementptr inbounds double, double* %80, i64 10
%82 = load double, double* %81
%83 = fdiv double %82, %79
store double %83, double* %81
%84 = load double, double* %11
%85 = load double*, double** %8
%86 = getelementptr inbounds double, double* %85, i64 11
%87 = load double, double* %86
%88 = fdiv double %87, %84
store double %88, double* %86
%89 = load double, double* %10
%90 = load double*, double** %8
%91 = getelementptr inbounds double, double* %90, i64 12
%92 = load double, double* %91
%93 = fdiv double %92, %89
store double %93, double* %91
%94 = load double, double* %10
%95 = load double*, double** %8
%96 = getelementptr inbounds double, double* %95, i64 13
%97 = load double, double* %96
%98 = fdiv double %97, %94
store double %98, double* %96
%99 = load double, double* %12
%100 = load double*, double** %8
%101 = getelementptr inbounds double, double* %100, i64 14
%102 = load double, double* %101
%103 = fdiv double %102, %99
store double %103, double* %101
%104 = load double, double* %12
%105 = load double*, double** %8
%106 = getelementptr inbounds double, double* %105, i64 15
%107 = load double, double* %106
%108 = fdiv double %107, %104
store double %108, double* %106
%109 = load double, double* %10
%110 = load double*, double** %8
%111 = getelementptr inbounds double, double* %110, i64 16
%112 = load double, double* %111
%113 = fdiv double %112, %109
store double %113, double* %111
%114 = load double, double* %10
%115 = load double*, double** %8
%116 = getelementptr inbounds double, double* %115, i64 17
%117 = load double, double* %116
%118 = fdiv double %117, %114
store double %118, double* %116
%119 = load double, double* %12
%120 = load double*, double** %8
%121 = getelementptr inbounds double, double* %120, i64 18
%122 = load double, double* %121
%123 = fdiv double %122, %119
store double %123, double* %121
%124 = load double, double* %12
%125 = load double*, double** %8
%126 = getelementptr inbounds double, double* %125, i64 19
%127 = load double, double* %126
%128 = fdiv double %127, %124
store double %128, double* %126
%129 = load i32, i32* %5
%130 = icmp eq i32 %129, 1
br i1 %130, label %131, label %132
131: ; preds = %56
br label %253
132: ; preds = %56
%133 = load double, double* %9
%134 = load double*, double** %8
%135 = getelementptr inbounds double, double* %134, i64 20
%136 = load double, double* %135
%137 = fdiv double %136, %133
store double %137, double* %135
%138 = load double, double* %9
%139 = load double*, double** %8
%140 = getelementptr inbounds double, double* %139, i64 21
%141 = load double, double* %140
%142 = fdiv double %141, %138
store double %142, double* %140
%143 = load double, double* %11
%144 = load double*, double** %8
%145 = getelementptr inbounds double, double* %144, i64 22
%146 = load double, double* %145
%147 = fdiv double %146, %143
store double %147, double* %145
%148 = load double, double* %11
%149 = load double*, double** %8
%150 = getelementptr inbounds double, double* %149, i64 23
%151 = load double, double* %150
%152 = fdiv double %151, %148
store double %152, double* %150
%153 = load double, double* %9
%154 = load double*, double** %8
%155 = getelementptr inbounds double, double* %154, i64 24
%156 = load double, double* %155
%157 = fdiv double %156, %153
store double %157, double* %155
%158 = load double, double* %9
%159 = load double*, double** %8
%160 = getelementptr inbounds double, double* %159, i64 25
%161 = load double, double* %160
%162 = fdiv double %161, %158
store double %162, double* %160
%163 = load double, double* %11
%164 = load double*, double** %8
%165 = getelementptr inbounds double, double* %164, i64 26
%166 = load double, double* %165
%167 = fdiv double %166, %163
store double %167, double* %165
%168 = load double, double* %11
%169 = load double*, double** %8
%170 = getelementptr inbounds double, double* %169, i64 27
%171 = load double, double* %170
%172 = fdiv double %171, %168
store double %172, double* %170
%173 = load double, double* %10
%174 = load double*, double** %8
%175 = getelementptr inbounds double, double* %174, i64 28
%176 = load double, double* %175
%177 = fdiv double %176, %173
store double %177, double* %175
%178 = load double, double* %10
%179 = load double*, double** %8
%180 = getelementptr inbounds double, double* %179, i64 29
%181 = load double, double* %180
%182 = fdiv double %181, %178
store double %182, double* %180
%183 = load double, double* %12
%184 = load double*, double** %8
%185 = getelementptr inbounds double, double* %184, i64 30
%186 = load double, double* %185
%187 = fdiv double %186, %183
store double %187, double* %185
%188 = load double, double* %12
%189 = load double*, double** %8
%190 = getelementptr inbounds double, double* %189, i64 31
%191 = load double, double* %190
%192 = fdiv double %191, %188
store double %192, double* %190
%193 = load double, double* %10
%194 = load double*, double** %8
%195 = getelementptr inbounds double, double* %194, i64 32
%196 = load double, double* %195
%197 = fdiv double %196, %193
store double %197, double* %195
%198 = load double, double* %10
%199 = load double*, double** %8
%200 = getelementptr inbounds double, double* %199, i64 33
%201 = load double, double* %200
%202 = fdiv double %201, %198
store double %202, double* %200
%203 = load double, double* %12
%204 = load double*, double** %8
%205 = getelementptr inbounds double, double* %204, i64 34
%206 = load double, double* %205
%207 = fdiv double %206, %203
store double %207, double* %205
%208 = load double, double* %12
%209 = load double*, double** %8
%210 = getelementptr inbounds double, double* %209, i64 35
%211 = load double, double* %210
%212 = fdiv double %211, %208
store double %212, double* %210
%213 = load double, double* %10
%214 = load double*, double** %8
%215 = getelementptr inbounds double, double* %214, i64 36
%216 = load double, double* %215
%217 = fdiv double %216, %213
store double %217, double* %215
%218 = load double, double* %10
%219 = load double*, double** %8
%220 = getelementptr inbounds double, double* %219, i64 37
%221 = load double, double* %220
%222 = fdiv double %221, %218
store double %222, double* %220
%223 = load double, double* %12
%224 = load double*, double** %8
%225 = getelementptr inbounds double, double* %224, i64 38
%226 = load double, double* %225
%227 = fdiv double %226, %223
store double %227, double* %225
%228 = load double, double* %12
%229 = load double*, double** %8
%230 = getelementptr inbounds double, double* %229, i64 39
%231 = load double, double* %230
%232 = fdiv double %231, %228
store double %232, double* %230
%233 = load double, double* %10
%234 = load double*, double** %8
%235 = getelementptr inbounds double, double* %234, i64 40
%236 = load double, double* %235
%237 = fdiv double %236, %233
store double %237, double* %235
%238 = load double, double* %10
%239 = load double*, double** %8
%240 = getelementptr inbounds double, double* %239, i64 41
%241 = load double, double* %240
%242 = fdiv double %241, %238
store double %242, double* %240
%243 = load double, double* %12
%244 = load double*, double** %8
%245 = getelementptr inbounds double, double* %244, i64 42
%246 = load double, double* %245
%247 = fdiv double %246, %243
store double %247, double* %245
%248 = load double, double* %12
%249 = load double*, double** %8
%250 = getelementptr inbounds double, double* %249, i64 43
%251 = load double, double* %250
%252 = fdiv double %251, %248
store double %252, double* %250
br label %253
253: ; preds = %132, %131, %55
ret void
}

LLVM IR (-O2):
define void @scalars_res_poly_scale_SD(i32 %0, double %1, double %2, double* %3) {
%5 = bitcast double* %3 to <2 x double>*
%6 = load <2 x double>, <2 x double>* %5
%7 = insertelement <2 x double> poison, double %1, i64 0
%8 = shufflevector <2 x double> %7, <2 x double> poison, <2 x i32> zeroinitializer
%9 = fdiv <2 x double> %6, %8
%10 = bitcast double* %3 to <2 x double>*
store <2 x double> %9, <2 x double>* %10
%11 = getelementptr inbounds double, double* %3, i64 2
%12 = bitcast double* %11 to <2 x double>*
%13 = load <2 x double>, <2 x double>* %12
%14 = insertelement <2 x double> poison, double %2, i64 0
%15 = shufflevector <2 x double> %14, <2 x double> poison, <2 x i32> zeroinitializer
%16 = fdiv <2 x double> %13, %15
%17 = bitcast double* %11 to <2 x double>*
store <2 x double> %16, <2 x double>* %17
%18 = getelementptr inbounds double, double* %3, i64 4
%19 = bitcast double* %18 to <2 x double>*
%20 = load <2 x double>, <2 x double>* %19
%21 = fdiv <2 x double> %20, %8
%22 = bitcast double* %18 to <2 x double>*
store <2 x double> %21, <2 x double>* %22
%23 = getelementptr inbounds double, double* %3, i64 6
%24 = bitcast double* %23 to <2 x double>*
%25 = load <2 x double>, <2 x double>* %24
%26 = fdiv <2 x double> %25, %15
%27 = bitcast double* %23 to <2 x double>*
store <2 x double> %26, <2 x double>* %27
%28 = icmp eq i32 %0, 0
br i1 %28, label %134, label %29
29: ; preds = %4
%30 = fmul double %1, %1
%31 = fmul double %30, %1
%32 = fmul double %2, %2
%33 = fmul double %32, %2
%34 = getelementptr inbounds double, double* %3, i64 8
%35 = bitcast double* %34 to <2 x double>*
%36 = load <2 x double>, <2 x double>* %35
%37 = insertelement <2 x double> poison, double %30, i64 0
%38 = shufflevector <2 x double> %37, <2 x double> poison, <2 x i32> zeroinitializer
%39 = fdiv <2 x double> %36, %38
%40 = bitcast double* %34 to <2 x double>*
store <2 x double> %39, <2 x double>* %40
%41 = getelementptr inbounds double, double* %3, i64 10
%42 = bitcast double* %41 to <2 x double>*
%43 = load <2 x double>, <2 x double>* %42
%44 = insertelement <2 x double> poison, double %32, i64 0
%45 = shufflevector <2 x double> %44, <2 x double> poison, <2 x i32> zeroinitializer
%46 = fdiv <2 x double> %43, %45
%47 = bitcast double* %41 to <2 x double>*
store <2 x double> %46, <2 x double>* %47
%48 = getelementptr inbounds double, double* %3, i64 12
%49 = bitcast double* %48 to <2 x double>*
%50 = load <2 x double>, <2 x double>* %49
%51 = insertelement <2 x double> poison, double %31, i64 0
%52 = shufflevector <2 x double> %51, <2 x double> poison, <2 x i32> zeroinitializer
%53 = fdiv <2 x double> %50, %52
%54 = bitcast double* %48 to <2 x double>*
store <2 x double> %53, <2 x double>* %54
%55 = getelementptr inbounds double, double* %3, i64 14
%56 = bitcast double* %55 to <2 x double>*
%57 = load <2 x double>, <2 x double>* %56
%58 = insertelement <2 x double> poison, double %33, i64 0
%59 = shufflevector <2 x double> %58, <2 x double> poison, <2 x i32> zeroinitializer
%60 = fdiv <2 x double> %57, %59
%61 = bitcast double* %55 to <2 x double>*
store <2 x double> %60, <2 x double>* %61
%62 = getelementptr inbounds double, double* %3, i64 16
%63 = bitcast double* %62 to <2 x double>*
%64 = load <2 x double>, <2 x double>* %63
%65 = fdiv <2 x double> %64, %52
%66 = bitcast double* %62 to <2 x double>*
store <2 x double> %65, <2 x double>* %66
%67 = getelementptr inbounds double, double* %3, i64 18
%68 = bitcast double* %67 to <2 x double>*
%69 = load <2 x double>, <2 x double>* %68
%70 = fdiv <2 x double> %69, %59
%71 = bitcast double* %67 to <2 x double>*
store <2 x double> %70, <2 x double>* %71
%72 = icmp eq i32 %0, 1
br i1 %72, label %134, label %73
73: ; preds = %29
%74 = getelementptr inbounds double, double* %3, i64 20
%75 = bitcast double* %74 to <2 x double>*
%76 = load <2 x double>, <2 x double>* %75
%77 = fdiv <2 x double> %76, %38
%78 = bitcast double* %74 to <2 x double>*
store <2 x double> %77, <2 x double>* %78
%79 = getelementptr inbounds double, double* %3, i64 22
%80 = bitcast double* %79 to <2 x double>*
%81 = load <2 x double>, <2 x double>* %80
%82 = fdiv <2 x double> %81, %45
%83 = bitcast double* %79 to <2 x double>*
store <2 x double> %82, <2 x double>* %83
%84 = getelementptr inbounds double, double* %3, i64 24
%85 = bitcast double* %84 to <2 x double>*
%86 = load <2 x double>, <2 x double>* %85
%87 = fdiv <2 x double> %86, %38
%88 = bitcast double* %84 to <2 x double>*
store <2 x double> %87, <2 x double>* %88
%89 = getelementptr inbounds double, double* %3, i64 26
%90 = bitcast double* %89 to <2 x double>*
%91 = load <2 x double>, <2 x double>* %90
%92 = fdiv <2 x double> %91, %45
%93 = bitcast double* %89 to <2 x double>*
store <2 x double> %92, <2 x double>* %93
%94 = getelementptr inbounds double, double* %3, i64 28
%95 = bitcast double* %94 to <2 x double>*
%96 = load <2 x double>, <2 x double>* %95
%97 = fdiv <2 x double> %96, %52
%98 = bitcast double* %94 to <2 x double>*
store <2 x double> %97, <2 x double>* %98
%99 = getelementptr inbounds double, double* %3, i64 30
%100 = bitcast double* %99 to <2 x double>*
%101 = load <2 x double>, <2 x double>* %100
%102 = fdiv <2 x double> %101, %59
%103 = bitcast double* %99 to <2 x double>*
store <2 x double> %102, <2 x double>* %103
%104 = getelementptr inbounds double, double* %3, i64 32
%105 = bitcast double* %104 to <2 x double>*
%106 = load <2 x double>, <2 x double>* %105
%107 = fdiv <2 x double> %106, %52
%108 = bitcast double* %104 to <2 x double>*
store <2 x double> %107, <2 x double>* %108
%109 = getelementptr inbounds double, double* %3, i64 34
%110 = bitcast double* %109 to <2 x double>*
%111 = load <2 x double>, <2 x double>* %110
%112 = fdiv <2 x double> %111, %59
%113 = bitcast double* %109 to <2 x double>*
store <2 x double> %112, <2 x double>* %113
%114 = getelementptr inbounds double, double* %3, i64 36
%115 = bitcast double* %114 to <2 x double>*
%116 = load <2 x double>, <2 x double>* %115
%117 = fdiv <2 x double> %116, %52
%118 = bitcast double* %114 to <2 x double>*
store <2 x double> %117, <2 x double>* %118
%119 = getelementptr inbounds double, double* %3, i64 38
%120 = bitcast double* %119 to <2 x double>*
%121 = load <2 x double>, <2 x double>* %120
%122 = fdiv <2 x double> %121, %59
%123 = bitcast double* %119 to <2 x double>*
store <2 x double> %122, <2 x double>* %123
%124 = getelementptr inbounds double, double* %3, i64 40
%125 = bitcast double* %124 to <2 x double>*
%126 = load <2 x double>, <2 x double>* %125
%127 = fdiv <2 x double> %126, %52
%128 = bitcast double* %124 to <2 x double>*
store <2 x double> %127, <2 x double>* %128
%129 = getelementptr inbounds double, double* %3, i64 42
%130 = bitcast double* %129 to <2 x double>*
%131 = load <2 x double>, <2 x double>* %130
%132 = fdiv <2 x double> %131, %59
%133 = bitcast double* %129 to <2 x double>*
store <2 x double> %132, <2 x double>* %133
br label %134
134: ; preds = %73, %29, %4
ret void
}