#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*/ delay(int);
int /*<<< orphan*/ led_on_off(int, int);
void star_wars() {
  int play_fist_1[9][2] = {{440, 500}, {440, 500}, {440, 500},
                           {349, 350}, {523, 150}, {440, 500},
                           {349, 350}, {523, 150}, {440, 650}};
  for (int i = 0; i < 9; i++) {
    led_on_off(play_fist_1[i][0], play_fist_1[i][1]);
  }
  delay(500);
  int play_fist_2[9][2] = {{659, 500}, {659, 500}, {659, 500},
                           {698, 350}, {523, 150}, {415, 500},
                           {349, 350}, {523, 150}, {440, 650}};
  for (int i = 0; i < 9; i++) {
    led_on_off(play_fist_2[i][0], play_fist_2[i][1]);
  }
  delay(500);
  int play_second_1[9][2] = {{880, 500}, {440, 300}, {440, 150},
                             {880, 500}, {830, 325}, {784, 175},
                             {740, 125}, {698, 125}, {740, 250}};
  for (int i = 0; i < 9; i++) {
    led_on_off(play_second_1[i][0], play_second_1[i][1]);
  }
  delay(325);
  int play_second_2[7][2] = {{455, 250}, {622, 500}, {587, 325}, {554, 175},
                             {523, 125}, {466, 125}, {523, 250}};
  for (int i = 0; i < 7; i++) {
    led_on_off(play_second_2[i][0], play_second_2[i][1]);
  }
  delay(350);
  int play_variant_1[8][2] = {{349, 250}, {415, 500}, {349, 350}, {440, 125},
                              {523, 500}, {440, 375}, {523, 125}, {659, 650}};
  for (int i = 0; i < 8; i++) {
    led_on_off(play_variant_1[i][0], play_variant_1[i][1]);
  }
  delay(500);
  for (int i = 0; i < 9; i++) {
    led_on_off(play_second_1[i][0], play_second_1[i][1]);
  }
  delay(325);
  for (int i = 0; i < 7; i++) {
    led_on_off(play_second_2[i][0], play_second_2[i][1]);
  }
  delay(350);
  int play_variant_2[8][2] = {{349, 250}, {415, 500}, {349, 375}, {523, 125},
                              {440, 500}, {349, 375}, {523, 125}, {440, 650}};
  for (int i = 0; i < 8; i++) {
    led_on_off(play_variant_2[i][0], play_variant_2[i][1]);
  }
  delay(650);
}


