void INITIALIZE_MASS(double *pdAAMass, int bMassType) {
  double H = 0.0, O = 0.0, C = 0.0, N = 0.0, P = 0.0, S = 0.0;
  int i;
  for (i = 0; i < 128; i++)
    pdAAMass[i] = 999999.9;
  if (bMassType) {
    H = pdAAMass['h'] = 1.0078250352;
    O = pdAAMass['o'] = 15.99491463;
    C = pdAAMass['c'] = 12.0000000;
    N = pdAAMass['n'] = 14.003074;
    P = pdAAMass['p'] = 30.973762;
    S = pdAAMass['s'] = 31.9720707;
  } else {
    H = pdAAMass['h'] = 1.00794;
    O = pdAAMass['o'] = 15.9994;
    C = pdAAMass['c'] = 12.0107;
    N = pdAAMass['n'] = 14.0067;
    P = pdAAMass['p'] = 30.973761;
    S = pdAAMass['s'] = 32.065;
  }
  pdAAMass['G'] = C * 2 + H * 3 + N + O;
  pdAAMass['A'] = C * 3 + H * 5 + N + O;
  pdAAMass['S'] = C * 3 + H * 5 + N + O * 2;
  pdAAMass['P'] = C * 5 + H * 7 + N + O;
  pdAAMass['V'] = C * 5 + H * 9 + N + O;
  pdAAMass['T'] = C * 4 + H * 7 + N + O * 2;
  pdAAMass['C'] = C * 3 + H * 5 + N + O + S;
  pdAAMass['L'] = C * 6 + H * 11 + N + O;
  pdAAMass['I'] = C * 6 + H * 11 + N + O;
  pdAAMass['N'] = C * 4 + H * 6 + N * 2 + O * 2;
  pdAAMass['D'] = C * 4 + H * 5 + N + O * 3;
  pdAAMass['Q'] = C * 5 + H * 8 + N * 2 + O * 2;
  pdAAMass['K'] = C * 6 + H * 12 + N * 2 + O;
  pdAAMass['E'] = C * 5 + H * 7 + N + O * 3;
  pdAAMass['M'] = C * 5 + H * 9 + N + O + S;
  pdAAMass['H'] = C * 6 + H * 7 + N * 3 + O;
  pdAAMass['F'] = C * 9 + H * 9 + N + O;
  pdAAMass['R'] = C * 6 + H * 12 + N * 4 + O;
  pdAAMass['Y'] = C * 9 + H * 9 + N + O * 2;
  pdAAMass['W'] = C * 11 + H * 10 + N * 2 + O;
  pdAAMass['O'] = C * 5 + H * 12 + N * 2 + O * 2;
  pdAAMass['X'] = pdAAMass['L'];
  pdAAMass['B'] = (pdAAMass['N'] + pdAAMass['D']) / 2.0;
  pdAAMass['Z'] = (pdAAMass['Q'] + pdAAMass['E']) / 2.0;
}


