// File: /workspace/github_c_makefile_star2_O1/lucvoo[P]sparse-dev/expand.c
// Function: expand_binop
static int expand_binop(struct expression *expr)
{
	int cost;

	cost = expand_expression(expr->left);
	cost += expand_expression(expr->right);
	if (simplify_int_binop(expr, expr->ctype))
		return 0;
	if (simplify_float_binop(expr))
		return 0;
	return cost + 1;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movq %rdi, %rbx
movq 0x20(%rdi), %rdi
callq 0xed5f
movl %eax, %r14d
movq 0x28(%rbx), %rdi
callq 0xed5f
movl %eax, %r15d
movq 0x28(%rbx), %r8
cmpb $0x1, (%r8)
jne 0xf67d
movq 0x10(%rbx), %r11
movq 0x20(%rbx), %r9
movl 0x4(%rbx), %r10d
movl %r10d, %eax
andl $-0x2, %eax
cmpl $0x112, %eax            # imm = 0x112
jne 0xf4e0
movq 0x10(%r8), %rax
movq 0x20(%r8), %rdx
movq 0x68(%rax), %rsi
movb 0x50(%rax), %cl
leal -0x1(%rcx), %edi
negb %cl
movq $-0x1, %rax
shrq %cl, %rax
movzbl %dil, %ecx
movq %rax, %rdi
notq %rdi
xorl %r12d, %r12d
btl $0xe, %esi
cmovbq %r12, %rdi
btq %rcx, %rdx
cmovaeq %r12, %rdi
andq %rdx, %rax
orq %rdi, %rax
js 0xf67d
movslq 0x50(%r11), %rcx
cmpq %rcx, %rax
jge 0xf67d
cmpb $0x1, (%r9)
jne 0xf67d
movq 0x20(%r9), %rax
movl 0x50(%r11), %esi
decl %esi
movl $0x1, %r12d
movl %esi, %ecx
shlq %cl, %r12
movq 0x20(%r8), %rdi
movq %r12, %rdx
andq %rax, %rdx
movq %r12, %r13
negq %r13
testq %rdx, %rdx
cmovneq %r13, %rdx
movq %r12, %rcx
andq %rdi, %rcx
cmovneq %r13, %rcx
xorl %r13d, %r13d
xorl %ebp, %ebp
testb $0x40, 0x69(%r11)
cmovneq %r13, %rdx
cmovneq %r13, %rcx
sete %bpl
orq %rax, %rdx
leal (%rbp,%r10,2), %r10d
cmpl $0xbb, %r10d
jg 0xf571
addl $-0x4a, %r10d
cmpl $0x15, %r10d
ja 0xf67d
orq %rdi, %rcx
leaq 0x31b55(%rip), %r11     # 0x410b4
movslq (%r11,%r10,4), %r10
addq %r11, %r10
jmpq *%r10
andq %rax, %rdi
jmp 0xf8e1
cmpl $0x223, %r10d           # imm = 0x223
jg 0xf59f
leal -0xbc(%r10), %ecx
cmpl $0x2, %ecx
jb 0xf5dc
addl $0xffffff08, %r10d      # imm = 0xFFFFFF08
cmpl $0x2, %r10d
jae 0xf67d
orq %rax, %rdi
jmp 0xf8e1
leal -0x224(%r10), %ecx
cmpl $0x2, %ecx
jb 0xf5e4
cmpl $0x226, %r10d           # imm = 0x226
je 0xf8cf
cmpl $0x227, %r10d           # imm = 0x227
jne 0xf67d
movl %edi, %ecx
sarq %cl, %rdx
jmp 0xf618
addq %rax, %rdi
jmp 0xf8e1
subq %rdi, %rax
jmp 0xf8de
xorq %rax, %rdi
jmp 0xf8e1
movl %edi, %ecx
shlq %cl, %rax
jmp 0xf8de
imulq %rcx, %rdx
jmp 0xf618
testq %rdi, %rdi
je 0xf662
xorl %edx, %edx
divq %rdi
jmp 0xf618
testq %rdi, %rdi
je 0xf662
cmpq %r12, %rax
jne 0xf610
cmpq $-0x1, %rcx
je 0xf641
movq %rdx, %rax
cqto
idivq %rcx
movq %rdx, %rdi
jmp 0xf8e1
imulq %rax, %rdi
jmp 0xf8e1
testq %rdi, %rdi
je 0xf662
cmpq %r12, %rax
jne 0xf8d6
cmpq $-0x1, %rcx
jne 0xf8d6
cmpb $0x0, 0x56e38(%rip)     # 0x66480
jne 0xf67d
leaq 0x31c47(%rip), %rsi     # 0x41298
jmp 0xf672
testq %rdi, %rdi
je 0xf662
xorl %edx, %edx
divq %rdi
jmp 0xf8de
cmpb $0x0, 0x56e17(%rip)     # 0x66480
jne 0xf67d
leaq 0x31c15(%rip), %rsi     # 0x41287
movq 0x8(%rbx), %rdi
xorl %eax, %eax
callq 0x118b4
movq 0x20(%rbx), %rax
movb $0x1, %bpl
cmpb $0x1c, (%rax)
jne 0xf88e
movq 0x28(%rbx), %rcx
cmpb $0x1c, (%rcx)
jne 0xf88e
movq 0x10(%rbx), %rdx
movl 0x54(%rdx), %edx
shll $0x6, %edx
fldt 0x20(%rax)
fldt 0x20(%rcx)
cmpl $0x20000000, %edx       # imm = 0x20000000
jl 0xf6d8
movl 0x4(%rbx), %eax
addl $-0x2a, %eax
cmpl $0x5, %eax
ja 0xf757
leaq 0x31a74(%rip), %rcx     # 0x4113c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
fmulp %st, %st(1)
jmp 0xf886
movl 0x4(%rbx), %eax
jae 0xf71a
addl $-0x2a, %eax
cmpl $0x5, %eax
ja 0xf757
leaq 0x31a38(%rip), %rcx     # 0x41124
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
fxch %st(1)
fstpl 0x78(%rsp)
movsd 0x78(%rsp), %xmm0
fstpl 0x70(%rsp)
mulsd 0x70(%rsp), %xmm0
movsd %xmm0, 0x68(%rsp)
fldl 0x68(%rsp)
jmp 0xf886
addl $-0x2a, %eax
cmpl $0x5, %eax
ja 0xf757
leaq 0x319e3(%rip), %rcx     # 0x4110c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
fxch %st(1)
fstps 0x28(%rsp)
movss 0x28(%rsp), %xmm0
fstps 0x24(%rsp)
mulss 0x24(%rsp), %xmm0
movss %xmm0, 0x20(%rsp)
flds 0x20(%rsp)
jmp 0xf886
fstp %st(0)
fstp %st(0)
jmp 0xf88e
fsubrp %st, %st(1)
jmp 0xf886
faddp %st, %st(1)
jmp 0xf886
fldz
fxch %st(1)
fucomi %st(1), %st
fstp %st(1)
jne 0xf77e
jnp 0xf8ae
fdivrp %st, %st(1)
jmp 0xf886
fxch %st(1)
fstpl 0x60(%rsp)
movsd 0x60(%rsp), %xmm0
fstpl 0x58(%rsp)
subsd 0x58(%rsp), %xmm0
movsd %xmm0, 0x50(%rsp)
fldl 0x50(%rsp)
jmp 0xf886
fxch %st(1)
fstps 0x1c(%rsp)
movss 0x1c(%rsp), %xmm0
fstps 0x18(%rsp)
subss 0x18(%rsp), %xmm0
movss %xmm0, 0x14(%rsp)
flds 0x14(%rsp)
jmp 0xf886
fxch %st(1)
fstpl 0x48(%rsp)
movsd 0x48(%rsp), %xmm0
fstpl 0x40(%rsp)
addsd 0x40(%rsp), %xmm0
movsd %xmm0, 0x38(%rsp)
fldl 0x38(%rsp)
jmp 0xf886
fxch %st(1)
fstps 0x10(%rsp)
movss 0x10(%rsp), %xmm0
fstps 0xc(%rsp)
addss 0xc(%rsp), %xmm0
movss %xmm0, 0x8(%rsp)
flds 0x8(%rsp)
jmp 0xf886
fldz
fxch %st(1)
fucomi %st(1), %st
fstp %st(1)
jne 0xf826
jnp 0xf8ae
fxch %st(1)
fstpl 0x90(%rsp)
movsd 0x90(%rsp), %xmm0
fstpl 0x88(%rsp)
divsd 0x88(%rsp), %xmm0
movsd %xmm0, 0x80(%rsp)
fldl 0x80(%rsp)
jmp 0xf886
fldz
fxch %st(1)
fucomi %st(1), %st
fstp %st(1)
jne 0xf866
jnp 0xf8ae
fxch %st(1)
fstps 0x34(%rsp)
movss 0x34(%rsp), %xmm0
fstps 0x30(%rsp)
divss 0x30(%rsp), %xmm0
movss %xmm0, 0x2c(%rsp)
flds 0x2c(%rsp)
movb $0x1c, (%rbx)
fstpt 0x20(%rbx)
xorl %ebp, %ebp
leal (%r14,%r15), %ecx
incl %ecx
xorl %eax, %eax
testb %bpl, %bpl
cmovnel %ecx, %eax
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
fstp %st(0)
fstp %st(0)
cmpb $0x0, 0x56bc7(%rip)     # 0x66480
jne 0xf88e
movq 0x8(%rbx), %rdi
leaq 0x319c1(%rip), %rsi     # 0x41287
xorl %eax, %eax
callq 0x118b4
jmp 0xf88e
movl %edi, %ecx
shrq %cl, %rax
jmp 0xf8de
movq %rdx, %rax
cqto
idivq %rcx
movq %rax, %rdi
movb $0x3f, %cl
subb %sil, %cl
shlq %cl, %rdi
shrq %cl, %rdi
movq %rdi, 0x20(%rbx)
movb $0x1, (%rbx)
movl 0x28(%r8), %eax
orl 0x28(%r9), %eax
movl %eax, 0x28(%rbx)
xorl %eax, %eax
jmp 0xf89c