#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 */
typedef double GLfloat;

/* Variables and functions */
int /*<<< orphan*/ GL_AMBIENT;
int GL_COLOR_BUFFER_BIT;
int GL_DEPTH_BUFFER_BIT;
int /*<<< orphan*/ GL_DIFFUSE;
int /*<<< orphan*/ GL_EMISSION;
int /*<<< orphan*/ GL_FRONT;
int /*<<< orphan*/ GL_SHININESS;
int /*<<< orphan*/ GL_SPECULAR;
int /*<<< orphan*/ glClear(int);
int /*<<< orphan*/ glFlush();
int /*<<< orphan*/ glMaterialfv(int /*<<< orphan*/, int /*<<< orphan*/,
                                double *);
int /*<<< orphan*/ glPopMatrix();
int /*<<< orphan*/ glPushMatrix();
int /*<<< orphan*/ glTranslatef(double, double, double);
int /*<<< orphan*/ glutSolidSphere(double, int, int);
void display(void) {
  GLfloat no_mat[] = {0.0, 0.0, 0.0, 1.0};
  GLfloat mat_ambient[] = {0.7, 0.7, 0.7, 1.0};
  GLfloat mat_ambient_color[] = {0.8, 0.8, 0.2, 1.0};
  GLfloat mat_diffuse[] = {0.1, 0.5, 0.8, 1.0};
  GLfloat mat_specular[] = {1.0, 1.0, 1.0, 1.0};
  GLfloat no_shininess[] = {0.0};
  GLfloat low_shininess[] = {5.0};
  GLfloat high_shininess[] = {100.0};
  GLfloat mat_emission[] = {0.3, 0.2, 0.2, 0.0};
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  glPushMatrix();
  glTranslatef(-3.75, 3.0, 0.0);
  glMaterialfv(GL_FRONT, GL_AMBIENT, no_mat);
  glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
  glMaterialfv(GL_FRONT, GL_SPECULAR, no_mat);
  glMaterialfv(GL_FRONT, GL_SHININESS, no_shininess);
  glMaterialfv(GL_FRONT, GL_EMISSION, no_mat);
  glutSolidSphere(1.0, 16, 16);
  glPopMatrix();
  glPushMatrix();
  glTranslatef(-1.25, 3.0, 0.0);
  glMaterialfv(GL_FRONT, GL_AMBIENT, no_mat);
  glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
  glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
  glMaterialfv(GL_FRONT, GL_SHININESS, low_shininess);
  glMaterialfv(GL_FRONT, GL_EMISSION, no_mat);
  glutSolidSphere(1.0, 16, 16);
  glPopMatrix();
  glPushMatrix();
  glTranslatef(1.25, 3.0, 0.0);
  glMaterialfv(GL_FRONT, GL_AMBIENT, no_mat);
  glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
  glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
  glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess);
  glMaterialfv(GL_FRONT, GL_EMISSION, no_mat);
  glutSolidSphere(1.0, 16, 16);
  glPopMatrix();
  glPushMatrix();
  glTranslatef(3.75, 3.0, 0.0);
  glMaterialfv(GL_FRONT, GL_AMBIENT, no_mat);
  glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
  glMaterialfv(GL_FRONT, GL_SPECULAR, no_mat);
  glMaterialfv(GL_FRONT, GL_SHININESS, no_shininess);
  glMaterialfv(GL_FRONT, GL_EMISSION, mat_emission);
  glutSolidSphere(1.0, 16, 16);
  glPopMatrix();
  glPushMatrix();
  glTranslatef(-3.75, 0.0, 0.0);
  glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
  glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
  glMaterialfv(GL_FRONT, GL_SPECULAR, no_mat);
  glMaterialfv(GL_FRONT, GL_SHININESS, no_shininess);
  glMaterialfv(GL_FRONT, GL_EMISSION, no_mat);
  glutSolidSphere(1.0, 16, 16);
  glPopMatrix();
  glPushMatrix();
  glTranslatef(-1.25, 0.0, 0.0);
  glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
  glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
  glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
  glMaterialfv(GL_FRONT, GL_SHININESS, low_shininess);
  glMaterialfv(GL_FRONT, GL_EMISSION, no_mat);
  glutSolidSphere(1.0, 16, 16);
  glPopMatrix();
  glPushMatrix();
  glTranslatef(1.25, 0.0, 0.0);
  glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
  glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
  glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
  glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess);
  glMaterialfv(GL_FRONT, GL_EMISSION, no_mat);
  glutSolidSphere(1.0, 16, 16);
  glPopMatrix();
  glPushMatrix();
  glTranslatef(3.75, 0.0, 0.0);
  glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
  glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
  glMaterialfv(GL_FRONT, GL_SPECULAR, no_mat);
  glMaterialfv(GL_FRONT, GL_SHININESS, no_shininess);
  glMaterialfv(GL_FRONT, GL_EMISSION, mat_emission);
  glutSolidSphere(1.0, 16, 16);
  glPopMatrix();
  glPushMatrix();
  glTranslatef(-3.75, -3.0, 0.0);
  glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient_color);
  glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
  glMaterialfv(GL_FRONT, GL_SPECULAR, no_mat);
  glMaterialfv(GL_FRONT, GL_SHININESS, no_shininess);
  glMaterialfv(GL_FRONT, GL_EMISSION, no_mat);
  glutSolidSphere(1.0, 16, 16);
  glPopMatrix();
  glPushMatrix();
  glTranslatef(-1.25, -3.0, 0.0);
  glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient_color);
  glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
  glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
  glMaterialfv(GL_FRONT, GL_SHININESS, low_shininess);
  glMaterialfv(GL_FRONT, GL_EMISSION, no_mat);
  glutSolidSphere(1.0, 16, 16);
  glPopMatrix();
  glPushMatrix();
  glTranslatef(1.25, -3.0, 0.0);
  glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient_color);
  glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
  glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
  glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess);
  glMaterialfv(GL_FRONT, GL_EMISSION, no_mat);
  glutSolidSphere(1.0, 16, 16);
  glPopMatrix();
  glPushMatrix();
  glTranslatef(3.75, -3.0, 0.0);
  glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient_color);
  glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
  glMaterialfv(GL_FRONT, GL_SPECULAR, no_mat);
  glMaterialfv(GL_FRONT, GL_SHININESS, no_shininess);
  glMaterialfv(GL_FRONT, GL_EMISSION, mat_emission);
  glutSolidSphere(1.0, 16, 16);
  glPopMatrix();
  glFlush();
}