x86 assembly (clang, -O0):
<INITIALIZE_MASS>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x18(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x20(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x28(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x30(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x38(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x40(%rbp)
movl   $0x0,-0x44(%rbp)
cmpl   $0x80,-0x44(%rbp)
jge    1172 <INITIALIZE_MASS+0x72>
mov    -0x8(%rbp),%rax
movslq -0x44(%rbp),%rcx
movsd  0xf51(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    1142 <INITIALIZE_MASS+0x42>
cmpl   $0x0,-0xc(%rbp)
je     1247 <INITIALIZE_MASS+0x147>
mov    -0x8(%rbp),%rax
movsd  0xed0(%rip),%xmm0
movsd  %xmm0,0x340(%rax)
movsd  0xec0(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xea7(%rip),%xmm0
movsd  %xmm0,0x378(%rax)
movsd  0xe97(%rip),%xmm0
movsd  %xmm0,-0x20(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xe7e(%rip),%xmm0
movsd  %xmm0,0x318(%rax)
movsd  0xe6e(%rip),%xmm0
movsd  %xmm0,-0x28(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xe55(%rip),%xmm0
movsd  %xmm0,0x370(%rax)
movsd  0xe45(%rip),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xe2c(%rip),%xmm0
movsd  %xmm0,0x380(%rax)
movsd  0xe1c(%rip),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xe03(%rip),%xmm0
movsd  %xmm0,0x398(%rax)
movsd  0xdf3(%rip),%xmm0
movsd  %xmm0,-0x40(%rbp)
jmp    130d <INITIALIZE_MASS+0x20d>
mov    -0x8(%rbp),%rax
movsd  0xdd5(%rip),%xmm0
movsd  %xmm0,0x340(%rax)
movsd  0xdc5(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xdac(%rip),%xmm0
movsd  %xmm0,0x378(%rax)
movsd  0xd9c(%rip),%xmm0
movsd  %xmm0,-0x20(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xd83(%rip),%xmm0
movsd  %xmm0,0x318(%rax)
movsd  0xd73(%rip),%xmm0
movsd  %xmm0,-0x28(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xd5a(%rip),%xmm0
movsd  %xmm0,0x370(%rax)
movsd  0xd4a(%rip),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xd31(%rip),%xmm0
movsd  %xmm0,0x380(%rax)
movsd  0xd21(%rip),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xd08(%rip),%xmm0
movsd  %xmm0,0x398(%rax)
movsd  0xcf8(%rip),%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  0xd7e(%rip),%xmm1
mulsd  -0x18(%rbp),%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
addsd  -0x30(%rbp),%xmm0
addsd  -0x20(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x238(%rax)
movsd  -0x28(%rbp),%xmm0
movsd  0xd1e(%rip),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  0xd41(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
addsd  -0x30(%rbp),%xmm0
addsd  -0x20(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x208(%rax)
movsd  -0x28(%rbp),%xmm1
movsd  0xce6(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  0xd09(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
addsd  -0x30(%rbp),%xmm1
movsd  -0x20(%rbp),%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x298(%rax)
movsd  -0x28(%rbp),%xmm0
movsd  0xcde(%rip),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  0xc99(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
addsd  -0x30(%rbp),%xmm0
addsd  -0x20(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x280(%rax)
movsd  -0x28(%rbp),%xmm0
movsd  0xc86(%rip),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  0xc61(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
addsd  -0x30(%rbp),%xmm0
addsd  -0x20(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x2b0(%rax)
movsd  -0x28(%rbp),%xmm1
movsd  0xc6e(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  0xc49(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
addsd  -0x30(%rbp),%xmm1
movsd  -0x20(%rbp),%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x2a0(%rax)
movsd  -0x28(%rbp),%xmm0
movsd  0xbf6(%rip),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  0xc19(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
addsd  -0x30(%rbp),%xmm0
addsd  -0x20(%rbp),%xmm0
addsd  -0x40(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x218(%rax)
movsd  -0x28(%rbp),%xmm0
movsd  0xbc1(%rip),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  0xbd4(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
addsd  -0x30(%rbp),%xmm0
addsd  -0x20(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x260(%rax)
movsd  -0x28(%rbp),%xmm0
movsd  0xb89(%rip),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  0xb9c(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
addsd  -0x30(%rbp),%xmm0
addsd  -0x20(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x248(%rax)
movsd  -0x28(%rbp),%xmm0
movsd  0xb71(%rip),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  0xb5c(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x30(%rbp),%xmm1
addsd  %xmm1,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x20(%rbp),%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x270(%rax)
movsd  -0x28(%rbp),%xmm1
movsd  0xb01(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  0xb14(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
addsd  -0x30(%rbp),%xmm1
movsd  -0x20(%rbp),%xmm0
movsd  0xb0a(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x220(%rax)
movsd  -0x28(%rbp),%xmm0
movsd  0xaf9(%rip),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  0xaac(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x30(%rbp),%xmm1
addsd  %xmm1,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x20(%rbp),%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x288(%rax)
movsd  -0x28(%rbp),%xmm1
movsd  0xa51(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  0xa8c(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x30(%rbp),%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
addsd  -0x20(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x258(%rax)
movsd  -0x28(%rbp),%xmm1
movsd  0xa69(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  0xa24(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
addsd  -0x30(%rbp),%xmm1
movsd  -0x20(%rbp),%xmm0
movsd  0xa3a(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x228(%rax)
movsd  -0x28(%rbp),%xmm0
movsd  0xa01(%rip),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  0x9dc(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
addsd  -0x30(%rbp),%xmm0
addsd  -0x20(%rbp),%xmm0
addsd  -0x40(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x268(%rax)
movsd  -0x28(%rbp),%xmm1
movsd  0x9e4(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  0x9c7(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x30(%rbp),%xmm0
movsd  0x9ba(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
addsd  -0x20(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x240(%rax)
movsd  -0x28(%rbp),%xmm0
movsd  0x97c(%rip),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  0x96f(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
addsd  -0x30(%rbp),%xmm0
addsd  -0x20(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x230(%rax)
movsd  -0x28(%rbp),%xmm1
movsd  0x90c(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  0x947(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x30(%rbp),%xmm0
movsd  0x92a(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
addsd  -0x20(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x290(%rax)
movsd  -0x28(%rbp),%xmm1
movsd  0x8fc(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  0x8ef(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
addsd  -0x30(%rbp),%xmm1
movsd  -0x20(%rbp),%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x2c8(%rax)
movsd  -0x28(%rbp),%xmm1
movsd  0x8b4(%rip),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  0x89f(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x30(%rbp),%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
addsd  -0x20(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x2b8(%rax)
movsd  -0x28(%rbp),%xmm0
movsd  0x844(%rip),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  0x857(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x30(%rbp),%xmm1
addsd  %xmm1,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x20(%rbp),%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x278(%rax)
mov    -0x8(%rbp),%rax
movsd  0x260(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x2c0(%rax)
mov    -0x8(%rbp),%rax
movsd  0x270(%rax),%xmm0
mov    -0x8(%rbp),%rax
addsd  0x220(%rax),%xmm0
movsd  0x7e9(%rip),%xmm1
divsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x210(%rax)
mov    -0x8(%rbp),%rax
movsd  0x288(%rax),%xmm0
mov    -0x8(%rbp),%rax
addsd  0x228(%rax),%xmm0
movsd  0x7b9(%rip),%xmm1
divsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x2d0(%rax)
pop    %rbp
ret

x86 assembly (clang, -O2):
<INITIALIZE_MASS>:
movaps 0xef9(%rip),%xmm0
movups %xmm0,(%rdi)
movups %xmm0,0x10(%rdi)
movups %xmm0,0x20(%rdi)
movups %xmm0,0x30(%rdi)
movups %xmm0,0x40(%rdi)
movups %xmm0,0x50(%rdi)
movups %xmm0,0x60(%rdi)
movups %xmm0,0x70(%rdi)
movups %xmm0,0x80(%rdi)
movups %xmm0,0x90(%rdi)
movups %xmm0,0xa0(%rdi)
movups %xmm0,0xb0(%rdi)
movups %xmm0,0xc0(%rdi)
movups %xmm0,0xd0(%rdi)
movups %xmm0,0xe0(%rdi)
movups %xmm0,0xf0(%rdi)
movups %xmm0,0x100(%rdi)
movups %xmm0,0x110(%rdi)
movups %xmm0,0x120(%rdi)
movups %xmm0,0x130(%rdi)
movups %xmm0,0x140(%rdi)
movups %xmm0,0x150(%rdi)
movups %xmm0,0x160(%rdi)
movups %xmm0,0x170(%rdi)
movups %xmm0,0x180(%rdi)
movups %xmm0,0x190(%rdi)
movups %xmm0,0x1a0(%rdi)
movups %xmm0,0x1b0(%rdi)
movups %xmm0,0x1c0(%rdi)
movups %xmm0,0x1d0(%rdi)
movups %xmm0,0x1e0(%rdi)
movups %xmm0,0x1f0(%rdi)
movups %xmm0,0x200(%rdi)
movups %xmm0,0x210(%rdi)
movups %xmm0,0x220(%rdi)
movups %xmm0,0x230(%rdi)
movups %xmm0,0x240(%rdi)
movups %xmm0,0x250(%rdi)
movups %xmm0,0x260(%rdi)
movups %xmm0,0x270(%rdi)
movups %xmm0,0x280(%rdi)
movups %xmm0,0x290(%rdi)
movups %xmm0,0x2a0(%rdi)
movups %xmm0,0x2b0(%rdi)
movups %xmm0,0x2c0(%rdi)
movups %xmm0,0x2d0(%rdi)
movups %xmm0,0x2e0(%rdi)
movups %xmm0,0x2f0(%rdi)
movups %xmm0,0x300(%rdi)
movups %xmm0,0x310(%rdi)
movups %xmm0,0x320(%rdi)
movups %xmm0,0x330(%rdi)
movups %xmm0,0x340(%rdi)
movups %xmm0,0x350(%rdi)
movups %xmm0,0x360(%rdi)
movups %xmm0,0x370(%rdi)
movups %xmm0,0x380(%rdi)
movups %xmm0,0x390(%rdi)
movups %xmm0,0x3a0(%rdi)
movups %xmm0,0x3b0(%rdi)
movups %xmm0,0x3c0(%rdi)
movups %xmm0,0x3d0(%rdi)
movups %xmm0,0x3e0(%rdi)
movups %xmm0,0x3f0(%rdi)
test   %esi,%esi
je     12de <INITIALIZE_MASS+0x1de>
movapd 0xd56(%rip),%xmm2
movsd  0xdde(%rip),%xmm1
movsd  0xdde(%rip),%xmm0
movsd  0xddd(%rip),%xmm11
movsd  0xddc(%rip),%xmm15
jmp    1308 <INITIALIZE_MASS+0x208>
movapd 0xd3a(%rip),%xmm2
movsd  0xdd2(%rip),%xmm1
movsd  0xdd2(%rip),%xmm0
movsd  0xdd1(%rip),%xmm11
movsd  0xdd0(%rip),%xmm15
movsd  %xmm15,0x340(%rdi)
movapd %xmm2,%xmm13
unpckhpd %xmm2,%xmm13
movhpd %xmm2,0x378(%rdi)
movlpd %xmm2,0x318(%rdi)
movsd  %xmm11,0x370(%rdi)
movsd  %xmm0,0x380(%rdi)
movsd  %xmm1,0x398(%rdi)
movsd  0xd93(%rip),%xmm14
movapd %xmm15,%xmm0
mulsd  %xmm14,%xmm0
movapd %xmm2,%xmm3
mulsd  0xd85(%rip),%xmm3
addsd  %xmm3,%xmm0
movapd %xmm11,%xmm12
addsd  %xmm11,%xmm12
addsd  %xmm12,%xmm0
movapd %xmm15,%xmm10
unpcklpd %xmm15,%xmm10
movapd 0xca8(%rip),%xmm7
mulpd  %xmm10,%xmm7
movapd %xmm1,%xmm5
movsd  %xmm1,-0x8(%rsp)
movapd %xmm7,%xmm1
unpcklpd %xmm0,%xmm1
movapd 0xc98(%rip),%xmm9
mulpd  %xmm2,%xmm9
addpd  %xmm1,%xmm9
movapd %xmm2,%xmm1
unpcklpd %xmm2,%xmm1
movapd 0xc8e(%rip),%xmm0
mulpd  %xmm1,%xmm0
addpd  %xmm7,%xmm0
movapd %xmm11,%xmm8
unpcklpd %xmm11,%xmm8
addpd  %xmm8,%xmm0
movapd 0xc7f(%rip),%xmm6
mulpd  %xmm13,%xmm6
addpd  %xmm0,%xmm6
addpd  %xmm2,%xmm0
movhpd %xmm0,0x280(%rdi)
movapd %xmm11,%xmm0
unpcklpd %xmm6,%xmm0
addpd  %xmm9,%xmm0
unpckhpd %xmm7,%xmm7
addsd  %xmm7,%xmm3
addsd  %xmm11,%xmm3
movapd %xmm0,%xmm4
unpcklpd %xmm3,%xmm4
movapd %xmm2,%xmm3
addpd  %xmm2,%xmm3
unpckhpd %xmm3,%xmm3
addpd  %xmm4,%xmm3
movupd %xmm3,0x298(%rdi)
movapd 0xc47(%rip),%xmm3
movapd %xmm2,%xmm4
unpckhpd %xmm3,%xmm4
addpd  %xmm0,%xmm4
mulpd  %xmm3,%xmm0
movsd  %xmm4,%xmm0
addsd  %xmm5,%xmm4
movsd  %xmm4,0x218(%rdi)
mulsd  %xmm2,%xmm14
addsd  %xmm14,%xmm7
movsd  0xc95(%rip),%xmm3
mulsd  %xmm11,%xmm3
addsd  %xmm7,%xmm3
movsd  0xc7c(%rip),%xmm7
movapd %xmm15,%xmm4
mulsd  %xmm7,%xmm4
addsd  %xmm14,%xmm4
addsd  %xmm11,%xmm4
unpcklpd %xmm4,%xmm3
addpd  %xmm13,%xmm3
movhpd %xmm3,0x260(%rdi)
movhpd %xmm9,0x270(%rdi)
movsd  0xc3f(%rip),%xmm4
mulsd  %xmm2,%xmm4
mulsd  %xmm7,%xmm2
movsd  0xc47(%rip),%xmm7
mulsd  %xmm15,%xmm7
movsd  0xc41(%rip),%xmm9
mulsd  %xmm15,%xmm9
mulsd  0xc3b(%rip),%xmm15
addsd  %xmm15,%xmm2
addsd  %xmm4,%xmm7
addsd  %xmm12,%xmm7
addsd  %xmm9,%xmm14
addsd  %xmm12,%xmm2
addsd  %xmm4,%xmm9
addsd  %xmm12,%xmm9
addsd  %xmm14,%xmm12
addsd  %xmm13,%xmm12
movapd %xmm13,%xmm5
addsd  %xmm13,%xmm5
addsd  %xmm5,%xmm7
movsd  %xmm7,0x288(%rdi)
movsd  %xmm12,0x258(%rdi)
mulpd  0xb3f(%rip),%xmm10
addsd  %xmm10,%xmm4
addsd  %xmm11,%xmm4
unpcklpd %xmm2,%xmm4
addpd  %xmm13,%xmm4
movupd %xmm6,0x220(%rdi)
movsd  -0x8(%rsp),%xmm2
addsd  %xmm4,%xmm2
movsd  %xmm2,0x268(%rdi)
mulpd  0xb2a(%rip),%xmm1
addpd  %xmm10,%xmm1
addpd  %xmm8,%xmm1
mulsd  0xb6f(%rip),%xmm11
addsd  %xmm14,%xmm11
addsd  %xmm13,%xmm11
movupd %xmm3,0x240(%rdi)
addpd  %xmm1,%xmm13
movupd %xmm13,0x230(%rdi)
movsd  %xmm11,0x290(%rdi)
addsd  %xmm5,%xmm1
movsd  %xmm1,0x2c8(%rdi)
movupd %xmm4,0x2b0(%rdi)
addsd  %xmm5,%xmm9
movsd  %xmm9,0x278(%rdi)
movhpd %xmm3,0x2c0(%rdi)
movupd %xmm0,0x208(%rdi)
unpckhpd %xmm6,%xmm6
addsd  %xmm7,%xmm6
mulsd  0xb3c(%rip),%xmm6
movsd  %xmm6,0x2d0(%rdi)
ret

LLVM IR (-O0):
define void @INITIALIZE_MASS(double* %0, i32 %1) {
%3 = alloca double*
%4 = alloca i32
%5 = alloca double
%6 = alloca double
%7 = alloca double
%8 = alloca double
%9 = alloca double
%10 = alloca double
%11 = alloca i32
store double* %0, double** %3
store i32 %1, i32* %4
store double 0.000000e+00, double* %5
store double 0.000000e+00, double* %6
store double 0.000000e+00, double* %7
store double 0.000000e+00, double* %8
store double 0.000000e+00, double* %9
store double 0.000000e+00, double* %10
store i32 0, i32* %11
br label %12
12: ; preds = %20, %2
%13 = load i32, i32* %11
%14 = icmp slt i32 %13, 128
br i1 %14, label %15, label %23
15: ; preds = %12
%16 = load double*, double** %3
%17 = load i32, i32* %11
%18 = sext i32 %17 to i64
%19 = getelementptr inbounds double, double* %16, i64 %18
store double 0x412E847FCCCCCCCD, double* %19
br label %20
20: ; preds = %15
%21 = load i32, i32* %11
%22 = add nsw i32 %21, 1
store i32 %22, i32* %11
br label %12
23: ; preds = %12
%24 = load i32, i32* %4
%25 = icmp ne i32 %24, 0
br i1 %25, label %26, label %39
26: ; preds = %23
%27 = load double*, double** %3
%28 = getelementptr inbounds double, double* %27, i64 104
store double 0x3FF0200D24E46281, double* %28
store double 0x3FF0200D24E46281, double* %5
%29 = load double*, double** %3
%30 = getelementptr inbounds double, double* %29, i64 111
store double 0x402FFD65734C52EA, double* %30
store double 0x402FFD65734C52EA, double* %6
%31 = load double*, double** %3
%32 = getelementptr inbounds double, double* %31, i64 99
store double 1.200000e+01, double* %32
store double 1.200000e+01, double* %7
%33 = load double*, double** %3
%34 = getelementptr inbounds double, double* %33, i64 110
store double 0x402C0192EA52EF91, double* %34
store double 0x402C0192EA52EF91, double* %8
%35 = load double*, double** %3
%36 = getelementptr inbounds double, double* %35, i64 112
store double 0x403EF9487768166A, double* %36
store double 0x403EF9487768166A, double* %9
%37 = load double*, double** %3
%38 = getelementptr inbounds double, double* %37, i64 115
store double 0x403FF8D9A019E65B, double* %38
store double 0x403FF8D9A019E65B, double* %10
br label %52
39: ; preds = %23
%40 = load double*, double** %3
%41 = getelementptr inbounds double, double* %40, i64 104
store double 1.007940e+00, double* %41
store double 1.007940e+00, double* %5
%42 = load double*, double** %3
%43 = getelementptr inbounds double, double* %42, i64 111
store double 1.599940e+01, double* %43
store double 1.599940e+01, double* %6
%44 = load double*, double** %3
%45 = getelementptr inbounds double, double* %44, i64 99
store double 1.201070e+01, double* %45
store double 1.201070e+01, double* %7
%46 = load double*, double** %3
%47 = getelementptr inbounds double, double* %46, i64 110
store double 1.400670e+01, double* %47
store double 1.400670e+01, double* %8
%48 = load double*, double** %3
%49 = getelementptr inbounds double, double* %48, i64 112
store double 0x403EF94866A11EC9, double* %49
store double 0x403EF94866A11EC9, double* %9
%50 = load double*, double** %3
%51 = getelementptr inbounds double, double* %50, i64 115
store double 3.206500e+01, double* %51
store double 3.206500e+01, double* %10
br label %52
52: ; preds = %39, %26
%53 = load double, double* %7
%54 = load double, double* %5
%55 = fmul double %54, 3.000000e+00
%56 = call double @llvm.fmuladd.f64(double %53, double 2.000000e+00, double %55)
%57 = load double, double* %8
%58 = fadd double %56, %57
%59 = load double, double* %6
%60 = fadd double %58, %59
%61 = load double*, double** %3
%62 = getelementptr inbounds double, double* %61, i64 71
store double %60, double* %62
%63 = load double, double* %7
%64 = load double, double* %5
%65 = fmul double %64, 5.000000e+00
%66 = call double @llvm.fmuladd.f64(double %63, double 3.000000e+00, double %65)
%67 = load double, double* %8
%68 = fadd double %66, %67
%69 = load double, double* %6
%70 = fadd double %68, %69
%71 = load double*, double** %3
%72 = getelementptr inbounds double, double* %71, i64 65
store double %70, double* %72
%73 = load double, double* %7
%74 = load double, double* %5
%75 = fmul double %74, 5.000000e+00
%76 = call double @llvm.fmuladd.f64(double %73, double 3.000000e+00, double %75)
%77 = load double, double* %8
%78 = fadd double %76, %77
%79 = load double, double* %6
%80 = call double @llvm.fmuladd.f64(double %79, double 2.000000e+00, double %78)
%81 = load double*, double** %3
%82 = getelementptr inbounds double, double* %81, i64 83
store double %80, double* %82
%83 = load double, double* %7
%84 = load double, double* %5
%85 = fmul double %84, 7.000000e+00
%86 = call double @llvm.fmuladd.f64(double %83, double 5.000000e+00, double %85)
%87 = load double, double* %8
%88 = fadd double %86, %87
%89 = load double, double* %6
%90 = fadd double %88, %89
%91 = load double*, double** %3
%92 = getelementptr inbounds double, double* %91, i64 80
store double %90, double* %92
%93 = load double, double* %7
%94 = load double, double* %5
%95 = fmul double %94, 9.000000e+00
%96 = call double @llvm.fmuladd.f64(double %93, double 5.000000e+00, double %95)
%97 = load double, double* %8
%98 = fadd double %96, %97
%99 = load double, double* %6
%100 = fadd double %98, %99
%101 = load double*, double** %3
%102 = getelementptr inbounds double, double* %101, i64 86
store double %100, double* %102
%103 = load double, double* %7
%104 = load double, double* %5
%105 = fmul double %104, 7.000000e+00
%106 = call double @llvm.fmuladd.f64(double %103, double 4.000000e+00, double %105)
%107 = load double, double* %8
%108 = fadd double %106, %107
%109 = load double, double* %6
%110 = call double @llvm.fmuladd.f64(double %109, double 2.000000e+00, double %108)
%111 = load double*, double** %3
%112 = getelementptr inbounds double, double* %111, i64 84
store double %110, double* %112
%113 = load double, double* %7
%114 = load double, double* %5
%115 = fmul double %114, 5.000000e+00
%116 = call double @llvm.fmuladd.f64(double %113, double 3.000000e+00, double %115)
%117 = load double, double* %8
%118 = fadd double %116, %117
%119 = load double, double* %6
%120 = fadd double %118, %119
%121 = load double, double* %10
%122 = fadd double %120, %121
%123 = load double*, double** %3
%124 = getelementptr inbounds double, double* %123, i64 67
store double %122, double* %124
%125 = load double, double* %7
%126 = load double, double* %5
%127 = fmul double %126, 1.100000e+01
%128 = call double @llvm.fmuladd.f64(double %125, double 6.000000e+00, double %127)
%129 = load double, double* %8
%130 = fadd double %128, %129
%131 = load double, double* %6
%132 = fadd double %130, %131
%133 = load double*, double** %3
%134 = getelementptr inbounds double, double* %133, i64 76
store double %132, double* %134
%135 = load double, double* %7
%136 = load double, double* %5
%137 = fmul double %136, 1.100000e+01
%138 = call double @llvm.fmuladd.f64(double %135, double 6.000000e+00, double %137)
%139 = load double, double* %8
%140 = fadd double %138, %139
%141 = load double, double* %6
%142 = fadd double %140, %141
%143 = load double*, double** %3
%144 = getelementptr inbounds double, double* %143, i64 73
store double %142, double* %144
%145 = load double, double* %7
%146 = load double, double* %5
%147 = fmul double %146, 6.000000e+00
%148 = call double @llvm.fmuladd.f64(double %145, double 4.000000e+00, double %147)
%149 = load double, double* %8
%150 = call double @llvm.fmuladd.f64(double %149, double 2.000000e+00, double %148)
%151 = load double, double* %6
%152 = call double @llvm.fmuladd.f64(double %151, double 2.000000e+00, double %150)
%153 = load double*, double** %3
%154 = getelementptr inbounds double, double* %153, i64 78
store double %152, double* %154
%155 = load double, double* %7
%156 = load double, double* %5
%157 = fmul double %156, 5.000000e+00
%158 = call double @llvm.fmuladd.f64(double %155, double 4.000000e+00, double %157)
%159 = load double, double* %8
%160 = fadd double %158, %159
%161 = load double, double* %6
%162 = call double @llvm.fmuladd.f64(double %161, double 3.000000e+00, double %160)
%163 = load double*, double** %3
%164 = getelementptr inbounds double, double* %163, i64 68
store double %162, double* %164
%165 = load double, double* %7
%166 = load double, double* %5
%167 = fmul double %166, 8.000000e+00
%168 = call double @llvm.fmuladd.f64(double %165, double 5.000000e+00, double %167)
%169 = load double, double* %8
%170 = call double @llvm.fmuladd.f64(double %169, double 2.000000e+00, double %168)
%171 = load double, double* %6
%172 = call double @llvm.fmuladd.f64(double %171, double 2.000000e+00, double %170)
%173 = load double*, double** %3
%174 = getelementptr inbounds double, double* %173, i64 81
store double %172, double* %174
%175 = load double, double* %7
%176 = load double, double* %5
%177 = fmul double %176, 1.200000e+01
%178 = call double @llvm.fmuladd.f64(double %175, double 6.000000e+00, double %177)
%179 = load double, double* %8
%180 = call double @llvm.fmuladd.f64(double %179, double 2.000000e+00, double %178)
%181 = load double, double* %6
%182 = fadd double %180, %181
%183 = load double*, double** %3
%184 = getelementptr inbounds double, double* %183, i64 75
store double %182, double* %184
%185 = load double, double* %7
%186 = load double, double* %5
%187 = fmul double %186, 7.000000e+00
%188 = call double @llvm.fmuladd.f64(double %185, double 5.000000e+00, double %187)
%189 = load double, double* %8
%190 = fadd double %188, %189
%191 = load double, double* %6
%192 = call double @llvm.fmuladd.f64(double %191, double 3.000000e+00, double %190)
%193 = load double*, double** %3
%194 = getelementptr inbounds double, double* %193, i64 69
store double %192, double* %194
%195 = load double, double* %7
%196 = load double, double* %5
%197 = fmul double %196, 9.000000e+00
%198 = call double @llvm.fmuladd.f64(double %195, double 5.000000e+00, double %197)
%199 = load double, double* %8
%200 = fadd double %198, %199
%201 = load double, double* %6
%202 = fadd double %200, %201
%203 = load double, double* %10
%204 = fadd double %202, %203
%205 = load double*, double** %3
%206 = getelementptr inbounds double, double* %205, i64 77
store double %204, double* %206
%207 = load double, double* %7
%208 = load double, double* %5
%209 = fmul double %208, 7.000000e+00
%210 = call double @llvm.fmuladd.f64(double %207, double 6.000000e+00, double %209)
%211 = load double, double* %8
%212 = call double @llvm.fmuladd.f64(double %211, double 3.000000e+00, double %210)
%213 = load double, double* %6
%214 = fadd double %212, %213
%215 = load double*, double** %3
%216 = getelementptr inbounds double, double* %215, i64 72
store double %214, double* %216
%217 = load double, double* %7
%218 = load double, double* %5
%219 = fmul double %218, 9.000000e+00
%220 = call double @llvm.fmuladd.f64(double %217, double 9.000000e+00, double %219)
%221 = load double, double* %8
%222 = fadd double %220, %221
%223 = load double, double* %6
%224 = fadd double %222, %223
%225 = load double*, double** %3
%226 = getelementptr inbounds double, double* %225, i64 70
store double %224, double* %226
%227 = load double, double* %7
%228 = load double, double* %5
%229 = fmul double %228, 1.200000e+01
%230 = call double @llvm.fmuladd.f64(double %227, double 6.000000e+00, double %229)
%231 = load double, double* %8
%232 = call double @llvm.fmuladd.f64(double %231, double 4.000000e+00, double %230)
%233 = load double, double* %6
%234 = fadd double %232, %233
%235 = load double*, double** %3
%236 = getelementptr inbounds double, double* %235, i64 82
store double %234, double* %236
%237 = load double, double* %7
%238 = load double, double* %5
%239 = fmul double %238, 9.000000e+00
%240 = call double @llvm.fmuladd.f64(double %237, double 9.000000e+00, double %239)
%241 = load double, double* %8
%242 = fadd double %240, %241
%243 = load double, double* %6
%244 = call double @llvm.fmuladd.f64(double %243, double 2.000000e+00, double %242)
%245 = load double*, double** %3
%246 = getelementptr inbounds double, double* %245, i64 89
store double %244, double* %246
%247 = load double, double* %7
%248 = load double, double* %5
%249 = fmul double %248, 1.000000e+01
%250 = call double @llvm.fmuladd.f64(double %247, double 1.100000e+01, double %249)
%251 = load double, double* %8
%252 = call double @llvm.fmuladd.f64(double %251, double 2.000000e+00, double %250)
%253 = load double, double* %6
%254 = fadd double %252, %253
%255 = load double*, double** %3
%256 = getelementptr inbounds double, double* %255, i64 87
store double %254, double* %256
%257 = load double, double* %7
%258 = load double, double* %5
%259 = fmul double %258, 1.200000e+01
%260 = call double @llvm.fmuladd.f64(double %257, double 5.000000e+00, double %259)
%261 = load double, double* %8
%262 = call double @llvm.fmuladd.f64(double %261, double 2.000000e+00, double %260)
%263 = load double, double* %6
%264 = call double @llvm.fmuladd.f64(double %263, double 2.000000e+00, double %262)
%265 = load double*, double** %3
%266 = getelementptr inbounds double, double* %265, i64 79
store double %264, double* %266
%267 = load double*, double** %3
%268 = getelementptr inbounds double, double* %267, i64 76
%269 = load double, double* %268
%270 = load double*, double** %3
%271 = getelementptr inbounds double, double* %270, i64 88
store double %269, double* %271
%272 = load double*, double** %3
%273 = getelementptr inbounds double, double* %272, i64 78
%274 = load double, double* %273
%275 = load double*, double** %3
%276 = getelementptr inbounds double, double* %275, i64 68
%277 = load double, double* %276
%278 = fadd double %274, %277
%279 = fdiv double %278, 2.000000e+00
%280 = load double*, double** %3
%281 = getelementptr inbounds double, double* %280, i64 66
store double %279, double* %281
%282 = load double*, double** %3
%283 = getelementptr inbounds double, double* %282, i64 81
%284 = load double, double* %283
%285 = load double*, double** %3
%286 = getelementptr inbounds double, double* %285, i64 69
%287 = load double, double* %286
%288 = fadd double %284, %287
%289 = fdiv double %288, 2.000000e+00
%290 = load double*, double** %3
%291 = getelementptr inbounds double, double* %290, i64 90
store double %289, double* %291
ret void
}

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