// File: /workspace/github_cpp_makefile_star2_O2/aronszanto[P]strassen/main.cpp
// Function: testInitPadding()
void testInitPadding(){
    Matrix* A = new Matrix();
    initMatrix(A,2);
    Matrix* B = new Matrix();
    initMatrix(B,4);
    A->matrix = {{1,1},{1,1}};
    B->matrix = {{1,1,0,0},{1,1,0,0},{0,0,0,0},{0,0,0,0}};

    initPadding(A,4);
    assert(isEqual(A,B));
    cout << "all initPadding tests pass" << endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
pushq $0x20
popq %r14
movq %r14, %rdi
callq 0x2190
movq %rax, %rbx
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
pushq $0x2
popq %rsi
movq %rax, %rdi
callq 0x23cc
movq %r14, %rdi
callq 0x2190
movq %rax, %r14
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
pushq $0x4
popq %rsi
movq %rax, %rdi
callq 0x23cc
movabsq $0x100000001, %r12      # imm = 0x100000001
leaq 0xa0(%rsp), %rsi
movq %r12, (%rsi)
leaq 0x10(%rsp), %rdi
pushq $0x2
popq %rdx
leaq 0x80(%rsp), %rcx
callq 0x716a
leaq 0x28(%rsp), %r15
leaq 0x90(%rsp), %rsi
movq %r12, (%rsi)
pushq $0x2
popq %rdx
leaq 0x70(%rsp), %rcx
movq %r15, %rdi
callq 0x716a
leaq 0x8(%rbx), %rdi
leaq 0x40(%rsp), %rbp
leaq 0x10(%rsp), %rsi
movq %rbp, %rdx
callq 0x86b8
movq %r14, %r13
addq $0x8, %r13
pushq $0x18
popq %r12
leaq (%rsp,%r12), %rdi
addq $0x10, %rdi
callq 0x8634
addq $-0x18, %r12
cmpq $-0x18, %r12
jne 0x61d1
movsd 0x2ef0(%rip), %xmm0     # 0x90e0
leaq 0xa0(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0x10(%rsp), %r12
pushq $0x4
popq %rdx
leaq 0xf(%rsp), %rcx
movq %r12, %rdi
callq 0x716a
leaq 0x90(%rsp), %rsi
movsd 0x2ec0(%rip), %xmm0     # 0x90e0
movaps %xmm0, (%rsi)
pushq $0x4
popq %rdx
leaq 0xe(%rsp), %rcx
movq %r15, %rdi
callq 0x716a
xorps %xmm0, %xmm0
leaq 0x80(%rsp), %rsi
movaps %xmm0, (%rsi)
pushq $0x4
popq %rdx
leaq 0xd(%rsp), %rcx
movq %rbp, %rdi
callq 0x716a
leaq 0x58(%rsp), %r15
leaq 0x70(%rsp), %rsi
xorps %xmm0, %xmm0
movaps %xmm0, (%rsi)
pushq $0x4
popq %rdx
leaq 0xc(%rsp), %rcx
movq %r15, %rdi
callq 0x716a
leaq 0x70(%rsp), %rdx
leaq 0x10(%rsp), %rsi
movq %r13, %rdi
callq 0x86b8
pushq $0x48
popq %r15
leaq (%rsp,%r15), %rdi
addq $0x10, %rdi
callq 0x8634
addq $-0x18, %r15
cmpq $-0x18, %r15
jne 0x6287
pushq $0x4
popq %rsi
movq %rbx, %rdi
callq 0x253d
movq %rbx, %rdi
movq %r14, %rsi
callq 0x24a3
testb %al, %al
je 0x62e5
movq 0x8d11(%rip), %rdi      # 0xefd0
leaq 0x38cd(%rip), %rsi      # 0x9b93
callq 0x2180
movq %rax, %rdi
callq 0x20e0
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x3883(%rip), %rdi      # 0x9b6f
leaq 0x376d(%rip), %rsi      # 0x9a60
leaq 0x3882(%rip), %rcx      # 0x9b7c
movl $0x288, %edx            # imm = 0x288
callq 0x2110
movq %rax, %rbx
pushq $0x48
popq %r14
leaq (%rsp,%r14), %rdi
addq $0x10, %rdi
callq 0x8634
addq $-0x18, %r14
cmpq $-0x18, %r14
jne 0x630b
jmp 0x6378
jmp 0x632e
movq %rax, %rbx
movq %rbp, %r15
jmp 0x6331
movq %rax, %rbx
addq $-0x18, %r15
movq %r15, %rdi
callq 0x8634
cmpq %r12, %r15
jne 0x6331
jmp 0x6378
jmp 0x6375
movq %rax, %rbx
pushq $0x18
popq %r14
leaq (%rsp,%r14), %rdi
addq $0x10, %rdi
callq 0x8634
addq $-0x18, %r14
cmpq $-0x18, %r14
jne 0x634d
jmp 0x6378
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x8634
jmp 0x6378
movq %rax, %rbx
movq %rbx, %rdi
callq 0x2270