// File: /workspace/github_cpp_makefile_star2_O3/hey-yahei[P]ConvNet/tests/test_mymodel.cpp
// Function: Model::Model()
Model() {
		int in_shape[] = { 1,3,224,224 };
		int shape[4], shape_[4];

		conv1 = new Convolution(3, 2, 1, 12, 1, in_shape, true, false);
		conv1->GetOutputShape(shape);
		conv2 = new Convolution(5, 1, 2, 12, 2, shape, true, true);
		conv2->GetOutputShape(shape);
		elt = new Eltwise("add", shape, false);
		elt->GetOutputShape(shape_);
		conv3 = new Convolution(1, 1, 0, 6, 1, shape, true, false);
		conv3->GetOutputShape(shape);
		cat = new Concat(shape_, shape, nullptr);
		cat->SetKeepOrNot(false, false);
		cat->GetOutputShape(shape);
		pool = new Pooling("max", 7, 7, 0, shape);
		pool->GetOutputShape(shape);
		fc1 = new FullyConnection(100, shape, true, false, true);
		fc1->GetOutputShape(shape);
		fc2 = new FullyConnection(10, shape, false, true, false);

		conv1->LoadWeightFromFile("../models/my_testmodel/conv1.weight.dat");
		conv2->LoadWeightFromFile("../models/my_testmodel/conv2.weight.dat");
		conv2->LoadBiasFromFile("../models/my_testmodel/conv2.bias.dat");
		conv3->LoadWeightFromFile("../models/my_testmodel/conv3.weight.dat");
		fc1->LoadWeightFromFile("../models/my_testmodel/fc1.weight.dat");
		fc2->LoadWeightFromFile("../models/my_testmodel/fc2.weight.dat");
		fc2->LoadBiasFromFile("../models/my_testmodel/fc2.bias.dat");
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x30, %rsp
movq %rdi, %rbx
movaps 0x3bed(%rip), %xmm0     # 0x6280
leaq -0x50(%rbp), %r12
movaps %xmm0, (%r12)
movl $0x80, %edi
callq 0x21a0
movq %rax, %r14
subq $0x8, %rsp
movl $0x1, %r15d
movq %rax, %rdi
movl $0x3, %esi
movl $0x2, %edx
movl $0x1, %ecx
movl $0xc, %r8d
movl $0x1, %r9d
pushq $0x0
pushq $0x1
pushq %r12
callq 0x36e0
addq $0x20, %rsp
movq %r14, (%rbx)
movups 0x30(%r14), %xmm0
leaq -0x30(%rbp), %r12
movaps %xmm0, (%r12)
movl $0x80, %edi
callq 0x21a0
movq %rax, %r14
subq $0x8, %rsp
movq %rax, %rdi
movl $0x5, %esi
movl $0x1, %edx
movl $0x2, %ecx
movl $0xc, %r8d
movl $0x2, %r9d
pushq %r15
pushq %r15
pushq %r12
callq 0x36e0
addq $0x20, %rsp
movq %r14, 0x8(%rbx)
movups 0x30(%r14), %xmm0
leaq -0x30(%rbp), %r14
movaps %xmm0, (%r14)
movl $0x48, %edi
callq 0x21a0
movq %rax, %r15
leaq 0x38f4(%rip), %rsi      # 0x6048
movq %rax, %rdi
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x3c6c
movq %r15, 0x30(%rbx)
movups 0x18(%r15), %xmm0
movaps %xmm0, -0x40(%rbp)
movl $0x80, %edi
callq 0x21a0
movq %rax, %r15
subq $0x8, %rsp
movq %rax, %rdi
movl $0x1, %esi
movl $0x1, %edx
xorl %ecx, %ecx
movl $0x6, %r8d
movl $0x1, %r9d
pushq $0x0
pushq $0x1
pushq %r14
callq 0x36e0
addq $0x20, %rsp
movq %r15, 0x10(%rbx)
movups 0x30(%r15), %xmm0
leaq -0x30(%rbp), %r15
movaps %xmm0, (%r15)
movl $0x60, %edi
callq 0x21a0
movq %rax, %r14
leaq -0x40(%rbp), %rsi
movq %rax, %rdi
movq %r15, %rdx
xorl %ecx, %ecx
xorl %eax, %eax
callq 0x2cdc
movq %r14, 0x38(%rbx)
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
xorl %eax, %eax
callq 0x30ae
movq 0x38(%rbx), %rax
movups 0x18(%rax), %xmm0
movaps %xmm0, (%r15)
movl $0x58, %edi
callq 0x21a0
movq %rax, %r14
leaq 0x3840(%rip), %rsi      # 0x604c
movq %rax, %rdi
movl $0x7, %edx
movl $0x7, %ecx
xorl %r8d, %r8d
movq %r15, %r9
callq 0x4078
movq %r14, 0x28(%rbx)
movups 0x20(%r14), %xmm0
movaps %xmm0, (%r15)
movl $0x30, %edi
callq 0x21a0
movq %rax, %r14
movq %rax, %rdi
movl $0x64, %esi
movq %r15, %rdx
movl $0x1, %ecx
xorl %r8d, %r8d
movl $0x1, %r9d
callq 0x3e70
movq %r14, 0x18(%rbx)
movq 0xc(%r14), %rax
movq %rax, (%r15)
movl $0x30, %edi
callq 0x21a0
movq %rax, %r14
movq %rax, %rdi
movl $0xa, %esi
movq %r15, %rdx
xorl %ecx, %ecx
movl $0x1, %r8d
xorl %r9d, %r9d
callq 0x3e70
movq %r14, 0x20(%rbx)
movq (%rbx), %rdi
leaq 0x37b3(%rip), %rsi      # 0x6050
callq 0x3bf6
movq 0x8(%rbx), %rdi
leaq 0x37cb(%rip), %rsi      # 0x6078
callq 0x3bf6
movq 0x8(%rbx), %rdi
leaq 0x37e3(%rip), %rsi      # 0x60a0
callq 0x3c38
movq 0x10(%rbx), %rdi
leaq 0x37f9(%rip), %rsi      # 0x60c6
callq 0x3bf6
movq 0x18(%rbx), %rdi
leaq 0x3811(%rip), %rsi      # 0x60ee
callq 0x4006
movq 0x20(%rbx), %rdi
leaq 0x3827(%rip), %rsi      # 0x6114
callq 0x4006
movq 0x20(%rbx), %rdi
leaq 0x383d(%rip), %rsi      # 0x613a
callq 0x4042
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2911
movq %rax, %rbx
movl $0x30, %esi
jmp 0x2950
movq %rax, %rbx
movl $0x58, %esi
jmp 0x2950
movq %rax, %rbx
movl $0x60, %esi
jmp 0x2950
movq %rax, %rbx
movl $0x80, %esi
jmp 0x2941
movq %rax, %rbx
movl $0x48, %esi
movq %r15, %rdi
jmp 0x2953
jmp 0x2948
movq %rax, %rbx
movl $0x80, %esi
movq %r14, %rdi
callq 0x21b0
movq %rbx, %rdi
callq 0x22e0