// File: /workspace/github_cpp_makefile_star2_O1/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
movl $0x20, %edi
callq 0x21b0
movq %rax, %rbx
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movq %rax, %rdi
movl $0x2, %esi
callq 0x245c
movl $0x20, %edi
callq 0x21b0
movq %rax, %r14
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
movaps %xmm0, 0x10(%rax)
movq %rax, %rdi
movl $0x4, %esi
callq 0x245c
movabsq $0x100000001, %r15      # imm = 0x100000001
leaq 0xa0(%rsp), %rsi
movq %r15, (%rsi)
leaq 0x10(%rsp), %r13
leaq 0x80(%rsp), %rcx
movl $0x2, %edx
movq %r13, %rdi
callq 0x7bbe
leaq 0x28(%rsp), %r12
leaq 0x90(%rsp), %rsi
movq %r15, (%rsi)
leaq 0x70(%rsp), %rcx
movl $0x2, %edx
movq %r12, %rdi
callq 0x7bbe
leaq 0x8(%rbx), %rdi
leaq 0x40(%rsp), %r15
leaq 0x10(%rsp), %rsi
movq %r15, %rdx
callq 0x8322
movq %r14, %r13
addq $0x8, %r13
movl $0x18, %r12d
movq 0x10(%rsp,%r12), %rdi
testq %rdi, %rdi
je 0x6696
callq 0x2190
addq $-0x18, %r12
cmpq $-0x18, %r12
jne 0x6687
movsd 0x2a38(%rip), %xmm0     # 0x90e0
leaq 0xa0(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0x10(%rsp), %r12
leaq 0xf(%rsp), %rcx
movl $0x4, %edx
movq %r12, %rdi
callq 0x7bbe
leaq 0x28(%rsp), %rbp
leaq 0x90(%rsp), %rsi
movsd 0x2a01(%rip), %xmm0     # 0x90e0
movaps %xmm0, (%rsi)
leaq 0xe(%rsp), %rcx
movl $0x4, %edx
movq %rbp, %rdi
callq 0x7bbe
xorps %xmm0, %xmm0
leaq 0x80(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0xd(%rsp), %rcx
movl $0x4, %edx
movq %r15, %rdi
callq 0x7bbe
leaq 0x58(%rsp), %r15
leaq 0x70(%rsp), %rsi
xorps %xmm0, %xmm0
movaps %xmm0, (%rsi)
leaq 0xc(%rsp), %rcx
movl $0x4, %edx
movq %r15, %rdi
callq 0x7bbe
leaq 0x70(%rsp), %rdx
leaq 0x10(%rsp), %rsi
movq %r13, %rdi
callq 0x8322
movl $0x48, %r15d
movq 0x10(%rsp,%r15), %rdi
testq %rdi, %rdi
je 0x675d
callq 0x2190
addq $-0x18, %r15
cmpq $-0x18, %r15
jne 0x674e
movq %rbx, %rdi
movl $0x4, %esi
callq 0x262c
movq %rbx, %rdi
movq %r14, %rsi
callq 0x257a
testb %al, %al
je 0x67d7
movq 0x784e(%rip), %rbx      # 0xdfd8
leaq 0x33cc(%rip), %rsi      # 0x9b5d
movl $0x1a, %edx
movq %rbx, %rdi
callq 0x21c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21a0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2120
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x335b(%rip), %rdi      # 0x9b39
leaq 0x32ab(%rip), %rsi      # 0x9a90
leaq 0x335a(%rip), %rcx      # 0x9b46
movl $0x288, %edx            # imm = 0x288
callq 0x2100
movq %rax, %rbx
movl $0x48, %r14d
movq 0x10(%rsp,%r14), %rdi
testq %rdi, %rdi
je 0x680e
callq 0x2190
addq $-0x18, %r14
cmpq $-0x18, %r14
jne 0x67ff
movb $0x1, %al
jmp 0x6823
jmp 0x681e
movq %rax, %rbx
xorl %eax, %eax
movq %r15, %rbp
jmp 0x6837
movq %rax, %rbx
xorl %eax, %eax
jmp 0x6837
movq %rax, %rbx
xorl %eax, %eax
movq %r12, %rbp
cmpq %rbp, %r12
sete %cl
orb %al, %cl
jne 0x68bb
leaq 0x10(%rsp), %r14
movq -0x18(%rbp), %rdi
testq %rdi, %rdi
je 0x6854
callq 0x2190
addq $-0x18, %rbp
cmpq %r14, %rbp
jne 0x6846
jmp 0x68bb
movq %rax, %rbx
movl $0x18, %r14d
movq 0x10(%rsp,%r14), %rdi
testq %rdi, %rdi
je 0x6877
callq 0x2190
addq $-0x18, %r14
cmpq $-0x18, %r14
jne 0x6868
movb $0x1, %al
jmp 0x6894
movq %rax, %rbx
xorl %eax, %eax
jmp 0x6894
movq %rax, %rbx
xorl %eax, %eax
movq %r13, %r12
cmpq %r12, %r13
sete %cl
orb %al, %cl
jne 0x68bb
leaq 0x10(%rsp), %r14
movq -0x18(%r12), %rdi
testq %rdi, %rdi
je 0x68b2
callq 0x2190
addq $-0x18, %r12
cmpq %r14, %r12
jne 0x68a3
movq %rbx, %rdi
callq 0x22b0