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

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ GL_QUADS;
int /*<<< orphan*/ glBegin(int /*<<< orphan*/);
int /*<<< orphan*/ glColor3f(double, double, double);
int /*<<< orphan*/ glEnd();
int /*<<< orphan*/ glTexCoord2f(double, double);
int /*<<< orphan*/ glVertex3f(float const, float const, float const);
void makeCube(const float size) {
  glBegin(GL_QUADS);
  glColor3f(0.7, 0.0, 0.2);
  glTexCoord2f(0.0, 0.0);
  glVertex3f(-size, -size, -size);
  glTexCoord2f(1.0, 0.0);
  glVertex3f(size, -size, -size);
  glTexCoord2f(1.0, 1.0);
  glVertex3f(size, size, -size);
  glTexCoord2f(0.0, 1.0);
  glVertex3f(-size, size, -size);
  glColor3f(0.7, 0.0, 0.6);
  glTexCoord2f(0.0, 0.0);
  glVertex3f(-size, -size, size);
  glTexCoord2f(1.0, 0.0);
  glVertex3f(size, -size, size);
  glTexCoord2f(1.0, 1.0);
  glVertex3f(size, size, size);
  glTexCoord2f(0.0, 1.0);
  glVertex3f(-size, size, size);
  glColor3f(0.7, 0.23, 0.2);
  glTexCoord2f(0.0, 0.0);
  glVertex3f(-size, -size, -size);
  glTexCoord2f(1.0, 0.0);
  glVertex3f(-size, -size, size);
  glTexCoord2f(1.0, 1.0);
  glVertex3f(-size, size, size);
  glTexCoord2f(0.0, 1.0);
  glVertex3f(-size, size, -size);
  glColor3f(0.1, 0.4, 0.2);
  glTexCoord2f(0.0, 0.0);
  glVertex3f(size, -size, -size);
  glTexCoord2f(1.0, 0.0);
  glVertex3f(size, -size, size);
  glTexCoord2f(1.0, 1.0);
  glVertex3f(size, size, size);
  glTexCoord2f(0.0, 1.0);
  glVertex3f(size, size, -size);
  glColor3f(0.7, 0.5, 1.0);
  glTexCoord2f(0.0, 0.0);
  glVertex3f(-size, -size, -size);
  glTexCoord2f(1.0, 0.0);
  glVertex3f(-size, -size, size);
  glTexCoord2f(1.0, 1.0);
  glVertex3f(size, -size, size);
  glTexCoord2f(0.0, 1.0);
  glVertex3f(size, -size, -size);
  glColor3f(0.1, 0.0, 0.2);
  glTexCoord2f(0.0, 0.0);
  glVertex3f(-size, size, -size);
  glTexCoord2f(1.0, 0.0);
  glVertex3f(-size, size, size);
  glTexCoord2f(1.0, 1.0);
  glVertex3f(size, size, size);
  glTexCoord2f(0.0, 1.0);
  glVertex3f(size, size, -size);
  glEnd();
}


