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

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
float cosf(float);
float dendroid_noise(float, float);
float sinf(float);
double sxnoise_2d(float, float, int);
float dendroid_mountains(float x, float y) {
  x *= 1.5;
  y *= 1.5;
  float dx = 0.23 * sxnoise_2d(x * 1.1, y * 1.1, 81721);
  float dy = 0.23 * sxnoise_2d(x * 1.1, y * 1.1, 45467);
  dx += 0.12 * sxnoise_2d(x * 2.4, y * 2.4, 5464);
  dy += 0.12 * sxnoise_2d(x * 2.4, y * 2.4, 8744);
  float str = sxnoise_2d(x * 0.4, y * 0.4, 5515);
  dx *= str;
  dy *= str;
  float cont = sinf(x * 0.55 + sxnoise_2d(x * 0.4, y * 0.4, 4157) - 0.3);
  cont *= cosf(y * 0.52 + sxnoise_2d(x * 0.4, y * 0.4, 6745) + 0.3);
  float interp = sxnoise_2d(x * 0.3, y * 0.3, 79465);
  interp = (1 + interp) / 2.0;
  interp *= interp;
  interp *= interp;
  interp = 0.1 + 0.9 * interp;
  interp *= (1 + cont) / 2.0;
  float base = dendroid_noise(x + dx, y + dy);
  base = (1 + base) / 2.0;
  base *= 1.2;
  float alt = sxnoise_2d(x * 0.8, y * 0.8, 88467);
  alt += 0.5 * sxnoise_2d(x * 1.5, y * 1.5, 6714);
  alt /= 1.5;
  alt *= 0.14;
  float full = interp * (0.8 * base + 0.2 * alt) +
               (1 - interp) * (0.95 * alt + 0.05 * base);
  return 1.3 * (cont + full) / 2.0 - 0.2;
}


