// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen_c.c
// Function: ir_expr_eq
static bool _ir_expr_eq(
	IRGeneratorCContext *ctx,
	ResizableString *rstr,
	ParserASTNode *node_expr
) {
	assert(ctx);
	assert(rstr);
	assert(node_expr);

	#define	_IR_EXPR_EQ(str_opt)	\
	{	\
		assert(node_expr->nchilds == 2);	\
		_IR_EXPR_AUTO_CAST_BEGIN	\
		rstr_append_with_cstr(rstr, "(");	\
		_ir_expr(ctx, rstr, node_expr->childs[0]);	\
		rstr_append_with_cstr(rstr, (str_opt));	\
		_ir_expr(ctx, rstr, node_expr->childs[1]);	\
		rstr_append_with_cstr(rstr, ")");	\
		_IR_EXPR_AUTO_CAST_END	\
	}

	switch (node_expr->type) {
		case FE_NODE_EXPR_EQ: {
			_IR_EXPR_EQ(" == ")
			return true;
		}
		case FE_NODE_EXPR_NEQ: {
			_IR_EXPR_EQ(" != ")
			return true;
		}
		default: {
			return false;
		}
	}

	#undef	_IR_EXPR_EQ
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x2466d
jmp 0x2468c
leaq 0x57ee2(%rip), %rdi     # 0x7c556
leaq 0x5276d(%rip), %rsi     # 0x76de8
movl $0x357, %edx            # imm = 0x357
leaq 0x52f09(%rip), %rcx     # 0x77590
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x24695
jmp 0x246b4
leaq 0x4e472(%rip), %rdi     # 0x72b0e
leaq 0x52745(%rip), %rsi     # 0x76de8
movl $0x358, %edx            # imm = 0x358
leaq 0x52ee1(%rip), %rcx     # 0x77590
callq 0x30a0
cmpq $0x0, -0x20(%rbp)
je 0x246bd
jmp 0x246dc
leaq 0x52a31(%rip), %rdi     # 0x770f5
leaq 0x5271d(%rip), %rsi     # 0x76de8
movl $0x359, %edx            # imm = 0x359
leaq 0x52eb9(%rip), %rcx     # 0x77590
callq 0x30a0
movq -0x20(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x44(%rbp)
subl $0xe70, %eax            # imm = 0xE70
je 0x24701
jmp 0x246ee
movl -0x44(%rbp), %eax
subl $0xe71, %eax            # imm = 0xE71
je 0x24805
jmp 0x24906
movq -0x20(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x2470d
jmp 0x2472c
leaq 0x52c04(%rip), %rdi     # 0x77318
leaq 0x526cd(%rip), %rsi     # 0x76de8
movl $0x369, %edx            # imm = 0x369
leaq 0x52e69(%rip), %rcx     # 0x77590
callq 0x30a0
leaq -0x30(%rbp), %rdi
callq 0x8c90
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movq 0x68(%rax), %rdx
leaq -0x30(%rbp), %rsi
callq 0x216c0
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x24766
leaq 0x53155(%rip), %rax     # 0x778b5
movq %rax, -0x58(%rbp)
jmp 0x2476e
movq -0x28(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x50(%rbp), %rdi
movq -0x58(%rbp), %rdx
leaq 0x529ee(%rip), %rsi     # 0x7716b
movb $0x0, %al
callq 0x94d0
movq -0x18(%rbp), %rdi
leaq 0x532ce(%rip), %rsi     # 0x77a5d
callq 0x8d70
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rdx
callq 0x227b0
movq -0x18(%rbp), %rdi
leaq 0x52e26(%rip), %rsi     # 0x775dd
callq 0x8d70
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rdx
callq 0x227b0
movq -0x18(%rbp), %rdi
leaq 0x527be(%rip), %rsi     # 0x76f9e
callq 0x8d70
leaq -0x30(%rbp), %rdi
callq 0x9310
movq -0x18(%rbp), %rdi
movl $0x29, %esi
callq 0x8ea0
movb $0x1, -0x1(%rbp)
jmp 0x2490a
movq -0x20(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x24811
jmp 0x24830
leaq 0x52b00(%rip), %rdi     # 0x77318
leaq 0x525c9(%rip), %rsi     # 0x76de8
movl $0x36d, %edx            # imm = 0x36D
leaq 0x52d65(%rip), %rcx     # 0x77590
callq 0x30a0
leaq -0x40(%rbp), %rdi
callq 0x8c90
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movq 0x68(%rax), %rdx
leaq -0x40(%rbp), %rsi
callq 0x216c0
movq -0x18(%rbp), %rax
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x38(%rbp)
jne 0x2486a
leaq 0x53051(%rip), %rax     # 0x778b5
movq %rax, -0x68(%rbp)
jmp 0x24872
movq -0x38(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x528ea(%rip), %rsi     # 0x7716b
movb $0x0, %al
callq 0x94d0
movq -0x18(%rbp), %rdi
leaq 0x531ca(%rip), %rsi     # 0x77a5d
callq 0x8d70
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rdx
callq 0x227b0
movq -0x18(%rbp), %rdi
leaq 0x52d27(%rip), %rsi     # 0x775e2
callq 0x8d70
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rdx
callq 0x227b0
movq -0x18(%rbp), %rdi
leaq 0x526ba(%rip), %rsi     # 0x76f9e
callq 0x8d70
leaq -0x40(%rbp), %rdi
callq 0x9310
movq -0x18(%rbp), %rdi
movl $0x29, %esi
callq 0x8ea0
movb $0x1, -0x1(%rbp)
jmp 0x2490a
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)