int main(void) {
  const double inf = __builtin_inf();
  const double nan = __builtin_nan("");
  volatile double d;
  __int128 i;
  d = (-(__int128)(((unsigned __int128)1 << ((16 * 8) - 1)) - 1) - 1);
  (i) = (d)-5.0;
  (i) = (d)-1.5;
  (i) = (d)-1.0;
  (i) = (d)-0.75;
  (i) = (d)-0.5;
  (i) = (d)-0.0000001;
  (i) = (d)-0.0;
  (i) = (d);
  (i) = (d) + 0.0;
  (i) = (d) + 0.0000001;
  (i) = (d) + 0.5;
  (i) = (d) + 0.75;
  (i) = (d) + 1.0;
  (i) = (d) + 1.5;
  (i) = (d) + 5.0;
  ;
  d = 0.0;
  (i) = (d)-5.0;
  (i) = (d)-1.5;
  (i) = (d)-1.0;
  (i) = (d)-0.75;
  (i) = (d)-0.5;
  (i) = (d)-0.0000001;
  (i) = (d)-0.0;
  (i) = (d);
  (i) = (d) + 0.0;
  (i) = (d) + 0.0000001;
  (i) = (d) + 0.5;
  (i) = (d) + 0.75;
  (i) = (d) + 1.0;
  (i) = (d) + 1.5;
  (i) = (d) + 5.0;
  ;
  d = (__int128)(((unsigned __int128)1 << ((16 * 8) - 1)) - 1);
  (i) = (d)-5.0;
  (i) = (d)-1.5;
  (i) = (d)-1.0;
  (i) = (d)-0.75;
  (i) = (d)-0.5;
  (i) = (d)-0.0000001;
  (i) = (d)-0.0;
  (i) = (d);
  (i) = (d) + 0.0;
  (i) = (d) + 0.0000001;
  (i) = (d) + 0.5;
  (i) = (d) + 0.75;
  (i) = (d) + 1.0;
  (i) = (d) + 1.5;
  (i) = (d) + 5.0;
  ;
  (i) = nan;
  (i) = -nan;
  (i) = inf;
  (i) = -inf;
  ;
  unsigned __int128 u;
  d = ((2 *
        (unsigned __int128)(__int128)(((unsigned __int128)1 << ((16 * 8) - 1)) -
                                      1)) +
       1);
  (u) = (d)-5.0;
  (u) = (d)-1.5;
  (u) = (d)-1.0;
  (u) = (d)-0.75;
  (u) = (d)-0.5;
  (u) = (d)-0.0000001;
  (u) = (d)-0.0;
  (u) = (d);
  (u) = (d) + 0.0;
  (u) = (d) + 0.0000001;
  (u) = (d) + 0.5;
  (u) = (d) + 0.75;
  (u) = (d) + 1.0;
  (u) = (d) + 1.5;
  (u) = (d) + 5.0;
  ;
  d = 0.0;
  (u) = (d)-5.0;
  (u) = (d)-1.5;
  (u) = (d)-1.0;
  (u) = (d)-0.75;
  (u) = (d)-0.5;
  (u) = (d)-0.0000001;
  (u) = (d)-0.0;
  (u) = (d);
  (u) = (d) + 0.0;
  (u) = (d) + 0.0000001;
  (u) = (d) + 0.5;
  (u) = (d) + 0.75;
  (u) = (d) + 1.0;
  (u) = (d) + 1.5;
  (u) = (d) + 5.0;
  ;
  (u) = nan;
  (u) = -nan;
  (u) = inf;
  (u) = -inf;
  ;
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x80,%rsp
movl   $0x0,-0x4(%rbp)
movabs $0x7ff0000000000000,%rax
mov    %rax,-0x10(%rbp)
movabs $0x7ff8000000000000,%rax
mov    %rax,-0x18(%rbp)
movabs $0xc7e0000000000000,%rax
mov    %rax,-0x20(%rbp)
movsd  -0x20(%rbp),%xmm0
movsd  0xeb7(%rip),%xmm1
movsd  %xmm1,-0x48(%rbp)
subsd  %xmm1,%xmm0
call   1940 <__fixdfti>
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
movsd  0xe9c(%rip),%xmm1
movsd  %xmm1,-0x50(%rbp)
subsd  %xmm1,%xmm0
call   1940 <__fixdfti>
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
movsd  0xe81(%rip),%xmm1
movsd  %xmm1,-0x58(%rbp)
subsd  %xmm1,%xmm0
call   1940 <__fixdfti>
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
movsd  0xe66(%rip),%xmm1
movsd  %xmm1,-0x60(%rbp)
subsd  %xmm1,%xmm0
call   1940 <__fixdfti>
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
movsd  0xe4b(%rip),%xmm1
movsd  %xmm1,-0x68(%rbp)
subsd  %xmm1,%xmm0
call   1940 <__fixdfti>
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
movsd  0xe30(%rip),%xmm1
movsd  %xmm1,-0x70(%rbp)
subsd  %xmm1,%xmm0
call   1940 <__fixdfti>
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
call   1940 <__fixdfti>
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
call   1940 <__fixdfti>
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
xorps  %xmm1,%xmm1
movsd  %xmm1,-0x78(%rbp)
addsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x70(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x68(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x60(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x58(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x50(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x48(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x48(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movq   $0x0,-0x20(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x50(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x58(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x60(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x68(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x70(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1940 <__fixdfti>
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
call   1940 <__fixdfti>
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
call   1940 <__fixdfti>
movsd  -0x78(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x70(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x68(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x60(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x58(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x50(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x48(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x48(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movabs $0x47e0000000000000,%rax
mov    %rax,-0x20(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x50(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x58(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x60(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x68(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x70(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1940 <__fixdfti>
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
call   1940 <__fixdfti>
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
call   1940 <__fixdfti>
movsd  -0x78(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x70(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x68(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x60(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x58(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x50(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x48(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1940 <__fixdfti>
movsd  -0x48(%rbp),%xmm1
mov    %rdx,-0x28(%rbp)
mov    %rax,-0x30(%rbp)
movabs $0x47f0000000000000,%rax
mov    %rax,-0x20(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x50(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x58(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x60(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x68(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x70(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
call   1980 <__fixunsdfti>
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
call   1980 <__fixunsdfti>
movsd  -0x78(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x70(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x68(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x60(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x58(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x50(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x48(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x48(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movq   $0x0,-0x20(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x50(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x58(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x60(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x68(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x70(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
subsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
call   1980 <__fixunsdfti>
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
call   1980 <__fixunsdfti>
movsd  -0x78(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x70(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x68(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x60(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x58(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x50(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
movsd  -0x48(%rbp),%xmm1
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  %xmm1,%xmm0
call   1980 <__fixunsdfti>
mov    %rdx,-0x38(%rbp)
mov    %rax,-0x40(%rbp)
xor    %eax,%eax
add    $0x80,%rsp
pop    %rbp
ret
cs nopw 0x0(%rax,%rax,1)
nop

x86 assembly (clang, -O2):
<main>:
movabs $0xc7e0000000000000,%rax
mov    %rax,-0x8(%rsp)
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movq   $0x0,-0x8(%rsp)
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movabs $0x47e0000000000000,%rax
mov    %rax,-0x8(%rsp)
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movabs $0x47f0000000000000,%rax
mov    %rax,-0x8(%rsp)
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movq   $0x0,-0x8(%rsp)
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
movsd  -0x8(%rsp),%xmm0
xor    %eax,%eax
ret

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

LLVM IR (-O2):
define i32 @main() {
%1 = alloca double
%2 = bitcast double* %1 to i8*
store volatile double 0xC7E0000000000000, double* %1
%3 = load volatile double, double* %1
%4 = load volatile double, double* %1
%5 = load volatile double, double* %1
%6 = load volatile double, double* %1
%7 = load volatile double, double* %1
%8 = load volatile double, double* %1
%9 = load volatile double, double* %1
%10 = load volatile double, double* %1
%11 = load volatile double, double* %1
%12 = load volatile double, double* %1
%13 = load volatile double, double* %1
%14 = load volatile double, double* %1
%15 = load volatile double, double* %1
%16 = load volatile double, double* %1
%17 = load volatile double, double* %1
store volatile double 0.000000e+00, double* %1
%18 = load volatile double, double* %1
%19 = load volatile double, double* %1
%20 = load volatile double, double* %1
%21 = load volatile double, double* %1
%22 = load volatile double, double* %1
%23 = load volatile double, double* %1
%24 = load volatile double, double* %1
%25 = load volatile double, double* %1
%26 = load volatile double, double* %1
%27 = load volatile double, double* %1
%28 = load volatile double, double* %1
%29 = load volatile double, double* %1
%30 = load volatile double, double* %1
%31 = load volatile double, double* %1
%32 = load volatile double, double* %1
store volatile double 0x47E0000000000000, double* %1
%33 = load volatile double, double* %1
%34 = load volatile double, double* %1
%35 = load volatile double, double* %1
%36 = load volatile double, double* %1
%37 = load volatile double, double* %1
%38 = load volatile double, double* %1
%39 = load volatile double, double* %1
%40 = load volatile double, double* %1
%41 = load volatile double, double* %1
%42 = load volatile double, double* %1
%43 = load volatile double, double* %1
%44 = load volatile double, double* %1
%45 = load volatile double, double* %1
%46 = load volatile double, double* %1
%47 = load volatile double, double* %1
store volatile double 0x47F0000000000000, double* %1
%48 = load volatile double, double* %1
%49 = load volatile double, double* %1
%50 = load volatile double, double* %1
%51 = load volatile double, double* %1
%52 = load volatile double, double* %1
%53 = load volatile double, double* %1
%54 = load volatile double, double* %1
%55 = load volatile double, double* %1
%56 = load volatile double, double* %1
%57 = load volatile double, double* %1
%58 = load volatile double, double* %1
%59 = load volatile double, double* %1
%60 = load volatile double, double* %1
%61 = load volatile double, double* %1
%62 = load volatile double, double* %1
store volatile double 0.000000e+00, double* %1
%63 = load volatile double, double* %1
%64 = load volatile double, double* %1
%65 = load volatile double, double* %1
%66 = load volatile double, double* %1
%67 = load volatile double, double* %1
%68 = load volatile double, double* %1
%69 = load volatile double, double* %1
%70 = load volatile double, double* %1
%71 = load volatile double, double* %1
%72 = load volatile double, double* %1
%73 = load volatile double, double* %1
%74 = load volatile double, double* %1
%75 = load volatile double, double* %1
%76 = load volatile double, double* %1
%77 = load volatile double, double* %1
ret i32 0
}