// File: /workspace/github_cpp_makefile_star2_O3/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, %r12      # imm = 0x100000001
leaq 0xa0(%rsp), %rsi
movq %r12, (%rsi)
leaq 0x10(%rsp), %rdi
leaq 0x80(%rsp), %rcx
movl $0x2, %edx
callq 0x796c
leaq 0x28(%rsp), %r15
leaq 0x90(%rsp), %rsi
movq %r12, (%rsi)
leaq 0x70(%rsp), %rcx
movl $0x2, %edx
movq %r15, %rdi
callq 0x796c
leaq 0x8(%rbx), %rdi
leaq 0x40(%rsp), %rbp
leaq 0x10(%rsp), %rsi
movq %rbp, %rdx
callq 0x80d6
movq %r14, %r13
addq $0x8, %r13
movl $0x18, %r12d
movq 0x10(%rsp,%r12), %rdi
testq %rdi, %rdi
je 0x655f
callq 0x2190
addq $-0x18, %r12
cmpq $-0x18, %r12
jne 0x6550
movsd 0x2b6f(%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 0x796c
leaq 0x90(%rsp), %rsi
movsd 0x2b3d(%rip), %xmm0     # 0x90e0
movaps %xmm0, (%rsi)
leaq 0xe(%rsp), %rcx
movl $0x4, %edx
movq %r15, %rdi
callq 0x796c
xorps %xmm0, %xmm0
leaq 0x80(%rsp), %rsi
movaps %xmm0, (%rsi)
leaq 0xd(%rsp), %rcx
movl $0x4, %edx
movq %rbp, %rdi
callq 0x796c
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 0x796c
leaq 0x70(%rsp), %rdx
leaq 0x10(%rsp), %rsi
movq %r13, %rdi
callq 0x80d6
movl $0x48, %r15d
movq 0x10(%rsp,%r15), %rdi
testq %rdi, %rdi
je 0x6621
callq 0x2190
addq $-0x18, %r15
cmpq $-0x18, %r15
jne 0x6612
movq %rbx, %rdi
movl $0x4, %esi
callq 0x2607
movq %rbx, %rdi
movq %r14, %rsi
callq 0x257a
testb %al, %al
je 0x669b
movq 0x798a(%rip), %rbx      # 0xdfd8
leaq 0x3508(%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 0x3497(%rip), %rdi      # 0x9b39
leaq 0x33e7(%rip), %rsi      # 0x9a90
leaq 0x3496(%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 0x66d2
callq 0x2190
addq $-0x18, %r14
cmpq $-0x18, %r14
jne 0x66c3
jmp 0x6741
jmp 0x66e8
movq %rax, %rbx
movq %rbp, %r15
jmp 0x66eb
movq %rax, %rbx
movq -0x18(%r15), %rdi
testq %rdi, %rdi
je 0x66f9
callq 0x2190
addq $-0x18, %r15
cmpq %r12, %r15
jne 0x66eb
jmp 0x6741
jmp 0x673e
movq %rax, %rbx
movl $0x18, %r14d
movq 0x10(%rsp,%r14), %rdi
testq %rdi, %rdi
je 0x671e
callq 0x2190
addq $-0x18, %r14
cmpq $-0x18, %r14
jne 0x670f
jmp 0x6741
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x6741
callq 0x2190
jmp 0x6741
movq %rax, %rbx
movq %rbx, %rdi
callq 0x22b0