// File: /workspace/github_cpp_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rdi, %rbx
movq (%rdi), %rdi
xorl %edx, %edx
callq 0x3874
movq %rax, %r15
movq (%rbx), %rax
movq 0x30(%rax), %rcx
movl 0x38(%rax), %edx
imull %ecx, %edx
shrq $0x20, %rcx
movslq 0x3c(%rax), %rax
imull %ecx, %edx
movslq %edx, %rdx
imulq %rax, %rdx
shlq $0x2, %rdx
leaq 0x388b(%rip), %rdi      # 0x615e
movq %r15, %rsi
callq 0x489c
movq 0x8(%rbx), %rdi
pushq $0x1
popq %r14
movq %r15, %rsi
movl %r14d, %edx
callq 0x3874
movq %rax, %r12
movq 0x8(%rbx), %rax
movq 0x30(%rax), %rcx
movl 0x38(%rax), %edx
imull %ecx, %edx
shrq $0x20, %rcx
movslq 0x3c(%rax), %rax
imull %ecx, %edx
movslq %edx, %rdx
imulq %rax, %rdx
shlq $0x2, %rdx
leaq 0x386b(%rip), %rdi      # 0x6187
movq %r12, %rsi
callq 0x489c
movq 0x30(%rbx), %rdi
movq %r15, %rsi
movq %r12, %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x3b68
movq %rax, %r15
movq 0x30(%rbx), %rax
movq 0x18(%rax), %rcx
movl 0x20(%rax), %edx
imull %ecx, %edx
shrq $0x20, %rcx
movslq 0x24(%rax), %rax
imull %ecx, %edx
movslq %edx, %rdx
imulq %rax, %rdx
shlq $0x2, %rdx
leaq 0x384a(%rip), %rdi      # 0x61b0
movq %r15, %rsi
callq 0x489c
movq 0x10(%rbx), %rdi
movq %r15, %rsi
movl %r14d, %edx
callq 0x3874
movq %rax, %r14
movq 0x10(%rbx), %rax
movq 0x30(%rax), %rcx
movl 0x38(%rax), %edx
imull %ecx, %edx
shrq $0x20, %rcx
movslq 0x3c(%rax), %rax
imull %ecx, %edx
movslq %edx, %rdx
imulq %rax, %rdx
shlq $0x2, %rdx
leaq 0x382c(%rip), %rdi      # 0x61d7
movq %r14, %rsi
callq 0x489c
movq 0x38(%rbx), %rdi
movq %r15, %rsi
movq %r14, %rdx
xorl %eax, %eax
callq 0x2dc4
movq %rax, %r14
movq 0x38(%rbx), %rax
movq 0x18(%rax), %rcx
movl 0x20(%rax), %edx
imull %ecx, %edx
shrq $0x20, %rcx
movslq 0x24(%rax), %rax
imull %ecx, %edx
movslq %edx, %rdx
imulq %rax, %rdx
shlq $0x2, %rdx
leaq 0x380e(%rip), %rdi      # 0x6200
movq %r14, %rsi
callq 0x489c
movq 0x28(%rbx), %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x3fa8
movq %rax, %r14
movq 0x28(%rbx), %rax
movq 0x20(%rax), %rcx
movl 0x28(%rax), %edx
imull %ecx, %edx
shrq $0x20, %rcx
movslq 0x2c(%rax), %rax
imull %ecx, %edx
movslq %edx, %rdx
imulq %rax, %rdx
shlq $0x2, %rdx
leaq 0x37f1(%rip), %rdi      # 0x6227
movq %r14, %rsi
callq 0x489c
movq 0x18(%rbx), %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x3d7c
movq %rax, %r14
movq 0x18(%rbx), %rax
movq 0xc(%rax), %rax
movq %rax, %rcx
shrq $0x20, %rcx
imull %eax, %ecx
movslq %ecx, %rdx
shlq $0x2, %rdx
leaq 0x37e0(%rip), %rdi      # 0x624f
movq %r14, %rsi
callq 0x489c
movq 0x20(%rbx), %rdi
movq %r14, %rsi
xorl %edx, %edx
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x3d7c
nop