// File: hey-yahei[P]ConvNet/tests/test_mymodel.cpp
// Function: Model::Run(float*)
float* Run(float* x) {
			int shape[4];
		float* x_ = conv1->Run(x);
			conv1->GetOutputShape(shape);
			SaveToFile("../outputs/my_testmodel/conv1.output.dat", (char*)x_, shape[0] * shape[1] * shape[2] * shape[3] * sizeof(float));
		x = conv2->Run(x_, true);
			conv2->GetOutputShape(shape);
			SaveToFile("../outputs/my_testmodel/conv2.output.dat", (char*)x, shape[0] * shape[1] * shape[2] * shape[3] * sizeof(float));
		x = elt->Run(x_, x);
			elt->GetOutputShape(shape);
			SaveToFile("../outputs/my_testmodel/elt.output.dat", (char*)x, shape[0] * shape[1] * shape[2] * shape[3] * sizeof(float));
		x_ = conv3->Run(x, true);
			conv3->GetOutputShape(shape);
			SaveToFile("../outputs/my_testmodel/conv3.output.dat", (char*)x_, shape[0] * shape[1] * shape[2] * shape[3] * sizeof(float));
		x = cat->Run(x, x_);	// clear all inputs
			cat->GetOutputShape(shape);
			SaveToFile("../outputs/my_testmodel/cat.output.dat", (char*)x, shape[0] * shape[1] * shape[2] * shape[3] * sizeof(float));
		x = pool->Run(x);
			pool ->GetOutputShape(shape);
			SaveToFile("../outputs/my_testmodel/pool.output.dat", (char*)x, shape[0] * shape[1] * shape[2] * shape[3] * sizeof(float));
		x = fc1->Run(x);
			fc1->GetOutputShape(shape);
			SaveToFile("../outputs/my_testmodel/fc1.output.dat", (char*)x, shape[0] * shape[1] * sizeof(float));
		x = fc2->Run(x);
		return x;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
movq (%rax), %rdi
movq -0x10(%rbp), %rsi
xorl %edx, %edx
callq 0x6790
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, -0x28(%rbp)
movq (%rax), %rdi
leaq -0x20(%rbp), %rsi
callq 0x2f90
movq -0x28(%rbp), %rsi
movl -0x20(%rbp), %eax
imull -0x1c(%rbp), %eax
imull -0x18(%rbp), %eax
imull -0x14(%rbp), %eax
movslq %eax, %rdx
shlq $0x2, %rdx
leaq 0x94e0(%rip), %rdi      # 0xc15e
callq 0x80f0
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x28(%rbp), %rsi
movl $0x1, %edx
callq 0x6790
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, -0x10(%rbp)
movq 0x8(%rax), %rdi
leaq -0x20(%rbp), %rsi
callq 0x2f90
movq -0x10(%rbp), %rsi
movl -0x20(%rbp), %eax
imull -0x1c(%rbp), %eax
imull -0x18(%rbp), %eax
imull -0x14(%rbp), %eax
movslq %eax, %rdx
shlq $0x2, %rdx
leaq 0x94b5(%rip), %rdi      # 0xc187
callq 0x80f0
movq -0x30(%rbp), %rax
movq 0x30(%rax), %rdi
movq -0x28(%rbp), %rsi
movq -0x10(%rbp), %rdx
xorl %r8d, %r8d
movl %r8d, %ecx
callq 0x6cb0
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, -0x10(%rbp)
movq 0x30(%rax), %rdi
leaq -0x20(%rbp), %rsi
callq 0x2fc0
movq -0x10(%rbp), %rsi
movl -0x20(%rbp), %eax
imull -0x1c(%rbp), %eax
imull -0x18(%rbp), %eax
imull -0x14(%rbp), %eax
movslq %eax, %rdx
shlq $0x2, %rdx
leaq 0x9485(%rip), %rdi      # 0xc1b0
callq 0x80f0
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x10(%rbp), %rsi
movl $0x1, %edx
callq 0x6790
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, -0x28(%rbp)
movq 0x10(%rax), %rdi
leaq -0x20(%rbp), %rsi
callq 0x2f90
movq -0x28(%rbp), %rsi
movl -0x20(%rbp), %eax
imull -0x1c(%rbp), %eax
imull -0x18(%rbp), %eax
imull -0x14(%rbp), %eax
movslq %eax, %rdx
shlq $0x2, %rdx
leaq 0x9458(%rip), %rdi      # 0xc1d7
callq 0x80f0
movq -0x30(%rbp), %rax
movq 0x38(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x28(%rbp), %rdx
movb $0x0, %al
callq 0x3b60
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, -0x10(%rbp)
movq 0x38(%rax), %rdi
leaq -0x20(%rbp), %rsi
callq 0x2ff0
movq -0x10(%rbp), %rsi
movl -0x20(%rbp), %eax
imull -0x1c(%rbp), %eax
imull -0x18(%rbp), %eax
imull -0x14(%rbp), %eax
movslq %eax, %rdx
shlq $0x2, %rdx
leaq 0x942c(%rip), %rdi      # 0xc200
callq 0x80f0
movq -0x30(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x10(%rbp), %rsi
xorl %edx, %edx
callq 0x7460
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, -0x10(%rbp)
movq 0x28(%rax), %rdi
leaq -0x20(%rbp), %rsi
callq 0x3020
movq -0x10(%rbp), %rsi
movl -0x20(%rbp), %eax
imull -0x1c(%rbp), %eax
imull -0x18(%rbp), %eax
imull -0x14(%rbp), %eax
movslq %eax, %rdx
shlq $0x2, %rdx
leaq 0x9402(%rip), %rdi      # 0xc227
callq 0x80f0
movq -0x30(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x10(%rbp), %rsi
xorl %edx, %edx
callq 0x70c0
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, -0x10(%rbp)
movq 0x18(%rax), %rdi
leaq -0x20(%rbp), %rsi
callq 0x3050
movq -0x10(%rbp), %rsi
movl -0x20(%rbp), %eax
imull -0x1c(%rbp), %eax
movslq %eax, %rdx
shlq $0x2, %rdx
leaq 0x93e1(%rip), %rdi      # 0xc24f
callq 0x80f0
movq -0x30(%rbp), %rax
movq 0x20(%rax), %rdi
movq -0x10(%rbp), %rsi
xorl %edx, %edx
callq 0x70c0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop