// File: /workspace/github_cpp_makefile_star2_O1/Myyura[P]MyyuraSat/./source/./solver_debug.cpp
// Function: MyyuraSat::Solver::clause_test()
void Solver::clause_test(void) {
    // subsume
    // Vector<Literal> A = {Literal(1, 0), Literal(2, 0), Literal(3, 0)};
    // Vector<Literal> B = {Literal(1, 1), Literal(2, 0)};

    Vector<Literal> A = {Literal(1, 0), Literal(2, 0), Literal(3, 0)};
    Vector<Literal> B = {Literal(1, 0), Literal(2, 0)};

    _ca.extra_clause_field(true);

    CRARef cr1 = _ca.alloc(A, false);
    CRARef cr2 = _ca.alloc(B, false);
    Clause& C1 = _ca[cr1];
    Clause& C2 = _ca[cr2];
    std::cout << C1.subsumes(C2).to_int() << std::endl;
    std::cout << C2.subsumes(C1).to_int() << std::endl;
    std::cout << LITERAL_UNDEF.to_int() << std::endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rdi, %r14
xorps %xmm0, %xmm0
leaq -0x40(%rbp), %rbx
movaps %xmm0, (%rbx)
movq %rbx, %rdi
movl $0x3, %esi
callq 0x6170
movl $0x3, 0x8(%rbx)
movq (%rbx), %rax
movabsq $0x400000002, %rbx      # imm = 0x400000002
movq %rbx, (%rax)
movl $0x6, 0x8(%rax)
leaq -0x30(%rbp), %rdi
xorps %xmm0, %xmm0
movaps %xmm0, (%rdi)
movl $0x2, %esi
callq 0x6170
movl $0x2, -0x28(%rbp)
movq -0x30(%rbp), %rax
movq %rbx, (%rax)
movb $0x1, 0x110(%r14)
addq $0xf8, %r14
leaq -0x40(%rbp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x5c1e
movl %eax, %ebx
leaq -0x30(%rbp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x5c1e
movl %eax, %r15d
movq %r14, %rdi
movl %ebx, %esi
callq 0x6a4e
movq %rax, %rbx
movq %r14, %rdi
movl %r15d, %esi
callq 0x6a4e
movq %rax, %r14
movq %rbx, %rdi
movq %rax, %rsi
callq 0x64f2
movq 0x7cd4(%rip), %rdi      # 0xcf98
movl %eax, %esi
callq 0x2260
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2120
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20e0
movq %r14, %rdi
movq %rbx, %rsi
callq 0x64f2
movq 0x7c91(%rip), %rdi      # 0xcf98
movl %eax, %esi
callq 0x2260
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2120
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20e0
movl 0x7e2e(%rip), %esi      # 0xd16c
movq 0x7c53(%rip), %rdi      # 0xcf98
callq 0x2260
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2120
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20e0
movq -0x30(%rbp), %rdi
testq %rdi, %rdi
je 0x5392
xorl %ebx, %ebx
movl %ebx, -0x28(%rbp)
callq 0x2180
movq $0x0, -0x30(%rbp)
movl %ebx, -0x24(%rbp)
movq -0x40(%rbp), %rdi
testq %rdi, %rdi
je 0x53b0
xorl %ebx, %ebx
movl %ebx, -0x38(%rbp)
callq 0x2180
movq $0x0, -0x40(%rbp)
movl %ebx, -0x34(%rbp)
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x53ca
jmp 0x53ca
jmp 0x53ca
movq %rax, %rbx
jmp 0x53ee
jmp 0x53ca
jmp 0x53ca
movq %rax, %rbx
movq -0x30(%rbp), %rdi
testq %rdi, %rdi
je 0x53ee
xorl %r14d, %r14d
movl %r14d, -0x28(%rbp)
callq 0x2180
movq $0x0, -0x30(%rbp)
movl %r14d, -0x24(%rbp)
movq -0x40(%rbp), %rdi
testq %rdi, %rdi
je 0x540f
xorl %r14d, %r14d
movl %r14d, -0x38(%rbp)
callq 0x2180
movq $0x0, -0x40(%rbp)
movl %r14d, -0x34(%rbp)
movq %rbx, %rdi
callq 0x2270
nop