// File: /workspace/github_c_makefile_star2_O0/chriso[P]columnix/lib/predicate.c
// Function: cx_index_match_index_eq
static enum cx_index_match cx_index_match_index_eq(
    const struct cx_predicate *predicate, enum cx_column_type type,
    const struct cx_index *index)
{
    enum cx_index_match result = CX_INDEX_MATCH_UNKNOWN;
    switch (type) {
        case CX_COLUMN_BIT:
            assert(predicate->column_type == CX_COLUMN_BIT);
            result = cx_index_match_bit_eq(index, predicate->value.bit);
            break;
        case CX_COLUMN_I32:
            assert(predicate->column_type == CX_COLUMN_I32);
            result = cx_index_match_i32_eq(index, predicate->value.i32);
            break;
        case CX_COLUMN_I64:
            assert(predicate->column_type == CX_COLUMN_I64);
            result = cx_index_match_i64_eq(index, predicate->value.i64);
            break;
        case CX_COLUMN_FLT:
            assert(predicate->column_type == CX_COLUMN_FLT);
            result = cx_index_match_flt_eq(index, predicate->value.flt);
            break;
        case CX_COLUMN_DBL:
            assert(predicate->column_type == CX_COLUMN_DBL);
            result = cx_index_match_dbl_eq(index, predicate->value.dbl);
            break;
        case CX_COLUMN_STR:
            assert(predicate->column_type == CX_COLUMN_STR);
            result = cx_index_match_str_eq(index, &predicate->value.str);
            break;
    }
    return result;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
movl -0xc(%rbp), %eax
movq %rax, -0x28(%rbp)
subq $0x5, %rax
ja 0xb0b4
movq -0x28(%rbp), %rax
leaq 0x5b42(%rip), %rcx      # 0x10a58
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x8(%rbp), %rax
cmpl $0x0, 0x4(%rax)
jne 0xaf2b
jmp 0xaf4a
leaq 0x5c71(%rip), %rdi      # 0x10ba3
leaq 0x5ba3(%rip), %rsi      # 0x10adc
movl $0x1f5, %edx            # imm = 0x1F5
leaq 0x5f5e(%rip), %rcx      # 0x10ea3
callq 0x53a0
movq -0x18(%rbp), %rdi
movq -0x8(%rbp), %rax
movb 0x10(%rax), %al
andb $0x1, %al
movzbl %al, %esi
callq 0x5650
movl %eax, -0x1c(%rbp)
jmp 0xb0b4
movq -0x8(%rbp), %rax
cmpl $0x1, 0x4(%rax)
jne 0xaf73
jmp 0xaf92
leaq 0x5cd4(%rip), %rdi      # 0x10c4e
leaq 0x5b5b(%rip), %rsi      # 0x10adc
movl $0x1f9, %edx            # imm = 0x1F9
leaq 0x5f16(%rip), %rcx      # 0x10ea3
callq 0x53a0
movq -0x18(%rbp), %rdi
movq -0x8(%rbp), %rax
movl 0x10(%rax), %esi
callq 0x5620
movl %eax, -0x1c(%rbp)
jmp 0xb0b4
movq -0x8(%rbp), %rax
cmpl $0x2, 0x4(%rax)
jne 0xafb6
jmp 0xafd5
leaq 0x5cb9(%rip), %rdi      # 0x10c76
leaq 0x5b18(%rip), %rsi      # 0x10adc
movl $0x1fd, %edx            # imm = 0x1FD
leaq 0x5ed3(%rip), %rcx      # 0x10ea3
callq 0x53a0
movq -0x18(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x5520
movl %eax, -0x1c(%rbp)
jmp 0xb0b4
movq -0x8(%rbp), %rax
cmpl $0x3, 0x4(%rax)
jne 0xaffa
jmp 0xb019
leaq 0x5c9d(%rip), %rdi      # 0x10c9e
leaq 0x5ad4(%rip), %rsi      # 0x10adc
movl $0x201, %edx            # imm = 0x201
leaq 0x5e8f(%rip), %rcx      # 0x10ea3
callq 0x53a0
movq -0x18(%rbp), %rdi
movq -0x8(%rbp), %rax
movss 0x10(%rax), %xmm0
callq 0x5a90
movl %eax, -0x1c(%rbp)
jmp 0xb0b4
movq -0x8(%rbp), %rax
cmpl $0x4, 0x4(%rax)
jne 0xb03f
jmp 0xb05e
leaq 0x5c80(%rip), %rdi      # 0x10cc6
leaq 0x5a8f(%rip), %rsi      # 0x10adc
movl $0x205, %edx            # imm = 0x205
leaq 0x5e4a(%rip), %rcx      # 0x10ea3
callq 0x53a0
movq -0x18(%rbp), %rdi
movq -0x8(%rbp), %rax
movsd 0x10(%rax), %xmm0
callq 0x51f0
movl %eax, -0x1c(%rbp)
jmp 0xb0b4
movq -0x8(%rbp), %rax
cmpl $0x5, 0x4(%rax)
jne 0xb081
jmp 0xb0a0
leaq 0x5c66(%rip), %rdi      # 0x10cee
leaq 0x5a4d(%rip), %rsi      # 0x10adc
movl $0x209, %edx            # imm = 0x209
leaq 0x5e08(%rip), %rcx      # 0x10ea3
callq 0x53a0
movq -0x18(%rbp), %rdi
movq -0x8(%rbp), %rsi
addq $0x10, %rsi
callq 0x57e0
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)