#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 int GLubyte;

/* Variables and functions */
int /*<<< orphan*/ GL_COLOR_BUFFER_BIT;
int /*<<< orphan*/ GL_POLYGON_STIPPLE;
int /*<<< orphan*/ glClear(int /*<<< orphan*/);
int /*<<< orphan*/ glDisable(int /*<<< orphan*/);
int /*<<< orphan*/ glEnable(int /*<<< orphan*/);
int /*<<< orphan*/ glFlush();
int /*<<< orphan*/ glPolygonStipple(int *);
int /*<<< orphan*/ glRectf(float, float, float, float);
void stipple_display(void) {
  static GLubyte mask[128] = {
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x01, 0xC0,
      0x06, 0xC0, 0x03, 0x60, 0x04, 0x60, 0x06, 0x20, 0x04, 0x30, 0x0C, 0x20,
      0x04, 0x18, 0x18, 0x20, 0x04, 0x0C, 0x30, 0x20, 0x04, 0x06, 0x60, 0x20,
      0x44, 0x03, 0xC0, 0x22, 0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22,
      0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22, 0x44, 0x01, 0x80, 0x22,
      0x44, 0x01, 0x80, 0x22, 0x66, 0x01, 0x80, 0x66, 0x33, 0x01, 0x80, 0xCC,
      0x19, 0x81, 0x81, 0x98, 0x0C, 0xC1, 0x83, 0x30, 0x07, 0xE1, 0x87, 0xE0,
      0x03, 0x3F, 0xFC, 0xC0, 0x03, 0x31, 0x8C, 0xC0, 0x03, 0x3F, 0xFC, 0xC0,
      0x06, 0x64, 0x26, 0x60, 0x0C, 0xCC, 0x33, 0x30, 0x18, 0xCC, 0x33, 0x18,
      0x10, 0xC4, 0x23, 0x08, 0x10, 0x63, 0xC6, 0x08, 0x10, 0x30, 0x0C, 0x08,
      0x10, 0x18, 0x18, 0x08, 0x10, 0x00, 0x00, 0x08};
  glClear(GL_COLOR_BUFFER_BIT);
  glEnable(GL_POLYGON_STIPPLE);
  glPolygonStipple(mask);
  glRectf(-0.5f, -0.5f, 0.0f, 0.0f);
  glDisable(GL_POLYGON_STIPPLE);
  glRectf(0.0f, 0.0f, 0.5f, 0.5f);
  glFlush();
}


x86 assembly (clang, -O0):
<stipple_display>:
push   %rbp
mov    %rsp,%rbp
mov    0x2e6d(%rip),%rax
mov    (%rax),%edi
call   1040 <glClear@plt>
mov    0x2e7f(%rip),%rax
mov    (%rax),%edi
call   1050 <glEnable@plt>
lea    0x2ed9(%rip),%rdi
call   1030 <glPolygonStipple@plt>
movss  0xe70(%rip),%xmm1
xorps  %xmm3,%xmm3
movaps %xmm1,%xmm0
movaps %xmm3,%xmm2
call   1060 <glRectf@plt>
mov    0x2e4f(%rip),%rax
mov    (%rax),%edi
call   1080 <glDisable@plt>
xorps  %xmm1,%xmm1
movss  0xe45(%rip),%xmm3
movaps %xmm1,%xmm0
movaps %xmm3,%xmm2
call   1060 <glRectf@plt>
mov    $0x0,%al
call   1070 <glFlush@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<stipple_display>:
push   %rbx
mov    0x2e70(%rip),%rax
mov    (%rax),%edi
call   1040 <glClear@plt>
mov    0x2e82(%rip),%rbx
mov    (%rbx),%edi
call   1050 <glEnable@plt>
lea    0x2edc(%rip),%rdi
call   1030 <glPolygonStipple@plt>
movss  0xe6f(%rip),%xmm0
xorps  %xmm2,%xmm2
xorps  %xmm3,%xmm3
movaps %xmm0,%xmm1
call   1060 <glRectf@plt>
mov    (%rbx),%edi
call   1080 <glDisable@plt>
movss  0xe56(%rip),%xmm2
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
movaps %xmm2,%xmm3
call   1060 <glRectf@plt>
xor    %eax,%eax
pop    %rbx
jmp    1070 <glFlush@plt>