x86 assembly (clang, -O0):
<makeCube>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
movss  %xmm0,-0x4(%rbp)
mov    0x2e84(%rip),%rax
mov    (%rax),%edi
call   1070 <glBegin@plt>
movsd  0xea5(%rip),%xmm0
xorps  %xmm1,%xmm1
movsd  0xe92(%rip),%xmm2
call   1050 <glColor3f@plt>
xorps  %xmm1,%xmm1
movaps %xmm1,%xmm0
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  -0x4(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  -0x4(%rbp),%xmm2
movd   %xmm2,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm2
call   1030 <glVertex3f@plt>
movsd  0xe2f(%rip),%xmm0
xorps  %xmm1,%xmm1
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movss  -0x4(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  -0x4(%rbp),%xmm2
movd   %xmm2,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm2
call   1030 <glVertex3f@plt>
movsd  0xdf1(%rip),%xmm1
movaps %xmm1,%xmm0
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movss  -0x4(%rbp),%xmm1
movss  -0x4(%rbp),%xmm2
movd   %xmm2,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xdbd(%rip),%xmm1
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  -0x4(%rbp),%xmm1
movss  -0x4(%rbp),%xmm2
movd   %xmm2,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm2
call   1030 <glVertex3f@plt>
movsd  0xd9a(%rip),%xmm0
xorps  %xmm1,%xmm1
movsd  0xdaf(%rip),%xmm2
call   1050 <glColor3f@plt>
xorps  %xmm1,%xmm1
movaps %xmm1,%xmm0
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  -0x4(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  -0x4(%rbp),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xd31(%rip),%xmm0
xorps  %xmm1,%xmm1
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movss  -0x4(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  -0x4(%rbp),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xd00(%rip),%xmm1
movaps %xmm1,%xmm0
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movss  -0x4(%rbp),%xmm1
movss  -0x4(%rbp),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xcd9(%rip),%xmm1
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  -0x4(%rbp),%xmm1
movss  -0x4(%rbp),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xcc3(%rip),%xmm0
movsd  0xcd3(%rip),%xmm1
movsd  0xcab(%rip),%xmm2
call   1050 <glColor3f@plt>
xorps  %xmm1,%xmm1
movaps %xmm1,%xmm0
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  -0x4(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  -0x4(%rbp),%xmm2
movd   %xmm2,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm2
call   1030 <glVertex3f@plt>
movsd  0xc48(%rip),%xmm0
xorps  %xmm1,%xmm1
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  -0x4(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  -0x4(%rbp),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xc0a(%rip),%xmm1
movaps %xmm1,%xmm0
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  -0x4(%rbp),%xmm1
movss  -0x4(%rbp),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xbd6(%rip),%xmm1
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  -0x4(%rbp),%xmm1
movss  -0x4(%rbp),%xmm2
movd   %xmm2,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm2
call   1030 <glVertex3f@plt>
movsd  0xba3(%rip),%xmm0
movsd  0xbbb(%rip),%xmm1
movsd  0xb9b(%rip),%xmm2
call   1050 <glColor3f@plt>
xorps  %xmm1,%xmm1
movaps %xmm1,%xmm0
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movss  -0x4(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  -0x4(%rbp),%xmm2
movd   %xmm2,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm2
call   1030 <glVertex3f@plt>
movsd  0xb45(%rip),%xmm0
xorps  %xmm1,%xmm1
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movss  -0x4(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  -0x4(%rbp),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xb14(%rip),%xmm1
movaps %xmm1,%xmm0
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movss  -0x4(%rbp),%xmm1
movss  -0x4(%rbp),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xaed(%rip),%xmm1
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movss  -0x4(%rbp),%xmm1
movss  -0x4(%rbp),%xmm2
movd   %xmm2,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm2
call   1030 <glVertex3f@plt>
movsd  0xad7(%rip),%xmm0
movsd  0xad7(%rip),%xmm1
movsd  0xaaf(%rip),%xmm2
call   1050 <glColor3f@plt>
xorps  %xmm1,%xmm1
movaps %xmm1,%xmm0
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  -0x4(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  -0x4(%rbp),%xmm2
movd   %xmm2,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm2
call   1030 <glVertex3f@plt>
movsd  0xa5c(%rip),%xmm0
xorps  %xmm1,%xmm1
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  -0x4(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  -0x4(%rbp),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xa1e(%rip),%xmm1
movaps %xmm1,%xmm0
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movss  -0x4(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  -0x4(%rbp),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0x9ea(%rip),%xmm1
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movss  -0x4(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  -0x4(%rbp),%xmm2
movd   %xmm2,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm2
call   1030 <glVertex3f@plt>
movsd  0x9b7(%rip),%xmm0
xorps  %xmm1,%xmm1
movsd  0x9b4(%rip),%xmm2
call   1050 <glColor3f@plt>
xorps  %xmm1,%xmm1
movaps %xmm1,%xmm0
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  -0x4(%rbp),%xmm1
movss  -0x4(%rbp),%xmm2
movd   %xmm2,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm2
call   1030 <glVertex3f@plt>
movsd  0x95e(%rip),%xmm0
xorps  %xmm1,%xmm1
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  -0x4(%rbp),%xmm1
movss  -0x4(%rbp),%xmm2
call   1030 <glVertex3f@plt>
movsd  0x92d(%rip),%xmm1
movaps %xmm1,%xmm0
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movss  -0x4(%rbp),%xmm1
movss  -0x4(%rbp),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0x906(%rip),%xmm1
call   1060 <glTexCoord2f@plt>
movss  -0x4(%rbp),%xmm0
movss  -0x4(%rbp),%xmm1
movss  -0x4(%rbp),%xmm2
movd   %xmm2,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm2
call   1030 <glVertex3f@plt>
mov    $0x0,%al
call   1040 <glEnd@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<makeCube>:
sub    $0x28,%rsp
movaps %xmm0,(%rsp)
mov    0x2e89(%rip),%rax
mov    (%rax),%edi
call   1070 <glBegin@plt>
movsd  0xe92(%rip),%xmm0
movsd  0xe92(%rip),%xmm2
xorps  %xmm1,%xmm1
call   1050 <glColor3f@plt>
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
call   1060 <glTexCoord2f@plt>
movaps 0xeb0(%rip),%xmm0
xorps  (%rsp),%xmm0
movaps %xmm0,0x10(%rsp)
movaps %xmm0,%xmm1
movaps %xmm0,%xmm2
call   1030 <glVertex3f@plt>
movsd  0xe64(%rip),%xmm0
xorps  %xmm1,%xmm1
call   1060 <glTexCoord2f@plt>
movaps (%rsp),%xmm0
movaps 0x10(%rsp),%xmm1
movaps %xmm1,%xmm2
call   1030 <glVertex3f@plt>
movsd  0xe43(%rip),%xmm0
movaps %xmm0,%xmm1
call   1060 <glTexCoord2f@plt>
movaps (%rsp),%xmm0
movaps %xmm0,%xmm1
movaps 0x10(%rsp),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xe1f(%rip),%xmm1
call   1060 <glTexCoord2f@plt>
movaps 0x10(%rsp),%xmm0
movaps (%rsp),%xmm1
movaps %xmm0,%xmm2
call   1030 <glVertex3f@plt>
movsd  0xe09(%rip),%xmm2
xorps  %xmm1,%xmm1
movsd  0xde6(%rip),%xmm0
call   1050 <glColor3f@plt>
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
call   1060 <glTexCoord2f@plt>
movaps 0x10(%rsp),%xmm0
movaps %xmm0,%xmm1
movaps (%rsp),%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm1,%xmm1
movsd  0xdca(%rip),%xmm0
call   1060 <glTexCoord2f@plt>
movaps (%rsp),%xmm0
movaps 0x10(%rsp),%xmm1
movaps %xmm0,%xmm2
call   1030 <glVertex3f@plt>
movsd  0xdac(%rip),%xmm0
movaps %xmm0,%xmm1
call   1060 <glTexCoord2f@plt>
movaps (%rsp),%xmm0
movaps %xmm0,%xmm1
movaps %xmm0,%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xd8a(%rip),%xmm1
call   1060 <glTexCoord2f@plt>
movaps 0x10(%rsp),%xmm0
movaps (%rsp),%xmm1
movaps %xmm1,%xmm2
call   1030 <glVertex3f@plt>
movsd  0xd7c(%rip),%xmm1
movsd  0xd54(%rip),%xmm0
movsd  0xd54(%rip),%xmm2
call   1050 <glColor3f@plt>
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
call   1060 <glTexCoord2f@plt>
movaps 0x10(%rsp),%xmm0
movaps %xmm0,%xmm1
movaps %xmm0,%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm1,%xmm1
movsd  0xd31(%rip),%xmm0
call   1060 <glTexCoord2f@plt>
movaps 0x10(%rsp),%xmm0
movaps %xmm0,%xmm1
movaps (%rsp),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xd13(%rip),%xmm0
movaps %xmm0,%xmm1
call   1060 <glTexCoord2f@plt>
movaps 0x10(%rsp),%xmm0
movaps (%rsp),%xmm1
movaps %xmm1,%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xcef(%rip),%xmm1
call   1060 <glTexCoord2f@plt>
movaps 0x10(%rsp),%xmm0
movaps (%rsp),%xmm1
movaps %xmm0,%xmm2
call   1030 <glVertex3f@plt>
movsd  0xce9(%rip),%xmm0
movsd  0xce9(%rip),%xmm1
movsd  0xcb9(%rip),%xmm2
call   1050 <glColor3f@plt>
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
call   1060 <glTexCoord2f@plt>
movaps (%rsp),%xmm0
movaps 0x10(%rsp),%xmm1
movaps %xmm1,%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm1,%xmm1
movsd  0xc95(%rip),%xmm0
call   1060 <glTexCoord2f@plt>
movaps (%rsp),%xmm0
movaps 0x10(%rsp),%xmm1
movaps %xmm0,%xmm2
call   1030 <glVertex3f@plt>
movsd  0xc77(%rip),%xmm0
movaps %xmm0,%xmm1
call   1060 <glTexCoord2f@plt>
movaps (%rsp),%xmm0
movaps %xmm0,%xmm1
movaps %xmm0,%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xc55(%rip),%xmm1
call   1060 <glTexCoord2f@plt>
movaps (%rsp),%xmm0
movaps %xmm0,%xmm1
movaps 0x10(%rsp),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xc5f(%rip),%xmm1
movsd  0xc1f(%rip),%xmm0
movsd  0xc27(%rip),%xmm2
call   1050 <glColor3f@plt>
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
call   1060 <glTexCoord2f@plt>
movaps 0x10(%rsp),%xmm0
movaps %xmm0,%xmm1
movaps %xmm0,%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm1,%xmm1
movsd  0xbfc(%rip),%xmm0
call   1060 <glTexCoord2f@plt>
movaps 0x10(%rsp),%xmm0
movaps %xmm0,%xmm1
movaps (%rsp),%xmm2
call   1030 <glVertex3f@plt>
movsd  0xbde(%rip),%xmm0
movaps %xmm0,%xmm1
call   1060 <glTexCoord2f@plt>
movaps (%rsp),%xmm0
movaps 0x10(%rsp),%xmm1
movaps %xmm0,%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xbba(%rip),%xmm1
call   1060 <glTexCoord2f@plt>
movaps (%rsp),%xmm0
movaps 0x10(%rsp),%xmm1
movaps %xmm1,%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm1,%xmm1
movsd  0xbb1(%rip),%xmm0
movsd  0xb89(%rip),%xmm2
call   1050 <glColor3f@plt>
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
call   1060 <glTexCoord2f@plt>
movaps 0x10(%rsp),%xmm0
movaps (%rsp),%xmm1
movaps %xmm0,%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm1,%xmm1
movsd  0xb65(%rip),%xmm0
call   1060 <glTexCoord2f@plt>
movaps 0x10(%rsp),%xmm0
movaps (%rsp),%xmm1
movaps %xmm1,%xmm2
call   1030 <glVertex3f@plt>
movsd  0xb47(%rip),%xmm0
movaps %xmm0,%xmm1
call   1060 <glTexCoord2f@plt>
movaps (%rsp),%xmm0
movaps %xmm0,%xmm1
movaps %xmm0,%xmm2
call   1030 <glVertex3f@plt>
xorps  %xmm0,%xmm0
movsd  0xb25(%rip),%xmm1
call   1060 <glTexCoord2f@plt>
movaps (%rsp),%xmm0
movaps %xmm0,%xmm1
movaps 0x10(%rsp),%xmm2
call   1030 <glVertex3f@plt>
xor    %eax,%eax
add    $0x28,%rsp
jmp    1040 <glEnd@plt>

LLVM IR (-O0):
@GL_QUADS = global i32 0
define void @makeCube(float %0) {
%2 = alloca float
store float %0, float* %2
%3 = load i32, i32* @GL_QUADS
%4 = call i32 @glBegin(i32 %3)
%5 = call i32 @glColor3f(double 0x3FE6666666666666, double 0.000000e+00, double 2.000000e-01)
%6 = call i32 @glTexCoord2f(double 0.000000e+00, double 0.000000e+00)
%7 = load float, float* %2
%8 = fneg float %7
%9 = load float, float* %2
%10 = fneg float %9
%11 = load float, float* %2
%12 = fneg float %11
%13 = call i32 @glVertex3f(float %8, float %10, float %12)
%14 = call i32 @glTexCoord2f(double 1.000000e+00, double 0.000000e+00)
%15 = load float, float* %2
%16 = load float, float* %2
%17 = fneg float %16
%18 = load float, float* %2
%19 = fneg float %18
%20 = call i32 @glVertex3f(float %15, float %17, float %19)
%21 = call i32 @glTexCoord2f(double 1.000000e+00, double 1.000000e+00)
%22 = load float, float* %2
%23 = load float, float* %2
%24 = load float, float* %2
%25 = fneg float %24
%26 = call i32 @glVertex3f(float %22, float %23, float %25)
%27 = call i32 @glTexCoord2f(double 0.000000e+00, double 1.000000e+00)
%28 = load float, float* %2
%29 = fneg float %28
%30 = load float, float* %2
%31 = load float, float* %2
%32 = fneg float %31
%33 = call i32 @glVertex3f(float %29, float %30, float %32)
%34 = call i32 @glColor3f(double 0x3FE6666666666666, double 0.000000e+00, double 6.000000e-01)
%35 = call i32 @glTexCoord2f(double 0.000000e+00, double 0.000000e+00)
%36 = load float, float* %2
%37 = fneg float %36
%38 = load float, float* %2
%39 = fneg float %38
%40 = load float, float* %2
%41 = call i32 @glVertex3f(float %37, float %39, float %40)
%42 = call i32 @glTexCoord2f(double 1.000000e+00, double 0.000000e+00)
%43 = load float, float* %2
%44 = load float, float* %2
%45 = fneg float %44
%46 = load float, float* %2
%47 = call i32 @glVertex3f(float %43, float %45, float %46)
%48 = call i32 @glTexCoord2f(double 1.000000e+00, double 1.000000e+00)
%49 = load float, float* %2
%50 = load float, float* %2
%51 = load float, float* %2
%52 = call i32 @glVertex3f(float %49, float %50, float %51)
%53 = call i32 @glTexCoord2f(double 0.000000e+00, double 1.000000e+00)
%54 = load float, float* %2
%55 = fneg float %54
%56 = load float, float* %2
%57 = load float, float* %2
%58 = call i32 @glVertex3f(float %55, float %56, float %57)
%59 = call i32 @glColor3f(double 0x3FE6666666666666, double 2.300000e-01, double 2.000000e-01)
%60 = call i32 @glTexCoord2f(double 0.000000e+00, double 0.000000e+00)
%61 = load float, float* %2
%62 = fneg float %61
%63 = load float, float* %2
%64 = fneg float %63
%65 = load float, float* %2
%66 = fneg float %65
%67 = call i32 @glVertex3f(float %62, float %64, float %66)
%68 = call i32 @glTexCoord2f(double 1.000000e+00, double 0.000000e+00)
%69 = load float, float* %2
%70 = fneg float %69
%71 = load float, float* %2
%72 = fneg float %71
%73 = load float, float* %2
%74 = call i32 @glVertex3f(float %70, float %72, float %73)
%75 = call i32 @glTexCoord2f(double 1.000000e+00, double 1.000000e+00)
%76 = load float, float* %2
%77 = fneg float %76
%78 = load float, float* %2
%79 = load float, float* %2
%80 = call i32 @glVertex3f(float %77, float %78, float %79)
%81 = call i32 @glTexCoord2f(double 0.000000e+00, double 1.000000e+00)
%82 = load float, float* %2
%83 = fneg float %82
%84 = load float, float* %2
%85 = load float, float* %2
%86 = fneg float %85
%87 = call i32 @glVertex3f(float %83, float %84, float %86)
%88 = call i32 @glColor3f(double 1.000000e-01, double 4.000000e-01, double 2.000000e-01)
%89 = call i32 @glTexCoord2f(double 0.000000e+00, double 0.000000e+00)
%90 = load float, float* %2
%91 = load float, float* %2
%92 = fneg float %91
%93 = load float, float* %2
%94 = fneg float %93
%95 = call i32 @glVertex3f(float %90, float %92, float %94)
%96 = call i32 @glTexCoord2f(double 1.000000e+00, double 0.000000e+00)
%97 = load float, float* %2
%98 = load float, float* %2
%99 = fneg float %98
%100 = load float, float* %2
%101 = call i32 @glVertex3f(float %97, float %99, float %100)
%102 = call i32 @glTexCoord2f(double 1.000000e+00, double 1.000000e+00)
%103 = load float, float* %2
%104 = load float, float* %2
%105 = load float, float* %2
%106 = call i32 @glVertex3f(float %103, float %104, float %105)
%107 = call i32 @glTexCoord2f(double 0.000000e+00, double 1.000000e+00)
%108 = load float, float* %2
%109 = load float, float* %2
%110 = load float, float* %2
%111 = fneg float %110
%112 = call i32 @glVertex3f(float %108, float %109, float %111)
%113 = call i32 @glColor3f(double 0x3FE6666666666666, double 5.000000e-01, double 1.000000e+00)
%114 = call i32 @glTexCoord2f(double 0.000000e+00, double 0.000000e+00)
%115 = load float, float* %2
%116 = fneg float %115
%117 = load float, float* %2
%118 = fneg float %117
%119 = load float, float* %2
%120 = fneg float %119
%121 = call i32 @glVertex3f(float %116, float %118, float %120)
%122 = call i32 @glTexCoord2f(double 1.000000e+00, double 0.000000e+00)
%123 = load float, float* %2
%124 = fneg float %123
%125 = load float, float* %2
%126 = fneg float %125
%127 = load float, float* %2
%128 = call i32 @glVertex3f(float %124, float %126, float %127)
%129 = call i32 @glTexCoord2f(double 1.000000e+00, double 1.000000e+00)
%130 = load float, float* %2
%131 = load float, float* %2
%132 = fneg float %131
%133 = load float, float* %2
%134 = call i32 @glVertex3f(float %130, float %132, float %133)
%135 = call i32 @glTexCoord2f(double 0.000000e+00, double 1.000000e+00)
%136 = load float, float* %2
%137 = load float, float* %2
%138 = fneg float %137
%139 = load float, float* %2
%140 = fneg float %139
%141 = call i32 @glVertex3f(float %136, float %138, float %140)
%142 = call i32 @glColor3f(double 1.000000e-01, double 0.000000e+00, double 2.000000e-01)
%143 = call i32 @glTexCoord2f(double 0.000000e+00, double 0.000000e+00)
%144 = load float, float* %2
%145 = fneg float %144
%146 = load float, float* %2
%147 = load float, float* %2
%148 = fneg float %147
%149 = call i32 @glVertex3f(float %145, float %146, float %148)
%150 = call i32 @glTexCoord2f(double 1.000000e+00, double 0.000000e+00)
%151 = load float, float* %2
%152 = fneg float %151
%153 = load float, float* %2
%154 = load float, float* %2
%155 = call i32 @glVertex3f(float %152, float %153, float %154)
%156 = call i32 @glTexCoord2f(double 1.000000e+00, double 1.000000e+00)
%157 = load float, float* %2
%158 = load float, float* %2
%159 = load float, float* %2
%160 = call i32 @glVertex3f(float %157, float %158, float %159)
%161 = call i32 @glTexCoord2f(double 0.000000e+00, double 1.000000e+00)
%162 = load float, float* %2
%163 = load float, float* %2
%164 = load float, float* %2
%165 = fneg float %164
%166 = call i32 @glVertex3f(float %162, float %163, float %165)
%167 = call i32 (...) @glEnd()
ret void
}

LLVM IR (-O2):
@GL_QUADS = global i32 0
define void @makeCube(float %0) {
%2 = load i32, i32* @GL_QUADS
%3 = tail call i32 @glBegin(i32 %2)
%4 = tail call i32 @glColor3f(double 0x3FE6666666666666, double 0.000000e+00, double 2.000000e-01)
%5 = tail call i32 @glTexCoord2f(double 0.000000e+00, double 0.000000e+00)
%6 = fneg float %0
%7 = tail call i32 @glVertex3f(float %6, float %6, float %6)
%8 = tail call i32 @glTexCoord2f(double 1.000000e+00, double 0.000000e+00)
%9 = tail call i32 @glVertex3f(float %0, float %6, float %6)
%10 = tail call i32 @glTexCoord2f(double 1.000000e+00, double 1.000000e+00)
%11 = tail call i32 @glVertex3f(float %0, float %0, float %6)
%12 = tail call i32 @glTexCoord2f(double 0.000000e+00, double 1.000000e+00)
%13 = tail call i32 @glVertex3f(float %6, float %0, float %6)
%14 = tail call i32 @glColor3f(double 0x3FE6666666666666, double 0.000000e+00, double 6.000000e-01)
%15 = tail call i32 @glTexCoord2f(double 0.000000e+00, double 0.000000e+00)
%16 = tail call i32 @glVertex3f(float %6, float %6, float %0)
%17 = tail call i32 @glTexCoord2f(double 1.000000e+00, double 0.000000e+00)
%18 = tail call i32 @glVertex3f(float %0, float %6, float %0)
%19 = tail call i32 @glTexCoord2f(double 1.000000e+00, double 1.000000e+00)
%20 = tail call i32 @glVertex3f(float %0, float %0, float %0)
%21 = tail call i32 @glTexCoord2f(double 0.000000e+00, double 1.000000e+00)
%22 = tail call i32 @glVertex3f(float %6, float %0, float %0)
%23 = tail call i32 @glColor3f(double 0x3FE6666666666666, double 2.300000e-01, double 2.000000e-01)
%24 = tail call i32 @glTexCoord2f(double 0.000000e+00, double 0.000000e+00)
%25 = tail call i32 @glVertex3f(float %6, float %6, float %6)
%26 = tail call i32 @glTexCoord2f(double 1.000000e+00, double 0.000000e+00)
%27 = tail call i32 @glVertex3f(float %6, float %6, float %0)
%28 = tail call i32 @glTexCoord2f(double 1.000000e+00, double 1.000000e+00)
%29 = tail call i32 @glVertex3f(float %6, float %0, float %0)
%30 = tail call i32 @glTexCoord2f(double 0.000000e+00, double 1.000000e+00)
%31 = tail call i32 @glVertex3f(float %6, float %0, float %6)
%32 = tail call i32 @glColor3f(double 1.000000e-01, double 4.000000e-01, double 2.000000e-01)
%33 = tail call i32 @glTexCoord2f(double 0.000000e+00, double 0.000000e+00)
%34 = tail call i32 @glVertex3f(float %0, float %6, float %6)
%35 = tail call i32 @glTexCoord2f(double 1.000000e+00, double 0.000000e+00)
%36 = tail call i32 @glVertex3f(float %0, float %6, float %0)
%37 = tail call i32 @glTexCoord2f(double 1.000000e+00, double 1.000000e+00)
%38 = tail call i32 @glVertex3f(float %0, float %0, float %0)
%39 = tail call i32 @glTexCoord2f(double 0.000000e+00, double 1.000000e+00)
%40 = tail call i32 @glVertex3f(float %0, float %0, float %6)
%41 = tail call i32 @glColor3f(double 0x3FE6666666666666, double 5.000000e-01, double 1.000000e+00)
%42 = tail call i32 @glTexCoord2f(double 0.000000e+00, double 0.000000e+00)
%43 = tail call i32 @glVertex3f(float %6, float %6, float %6)
%44 = tail call i32 @glTexCoord2f(double 1.000000e+00, double 0.000000e+00)
%45 = tail call i32 @glVertex3f(float %6, float %6, float %0)
%46 = tail call i32 @glTexCoord2f(double 1.000000e+00, double 1.000000e+00)
%47 = tail call i32 @glVertex3f(float %0, float %6, float %0)
%48 = tail call i32 @glTexCoord2f(double 0.000000e+00, double 1.000000e+00)
%49 = tail call i32 @glVertex3f(float %0, float %6, float %6)
%50 = tail call i32 @glColor3f(double 1.000000e-01, double 0.000000e+00, double 2.000000e-01)
%51 = tail call i32 @glTexCoord2f(double 0.000000e+00, double 0.000000e+00)
%52 = tail call i32 @glVertex3f(float %6, float %0, float %6)
%53 = tail call i32 @glTexCoord2f(double 1.000000e+00, double 0.000000e+00)
%54 = tail call i32 @glVertex3f(float %6, float %0, float %0)
%55 = tail call i32 @glTexCoord2f(double 1.000000e+00, double 1.000000e+00)
%56 = tail call i32 @glVertex3f(float %0, float %0, float %0)
%57 = tail call i32 @glTexCoord2f(double 0.000000e+00, double 1.000000e+00)
%58 = tail call i32 @glVertex3f(float %0, float %0, float %6)
%59 = tail call i32 (...) @glEnd()
ret void
}