x86 assembly (clang, -O0):
<star_wars>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1e0,%rsp
lea    -0x50(%rbp),%rdi
lea    0xeba(%rip),%rsi
mov    $0x48,%edx
call   1040 <memcpy@plt>
movl   $0x0,-0x54(%rbp)
cmpl   $0x9,-0x54(%rbp)
jge    1184 <star_wars+0x54>
movslq -0x54(%rbp),%rax
mov    -0x50(%rbp,%rax,8),%edi
movslq -0x54(%rbp),%rax
mov    -0x4c(%rbp,%rax,8),%esi
call   1050 <led_on_off@plt>
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x54(%rbp)
jmp    1157 <star_wars+0x27>
mov    $0x1f4,%edi
call   1030 <delay@plt>
lea    -0xa0(%rbp),%rdi
lea    0xeb4(%rip),%rsi
mov    $0x48,%edx
call   1040 <memcpy@plt>
movl   $0x0,-0xa4(%rbp)
cmpl   $0x9,-0xa4(%rbp)
jge    11f2 <star_wars+0xc2>
movslq -0xa4(%rbp),%rax
mov    -0xa0(%rbp,%rax,8),%edi
movslq -0xa4(%rbp),%rax
mov    -0x9c(%rbp,%rax,8),%esi
call   1050 <led_on_off@plt>
mov    -0xa4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xa4(%rbp)
jmp    11b0 <star_wars+0x80>
mov    $0x1f4,%edi
call   1030 <delay@plt>
lea    -0xf0(%rbp),%rdi
lea    0xe96(%rip),%rsi
mov    $0x48,%edx
call   1040 <memcpy@plt>
movl   $0x0,-0xf4(%rbp)
cmpl   $0x9,-0xf4(%rbp)
jge    1260 <star_wars+0x130>
movslq -0xf4(%rbp),%rax
mov    -0xf0(%rbp,%rax,8),%edi
movslq -0xf4(%rbp),%rax
mov    -0xec(%rbp,%rax,8),%esi
call   1050 <led_on_off@plt>
mov    -0xf4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xf4(%rbp)
jmp    121e <star_wars+0xee>
mov    $0x145,%edi
call   1030 <delay@plt>
lea    -0x130(%rbp),%rdi
lea    0xe78(%rip),%rsi
mov    $0x38,%edx
call   1040 <memcpy@plt>
movl   $0x0,-0x134(%rbp)
cmpl   $0x7,-0x134(%rbp)
jge    12ce <star_wars+0x19e>
movslq -0x134(%rbp),%rax
mov    -0x130(%rbp,%rax,8),%edi
movslq -0x134(%rbp),%rax
mov    -0x12c(%rbp,%rax,8),%esi
call   1050 <led_on_off@plt>
mov    -0x134(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x134(%rbp)
jmp    128c <star_wars+0x15c>
mov    $0x15e,%edi
call   1030 <delay@plt>
lea    -0x180(%rbp),%rdi
lea    0xe4a(%rip),%rsi
mov    $0x40,%edx
call   1040 <memcpy@plt>
movl   $0x0,-0x184(%rbp)
cmpl   $0x8,-0x184(%rbp)
jge    133c <star_wars+0x20c>
movslq -0x184(%rbp),%rax
mov    -0x180(%rbp,%rax,8),%edi
movslq -0x184(%rbp),%rax
mov    -0x17c(%rbp,%rax,8),%esi
call   1050 <led_on_off@plt>
mov    -0x184(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x184(%rbp)
jmp    12fa <star_wars+0x1ca>
mov    $0x1f4,%edi
call   1030 <delay@plt>
movl   $0x0,-0x188(%rbp)
cmpl   $0x9,-0x188(%rbp)
jge    1392 <star_wars+0x262>
movslq -0x188(%rbp),%rax
mov    -0xf0(%rbp,%rax,8),%edi
movslq -0x188(%rbp),%rax
mov    -0xec(%rbp,%rax,8),%esi
call   1050 <led_on_off@plt>
mov    -0x188(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x188(%rbp)
jmp    1350 <star_wars+0x220>
mov    $0x145,%edi
call   1030 <delay@plt>
movl   $0x0,-0x18c(%rbp)
cmpl   $0x7,-0x18c(%rbp)
jge    13e8 <star_wars+0x2b8>
movslq -0x18c(%rbp),%rax
mov    -0x130(%rbp,%rax,8),%edi
movslq -0x18c(%rbp),%rax
mov    -0x12c(%rbp,%rax,8),%esi
call   1050 <led_on_off@plt>
mov    -0x18c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18c(%rbp)
jmp    13a6 <star_wars+0x276>
mov    $0x15e,%edi
call   1030 <delay@plt>
lea    -0x1d0(%rbp),%rdi
lea    0xd70(%rip),%rsi
mov    $0x40,%edx
call   1040 <memcpy@plt>
movl   $0x0,-0x1d4(%rbp)
cmpl   $0x8,-0x1d4(%rbp)
jge    1456 <star_wars+0x326>
movslq -0x1d4(%rbp),%rax
mov    -0x1d0(%rbp,%rax,8),%edi
movslq -0x1d4(%rbp),%rax
mov    -0x1cc(%rbp,%rax,8),%esi
call   1050 <led_on_off@plt>
mov    -0x1d4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1d4(%rbp)
jmp    1414 <star_wars+0x2e4>
mov    $0x28a,%edi
call   1030 <delay@plt>
add    $0x1e0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<star_wars>:
push   %rax
mov    $0x1b8,%edi
mov    $0x1f4,%esi
call   1040 <led_on_off@plt>
mov    $0x1b8,%edi
mov    $0x1f4,%esi
call   1040 <led_on_off@plt>
mov    $0x1b8,%edi
mov    $0x1f4,%esi
call   1040 <led_on_off@plt>
mov    $0x15d,%edi
mov    $0x15e,%esi
call   1040 <led_on_off@plt>
mov    $0x20b,%edi
mov    $0x96,%esi
call   1040 <led_on_off@plt>
mov    $0x1b8,%edi
mov    $0x1f4,%esi
call   1040 <led_on_off@plt>
mov    $0x15d,%edi
mov    $0x15e,%esi
call   1040 <led_on_off@plt>
mov    $0x20b,%edi
mov    $0x96,%esi
call   1040 <led_on_off@plt>
mov    $0x1b8,%edi
mov    $0x28a,%esi
call   1040 <led_on_off@plt>
mov    $0x1f4,%edi
call   1030 <delay@plt>
mov    $0x293,%edi
mov    $0x1f4,%esi
call   1040 <led_on_off@plt>
mov    $0x293,%edi
mov    $0x1f4,%esi
call   1040 <led_on_off@plt>
mov    $0x293,%edi
mov    $0x1f4,%esi
call   1040 <led_on_off@plt>
mov    $0x2ba,%edi
mov    $0x15e,%esi
call   1040 <led_on_off@plt>
mov    $0x20b,%edi
mov    $0x96,%esi
call   1040 <led_on_off@plt>
mov    $0x19f,%edi
mov    $0x1f4,%esi
call   1040 <led_on_off@plt>
mov    $0x15d,%edi
mov    $0x15e,%esi
call   1040 <led_on_off@plt>
mov    $0x20b,%edi
mov    $0x96,%esi
call   1040 <led_on_off@plt>
mov    $0x1b8,%edi
mov    $0x28a,%esi
call   1040 <led_on_off@plt>
mov    $0x1f4,%edi
call   1030 <delay@plt>
mov    $0x370,%edi
mov    $0x1f4,%esi
call   1040 <led_on_off@plt>
mov    $0x1b8,%edi
mov    $0x12c,%esi
call   1040 <led_on_off@plt>
mov    $0x1b8,%edi
mov    $0x96,%esi
call   1040 <led_on_off@plt>
mov    $0x370,%edi
mov    $0x1f4,%esi
call   1040 <led_on_off@plt>
mov    $0x33e,%edi
mov    $0x145,%esi
call   1040 <led_on_off@plt>
mov    $0x310,%edi
mov    $0xaf,%esi
call   1040 <led_on_off@plt>
mov    $0x2e4,%edi
mov    $0x7d,%esi
call   1040 <led_on_off@plt>
mov    $0x2ba,%edi
mov    $0x7d,%esi
call   1040 <led_on_off@plt>
mov    $0x2e4,%edi
mov    $0xfa,%esi
call   1040 <led_on_off@plt>
mov    $0x145,%edi
call   1030 <delay@plt>
mov    $0x1c7,%edi
mov    $0xfa,%esi
call   1040 <led_on_off@plt>
mov    $0x26e,%edi
mov    $0x1f4,%esi
call   1040 <led_on_off@plt>
mov    $0x24b,%edi
mov    $0x145,%esi
call   1040 <led_on_off@plt>
mov    $0x22a,%edi
mov    $0xaf,%esi
call   1040 <led_on_off@plt>
mov    $0x20b,%edi
mov    $0x7d,%esi
call   1040 <led_on_off@plt>
mov    $0x1d2,%edi
mov    $0x7d,%esi
call   1040 <led_on_off@plt>
mov    $0x20b,%edi
mov    $0xfa,%esi
call   1040 <led_on_off@plt>
mov    $0x15e,%edi
call   1030 <delay@plt>
mov    $0x15d,%edi
mov    $0xfa,%esi
call   1040 <led_on_off@plt>
mov    $0x19f,%edi
mov    $0x1f4,%esi
call   1040 <led_on_off@plt>
mov    $0x15d,%edi
mov    $0x15e,%esi
call   1040 <led_on_off@plt>
mov    $0x1b8,%edi
mov    $0x7d,%esi
call   1040 <led_on_off@plt>
mov    $0x20b,%edi
mov    $0x1f4,%esi
call   1040 <led_on_off@plt>
mov    $0x1b8,%edi
mov    $0x177,%esi
call   1040 <led_on_off@plt>
mov    $0x20b,%edi
mov    $0x7d,%esi
call   1040 <led_on_off@plt>
mov    $0x293,%edi
mov    $0x28a,%esi
call   1040 <led_on_off@plt>
mov    $0x1f4,%edi
call   1030 <delay@plt>
mov    $0x370,%edi
mov    $0x1f4,%esi
call   1040 <led_on_off@plt>
mov    $0x1b8,%edi
mov    $0x12c,%esi
call   1040 <led_on_off@plt>
mov    $0x1b8,%edi
mov    $0x96,%esi
call   1040 <led_on_off@plt>
mov    $0x370,%edi
mov    $0x1f4,%esi
call   1040 <led_on_off@plt>
mov    $0x33e,%edi
mov    $0x145,%esi
call   1040 <led_on_off@plt>
mov    $0x310,%edi
mov    $0xaf,%esi
call   1040 <led_on_off@plt>
mov    $0x2e4,%edi
mov    $0x7d,%esi
call   1040 <led_on_off@plt>
mov    $0x2ba,%edi
mov    $0x7d,%esi
call   1040 <led_on_off@plt>
mov    $0x2e4,%edi
mov    $0xfa,%esi
call   1040 <led_on_off@plt>
mov    $0x145,%edi
call   1030 <delay@plt>
mov    $0x1c7,%edi
mov    $0xfa,%esi
call   1040 <led_on_off@plt>
mov    $0x26e,%edi
mov    $0x1f4,%esi
call   1040 <led_on_off@plt>
mov    $0x24b,%edi
mov    $0x145,%esi
call   1040 <led_on_off@plt>
mov    $0x22a,%edi
mov    $0xaf,%esi
call   1040 <led_on_off@plt>
mov    $0x20b,%edi
mov    $0x7d,%esi
call   1040 <led_on_off@plt>
mov    $0x1d2,%edi
mov    $0x7d,%esi
call   1040 <led_on_off@plt>
mov    $0x20b,%edi
mov    $0xfa,%esi
call   1040 <led_on_off@plt>
mov    $0x15e,%edi
call   1030 <delay@plt>
mov    $0x15d,%edi
mov    $0xfa,%esi
call   1040 <led_on_off@plt>
mov    $0x19f,%edi
mov    $0x1f4,%esi
call   1040 <led_on_off@plt>
mov    $0x15d,%edi
mov    $0x177,%esi
call   1040 <led_on_off@plt>
mov    $0x20b,%edi
mov    $0x7d,%esi
call   1040 <led_on_off@plt>
mov    $0x1b8,%edi
mov    $0x1f4,%esi
call   1040 <led_on_off@plt>
mov    $0x15d,%edi
mov    $0x177,%esi
call   1040 <led_on_off@plt>
mov    $0x20b,%edi
mov    $0x7d,%esi
call   1040 <led_on_off@plt>
mov    $0x1b8,%edi
mov    $0x28a,%esi
call   1040 <led_on_off@plt>
mov    $0x28a,%edi
pop    %rax
jmp    1030 <delay@plt>

LLVM IR (-O0):
@__const.star_wars.play_fist_1 = [9 x [2 x i32]] [[2 x i32] [i32 440, i32 500], [2 x i32] [i32 440, i32 500], [2 x i32] [i32 440, i32 500], [2 x i32] [i32 349, i32 350], [2 x i32] [i32 523, i32 150], [2 x i32] [i32 440, i32 500], [2 x i32] [i32 349, i32 350], [2 x i32] [i32 523, i32 150], [2 x i32] [i32 440, i32 650]]
@__const.star_wars.play_fist_2 = [9 x [2 x i32]] [[2 x i32] [i32 659, i32 500], [2 x i32] [i32 659, i32 500], [2 x i32] [i32 659, i32 500], [2 x i32] [i32 698, i32 350], [2 x i32] [i32 523, i32 150], [2 x i32] [i32 415, i32 500], [2 x i32] [i32 349, i32 350], [2 x i32] [i32 523, i32 150], [2 x i32] [i32 440, i32 650]]
@__const.star_wars.play_second_1 = [9 x [2 x i32]] [[2 x i32] [i32 880, i32 500], [2 x i32] [i32 440, i32 300], [2 x i32] [i32 440, i32 150], [2 x i32] [i32 880, i32 500], [2 x i32] [i32 830, i32 325], [2 x i32] [i32 784, i32 175], [2 x i32] [i32 740, i32 125], [2 x i32] [i32 698, i32 125], [2 x i32] [i32 740, i32 250]]
@__const.star_wars.play_second_2 = [7 x [2 x i32]] [[2 x i32] [i32 455, i32 250], [2 x i32] [i32 622, i32 500], [2 x i32] [i32 587, i32 325], [2 x i32] [i32 554, i32 175], [2 x i32] [i32 523, i32 125], [2 x i32] [i32 466, i32 125], [2 x i32] [i32 523, i32 250]]
@__const.star_wars.play_variant_1 = [8 x [2 x i32]] [[2 x i32] [i32 349, i32 250], [2 x i32] [i32 415, i32 500], [2 x i32] [i32 349, i32 350], [2 x i32] [i32 440, i32 125], [2 x i32] [i32 523, i32 500], [2 x i32] [i32 440, i32 375], [2 x i32] [i32 523, i32 125], [2 x i32] [i32 659, i32 650]]
@__const.star_wars.play_variant_2 = [8 x [2 x i32]] [[2 x i32] [i32 349, i32 250], [2 x i32] [i32 415, i32 500], [2 x i32] [i32 349, i32 375], [2 x i32] [i32 523, i32 125], [2 x i32] [i32 440, i32 500], [2 x i32] [i32 349, i32 375], [2 x i32] [i32 523, i32 125], [2 x i32] [i32 440, i32 650]]
define void @star_wars() {
%1 = alloca [9 x [2 x i32]]
%2 = alloca i32
%3 = alloca [9 x [2 x i32]]
%4 = alloca i32
%5 = alloca [9 x [2 x i32]]
%6 = alloca i32
%7 = alloca [7 x [2 x i32]]
%8 = alloca i32
%9 = alloca [8 x [2 x i32]]
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca [8 x [2 x i32]]
%14 = alloca i32
%15 = bitcast [9 x [2 x i32]]* %1 to i8*
store i32 0, i32* %2
br label %16
16: ; preds = %31, %0
%17 = load i32, i32* %2
%18 = icmp slt i32 %17, 9
br i1 %18, label %19, label %34
19: ; preds = %16
%20 = load i32, i32* %2
%21 = sext i32 %20 to i64
%22 = getelementptr inbounds [9 x [2 x i32]], [9 x [2 x i32]]* %1, i64 0, i64 %21
%23 = getelementptr inbounds [2 x i32], [2 x i32]* %22, i64 0, i64 0
%24 = load i32, i32* %23
%25 = load i32, i32* %2
%26 = sext i32 %25 to i64
%27 = getelementptr inbounds [9 x [2 x i32]], [9 x [2 x i32]]* %1, i64 0, i64 %26
%28 = getelementptr inbounds [2 x i32], [2 x i32]* %27, i64 0, i64 1
%29 = load i32, i32* %28
%30 = call i32 @led_on_off(i32 %24, i32 %29)
br label %31
31: ; preds = %19
%32 = load i32, i32* %2
%33 = add nsw i32 %32, 1
store i32 %33, i32* %2
br label %16
34: ; preds = %16
%35 = call i32 @delay(i32 500)
%36 = bitcast [9 x [2 x i32]]* %3 to i8*
store i32 0, i32* %4
br label %37
37: ; preds = %52, %34
%38 = load i32, i32* %4
%39 = icmp slt i32 %38, 9
br i1 %39, label %40, label %55
40: ; preds = %37
%41 = load i32, i32* %4
%42 = sext i32 %41 to i64
%43 = getelementptr inbounds [9 x [2 x i32]], [9 x [2 x i32]]* %3, i64 0, i64 %42
%44 = getelementptr inbounds [2 x i32], [2 x i32]* %43, i64 0, i64 0
%45 = load i32, i32* %44
%46 = load i32, i32* %4
%47 = sext i32 %46 to i64
%48 = getelementptr inbounds [9 x [2 x i32]], [9 x [2 x i32]]* %3, i64 0, i64 %47
%49 = getelementptr inbounds [2 x i32], [2 x i32]* %48, i64 0, i64 1
%50 = load i32, i32* %49
%51 = call i32 @led_on_off(i32 %45, i32 %50)
br label %52
52: ; preds = %40
%53 = load i32, i32* %4
%54 = add nsw i32 %53, 1
store i32 %54, i32* %4
br label %37
55: ; preds = %37
%56 = call i32 @delay(i32 500)
%57 = bitcast [9 x [2 x i32]]* %5 to i8*
store i32 0, i32* %6
br label %58
58: ; preds = %73, %55
%59 = load i32, i32* %6
%60 = icmp slt i32 %59, 9
br i1 %60, label %61, label %76
61: ; preds = %58
%62 = load i32, i32* %6
%63 = sext i32 %62 to i64
%64 = getelementptr inbounds [9 x [2 x i32]], [9 x [2 x i32]]* %5, i64 0, i64 %63
%65 = getelementptr inbounds [2 x i32], [2 x i32]* %64, i64 0, i64 0
%66 = load i32, i32* %65
%67 = load i32, i32* %6
%68 = sext i32 %67 to i64
%69 = getelementptr inbounds [9 x [2 x i32]], [9 x [2 x i32]]* %5, i64 0, i64 %68
%70 = getelementptr inbounds [2 x i32], [2 x i32]* %69, i64 0, i64 1
%71 = load i32, i32* %70
%72 = call i32 @led_on_off(i32 %66, i32 %71)
br label %73
73: ; preds = %61
%74 = load i32, i32* %6
%75 = add nsw i32 %74, 1
store i32 %75, i32* %6
br label %58
76: ; preds = %58
%77 = call i32 @delay(i32 325)
%78 = bitcast [7 x [2 x i32]]* %7 to i8*
store i32 0, i32* %8
br label %79
79: ; preds = %94, %76
%80 = load i32, i32* %8
%81 = icmp slt i32 %80, 7
br i1 %81, label %82, label %97
82: ; preds = %79
%83 = load i32, i32* %8
%84 = sext i32 %83 to i64
%85 = getelementptr inbounds [7 x [2 x i32]], [7 x [2 x i32]]* %7, i64 0, i64 %84
%86 = getelementptr inbounds [2 x i32], [2 x i32]* %85, i64 0, i64 0
%87 = load i32, i32* %86
%88 = load i32, i32* %8
%89 = sext i32 %88 to i64
%90 = getelementptr inbounds [7 x [2 x i32]], [7 x [2 x i32]]* %7, i64 0, i64 %89
%91 = getelementptr inbounds [2 x i32], [2 x i32]* %90, i64 0, i64 1
%92 = load i32, i32* %91
%93 = call i32 @led_on_off(i32 %87, i32 %92)
br label %94
94: ; preds = %82
%95 = load i32, i32* %8
%96 = add nsw i32 %95, 1
store i32 %96, i32* %8
br label %79
97: ; preds = %79
%98 = call i32 @delay(i32 350)
%99 = bitcast [8 x [2 x i32]]* %9 to i8*
store i32 0, i32* %10
br label %100
100: ; preds = %115, %97
%101 = load i32, i32* %10
%102 = icmp slt i32 %101, 8
br i1 %102, label %103, label %118
103: ; preds = %100
%104 = load i32, i32* %10
%105 = sext i32 %104 to i64
%106 = getelementptr inbounds [8 x [2 x i32]], [8 x [2 x i32]]* %9, i64 0, i64 %105
%107 = getelementptr inbounds [2 x i32], [2 x i32]* %106, i64 0, i64 0
%108 = load i32, i32* %107
%109 = load i32, i32* %10
%110 = sext i32 %109 to i64
%111 = getelementptr inbounds [8 x [2 x i32]], [8 x [2 x i32]]* %9, i64 0, i64 %110
%112 = getelementptr inbounds [2 x i32], [2 x i32]* %111, i64 0, i64 1
%113 = load i32, i32* %112
%114 = call i32 @led_on_off(i32 %108, i32 %113)
br label %115
115: ; preds = %103
%116 = load i32, i32* %10
%117 = add nsw i32 %116, 1
store i32 %117, i32* %10
br label %100
118: ; preds = %100
%119 = call i32 @delay(i32 500)
store i32 0, i32* %11
br label %120
120: ; preds = %135, %118
%121 = load i32, i32* %11
%122 = icmp slt i32 %121, 9
br i1 %122, label %123, label %138
123: ; preds = %120
%124 = load i32, i32* %11
%125 = sext i32 %124 to i64
%126 = getelementptr inbounds [9 x [2 x i32]], [9 x [2 x i32]]* %5, i64 0, i64 %125
%127 = getelementptr inbounds [2 x i32], [2 x i32]* %126, i64 0, i64 0
%128 = load i32, i32* %127
%129 = load i32, i32* %11
%130 = sext i32 %129 to i64
%131 = getelementptr inbounds [9 x [2 x i32]], [9 x [2 x i32]]* %5, i64 0, i64 %130
%132 = getelementptr inbounds [2 x i32], [2 x i32]* %131, i64 0, i64 1
%133 = load i32, i32* %132
%134 = call i32 @led_on_off(i32 %128, i32 %133)
br label %135
135: ; preds = %123
%136 = load i32, i32* %11
%137 = add nsw i32 %136, 1
store i32 %137, i32* %11
br label %120
138: ; preds = %120
%139 = call i32 @delay(i32 325)
store i32 0, i32* %12
br label %140
140: ; preds = %155, %138
%141 = load i32, i32* %12
%142 = icmp slt i32 %141, 7
br i1 %142, label %143, label %158
143: ; preds = %140
%144 = load i32, i32* %12
%145 = sext i32 %144 to i64
%146 = getelementptr inbounds [7 x [2 x i32]], [7 x [2 x i32]]* %7, i64 0, i64 %145
%147 = getelementptr inbounds [2 x i32], [2 x i32]* %146, i64 0, i64 0
%148 = load i32, i32* %147
%149 = load i32, i32* %12
%150 = sext i32 %149 to i64
%151 = getelementptr inbounds [7 x [2 x i32]], [7 x [2 x i32]]* %7, i64 0, i64 %150
%152 = getelementptr inbounds [2 x i32], [2 x i32]* %151, i64 0, i64 1
%153 = load i32, i32* %152
%154 = call i32 @led_on_off(i32 %148, i32 %153)
br label %155
155: ; preds = %143
%156 = load i32, i32* %12
%157 = add nsw i32 %156, 1
store i32 %157, i32* %12
br label %140
158: ; preds = %140
%159 = call i32 @delay(i32 350)
%160 = bitcast [8 x [2 x i32]]* %13 to i8*
store i32 0, i32* %14
br label %161
161: ; preds = %176, %158
%162 = load i32, i32* %14
%163 = icmp slt i32 %162, 8
br i1 %163, label %164, label %179
164: ; preds = %161
%165 = load i32, i32* %14
%166 = sext i32 %165 to i64
%167 = getelementptr inbounds [8 x [2 x i32]], [8 x [2 x i32]]* %13, i64 0, i64 %166
%168 = getelementptr inbounds [2 x i32], [2 x i32]* %167, i64 0, i64 0
%169 = load i32, i32* %168
%170 = load i32, i32* %14
%171 = sext i32 %170 to i64
%172 = getelementptr inbounds [8 x [2 x i32]], [8 x [2 x i32]]* %13, i64 0, i64 %171
%173 = getelementptr inbounds [2 x i32], [2 x i32]* %172, i64 0, i64 1
%174 = load i32, i32* %173
%175 = call i32 @led_on_off(i32 %169, i32 %174)
br label %176
176: ; preds = %164
%177 = load i32, i32* %14
%178 = add nsw i32 %177, 1
store i32 %178, i32* %14
br label %161
179: ; preds = %161
%180 = call i32 @delay(i32 650)
ret void
}

LLVM IR (-O2):
define void @star_wars() {
%1 = tail call i32 @led_on_off(i32 440, i32 500)
%2 = tail call i32 @led_on_off(i32 440, i32 500)
%3 = tail call i32 @led_on_off(i32 440, i32 500)
%4 = tail call i32 @led_on_off(i32 349, i32 350)
%5 = tail call i32 @led_on_off(i32 523, i32 150)
%6 = tail call i32 @led_on_off(i32 440, i32 500)
%7 = tail call i32 @led_on_off(i32 349, i32 350)
%8 = tail call i32 @led_on_off(i32 523, i32 150)
%9 = tail call i32 @led_on_off(i32 440, i32 650)
%10 = tail call i32 @delay(i32 500)
%11 = tail call i32 @led_on_off(i32 659, i32 500)
%12 = tail call i32 @led_on_off(i32 659, i32 500)
%13 = tail call i32 @led_on_off(i32 659, i32 500)
%14 = tail call i32 @led_on_off(i32 698, i32 350)
%15 = tail call i32 @led_on_off(i32 523, i32 150)
%16 = tail call i32 @led_on_off(i32 415, i32 500)
%17 = tail call i32 @led_on_off(i32 349, i32 350)
%18 = tail call i32 @led_on_off(i32 523, i32 150)
%19 = tail call i32 @led_on_off(i32 440, i32 650)
%20 = tail call i32 @delay(i32 500)
%21 = tail call i32 @led_on_off(i32 880, i32 500)
%22 = tail call i32 @led_on_off(i32 440, i32 300)
%23 = tail call i32 @led_on_off(i32 440, i32 150)
%24 = tail call i32 @led_on_off(i32 880, i32 500)
%25 = tail call i32 @led_on_off(i32 830, i32 325)
%26 = tail call i32 @led_on_off(i32 784, i32 175)
%27 = tail call i32 @led_on_off(i32 740, i32 125)
%28 = tail call i32 @led_on_off(i32 698, i32 125)
%29 = tail call i32 @led_on_off(i32 740, i32 250)
%30 = tail call i32 @delay(i32 325)
%31 = tail call i32 @led_on_off(i32 455, i32 250)
%32 = tail call i32 @led_on_off(i32 622, i32 500)
%33 = tail call i32 @led_on_off(i32 587, i32 325)
%34 = tail call i32 @led_on_off(i32 554, i32 175)
%35 = tail call i32 @led_on_off(i32 523, i32 125)
%36 = tail call i32 @led_on_off(i32 466, i32 125)
%37 = tail call i32 @led_on_off(i32 523, i32 250)
%38 = tail call i32 @delay(i32 350)
%39 = tail call i32 @led_on_off(i32 349, i32 250)
%40 = tail call i32 @led_on_off(i32 415, i32 500)
%41 = tail call i32 @led_on_off(i32 349, i32 350)
%42 = tail call i32 @led_on_off(i32 440, i32 125)
%43 = tail call i32 @led_on_off(i32 523, i32 500)
%44 = tail call i32 @led_on_off(i32 440, i32 375)
%45 = tail call i32 @led_on_off(i32 523, i32 125)
%46 = tail call i32 @led_on_off(i32 659, i32 650)
%47 = tail call i32 @delay(i32 500)
%48 = tail call i32 @led_on_off(i32 880, i32 500)
%49 = tail call i32 @led_on_off(i32 440, i32 300)
%50 = tail call i32 @led_on_off(i32 440, i32 150)
%51 = tail call i32 @led_on_off(i32 880, i32 500)
%52 = tail call i32 @led_on_off(i32 830, i32 325)
%53 = tail call i32 @led_on_off(i32 784, i32 175)
%54 = tail call i32 @led_on_off(i32 740, i32 125)
%55 = tail call i32 @led_on_off(i32 698, i32 125)
%56 = tail call i32 @led_on_off(i32 740, i32 250)
%57 = tail call i32 @delay(i32 325)
%58 = tail call i32 @led_on_off(i32 455, i32 250)
%59 = tail call i32 @led_on_off(i32 622, i32 500)
%60 = tail call i32 @led_on_off(i32 587, i32 325)
%61 = tail call i32 @led_on_off(i32 554, i32 175)
%62 = tail call i32 @led_on_off(i32 523, i32 125)
%63 = tail call i32 @led_on_off(i32 466, i32 125)
%64 = tail call i32 @led_on_off(i32 523, i32 250)
%65 = tail call i32 @delay(i32 350)
%66 = tail call i32 @led_on_off(i32 349, i32 250)
%67 = tail call i32 @led_on_off(i32 415, i32 500)
%68 = tail call i32 @led_on_off(i32 349, i32 375)
%69 = tail call i32 @led_on_off(i32 523, i32 125)
%70 = tail call i32 @led_on_off(i32 440, i32 500)
%71 = tail call i32 @led_on_off(i32 349, i32 375)
%72 = tail call i32 @led_on_off(i32 523, i32 125)
%73 = tail call i32 @led_on_off(i32 440, i32 650)
%74 = tail call i32 @delay(i32 650)
ret void
}