LLVM IR (-O0):
@stipple_display.mask = internal global [128 x i32] [i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 3, i32 128, i32 1, i32 192, i32 6, i32 192, i32 3, i32 96, i32 4, i32 96, i32 6, i32 32, i32 4, i32 48, i32 12, i32 32, i32 4, i32 24, i32 24, i32 32, i32 4, i32 12, i32 48, i32 32, i32 4, i32 6, i32 96, i32 32, i32 68, i32 3, i32 192, i32 34, i32 68, i32 1, i32 128, i32 34, i32 68, i32 1, i32 128, i32 34, i32 68, i32 1, i32 128, i32 34, i32 68, i32 1, i32 128, i32 34, i32 68, i32 1, i32 128, i32 34, i32 68, i32 1, i32 128, i32 34, i32 102, i32 1, i32 128, i32 102, i32 51, i32 1, i32 128, i32 204, i32 25, i32 129, i32 129, i32 152, i32 12, i32 193, i32 131, i32 48, i32 7, i32 225, i32 135, i32 224, i32 3, i32 63, i32 252, i32 192, i32 3, i32 49, i32 140, i32 192, i32 3, i32 63, i32 252, i32 192, i32 6, i32 100, i32 38, i32 96, i32 12, i32 204, i32 51, i32 48, i32 24, i32 204, i32 51, i32 24, i32 16, i32 196, i32 35, i32 8, i32 16, i32 99, i32 198, i32 8, i32 16, i32 48, i32 12, i32 8, i32 16, i32 24, i32 24, i32 8, i32 16, i32 0, i32 0, i32 8]
@GL_COLOR_BUFFER_BIT = global i32 0
@GL_POLYGON_STIPPLE = global i32 0
define void @stipple_display() {
%1 = load i32, i32* @GL_COLOR_BUFFER_BIT
%2 = call i32 @glClear(i32 %1)
%3 = load i32, i32* @GL_POLYGON_STIPPLE
%4 = call i32 @glEnable(i32 %3)
%5 = call i32 @glPolygonStipple(i32* getelementptr inbounds ([128 x i32], [128 x i32]* @stipple_display.mask, i64 0, i64 0))
%6 = call i32 @glRectf(float -5.000000e-01, float -5.000000e-01, float 0.000000e+00, float 0.000000e+00)
%7 = load i32, i32* @GL_POLYGON_STIPPLE
%8 = call i32 @glDisable(i32 %7)
%9 = call i32 @glRectf(float 0.000000e+00, float 0.000000e+00, float 5.000000e-01, float 5.000000e-01)
%10 = call i32 (...) @glFlush()
ret void
}

LLVM IR (-O2):
@stipple_display.mask = internal global [128 x i32] [i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 3, i32 128, i32 1, i32 192, i32 6, i32 192, i32 3, i32 96, i32 4, i32 96, i32 6, i32 32, i32 4, i32 48, i32 12, i32 32, i32 4, i32 24, i32 24, i32 32, i32 4, i32 12, i32 48, i32 32, i32 4, i32 6, i32 96, i32 32, i32 68, i32 3, i32 192, i32 34, i32 68, i32 1, i32 128, i32 34, i32 68, i32 1, i32 128, i32 34, i32 68, i32 1, i32 128, i32 34, i32 68, i32 1, i32 128, i32 34, i32 68, i32 1, i32 128, i32 34, i32 68, i32 1, i32 128, i32 34, i32 102, i32 1, i32 128, i32 102, i32 51, i32 1, i32 128, i32 204, i32 25, i32 129, i32 129, i32 152, i32 12, i32 193, i32 131, i32 48, i32 7, i32 225, i32 135, i32 224, i32 3, i32 63, i32 252, i32 192, i32 3, i32 49, i32 140, i32 192, i32 3, i32 63, i32 252, i32 192, i32 6, i32 100, i32 38, i32 96, i32 12, i32 204, i32 51, i32 48, i32 24, i32 204, i32 51, i32 24, i32 16, i32 196, i32 35, i32 8, i32 16, i32 99, i32 198, i32 8, i32 16, i32 48, i32 12, i32 8, i32 16, i32 24, i32 24, i32 8, i32 16, i32 0, i32 0, i32 8]
@GL_COLOR_BUFFER_BIT = global i32 0
@GL_POLYGON_STIPPLE = global i32 0
define void @stipple_display() {
%1 = load i32, i32* @GL_COLOR_BUFFER_BIT
%2 = tail call i32 @glClear(i32 %1)
%3 = load i32, i32* @GL_POLYGON_STIPPLE
%4 = tail call i32 @glEnable(i32 %3)
%5 = tail call i32 @glPolygonStipple(i32* getelementptr inbounds ([128 x i32], [128 x i32]* @stipple_display.mask, i64 0, i64 0))
%6 = tail call i32 @glRectf(float -5.000000e-01, float -5.000000e-01, float 0.000000e+00, float 0.000000e+00)
%7 = load i32, i32* @GL_POLYGON_STIPPLE
%8 = tail call i32 @glDisable(i32 %7)
%9 = tail call i32 @glRectf(float 0.000000e+00, float 0.000000e+00, float 5.000000e-01, float 5.000000e-01)
%10 = tail call i32 (...) @glFlush()
ret void
}