// File: /workspace/github_c_makefile_star2_O3/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 0xed77
movl %eax, %r14d
movq 0x28(%rbx), %rdi
callq 0xed77
movl %eax, %r15d
movq 0x28(%rbx), %r8
cmpb $0x1, (%r8)
jne 0xf7c6
movq 0x10(%rbx), %r11
movq 0x20(%rbx), %r9
movl 0x4(%rbx), %r10d
movl %r10d, %eax
andl $-0x2, %eax
cmpl $0x112, %eax            # imm = 0x112
jne 0xf629
movq 0x10(%r8), %rax
movq 0x20(%r8), %rdx
movb 0x50(%rax), %cl
movq 0x68(%rax), %rsi
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 0xf7c6
movslq 0x50(%r11), %rcx
cmpq %rcx, %rax
jge 0xf7c6
cmpb $0x1, (%r9)
jne 0xf7c6
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 0xf6ba
addl $-0x4a, %r10d
cmpl $0x15, %r10d
ja 0xf7c6
orq %rdi, %rcx
leaq 0x30a0c(%rip), %r11     # 0x400b4
movslq (%r11,%r10,4), %r10
addq %r11, %r10
jmpq *%r10
andq %rax, %rdi
jmp 0xfa1e
cmpl $0x223, %r10d           # imm = 0x223
jg 0xf6e8
leal -0xbc(%r10), %ecx
cmpl $0x2, %ecx
jb 0xf725
addl $0xffffff08, %r10d      # imm = 0xFFFFFF08
cmpl $0x2, %r10d
jae 0xf7c6
orq %rax, %rdi
jmp 0xfa1e
leal -0x224(%r10), %ecx
cmpl $0x2, %ecx
jb 0xf72d
cmpl $0x226, %r10d           # imm = 0x226
je 0xfa0c
cmpl $0x227, %r10d           # imm = 0x227
jne 0xf7c6
movl %edi, %ecx
sarq %cl, %rdx
jmp 0xf761
addq %rax, %rdi
jmp 0xfa1e
subq %rdi, %rax
jmp 0xfa1b
xorq %rax, %rdi
jmp 0xfa1e
movl %edi, %ecx
shlq %cl, %rax
jmp 0xfa1b
imulq %rcx, %rdx
jmp 0xf761
testq %rdi, %rdi
je 0xf7ab
xorl %edx, %edx
divq %rdi
jmp 0xf761
testq %rdi, %rdi
je 0xf7ab
cmpq %r12, %rax
jne 0xf759
cmpq $-0x1, %rcx
je 0xf78a
movq %rdx, %rax
cqto
idivq %rcx
movq %rdx, %rdi
jmp 0xfa1e
imulq %rax, %rdi
jmp 0xfa1e
testq %rdi, %rdi
je 0xf7ab
cmpq %r12, %rax
jne 0xfa13
cmpq $-0x1, %rcx
jne 0xfa13
cmpb $0x0, 0x55cef(%rip)     # 0x65480
jne 0xf7c6
leaq 0x30afe(%rip), %rsi     # 0x40298
jmp 0xf7bb
testq %rdi, %rdi
je 0xf7ab
xorl %edx, %edx
divq %rdi
jmp 0xfa1b
cmpb $0x0, 0x55cce(%rip)     # 0x65480
jne 0xf7c6
leaq 0x30acc(%rip), %rsi     # 0x40287
movq 0x8(%rbx), %rdi
xorl %eax, %eax
callq 0x118fc
movq 0x20(%rbx), %rax
cmpb $0x1c, (%rax)
fldz
fldz
jne 0xfa00
fstp %st(1)
fstp %st(0)
movq 0x28(%rbx), %rcx
cmpb $0x1c, (%rcx)
fldz
fldz
jne 0xfa00
fstp %st(1)
fstp %st(0)
movq 0x10(%rbx), %rdx
movl 0x54(%rdx), %edx
shll $0x6, %edx
fldt 0x20(%rax)
fldt 0x20(%rcx)
cmpl $0x20000000, %edx       # imm = 0x20000000
jl 0xf830
movl 0x4(%rbx), %eax
addl $-0x2a, %eax
cmpl $0x5, %eax
fxch %st(1)
ja 0xfa00
leaq 0x3091c(%rip), %rcx     # 0x4013c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
fmulp %st, %st(1)
jmp 0xf9cd
movl 0x4(%rbx), %eax
jae 0xf876
addl $-0x2a, %eax
cmpl $0x5, %eax
fxch %st(1)
ja 0xfa00
leaq 0x308da(%rip), %rcx     # 0x40124
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
fstpl 0x78(%rsp)
movsd 0x78(%rsp), %xmm0
fstpl 0x70(%rsp)
mulsd 0x70(%rsp), %xmm0
movsd %xmm0, 0x68(%rsp)
fldl 0x68(%rsp)
jmp 0xf9cd
addl $-0x2a, %eax
cmpl $0x5, %eax
fxch %st(1)
ja 0xfa00
leaq 0x30881(%rip), %rcx     # 0x4010c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
fstps 0x28(%rsp)
movss 0x28(%rsp), %xmm0
fstps 0x24(%rsp)
mulss 0x24(%rsp), %xmm0
movss %xmm0, 0x20(%rsp)
flds 0x20(%rsp)
jmp 0xf9cd
fsubp %st, %st(1)
jmp 0xf9cd
faddp %st, %st(1)
jmp 0xf9cd
fldz
fxch %st(2)
fucomi %st(2), %st
fstp %st(2)
jne 0xf8d5
jnp 0xf9d5
fdivp %st, %st(1)
jmp 0xf9cd
fstpl 0x60(%rsp)
movsd 0x60(%rsp), %xmm0
fstpl 0x58(%rsp)
subsd 0x58(%rsp), %xmm0
movsd %xmm0, 0x50(%rsp)
fldl 0x50(%rsp)
jmp 0xf9cd
fstps 0x1c(%rsp)
movss 0x1c(%rsp), %xmm0
fstps 0x18(%rsp)
subss 0x18(%rsp), %xmm0
movss %xmm0, 0x14(%rsp)
flds 0x14(%rsp)
jmp 0xf9cd
fstpl 0x48(%rsp)
movsd 0x48(%rsp), %xmm0
fstpl 0x40(%rsp)
addsd 0x40(%rsp), %xmm0
movsd %xmm0, 0x38(%rsp)
fldl 0x38(%rsp)
jmp 0xf9cd
fstps 0x10(%rsp)
movss 0x10(%rsp), %xmm0
fstps 0xc(%rsp)
addss 0xc(%rsp), %xmm0
movss %xmm0, 0x8(%rsp)
flds 0x8(%rsp)
jmp 0xf9cd
fldz
fxch %st(2)
fucomi %st(2), %st
fstp %st(2)
jne 0xf971
jnp 0xf9d5
fstpl 0x90(%rsp)
movsd 0x90(%rsp), %xmm0
fstpl 0x88(%rsp)
divsd 0x88(%rsp), %xmm0
movsd %xmm0, 0x80(%rsp)
fldl 0x80(%rsp)
jmp 0xf9cd
fldz
fxch %st(2)
fucomi %st(2), %st
fstp %st(2)
jne 0xf9af
jnp 0xf9d5
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)
jmp 0xfa3b
fstp %st(1)
fstp %st(0)
cmpb $0x0, 0x55aa0(%rip)     # 0x65480
fldz
fldz
jne 0xfa00
fstp %st(1)
fstp %st(0)
movq 0x8(%rbx), %rdi
leaq 0x30892(%rip), %rsi     # 0x40287
xorl %eax, %eax
callq 0x118fc
fldz
fldz
fstp %st(1)
fstp %st(0)
leal (%r14,%r15), %eax
incl %eax
jmp 0xfa3d
movl %edi, %ecx
shrq %cl, %rax
jmp 0xfa1b
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
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq