#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 i, j;
  int a[10][10];
  int temp1 = 0, sum = 0;
  for (i = 0; i < 10; i++) {
    for (j = 0; j < 10; j++) {
      a[i][j] = i * i + j * j;
    }
  }
  for (i = 0; i < 10; i++) {
    temp1 = 0;
    for (j = 0; j < 10; j++) {
      temp1 += a[i][j];
    }
    sum += temp1;
  }
  printf("\n%d\n\n", sum);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1b0,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0x0,-0x1a4(%rbp)
movl   $0x0,-0x1a8(%rbp)
movl   $0x0,-0x8(%rbp)
cmpl   $0xa,-0x8(%rbp)
jge    11a2 <main+0x92>
movl   $0x0,-0xc(%rbp)
cmpl   $0xa,-0xc(%rbp)
jge    118f <main+0x7f>
mov    -0x8(%rbp),%edx
imul   -0x8(%rbp),%edx
mov    -0xc(%rbp),%eax
imul   -0xc(%rbp),%eax
add    %eax,%edx
movslq -0x8(%rbp),%rcx
lea    -0x1a0(%rbp),%rax
imul   $0x28,%rcx,%rcx
add    %rcx,%rax
movslq -0xc(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    114e <main+0x3e>
jmp    1194 <main+0x84>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    113d <main+0x2d>
movl   $0x0,-0x8(%rbp)
cmpl   $0xa,-0x8(%rbp)
jge    1221 <main+0x111>
movl   $0x0,-0x1a4(%rbp)
movl   $0x0,-0xc(%rbp)
cmpl   $0xa,-0xc(%rbp)
jge    1201 <main+0xf1>
movslq -0x8(%rbp),%rcx
lea    -0x1a0(%rbp),%rax
imul   $0x28,%rcx,%rcx
add    %rcx,%rax
movslq -0xc(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
add    -0x1a4(%rbp),%eax
mov    %eax,-0x1a4(%rbp)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    11c4 <main+0xb4>
mov    -0x1a4(%rbp),%eax
add    -0x1a8(%rbp),%eax
mov    %eax,-0x1a8(%rbp)
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    11a9 <main+0x99>
mov    -0x1a8(%rbp),%esi
lea    0xdd2(%rip),%rdi
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
add    $0x1b0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
sub    $0x198,%rsp
movl   $0x0,(%rsp)
movaps 0xedb(%rip),%xmm0
movups %xmm0,0x4(%rsp)
movaps 0xedf(%rip),%xmm0
movups %xmm0,0x14(%rsp)
movabs $0x100000051,%rax
mov    %rax,0x24(%rsp)
movaps 0xed4(%rip),%xmm0
movups %xmm0,0x2c(%rsp)
movaps 0xed8(%rip),%xmm0
movups %xmm0,0x3c(%rsp)
movabs $0x400000052,%rax
mov    %rax,0x4c(%rsp)
movaps 0xecd(%rip),%xmm0
movups %xmm0,0x54(%rsp)
movaps 0xed1(%rip),%xmm0
movups %xmm0,0x64(%rsp)
movabs $0x900000055,%rax
mov    %rax,0x74(%rsp)
movaps 0xec6(%rip),%xmm0
movups %xmm0,0x7c(%rsp)
movaps 0xeca(%rip),%xmm0
movups %xmm0,0x8c(%rsp)
movabs $0x100000005a,%rax
mov    %rax,0x9c(%rsp)
movaps 0xeb9(%rip),%xmm0
movups %xmm0,0xa4(%rsp)
movaps 0xeba(%rip),%xmm0
movups %xmm0,0xb4(%rsp)
movabs $0x1900000061,%rax
mov    %rax,0xc4(%rsp)
movaps 0xea9(%rip),%xmm0
movups %xmm0,0xcc(%rsp)
movaps 0xeaa(%rip),%xmm0
movups %xmm0,0xdc(%rsp)
movabs $0x240000006a,%rax
mov    %rax,0xec(%rsp)
movaps 0xe99(%rip),%xmm0
movups %xmm0,0xf4(%rsp)
movaps 0xe9a(%rip),%xmm0
movups %xmm0,0x104(%rsp)
movabs $0x3100000075,%rax
mov    %rax,0x114(%rsp)
movaps 0xe89(%rip),%xmm0
movups %xmm0,0x11c(%rsp)
movaps 0xe8a(%rip),%xmm0
movups %xmm0,0x12c(%rsp)
movabs $0x4000000082,%rax
mov    %rax,0x13c(%rsp)
movaps 0xe79(%rip),%xmm0
movups %xmm0,0x144(%rsp)
movaps 0xe7a(%rip),%xmm0
movups %xmm0,0x154(%rsp)
movabs $0x5100000091,%rax
mov    %rax,0x164(%rsp)
movaps 0xe69(%rip),%xmm0
movups %xmm0,0x16c(%rsp)
movaps 0xe6a(%rip),%xmm0
movups %xmm0,0x17c(%rsp)
movl   $0xa2,0x18c(%rsp)
movdqu 0x8(%rsp),%xmm0
movdqu 0x18(%rsp),%xmm1
paddd  %xmm0,%xmm1
pshufd $0xee,%xmm1,%xmm0
paddd  %xmm1,%xmm0
pshufd $0x55,%xmm0,%xmm1
paddd  %xmm0,%xmm1
movd   %xmm1,%ecx
add    0x4(%rsp),%ecx
add    (%rsp),%ecx
movdqa 0x30(%rsp),%xmm0
paddd  0x40(%rsp),%xmm0
pshufd $0xee,%xmm0,%xmm1
paddd  %xmm0,%xmm1
pshufd $0x55,%xmm1,%xmm0
paddd  %xmm1,%xmm0
movd   %xmm0,%eax
add    0x2c(%rsp),%eax
add    0x28(%rsp),%eax
add    %ecx,%eax
movdqu 0x68(%rsp),%xmm0
movdqu 0x58(%rsp),%xmm1
paddd  %xmm0,%xmm1
pshufd $0xee,%xmm1,%xmm0
paddd  %xmm1,%xmm0
pshufd $0x55,%xmm0,%xmm1
paddd  %xmm0,%xmm1
movd   %xmm1,%edx
add    0x54(%rsp),%edx
add    0x50(%rsp),%edx
movdqa 0x80(%rsp),%xmm0
paddd  0x90(%rsp),%xmm0
pshufd $0xee,%xmm0,%xmm1
paddd  %xmm0,%xmm1
pshufd $0x55,%xmm1,%xmm0
paddd  %xmm1,%xmm0
movd   %xmm0,%ecx
add    0x7c(%rsp),%ecx
add    0x78(%rsp),%ecx
movdqu 0xb8(%rsp),%xmm0
movdqu 0xa8(%rsp),%xmm1
paddd  %xmm0,%xmm1
pshufd $0xee,%xmm1,%xmm0
paddd  %xmm1,%xmm0
pshufd $0x55,%xmm0,%xmm1
paddd  %xmm0,%xmm1
movd   %xmm1,%esi
add    0xa4(%rsp),%esi
add    0xa0(%rsp),%esi
add    %eax,%edx
movdqa 0xd0(%rsp),%xmm0
paddd  0xe0(%rsp),%xmm0
add    %edx,%ecx
pshufd $0xee,%xmm0,%xmm1
paddd  %xmm0,%xmm1
pshufd $0x55,%xmm1,%xmm0
paddd  %xmm1,%xmm0
movd   %xmm0,%eax
add    0xcc(%rsp),%eax
add    0xc8(%rsp),%eax
movdqu 0x108(%rsp),%xmm0
movdqu 0xf8(%rsp),%xmm1
paddd  %xmm0,%xmm1
pshufd $0xee,%xmm1,%xmm0
paddd  %xmm1,%xmm0
pshufd $0x55,%xmm0,%xmm1
paddd  %xmm0,%xmm1
movd   %xmm1,%edx
add    0xf4(%rsp),%edx
add    %ecx,%esi
movdqa 0x120(%rsp),%xmm0
paddd  0x130(%rsp),%xmm0
add    %esi,%eax
pshufd $0xee,%xmm0,%xmm1
paddd  %xmm0,%xmm1
pshufd $0x55,%xmm1,%xmm0
paddd  %xmm1,%xmm0
movd   %xmm0,%ecx
add    0x11c(%rsp),%ecx
add    %eax,%edx
add    %edx,%ecx
movdqu 0x158(%rsp),%xmm0
movdqu 0x148(%rsp),%xmm1
paddd  %xmm0,%xmm1
pshufd $0xee,%xmm1,%xmm0
paddd  %xmm1,%xmm0
pshufd $0x55,%xmm0,%xmm1
paddd  %xmm0,%xmm1
movd   %xmm1,%eax
add    0x144(%rsp),%eax
add    %ecx,%eax
movdqa 0x170(%rsp),%xmm0
paddd  0x180(%rsp),%xmm0
pshufd $0xee,%xmm0,%xmm1
paddd  %xmm0,%xmm1
pshufd $0x55,%xmm1,%xmm0
paddd  %xmm1,%xmm0
movd   %xmm0,%ecx
add    0x16c(%rsp),%ecx
lea    (%rax,%rcx,1),%esi
add    $0xe6,%esi
lea    0xc5e(%rip),%rdi
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x198,%rsp
ret

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

LLVM IR (-O2):
@.str = [6 x i8] c"\0A%d\0A\0A\00"
define i32 @main() {
%1 = alloca [10 x [10 x i32]]
%2 = bitcast [10 x [10 x i32]]* %1 to i8*
%3 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 0, i64 0
store i32 0, i32* %3
%4 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 0, i64 1
%5 = bitcast i32* %4 to <4 x i32>*
store <4 x i32> <i32 1, i32 4, i32 9, i32 16>, <4 x i32>* %5
%6 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 0, i64 5
%7 = bitcast i32* %6 to <4 x i32>*
store <4 x i32> <i32 25, i32 36, i32 49, i32 64>, <4 x i32>* %7
%8 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 0, i64 9
store i32 81, i32* %8
%9 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 1, i64 0
store i32 1, i32* %9
%10 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 1, i64 1
%11 = bitcast i32* %10 to <4 x i32>*
store <4 x i32> <i32 2, i32 5, i32 10, i32 17>, <4 x i32>* %11
%12 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 1, i64 5
%13 = bitcast i32* %12 to <4 x i32>*
store <4 x i32> <i32 26, i32 37, i32 50, i32 65>, <4 x i32>* %13
%14 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 1, i64 9
store i32 82, i32* %14
%15 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 2, i64 0
store i32 4, i32* %15
%16 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 2, i64 1
%17 = bitcast i32* %16 to <4 x i32>*
store <4 x i32> <i32 5, i32 8, i32 13, i32 20>, <4 x i32>* %17
%18 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 2, i64 5
%19 = bitcast i32* %18 to <4 x i32>*
store <4 x i32> <i32 29, i32 40, i32 53, i32 68>, <4 x i32>* %19
%20 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 2, i64 9
store i32 85, i32* %20
%21 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 3, i64 0
store i32 9, i32* %21
%22 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 3, i64 1
%23 = bitcast i32* %22 to <4 x i32>*
store <4 x i32> <i32 10, i32 13, i32 18, i32 25>, <4 x i32>* %23
%24 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 3, i64 5
%25 = bitcast i32* %24 to <4 x i32>*
store <4 x i32> <i32 34, i32 45, i32 58, i32 73>, <4 x i32>* %25
%26 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 3, i64 9
store i32 90, i32* %26
%27 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 4, i64 0
store i32 16, i32* %27
%28 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 4, i64 1
%29 = bitcast i32* %28 to <4 x i32>*
store <4 x i32> <i32 17, i32 20, i32 25, i32 32>, <4 x i32>* %29
%30 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 4, i64 5
%31 = bitcast i32* %30 to <4 x i32>*
store <4 x i32> <i32 41, i32 52, i32 65, i32 80>, <4 x i32>* %31
%32 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 4, i64 9
store i32 97, i32* %32
%33 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 5, i64 0
store i32 25, i32* %33
%34 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 5, i64 1
%35 = bitcast i32* %34 to <4 x i32>*
store <4 x i32> <i32 26, i32 29, i32 34, i32 41>, <4 x i32>* %35
%36 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 5, i64 5
%37 = bitcast i32* %36 to <4 x i32>*
store <4 x i32> <i32 50, i32 61, i32 74, i32 89>, <4 x i32>* %37
%38 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 5, i64 9
store i32 106, i32* %38
%39 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 6, i64 0
store i32 36, i32* %39
%40 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 6, i64 1
%41 = bitcast i32* %40 to <4 x i32>*
store <4 x i32> <i32 37, i32 40, i32 45, i32 52>, <4 x i32>* %41
%42 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 6, i64 5
%43 = bitcast i32* %42 to <4 x i32>*
store <4 x i32> <i32 61, i32 72, i32 85, i32 100>, <4 x i32>* %43
%44 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 6, i64 9
store i32 117, i32* %44
%45 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 7, i64 0
store i32 49, i32* %45
%46 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 7, i64 1
%47 = bitcast i32* %46 to <4 x i32>*
store <4 x i32> <i32 50, i32 53, i32 58, i32 65>, <4 x i32>* %47
%48 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 7, i64 5
%49 = bitcast i32* %48 to <4 x i32>*
store <4 x i32> <i32 74, i32 85, i32 98, i32 113>, <4 x i32>* %49
%50 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 7, i64 9
store i32 130, i32* %50
%51 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 8, i64 0
store i32 64, i32* %51
%52 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 8, i64 1
%53 = bitcast i32* %52 to <4 x i32>*
store <4 x i32> <i32 65, i32 68, i32 73, i32 80>, <4 x i32>* %53
%54 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 8, i64 5
%55 = bitcast i32* %54 to <4 x i32>*
store <4 x i32> <i32 89, i32 100, i32 113, i32 128>, <4 x i32>* %55
%56 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 8, i64 9
store i32 145, i32* %56
%57 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 9, i64 0
store i32 81, i32* %57
%58 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 9, i64 1
%59 = bitcast i32* %58 to <4 x i32>*
store <4 x i32> <i32 82, i32 85, i32 90, i32 97>, <4 x i32>* %59
%60 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 9, i64 5
%61 = bitcast i32* %60 to <4 x i32>*
store <4 x i32> <i32 106, i32 117, i32 130, i32 145>, <4 x i32>* %61
%62 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 9, i64 9
store i32 162, i32* %62
%63 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 0, i64 0
%64 = load i32, i32* %63
%65 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 0, i64 1
%66 = load i32, i32* %65
%67 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 0, i64 2
%68 = bitcast i32* %67 to <8 x i32>*
%69 = load <8 x i32>, <8 x i32>* %68
%70 = call i32 @llvm.vector.reduce.add.v8i32(<8 x i32> %69)
%71 = add nsw i32 %70, %66
%72 = add nsw i32 %71, %64
%73 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 1, i64 0
%74 = load i32, i32* %73
%75 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 1, i64 1
%76 = load i32, i32* %75
%77 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 1, i64 2
%78 = bitcast i32* %77 to <8 x i32>*
%79 = load <8 x i32>, <8 x i32>* %78
%80 = call i32 @llvm.vector.reduce.add.v8i32(<8 x i32> %79)
%81 = add nsw i32 %80, %76
%82 = add nsw i32 %81, %74
%83 = add nsw i32 %82, %72
%84 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 2, i64 0
%85 = load i32, i32* %84
%86 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 2, i64 1
%87 = load i32, i32* %86
%88 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 2, i64 2
%89 = bitcast i32* %88 to <8 x i32>*
%90 = load <8 x i32>, <8 x i32>* %89
%91 = call i32 @llvm.vector.reduce.add.v8i32(<8 x i32> %90)
%92 = add nsw i32 %91, %87
%93 = add nsw i32 %92, %85
%94 = add nsw i32 %93, %83
%95 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 3, i64 0
%96 = load i32, i32* %95
%97 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 3, i64 1
%98 = load i32, i32* %97
%99 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 3, i64 2
%100 = bitcast i32* %99 to <8 x i32>*
%101 = load <8 x i32>, <8 x i32>* %100
%102 = call i32 @llvm.vector.reduce.add.v8i32(<8 x i32> %101)
%103 = add nsw i32 %102, %98
%104 = add nsw i32 %103, %96
%105 = add nsw i32 %104, %94
%106 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 4, i64 0
%107 = load i32, i32* %106
%108 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 4, i64 1
%109 = load i32, i32* %108
%110 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 4, i64 2
%111 = bitcast i32* %110 to <8 x i32>*
%112 = load <8 x i32>, <8 x i32>* %111
%113 = call i32 @llvm.vector.reduce.add.v8i32(<8 x i32> %112)
%114 = add nsw i32 %113, %109
%115 = add nsw i32 %114, %107
%116 = add nsw i32 %115, %105
%117 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 5, i64 0
%118 = load i32, i32* %117
%119 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 5, i64 1
%120 = load i32, i32* %119
%121 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 5, i64 2
%122 = bitcast i32* %121 to <8 x i32>*
%123 = load <8 x i32>, <8 x i32>* %122
%124 = call i32 @llvm.vector.reduce.add.v8i32(<8 x i32> %123)
%125 = add nsw i32 %124, %120
%126 = add nsw i32 %125, %118
%127 = add nsw i32 %126, %116
%128 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 6, i64 0
%129 = load i32, i32* %128
%130 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 6, i64 1
%131 = load i32, i32* %130
%132 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 6, i64 2
%133 = bitcast i32* %132 to <8 x i32>*
%134 = load <8 x i32>, <8 x i32>* %133
%135 = call i32 @llvm.vector.reduce.add.v8i32(<8 x i32> %134)
%136 = add nsw i32 %135, %131
%137 = add nsw i32 %136, %129
%138 = add nsw i32 %137, %127
%139 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 7, i64 0
%140 = load i32, i32* %139
%141 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 7, i64 1
%142 = load i32, i32* %141
%143 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 7, i64 2
%144 = bitcast i32* %143 to <8 x i32>*
%145 = load <8 x i32>, <8 x i32>* %144
%146 = call i32 @llvm.vector.reduce.add.v8i32(<8 x i32> %145)
%147 = add nsw i32 %146, %142
%148 = add nsw i32 %147, %140
%149 = add nsw i32 %148, %138
%150 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 8, i64 0
%151 = load i32, i32* %150
%152 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 8, i64 1
%153 = load i32, i32* %152
%154 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 8, i64 2
%155 = bitcast i32* %154 to <8 x i32>*
%156 = load <8 x i32>, <8 x i32>* %155
%157 = call i32 @llvm.vector.reduce.add.v8i32(<8 x i32> %156)
%158 = add nsw i32 %157, %153
%159 = add nsw i32 %158, %151
%160 = add nsw i32 %159, %149
%161 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 9, i64 0
%162 = load i32, i32* %161
%163 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 9, i64 1
%164 = load i32, i32* %163
%165 = getelementptr inbounds [10 x [10 x i32]], [10 x [10 x i32]]* %1, i64 0, i64 9, i64 2
%166 = bitcast i32* %165 to <8 x i32>*
%167 = load <8 x i32>, <8 x i32>* %166
%168 = call i32 @llvm.vector.reduce.add.v8i32(<8 x i32> %167)
%169 = add nsw i32 %168, %164
%170 = add nsw i32 %169, %162
%171 = add nsw i32 %170, %160
%172 = tail call i32 @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0), i32 %171)
ret i32 0
}