#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*/ printf(char *);
int main() {
  int a[10][20][30];
#pragma acc parallel loop
  for (int i = 0; i < 10; i++) {
#pragma acc loop
    for (int j = 0; j < 20; j++) {
#pragma acc loop
      for (int k = 0; k < 30; k++) {
        a[i][j][k] = i * j + k;
      }
    }
  }
  for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 20; j++) {
      for (int k = 0; k < 30; k++) {
        if (a[i][j][k] != i * j + k)
          return 1;
      }
    }
  }
  printf("PASS\n");
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x5df0,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0x0,-0x5dd4(%rbp)
cmpl   $0xa,-0x5dd4(%rbp)
jge    11f0 <main+0xe0>
movl   $0x0,-0x5dd8(%rbp)
cmpl   $0x14,-0x5dd8(%rbp)
jge    11d7 <main+0xc7>
movl   $0x0,-0x5ddc(%rbp)
cmpl   $0x1e,-0x5ddc(%rbp)
jge    11be <main+0xae>
mov    -0x5dd4(%rbp),%edx
imul   -0x5dd8(%rbp),%edx
add    -0x5ddc(%rbp),%edx
movslq -0x5dd4(%rbp),%rcx
lea    -0x5dd0(%rbp),%rax
imul   $0x960,%rcx,%rcx
add    %rcx,%rax
movslq -0x5dd8(%rbp),%rcx
imul   $0x78,%rcx,%rcx
add    %rcx,%rax
movslq -0x5ddc(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x5ddc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5ddc(%rbp)
jmp    115a <main+0x4a>
jmp    11c3 <main+0xb3>
mov    -0x5dd8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5dd8(%rbp)
jmp    1143 <main+0x33>
jmp    11dc <main+0xcc>
mov    -0x5dd4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5dd4(%rbp)
jmp    112c <main+0x1c>
movl   $0x0,-0x5de0(%rbp)
cmpl   $0xa,-0x5de0(%rbp)
jge    12d7 <main+0x1c7>
movl   $0x0,-0x5de4(%rbp)
cmpl   $0x14,-0x5de4(%rbp)
jge    12be <main+0x1ae>
movl   $0x0,-0x5de8(%rbp)
cmpl   $0x1e,-0x5de8(%rbp)
jge    12a5 <main+0x195>
movslq -0x5de0(%rbp),%rcx
lea    -0x5dd0(%rbp),%rax
imul   $0x960,%rcx,%rcx
add    %rcx,%rax
movslq -0x5de4(%rbp),%rcx
imul   $0x78,%rcx,%rcx
add    %rcx,%rax
movslq -0x5de8(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    -0x5de0(%rbp),%ecx
imul   -0x5de4(%rbp),%ecx
add    -0x5de8(%rbp),%ecx
cmp    %ecx,%eax
je     128c <main+0x17c>
movl   $0x1,-0x4(%rbp)
jmp    12ea <main+0x1da>
jmp    1291 <main+0x181>
mov    -0x5de8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5de8(%rbp)
jmp    1228 <main+0x118>
jmp    12aa <main+0x19a>
mov    -0x5de4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5de4(%rbp)
jmp    1211 <main+0x101>
jmp    12c3 <main+0x1b3>
mov    -0x5de0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5de0(%rbp)
jmp    11fa <main+0xea>
lea    0xd22(%rip),%rdi
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x5df0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbx
sub    $0x5dc0,%rsp
mov    $0x74,%eax
movdqa 0xeda(%rip),%xmm8
movdqa 0xee2(%rip),%xmm1
movdqa 0xeea(%rip),%xmm2
movdqa 0xef2(%rip),%xmm3
movdqa 0xefa(%rip),%xmm4
movdqa 0xf02(%rip),%xmm5
movdqa 0xf0a(%rip),%xmm6
movabs $0x1d0000001c,%rcx
movdqu %xmm8,-0x74(%rsp,%rax,1)
movdqu %xmm1,-0x64(%rsp,%rax,1)
movdqu %xmm2,-0x54(%rsp,%rax,1)
movdqu %xmm3,-0x44(%rsp,%rax,1)
movdqu %xmm4,-0x34(%rsp,%rax,1)
movdqu %xmm5,-0x24(%rsp,%rax,1)
movdqu %xmm6,-0x14(%rsp,%rax,1)
mov    %rcx,-0x4(%rsp,%rax,1)
add    $0x78,%rax
cmp    $0x9d4,%rax
jne    1160 <main+0x50>
lea    0x9d4(%rsp),%rax
xor    %ecx,%ecx
cs nopw 0x0(%rax,%rax,1)
movd   %ecx,%xmm7
pshufd $0x0,%xmm7,%xmm0
movdqa %xmm0,%xmm7
paddd  %xmm8,%xmm7
movdqu %xmm7,-0x74(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm1,%xmm7
movdqu %xmm7,-0x64(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm2,%xmm7
movdqu %xmm7,-0x54(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm3,%xmm7
movdqu %xmm7,-0x44(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm4,%xmm7
movdqu %xmm7,-0x34(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm5,%xmm7
movdqu %xmm7,-0x24(%rax)
paddd  %xmm6,%xmm0
movdqu %xmm0,-0x14(%rax)
lea    0x1c(%rcx),%edx
mov    %edx,-0x4(%rax)
lea    0x1d(%rcx),%edx
mov    %edx,(%rax)
add    $0x1,%rcx
add    $0x78,%rax
cmp    $0x14,%rcx
jne    11b0 <main+0xa0>
lea    0x1334(%rsp),%rax
xor    %ecx,%ecx
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movd   %ecx,%xmm0
pshufd $0x0,%xmm0,%xmm0
movdqa %xmm0,%xmm7
paddd  %xmm8,%xmm7
movdqu %xmm7,-0x74(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm1,%xmm7
movdqu %xmm7,-0x64(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm2,%xmm7
movdqu %xmm7,-0x54(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm3,%xmm7
movdqu %xmm7,-0x44(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm4,%xmm7
movdqu %xmm7,-0x34(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm5,%xmm7
movdqu %xmm7,-0x24(%rax)
paddd  %xmm6,%xmm0
movdqu %xmm0,-0x14(%rax)
lea    0x1c(%rcx),%edx
mov    %edx,-0x4(%rax)
lea    0x1d(%rcx),%edx
mov    %edx,(%rax)
add    $0x78,%rax
add    $0x2,%rcx
cmp    $0x28,%rcx
jne    1240 <main+0x130>
lea    0x1c94(%rsp),%rax
xor    %ecx,%ecx
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movd   %ecx,%xmm0
pshufd $0x0,%xmm0,%xmm0
movdqa %xmm0,%xmm7
paddd  %xmm8,%xmm7
movdqu %xmm7,-0x74(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm1,%xmm7
movdqu %xmm7,-0x64(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm2,%xmm7
movdqu %xmm7,-0x54(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm3,%xmm7
movdqu %xmm7,-0x44(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm4,%xmm7
movdqu %xmm7,-0x34(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm5,%xmm7
movdqu %xmm7,-0x24(%rax)
paddd  %xmm6,%xmm0
movdqu %xmm0,-0x14(%rax)
lea    0x1c(%rcx),%edx
mov    %edx,-0x4(%rax)
lea    0x1d(%rcx),%edx
mov    %edx,(%rax)
add    $0x78,%rax
add    $0x3,%rcx
cmp    $0x3c,%rcx
jne    12d0 <main+0x1c0>
lea    0x25f4(%rsp),%rax
xor    %ecx,%ecx
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movd   %ecx,%xmm0
pshufd $0x0,%xmm0,%xmm0
movdqa %xmm0,%xmm7
por    %xmm8,%xmm7
movdqu %xmm7,-0x74(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm1,%xmm7
movdqu %xmm7,-0x64(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm2,%xmm7
movdqu %xmm7,-0x54(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm3,%xmm7
movdqu %xmm7,-0x44(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm4,%xmm7
movdqu %xmm7,-0x34(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm5,%xmm7
movdqu %xmm7,-0x24(%rax)
paddd  %xmm6,%xmm0
movdqu %xmm0,-0x14(%rax)
lea    0x1c(%rcx),%edx
mov    %edx,-0x4(%rax)
lea    0x1d(%rcx),%edx
mov    %edx,(%rax)
add    $0x78,%rax
add    $0x4,%rcx
cmp    $0x50,%rcx
jne    1360 <main+0x250>
lea    0x2f54(%rsp),%rax
xor    %ecx,%ecx
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movd   %ecx,%xmm0
pshufd $0x0,%xmm0,%xmm0
movdqa %xmm0,%xmm7
paddd  %xmm8,%xmm7
movdqu %xmm7,-0x74(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm1,%xmm7
movdqu %xmm7,-0x64(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm2,%xmm7
movdqu %xmm7,-0x54(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm3,%xmm7
movdqu %xmm7,-0x44(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm4,%xmm7
movdqu %xmm7,-0x34(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm5,%xmm7
movdqu %xmm7,-0x24(%rax)
paddd  %xmm6,%xmm0
movdqu %xmm0,-0x14(%rax)
lea    0x1c(%rcx),%edx
mov    %edx,-0x4(%rax)
lea    0x1d(%rcx),%edx
mov    %edx,(%rax)
add    $0x78,%rax
add    $0x5,%rcx
cmp    $0x64,%rcx
jne    13f0 <main+0x2e0>
lea    0x38b4(%rsp),%rax
xor    %ecx,%ecx
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movd   %ecx,%xmm0
pshufd $0x0,%xmm0,%xmm0
movdqa %xmm0,%xmm7
paddd  %xmm8,%xmm7
movdqu %xmm7,-0x74(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm1,%xmm7
movdqu %xmm7,-0x64(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm2,%xmm7
movdqu %xmm7,-0x54(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm3,%xmm7
movdqu %xmm7,-0x44(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm4,%xmm7
movdqu %xmm7,-0x34(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm5,%xmm7
movdqu %xmm7,-0x24(%rax)
paddd  %xmm6,%xmm0
movdqu %xmm0,-0x14(%rax)
lea    0x1c(%rcx),%edx
mov    %edx,-0x4(%rax)
lea    0x1d(%rcx),%edx
mov    %edx,(%rax)
add    $0x78,%rax
add    $0x6,%rcx
cmp    $0x78,%rcx
jne    1480 <main+0x370>
lea    0x4214(%rsp),%rax
xor    %ecx,%ecx
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movd   %ecx,%xmm0
pshufd $0x0,%xmm0,%xmm0
movdqa %xmm0,%xmm7
paddd  %xmm8,%xmm7
movdqu %xmm7,-0x74(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm1,%xmm7
movdqu %xmm7,-0x64(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm2,%xmm7
movdqu %xmm7,-0x54(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm3,%xmm7
movdqu %xmm7,-0x44(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm4,%xmm7
movdqu %xmm7,-0x34(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm5,%xmm7
movdqu %xmm7,-0x24(%rax)
paddd  %xmm6,%xmm0
movdqu %xmm0,-0x14(%rax)
lea    0x1c(%rcx),%edx
mov    %edx,-0x4(%rax)
lea    0x1d(%rcx),%edx
mov    %edx,(%rax)
add    $0x78,%rax
add    $0x7,%rcx
cmp    $0x8c,%rcx
jne    1510 <main+0x400>
lea    0x4b74(%rsp),%rax
xor    %ecx,%ecx
nopw   0x0(%rax,%rax,1)
movd   %ecx,%xmm0
pshufd $0x0,%xmm0,%xmm0
movdqa %xmm0,%xmm7
por    %xmm8,%xmm7
movdqu %xmm7,-0x74(%rax)
movdqa %xmm0,%xmm7
por    %xmm1,%xmm7
movdqu %xmm7,-0x64(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm2,%xmm7
movdqu %xmm7,-0x54(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm3,%xmm7
movdqu %xmm7,-0x44(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm4,%xmm7
movdqu %xmm7,-0x34(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm5,%xmm7
movdqu %xmm7,-0x24(%rax)
paddd  %xmm6,%xmm0
movdqu %xmm0,-0x14(%rax)
lea    0x1c(%rcx),%edx
mov    %edx,-0x4(%rax)
lea    0x1d(%rcx),%edx
mov    %edx,(%rax)
add    $0x78,%rax
add    $0x8,%rcx
cmp    $0xa0,%rcx
jne    15a0 <main+0x490>
lea    0x54d4(%rsp),%rax
xor    %ecx,%ecx
nopw   0x0(%rax,%rax,1)
movd   %ecx,%xmm0
pshufd $0x0,%xmm0,%xmm0
movdqa %xmm0,%xmm7
paddd  %xmm8,%xmm7
movdqu %xmm7,-0x74(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm1,%xmm7
movdqu %xmm7,-0x64(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm2,%xmm7
movdqu %xmm7,-0x54(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm3,%xmm7
movdqu %xmm7,-0x44(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm4,%xmm7
movdqu %xmm7,-0x34(%rax)
movdqa %xmm0,%xmm7
paddd  %xmm5,%xmm7
movdqu %xmm7,-0x24(%rax)
paddd  %xmm6,%xmm0
movdqu %xmm0,-0x14(%rax)
lea    0x1c(%rcx),%edx
mov    %edx,-0x4(%rax)
lea    0x1d(%rcx),%edx
mov    %edx,(%rax)
add    $0x78,%rax
add    $0x9,%rcx
cmp    $0xb4,%rcx
jne    1630 <main+0x520>
mov    %rsp,%r9
xor    %r8d,%r8d
mov    $0x1,%eax
mov    $0x2,%r11d
mov    %r9,%rdi
xor    %r10d,%r10d
mov    $0x8,%ecx
mov    %r11,%rsi
nopl   0x0(%rax)
mov    -0x8(%rdi,%rcx,1),%edx
lea    -0x2(%rsi),%rbx
cmp    %rdx,%rbx
jne    1733 <main+0x623>
mov    -0x4(%rdi,%rcx,1),%edx
lea    -0x1(%rsi),%rbx
cmp    %rdx,%rbx
jne    1733 <main+0x623>
mov    (%rdi,%rcx,1),%edx
cmp    %rdx,%rsi
jne    1733 <main+0x623>
add    $0xc,%rcx
add    $0x3,%rsi
cmp    $0x80,%rcx
jne    16d0 <main+0x5c0>
add    $0x1,%r10
add    %r8,%r11
add    $0x78,%rdi
cmp    $0x14,%r10
jne    16c4 <main+0x5b4>
add    $0x1,%r8
add    $0x960,%r9
cmp    $0xa,%r8
jne    16b8 <main+0x5a8>
lea    0x944(%rip),%rdi
call   1030 <puts@plt>
xor    %eax,%eax
add    $0x5dc0,%rsp
pop    %rbx
ret

LLVM IR (-O0):
@.str = [6 x i8] c"PASS\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca [10 x [20 x [30 x i32]]]
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
store i32 0, i32* %1
store i32 0, i32* %3
br label %9
9: ; preds = %43, %0
%10 = load i32, i32* %3
%11 = icmp slt i32 %10, 10
br i1 %11, label %12, label %46
12: ; preds = %9
store i32 0, i32* %4
br label %13
13: ; preds = %39, %12
%14 = load i32, i32* %4
%15 = icmp slt i32 %14, 20
br i1 %15, label %16, label %42
16: ; preds = %13
store i32 0, i32* %5
br label %17
17: ; preds = %35, %16
%18 = load i32, i32* %5
%19 = icmp slt i32 %18, 30
br i1 %19, label %20, label %38
20: ; preds = %17
%21 = load i32, i32* %3
%22 = load i32, i32* %4
%23 = mul nsw i32 %21, %22
%24 = load i32, i32* %5
%25 = add nsw i32 %23, %24
%26 = load i32, i32* %3
%27 = sext i32 %26 to i64
%28 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %2, i64 0, i64 %27
%29 = load i32, i32* %4
%30 = sext i32 %29 to i64
%31 = getelementptr inbounds [20 x [30 x i32]], [20 x [30 x i32]]* %28, i64 0, i64 %30
%32 = load i32, i32* %5
%33 = sext i32 %32 to i64
%34 = getelementptr inbounds [30 x i32], [30 x i32]* %31, i64 0, i64 %33
store i32 %25, i32* %34
br label %35
35: ; preds = %20
%36 = load i32, i32* %5
%37 = add nsw i32 %36, 1
store i32 %37, i32* %5
br label %17
38: ; preds = %17
br label %39
39: ; preds = %38
%40 = load i32, i32* %4
%41 = add nsw i32 %40, 1
store i32 %41, i32* %4
br label %13
42: ; preds = %13
br label %43
43: ; preds = %42
%44 = load i32, i32* %3
%45 = add nsw i32 %44, 1
store i32 %45, i32* %3
br label %9
46: ; preds = %9
store i32 0, i32* %6
br label %47
47: ; preds = %85, %46
%48 = load i32, i32* %6
%49 = icmp slt i32 %48, 10
br i1 %49, label %50, label %88
50: ; preds = %47
store i32 0, i32* %7
br label %51
51: ; preds = %81, %50
%52 = load i32, i32* %7
%53 = icmp slt i32 %52, 20
br i1 %53, label %54, label %84
54: ; preds = %51
store i32 0, i32* %8
br label %55
55: ; preds = %77, %54
%56 = load i32, i32* %8
%57 = icmp slt i32 %56, 30
br i1 %57, label %58, label %80
58: ; preds = %55
%59 = load i32, i32* %6
%60 = sext i32 %59 to i64
%61 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %2, i64 0, i64 %60
%62 = load i32, i32* %7
%63 = sext i32 %62 to i64
%64 = getelementptr inbounds [20 x [30 x i32]], [20 x [30 x i32]]* %61, i64 0, i64 %63
%65 = load i32, i32* %8
%66 = sext i32 %65 to i64
%67 = getelementptr inbounds [30 x i32], [30 x i32]* %64, i64 0, i64 %66
%68 = load i32, i32* %67
%69 = load i32, i32* %6
%70 = load i32, i32* %7
%71 = mul nsw i32 %69, %70
%72 = load i32, i32* %8
%73 = add nsw i32 %71, %72
%74 = icmp ne i32 %68, %73
br i1 %74, label %75, label %76
75: ; preds = %58
store i32 1, i32* %1
br label %90
76: ; preds = %58
br label %77
77: ; preds = %76
%78 = load i32, i32* %8
%79 = add nsw i32 %78, 1
store i32 %79, i32* %8
br label %55
80: ; preds = %55
br label %81
81: ; preds = %80
%82 = load i32, i32* %7
%83 = add nsw i32 %82, 1
store i32 %83, i32* %7
br label %51
84: ; preds = %51
br label %85
85: ; preds = %84
%86 = load i32, i32* %6
%87 = add nsw i32 %86, 1
store i32 %87, i32* %6
br label %47
88: ; preds = %47
%89 = call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0))
store i32 0, i32* %1
br label %90
90: ; preds = %88, %75
%91 = load i32, i32* %1
ret i32 %91
}

LLVM IR (-O2):
@str = [5 x i8] c"PASS\00"
define i32 @main() {
%1 = alloca [10 x [20 x [30 x i32]]]
%2 = bitcast [10 x [20 x [30 x i32]]]* %1 to i8*
br label %3
3: ; preds = %0, %3
%4 = phi i64 [ 0, %0 ], [ %21, %3 ]
%5 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 0, i64 %4, i64 0
%6 = bitcast i32* %5 to <4 x i32>*
store <4 x i32> <i32 0, i32 1, i32 2, i32 3>, <4 x i32>* %6
%7 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 0, i64 %4, i64 4
%8 = bitcast i32* %7 to <4 x i32>*
store <4 x i32> <i32 4, i32 5, i32 6, i32 7>, <4 x i32>* %8
%9 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 0, i64 %4, i64 8
%10 = bitcast i32* %9 to <4 x i32>*
store <4 x i32> <i32 8, i32 9, i32 10, i32 11>, <4 x i32>* %10
%11 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 0, i64 %4, i64 12
%12 = bitcast i32* %11 to <4 x i32>*
store <4 x i32> <i32 12, i32 13, i32 14, i32 15>, <4 x i32>* %12
%13 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 0, i64 %4, i64 16
%14 = bitcast i32* %13 to <4 x i32>*
store <4 x i32> <i32 16, i32 17, i32 18, i32 19>, <4 x i32>* %14
%15 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 0, i64 %4, i64 20
%16 = bitcast i32* %15 to <4 x i32>*
store <4 x i32> <i32 20, i32 21, i32 22, i32 23>, <4 x i32>* %16
%17 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 0, i64 %4, i64 24
%18 = bitcast i32* %17 to <4 x i32>*
store <4 x i32> <i32 24, i32 25, i32 26, i32 27>, <4 x i32>* %18
%19 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 0, i64 %4, i64 28
store i32 28, i32* %19
%20 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 0, i64 %4, i64 29
store i32 29, i32* %20
%21 = add nuw nsw i64 %4, 1
%22 = icmp eq i64 %21, 20
br i1 %22, label %23, label %3
23: ; preds = %3, %23
%24 = phi i64 [ %61, %23 ], [ 0, %3 ]
%25 = insertelement <4 x i64> poison, i64 %24, i64 0
%26 = shufflevector <4 x i64> %25, <4 x i64> poison, <4 x i32> zeroinitializer
%27 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 1, i64 %24, i64 0
%28 = trunc <4 x i64> %26 to <4 x i32>
%29 = add <4 x i32> %28, <i32 0, i32 1, i32 2, i32 3>
%30 = bitcast i32* %27 to <4 x i32>*
store <4 x i32> %29, <4 x i32>* %30
%31 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 1, i64 %24, i64 4
%32 = trunc <4 x i64> %26 to <4 x i32>
%33 = add <4 x i32> %32, <i32 4, i32 5, i32 6, i32 7>
%34 = bitcast i32* %31 to <4 x i32>*
store <4 x i32> %33, <4 x i32>* %34
%35 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 1, i64 %24, i64 8
%36 = trunc <4 x i64> %26 to <4 x i32>
%37 = add <4 x i32> %36, <i32 8, i32 9, i32 10, i32 11>
%38 = bitcast i32* %35 to <4 x i32>*
store <4 x i32> %37, <4 x i32>* %38
%39 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 1, i64 %24, i64 12
%40 = trunc <4 x i64> %26 to <4 x i32>
%41 = add <4 x i32> %40, <i32 12, i32 13, i32 14, i32 15>
%42 = bitcast i32* %39 to <4 x i32>*
store <4 x i32> %41, <4 x i32>* %42
%43 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 1, i64 %24, i64 16
%44 = trunc <4 x i64> %26 to <4 x i32>
%45 = add <4 x i32> %44, <i32 16, i32 17, i32 18, i32 19>
%46 = bitcast i32* %43 to <4 x i32>*
store <4 x i32> %45, <4 x i32>* %46
%47 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 1, i64 %24, i64 20
%48 = trunc <4 x i64> %26 to <4 x i32>
%49 = add <4 x i32> %48, <i32 20, i32 21, i32 22, i32 23>
%50 = bitcast i32* %47 to <4 x i32>*
store <4 x i32> %49, <4 x i32>* %50
%51 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 1, i64 %24, i64 24
%52 = trunc <4 x i64> %26 to <4 x i32>
%53 = add <4 x i32> %52, <i32 24, i32 25, i32 26, i32 27>
%54 = bitcast i32* %51 to <4 x i32>*
store <4 x i32> %53, <4 x i32>* %54
%55 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 1, i64 %24, i64 28
%56 = trunc i64 %24 to i32
%57 = add i32 %56, 28
store i32 %57, i32* %55
%58 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 1, i64 %24, i64 29
%59 = trunc i64 %24 to i32
%60 = add i32 %59, 29
store i32 %60, i32* %58
%61 = add nuw nsw i64 %24, 1
%62 = icmp eq i64 %61, 20
br i1 %62, label %63, label %23
63: ; preds = %23, %63
%64 = phi i64 [ %102, %63 ], [ 0, %23 ]
%65 = shl nuw nsw i64 %64, 1
%66 = insertelement <4 x i64> poison, i64 %65, i64 0
%67 = shufflevector <4 x i64> %66, <4 x i64> poison, <4 x i32> zeroinitializer
%68 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 2, i64 %64, i64 0
%69 = trunc <4 x i64> %67 to <4 x i32>
%70 = add <4 x i32> %69, <i32 0, i32 1, i32 2, i32 3>
%71 = bitcast i32* %68 to <4 x i32>*
store <4 x i32> %70, <4 x i32>* %71
%72 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 2, i64 %64, i64 4
%73 = trunc <4 x i64> %67 to <4 x i32>
%74 = add <4 x i32> %73, <i32 4, i32 5, i32 6, i32 7>
%75 = bitcast i32* %72 to <4 x i32>*
store <4 x i32> %74, <4 x i32>* %75
%76 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 2, i64 %64, i64 8
%77 = trunc <4 x i64> %67 to <4 x i32>
%78 = add <4 x i32> %77, <i32 8, i32 9, i32 10, i32 11>
%79 = bitcast i32* %76 to <4 x i32>*
store <4 x i32> %78, <4 x i32>* %79
%80 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 2, i64 %64, i64 12
%81 = trunc <4 x i64> %67 to <4 x i32>
%82 = add <4 x i32> %81, <i32 12, i32 13, i32 14, i32 15>
%83 = bitcast i32* %80 to <4 x i32>*
store <4 x i32> %82, <4 x i32>* %83
%84 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 2, i64 %64, i64 16
%85 = trunc <4 x i64> %67 to <4 x i32>
%86 = add <4 x i32> %85, <i32 16, i32 17, i32 18, i32 19>
%87 = bitcast i32* %84 to <4 x i32>*
store <4 x i32> %86, <4 x i32>* %87
%88 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 2, i64 %64, i64 20
%89 = trunc <4 x i64> %67 to <4 x i32>
%90 = add <4 x i32> %89, <i32 20, i32 21, i32 22, i32 23>
%91 = bitcast i32* %88 to <4 x i32>*
store <4 x i32> %90, <4 x i32>* %91
%92 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 2, i64 %64, i64 24
%93 = trunc <4 x i64> %67 to <4 x i32>
%94 = add <4 x i32> %93, <i32 24, i32 25, i32 26, i32 27>
%95 = bitcast i32* %92 to <4 x i32>*
store <4 x i32> %94, <4 x i32>* %95
%96 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 2, i64 %64, i64 28
%97 = trunc i64 %65 to i32
%98 = add i32 %97, 28
store i32 %98, i32* %96
%99 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 2, i64 %64, i64 29
%100 = trunc i64 %65 to i32
%101 = add i32 %100, 29
store i32 %101, i32* %99
%102 = add nuw nsw i64 %64, 1
%103 = icmp eq i64 %102, 20
br i1 %103, label %104, label %63
104: ; preds = %63, %104
%105 = phi i64 [ %143, %104 ], [ 0, %63 ]
%106 = mul nuw nsw i64 %105, 3
%107 = insertelement <4 x i64> poison, i64 %106, i64 0
%108 = shufflevector <4 x i64> %107, <4 x i64> poison, <4 x i32> zeroinitializer
%109 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 3, i64 %105, i64 0
%110 = trunc <4 x i64> %108 to <4 x i32>
%111 = add <4 x i32> %110, <i32 0, i32 1, i32 2, i32 3>
%112 = bitcast i32* %109 to <4 x i32>*
store <4 x i32> %111, <4 x i32>* %112
%113 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 3, i64 %105, i64 4
%114 = trunc <4 x i64> %108 to <4 x i32>
%115 = add <4 x i32> %114, <i32 4, i32 5, i32 6, i32 7>
%116 = bitcast i32* %113 to <4 x i32>*
store <4 x i32> %115, <4 x i32>* %116
%117 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 3, i64 %105, i64 8
%118 = trunc <4 x i64> %108 to <4 x i32>
%119 = add <4 x i32> %118, <i32 8, i32 9, i32 10, i32 11>
%120 = bitcast i32* %117 to <4 x i32>*
store <4 x i32> %119, <4 x i32>* %120
%121 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 3, i64 %105, i64 12
%122 = trunc <4 x i64> %108 to <4 x i32>
%123 = add <4 x i32> %122, <i32 12, i32 13, i32 14, i32 15>
%124 = bitcast i32* %121 to <4 x i32>*
store <4 x i32> %123, <4 x i32>* %124
%125 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 3, i64 %105, i64 16
%126 = trunc <4 x i64> %108 to <4 x i32>
%127 = add <4 x i32> %126, <i32 16, i32 17, i32 18, i32 19>
%128 = bitcast i32* %125 to <4 x i32>*
store <4 x i32> %127, <4 x i32>* %128
%129 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 3, i64 %105, i64 20
%130 = trunc <4 x i64> %108 to <4 x i32>
%131 = add <4 x i32> %130, <i32 20, i32 21, i32 22, i32 23>
%132 = bitcast i32* %129 to <4 x i32>*
store <4 x i32> %131, <4 x i32>* %132
%133 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 3, i64 %105, i64 24
%134 = trunc <4 x i64> %108 to <4 x i32>
%135 = add <4 x i32> %134, <i32 24, i32 25, i32 26, i32 27>
%136 = bitcast i32* %133 to <4 x i32>*
store <4 x i32> %135, <4 x i32>* %136
%137 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 3, i64 %105, i64 28
%138 = trunc i64 %106 to i32
%139 = add i32 %138, 28
store i32 %139, i32* %137
%140 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 3, i64 %105, i64 29
%141 = trunc i64 %106 to i32
%142 = add i32 %141, 29
store i32 %142, i32* %140
%143 = add nuw nsw i64 %105, 1
%144 = icmp eq i64 %143, 20
br i1 %144, label %145, label %104
145: ; preds = %104, %145
%146 = phi i64 [ %184, %145 ], [ 0, %104 ]
%147 = shl nuw nsw i64 %146, 2
%148 = insertelement <4 x i64> poison, i64 %147, i64 0
%149 = shufflevector <4 x i64> %148, <4 x i64> poison, <4 x i32> zeroinitializer
%150 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 4, i64 %146, i64 0
%151 = trunc <4 x i64> %149 to <4 x i32>
%152 = or <4 x i32> %151, <i32 0, i32 1, i32 2, i32 3>
%153 = bitcast i32* %150 to <4 x i32>*
store <4 x i32> %152, <4 x i32>* %153
%154 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 4, i64 %146, i64 4
%155 = trunc <4 x i64> %149 to <4 x i32>
%156 = add <4 x i32> %155, <i32 4, i32 5, i32 6, i32 7>
%157 = bitcast i32* %154 to <4 x i32>*
store <4 x i32> %156, <4 x i32>* %157
%158 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 4, i64 %146, i64 8
%159 = trunc <4 x i64> %149 to <4 x i32>
%160 = add <4 x i32> %159, <i32 8, i32 9, i32 10, i32 11>
%161 = bitcast i32* %158 to <4 x i32>*
store <4 x i32> %160, <4 x i32>* %161
%162 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 4, i64 %146, i64 12
%163 = trunc <4 x i64> %149 to <4 x i32>
%164 = add <4 x i32> %163, <i32 12, i32 13, i32 14, i32 15>
%165 = bitcast i32* %162 to <4 x i32>*
store <4 x i32> %164, <4 x i32>* %165
%166 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 4, i64 %146, i64 16
%167 = trunc <4 x i64> %149 to <4 x i32>
%168 = add <4 x i32> %167, <i32 16, i32 17, i32 18, i32 19>
%169 = bitcast i32* %166 to <4 x i32>*
store <4 x i32> %168, <4 x i32>* %169
%170 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 4, i64 %146, i64 20
%171 = trunc <4 x i64> %149 to <4 x i32>
%172 = add <4 x i32> %171, <i32 20, i32 21, i32 22, i32 23>
%173 = bitcast i32* %170 to <4 x i32>*
store <4 x i32> %172, <4 x i32>* %173
%174 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 4, i64 %146, i64 24
%175 = trunc <4 x i64> %149 to <4 x i32>
%176 = add <4 x i32> %175, <i32 24, i32 25, i32 26, i32 27>
%177 = bitcast i32* %174 to <4 x i32>*
store <4 x i32> %176, <4 x i32>* %177
%178 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 4, i64 %146, i64 28
%179 = trunc i64 %147 to i32
%180 = add i32 %179, 28
store i32 %180, i32* %178
%181 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 4, i64 %146, i64 29
%182 = trunc i64 %147 to i32
%183 = add i32 %182, 29
store i32 %183, i32* %181
%184 = add nuw nsw i64 %146, 1
%185 = icmp eq i64 %184, 20
br i1 %185, label %186, label %145
186: ; preds = %145, %186
%187 = phi i64 [ %225, %186 ], [ 0, %145 ]
%188 = mul nuw nsw i64 %187, 5
%189 = insertelement <4 x i64> poison, i64 %188, i64 0
%190 = shufflevector <4 x i64> %189, <4 x i64> poison, <4 x i32> zeroinitializer
%191 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 5, i64 %187, i64 0
%192 = trunc <4 x i64> %190 to <4 x i32>
%193 = add <4 x i32> %192, <i32 0, i32 1, i32 2, i32 3>
%194 = bitcast i32* %191 to <4 x i32>*
store <4 x i32> %193, <4 x i32>* %194
%195 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 5, i64 %187, i64 4
%196 = trunc <4 x i64> %190 to <4 x i32>
%197 = add <4 x i32> %196, <i32 4, i32 5, i32 6, i32 7>
%198 = bitcast i32* %195 to <4 x i32>*
store <4 x i32> %197, <4 x i32>* %198
%199 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 5, i64 %187, i64 8
%200 = trunc <4 x i64> %190 to <4 x i32>
%201 = add <4 x i32> %200, <i32 8, i32 9, i32 10, i32 11>
%202 = bitcast i32* %199 to <4 x i32>*
store <4 x i32> %201, <4 x i32>* %202
%203 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 5, i64 %187, i64 12
%204 = trunc <4 x i64> %190 to <4 x i32>
%205 = add <4 x i32> %204, <i32 12, i32 13, i32 14, i32 15>
%206 = bitcast i32* %203 to <4 x i32>*
store <4 x i32> %205, <4 x i32>* %206
%207 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 5, i64 %187, i64 16
%208 = trunc <4 x i64> %190 to <4 x i32>
%209 = add <4 x i32> %208, <i32 16, i32 17, i32 18, i32 19>
%210 = bitcast i32* %207 to <4 x i32>*
store <4 x i32> %209, <4 x i32>* %210
%211 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 5, i64 %187, i64 20
%212 = trunc <4 x i64> %190 to <4 x i32>
%213 = add <4 x i32> %212, <i32 20, i32 21, i32 22, i32 23>
%214 = bitcast i32* %211 to <4 x i32>*
store <4 x i32> %213, <4 x i32>* %214
%215 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 5, i64 %187, i64 24
%216 = trunc <4 x i64> %190 to <4 x i32>
%217 = add <4 x i32> %216, <i32 24, i32 25, i32 26, i32 27>
%218 = bitcast i32* %215 to <4 x i32>*
store <4 x i32> %217, <4 x i32>* %218
%219 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 5, i64 %187, i64 28
%220 = trunc i64 %188 to i32
%221 = add i32 %220, 28
store i32 %221, i32* %219
%222 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 5, i64 %187, i64 29
%223 = trunc i64 %188 to i32
%224 = add i32 %223, 29
store i32 %224, i32* %222
%225 = add nuw nsw i64 %187, 1
%226 = icmp eq i64 %225, 20
br i1 %226, label %227, label %186
227: ; preds = %186, %227
%228 = phi i64 [ %266, %227 ], [ 0, %186 ]
%229 = mul nuw nsw i64 %228, 6
%230 = insertelement <4 x i64> poison, i64 %229, i64 0
%231 = shufflevector <4 x i64> %230, <4 x i64> poison, <4 x i32> zeroinitializer
%232 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 6, i64 %228, i64 0
%233 = trunc <4 x i64> %231 to <4 x i32>
%234 = add <4 x i32> %233, <i32 0, i32 1, i32 2, i32 3>
%235 = bitcast i32* %232 to <4 x i32>*
store <4 x i32> %234, <4 x i32>* %235
%236 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 6, i64 %228, i64 4
%237 = trunc <4 x i64> %231 to <4 x i32>
%238 = add <4 x i32> %237, <i32 4, i32 5, i32 6, i32 7>
%239 = bitcast i32* %236 to <4 x i32>*
store <4 x i32> %238, <4 x i32>* %239
%240 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 6, i64 %228, i64 8
%241 = trunc <4 x i64> %231 to <4 x i32>
%242 = add <4 x i32> %241, <i32 8, i32 9, i32 10, i32 11>
%243 = bitcast i32* %240 to <4 x i32>*
store <4 x i32> %242, <4 x i32>* %243
%244 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 6, i64 %228, i64 12
%245 = trunc <4 x i64> %231 to <4 x i32>
%246 = add <4 x i32> %245, <i32 12, i32 13, i32 14, i32 15>
%247 = bitcast i32* %244 to <4 x i32>*
store <4 x i32> %246, <4 x i32>* %247
%248 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 6, i64 %228, i64 16
%249 = trunc <4 x i64> %231 to <4 x i32>
%250 = add <4 x i32> %249, <i32 16, i32 17, i32 18, i32 19>
%251 = bitcast i32* %248 to <4 x i32>*
store <4 x i32> %250, <4 x i32>* %251
%252 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 6, i64 %228, i64 20
%253 = trunc <4 x i64> %231 to <4 x i32>
%254 = add <4 x i32> %253, <i32 20, i32 21, i32 22, i32 23>
%255 = bitcast i32* %252 to <4 x i32>*
store <4 x i32> %254, <4 x i32>* %255
%256 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 6, i64 %228, i64 24
%257 = trunc <4 x i64> %231 to <4 x i32>
%258 = add <4 x i32> %257, <i32 24, i32 25, i32 26, i32 27>
%259 = bitcast i32* %256 to <4 x i32>*
store <4 x i32> %258, <4 x i32>* %259
%260 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 6, i64 %228, i64 28
%261 = trunc i64 %229 to i32
%262 = add i32 %261, 28
store i32 %262, i32* %260
%263 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 6, i64 %228, i64 29
%264 = trunc i64 %229 to i32
%265 = add i32 %264, 29
store i32 %265, i32* %263
%266 = add nuw nsw i64 %228, 1
%267 = icmp eq i64 %266, 20
br i1 %267, label %268, label %227
268: ; preds = %227, %268
%269 = phi i64 [ %307, %268 ], [ 0, %227 ]
%270 = mul nuw nsw i64 %269, 7
%271 = insertelement <4 x i64> poison, i64 %270, i64 0
%272 = shufflevector <4 x i64> %271, <4 x i64> poison, <4 x i32> zeroinitializer
%273 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 7, i64 %269, i64 0
%274 = trunc <4 x i64> %272 to <4 x i32>
%275 = add <4 x i32> %274, <i32 0, i32 1, i32 2, i32 3>
%276 = bitcast i32* %273 to <4 x i32>*
store <4 x i32> %275, <4 x i32>* %276
%277 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 7, i64 %269, i64 4
%278 = trunc <4 x i64> %272 to <4 x i32>
%279 = add <4 x i32> %278, <i32 4, i32 5, i32 6, i32 7>
%280 = bitcast i32* %277 to <4 x i32>*
store <4 x i32> %279, <4 x i32>* %280
%281 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 7, i64 %269, i64 8
%282 = trunc <4 x i64> %272 to <4 x i32>
%283 = add <4 x i32> %282, <i32 8, i32 9, i32 10, i32 11>
%284 = bitcast i32* %281 to <4 x i32>*
store <4 x i32> %283, <4 x i32>* %284
%285 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 7, i64 %269, i64 12
%286 = trunc <4 x i64> %272 to <4 x i32>
%287 = add <4 x i32> %286, <i32 12, i32 13, i32 14, i32 15>
%288 = bitcast i32* %285 to <4 x i32>*
store <4 x i32> %287, <4 x i32>* %288
%289 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 7, i64 %269, i64 16
%290 = trunc <4 x i64> %272 to <4 x i32>
%291 = add <4 x i32> %290, <i32 16, i32 17, i32 18, i32 19>
%292 = bitcast i32* %289 to <4 x i32>*
store <4 x i32> %291, <4 x i32>* %292
%293 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 7, i64 %269, i64 20
%294 = trunc <4 x i64> %272 to <4 x i32>
%295 = add <4 x i32> %294, <i32 20, i32 21, i32 22, i32 23>
%296 = bitcast i32* %293 to <4 x i32>*
store <4 x i32> %295, <4 x i32>* %296
%297 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 7, i64 %269, i64 24
%298 = trunc <4 x i64> %272 to <4 x i32>
%299 = add <4 x i32> %298, <i32 24, i32 25, i32 26, i32 27>
%300 = bitcast i32* %297 to <4 x i32>*
store <4 x i32> %299, <4 x i32>* %300
%301 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 7, i64 %269, i64 28
%302 = trunc i64 %270 to i32
%303 = add i32 %302, 28
store i32 %303, i32* %301
%304 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 7, i64 %269, i64 29
%305 = trunc i64 %270 to i32
%306 = add i32 %305, 29
store i32 %306, i32* %304
%307 = add nuw nsw i64 %269, 1
%308 = icmp eq i64 %307, 20
br i1 %308, label %309, label %268
309: ; preds = %268, %309
%310 = phi i64 [ %348, %309 ], [ 0, %268 ]
%311 = shl nuw nsw i64 %310, 3
%312 = insertelement <4 x i64> poison, i64 %311, i64 0
%313 = shufflevector <4 x i64> %312, <4 x i64> poison, <4 x i32> zeroinitializer
%314 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 8, i64 %310, i64 0
%315 = trunc <4 x i64> %313 to <4 x i32>
%316 = or <4 x i32> %315, <i32 0, i32 1, i32 2, i32 3>
%317 = bitcast i32* %314 to <4 x i32>*
store <4 x i32> %316, <4 x i32>* %317
%318 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 8, i64 %310, i64 4
%319 = trunc <4 x i64> %313 to <4 x i32>
%320 = or <4 x i32> %319, <i32 4, i32 5, i32 6, i32 7>
%321 = bitcast i32* %318 to <4 x i32>*
store <4 x i32> %320, <4 x i32>* %321
%322 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 8, i64 %310, i64 8
%323 = trunc <4 x i64> %313 to <4 x i32>
%324 = add <4 x i32> %323, <i32 8, i32 9, i32 10, i32 11>
%325 = bitcast i32* %322 to <4 x i32>*
store <4 x i32> %324, <4 x i32>* %325
%326 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 8, i64 %310, i64 12
%327 = trunc <4 x i64> %313 to <4 x i32>
%328 = add <4 x i32> %327, <i32 12, i32 13, i32 14, i32 15>
%329 = bitcast i32* %326 to <4 x i32>*
store <4 x i32> %328, <4 x i32>* %329
%330 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 8, i64 %310, i64 16
%331 = trunc <4 x i64> %313 to <4 x i32>
%332 = add <4 x i32> %331, <i32 16, i32 17, i32 18, i32 19>
%333 = bitcast i32* %330 to <4 x i32>*
store <4 x i32> %332, <4 x i32>* %333
%334 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 8, i64 %310, i64 20
%335 = trunc <4 x i64> %313 to <4 x i32>
%336 = add <4 x i32> %335, <i32 20, i32 21, i32 22, i32 23>
%337 = bitcast i32* %334 to <4 x i32>*
store <4 x i32> %336, <4 x i32>* %337
%338 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 8, i64 %310, i64 24
%339 = trunc <4 x i64> %313 to <4 x i32>
%340 = add <4 x i32> %339, <i32 24, i32 25, i32 26, i32 27>
%341 = bitcast i32* %338 to <4 x i32>*
store <4 x i32> %340, <4 x i32>* %341
%342 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 8, i64 %310, i64 28
%343 = trunc i64 %311 to i32
%344 = add i32 %343, 28
store i32 %344, i32* %342
%345 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 8, i64 %310, i64 29
%346 = trunc i64 %311 to i32
%347 = add i32 %346, 29
store i32 %347, i32* %345
%348 = add nuw nsw i64 %310, 1
%349 = icmp eq i64 %348, 20
br i1 %349, label %350, label %309
350: ; preds = %309, %350
%351 = phi i64 [ %389, %350 ], [ 0, %309 ]
%352 = mul nuw nsw i64 %351, 9
%353 = insertelement <4 x i64> poison, i64 %352, i64 0
%354 = shufflevector <4 x i64> %353, <4 x i64> poison, <4 x i32> zeroinitializer
%355 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 9, i64 %351, i64 0
%356 = trunc <4 x i64> %354 to <4 x i32>
%357 = add <4 x i32> %356, <i32 0, i32 1, i32 2, i32 3>
%358 = bitcast i32* %355 to <4 x i32>*
store <4 x i32> %357, <4 x i32>* %358
%359 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 9, i64 %351, i64 4
%360 = trunc <4 x i64> %354 to <4 x i32>
%361 = add <4 x i32> %360, <i32 4, i32 5, i32 6, i32 7>
%362 = bitcast i32* %359 to <4 x i32>*
store <4 x i32> %361, <4 x i32>* %362
%363 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 9, i64 %351, i64 8
%364 = trunc <4 x i64> %354 to <4 x i32>
%365 = add <4 x i32> %364, <i32 8, i32 9, i32 10, i32 11>
%366 = bitcast i32* %363 to <4 x i32>*
store <4 x i32> %365, <4 x i32>* %366
%367 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 9, i64 %351, i64 12
%368 = trunc <4 x i64> %354 to <4 x i32>
%369 = add <4 x i32> %368, <i32 12, i32 13, i32 14, i32 15>
%370 = bitcast i32* %367 to <4 x i32>*
store <4 x i32> %369, <4 x i32>* %370
%371 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 9, i64 %351, i64 16
%372 = trunc <4 x i64> %354 to <4 x i32>
%373 = add <4 x i32> %372, <i32 16, i32 17, i32 18, i32 19>
%374 = bitcast i32* %371 to <4 x i32>*
store <4 x i32> %373, <4 x i32>* %374
%375 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 9, i64 %351, i64 20
%376 = trunc <4 x i64> %354 to <4 x i32>
%377 = add <4 x i32> %376, <i32 20, i32 21, i32 22, i32 23>
%378 = bitcast i32* %375 to <4 x i32>*
store <4 x i32> %377, <4 x i32>* %378
%379 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 9, i64 %351, i64 24
%380 = trunc <4 x i64> %354 to <4 x i32>
%381 = add <4 x i32> %380, <i32 24, i32 25, i32 26, i32 27>
%382 = bitcast i32* %379 to <4 x i32>*
store <4 x i32> %381, <4 x i32>* %382
%383 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 9, i64 %351, i64 28
%384 = trunc i64 %352 to i32
%385 = add i32 %384, 28
store i32 %385, i32* %383
%386 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 9, i64 %351, i64 29
%387 = trunc i64 %352 to i32
%388 = add i32 %387, 29
store i32 %388, i32* %386
%389 = add nuw nsw i64 %351, 1
%390 = icmp eq i64 %389, 20
br i1 %390, label %391, label %350
391: ; preds = %350, %423
%392 = phi i64 [ %424, %423 ], [ 0, %350 ]
br label %393
393: ; preds = %391, %420
%394 = phi i64 [ 0, %391 ], [ %421, %420 ]
%395 = mul nuw nsw i64 %394, %392
br label %413
396: ; preds = %413
%397 = add nuw nsw i64 %414, 1
%398 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 %392, i64 %394, i64 %397
%399 = load i32, i32* %398
%400 = add nuw nsw i64 %397, %395
%401 = zext i32 %399 to i64
%402 = icmp eq i64 %400, %401
br i1 %402, label %403, label %428
403: ; preds = %396
%404 = add nuw nsw i64 %414, 2
%405 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 %392, i64 %394, i64 %404
%406 = load i32, i32* %405
%407 = add nuw nsw i64 %404, %395
%408 = zext i32 %406 to i64
%409 = icmp eq i64 %407, %408
br i1 %409, label %410, label %428
410: ; preds = %403
%411 = add nuw nsw i64 %414, 3
%412 = icmp eq i64 %411, 30
br i1 %412, label %420, label %413
413: ; preds = %410, %393
%414 = phi i64 [ 0, %393 ], [ %411, %410 ]
%415 = getelementptr inbounds [10 x [20 x [30 x i32]]], [10 x [20 x [30 x i32]]]* %1, i64 0, i64 %392, i64 %394, i64 %414
%416 = load i32, i32* %415
%417 = add nuw nsw i64 %414, %395
%418 = zext i32 %416 to i64
%419 = icmp eq i64 %417, %418
br i1 %419, label %396, label %428
420: ; preds = %410
%421 = add nuw nsw i64 %394, 1
%422 = icmp eq i64 %421, 20
br i1 %422, label %423, label %393
423: ; preds = %420
%424 = add nuw nsw i64 %392, 1
%425 = icmp eq i64 %424, 10
br i1 %425, label %426, label %391
426: ; preds = %423
%427 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([5 x i8], [5 x i8]* @str, i64 0, i64 0))
br label %428
428: ; preds = %413, %396, %403, %426
%429 = phi i32 [ 0, %426 ], [ 1, %403 ], [ 1, %396 ], [ 1, %413 ]
ret i32 %429
}