x86 assembly (clang, -O0):
<display>:
push   %rbp
mov    %rsp,%rbp
sub    $0xe0,%rsp
mov    0xebe(%rip),%rax
mov    %rax,-0x20(%rbp)
mov    0xebb(%rip),%rax
mov    %rax,-0x18(%rbp)
mov    0xeb8(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    0xeb5(%rip),%rax
mov    %rax,-0x8(%rbp)
mov    0xeb2(%rip),%rax
mov    %rax,-0x40(%rbp)
mov    0xeaf(%rip),%rax
mov    %rax,-0x38(%rbp)
mov    0xeac(%rip),%rax
mov    %rax,-0x30(%rbp)
mov    0xea9(%rip),%rax
mov    %rax,-0x28(%rbp)
mov    0xea6(%rip),%rax
mov    %rax,-0x60(%rbp)
mov    0xea3(%rip),%rax
mov    %rax,-0x58(%rbp)
mov    0xea0(%rip),%rax
mov    %rax,-0x50(%rbp)
mov    0xe9d(%rip),%rax
mov    %rax,-0x48(%rbp)
mov    0xe9a(%rip),%rax
mov    %rax,-0x80(%rbp)
mov    0xe97(%rip),%rax
mov    %rax,-0x78(%rbp)
mov    0xe94(%rip),%rax
mov    %rax,-0x70(%rbp)
mov    0xe91(%rip),%rax
mov    %rax,-0x68(%rbp)
mov    0xe8e(%rip),%rax
mov    %rax,-0xa0(%rbp)
mov    0xe88(%rip),%rax
mov    %rax,-0x98(%rbp)
mov    0xe82(%rip),%rax
mov    %rax,-0x90(%rbp)
mov    0xe7c(%rip),%rax
mov    %rax,-0x88(%rbp)
lea    -0xa8(%rbp),%rdi
xor    %esi,%esi
mov    $0x8,%edx
call   1040 <memset@plt>
mov    0xdab(%rip),%rax
mov    %rax,-0xb0(%rbp)
mov    0xda5(%rip),%rax
mov    %rax,-0xb8(%rbp)
mov    0xe47(%rip),%rax
mov    %rax,-0xe0(%rbp)
mov    0xe41(%rip),%rax
mov    %rax,-0xd8(%rbp)
mov    0xe3b(%rip),%rax
mov    %rax,-0xd0(%rbp)
mov    0xe35(%rip),%rax
mov    %rax,-0xc8(%rbp)
mov    0x2cc7(%rip),%rax
mov    (%rax),%edi
mov    0x2cde(%rip),%rax
or     (%rax),%edi
call   1030 <glClear@plt>
mov    $0x0,%al
call   1070 <glPushMatrix@plt>
movsd  0xd28(%rip),%xmm0
movsd  0xd28(%rip),%xmm1
xorps  %xmm2,%xmm2
call   1090 <glTranslatef@plt>
mov    0x2cb9(%rip),%rax
mov    (%rax),%edi
mov    0x2cd0(%rip),%rax
mov    (%rax),%esi
lea    -0x20(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2c9e(%rip),%rax
mov    (%rax),%edi
mov    0x2c75(%rip),%rax
mov    (%rax),%esi
lea    -0x80(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2c83(%rip),%rax
mov    (%rax),%edi
mov    0x2c8a(%rip),%rax
mov    (%rax),%esi
lea    -0x20(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2c68(%rip),%rax
mov    (%rax),%edi
mov    0x2c77(%rip),%rax
mov    (%rax),%esi
lea    -0xa8(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2c4a(%rip),%rax
mov    (%rax),%edi
mov    0x2c31(%rip),%rax
mov    (%rax),%esi
lea    -0x20(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
movsd  0xc5e(%rip),%xmm0
mov    $0x10,%esi
mov    %esi,%edi
call   1080 <glutSolidSphere@plt>
mov    $0x0,%al
call   1050 <glPopMatrix@plt>
mov    $0x0,%al
call   1070 <glPushMatrix@plt>
movsd  0xc5c(%rip),%xmm0
movsd  0xc64(%rip),%xmm1
xorps  %xmm2,%xmm2
call   1090 <glTranslatef@plt>
mov    0x2bf5(%rip),%rax
mov    (%rax),%edi
mov    0x2c0c(%rip),%rax
mov    (%rax),%esi
lea    -0x20(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2bda(%rip),%rax
mov    (%rax),%edi
mov    0x2bb1(%rip),%rax
mov    (%rax),%esi
lea    -0x80(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2bbf(%rip),%rax
mov    (%rax),%edi
mov    0x2bc6(%rip),%rax
mov    (%rax),%esi
lea    -0xa0(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2ba1(%rip),%rax
mov    (%rax),%edi
mov    0x2bb0(%rip),%rax
mov    (%rax),%esi
lea    -0xb0(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2b83(%rip),%rax
mov    (%rax),%edi
mov    0x2b6a(%rip),%rax
mov    (%rax),%esi
lea    -0x20(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
movsd  0xb97(%rip),%xmm0
mov    $0x10,%esi
mov    %esi,%edi
call   1080 <glutSolidSphere@plt>
mov    $0x0,%al
call   1050 <glPopMatrix@plt>
mov    $0x0,%al
call   1070 <glPushMatrix@plt>
movsd  0xb8d(%rip),%xmm0
movsd  0xb9d(%rip),%xmm1
xorps  %xmm2,%xmm2
call   1090 <glTranslatef@plt>
mov    0x2b2e(%rip),%rax
mov    (%rax),%edi
mov    0x2b45(%rip),%rax
mov    (%rax),%esi
lea    -0x20(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2b13(%rip),%rax
mov    (%rax),%edi
mov    0x2aea(%rip),%rax
mov    (%rax),%esi
lea    -0x80(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2af8(%rip),%rax
mov    (%rax),%edi
mov    0x2aff(%rip),%rax
mov    (%rax),%esi
lea    -0xa0(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2ada(%rip),%rax
mov    (%rax),%edi
mov    0x2ae9(%rip),%rax
mov    (%rax),%esi
lea    -0xb8(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2abc(%rip),%rax
mov    (%rax),%edi
mov    0x2aa3(%rip),%rax
mov    (%rax),%esi
lea    -0x20(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
movsd  0xad0(%rip),%xmm0
mov    $0x10,%esi
mov    %esi,%edi
call   1080 <glutSolidSphere@plt>
mov    $0x0,%al
call   1050 <glPopMatrix@plt>
mov    $0x0,%al
call   1070 <glPushMatrix@plt>
movsd  0xab6(%rip),%xmm0
movsd  0xad6(%rip),%xmm1
xorps  %xmm2,%xmm2
call   1090 <glTranslatef@plt>
mov    0x2a67(%rip),%rax
mov    (%rax),%edi
mov    0x2a7e(%rip),%rax
mov    (%rax),%esi
lea    -0x20(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2a4c(%rip),%rax
mov    (%rax),%edi
mov    0x2a23(%rip),%rax
mov    (%rax),%esi
lea    -0x80(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2a31(%rip),%rax
mov    (%rax),%edi
mov    0x2a38(%rip),%rax
mov    (%rax),%esi
lea    -0x20(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2a16(%rip),%rax
mov    (%rax),%edi
mov    0x2a25(%rip),%rax
mov    (%rax),%esi
lea    -0xa8(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x29f8(%rip),%rax
mov    (%rax),%edi
mov    0x29df(%rip),%rax
mov    (%rax),%esi
lea    -0xe0(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
movsd  0xa09(%rip),%xmm0
mov    $0x10,%esi
mov    %esi,%edi
call   1080 <glutSolidSphere@plt>
mov    $0x0,%al
call   1050 <glPopMatrix@plt>
mov    $0x0,%al
call   1070 <glPushMatrix@plt>
movsd  0xa0f(%rip),%xmm0
xorps  %xmm2,%xmm2
movaps %xmm2,%xmm1
call   1090 <glTranslatef@plt>
mov    0x29a5(%rip),%rax
mov    (%rax),%edi
mov    0x29bc(%rip),%rax
mov    (%rax),%esi
lea    -0x40(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x298a(%rip),%rax
mov    (%rax),%edi
mov    0x2961(%rip),%rax
mov    (%rax),%esi
lea    -0x80(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x296f(%rip),%rax
mov    (%rax),%edi
mov    0x2976(%rip),%rax
mov    (%rax),%esi
lea    -0x20(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2954(%rip),%rax
mov    (%rax),%edi
mov    0x2963(%rip),%rax
mov    (%rax),%esi
lea    -0xa8(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2936(%rip),%rax
mov    (%rax),%edi
mov    0x291d(%rip),%rax
mov    (%rax),%esi
lea    -0x20(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
movsd  0x94a(%rip),%xmm0
mov    $0x10,%esi
mov    %esi,%edi
call   1080 <glutSolidSphere@plt>
mov    $0x0,%al
call   1050 <glPopMatrix@plt>
mov    $0x0,%al
call   1070 <glPushMatrix@plt>
movsd  0x948(%rip),%xmm0
xorps  %xmm2,%xmm2
movaps %xmm2,%xmm1
call   1090 <glTranslatef@plt>
mov    0x28e6(%rip),%rax
mov    (%rax),%edi
mov    0x28fd(%rip),%rax
mov    (%rax),%esi
lea    -0x40(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x28cb(%rip),%rax
mov    (%rax),%edi
mov    0x28a2(%rip),%rax
mov    (%rax),%esi
lea    -0x80(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x28b0(%rip),%rax
mov    (%rax),%edi
mov    0x28b7(%rip),%rax
mov    (%rax),%esi
lea    -0xa0(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2892(%rip),%rax
mov    (%rax),%edi
mov    0x28a1(%rip),%rax
mov    (%rax),%esi
lea    -0xb0(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2874(%rip),%rax
mov    (%rax),%edi
mov    0x285b(%rip),%rax
mov    (%rax),%esi
lea    -0x20(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
movsd  0x888(%rip),%xmm0
mov    $0x10,%esi
mov    %esi,%edi
call   1080 <glutSolidSphere@plt>
mov    $0x0,%al
call   1050 <glPopMatrix@plt>
mov    $0x0,%al
call   1070 <glPushMatrix@plt>
movsd  0x87e(%rip),%xmm0
xorps  %xmm2,%xmm2
movaps %xmm2,%xmm1
call   1090 <glTranslatef@plt>
mov    0x2824(%rip),%rax
mov    (%rax),%edi
mov    0x283b(%rip),%rax
mov    (%rax),%esi
lea    -0x40(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2809(%rip),%rax
mov    (%rax),%edi
mov    0x27e0(%rip),%rax
mov    (%rax),%esi
lea    -0x80(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x27ee(%rip),%rax
mov    (%rax),%edi
mov    0x27f5(%rip),%rax
mov    (%rax),%esi
lea    -0xa0(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x27d0(%rip),%rax
mov    (%rax),%edi
mov    0x27df(%rip),%rax
mov    (%rax),%esi
lea    -0xb8(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x27b2(%rip),%rax
mov    (%rax),%edi
mov    0x2799(%rip),%rax
mov    (%rax),%esi
lea    -0x20(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
movsd  0x7c6(%rip),%xmm0
mov    $0x10,%esi
mov    %esi,%edi
call   1080 <glutSolidSphere@plt>
mov    $0x0,%al
call   1050 <glPopMatrix@plt>
mov    $0x0,%al
call   1070 <glPushMatrix@plt>
movsd  0x7ac(%rip),%xmm0
xorps  %xmm2,%xmm2
movaps %xmm2,%xmm1
call   1090 <glTranslatef@plt>
mov    0x2762(%rip),%rax
mov    (%rax),%edi
mov    0x2779(%rip),%rax
mov    (%rax),%esi
lea    -0x40(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2747(%rip),%rax
mov    (%rax),%edi
mov    0x271e(%rip),%rax
mov    (%rax),%esi
lea    -0x80(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x272c(%rip),%rax
mov    (%rax),%edi
mov    0x2733(%rip),%rax
mov    (%rax),%esi
lea    -0x20(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2711(%rip),%rax
mov    (%rax),%edi
mov    0x2720(%rip),%rax
mov    (%rax),%esi
lea    -0xa8(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x26f3(%rip),%rax
mov    (%rax),%edi
mov    0x26da(%rip),%rax
mov    (%rax),%esi
lea    -0xe0(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
movsd  0x704(%rip),%xmm0
mov    $0x10,%esi
mov    %esi,%edi
call   1080 <glutSolidSphere@plt>
mov    $0x0,%al
call   1050 <glPopMatrix@plt>
mov    $0x0,%al
call   1070 <glPushMatrix@plt>
movsd  0x70a(%rip),%xmm0
movsd  0x6ea(%rip),%xmm1
xorps  %xmm2,%xmm2
call   1090 <glTranslatef@plt>
mov    0x269b(%rip),%rax
mov    (%rax),%edi
mov    0x26b2(%rip),%rax
mov    (%rax),%esi
lea    -0x60(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2680(%rip),%rax
mov    (%rax),%edi
mov    0x2657(%rip),%rax
mov    (%rax),%esi
lea    -0x80(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2665(%rip),%rax
mov    (%rax),%edi
mov    0x266c(%rip),%rax
mov    (%rax),%esi
lea    -0x20(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x264a(%rip),%rax
mov    (%rax),%edi
mov    0x2659(%rip),%rax
mov    (%rax),%esi
lea    -0xa8(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x262c(%rip),%rax
mov    (%rax),%edi
mov    0x2613(%rip),%rax
mov    (%rax),%esi
lea    -0x20(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
movsd  0x640(%rip),%xmm0
mov    $0x10,%esi
mov    %esi,%edi
call   1080 <glutSolidSphere@plt>
mov    $0x0,%al
call   1050 <glPopMatrix@plt>
mov    $0x0,%al
call   1070 <glPushMatrix@plt>
movsd  0x63e(%rip),%xmm0
movsd  0x626(%rip),%xmm1
xorps  %xmm2,%xmm2
call   1090 <glTranslatef@plt>
mov    0x25d7(%rip),%rax
mov    (%rax),%edi
mov    0x25ee(%rip),%rax
mov    (%rax),%esi
lea    -0x60(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x25bc(%rip),%rax
mov    (%rax),%edi
mov    0x2593(%rip),%rax
mov    (%rax),%esi
lea    -0x80(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x25a1(%rip),%rax
mov    (%rax),%edi
mov    0x25a8(%rip),%rax
mov    (%rax),%esi
lea    -0xa0(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2583(%rip),%rax
mov    (%rax),%edi
mov    0x2592(%rip),%rax
mov    (%rax),%esi
lea    -0xb0(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2565(%rip),%rax
mov    (%rax),%edi
mov    0x254c(%rip),%rax
mov    (%rax),%esi
lea    -0x20(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
movsd  0x579(%rip),%xmm0
mov    $0x10,%esi
mov    %esi,%edi
call   1080 <glutSolidSphere@plt>
mov    $0x0,%al
call   1050 <glPopMatrix@plt>
mov    $0x0,%al
call   1070 <glPushMatrix@plt>
movsd  0x56f(%rip),%xmm0
movsd  0x55f(%rip),%xmm1
xorps  %xmm2,%xmm2
call   1090 <glTranslatef@plt>
mov    0x2510(%rip),%rax
mov    (%rax),%edi
mov    0x2527(%rip),%rax
mov    (%rax),%esi
lea    -0x60(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x24f5(%rip),%rax
mov    (%rax),%edi
mov    0x24cc(%rip),%rax
mov    (%rax),%esi
lea    -0x80(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x24da(%rip),%rax
mov    (%rax),%edi
mov    0x24e1(%rip),%rax
mov    (%rax),%esi
lea    -0xa0(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x24bc(%rip),%rax
mov    (%rax),%edi
mov    0x24cb(%rip),%rax
mov    (%rax),%esi
lea    -0xb8(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x249e(%rip),%rax
mov    (%rax),%edi
mov    0x2485(%rip),%rax
mov    (%rax),%esi
lea    -0x20(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
movsd  0x4b2(%rip),%xmm0
mov    $0x10,%esi
mov    %esi,%edi
call   1080 <glutSolidSphere@plt>
mov    $0x0,%al
call   1050 <glPopMatrix@plt>
mov    $0x0,%al
call   1070 <glPushMatrix@plt>
movsd  0x498(%rip),%xmm0
movsd  0x498(%rip),%xmm1
xorps  %xmm2,%xmm2
call   1090 <glTranslatef@plt>
mov    0x2449(%rip),%rax
mov    (%rax),%edi
mov    0x2460(%rip),%rax
mov    (%rax),%esi
lea    -0x60(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x242e(%rip),%rax
mov    (%rax),%edi
mov    0x2405(%rip),%rax
mov    (%rax),%esi
lea    -0x80(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x2413(%rip),%rax
mov    (%rax),%edi
mov    0x241a(%rip),%rax
mov    (%rax),%esi
lea    -0x20(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x23f8(%rip),%rax
mov    (%rax),%edi
mov    0x2407(%rip),%rax
mov    (%rax),%esi
lea    -0xa8(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
mov    0x23da(%rip),%rax
mov    (%rax),%edi
mov    0x23c1(%rip),%rax
mov    (%rax),%esi
lea    -0xe0(%rbp),%rdx
call   10a0 <glMaterialfv@plt>
movsd  0x3eb(%rip),%xmm0
mov    $0x10,%esi
mov    %esi,%edi
call   1080 <glutSolidSphere@plt>
mov    $0x0,%al
call   1050 <glPopMatrix@plt>
mov    $0x0,%al
call   1060 <glFlush@plt>
add    $0xe0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<display>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xe8,%rsp
movaps 0xec8(%rip),%xmm0
movaps %xmm0,0x50(%rsp)
movaps 0xeac(%rip),%xmm0
movaps %xmm0,0x40(%rsp)
movaps 0xed0(%rip),%xmm0
movaps %xmm0,0xd0(%rsp)
movaps 0xeb1(%rip),%xmm0
movaps %xmm0,0xc0(%rsp)
movaps 0xed2(%rip),%xmm0
movaps %xmm0,0x90(%rsp)
movaps 0xeb3(%rip),%xmm0
movaps %xmm0,0x80(%rsp)
movaps 0xed4(%rip),%xmm0
movaps %xmm0,0x30(%rsp)
movaps 0xeb8(%rip),%xmm0
movaps %xmm0,0x20(%rsp)
movaps 0xedc(%rip),%xmm0
movaps %xmm0,0x70(%rsp)
movaps 0xec0(%rip),%xmm0
movaps %xmm0,0x60(%rsp)
movq   $0x0,0x8(%rsp)
movabs $0x4014000000000000,%rax
mov    %rax,0x18(%rsp)
movabs $0x4059000000000000,%rax
mov    %rax,0x10(%rsp)
movaps 0xebd(%rip),%xmm0
movaps %xmm0,0xb0(%rsp)
movaps 0xe9e(%rip),%xmm0
movaps %xmm0,0xa0(%rsp)
mov    0x2d57(%rip),%rax
mov    0x2d70(%rip),%rcx
mov    (%rcx),%edi
or     (%rax),%edi
call   1030 <glClear@plt>
xor    %eax,%eax
call   1060 <glPushMatrix@plt>
movsd  0xd90(%rip),%xmm0
movsd  0xd90(%rip),%xmm1
xorps  %xmm2,%xmm2
call   1080 <glTranslatef@plt>
mov    0x2d49(%rip),%r13
mov    0x0(%r13),%edi
mov    0x2d5e(%rip),%r14
mov    (%r14),%esi
lea    0x40(%rsp),%rbp
mov    %rbp,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x2d03(%rip),%rax
mov    (%rax),%esi
lea    0x20(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x2d1c(%rip),%r15
mov    (%r15),%esi
mov    %rbp,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x2d0e(%rip),%r12
mov    (%r12),%esi
lea    0x8(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x2ccd(%rip),%rax
mov    (%rax),%esi
mov    %rbp,%rdx
call   1090 <glMaterialfv@plt>
movsd  0xd0b(%rip),%xmm0
mov    $0x10,%edi
mov    $0x10,%esi
call   1070 <glutSolidSphere@plt>
xor    %eax,%eax
call   1040 <glPopMatrix@plt>
xor    %eax,%eax
call   1060 <glPushMatrix@plt>
movsd  0xcee(%rip),%xmm0
xorps  %xmm2,%xmm2
movsd  0xcd3(%rip),%xmm1
call   1080 <glTranslatef@plt>
mov    0x0(%r13),%edi
mov    (%r14),%esi
mov    %rbp,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x2c5c(%rip),%rbx
mov    (%rbx),%esi
lea    0x20(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%r15),%esi
lea    0x60(%rsp),%r15
mov    %r15,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%r12),%esi
lea    0x18(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x2c2f(%rip),%r12
mov    (%r12),%esi
mov    %rbp,%rdx
call   1090 <glMaterialfv@plt>
movsd  0xc6b(%rip),%xmm0
mov    $0x10,%edi
mov    $0x10,%esi
call   1070 <glutSolidSphere@plt>
xor    %eax,%eax
call   1040 <glPopMatrix@plt>
xor    %eax,%eax
call   1060 <glPushMatrix@plt>
movsd  0xc56(%rip),%xmm0
xorps  %xmm2,%xmm2
movsd  0xc33(%rip),%xmm1
call   1080 <glTranslatef@plt>
mov    0x0(%r13),%edi
mov    (%r14),%esi
mov    %rbp,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%rbx),%esi
lea    0x20(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x2bdc(%rip),%rax
mov    (%rax),%esi
mov    %r15,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x2bcf(%rip),%rax
mov    (%rax),%esi
mov    %rax,%r15
lea    0x10(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%r12),%esi
mov    %rbp,%rdx
call   1090 <glMaterialfv@plt>
movsd  0xbd0(%rip),%xmm0
mov    $0x10,%edi
mov    $0x10,%esi
call   1070 <glutSolidSphere@plt>
xor    %eax,%eax
call   1040 <glPopMatrix@plt>
xor    %eax,%eax
call   1060 <glPushMatrix@plt>
movsd  0xbc3(%rip),%xmm0
xorps  %xmm2,%xmm2
movsd  0xb98(%rip),%xmm1
call   1080 <glTranslatef@plt>
mov    0x0(%r13),%edi
mov    (%r14),%esi
mov    %rbp,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%rbx),%esi
lea    0x20(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x2b41(%rip),%rax
mov    (%rax),%esi
mov    %rbp,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%r15),%esi
lea    0x8(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%r12),%esi
mov    %r12,%r15
lea    0xa0(%rsp),%rdx
call   1090 <glMaterialfv@plt>
movsd  0xb36(%rip),%xmm0
mov    $0x10,%edi
mov    $0x10,%esi
call   1070 <glutSolidSphere@plt>
xor    %eax,%eax
call   1040 <glPopMatrix@plt>
xor    %eax,%eax
call   1060 <glPushMatrix@plt>
xorps  %xmm1,%xmm1
xorps  %xmm2,%xmm2
movsd  0xafb(%rip),%xmm0
call   1080 <glTranslatef@plt>
mov    0x0(%r13),%edi
mov    (%r14),%esi
lea    0xc0(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x2a87(%rip),%rbp
mov    0x0(%rbp),%esi
lea    0x20(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x2a9f(%rip),%rax
mov    (%rax),%esi
lea    0x40(%rsp),%rbx
mov    %rbx,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x2a8d(%rip),%rax
mov    (%rax),%esi
lea    0x8(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%r12),%esi
mov    %rbx,%rdx
call   1090 <glMaterialfv@plt>
movsd  0xa91(%rip),%xmm0
mov    $0x10,%edi
mov    $0x10,%esi
call   1070 <glutSolidSphere@plt>
xor    %eax,%eax
call   1040 <glPopMatrix@plt>
xor    %eax,%eax
call   1060 <glPushMatrix@plt>
xorps  %xmm1,%xmm1
xorps  %xmm2,%xmm2
movsd  0xa6e(%rip),%xmm0
call   1080 <glTranslatef@plt>
mov    0x0(%r13),%edi
mov    (%r14),%esi
lea    0xc0(%rsp),%r12
mov    %r12,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x0(%rbp),%esi
lea    0x20(%rsp),%rbp
mov    %rbp,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x29fb(%rip),%rax
mov    (%rax),%esi
lea    0x60(%rsp),%rbx
mov    %rbx,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x29e9(%rip),%r14
mov    (%r14),%esi
lea    0x18(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%r15),%esi
lea    0x40(%rsp),%rdx
call   1090 <glMaterialfv@plt>
movsd  0x9eb(%rip),%xmm0
mov    $0x10,%edi
mov    $0x10,%esi
call   1070 <glutSolidSphere@plt>
xor    %eax,%eax
call   1040 <glPopMatrix@plt>
xor    %eax,%eax
call   1060 <glPushMatrix@plt>
xorps  %xmm1,%xmm1
xorps  %xmm2,%xmm2
movsd  0x9d0(%rip),%xmm0
call   1080 <glTranslatef@plt>
mov    0x0(%r13),%edi
mov    0x2990(%rip),%rax
mov    (%rax),%esi
mov    %r12,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x293b(%rip),%rax
mov    (%rax),%esi
mov    %rbp,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x2956(%rip),%r12
mov    (%r12),%esi
mov    %rbx,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%r14),%esi
lea    0x10(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%r15),%esi
mov    %r15,%rbx
lea    0x40(%rsp),%rdx
mov    %rdx,%rbp
call   1090 <glMaterialfv@plt>
movsd  0x94a(%rip),%xmm0
mov    $0x10,%edi
mov    $0x10,%esi
call   1070 <glutSolidSphere@plt>
xor    %eax,%eax
call   1040 <glPopMatrix@plt>
xor    %eax,%eax
call   1060 <glPushMatrix@plt>
xorps  %xmm1,%xmm1
xorps  %xmm2,%xmm2
movsd  0x937(%rip),%xmm0
call   1080 <glTranslatef@plt>
mov    0x0(%r13),%edi
mov    0x28ef(%rip),%rax
mov    (%rax),%esi
lea    0xc0(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x2895(%rip),%rax
mov    (%rax),%esi
lea    0x20(%rsp),%rdx
mov    %rdx,%r15
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%r12),%esi
mov    %rbp,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%r14),%esi
lea    0x8(%rsp),%rbp
mov    %rbp,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%rbx),%esi
lea    0xa0(%rsp),%rdx
call   1090 <glMaterialfv@plt>
movsd  0x8a7(%rip),%xmm0
mov    $0x10,%edi
mov    $0x10,%esi
call   1070 <glutSolidSphere@plt>
xor    %eax,%eax
call   1040 <glPopMatrix@plt>
xor    %eax,%eax
call   1060 <glPushMatrix@plt>
movsd  0x8a2(%rip),%xmm1
xorps  %xmm2,%xmm2
movsd  0x867(%rip),%xmm0
call   1080 <glTranslatef@plt>
mov    0x0(%r13),%edi
mov    0x2847(%rip),%rax
mov    (%rax),%esi
lea    0x80(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x27ed(%rip),%rax
mov    (%rax),%esi
mov    %r15,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%r12),%esi
lea    0x40(%rsp),%r15
mov    %r15,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%r14),%esi
mov    %rbp,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%rbx),%esi
mov    %rbx,%r14
mov    %r15,%rdx
mov    %r15,%rbp
call   1090 <glMaterialfv@plt>
movsd  0x803(%rip),%xmm0
mov    $0x10,%edi
mov    $0x10,%esi
call   1070 <glutSolidSphere@plt>
xor    %eax,%eax
call   1040 <glPopMatrix@plt>
xor    %eax,%eax
call   1060 <glPushMatrix@plt>
xorps  %xmm2,%xmm2
movsd  0x7e3(%rip),%xmm0
movsd  0x7f3(%rip),%xmm1
call   1080 <glTranslatef@plt>
mov    0x0(%r13),%edi
mov    0x27a3(%rip),%rbx
mov    (%rbx),%esi
lea    0x80(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x2749(%rip),%rax
mov    (%rax),%esi
lea    0x20(%rsp),%r15
mov    %r15,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%r12),%esi
lea    0x60(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x2755(%rip),%r12
mov    (%r12),%esi
lea    0x18(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%r14),%esi
mov    %rbp,%rdx
call   1090 <glMaterialfv@plt>
movsd  0x758(%rip),%xmm0
mov    $0x10,%edi
mov    $0x10,%esi
call   1070 <glutSolidSphere@plt>
xor    %eax,%eax
call   1040 <glPopMatrix@plt>
xor    %eax,%eax
call   1060 <glPushMatrix@plt>
xorps  %xmm2,%xmm2
movsd  0x740(%rip),%xmm0
movsd  0x748(%rip),%xmm1
call   1080 <glTranslatef@plt>
mov    0x0(%r13),%edi
mov    (%rbx),%esi
lea    0x80(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x26a5(%rip),%rax
mov    (%rax),%esi
mov    %r15,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x26c0(%rip),%rax
mov    (%rax),%esi
lea    0x60(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%r12),%esi
lea    0x10(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%r14),%esi
mov    %rbp,%rdx
call   1090 <glMaterialfv@plt>
movsd  0x6bb(%rip),%xmm0
mov    $0x10,%edi
mov    $0x10,%esi
call   1070 <glutSolidSphere@plt>
xor    %eax,%eax
call   1040 <glPopMatrix@plt>
xor    %eax,%eax
call   1060 <glPushMatrix@plt>
xorps  %xmm2,%xmm2
movsd  0x6ab(%rip),%xmm0
movsd  0x6ab(%rip),%xmm1
call   1080 <glTranslatef@plt>
mov    0x0(%r13),%edi
mov    (%rbx),%esi
lea    0x80(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x2608(%rip),%rax
mov    (%rax),%esi
mov    %r15,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    0x2623(%rip),%rax
mov    (%rax),%esi
mov    %rbp,%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%r12),%esi
lea    0x8(%rsp),%rdx
call   1090 <glMaterialfv@plt>
mov    0x0(%r13),%edi
mov    (%r14),%esi
lea    0xa0(%rsp),%rdx
call   1090 <glMaterialfv@plt>
movsd  0x61b(%rip),%xmm0
mov    $0x10,%edi
mov    $0x10,%esi
call   1070 <glutSolidSphere@plt>
xor    %eax,%eax
call   1040 <glPopMatrix@plt>
xor    %eax,%eax
call   1050 <glFlush@plt>
add    $0xe8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@__const.display.no_mat = [4 x double] [double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 1.000000e+00]
@__const.display.mat_ambient = [4 x double] [double 0x3FE6666666666666, double 0x3FE6666666666666, double 0x3FE6666666666666, double 1.000000e+00]
@__const.display.mat_ambient_color = [4 x double] [double 8.000000e-01, double 8.000000e-01, double 2.000000e-01, double 1.000000e+00]
@__const.display.mat_diffuse = [4 x double] [double 1.000000e-01, double 5.000000e-01, double 8.000000e-01, double 1.000000e+00]
@__const.display.mat_specular = [4 x double] [double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00]
@__const.display.low_shininess = [1 x double] [double 5.000000e+00]
@__const.display.high_shininess = [1 x double] [double 1.000000e+02]
@__const.display.mat_emission = [4 x double] [double 3.000000e-01, double 2.000000e-01, double 2.000000e-01, double 0.000000e+00]
@GL_COLOR_BUFFER_BIT = global i32 0
@GL_DEPTH_BUFFER_BIT = global i32 0
@GL_FRONT = global i32 0
@GL_AMBIENT = global i32 0
@GL_DIFFUSE = global i32 0
@GL_SPECULAR = global i32 0
@GL_SHININESS = global i32 0
@GL_EMISSION = global i32 0
define void @display() {
%1 = alloca [4 x double]
%2 = alloca [4 x double]
%3 = alloca [4 x double]
%4 = alloca [4 x double]
%5 = alloca [4 x double]
%6 = alloca [1 x double]
%7 = alloca [1 x double]
%8 = alloca [1 x double]
%9 = alloca [4 x double]
%10 = bitcast [4 x double]* %1 to i8*
%11 = bitcast [4 x double]* %2 to i8*
%12 = bitcast [4 x double]* %3 to i8*
%13 = bitcast [4 x double]* %4 to i8*
%14 = bitcast [4 x double]* %5 to i8*
%15 = bitcast [1 x double]* %6 to i8*
%16 = bitcast [1 x double]* %7 to i8*
%17 = bitcast [1 x double]* %8 to i8*
%18 = bitcast [4 x double]* %9 to i8*
%19 = load i32, i32* @GL_COLOR_BUFFER_BIT
%20 = load i32, i32* @GL_DEPTH_BUFFER_BIT
%21 = or i32 %19, %20
%22 = call i32 @glClear(i32 %21)
%23 = call i32 (...) @glPushMatrix()
%24 = call i32 @glTranslatef(double -3.750000e+00, double 3.000000e+00, double 0.000000e+00)
%25 = load i32, i32* @GL_FRONT
%26 = load i32, i32* @GL_AMBIENT
%27 = getelementptr inbounds [4 x double], [4 x double]* %1, i64 0, i64 0
%28 = call i32 @glMaterialfv(i32 %25, i32 %26, double* %27)
%29 = load i32, i32* @GL_FRONT
%30 = load i32, i32* @GL_DIFFUSE
%31 = getelementptr inbounds [4 x double], [4 x double]* %4, i64 0, i64 0
%32 = call i32 @glMaterialfv(i32 %29, i32 %30, double* %31)
%33 = load i32, i32* @GL_FRONT
%34 = load i32, i32* @GL_SPECULAR
%35 = getelementptr inbounds [4 x double], [4 x double]* %1, i64 0, i64 0
%36 = call i32 @glMaterialfv(i32 %33, i32 %34, double* %35)
%37 = load i32, i32* @GL_FRONT
%38 = load i32, i32* @GL_SHININESS
%39 = getelementptr inbounds [1 x double], [1 x double]* %6, i64 0, i64 0
%40 = call i32 @glMaterialfv(i32 %37, i32 %38, double* %39)
%41 = load i32, i32* @GL_FRONT
%42 = load i32, i32* @GL_EMISSION
%43 = getelementptr inbounds [4 x double], [4 x double]* %1, i64 0, i64 0
%44 = call i32 @glMaterialfv(i32 %41, i32 %42, double* %43)
%45 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%46 = call i32 (...) @glPopMatrix()
%47 = call i32 (...) @glPushMatrix()
%48 = call i32 @glTranslatef(double -1.250000e+00, double 3.000000e+00, double 0.000000e+00)
%49 = load i32, i32* @GL_FRONT
%50 = load i32, i32* @GL_AMBIENT
%51 = getelementptr inbounds [4 x double], [4 x double]* %1, i64 0, i64 0
%52 = call i32 @glMaterialfv(i32 %49, i32 %50, double* %51)
%53 = load i32, i32* @GL_FRONT
%54 = load i32, i32* @GL_DIFFUSE
%55 = getelementptr inbounds [4 x double], [4 x double]* %4, i64 0, i64 0
%56 = call i32 @glMaterialfv(i32 %53, i32 %54, double* %55)
%57 = load i32, i32* @GL_FRONT
%58 = load i32, i32* @GL_SPECULAR
%59 = getelementptr inbounds [4 x double], [4 x double]* %5, i64 0, i64 0
%60 = call i32 @glMaterialfv(i32 %57, i32 %58, double* %59)
%61 = load i32, i32* @GL_FRONT
%62 = load i32, i32* @GL_SHININESS
%63 = getelementptr inbounds [1 x double], [1 x double]* %7, i64 0, i64 0
%64 = call i32 @glMaterialfv(i32 %61, i32 %62, double* %63)
%65 = load i32, i32* @GL_FRONT
%66 = load i32, i32* @GL_EMISSION
%67 = getelementptr inbounds [4 x double], [4 x double]* %1, i64 0, i64 0
%68 = call i32 @glMaterialfv(i32 %65, i32 %66, double* %67)
%69 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%70 = call i32 (...) @glPopMatrix()
%71 = call i32 (...) @glPushMatrix()
%72 = call i32 @glTranslatef(double 1.250000e+00, double 3.000000e+00, double 0.000000e+00)
%73 = load i32, i32* @GL_FRONT
%74 = load i32, i32* @GL_AMBIENT
%75 = getelementptr inbounds [4 x double], [4 x double]* %1, i64 0, i64 0
%76 = call i32 @glMaterialfv(i32 %73, i32 %74, double* %75)
%77 = load i32, i32* @GL_FRONT
%78 = load i32, i32* @GL_DIFFUSE
%79 = getelementptr inbounds [4 x double], [4 x double]* %4, i64 0, i64 0
%80 = call i32 @glMaterialfv(i32 %77, i32 %78, double* %79)
%81 = load i32, i32* @GL_FRONT
%82 = load i32, i32* @GL_SPECULAR
%83 = getelementptr inbounds [4 x double], [4 x double]* %5, i64 0, i64 0
%84 = call i32 @glMaterialfv(i32 %81, i32 %82, double* %83)
%85 = load i32, i32* @GL_FRONT
%86 = load i32, i32* @GL_SHININESS
%87 = getelementptr inbounds [1 x double], [1 x double]* %8, i64 0, i64 0
%88 = call i32 @glMaterialfv(i32 %85, i32 %86, double* %87)
%89 = load i32, i32* @GL_FRONT
%90 = load i32, i32* @GL_EMISSION
%91 = getelementptr inbounds [4 x double], [4 x double]* %1, i64 0, i64 0
%92 = call i32 @glMaterialfv(i32 %89, i32 %90, double* %91)
%93 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%94 = call i32 (...) @glPopMatrix()
%95 = call i32 (...) @glPushMatrix()
%96 = call i32 @glTranslatef(double 3.750000e+00, double 3.000000e+00, double 0.000000e+00)
%97 = load i32, i32* @GL_FRONT
%98 = load i32, i32* @GL_AMBIENT
%99 = getelementptr inbounds [4 x double], [4 x double]* %1, i64 0, i64 0
%100 = call i32 @glMaterialfv(i32 %97, i32 %98, double* %99)
%101 = load i32, i32* @GL_FRONT
%102 = load i32, i32* @GL_DIFFUSE
%103 = getelementptr inbounds [4 x double], [4 x double]* %4, i64 0, i64 0
%104 = call i32 @glMaterialfv(i32 %101, i32 %102, double* %103)
%105 = load i32, i32* @GL_FRONT
%106 = load i32, i32* @GL_SPECULAR
%107 = getelementptr inbounds [4 x double], [4 x double]* %1, i64 0, i64 0
%108 = call i32 @glMaterialfv(i32 %105, i32 %106, double* %107)
%109 = load i32, i32* @GL_FRONT
%110 = load i32, i32* @GL_SHININESS
%111 = getelementptr inbounds [1 x double], [1 x double]* %6, i64 0, i64 0
%112 = call i32 @glMaterialfv(i32 %109, i32 %110, double* %111)
%113 = load i32, i32* @GL_FRONT
%114 = load i32, i32* @GL_EMISSION
%115 = getelementptr inbounds [4 x double], [4 x double]* %9, i64 0, i64 0
%116 = call i32 @glMaterialfv(i32 %113, i32 %114, double* %115)
%117 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%118 = call i32 (...) @glPopMatrix()
%119 = call i32 (...) @glPushMatrix()
%120 = call i32 @glTranslatef(double -3.750000e+00, double 0.000000e+00, double 0.000000e+00)
%121 = load i32, i32* @GL_FRONT
%122 = load i32, i32* @GL_AMBIENT
%123 = getelementptr inbounds [4 x double], [4 x double]* %2, i64 0, i64 0
%124 = call i32 @glMaterialfv(i32 %121, i32 %122, double* %123)
%125 = load i32, i32* @GL_FRONT
%126 = load i32, i32* @GL_DIFFUSE
%127 = getelementptr inbounds [4 x double], [4 x double]* %4, i64 0, i64 0
%128 = call i32 @glMaterialfv(i32 %125, i32 %126, double* %127)
%129 = load i32, i32* @GL_FRONT
%130 = load i32, i32* @GL_SPECULAR
%131 = getelementptr inbounds [4 x double], [4 x double]* %1, i64 0, i64 0
%132 = call i32 @glMaterialfv(i32 %129, i32 %130, double* %131)
%133 = load i32, i32* @GL_FRONT
%134 = load i32, i32* @GL_SHININESS
%135 = getelementptr inbounds [1 x double], [1 x double]* %6, i64 0, i64 0
%136 = call i32 @glMaterialfv(i32 %133, i32 %134, double* %135)
%137 = load i32, i32* @GL_FRONT
%138 = load i32, i32* @GL_EMISSION
%139 = getelementptr inbounds [4 x double], [4 x double]* %1, i64 0, i64 0
%140 = call i32 @glMaterialfv(i32 %137, i32 %138, double* %139)
%141 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%142 = call i32 (...) @glPopMatrix()
%143 = call i32 (...) @glPushMatrix()
%144 = call i32 @glTranslatef(double -1.250000e+00, double 0.000000e+00, double 0.000000e+00)
%145 = load i32, i32* @GL_FRONT
%146 = load i32, i32* @GL_AMBIENT
%147 = getelementptr inbounds [4 x double], [4 x double]* %2, i64 0, i64 0
%148 = call i32 @glMaterialfv(i32 %145, i32 %146, double* %147)
%149 = load i32, i32* @GL_FRONT
%150 = load i32, i32* @GL_DIFFUSE
%151 = getelementptr inbounds [4 x double], [4 x double]* %4, i64 0, i64 0
%152 = call i32 @glMaterialfv(i32 %149, i32 %150, double* %151)
%153 = load i32, i32* @GL_FRONT
%154 = load i32, i32* @GL_SPECULAR
%155 = getelementptr inbounds [4 x double], [4 x double]* %5, i64 0, i64 0
%156 = call i32 @glMaterialfv(i32 %153, i32 %154, double* %155)
%157 = load i32, i32* @GL_FRONT
%158 = load i32, i32* @GL_SHININESS
%159 = getelementptr inbounds [1 x double], [1 x double]* %7, i64 0, i64 0
%160 = call i32 @glMaterialfv(i32 %157, i32 %158, double* %159)
%161 = load i32, i32* @GL_FRONT
%162 = load i32, i32* @GL_EMISSION
%163 = getelementptr inbounds [4 x double], [4 x double]* %1, i64 0, i64 0
%164 = call i32 @glMaterialfv(i32 %161, i32 %162, double* %163)
%165 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%166 = call i32 (...) @glPopMatrix()
%167 = call i32 (...) @glPushMatrix()
%168 = call i32 @glTranslatef(double 1.250000e+00, double 0.000000e+00, double 0.000000e+00)
%169 = load i32, i32* @GL_FRONT
%170 = load i32, i32* @GL_AMBIENT
%171 = getelementptr inbounds [4 x double], [4 x double]* %2, i64 0, i64 0
%172 = call i32 @glMaterialfv(i32 %169, i32 %170, double* %171)
%173 = load i32, i32* @GL_FRONT
%174 = load i32, i32* @GL_DIFFUSE
%175 = getelementptr inbounds [4 x double], [4 x double]* %4, i64 0, i64 0
%176 = call i32 @glMaterialfv(i32 %173, i32 %174, double* %175)
%177 = load i32, i32* @GL_FRONT
%178 = load i32, i32* @GL_SPECULAR
%179 = getelementptr inbounds [4 x double], [4 x double]* %5, i64 0, i64 0
%180 = call i32 @glMaterialfv(i32 %177, i32 %178, double* %179)
%181 = load i32, i32* @GL_FRONT
%182 = load i32, i32* @GL_SHININESS
%183 = getelementptr inbounds [1 x double], [1 x double]* %8, i64 0, i64 0
%184 = call i32 @glMaterialfv(i32 %181, i32 %182, double* %183)
%185 = load i32, i32* @GL_FRONT
%186 = load i32, i32* @GL_EMISSION
%187 = getelementptr inbounds [4 x double], [4 x double]* %1, i64 0, i64 0
%188 = call i32 @glMaterialfv(i32 %185, i32 %186, double* %187)
%189 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%190 = call i32 (...) @glPopMatrix()
%191 = call i32 (...) @glPushMatrix()
%192 = call i32 @glTranslatef(double 3.750000e+00, double 0.000000e+00, double 0.000000e+00)
%193 = load i32, i32* @GL_FRONT
%194 = load i32, i32* @GL_AMBIENT
%195 = getelementptr inbounds [4 x double], [4 x double]* %2, i64 0, i64 0
%196 = call i32 @glMaterialfv(i32 %193, i32 %194, double* %195)
%197 = load i32, i32* @GL_FRONT
%198 = load i32, i32* @GL_DIFFUSE
%199 = getelementptr inbounds [4 x double], [4 x double]* %4, i64 0, i64 0
%200 = call i32 @glMaterialfv(i32 %197, i32 %198, double* %199)
%201 = load i32, i32* @GL_FRONT
%202 = load i32, i32* @GL_SPECULAR
%203 = getelementptr inbounds [4 x double], [4 x double]* %1, i64 0, i64 0
%204 = call i32 @glMaterialfv(i32 %201, i32 %202, double* %203)
%205 = load i32, i32* @GL_FRONT
%206 = load i32, i32* @GL_SHININESS
%207 = getelementptr inbounds [1 x double], [1 x double]* %6, i64 0, i64 0
%208 = call i32 @glMaterialfv(i32 %205, i32 %206, double* %207)
%209 = load i32, i32* @GL_FRONT
%210 = load i32, i32* @GL_EMISSION
%211 = getelementptr inbounds [4 x double], [4 x double]* %9, i64 0, i64 0
%212 = call i32 @glMaterialfv(i32 %209, i32 %210, double* %211)
%213 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%214 = call i32 (...) @glPopMatrix()
%215 = call i32 (...) @glPushMatrix()
%216 = call i32 @glTranslatef(double -3.750000e+00, double -3.000000e+00, double 0.000000e+00)
%217 = load i32, i32* @GL_FRONT
%218 = load i32, i32* @GL_AMBIENT
%219 = getelementptr inbounds [4 x double], [4 x double]* %3, i64 0, i64 0
%220 = call i32 @glMaterialfv(i32 %217, i32 %218, double* %219)
%221 = load i32, i32* @GL_FRONT
%222 = load i32, i32* @GL_DIFFUSE
%223 = getelementptr inbounds [4 x double], [4 x double]* %4, i64 0, i64 0
%224 = call i32 @glMaterialfv(i32 %221, i32 %222, double* %223)
%225 = load i32, i32* @GL_FRONT
%226 = load i32, i32* @GL_SPECULAR
%227 = getelementptr inbounds [4 x double], [4 x double]* %1, i64 0, i64 0
%228 = call i32 @glMaterialfv(i32 %225, i32 %226, double* %227)
%229 = load i32, i32* @GL_FRONT
%230 = load i32, i32* @GL_SHININESS
%231 = getelementptr inbounds [1 x double], [1 x double]* %6, i64 0, i64 0
%232 = call i32 @glMaterialfv(i32 %229, i32 %230, double* %231)
%233 = load i32, i32* @GL_FRONT
%234 = load i32, i32* @GL_EMISSION
%235 = getelementptr inbounds [4 x double], [4 x double]* %1, i64 0, i64 0
%236 = call i32 @glMaterialfv(i32 %233, i32 %234, double* %235)
%237 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%238 = call i32 (...) @glPopMatrix()
%239 = call i32 (...) @glPushMatrix()
%240 = call i32 @glTranslatef(double -1.250000e+00, double -3.000000e+00, double 0.000000e+00)
%241 = load i32, i32* @GL_FRONT
%242 = load i32, i32* @GL_AMBIENT
%243 = getelementptr inbounds [4 x double], [4 x double]* %3, i64 0, i64 0
%244 = call i32 @glMaterialfv(i32 %241, i32 %242, double* %243)
%245 = load i32, i32* @GL_FRONT
%246 = load i32, i32* @GL_DIFFUSE
%247 = getelementptr inbounds [4 x double], [4 x double]* %4, i64 0, i64 0
%248 = call i32 @glMaterialfv(i32 %245, i32 %246, double* %247)
%249 = load i32, i32* @GL_FRONT
%250 = load i32, i32* @GL_SPECULAR
%251 = getelementptr inbounds [4 x double], [4 x double]* %5, i64 0, i64 0
%252 = call i32 @glMaterialfv(i32 %249, i32 %250, double* %251)
%253 = load i32, i32* @GL_FRONT
%254 = load i32, i32* @GL_SHININESS
%255 = getelementptr inbounds [1 x double], [1 x double]* %7, i64 0, i64 0
%256 = call i32 @glMaterialfv(i32 %253, i32 %254, double* %255)
%257 = load i32, i32* @GL_FRONT
%258 = load i32, i32* @GL_EMISSION
%259 = getelementptr inbounds [4 x double], [4 x double]* %1, i64 0, i64 0
%260 = call i32 @glMaterialfv(i32 %257, i32 %258, double* %259)
%261 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%262 = call i32 (...) @glPopMatrix()
%263 = call i32 (...) @glPushMatrix()
%264 = call i32 @glTranslatef(double 1.250000e+00, double -3.000000e+00, double 0.000000e+00)
%265 = load i32, i32* @GL_FRONT
%266 = load i32, i32* @GL_AMBIENT
%267 = getelementptr inbounds [4 x double], [4 x double]* %3, i64 0, i64 0
%268 = call i32 @glMaterialfv(i32 %265, i32 %266, double* %267)
%269 = load i32, i32* @GL_FRONT
%270 = load i32, i32* @GL_DIFFUSE
%271 = getelementptr inbounds [4 x double], [4 x double]* %4, i64 0, i64 0
%272 = call i32 @glMaterialfv(i32 %269, i32 %270, double* %271)
%273 = load i32, i32* @GL_FRONT
%274 = load i32, i32* @GL_SPECULAR
%275 = getelementptr inbounds [4 x double], [4 x double]* %5, i64 0, i64 0
%276 = call i32 @glMaterialfv(i32 %273, i32 %274, double* %275)
%277 = load i32, i32* @GL_FRONT
%278 = load i32, i32* @GL_SHININESS
%279 = getelementptr inbounds [1 x double], [1 x double]* %8, i64 0, i64 0
%280 = call i32 @glMaterialfv(i32 %277, i32 %278, double* %279)
%281 = load i32, i32* @GL_FRONT
%282 = load i32, i32* @GL_EMISSION
%283 = getelementptr inbounds [4 x double], [4 x double]* %1, i64 0, i64 0
%284 = call i32 @glMaterialfv(i32 %281, i32 %282, double* %283)
%285 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%286 = call i32 (...) @glPopMatrix()
%287 = call i32 (...) @glPushMatrix()
%288 = call i32 @glTranslatef(double 3.750000e+00, double -3.000000e+00, double 0.000000e+00)
%289 = load i32, i32* @GL_FRONT
%290 = load i32, i32* @GL_AMBIENT
%291 = getelementptr inbounds [4 x double], [4 x double]* %3, i64 0, i64 0
%292 = call i32 @glMaterialfv(i32 %289, i32 %290, double* %291)
%293 = load i32, i32* @GL_FRONT
%294 = load i32, i32* @GL_DIFFUSE
%295 = getelementptr inbounds [4 x double], [4 x double]* %4, i64 0, i64 0
%296 = call i32 @glMaterialfv(i32 %293, i32 %294, double* %295)
%297 = load i32, i32* @GL_FRONT
%298 = load i32, i32* @GL_SPECULAR
%299 = getelementptr inbounds [4 x double], [4 x double]* %1, i64 0, i64 0
%300 = call i32 @glMaterialfv(i32 %297, i32 %298, double* %299)
%301 = load i32, i32* @GL_FRONT
%302 = load i32, i32* @GL_SHININESS
%303 = getelementptr inbounds [1 x double], [1 x double]* %6, i64 0, i64 0
%304 = call i32 @glMaterialfv(i32 %301, i32 %302, double* %303)
%305 = load i32, i32* @GL_FRONT
%306 = load i32, i32* @GL_EMISSION
%307 = getelementptr inbounds [4 x double], [4 x double]* %9, i64 0, i64 0
%308 = call i32 @glMaterialfv(i32 %305, i32 %306, double* %307)
%309 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%310 = call i32 (...) @glPopMatrix()
%311 = call i32 (...) @glFlush()
ret void
}

LLVM IR (-O2):
@__const.display.no_mat = [4 x double] [double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 1.000000e+00]
@__const.display.mat_ambient = [4 x double] [double 0x3FE6666666666666, double 0x3FE6666666666666, double 0x3FE6666666666666, double 1.000000e+00]
@__const.display.mat_ambient_color = [4 x double] [double 8.000000e-01, double 8.000000e-01, double 2.000000e-01, double 1.000000e+00]
@__const.display.mat_diffuse = [4 x double] [double 1.000000e-01, double 5.000000e-01, double 8.000000e-01, double 1.000000e+00]
@__const.display.mat_specular = [4 x double] [double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00]
@__const.display.mat_emission = [4 x double] [double 3.000000e-01, double 2.000000e-01, double 2.000000e-01, double 0.000000e+00]
@GL_COLOR_BUFFER_BIT = global i32 0
@GL_DEPTH_BUFFER_BIT = global i32 0
@GL_FRONT = global i32 0
@GL_AMBIENT = global i32 0
@GL_DIFFUSE = global i32 0
@GL_SPECULAR = global i32 0
@GL_SHININESS = global i32 0
@GL_EMISSION = global i32 0
define void @display() {
%1 = alloca [4 x double]
%2 = alloca [4 x double]
%3 = alloca [4 x double]
%4 = alloca [4 x double]
%5 = alloca [4 x double]
%6 = alloca [1 x double]
%7 = alloca [1 x double]
%8 = alloca [1 x double]
%9 = alloca [4 x double]
%10 = bitcast [4 x double]* %1 to i8*
%11 = bitcast [4 x double]* %2 to i8*
%12 = bitcast [4 x double]* %3 to i8*
%13 = bitcast [4 x double]* %4 to i8*
%14 = bitcast [4 x double]* %5 to i8*
%15 = bitcast [1 x double]* %6 to i8*
%16 = bitcast [1 x double]* %6 to i64*
store i64 0, i64* %16
%17 = bitcast [1 x double]* %7 to i8*
%18 = bitcast [1 x double]* %7 to i64*
store i64 4617315517961601024, i64* %18
%19 = bitcast [1 x double]* %8 to i8*
%20 = bitcast [1 x double]* %8 to i64*
store i64 4636737291354636288, i64* %20
%21 = bitcast [4 x double]* %9 to i8*
%22 = load i32, i32* @GL_COLOR_BUFFER_BIT
%23 = load i32, i32* @GL_DEPTH_BUFFER_BIT
%24 = or i32 %23, %22
%25 = tail call i32 @glClear(i32 %24)
%26 = tail call i32 (...) @glPushMatrix()
%27 = tail call i32 @glTranslatef(double -3.750000e+00, double 3.000000e+00, double 0.000000e+00)
%28 = load i32, i32* @GL_FRONT
%29 = load i32, i32* @GL_AMBIENT
%30 = getelementptr inbounds [4 x double], [4 x double]* %1, i64 0, i64 0
%31 = call i32 @glMaterialfv(i32 %28, i32 %29, double* %30)
%32 = load i32, i32* @GL_FRONT
%33 = load i32, i32* @GL_DIFFUSE
%34 = getelementptr inbounds [4 x double], [4 x double]* %4, i64 0, i64 0
%35 = call i32 @glMaterialfv(i32 %32, i32 %33, double* %34)
%36 = load i32, i32* @GL_FRONT
%37 = load i32, i32* @GL_SPECULAR
%38 = call i32 @glMaterialfv(i32 %36, i32 %37, double* %30)
%39 = load i32, i32* @GL_FRONT
%40 = load i32, i32* @GL_SHININESS
%41 = getelementptr inbounds [1 x double], [1 x double]* %6, i64 0, i64 0
%42 = call i32 @glMaterialfv(i32 %39, i32 %40, double* %41)
%43 = load i32, i32* @GL_FRONT
%44 = load i32, i32* @GL_EMISSION
%45 = call i32 @glMaterialfv(i32 %43, i32 %44, double* %30)
%46 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%47 = call i32 (...) @glPopMatrix()
%48 = call i32 (...) @glPushMatrix()
%49 = call i32 @glTranslatef(double -1.250000e+00, double 3.000000e+00, double 0.000000e+00)
%50 = load i32, i32* @GL_FRONT
%51 = load i32, i32* @GL_AMBIENT
%52 = call i32 @glMaterialfv(i32 %50, i32 %51, double* %30)
%53 = load i32, i32* @GL_FRONT
%54 = load i32, i32* @GL_DIFFUSE
%55 = call i32 @glMaterialfv(i32 %53, i32 %54, double* %34)
%56 = load i32, i32* @GL_FRONT
%57 = load i32, i32* @GL_SPECULAR
%58 = getelementptr inbounds [4 x double], [4 x double]* %5, i64 0, i64 0
%59 = call i32 @glMaterialfv(i32 %56, i32 %57, double* %58)
%60 = load i32, i32* @GL_FRONT
%61 = load i32, i32* @GL_SHININESS
%62 = getelementptr inbounds [1 x double], [1 x double]* %7, i64 0, i64 0
%63 = call i32 @glMaterialfv(i32 %60, i32 %61, double* %62)
%64 = load i32, i32* @GL_FRONT
%65 = load i32, i32* @GL_EMISSION
%66 = call i32 @glMaterialfv(i32 %64, i32 %65, double* %30)
%67 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%68 = call i32 (...) @glPopMatrix()
%69 = call i32 (...) @glPushMatrix()
%70 = call i32 @glTranslatef(double 1.250000e+00, double 3.000000e+00, double 0.000000e+00)
%71 = load i32, i32* @GL_FRONT
%72 = load i32, i32* @GL_AMBIENT
%73 = call i32 @glMaterialfv(i32 %71, i32 %72, double* %30)
%74 = load i32, i32* @GL_FRONT
%75 = load i32, i32* @GL_DIFFUSE
%76 = call i32 @glMaterialfv(i32 %74, i32 %75, double* %34)
%77 = load i32, i32* @GL_FRONT
%78 = load i32, i32* @GL_SPECULAR
%79 = call i32 @glMaterialfv(i32 %77, i32 %78, double* %58)
%80 = load i32, i32* @GL_FRONT
%81 = load i32, i32* @GL_SHININESS
%82 = getelementptr inbounds [1 x double], [1 x double]* %8, i64 0, i64 0
%83 = call i32 @glMaterialfv(i32 %80, i32 %81, double* %82)
%84 = load i32, i32* @GL_FRONT
%85 = load i32, i32* @GL_EMISSION
%86 = call i32 @glMaterialfv(i32 %84, i32 %85, double* %30)
%87 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%88 = call i32 (...) @glPopMatrix()
%89 = call i32 (...) @glPushMatrix()
%90 = call i32 @glTranslatef(double 3.750000e+00, double 3.000000e+00, double 0.000000e+00)
%91 = load i32, i32* @GL_FRONT
%92 = load i32, i32* @GL_AMBIENT
%93 = call i32 @glMaterialfv(i32 %91, i32 %92, double* %30)
%94 = load i32, i32* @GL_FRONT
%95 = load i32, i32* @GL_DIFFUSE
%96 = call i32 @glMaterialfv(i32 %94, i32 %95, double* %34)
%97 = load i32, i32* @GL_FRONT
%98 = load i32, i32* @GL_SPECULAR
%99 = call i32 @glMaterialfv(i32 %97, i32 %98, double* %30)
%100 = load i32, i32* @GL_FRONT
%101 = load i32, i32* @GL_SHININESS
%102 = call i32 @glMaterialfv(i32 %100, i32 %101, double* %41)
%103 = load i32, i32* @GL_FRONT
%104 = load i32, i32* @GL_EMISSION
%105 = getelementptr inbounds [4 x double], [4 x double]* %9, i64 0, i64 0
%106 = call i32 @glMaterialfv(i32 %103, i32 %104, double* %105)
%107 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%108 = call i32 (...) @glPopMatrix()
%109 = call i32 (...) @glPushMatrix()
%110 = call i32 @glTranslatef(double -3.750000e+00, double 0.000000e+00, double 0.000000e+00)
%111 = load i32, i32* @GL_FRONT
%112 = load i32, i32* @GL_AMBIENT
%113 = getelementptr inbounds [4 x double], [4 x double]* %2, i64 0, i64 0
%114 = call i32 @glMaterialfv(i32 %111, i32 %112, double* %113)
%115 = load i32, i32* @GL_FRONT
%116 = load i32, i32* @GL_DIFFUSE
%117 = call i32 @glMaterialfv(i32 %115, i32 %116, double* %34)
%118 = load i32, i32* @GL_FRONT
%119 = load i32, i32* @GL_SPECULAR
%120 = call i32 @glMaterialfv(i32 %118, i32 %119, double* %30)
%121 = load i32, i32* @GL_FRONT
%122 = load i32, i32* @GL_SHININESS
%123 = call i32 @glMaterialfv(i32 %121, i32 %122, double* %41)
%124 = load i32, i32* @GL_FRONT
%125 = load i32, i32* @GL_EMISSION
%126 = call i32 @glMaterialfv(i32 %124, i32 %125, double* %30)
%127 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%128 = call i32 (...) @glPopMatrix()
%129 = call i32 (...) @glPushMatrix()
%130 = call i32 @glTranslatef(double -1.250000e+00, double 0.000000e+00, double 0.000000e+00)
%131 = load i32, i32* @GL_FRONT
%132 = load i32, i32* @GL_AMBIENT
%133 = call i32 @glMaterialfv(i32 %131, i32 %132, double* %113)
%134 = load i32, i32* @GL_FRONT
%135 = load i32, i32* @GL_DIFFUSE
%136 = call i32 @glMaterialfv(i32 %134, i32 %135, double* %34)
%137 = load i32, i32* @GL_FRONT
%138 = load i32, i32* @GL_SPECULAR
%139 = call i32 @glMaterialfv(i32 %137, i32 %138, double* %58)
%140 = load i32, i32* @GL_FRONT
%141 = load i32, i32* @GL_SHININESS
%142 = call i32 @glMaterialfv(i32 %140, i32 %141, double* %62)
%143 = load i32, i32* @GL_FRONT
%144 = load i32, i32* @GL_EMISSION
%145 = call i32 @glMaterialfv(i32 %143, i32 %144, double* %30)
%146 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%147 = call i32 (...) @glPopMatrix()
%148 = call i32 (...) @glPushMatrix()
%149 = call i32 @glTranslatef(double 1.250000e+00, double 0.000000e+00, double 0.000000e+00)
%150 = load i32, i32* @GL_FRONT
%151 = load i32, i32* @GL_AMBIENT
%152 = call i32 @glMaterialfv(i32 %150, i32 %151, double* %113)
%153 = load i32, i32* @GL_FRONT
%154 = load i32, i32* @GL_DIFFUSE
%155 = call i32 @glMaterialfv(i32 %153, i32 %154, double* %34)
%156 = load i32, i32* @GL_FRONT
%157 = load i32, i32* @GL_SPECULAR
%158 = call i32 @glMaterialfv(i32 %156, i32 %157, double* %58)
%159 = load i32, i32* @GL_FRONT
%160 = load i32, i32* @GL_SHININESS
%161 = call i32 @glMaterialfv(i32 %159, i32 %160, double* %82)
%162 = load i32, i32* @GL_FRONT
%163 = load i32, i32* @GL_EMISSION
%164 = call i32 @glMaterialfv(i32 %162, i32 %163, double* %30)
%165 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%166 = call i32 (...) @glPopMatrix()
%167 = call i32 (...) @glPushMatrix()
%168 = call i32 @glTranslatef(double 3.750000e+00, double 0.000000e+00, double 0.000000e+00)
%169 = load i32, i32* @GL_FRONT
%170 = load i32, i32* @GL_AMBIENT
%171 = call i32 @glMaterialfv(i32 %169, i32 %170, double* %113)
%172 = load i32, i32* @GL_FRONT
%173 = load i32, i32* @GL_DIFFUSE
%174 = call i32 @glMaterialfv(i32 %172, i32 %173, double* %34)
%175 = load i32, i32* @GL_FRONT
%176 = load i32, i32* @GL_SPECULAR
%177 = call i32 @glMaterialfv(i32 %175, i32 %176, double* %30)
%178 = load i32, i32* @GL_FRONT
%179 = load i32, i32* @GL_SHININESS
%180 = call i32 @glMaterialfv(i32 %178, i32 %179, double* %41)
%181 = load i32, i32* @GL_FRONT
%182 = load i32, i32* @GL_EMISSION
%183 = call i32 @glMaterialfv(i32 %181, i32 %182, double* %105)
%184 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%185 = call i32 (...) @glPopMatrix()
%186 = call i32 (...) @glPushMatrix()
%187 = call i32 @glTranslatef(double -3.750000e+00, double -3.000000e+00, double 0.000000e+00)
%188 = load i32, i32* @GL_FRONT
%189 = load i32, i32* @GL_AMBIENT
%190 = getelementptr inbounds [4 x double], [4 x double]* %3, i64 0, i64 0
%191 = call i32 @glMaterialfv(i32 %188, i32 %189, double* %190)
%192 = load i32, i32* @GL_FRONT
%193 = load i32, i32* @GL_DIFFUSE
%194 = call i32 @glMaterialfv(i32 %192, i32 %193, double* %34)
%195 = load i32, i32* @GL_FRONT
%196 = load i32, i32* @GL_SPECULAR
%197 = call i32 @glMaterialfv(i32 %195, i32 %196, double* %30)
%198 = load i32, i32* @GL_FRONT
%199 = load i32, i32* @GL_SHININESS
%200 = call i32 @glMaterialfv(i32 %198, i32 %199, double* %41)
%201 = load i32, i32* @GL_FRONT
%202 = load i32, i32* @GL_EMISSION
%203 = call i32 @glMaterialfv(i32 %201, i32 %202, double* %30)
%204 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%205 = call i32 (...) @glPopMatrix()
%206 = call i32 (...) @glPushMatrix()
%207 = call i32 @glTranslatef(double -1.250000e+00, double -3.000000e+00, double 0.000000e+00)
%208 = load i32, i32* @GL_FRONT
%209 = load i32, i32* @GL_AMBIENT
%210 = call i32 @glMaterialfv(i32 %208, i32 %209, double* %190)
%211 = load i32, i32* @GL_FRONT
%212 = load i32, i32* @GL_DIFFUSE
%213 = call i32 @glMaterialfv(i32 %211, i32 %212, double* %34)
%214 = load i32, i32* @GL_FRONT
%215 = load i32, i32* @GL_SPECULAR
%216 = call i32 @glMaterialfv(i32 %214, i32 %215, double* %58)
%217 = load i32, i32* @GL_FRONT
%218 = load i32, i32* @GL_SHININESS
%219 = call i32 @glMaterialfv(i32 %217, i32 %218, double* %62)
%220 = load i32, i32* @GL_FRONT
%221 = load i32, i32* @GL_EMISSION
%222 = call i32 @glMaterialfv(i32 %220, i32 %221, double* %30)
%223 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%224 = call i32 (...) @glPopMatrix()
%225 = call i32 (...) @glPushMatrix()
%226 = call i32 @glTranslatef(double 1.250000e+00, double -3.000000e+00, double 0.000000e+00)
%227 = load i32, i32* @GL_FRONT
%228 = load i32, i32* @GL_AMBIENT
%229 = call i32 @glMaterialfv(i32 %227, i32 %228, double* %190)
%230 = load i32, i32* @GL_FRONT
%231 = load i32, i32* @GL_DIFFUSE
%232 = call i32 @glMaterialfv(i32 %230, i32 %231, double* %34)
%233 = load i32, i32* @GL_FRONT
%234 = load i32, i32* @GL_SPECULAR
%235 = call i32 @glMaterialfv(i32 %233, i32 %234, double* %58)
%236 = load i32, i32* @GL_FRONT
%237 = load i32, i32* @GL_SHININESS
%238 = call i32 @glMaterialfv(i32 %236, i32 %237, double* %82)
%239 = load i32, i32* @GL_FRONT
%240 = load i32, i32* @GL_EMISSION
%241 = call i32 @glMaterialfv(i32 %239, i32 %240, double* %30)
%242 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%243 = call i32 (...) @glPopMatrix()
%244 = call i32 (...) @glPushMatrix()
%245 = call i32 @glTranslatef(double 3.750000e+00, double -3.000000e+00, double 0.000000e+00)
%246 = load i32, i32* @GL_FRONT
%247 = load i32, i32* @GL_AMBIENT
%248 = call i32 @glMaterialfv(i32 %246, i32 %247, double* %190)
%249 = load i32, i32* @GL_FRONT
%250 = load i32, i32* @GL_DIFFUSE
%251 = call i32 @glMaterialfv(i32 %249, i32 %250, double* %34)
%252 = load i32, i32* @GL_FRONT
%253 = load i32, i32* @GL_SPECULAR
%254 = call i32 @glMaterialfv(i32 %252, i32 %253, double* %30)
%255 = load i32, i32* @GL_FRONT
%256 = load i32, i32* @GL_SHININESS
%257 = call i32 @glMaterialfv(i32 %255, i32 %256, double* %41)
%258 = load i32, i32* @GL_FRONT
%259 = load i32, i32* @GL_EMISSION
%260 = call i32 @glMaterialfv(i32 %258, i32 %259, double* %105)
%261 = call i32 @glutSolidSphere(double 1.000000e+00, i32 16, i32 16)
%262 = call i32 (...) @glPopMatrix()
%263 = call i32 (...) @glFlush()
ret void
}