#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);
int main() {
  int arr01[20] = {8, 2, 22, 97, 38, 15, 0,  40, 0,  75,
                   4, 5, 7,  78, 52, 12, 50, 77, 91, 8};
  int arr02[20] = {49, 49, 99, 40, 17, 81, 18, 57, 60, 87,
                   17, 40, 98, 43, 69, 48, 4,  56, 62, 0};
  int arr03[20] = {81, 49, 31, 73, 55, 79, 14, 29, 93, 71,
                   40, 67, 53, 88, 30, 3,  49, 13, 36, 65};
  int arr04[20] = {52, 70, 95, 23, 4,  60, 11, 42, 69, 24,
                   68, 56, 1,  32, 56, 71, 37, 2,  36, 91};
  int arr05[20] = {22, 31, 16, 71, 51, 67, 63, 89, 41, 92,
                   36, 54, 22, 40, 40, 28, 66, 33, 13, 80};
  int arr06[20] = {24, 47, 32, 60, 99, 3,  45, 02, 44, 75,
                   33, 53, 78, 36, 84, 20, 35, 17, 12, 50};
  int arr07[20] = {32, 98, 81, 28, 64, 23, 67, 10, 26, 38,
                   40, 67, 59, 54, 70, 66, 18, 38, 64, 70};
  int arr08[20] = {67, 26, 20, 68, 2,  62, 12, 20, 95, 63,
                   94, 39, 63, 8,  40, 91, 66, 49, 94, 21};
  int arr09[20] = {24, 55, 58, 5,  66, 73, 99, 26, 97, 17,
                   78, 78, 96, 83, 14, 88, 34, 89, 63, 72};
  int arr10[20] = {21, 36, 23, 9,  75, 0,  76, 44, 20, 45,
                   35, 14, 0,  61, 33, 97, 34, 31, 33, 95};
  int arr11[20] = {78, 17, 53, 28, 22, 75, 31, 67, 15, 94,
                   3,  80, 4,  62, 16, 14, 9,  53, 56, 92};
  int arr12[20] = {16, 39, 5, 42, 96, 35, 31, 47, 55, 58,
                   88, 24, 0, 17, 54, 24, 36, 29, 85, 57};
  int arr13[20] = {86, 56, 0,  48, 35, 71, 89, 7,  5,  44,
                   44, 37, 44, 60, 21, 58, 51, 54, 17, 58};
  int arr14[20] = {19, 80, 81, 68, 05, 94, 47, 69, 28, 73,
                   92, 13, 86, 52, 17, 77, 4,  89, 55, 40};
  int arr15[20] = {4,  52, 8,  83, 97, 35, 99, 16, 7,  97,
                   57, 32, 16, 26, 26, 79, 33, 27, 98, 66};
  int arr16[20] = {88, 36, 68, 87, 57, 62, 20, 72, 3,  46,
                   33, 67, 46, 55, 12, 32, 63, 93, 53, 69};
  int arr17[20] = {4,  42, 16, 73, 38, 25, 39, 11, 24, 94,
                   72, 18, 8,  46, 29, 32, 40, 62, 76, 36};
  int arr18[20] = {20, 69, 36, 41, 72, 30, 23, 88, 34, 62,
                   99, 69, 82, 67, 59, 85, 74, 4,  36, 16};
  int arr19[20] = {20, 73, 35, 29, 78, 31, 90, 1,  74, 31,
                   49, 71, 48, 86, 81, 16, 23, 57, 5,  54};
  int arr20[20] = {1,  70, 54, 71, 83, 51, 54, 69, 16, 92,
                   33, 48, 61, 43, 52, 1,  89, 19, 67, 48};
  int *arr[20] = {arr01, arr02, arr03, arr04, arr05, arr06, arr07,
                  arr08, arr09, arr10, arr11, arr12, arr13, arr14,
                  arr15, arr16, arr17, arr18, arr19, arr20};
  int temp;
  int hor = 0;
  int ver = 0;
  int diap = 0;
  int dian = 0;
  int i1, i2;
  for (i1 = 0; i1 < 20; i1++) {
    for (i2 = 0; i2 < 17; i2++) {
      if ((temp = (arr[i1][i2] * arr[i1][i2 + 1] * arr[i1][i2 + 2] *
                   arr[i1][i2 + 3])) > hor)
        hor = temp;
    }
  }
  printf("hor : %d\n", hor);
  for (i1 = 0; i1 < 20; i1++) {
    for (i2 = 0; i2 < 17; i2++) {
      if ((temp = (arr[i2][i1] * arr[i2 + 1][i1] * arr[i2 + 2][i1] *
                   arr[i2 + 3][i1])) > ver)
        ver = temp;
    }
  }
  printf("ver : %d\n", ver);
  for (i1 = 0; i1 < 17; i1++) {
    for (i2 = 3; i2 < 20; i2++) {
      if ((temp = (arr[i1][i2] * arr[i1 + 1][i2 - 1] * arr[i1 + 2][i2 - 2] *
                   arr[i1 + 3][i2 - 3])) > diap)
        diap = temp;
    }
  }
  printf("diap: %d\n", diap);
  for (i1 = 0; i1 < 17; i1++) {
    for (i2 = 0; i2 < 17; i2++) {
      if ((temp = (arr[i1][i2] * arr[i1 + 1][i2 + 1] * arr[i1 + 2][i2 + 2] *
                   arr[i1 + 3][i2 + 3])) > dian)
        dian = temp;
    }
  }
  printf("dian: %d\n", dian);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x710,%rsp
movl   $0x0,-0x4(%rbp)
lea    -0x60(%rbp),%rdi
lea    0xec3(%rip),%rsi
mov    $0x50,%edx
call   1040 <memcpy@plt>
lea    -0xb0(%rbp),%rdi
lea    0x149b(%rip),%rsi
mov    $0x50,%edx
call   1040 <memcpy@plt>
lea    -0x100(%rbp),%rdi
lea    0xee3(%rip),%rsi
mov    $0x50,%edx
call   1040 <memcpy@plt>
lea    -0x150(%rbp),%rdi
lea    0xf1b(%rip),%rsi
mov    $0x50,%edx
call   1040 <memcpy@plt>
lea    -0x1a0(%rbp),%rdi
lea    0xf53(%rip),%rsi
mov    $0x50,%edx
call   1040 <memcpy@plt>
lea    -0x1f0(%rbp),%rdi
lea    0xf8b(%rip),%rsi
mov    $0x50,%edx
call   1040 <memcpy@plt>
lea    -0x240(%rbp),%rdi
lea    0xfc3(%rip),%rsi
mov    $0x50,%edx
call   1040 <memcpy@plt>
lea    -0x290(%rbp),%rdi
lea    0xffb(%rip),%rsi
mov    $0x50,%edx
call   1040 <memcpy@plt>
lea    -0x2e0(%rbp),%rdi
lea    0x1033(%rip),%rsi
mov    $0x50,%edx
call   1040 <memcpy@plt>
lea    -0x330(%rbp),%rdi
lea    0x106b(%rip),%rsi
mov    $0x50,%edx
call   1040 <memcpy@plt>
lea    -0x380(%rbp),%rdi
lea    0x10a3(%rip),%rsi
mov    $0x50,%edx
call   1040 <memcpy@plt>
lea    -0x3d0(%rbp),%rdi
lea    0x10db(%rip),%rsi
mov    $0x50,%edx
call   1040 <memcpy@plt>
lea    -0x420(%rbp),%rdi
lea    0x1113(%rip),%rsi
mov    $0x50,%edx
call   1040 <memcpy@plt>
lea    -0x470(%rbp),%rdi
lea    0x114b(%rip),%rsi
mov    $0x50,%edx
call   1040 <memcpy@plt>
lea    -0x4c0(%rbp),%rdi
lea    0x1183(%rip),%rsi
mov    $0x50,%edx
call   1040 <memcpy@plt>
lea    -0x510(%rbp),%rdi
lea    0x11bb(%rip),%rsi
mov    $0x50,%edx
call   1040 <memcpy@plt>
lea    -0x560(%rbp),%rdi
lea    0x11f3(%rip),%rsi
mov    $0x50,%edx
call   1040 <memcpy@plt>
lea    -0x5b0(%rbp),%rdi
lea    0x122b(%rip),%rsi
mov    $0x50,%edx
call   1040 <memcpy@plt>
lea    -0x600(%rbp),%rdi
lea    0x1263(%rip),%rsi
mov    $0x50,%edx
call   1040 <memcpy@plt>
lea    -0x650(%rbp),%rdi
lea    0x129b(%rip),%rsi
mov    $0x50,%edx
call   1040 <memcpy@plt>
lea    -0x60(%rbp),%rax
mov    %rax,-0x6f0(%rbp)
lea    -0xb0(%rbp),%rax
mov    %rax,-0x6e8(%rbp)
lea    -0x100(%rbp),%rax
mov    %rax,-0x6e0(%rbp)
lea    -0x150(%rbp),%rax
mov    %rax,-0x6d8(%rbp)
lea    -0x1a0(%rbp),%rax
mov    %rax,-0x6d0(%rbp)
lea    -0x1f0(%rbp),%rax
mov    %rax,-0x6c8(%rbp)
lea    -0x240(%rbp),%rax
mov    %rax,-0x6c0(%rbp)
lea    -0x290(%rbp),%rax
mov    %rax,-0x6b8(%rbp)
lea    -0x2e0(%rbp),%rax
mov    %rax,-0x6b0(%rbp)
lea    -0x330(%rbp),%rax
mov    %rax,-0x6a8(%rbp)
lea    -0x380(%rbp),%rax
mov    %rax,-0x6a0(%rbp)
lea    -0x3d0(%rbp),%rax
mov    %rax,-0x698(%rbp)
lea    -0x420(%rbp),%rax
mov    %rax,-0x690(%rbp)
lea    -0x470(%rbp),%rax
mov    %rax,-0x688(%rbp)
lea    -0x4c0(%rbp),%rax
mov    %rax,-0x680(%rbp)
lea    -0x510(%rbp),%rax
mov    %rax,-0x678(%rbp)
lea    -0x560(%rbp),%rax
mov    %rax,-0x670(%rbp)
lea    -0x5b0(%rbp),%rax
mov    %rax,-0x668(%rbp)
lea    -0x600(%rbp),%rax
mov    %rax,-0x660(%rbp)
lea    -0x650(%rbp),%rax
mov    %rax,-0x658(%rbp)
movl   $0x0,-0x6f8(%rbp)
movl   $0x0,-0x6fc(%rbp)
movl   $0x0,-0x700(%rbp)
movl   $0x0,-0x704(%rbp)
movl   $0x0,-0x708(%rbp)
cmpl   $0x14,-0x708(%rbp)
jge    1540 <main+0x420>
movl   $0x0,-0x70c(%rbp)
cmpl   $0x11,-0x70c(%rbp)
jge    1527 <main+0x407>
movslq -0x708(%rbp),%rax
mov    -0x6f0(%rbp,%rax,8),%rax
ff
movslq -0x70c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
movslq -0x708(%rbp),%rcx
mov    -0x6f0(%rbp,%rcx,8),%rcx
ff
mov    -0x70c(%rbp),%edx
add    $0x1,%edx
movslq %edx,%rdx
imul   (%rcx,%rdx,4),%eax
movslq -0x708(%rbp),%rcx
mov    -0x6f0(%rbp,%rcx,8),%rcx
ff
mov    -0x70c(%rbp),%edx
add    $0x2,%edx
movslq %edx,%rdx
imul   (%rcx,%rdx,4),%eax
movslq -0x708(%rbp),%rcx
mov    -0x6f0(%rbp,%rcx,8),%rcx
ff
mov    -0x70c(%rbp),%edx
add    $0x3,%edx
movslq %edx,%rdx
imul   (%rcx,%rdx,4),%eax
mov    %eax,-0x6f4(%rbp)
cmp    -0x6f8(%rbp),%eax
jle    150e <main+0x3ee>
mov    -0x6f4(%rbp),%eax
mov    %eax,-0x6f8(%rbp)
jmp    1513 <main+0x3f3>
mov    -0x70c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x70c(%rbp)
jmp    146d <main+0x34d>
jmp    152c <main+0x40c>
mov    -0x708(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x708(%rbp)
jmp    1456 <main+0x336>
mov    -0x6f8(%rbp),%esi
lea    0x10f3(%rip),%rdi
call   1030 <printf@plt>
movl   $0x0,-0x708(%rbp)
cmpl   $0x14,-0x708(%rbp)
jge    1646 <main+0x526>
movl   $0x0,-0x70c(%rbp)
cmpl   $0x11,-0x70c(%rbp)
jge    162d <main+0x50d>
movslq -0x70c(%rbp),%rax
mov    -0x6f0(%rbp,%rax,8),%rax
ff
movslq -0x708(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    -0x70c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    -0x6f0(%rbp,%rcx,8),%rcx
ff
movslq -0x708(%rbp),%rdx
imul   (%rcx,%rdx,4),%eax
mov    -0x70c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    -0x6f0(%rbp,%rcx,8),%rcx
ff
movslq -0x708(%rbp),%rdx
imul   (%rcx,%rdx,4),%eax
mov    -0x70c(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
mov    -0x6f0(%rbp,%rcx,8),%rcx
ff
movslq -0x708(%rbp),%rdx
imul   (%rcx,%rdx,4),%eax
mov    %eax,-0x6f4(%rbp)
cmp    -0x6fc(%rbp),%eax
jle    1614 <main+0x4f4>
mov    -0x6f4(%rbp),%eax
mov    %eax,-0x6fc(%rbp)
jmp    1619 <main+0x4f9>
mov    -0x70c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x70c(%rbp)
jmp    1573 <main+0x453>
jmp    1632 <main+0x512>
mov    -0x708(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x708(%rbp)
jmp    155c <main+0x43c>
mov    -0x6fc(%rbp),%esi
lea    0xff7(%rip),%rdi
call   1030 <printf@plt>
movl   $0x0,-0x708(%rbp)
cmpl   $0x11,-0x708(%rbp)
jge    175b <main+0x63b>
movl   $0x3,-0x70c(%rbp)
cmpl   $0x14,-0x70c(%rbp)
jge    1742 <main+0x622>
movslq -0x708(%rbp),%rax
mov    -0x6f0(%rbp,%rax,8),%rax
ff
movslq -0x70c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    -0x708(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    -0x6f0(%rbp,%rcx,8),%rcx
ff
mov    -0x70c(%rbp),%edx
sub    $0x1,%edx
movslq %edx,%rdx
imul   (%rcx,%rdx,4),%eax
mov    -0x708(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    -0x6f0(%rbp,%rcx,8),%rcx
ff
mov    -0x70c(%rbp),%edx
sub    $0x2,%edx
movslq %edx,%rdx
imul   (%rcx,%rdx,4),%eax
mov    -0x708(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
mov    -0x6f0(%rbp,%rcx,8),%rcx
ff
mov    -0x70c(%rbp),%edx
sub    $0x3,%edx
movslq %edx,%rdx
imul   (%rcx,%rdx,4),%eax
mov    %eax,-0x6f4(%rbp)
cmp    -0x700(%rbp),%eax
jle    1729 <main+0x609>
mov    -0x6f4(%rbp),%eax
mov    %eax,-0x700(%rbp)
jmp    172e <main+0x60e>
mov    -0x70c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x70c(%rbp)
jmp    1679 <main+0x559>
jmp    1747 <main+0x627>
mov    -0x708(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x708(%rbp)
jmp    1662 <main+0x542>
mov    -0x700(%rbp),%esi
lea    0xeec(%rip),%rdi
call   1030 <printf@plt>
movl   $0x0,-0x708(%rbp)
cmpl   $0x11,-0x708(%rbp)
jge    1870 <main+0x750>
movl   $0x0,-0x70c(%rbp)
cmpl   $0x11,-0x70c(%rbp)
jge    1857 <main+0x737>
movslq -0x708(%rbp),%rax
mov    -0x6f0(%rbp,%rax,8),%rax
ff
movslq -0x70c(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
mov    -0x708(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    -0x6f0(%rbp,%rcx,8),%rcx
ff
mov    -0x70c(%rbp),%edx
add    $0x1,%edx
movslq %edx,%rdx
imul   (%rcx,%rdx,4),%eax
mov    -0x708(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
mov    -0x6f0(%rbp,%rcx,8),%rcx
ff
mov    -0x70c(%rbp),%edx
add    $0x2,%edx
movslq %edx,%rdx
imul   (%rcx,%rdx,4),%eax
mov    -0x708(%rbp),%ecx
add    $0x3,%ecx
movslq %ecx,%rcx
mov    -0x6f0(%rbp,%rcx,8),%rcx
ff
mov    -0x70c(%rbp),%edx
add    $0x3,%edx
movslq %edx,%rdx
imul   (%rcx,%rdx,4),%eax
mov    %eax,-0x6f4(%rbp)
cmp    -0x704(%rbp),%eax
jle    183e <main+0x71e>
mov    -0x6f4(%rbp),%eax
mov    %eax,-0x704(%rbp)
jmp    1843 <main+0x723>
mov    -0x70c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x70c(%rbp)
jmp    178e <main+0x66e>
jmp    185c <main+0x73c>
mov    -0x708(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x708(%rbp)
jmp    1777 <main+0x657>
mov    -0x704(%rbp),%esi
lea    0xde1(%rip),%rdi
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x710,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %rbx
sub    $0x6e8,%rsp
movaps 0xf20(%rip),%xmm0
movaps %xmm0,0x6d0(%rsp)
movaps 0xf01(%rip),%xmm0
movaps %xmm0,0x6c0(%rsp)
movaps 0xee2(%rip),%xmm0
movaps %xmm0,0x6b0(%rsp)
movaps 0xec3(%rip),%xmm0
movaps %xmm0,0x6a0(%rsp)
movaps 0xea4(%rip),%xmm0
movaps %xmm0,0x690(%rsp)
movaps 0x14c5(%rip),%xmm0
movaps %xmm0,0x680(%rsp)
movaps 0x14a6(%rip),%xmm0
movaps %xmm0,0x670(%rsp)
movaps 0x1487(%rip),%xmm0
movaps %xmm0,0x660(%rsp)
movaps 0x1468(%rip),%xmm0
movaps %xmm0,0x650(%rsp)
movaps 0x1449(%rip),%xmm0
movaps %xmm0,0x640(%rsp)
movaps 0xeda(%rip),%xmm0
movaps %xmm0,0x630(%rsp)
movaps 0xebb(%rip),%xmm0
movaps %xmm0,0x620(%rsp)
movaps 0xe9c(%rip),%xmm0
movaps %xmm0,0x610(%rsp)
movaps 0xe7d(%rip),%xmm0
movaps %xmm0,0x600(%rsp)
movaps 0xe5e(%rip),%xmm0
movaps %xmm0,0x5f0(%rsp)
movaps 0xedf(%rip),%xmm0
movaps %xmm0,0x5e0(%rsp)
movaps 0xec0(%rip),%xmm0
movaps %xmm0,0x5d0(%rsp)
movaps 0xea1(%rip),%xmm0
movaps %xmm0,0x5c0(%rsp)
movaps 0xe82(%rip),%xmm0
movaps %xmm0,0x5b0(%rsp)
movaps 0xe63(%rip),%xmm0
movaps %xmm0,0x5a0(%rsp)
movaps 0xee4(%rip),%xmm0
movaps %xmm0,0x590(%rsp)
movaps 0xec5(%rip),%xmm0
movaps %xmm0,0x580(%rsp)
movaps 0xea6(%rip),%xmm0
movaps %xmm0,0x570(%rsp)
movaps 0xe87(%rip),%xmm0
movaps %xmm0,0x560(%rsp)
movaps 0xe68(%rip),%xmm0
movaps %xmm0,0x550(%rsp)
movaps 0xee9(%rip),%xmm0
movaps %xmm0,0x540(%rsp)
movaps 0xeca(%rip),%xmm0
movaps %xmm0,0x530(%rsp)
movaps 0xeab(%rip),%xmm0
movaps %xmm0,0x520(%rsp)
movaps 0xe8c(%rip),%xmm0
movaps %xmm0,0x510(%rsp)
movaps 0xe6d(%rip),%xmm0
movaps %xmm0,0x500(%rsp)
movaps 0xeee(%rip),%xmm0
movaps %xmm0,0x4f0(%rsp)
movaps 0xecf(%rip),%xmm0
movaps %xmm0,0x4e0(%rsp)
movaps 0xeb0(%rip),%xmm0
movaps %xmm0,0x4d0(%rsp)
movaps 0xe91(%rip),%xmm0
movaps %xmm0,0x4c0(%rsp)
movaps 0xe72(%rip),%xmm0
movaps %xmm0,0x4b0(%rsp)
movaps 0xef3(%rip),%xmm0
movaps %xmm0,0x4a0(%rsp)
movaps 0xed4(%rip),%xmm0
movaps %xmm0,0x490(%rsp)
movaps 0xeb5(%rip),%xmm0
movaps %xmm0,0x480(%rsp)
movaps 0xe96(%rip),%xmm0
movaps %xmm0,0x470(%rsp)
movaps 0xe77(%rip),%xmm0
movaps %xmm0,0x460(%rsp)
movaps 0xef8(%rip),%xmm0
movaps %xmm0,0x450(%rsp)
movaps 0xed9(%rip),%xmm0
movaps %xmm0,0x440(%rsp)
movaps 0xeba(%rip),%xmm0
movaps %xmm0,0x430(%rsp)
movaps 0xe9b(%rip),%xmm0
movaps %xmm0,0x420(%rsp)
movaps 0xe7c(%rip),%xmm0
movaps %xmm0,0x410(%rsp)
movaps 0xefd(%rip),%xmm0
movaps %xmm0,0x400(%rsp)
movaps 0xede(%rip),%xmm0
movaps %xmm0,0x3f0(%rsp)
movaps 0xebf(%rip),%xmm0
movaps %xmm0,0x3e0(%rsp)
movaps 0xea0(%rip),%xmm0
movaps %xmm0,0x3d0(%rsp)
movaps 0xe81(%rip),%xmm0
movaps %xmm0,0x3c0(%rsp)
movaps 0xf02(%rip),%xmm0
movaps %xmm0,0x3b0(%rsp)
movaps 0xee3(%rip),%xmm0
movaps %xmm0,0x3a0(%rsp)
movaps 0xec4(%rip),%xmm0
movaps %xmm0,0x390(%rsp)
movaps 0xea5(%rip),%xmm0
movaps %xmm0,0x380(%rsp)
movaps 0xe86(%rip),%xmm0
movaps %xmm0,0x370(%rsp)
movaps 0xf07(%rip),%xmm0
movaps %xmm0,0x360(%rsp)
movaps 0xee8(%rip),%xmm0
movaps %xmm0,0x350(%rsp)
movaps 0xec9(%rip),%xmm0
movaps %xmm0,0x340(%rsp)
movaps 0xeaa(%rip),%xmm0
movaps %xmm0,0x330(%rsp)
movaps 0xe8b(%rip),%xmm0
movaps %xmm0,0x320(%rsp)
movaps 0xf0c(%rip),%xmm0
movaps %xmm0,0x310(%rsp)
movaps 0xeed(%rip),%xmm0
movaps %xmm0,0x300(%rsp)
movaps 0xece(%rip),%xmm0
movaps %xmm0,0x2f0(%rsp)
movaps 0xeaf(%rip),%xmm0
movaps %xmm0,0x2e0(%rsp)
movaps 0xe90(%rip),%xmm0
movaps %xmm0,0x2d0(%rsp)
movaps 0xf11(%rip),%xmm0
movaps %xmm0,0x2c0(%rsp)
movaps 0xef2(%rip),%xmm0
movaps %xmm0,0x2b0(%rsp)
movaps 0xed3(%rip),%xmm0
movaps %xmm0,0x2a0(%rsp)
movaps 0xeb4(%rip),%xmm0
movaps %xmm0,0x290(%rsp)
movaps 0xe95(%rip),%xmm0
movaps %xmm0,0x280(%rsp)
movaps 0xf16(%rip),%xmm0
movaps %xmm0,0x270(%rsp)
movaps 0xef7(%rip),%xmm0
movaps %xmm0,0x260(%rsp)
movaps 0xed8(%rip),%xmm0
movaps %xmm0,0x250(%rsp)
movaps 0xeb9(%rip),%xmm0
movaps %xmm0,0x240(%rsp)
movaps 0xe9a(%rip),%xmm0
movaps %xmm0,0x230(%rsp)
movaps 0xf1b(%rip),%xmm0
movaps %xmm0,0x220(%rsp)
movaps 0xefc(%rip),%xmm0
movaps %xmm0,0x210(%rsp)
movaps 0xedd(%rip),%xmm0
movaps %xmm0,0x200(%rsp)
movaps 0xebe(%rip),%xmm0
movaps %xmm0,0x1f0(%rsp)
movaps 0xe9f(%rip),%xmm0
movaps %xmm0,0x1e0(%rsp)
movaps 0xf20(%rip),%xmm0
movaps %xmm0,0x1d0(%rsp)
movaps 0xf01(%rip),%xmm0
movaps %xmm0,0x1c0(%rsp)
movaps 0xee2(%rip),%xmm0
movaps %xmm0,0x1b0(%rsp)
movaps 0xec3(%rip),%xmm0
movaps %xmm0,0x1a0(%rsp)
movaps 0xea4(%rip),%xmm0
movaps %xmm0,0x190(%rsp)
movaps 0xf25(%rip),%xmm0
movaps %xmm0,0x180(%rsp)
movaps 0xf06(%rip),%xmm0
movaps %xmm0,0x170(%rsp)
movaps 0xee7(%rip),%xmm0
movaps %xmm0,0x160(%rsp)
movaps 0xec8(%rip),%xmm0
movaps %xmm0,0x150(%rsp)
movaps 0xea9(%rip),%xmm0
movaps %xmm0,0x140(%rsp)
movaps 0xf2a(%rip),%xmm0
movaps %xmm0,0x130(%rsp)
movaps 0xf0b(%rip),%xmm0
movaps %xmm0,0x120(%rsp)
movaps 0xeec(%rip),%xmm0
movaps %xmm0,0x110(%rsp)
movaps 0xecd(%rip),%xmm0
movaps %xmm0,0x100(%rsp)
movaps 0xeae(%rip),%xmm0
movaps %xmm0,0xf0(%rsp)
movaps 0xf2f(%rip),%xmm0
movaps %xmm0,0xe0(%rsp)
movaps 0xf10(%rip),%xmm0
movaps %xmm0,0xd0(%rsp)
movaps 0xef1(%rip),%xmm0
movaps %xmm0,0xc0(%rsp)
movaps 0xed2(%rip),%xmm0
movaps %xmm0,0xb0(%rsp)
movdqa 0xeb2(%rip),%xmm0
movdqa %xmm0,0xa0(%rsp)
lea    0x690(%rsp),%r9
mov    %r9,(%rsp)
lea    0x640(%rsp),%rax
mov    %rax,0x8(%rsp)
lea    0x5f0(%rsp),%rax
mov    %rax,0x10(%rsp)
lea    0x5a0(%rsp),%rax
mov    %rax,0x18(%rsp)
lea    0x550(%rsp),%rax
mov    %rax,0x20(%rsp)
lea    0x500(%rsp),%rax
mov    %rax,0x28(%rsp)
lea    0x4b0(%rsp),%rax
mov    %rax,0x30(%rsp)
lea    0x460(%rsp),%rax
mov    %rax,0x38(%rsp)
lea    0x410(%rsp),%rax
mov    %rax,0x40(%rsp)
lea    0x3c0(%rsp),%rax
mov    %rax,0x48(%rsp)
lea    0x370(%rsp),%rax
mov    %rax,0x50(%rsp)
lea    0x320(%rsp),%rax
mov    %rax,0x58(%rsp)
lea    0x2d0(%rsp),%rax
mov    %rax,0x60(%rsp)
lea    0x280(%rsp),%rax
mov    %rax,0x68(%rsp)
lea    0x230(%rsp),%rax
mov    %rax,0x70(%rsp)
lea    0x1e0(%rsp),%rax
mov    %rax,0x78(%rsp)
lea    0x190(%rsp),%rax
mov    %rax,0x80(%rsp)
lea    0x140(%rsp),%rax
mov    %rax,0x88(%rsp)
lea    0xf0(%rsp),%rax
mov    %rax,0x90(%rsp)
lea    0xa0(%rsp),%rax
mov    %rax,0x98(%rsp)
xor    %esi,%esi
mov    $0x1,%r8d
xchg   %ax,%ax
mov    0x4(%r9),%ebp
mov    0x8(%r9),%ecx
mov    (%r9),%edi
imul   %ebp,%edi
mov    0xc(%r9),%edx
mov    %ecx,%eax
imul   %edx,%eax
imul   %eax,%edi
cmp    %esi,%edi
jg     1830 <main+0x720>
mov    %esi,%edi
imul   %ebp,%ecx
mov    0x10(%r9),%esi
imul   %esi,%edx
imul   %edx,%ecx
cmp    %edi,%ecx
jg     1843 <main+0x733>
mov    %edi,%ecx
mov    0x14(%r9),%edi
imul   %edi,%esi
imul   %esi,%eax
cmp    %ecx,%eax
jg     1853 <main+0x743>
mov    %ecx,%eax
mov    0x18(%r9),%ecx
imul   %ecx,%edi
imul   %edi,%edx
cmp    %eax,%edx
jg     1863 <main+0x753>
mov    %eax,%edx
mov    0x1c(%r9),%eax
imul   %eax,%ecx
imul   %ecx,%esi
cmp    %edx,%esi
jg     1873 <main+0x763>
mov    %edx,%esi
mov    0x20(%r9),%edx
imul   %edx,%eax
imul   %eax,%edi
cmp    %esi,%edi
jg     1883 <main+0x773>
mov    %esi,%edi
mov    0x24(%r9),%esi
imul   %esi,%edx
imul   %edx,%ecx
cmp    %edi,%ecx
jg     1893 <main+0x783>
mov    %edi,%ecx
mov    0x28(%r9),%edi
imul   %edi,%esi
imul   %esi,%eax
cmp    %ecx,%eax
jg     18a3 <main+0x793>
mov    %ecx,%eax
mov    0x2c(%r9),%ecx
imul   %ecx,%edi
imul   %edi,%edx
cmp    %eax,%edx
jg     18b3 <main+0x7a3>
mov    %eax,%edx
mov    0x30(%r9),%eax
imul   %eax,%ecx
imul   %ecx,%esi
cmp    %edx,%esi
jg     18c3 <main+0x7b3>
mov    %edx,%esi
mov    0x34(%r9),%edx
imul   %edx,%eax
imul   %eax,%edi
cmp    %esi,%edi
jg     18d3 <main+0x7c3>
mov    %esi,%edi
mov    0x38(%r9),%r10d
imul   %r10d,%edx
imul   %edx,%ecx
cmp    %edi,%ecx
jg     18e4 <main+0x7d4>
mov    %edi,%ecx
mov    0x3c(%r9),%edi
imul   %edi,%r10d
imul   %r10d,%eax
cmp    %ecx,%eax
jg     18f6 <main+0x7e6>
mov    %ecx,%eax
mov    0x40(%r9),%esi
imul   %esi,%edi
imul   %edi,%edx
cmp    %eax,%edx
jg     1906 <main+0x7f6>
mov    %eax,%edx
mov    0x44(%r9),%eax
imul   %eax,%esi
imul   %esi,%r10d
cmp    %edx,%r10d
jg     1919 <main+0x809>
mov    %edx,%r10d
mov    0x48(%r9),%ecx
imul   %ecx,%eax
imul   %eax,%edi
cmp    %r10d,%edi
jg     192b <main+0x81b>
mov    %r10d,%edi
imul   %ecx,%esi
imul   0x4c(%r9),%esi
cmp    %edi,%esi
jg     1939 <main+0x829>
mov    %edi,%esi
cmp    $0x14,%r8
je     194c <main+0x83c>
mov    (%rsp,%r8,8),%r9
add    $0x1,%r8
jmp    1810 <main+0x700>
lea    0xced(%rip),%rdi
call   1030 <printf@plt>
mov    (%rsp),%r8
mov    0x8(%rsp),%r9
xor    %r11d,%r11d
mov    0x10(%rsp),%r10
xor    %esi,%esi
jmp    197a <main+0x86a>
nopl   (%rax)
add    $0x1,%r11
cmp    $0x14,%r11
je     19d2 <main+0x8c2>
mov    (%r8,%r11,4),%eax
mov    (%r9,%r11,4),%ecx
mov    (%r10,%r11,4),%ebp
xor    %edi,%edi
mov    %esi,%edx
nopw   0x0(%rax,%rax,1)
mov    %eax,%esi
imul   %ecx,%esi
imul   %ebp,%esi
mov    0x18(%rsp,%rdi,8),%rbx
mov    (%rbx,%r11,4),%ebx
imul   %ebx,%esi
cmp    %edx,%esi
cmovle %edx,%esi
cmp    $0x10,%rdi
je     1970 <main+0x860>
mov    %ebp,%eax
imul   %ebp,%ecx
imul   %ebx,%ecx
mov    0x20(%rsp,%rdi,8),%rdx
add    $0x2,%rdi
mov    (%rdx,%r11,4),%ebp
imul   %ebp,%ecx
cmp    %esi,%ecx
mov    %ecx,%edx
cmovle %esi,%edx
mov    %ebx,%ecx
jmp    1990 <main+0x880>
lea    0xc71(%rip),%rdi
call   1030 <printf@plt>
mov    (%rsp),%rdx
mov    0x8(%rsp),%rdi
xor    %esi,%esi
mov    $0x3,%eax
mov    0x10(%rsp),%rcx
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
movd   %esi,%xmm8
movdqu 0xc(%rdx),%xmm7
movdqu 0x1c(%rdx),%xmm11
movdqu 0x2c(%rdx),%xmm10
movdqu 0x3c(%rdx),%xmm9
movdqu 0x8(%rdi),%xmm15
movdqu 0x18(%rdi),%xmm14
movdqu 0x28(%rdi),%xmm13
movdqu 0x38(%rdi),%xmm12
mov    0x48(%rdi),%esi
imul   0x4c(%rdx),%esi
mov    %rdi,%rdx
mov    %rcx,%rdi
mov    (%rsp,%rax,8),%rcx
pshufd $0x0,%xmm8,%xmm0
pshufd $0xf5,%xmm15,%xmm2
pmuludq %xmm7,%xmm15
pshufd $0xf5,%xmm7,%xmm7
pmuludq %xmm2,%xmm7
movdqu 0x4(%rdi),%xmm2
movdqu 0x14(%rdi),%xmm4
movdqu 0x24(%rdi),%xmm1
movdqu 0x34(%rdi),%xmm8
pshufd $0xf5,%xmm2,%xmm5
pmuludq %xmm7,%xmm5
pmuludq %xmm2,%xmm15
movdqu (%rcx),%xmm2
movdqu 0x10(%rcx),%xmm7
movdqu 0x20(%rcx),%xmm6
movdqu 0x30(%rcx),%xmm3
pmuludq %xmm2,%xmm15
pshufd $0xe8,%xmm15,%xmm15
pshufd $0xf5,%xmm2,%xmm2
pmuludq %xmm5,%xmm2
pshufd $0xe8,%xmm2,%xmm2
punpckldq %xmm2,%xmm15
movdqa %xmm15,%xmm2
pcmpgtd %xmm0,%xmm2
pand   %xmm2,%xmm15
pandn  %xmm0,%xmm2
por    %xmm15,%xmm2
pshufd $0xf5,%xmm14,%xmm0
pmuludq %xmm11,%xmm14
pshufd $0xf5,%xmm11,%xmm5
pmuludq %xmm0,%xmm5
pshufd $0xf5,%xmm4,%xmm0
pmuludq %xmm5,%xmm0
pmuludq %xmm4,%xmm14
pmuludq %xmm7,%xmm14
pshufd $0xe8,%xmm14,%xmm4
pshufd $0xf5,%xmm7,%xmm5
pmuludq %xmm0,%xmm5
pshufd $0xe8,%xmm5,%xmm0
punpckldq %xmm0,%xmm4
movdqa %xmm4,%xmm0
pcmpgtd %xmm2,%xmm0
pand   %xmm0,%xmm4
pandn  %xmm2,%xmm0
por    %xmm4,%xmm0
pshufd $0xf5,%xmm13,%xmm2
pmuludq %xmm10,%xmm13
pshufd $0xf5,%xmm10,%xmm4
pmuludq %xmm2,%xmm4
pshufd $0xf5,%xmm1,%xmm2
pmuludq %xmm4,%xmm2
pmuludq %xmm1,%xmm13
pmuludq %xmm6,%xmm13
pshufd $0xe8,%xmm13,%xmm1
pshufd $0xf5,%xmm6,%xmm4
pmuludq %xmm2,%xmm4
pshufd $0xe8,%xmm4,%xmm2
punpckldq %xmm2,%xmm1
movdqa %xmm1,%xmm2
pcmpgtd %xmm0,%xmm2
pand   %xmm2,%xmm1
pandn  %xmm0,%xmm2
por    %xmm1,%xmm2
pshufd $0xf5,%xmm12,%xmm0
pmuludq %xmm9,%xmm12
pshufd $0xf5,%xmm9,%xmm1
pmuludq %xmm0,%xmm1
pshufd $0xf5,%xmm8,%xmm0
pmuludq %xmm1,%xmm0
pmuludq %xmm8,%xmm12
pmuludq %xmm3,%xmm12
pshufd $0xe8,%xmm12,%xmm1
pshufd $0xf5,%xmm3,%xmm3
pmuludq %xmm0,%xmm3
pshufd $0xe8,%xmm3,%xmm0
punpckldq %xmm0,%xmm1
movdqa %xmm1,%xmm0
pcmpgtd %xmm2,%xmm0
pand   %xmm0,%xmm1
pandn  %xmm2,%xmm0
por    %xmm1,%xmm0
pshufd $0xee,%xmm0,%xmm1
movdqa %xmm0,%xmm2
pcmpgtd %xmm1,%xmm2
pand   %xmm2,%xmm0
pandn  %xmm1,%xmm2
por    %xmm0,%xmm2
pshufd $0x55,%xmm2,%xmm0
movdqa %xmm2,%xmm1
pcmpgtd %xmm0,%xmm1
pand   %xmm1,%xmm2
pandn  %xmm0,%xmm1
por    %xmm2,%xmm1
imul   0x44(%rdi),%esi
movd   %xmm1,%ebp
imul   0x40(%rcx),%esi
cmp    %ebp,%esi
cmovle %ebp,%esi
add    $0x1,%rax
cmp    $0x14,%rax
jne    1a00 <main+0x8f0>
lea    0xa35(%rip),%rdi
call   1030 <printf@plt>
mov    (%rsp),%rdx
mov    0x8(%rsp),%rdi
xor    %esi,%esi
mov    $0x3,%eax
mov    0x10(%rsp),%rcx
nopl   0x0(%rax)
movd   %esi,%xmm8
movdqu (%rdx),%xmm7
movdqu 0x10(%rdx),%xmm11
movdqu 0x20(%rdx),%xmm10
movdqu 0x30(%rdx),%xmm9
movdqu 0x4(%rdi),%xmm6
movdqu 0x14(%rdi),%xmm14
movdqu 0x24(%rdi),%xmm13
movdqu 0x34(%rdi),%xmm12
mov    0x44(%rdi),%esi
imul   0x40(%rdx),%esi
mov    %rdi,%rdx
mov    %rcx,%rdi
mov    (%rsp,%rax,8),%rcx
pshufd $0x0,%xmm8,%xmm1
pshufd $0xf5,%xmm6,%xmm3
pmuludq %xmm7,%xmm6
pshufd $0xf5,%xmm7,%xmm7
pmuludq %xmm3,%xmm7
movdqu 0x8(%rdi),%xmm3
movdqu 0x18(%rdi),%xmm5
movdqu 0x28(%rdi),%xmm0
movdqu 0x38(%rdi),%xmm8
pshufd $0xf5,%xmm3,%xmm4
pmuludq %xmm7,%xmm4
pmuludq %xmm3,%xmm6
movdqu 0xc(%rcx),%xmm3
movdqu 0x1c(%rcx),%xmm7
movdqu 0x2c(%rcx),%xmm2
movdqu 0x3c(%rcx),%xmm15
pmuludq %xmm3,%xmm6
pshufd $0xe8,%xmm6,%xmm6
pshufd $0xf5,%xmm3,%xmm3
pmuludq %xmm4,%xmm3
pshufd $0xe8,%xmm3,%xmm3
punpckldq %xmm3,%xmm6
movdqa %xmm6,%xmm3
pcmpgtd %xmm1,%xmm3
pand   %xmm3,%xmm6
pandn  %xmm1,%xmm3
por    %xmm6,%xmm3
pshufd $0xf5,%xmm14,%xmm1
pmuludq %xmm11,%xmm14
pshufd $0xf5,%xmm11,%xmm4
pmuludq %xmm1,%xmm4
pshufd $0xf5,%xmm5,%xmm1
pmuludq %xmm4,%xmm1
pmuludq %xmm5,%xmm14
pmuludq %xmm7,%xmm14
pshufd $0xe8,%xmm14,%xmm4
pshufd $0xf5,%xmm7,%xmm5
pmuludq %xmm1,%xmm5
pshufd $0xe8,%xmm5,%xmm1
punpckldq %xmm1,%xmm4
movdqa %xmm4,%xmm1
pcmpgtd %xmm3,%xmm1
pand   %xmm1,%xmm4
pandn  %xmm3,%xmm1
por    %xmm4,%xmm1
pshufd $0xf5,%xmm13,%xmm3
pmuludq %xmm10,%xmm13
pshufd $0xf5,%xmm10,%xmm4
pmuludq %xmm3,%xmm4
pshufd $0xf5,%xmm0,%xmm3
pmuludq %xmm4,%xmm3
pmuludq %xmm0,%xmm13
pmuludq %xmm2,%xmm13
pshufd $0xe8,%xmm13,%xmm0
pshufd $0xf5,%xmm2,%xmm2
pmuludq %xmm3,%xmm2
pshufd $0xe8,%xmm2,%xmm2
punpckldq %xmm2,%xmm0
movdqa %xmm0,%xmm2
pcmpgtd %xmm1,%xmm2
pand   %xmm2,%xmm0
pandn  %xmm1,%xmm2
por    %xmm0,%xmm2
pshufd $0xf5,%xmm12,%xmm0
pmuludq %xmm9,%xmm12
pshufd $0xf5,%xmm9,%xmm1
pmuludq %xmm0,%xmm1
pshufd $0xf5,%xmm8,%xmm0
pmuludq %xmm1,%xmm0
pmuludq %xmm8,%xmm12
pmuludq %xmm15,%xmm12
pshufd $0xe8,%xmm12,%xmm1
pshufd $0xf5,%xmm15,%xmm3
pmuludq %xmm0,%xmm3
pshufd $0xe8,%xmm3,%xmm0
punpckldq %xmm0,%xmm1
movdqa %xmm1,%xmm0
pcmpgtd %xmm2,%xmm0
pand   %xmm0,%xmm1
pandn  %xmm2,%xmm0
por    %xmm1,%xmm0
pshufd $0xee,%xmm0,%xmm1
movdqa %xmm0,%xmm2
pcmpgtd %xmm1,%xmm2
pand   %xmm2,%xmm0
pandn  %xmm1,%xmm2
por    %xmm0,%xmm2
pshufd $0x55,%xmm2,%xmm0
movdqa %xmm2,%xmm1
pcmpgtd %xmm0,%xmm1
pand   %xmm1,%xmm2
pandn  %xmm0,%xmm1
por    %xmm2,%xmm1
imul   0x48(%rdi),%esi
movd   %xmm1,%ebp
imul   0x4c(%rcx),%esi
cmp    %ebp,%esi
cmovle %ebp,%esi
add    $0x1,%rax
cmp    $0x14,%rax
jne    1c40 <main+0xb30>
lea    0x807(%rip),%rdi
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x6e8,%rsp
pop    %rbx
pop    %rbp
ret

LLVM IR (-O0):
@__const.main.arr01 = [20 x i32] [i32 8, i32 2, i32 22, i32 97, i32 38, i32 15, i32 0, i32 40, i32 0, i32 75, i32 4, i32 5, i32 7, i32 78, i32 52, i32 12, i32 50, i32 77, i32 91, i32 8]
@__const.main.arr02 = [20 x i32] [i32 49, i32 49, i32 99, i32 40, i32 17, i32 81, i32 18, i32 57, i32 60, i32 87, i32 17, i32 40, i32 98, i32 43, i32 69, i32 48, i32 4, i32 56, i32 62, i32 0]
@__const.main.arr03 = [20 x i32] [i32 81, i32 49, i32 31, i32 73, i32 55, i32 79, i32 14, i32 29, i32 93, i32 71, i32 40, i32 67, i32 53, i32 88, i32 30, i32 3, i32 49, i32 13, i32 36, i32 65]
@__const.main.arr04 = [20 x i32] [i32 52, i32 70, i32 95, i32 23, i32 4, i32 60, i32 11, i32 42, i32 69, i32 24, i32 68, i32 56, i32 1, i32 32, i32 56, i32 71, i32 37, i32 2, i32 36, i32 91]
@__const.main.arr05 = [20 x i32] [i32 22, i32 31, i32 16, i32 71, i32 51, i32 67, i32 63, i32 89, i32 41, i32 92, i32 36, i32 54, i32 22, i32 40, i32 40, i32 28, i32 66, i32 33, i32 13, i32 80]
@__const.main.arr06 = [20 x i32] [i32 24, i32 47, i32 32, i32 60, i32 99, i32 3, i32 45, i32 2, i32 44, i32 75, i32 33, i32 53, i32 78, i32 36, i32 84, i32 20, i32 35, i32 17, i32 12, i32 50]
@__const.main.arr07 = [20 x i32] [i32 32, i32 98, i32 81, i32 28, i32 64, i32 23, i32 67, i32 10, i32 26, i32 38, i32 40, i32 67, i32 59, i32 54, i32 70, i32 66, i32 18, i32 38, i32 64, i32 70]
@__const.main.arr08 = [20 x i32] [i32 67, i32 26, i32 20, i32 68, i32 2, i32 62, i32 12, i32 20, i32 95, i32 63, i32 94, i32 39, i32 63, i32 8, i32 40, i32 91, i32 66, i32 49, i32 94, i32 21]
@__const.main.arr09 = [20 x i32] [i32 24, i32 55, i32 58, i32 5, i32 66, i32 73, i32 99, i32 26, i32 97, i32 17, i32 78, i32 78, i32 96, i32 83, i32 14, i32 88, i32 34, i32 89, i32 63, i32 72]
@__const.main.arr10 = [20 x i32] [i32 21, i32 36, i32 23, i32 9, i32 75, i32 0, i32 76, i32 44, i32 20, i32 45, i32 35, i32 14, i32 0, i32 61, i32 33, i32 97, i32 34, i32 31, i32 33, i32 95]
@__const.main.arr11 = [20 x i32] [i32 78, i32 17, i32 53, i32 28, i32 22, i32 75, i32 31, i32 67, i32 15, i32 94, i32 3, i32 80, i32 4, i32 62, i32 16, i32 14, i32 9, i32 53, i32 56, i32 92]
@__const.main.arr12 = [20 x i32] [i32 16, i32 39, i32 5, i32 42, i32 96, i32 35, i32 31, i32 47, i32 55, i32 58, i32 88, i32 24, i32 0, i32 17, i32 54, i32 24, i32 36, i32 29, i32 85, i32 57]
@__const.main.arr13 = [20 x i32] [i32 86, i32 56, i32 0, i32 48, i32 35, i32 71, i32 89, i32 7, i32 5, i32 44, i32 44, i32 37, i32 44, i32 60, i32 21, i32 58, i32 51, i32 54, i32 17, i32 58]
@__const.main.arr14 = [20 x i32] [i32 19, i32 80, i32 81, i32 68, i32 5, i32 94, i32 47, i32 69, i32 28, i32 73, i32 92, i32 13, i32 86, i32 52, i32 17, i32 77, i32 4, i32 89, i32 55, i32 40]
@__const.main.arr15 = [20 x i32] [i32 4, i32 52, i32 8, i32 83, i32 97, i32 35, i32 99, i32 16, i32 7, i32 97, i32 57, i32 32, i32 16, i32 26, i32 26, i32 79, i32 33, i32 27, i32 98, i32 66]
@__const.main.arr16 = [20 x i32] [i32 88, i32 36, i32 68, i32 87, i32 57, i32 62, i32 20, i32 72, i32 3, i32 46, i32 33, i32 67, i32 46, i32 55, i32 12, i32 32, i32 63, i32 93, i32 53, i32 69]
@__const.main.arr17 = [20 x i32] [i32 4, i32 42, i32 16, i32 73, i32 38, i32 25, i32 39, i32 11, i32 24, i32 94, i32 72, i32 18, i32 8, i32 46, i32 29, i32 32, i32 40, i32 62, i32 76, i32 36]
@__const.main.arr18 = [20 x i32] [i32 20, i32 69, i32 36, i32 41, i32 72, i32 30, i32 23, i32 88, i32 34, i32 62, i32 99, i32 69, i32 82, i32 67, i32 59, i32 85, i32 74, i32 4, i32 36, i32 16]
@__const.main.arr19 = [20 x i32] [i32 20, i32 73, i32 35, i32 29, i32 78, i32 31, i32 90, i32 1, i32 74, i32 31, i32 49, i32 71, i32 48, i32 86, i32 81, i32 16, i32 23, i32 57, i32 5, i32 54]
@__const.main.arr20 = [20 x i32] [i32 1, i32 70, i32 54, i32 71, i32 83, i32 51, i32 54, i32 69, i32 16, i32 92, i32 33, i32 48, i32 61, i32 43, i32 52, i32 1, i32 89, i32 19, i32 67, i32 48]
@.str = [10 x i8] c"hor : %d\0A\00"
@.str.1 = [10 x i8] c"ver : %d\0A\00"
@.str.2 = [10 x i8] c"diap: %d\0A\00"
@.str.3 = [10 x i8] c"dian: %d\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca [20 x i32]
%3 = alloca [20 x i32]
%4 = alloca [20 x i32]
%5 = alloca [20 x i32]
%6 = alloca [20 x i32]
%7 = alloca [20 x i32]
%8 = alloca [20 x i32]
%9 = alloca [20 x i32]
%10 = alloca [20 x i32]
%11 = alloca [20 x i32]
%12 = alloca [20 x i32]
%13 = alloca [20 x i32]
%14 = alloca [20 x i32]
%15 = alloca [20 x i32]
%16 = alloca [20 x i32]
%17 = alloca [20 x i32]
%18 = alloca [20 x i32]
%19 = alloca [20 x i32]
%20 = alloca [20 x i32]
%21 = alloca [20 x i32]
%22 = alloca [20 x i32*]
%23 = alloca i32
%24 = alloca i32
%25 = alloca i32
%26 = alloca i32
%27 = alloca i32
%28 = alloca i32
%29 = alloca i32
store i32 0, i32* %1
%30 = bitcast [20 x i32]* %2 to i8*
%31 = bitcast [20 x i32]* %3 to i8*
%32 = bitcast [20 x i32]* %4 to i8*
%33 = bitcast [20 x i32]* %5 to i8*
%34 = bitcast [20 x i32]* %6 to i8*
%35 = bitcast [20 x i32]* %7 to i8*
%36 = bitcast [20 x i32]* %8 to i8*
%37 = bitcast [20 x i32]* %9 to i8*
%38 = bitcast [20 x i32]* %10 to i8*
%39 = bitcast [20 x i32]* %11 to i8*
%40 = bitcast [20 x i32]* %12 to i8*
%41 = bitcast [20 x i32]* %13 to i8*
%42 = bitcast [20 x i32]* %14 to i8*
%43 = bitcast [20 x i32]* %15 to i8*
%44 = bitcast [20 x i32]* %16 to i8*
%45 = bitcast [20 x i32]* %17 to i8*
%46 = bitcast [20 x i32]* %18 to i8*
%47 = bitcast [20 x i32]* %19 to i8*
%48 = bitcast [20 x i32]* %20 to i8*
%49 = bitcast [20 x i32]* %21 to i8*
%50 = getelementptr inbounds [20 x i32*], [20 x i32*]* %22, i64 0, i64 0
%51 = getelementptr inbounds [20 x i32], [20 x i32]* %2, i64 0, i64 0
store i32* %51, i32** %50
%52 = getelementptr inbounds i32*, i32** %50, i64 1
%53 = getelementptr inbounds [20 x i32], [20 x i32]* %3, i64 0, i64 0
store i32* %53, i32** %52
%54 = getelementptr inbounds i32*, i32** %52, i64 1
%55 = getelementptr inbounds [20 x i32], [20 x i32]* %4, i64 0, i64 0
store i32* %55, i32** %54
%56 = getelementptr inbounds i32*, i32** %54, i64 1
%57 = getelementptr inbounds [20 x i32], [20 x i32]* %5, i64 0, i64 0
store i32* %57, i32** %56
%58 = getelementptr inbounds i32*, i32** %56, i64 1
%59 = getelementptr inbounds [20 x i32], [20 x i32]* %6, i64 0, i64 0
store i32* %59, i32** %58
%60 = getelementptr inbounds i32*, i32** %58, i64 1
%61 = getelementptr inbounds [20 x i32], [20 x i32]* %7, i64 0, i64 0
store i32* %61, i32** %60
%62 = getelementptr inbounds i32*, i32** %60, i64 1
%63 = getelementptr inbounds [20 x i32], [20 x i32]* %8, i64 0, i64 0
store i32* %63, i32** %62
%64 = getelementptr inbounds i32*, i32** %62, i64 1
%65 = getelementptr inbounds [20 x i32], [20 x i32]* %9, i64 0, i64 0
store i32* %65, i32** %64
%66 = getelementptr inbounds i32*, i32** %64, i64 1
%67 = getelementptr inbounds [20 x i32], [20 x i32]* %10, i64 0, i64 0
store i32* %67, i32** %66
%68 = getelementptr inbounds i32*, i32** %66, i64 1
%69 = getelementptr inbounds [20 x i32], [20 x i32]* %11, i64 0, i64 0
store i32* %69, i32** %68
%70 = getelementptr inbounds i32*, i32** %68, i64 1
%71 = getelementptr inbounds [20 x i32], [20 x i32]* %12, i64 0, i64 0
store i32* %71, i32** %70
%72 = getelementptr inbounds i32*, i32** %70, i64 1
%73 = getelementptr inbounds [20 x i32], [20 x i32]* %13, i64 0, i64 0
store i32* %73, i32** %72
%74 = getelementptr inbounds i32*, i32** %72, i64 1
%75 = getelementptr inbounds [20 x i32], [20 x i32]* %14, i64 0, i64 0
store i32* %75, i32** %74
%76 = getelementptr inbounds i32*, i32** %74, i64 1
%77 = getelementptr inbounds [20 x i32], [20 x i32]* %15, i64 0, i64 0
store i32* %77, i32** %76
%78 = getelementptr inbounds i32*, i32** %76, i64 1
%79 = getelementptr inbounds [20 x i32], [20 x i32]* %16, i64 0, i64 0
store i32* %79, i32** %78
%80 = getelementptr inbounds i32*, i32** %78, i64 1
%81 = getelementptr inbounds [20 x i32], [20 x i32]* %17, i64 0, i64 0
store i32* %81, i32** %80
%82 = getelementptr inbounds i32*, i32** %80, i64 1
%83 = getelementptr inbounds [20 x i32], [20 x i32]* %18, i64 0, i64 0
store i32* %83, i32** %82
%84 = getelementptr inbounds i32*, i32** %82, i64 1
%85 = getelementptr inbounds [20 x i32], [20 x i32]* %19, i64 0, i64 0
store i32* %85, i32** %84
%86 = getelementptr inbounds i32*, i32** %84, i64 1
%87 = getelementptr inbounds [20 x i32], [20 x i32]* %20, i64 0, i64 0
store i32* %87, i32** %86
%88 = getelementptr inbounds i32*, i32** %86, i64 1
%89 = getelementptr inbounds [20 x i32], [20 x i32]* %21, i64 0, i64 0
store i32* %89, i32** %88
store i32 0, i32* %24
store i32 0, i32* %25
store i32 0, i32* %26
store i32 0, i32* %27
store i32 0, i32* %28
br label %90
90: ; preds = %145, %0
%91 = load i32, i32* %28
%92 = icmp slt i32 %91, 20
br i1 %92, label %93, label %148
93: ; preds = %90
store i32 0, i32* %29
br label %94
94: ; preds = %141, %93
%95 = load i32, i32* %29
%96 = icmp slt i32 %95, 17
br i1 %96, label %97, label %144
97: ; preds = %94
%98 = load i32, i32* %28
%99 = sext i32 %98 to i64
%100 = getelementptr inbounds [20 x i32*], [20 x i32*]* %22, i64 0, i64 %99
%101 = load i32*, i32** %100
%102 = load i32, i32* %29
%103 = sext i32 %102 to i64
%104 = getelementptr inbounds i32, i32* %101, i64 %103
%105 = load i32, i32* %104
%106 = load i32, i32* %28
%107 = sext i32 %106 to i64
%108 = getelementptr inbounds [20 x i32*], [20 x i32*]* %22, i64 0, i64 %107
%109 = load i32*, i32** %108
%110 = load i32, i32* %29
%111 = add nsw i32 %110, 1
%112 = sext i32 %111 to i64
%113 = getelementptr inbounds i32, i32* %109, i64 %112
%114 = load i32, i32* %113
%115 = mul nsw i32 %105, %114
%116 = load i32, i32* %28
%117 = sext i32 %116 to i64
%118 = getelementptr inbounds [20 x i32*], [20 x i32*]* %22, i64 0, i64 %117
%119 = load i32*, i32** %118
%120 = load i32, i32* %29
%121 = add nsw i32 %120, 2
%122 = sext i32 %121 to i64
%123 = getelementptr inbounds i32, i32* %119, i64 %122
%124 = load i32, i32* %123
%125 = mul nsw i32 %115, %124
%126 = load i32, i32* %28
%127 = sext i32 %126 to i64
%128 = getelementptr inbounds [20 x i32*], [20 x i32*]* %22, i64 0, i64 %127
%129 = load i32*, i32** %128
%130 = load i32, i32* %29
%131 = add nsw i32 %130, 3
%132 = sext i32 %131 to i64
%133 = getelementptr inbounds i32, i32* %129, i64 %132
%134 = load i32, i32* %133
%135 = mul nsw i32 %125, %134
store i32 %135, i32* %23
%136 = load i32, i32* %24
%137 = icmp sgt i32 %135, %136
br i1 %137, label %138, label %140
138: ; preds = %97
%139 = load i32, i32* %23
store i32 %139, i32* %24
br label %140
140: ; preds = %138, %97
br label %141
141: ; preds = %140
%142 = load i32, i32* %29
%143 = add nsw i32 %142, 1
store i32 %143, i32* %29
br label %94
144: ; preds = %94
br label %145
145: ; preds = %144
%146 = load i32, i32* %28
%147 = add nsw i32 %146, 1
store i32 %147, i32* %28
br label %90
148: ; preds = %90
%149 = load i32, i32* %24
%150 = call i32 @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i64 0, i64 0), i32 %149)
store i32 0, i32* %28
br label %151
151: ; preds = %206, %148
%152 = load i32, i32* %28
%153 = icmp slt i32 %152, 20
br i1 %153, label %154, label %209
154: ; preds = %151
store i32 0, i32* %29
br label %155
155: ; preds = %202, %154
%156 = load i32, i32* %29
%157 = icmp slt i32 %156, 17
br i1 %157, label %158, label %205
158: ; preds = %155
%159 = load i32, i32* %29
%160 = sext i32 %159 to i64
%161 = getelementptr inbounds [20 x i32*], [20 x i32*]* %22, i64 0, i64 %160
%162 = load i32*, i32** %161
%163 = load i32, i32* %28
%164 = sext i32 %163 to i64
%165 = getelementptr inbounds i32, i32* %162, i64 %164
%166 = load i32, i32* %165
%167 = load i32, i32* %29
%168 = add nsw i32 %167, 1
%169 = sext i32 %168 to i64
%170 = getelementptr inbounds [20 x i32*], [20 x i32*]* %22, i64 0, i64 %169
%171 = load i32*, i32** %170
%172 = load i32, i32* %28
%173 = sext i32 %172 to i64
%174 = getelementptr inbounds i32, i32* %171, i64 %173
%175 = load i32, i32* %174
%176 = mul nsw i32 %166, %175
%177 = load i32, i32* %29
%178 = add nsw i32 %177, 2
%179 = sext i32 %178 to i64
%180 = getelementptr inbounds [20 x i32*], [20 x i32*]* %22, i64 0, i64 %179
%181 = load i32*, i32** %180
%182 = load i32, i32* %28
%183 = sext i32 %182 to i64
%184 = getelementptr inbounds i32, i32* %181, i64 %183
%185 = load i32, i32* %184
%186 = mul nsw i32 %176, %185
%187 = load i32, i32* %29
%188 = add nsw i32 %187, 3
%189 = sext i32 %188 to i64
%190 = getelementptr inbounds [20 x i32*], [20 x i32*]* %22, i64 0, i64 %189
%191 = load i32*, i32** %190
%192 = load i32, i32* %28
%193 = sext i32 %192 to i64
%194 = getelementptr inbounds i32, i32* %191, i64 %193
%195 = load i32, i32* %194
%196 = mul nsw i32 %186, %195
store i32 %196, i32* %23
%197 = load i32, i32* %25
%198 = icmp sgt i32 %196, %197
br i1 %198, label %199, label %201
199: ; preds = %158
%200 = load i32, i32* %23
store i32 %200, i32* %25
br label %201
201: ; preds = %199, %158
br label %202
202: ; preds = %201
%203 = load i32, i32* %29
%204 = add nsw i32 %203, 1
store i32 %204, i32* %29
br label %155
205: ; preds = %155
br label %206
206: ; preds = %205
%207 = load i32, i32* %28
%208 = add nsw i32 %207, 1
store i32 %208, i32* %28
br label %151
209: ; preds = %151
%210 = load i32, i32* %25
%211 = call i32 @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1, i64 0, i64 0), i32 %210)
store i32 0, i32* %28
br label %212
212: ; preds = %270, %209
%213 = load i32, i32* %28
%214 = icmp slt i32 %213, 17
br i1 %214, label %215, label %273
215: ; preds = %212
store i32 3, i32* %29
br label %216
216: ; preds = %266, %215
%217 = load i32, i32* %29
%218 = icmp slt i32 %217, 20
br i1 %218, label %219, label %269
219: ; preds = %216
%220 = load i32, i32* %28
%221 = sext i32 %220 to i64
%222 = getelementptr inbounds [20 x i32*], [20 x i32*]* %22, i64 0, i64 %221
%223 = load i32*, i32** %222
%224 = load i32, i32* %29
%225 = sext i32 %224 to i64
%226 = getelementptr inbounds i32, i32* %223, i64 %225
%227 = load i32, i32* %226
%228 = load i32, i32* %28
%229 = add nsw i32 %228, 1
%230 = sext i32 %229 to i64
%231 = getelementptr inbounds [20 x i32*], [20 x i32*]* %22, i64 0, i64 %230
%232 = load i32*, i32** %231
%233 = load i32, i32* %29
%234 = sub nsw i32 %233, 1
%235 = sext i32 %234 to i64
%236 = getelementptr inbounds i32, i32* %232, i64 %235
%237 = load i32, i32* %236
%238 = mul nsw i32 %227, %237
%239 = load i32, i32* %28
%240 = add nsw i32 %239, 2
%241 = sext i32 %240 to i64
%242 = getelementptr inbounds [20 x i32*], [20 x i32*]* %22, i64 0, i64 %241
%243 = load i32*, i32** %242
%244 = load i32, i32* %29
%245 = sub nsw i32 %244, 2
%246 = sext i32 %245 to i64
%247 = getelementptr inbounds i32, i32* %243, i64 %246
%248 = load i32, i32* %247
%249 = mul nsw i32 %238, %248
%250 = load i32, i32* %28
%251 = add nsw i32 %250, 3
%252 = sext i32 %251 to i64
%253 = getelementptr inbounds [20 x i32*], [20 x i32*]* %22, i64 0, i64 %252
%254 = load i32*, i32** %253
%255 = load i32, i32* %29
%256 = sub nsw i32 %255, 3
%257 = sext i32 %256 to i64
%258 = getelementptr inbounds i32, i32* %254, i64 %257
%259 = load i32, i32* %258
%260 = mul nsw i32 %249, %259
store i32 %260, i32* %23
%261 = load i32, i32* %26
%262 = icmp sgt i32 %260, %261
br i1 %262, label %263, label %265
263: ; preds = %219
%264 = load i32, i32* %23
store i32 %264, i32* %26
br label %265
265: ; preds = %263, %219
br label %266
266: ; preds = %265
%267 = load i32, i32* %29
%268 = add nsw i32 %267, 1
store i32 %268, i32* %29
br label %216
269: ; preds = %216
br label %270
270: ; preds = %269
%271 = load i32, i32* %28
%272 = add nsw i32 %271, 1
store i32 %272, i32* %28
br label %212
273: ; preds = %212
%274 = load i32, i32* %26
%275 = call i32 @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2, i64 0, i64 0), i32 %274)
store i32 0, i32* %28
br label %276
276: ; preds = %334, %273
%277 = load i32, i32* %28
%278 = icmp slt i32 %277, 17
br i1 %278, label %279, label %337
279: ; preds = %276
store i32 0, i32* %29
br label %280
280: ; preds = %330, %279
%281 = load i32, i32* %29
%282 = icmp slt i32 %281, 17
br i1 %282, label %283, label %333
283: ; preds = %280
%284 = load i32, i32* %28
%285 = sext i32 %284 to i64
%286 = getelementptr inbounds [20 x i32*], [20 x i32*]* %22, i64 0, i64 %285
%287 = load i32*, i32** %286
%288 = load i32, i32* %29
%289 = sext i32 %288 to i64
%290 = getelementptr inbounds i32, i32* %287, i64 %289
%291 = load i32, i32* %290
%292 = load i32, i32* %28
%293 = add nsw i32 %292, 1
%294 = sext i32 %293 to i64
%295 = getelementptr inbounds [20 x i32*], [20 x i32*]* %22, i64 0, i64 %294
%296 = load i32*, i32** %295
%297 = load i32, i32* %29
%298 = add nsw i32 %297, 1
%299 = sext i32 %298 to i64
%300 = getelementptr inbounds i32, i32* %296, i64 %299
%301 = load i32, i32* %300
%302 = mul nsw i32 %291, %301
%303 = load i32, i32* %28
%304 = add nsw i32 %303, 2
%305 = sext i32 %304 to i64
%306 = getelementptr inbounds [20 x i32*], [20 x i32*]* %22, i64 0, i64 %305
%307 = load i32*, i32** %306
%308 = load i32, i32* %29
%309 = add nsw i32 %308, 2
%310 = sext i32 %309 to i64
%311 = getelementptr inbounds i32, i32* %307, i64 %310
%312 = load i32, i32* %311
%313 = mul nsw i32 %302, %312
%314 = load i32, i32* %28
%315 = add nsw i32 %314, 3
%316 = sext i32 %315 to i64
%317 = getelementptr inbounds [20 x i32*], [20 x i32*]* %22, i64 0, i64 %316
%318 = load i32*, i32** %317
%319 = load i32, i32* %29
%320 = add nsw i32 %319, 3
%321 = sext i32 %320 to i64
%322 = getelementptr inbounds i32, i32* %318, i64 %321
%323 = load i32, i32* %322
%324 = mul nsw i32 %313, %323
store i32 %324, i32* %23
%325 = load i32, i32* %27
%326 = icmp sgt i32 %324, %325
br i1 %326, label %327, label %329
327: ; preds = %283
%328 = load i32, i32* %23
store i32 %328, i32* %27
br label %329
329: ; preds = %327, %283
br label %330
330: ; preds = %329
%331 = load i32, i32* %29
%332 = add nsw i32 %331, 1
store i32 %332, i32* %29
br label %280
333: ; preds = %280
br label %334
334: ; preds = %333
%335 = load i32, i32* %28
%336 = add nsw i32 %335, 1
store i32 %336, i32* %28
br label %276
337: ; preds = %276
%338 = load i32, i32* %27
%339 = call i32 @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3, i64 0, i64 0), i32 %338)
ret i32 0
}

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