x86 assembly (clang, -O0):
<dendroid_mountains>:
push   %rbp
mov    %rsp,%rbp
sub    $0x40,%rsp
movss  %xmm0,-0x4(%rbp)
movss  %xmm1,-0x8(%rbp)
movss  -0x4(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xed5(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x4(%rbp)
movss  -0x8(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xeb7(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x8(%rbp)
movss  -0x4(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xef9(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  -0x8(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
movsd  0xee0(%rip),%xmm2
mulsd  %xmm2,%xmm1
cvtsd2ss %xmm1,%xmm1
mov    $0x13f39,%edi
call   1030 <sxnoise_2d@plt>
movaps %xmm0,%xmm1
movsd  0xebb(%rip),%xmm0
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xc(%rbp)
movss  -0x4(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xea5(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  -0x8(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
movsd  0xe8c(%rip),%xmm2
mulsd  %xmm2,%xmm1
cvtsd2ss %xmm1,%xmm1
mov    $0xb19b,%edi
call   1030 <sxnoise_2d@plt>
movaps %xmm0,%xmm1
movsd  0xe67(%rip),%xmm0
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x10(%rbp)
movss  -0x4(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xe41(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  -0x8(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
movsd  0xe28(%rip),%xmm2
mulsd  %xmm2,%xmm1
cvtsd2ss %xmm1,%xmm1
mov    $0x1558,%edi
call   1030 <sxnoise_2d@plt>
movss  -0xc(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
movsd  0xdfd(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0xc(%rbp)
movss  -0x4(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xde3(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  -0x8(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
movsd  0xdca(%rip),%xmm2
mulsd  %xmm2,%xmm1
cvtsd2ss %xmm1,%xmm1
mov    $0x2228,%edi
call   1030 <sxnoise_2d@plt>
movss  -0x10(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
movsd  0xd9f(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x10(%rbp)
movss  -0x4(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xd6d(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  -0x8(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
movsd  0xd54(%rip),%xmm2
mulsd  %xmm2,%xmm1
cvtsd2ss %xmm1,%xmm1
mov    $0x158b,%edi
call   1030 <sxnoise_2d@plt>
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x14(%rbp)
movss  -0x14(%rbp),%xmm0
mulss  -0xc(%rbp),%xmm0
movss  %xmm0,-0xc(%rbp)
movss  -0x14(%rbp),%xmm0
mulss  -0x10(%rbp),%xmm0
movss  %xmm0,-0x10(%rbp)
movss  -0x4(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x38(%rbp)
movss  -0x4(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xcfc(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  -0x8(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
movsd  0xce3(%rip),%xmm2
mulsd  %xmm2,%xmm1
cvtsd2ss %xmm1,%xmm1
mov    $0x103d,%edi
call   1030 <sxnoise_2d@plt>
movaps %xmm0,%xmm1
movsd  -0x38(%rbp),%xmm0
movsd  0xcc9(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xca1(%rip),%xmm1
subsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
call   1040 <sinf@plt>
movss  %xmm0,-0x18(%rbp)
movss  -0x8(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x30(%rbp)
movss  -0x4(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xc80(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  -0x8(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
movsd  0xc67(%rip),%xmm2
mulsd  %xmm2,%xmm1
cvtsd2ss %xmm1,%xmm1
mov    $0x1a59,%edi
call   1030 <sxnoise_2d@plt>
movaps %xmm0,%xmm1
movsd  -0x30(%rbp),%xmm0
movsd  0xc3d(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xc25(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
call   1050 <cosf@plt>
mulss  -0x18(%rbp),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  -0x4(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xbfd(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  -0x8(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
movsd  0xbe4(%rip),%xmm2
mulsd  %xmm2,%xmm1
cvtsd2ss %xmm1,%xmm1
mov    $0x13669,%edi
call   1030 <sxnoise_2d@plt>
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x1c(%rbp)
movss  0xc01(%rip),%xmm0
addss  -0x1c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xb58(%rip),%xmm1
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x1c(%rbp)
movss  -0x1c(%rbp),%xmm0
mulss  -0x1c(%rbp),%xmm0
movss  %xmm0,-0x1c(%rbp)
movss  -0x1c(%rbp),%xmm0
mulss  -0x1c(%rbp),%xmm0
movss  %xmm0,-0x1c(%rbp)
movss  -0x1c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xb64(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xb60(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x1c(%rbp)
movss  0xb93(%rip),%xmm0
addss  -0x18(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xaea(%rip),%xmm0
divsd  %xmm0,%xmm1
movss  -0x1c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x1c(%rbp)
movss  -0x4(%rbp),%xmm0
addss  -0xc(%rbp),%xmm0
movss  -0x8(%rbp),%xmm1
addss  -0x10(%rbp),%xmm1
call   1060 <dendroid_noise@plt>
movss  %xmm0,-0x20(%rbp)
movss  0xb42(%rip),%xmm0
addss  -0x20(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xa99(%rip),%xmm1
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x20(%rbp)
movss  -0x20(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xabb(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x20(%rbp)
movss  -0x4(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xa7d(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  -0x8(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
movsd  0xa64(%rip),%xmm2
mulsd  %xmm2,%xmm1
cvtsd2ss %xmm1,%xmm1
mov    $0x15993,%edi
call   1030 <sxnoise_2d@plt>
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x24(%rbp)
movss  -0x4(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xa48(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  -0x8(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
movsd  0xa2f(%rip),%xmm2
mulsd  %xmm2,%xmm1
cvtsd2ss %xmm1,%xmm1
mov    $0x1a3a,%edi
call   1030 <sxnoise_2d@plt>
movss  -0x24(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
movsd  0xa14(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x24(%rbp)
movss  -0x24(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x9ea(%rip),%xmm1
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x24(%rbp)
movss  -0x24(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x9c4(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x24(%rbp)
movss  -0x1c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
movss  -0x20(%rbp),%xmm1
cvtss2sd %xmm1,%xmm2
movss  -0x24(%rbp),%xmm1
cvtss2sd %xmm1,%xmm3
movsd  0x964(%rip),%xmm1
mulsd  %xmm3,%xmm1
movsd  0x980(%rip),%xmm3
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movss  0x9e8(%rip),%xmm1
subss  -0x1c(%rbp),%xmm1
cvtss2sd %xmm1,%xmm1
movss  -0x24(%rbp),%xmm3
cvtss2sd %xmm3,%xmm3
movss  -0x20(%rbp),%xmm4
cvtss2sd %xmm4,%xmm5
movsd  0x945(%rip),%xmm4
mulsd  %xmm5,%xmm4
movsd  0x931(%rip),%xmm5
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x28(%rbp)
movss  -0x18(%rbp),%xmm0
addss  -0x28(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0x8f6(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  0x8e2(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  0x8ce(%rip),%xmm1
subsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
add    $0x40,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<dendroid_mountains>:
sub    $0x38,%rsp
movss  0xeb4(%rip),%xmm2
mulss  %xmm2,%xmm0
movss  %xmm0,0x30(%rsp)
mulss  %xmm2,%xmm1
movss  %xmm1,0x2c(%rsp)
xorps  %xmm2,%xmm2
cvtss2sd %xmm0,%xmm2
movsd  %xmm2,0x18(%rsp)
movsd  0xe9b(%rip),%xmm3
mulsd  %xmm3,%xmm2
xorps  %xmm0,%xmm0
cvtsd2ss %xmm2,%xmm0
movss  %xmm0,0xc(%rsp)
cvtss2sd %xmm1,%xmm1
movsd  %xmm1,0x20(%rsp)
mulsd  %xmm1,%xmm3
xorps  %xmm1,%xmm1
cvtsd2ss %xmm3,%xmm1
movss  %xmm1,0x8(%rsp)
mov    $0x13f39,%edi
call   1030 <sxnoise_2d@plt>
mulsd  0xe65(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0x10(%rsp)
movss  0xc(%rsp),%xmm0
movss  0x8(%rsp),%xmm1
mov    $0xb19b,%edi
call   1030 <sxnoise_2d@plt>
mulsd  0xe3d(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0xc(%rsp)
movsd  0xe33(%rip),%xmm2
movsd  0x18(%rsp),%xmm1
mulsd  %xmm2,%xmm1
xorps  %xmm0,%xmm0
cvtsd2ss %xmm1,%xmm0
movss  %xmm0,0x8(%rsp)
mulsd  0x20(%rsp),%xmm2
xorps  %xmm1,%xmm1
cvtsd2ss %xmm2,%xmm1
movss  %xmm1,0x14(%rsp)
mov    $0x1558,%edi
call   1030 <sxnoise_2d@plt>
movss  0x10(%rsp),%xmm1
cvtss2sd %xmm1,%xmm1
mulsd  0xdf5(%rip),%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0x10(%rsp)
movss  0x8(%rsp),%xmm0
movss  0x14(%rsp),%xmm1
mov    $0x2228,%edi
call   1030 <sxnoise_2d@plt>
movss  0xc(%rsp),%xmm1
cvtss2sd %xmm1,%xmm1
mulsd  0xdbf(%rip),%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0xc(%rsp)
movsd  0xdb1(%rip),%xmm2
movsd  0x18(%rsp),%xmm1
mulsd  %xmm2,%xmm1
xorps  %xmm0,%xmm0
cvtsd2ss %xmm1,%xmm0
movss  %xmm0,0x8(%rsp)
mulsd  0x20(%rsp),%xmm2
xorps  %xmm1,%xmm1
cvtsd2ss %xmm2,%xmm1
movss  %xmm1,0x14(%rsp)
mov    $0x158b,%edi
call   1030 <sxnoise_2d@plt>
cvtsd2ss %xmm0,%xmm0
movss  0x10(%rsp),%xmm1
mulss  %xmm0,%xmm1
movss  %xmm1,0x10(%rsp)
movss  0xc(%rsp),%xmm1
mulss  %xmm0,%xmm1
movss  %xmm1,0xc(%rsp)
movss  0x8(%rsp),%xmm0
movss  0x14(%rsp),%xmm1
mov    $0x103d,%edi
call   1030 <sxnoise_2d@plt>
movsd  0xd43(%rip),%xmm1
mulsd  0x18(%rsp),%xmm1
addsd  %xmm0,%xmm1
addsd  0xd39(%rip),%xmm1
xorps  %xmm0,%xmm0
cvtsd2ss %xmm1,%xmm0
call   1040 <sinf@plt>
movss  %xmm0,0x34(%rsp)
movss  0x8(%rsp),%xmm0
movss  0x14(%rsp),%xmm1
mov    $0x1a59,%edi
call   1030 <sxnoise_2d@plt>
movsd  0xd11(%rip),%xmm1
mulsd  0x20(%rsp),%xmm1
addsd  %xmm0,%xmm1
addsd  0xd07(%rip),%xmm1
xorps  %xmm0,%xmm0
cvtsd2ss %xmm1,%xmm0
call   1050 <cosf@plt>
movaps %xmm0,%xmm1
movsd  0x18(%rsp),%xmm0
movsd  0xcea(%rip),%xmm2
mulsd  %xmm2,%xmm0
cvtsd2ss %xmm0,%xmm0
mulss  0x34(%rsp),%xmm1
movss  %xmm1,0x8(%rsp)
mulsd  0x20(%rsp),%xmm2
xorps  %xmm1,%xmm1
cvtsd2ss %xmm2,%xmm1
mov    $0x13669,%edi
call   1030 <sxnoise_2d@plt>
cvtsd2ss %xmm0,%xmm0
movss  0xc67(%rip),%xmm1
addss  %xmm1,%xmm0
movaps %xmm1,%xmm2
mulss  0xc5c(%rip),%xmm0
mulss  %xmm0,%xmm0
mulss  %xmm0,%xmm0
cvtss2sd %xmm0,%xmm0
mulsd  0xc98(%rip),%xmm0
addsd  0xc98(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  0x8(%rsp),%xmm1
addss  %xmm2,%xmm1
cvtss2sd %xmm1,%xmm1
mulsd  0xc86(%rip),%xmm1
cvtss2sd %xmm0,%xmm0
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0x14(%rsp)
movss  0x10(%rsp),%xmm0
addss  0x30(%rsp),%xmm0
movss  0xc(%rsp),%xmm1
addss  0x2c(%rsp),%xmm1
call   1060 <dendroid_noise@plt>
addss  0xbeb(%rip),%xmm0
mulss  0xbe7(%rip),%xmm0
cvtss2sd %xmm0,%xmm0
mulsd  0xc43(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0x10(%rsp)
movsd  0xc39(%rip),%xmm2
movsd  0x18(%rsp),%xmm0
mulsd  %xmm2,%xmm0
cvtsd2ss %xmm0,%xmm0
movsd  0x20(%rsp),%xmm1
mulsd  %xmm2,%xmm1
cvtsd2ss %xmm1,%xmm1
mov    $0x15993,%edi
call   1030 <sxnoise_2d@plt>
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0x18(%rsp)
movss  0xb89(%rip),%xmm2
movss  0x30(%rsp),%xmm0
mulss  %xmm2,%xmm0
movss  0x2c(%rsp),%xmm1
mulss  %xmm2,%xmm1
mov    $0x1a3a,%edi
call   1030 <sxnoise_2d@plt>
movss  0x18(%rsp),%xmm1
cvtss2sd %xmm1,%xmm1
movsd  0xbc1(%rip),%xmm4
mulsd  %xmm4,%xmm0
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
divss  0xb45(%rip),%xmm0
cvtss2sd %xmm0,%xmm0
mulsd  0xbb9(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  0x14(%rsp),%xmm5
xorps  %xmm1,%xmm1
cvtss2sd %xmm5,%xmm1
movss  0x10(%rsp),%xmm2
cvtss2sd %xmm2,%xmm2
cvtss2sd %xmm0,%xmm0
movsd  0xb9a(%rip),%xmm3
mulsd  %xmm0,%xmm3
movsd  0xb7e(%rip),%xmm6
mulsd  %xmm2,%xmm6
addsd  %xmm3,%xmm6
mulsd  %xmm1,%xmm6
movss  0xaf6(%rip),%xmm1
subss  %xmm5,%xmm1
cvtss2sd %xmm1,%xmm1
mulsd  0xb72(%rip),%xmm2
mulsd  0xb72(%rip),%xmm0
addsd  %xmm2,%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm6,%xmm0
cvtsd2ss %xmm0,%xmm0
addss  0x8(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
mulsd  0xb58(%rip),%xmm0
mulsd  %xmm4,%xmm0
addsd  0xb54(%rip),%xmm0
cvtsd2ss %xmm0,%xmm0
add    $0x38,%rsp
ret

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

LLVM IR (-O2):
define float @dendroid_mountains(float %0, float %1) {
%3 = fmul float %0, 1.500000e+00
%4 = fmul float %1, 1.500000e+00
%5 = fpext float %3 to double
%6 = fmul double %5, 1.100000e+00
%7 = fptrunc double %6 to float
%8 = fpext float %4 to double
%9 = fmul double %8, 1.100000e+00
%10 = fptrunc double %9 to float
%11 = tail call double @sxnoise_2d(float %7, float %10, i32 81721)
%12 = fmul double %11, 2.300000e-01
%13 = fptrunc double %12 to float
%14 = tail call double @sxnoise_2d(float %7, float %10, i32 45467)
%15 = fmul double %14, 2.300000e-01
%16 = fptrunc double %15 to float
%17 = fmul double %5, 2.400000e+00
%18 = fptrunc double %17 to float
%19 = fmul double %8, 2.400000e+00
%20 = fptrunc double %19 to float
%21 = tail call double @sxnoise_2d(float %18, float %20, i32 5464)
%22 = fpext float %13 to double
%23 = tail call double @llvm.fmuladd.f64(double %21, double 1.200000e-01, double %22)
%24 = fptrunc double %23 to float
%25 = tail call double @sxnoise_2d(float %18, float %20, i32 8744)
%26 = fpext float %16 to double
%27 = tail call double @llvm.fmuladd.f64(double %25, double 1.200000e-01, double %26)
%28 = fptrunc double %27 to float
%29 = fmul double %5, 4.000000e-01
%30 = fptrunc double %29 to float
%31 = fmul double %8, 4.000000e-01
%32 = fptrunc double %31 to float
%33 = tail call double @sxnoise_2d(float %30, float %32, i32 5515)
%34 = fptrunc double %33 to float
%35 = fmul float %24, %34
%36 = fmul float %34, %28
%37 = tail call double @sxnoise_2d(float %30, float %32, i32 4157)
%38 = tail call double @llvm.fmuladd.f64(double %5, double 5.500000e-01, double %37)
%39 = fadd double %38, -3.000000e-01
%40 = fptrunc double %39 to float
%41 = tail call float @sinf(float %40)
%42 = tail call double @sxnoise_2d(float %30, float %32, i32 6745)
%43 = tail call double @llvm.fmuladd.f64(double %8, double 5.200000e-01, double %42)
%44 = fadd double %43, 3.000000e-01
%45 = fptrunc double %44 to float
%46 = tail call float @cosf(float %45)
%47 = fmul float %41, %46
%48 = fmul double %5, 3.000000e-01
%49 = fptrunc double %48 to float
%50 = fmul double %8, 3.000000e-01
%51 = fptrunc double %50 to float
%52 = tail call double @sxnoise_2d(float %49, float %51, i32 79465)
%53 = fptrunc double %52 to float
%54 = fadd float %53, 1.000000e+00
%55 = fmul float %54, 5.000000e-01
%56 = fmul float %55, %55
%57 = fmul float %56, %56
%58 = fpext float %57 to double
%59 = tail call double @llvm.fmuladd.f64(double %58, double 9.000000e-01, double 1.000000e-01)
%60 = fptrunc double %59 to float
%61 = fadd float %47, 1.000000e+00
%62 = fpext float %61 to double
%63 = fmul double %62, 5.000000e-01
%64 = fpext float %60 to double
%65 = fmul double %63, %64
%66 = fptrunc double %65 to float
%67 = fadd float %3, %35
%68 = fadd float %4, %36
%69 = tail call float @dendroid_noise(float %67, float %68)
%70 = fadd float %69, 1.000000e+00
%71 = fmul float %70, 5.000000e-01
%72 = fpext float %71 to double
%73 = fmul double %72, 1.200000e+00
%74 = fptrunc double %73 to float
%75 = fmul double %5, 8.000000e-01
%76 = fptrunc double %75 to float
%77 = fmul double %8, 8.000000e-01
%78 = fptrunc double %77 to float
%79 = tail call double @sxnoise_2d(float %76, float %78, i32 88467)
%80 = fptrunc double %79 to float
%81 = fmul float %3, 1.500000e+00
%82 = fmul float %4, 1.500000e+00
%83 = tail call double @sxnoise_2d(float %81, float %82, i32 6714)
%84 = fpext float %80 to double
%85 = tail call double @llvm.fmuladd.f64(double %83, double 5.000000e-01, double %84)
%86 = fptrunc double %85 to float
%87 = fdiv float %86, 1.500000e+00
%88 = fpext float %87 to double
%89 = fmul double %88, 1.400000e-01
%90 = fptrunc double %89 to float
%91 = fpext float %66 to double
%92 = fpext float %74 to double
%93 = fpext float %90 to double
%94 = fmul double %93, 2.000000e-01
%95 = tail call double @llvm.fmuladd.f64(double %92, double 8.000000e-01, double %94)
%96 = fsub float 1.000000e+00, %66
%97 = fpext float %96 to double
%98 = fmul double %92, 5.000000e-02
%99 = tail call double @llvm.fmuladd.f64(double %93, double 0x3FEE666666666666, double %98)
%100 = fmul double %99, %97
%101 = tail call double @llvm.fmuladd.f64(double %91, double %95, double %100)
%102 = fptrunc double %101 to float
%103 = fadd float %47, %102
%104 = fpext float %103 to double
%105 = fmul double %104, 1.300000e+00
%106 = fmul double %105, 5.000000e-01
%107 = fadd double %106, -2.000000e-01
%108 = fptrunc double %107 to float
ret float %108
}