// File: /workspace/github_c_makefile_star2_O0/Tarsnap[P]libcperciva/tests/parsenum/main.c
// Function: parsenum_equal
static int
parsenum_equal(double x, double y)
{

#if defined(__clang__)
	_Pragma("clang diagnostic push")
	_Pragma("clang diagnostic ignored \"-Wconversion\"")
	_Pragma("clang diagnostic ignored \"-Wdouble-promotion\"")
#endif

	/* Check special status. */
	if (fpclassify(x) != fpclassify(y))
		return (0);

	/* Deal with NANs. */
	if (isnan(x) && isnan(y))
		return (1);

	/* If signs do not match, the numbers are not equal. */
	if (signbit(x) != signbit(y))
		return (0);

	/* Deal with infinities. */
	if (isinf(x) && isinf(y))
		return (1);

	/* Deal with zeros. */
	if ((fpclassify(x) == FP_ZERO) && (fpclassify(y) == FP_ZERO))
		return (1);

#if defined(__clang__)
	_Pragma("clang diagnostic pop")
#endif

	/* Deal with real numbers. */
	if ((fabs(x - y) < 1) && (fabs(x - y) <= fabs(x + y) * 1e-6))
		return (1);

	/* Not equal. */
	return (0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movsd %xmm0, -0x10(%rbp)
movsd %xmm1, -0x18(%rbp)
movsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x28(%rbp)
movl $0x2, %eax
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
movl %eax, -0x1c(%rbp)
jne 0xa080
jp 0xa080
movl -0x1c(%rbp), %eax
movl %eax, -0x3c(%rbp)
movsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x38(%rbp)
movl $0x2, %eax
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
movl %eax, -0x2c(%rbp)
jne 0xa0fb
jp 0xa0fb
jmp 0xa0e5
movsd -0x28(%rbp), %xmm0
xorl %eax, %eax
ucomisd %xmm0, %xmm0
movl %eax, -0x1c(%rbp)
jp 0xa05b
movsd -0x28(%rbp), %xmm0
movaps 0x10f4(%rip), %xmm1     # 0xb190
pand %xmm1, %xmm0
movsd %xmm0, -0x48(%rbp)
movl $0x1, %eax
movsd 0xf8e(%rip), %xmm1      # 0xb040
ucomisd %xmm1, %xmm0
movl %eax, -0x1c(%rbp)
jne 0xa0bf
jp 0xa0bf
jmp 0xa05b
movsd -0x48(%rbp), %xmm1
movsd 0x1094(%rip), %xmm0     # 0xb160
movl $0x3, %eax
movl $0x4, %ecx
ucomisd %xmm1, %xmm0
cmovbel %ecx, %eax
movl %eax, -0x1c(%rbp)
jmp 0xa05b
movl -0x3c(%rbp), %eax
movl -0x2c(%rbp), %ecx
cmpl %ecx, %eax
je 0xa15d
movl $0x0, -0x4(%rbp)
jmp 0xa3fa
movsd -0x38(%rbp), %xmm0
xorl %eax, %eax
ucomisd %xmm0, %xmm0
movl %eax, -0x2c(%rbp)
jp 0xa0e5
movsd -0x38(%rbp), %xmm0
movaps 0x1079(%rip), %xmm1     # 0xb190
pand %xmm1, %xmm0
movsd %xmm0, -0x50(%rbp)
movl $0x1, %eax
movsd 0xf13(%rip), %xmm1      # 0xb040
ucomisd %xmm1, %xmm0
movl %eax, -0x2c(%rbp)
jne 0xa13a
jp 0xa13a
jmp 0xa0e5
movsd -0x50(%rbp), %xmm1
movsd 0x1019(%rip), %xmm0     # 0xb160
movl $0x3, %eax
movl $0x4, %ecx
ucomisd %xmm1, %xmm0
cmovbel %ecx, %eax
movl %eax, -0x2c(%rbp)
jmp 0xa0e5
movsd -0x10(%rbp), %xmm0
ucomisd %xmm0, %xmm0
setp %al
testb $0x1, %al
jne 0xa16f
jmp 0xa18d
movsd -0x18(%rbp), %xmm0
ucomisd %xmm0, %xmm0
setp %al
testb $0x1, %al
jne 0xa181
jmp 0xa18d
movl $0x1, -0x4(%rbp)
jmp 0xa3fa
movsd -0x10(%rbp), %xmm0
movq %xmm0, %rax
cmpq $0x0, %rax
setl %al
andb $0x1, %al
movzbl %al, %eax
movsd -0x18(%rbp), %xmm0
movq %xmm0, %rcx
cmpq $0x0, %rcx
setl %cl
andb $0x1, %cl
movzbl %cl, %ecx
cmpl %ecx, %eax
je 0xa1ca
movl $0x0, -0x4(%rbp)
jmp 0xa3fa
movsd -0x10(%rbp), %xmm1
movaps %xmm1, %xmm0
movaps 0xfb7(%rip), %xmm2      # 0xb190
pand %xmm2, %xmm0
movq %xmm1, %rdx
movl $0x1, %ecx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq $0x0, %rdx
cmovll %eax, %ecx
movsd 0xe45(%rip), %xmm1      # 0xb040
xorl %eax, %eax
ucomisd %xmm1, %xmm0
setnp %sil
sete %dl
testb %sil, %dl
cmovnel %ecx, %eax
cmpl $0x0, %eax
je 0xa268
movsd -0x18(%rbp), %xmm1
movaps %xmm1, %xmm0
movaps 0xf6e(%rip), %xmm2      # 0xb190
pand %xmm2, %xmm0
movq %xmm1, %rdx
movl $0x1, %ecx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq $0x0, %rdx
cmovll %eax, %ecx
movsd 0xdfc(%rip), %xmm1      # 0xb040
xorl %eax, %eax
ucomisd %xmm1, %xmm0
setnp %sil
sete %dl
testb %sil, %dl
cmovnel %ecx, %eax
cmpl $0x0, %eax
je 0xa268
movl $0x1, -0x4(%rbp)
jmp 0xa3fa
movsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x60(%rbp)
movl $0x2, %eax
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
movl %eax, -0x54(%rbp)
jne 0xa2b0
jp 0xa2b0
movl -0x54(%rbp), %eax
cmpl $0x2, %eax
jne 0xa38b
movsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x70(%rbp)
movl $0x2, %eax
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
movl %eax, -0x64(%rbp)
jne 0xa329
jp 0xa329
jmp 0xa315
movsd -0x60(%rbp), %xmm0
xorl %eax, %eax
ucomisd %xmm0, %xmm0
movl %eax, -0x54(%rbp)
jp 0xa285
movsd -0x60(%rbp), %xmm0
movaps 0xec4(%rip), %xmm1      # 0xb190
pand %xmm1, %xmm0
movsd %xmm0, -0x78(%rbp)
movl $0x1, %eax
movsd 0xd5e(%rip), %xmm1      # 0xb040
ucomisd %xmm1, %xmm0
movl %eax, -0x54(%rbp)
jne 0xa2ef
jp 0xa2ef
jmp 0xa285
movsd -0x78(%rbp), %xmm1
movsd 0xe64(%rip), %xmm0      # 0xb160
movl $0x3, %eax
movl $0x4, %ecx
ucomisd %xmm1, %xmm0
cmovbel %ecx, %eax
movl %eax, -0x54(%rbp)
jmp 0xa285
movl -0x64(%rbp), %eax
cmpl $0x2, %eax
jne 0xa38b
movl $0x1, -0x4(%rbp)
jmp 0xa3fa
movsd -0x70(%rbp), %xmm0
xorl %eax, %eax
ucomisd %xmm0, %xmm0
movl %eax, -0x64(%rbp)
jp 0xa315
movsd -0x70(%rbp), %xmm0
movaps 0xe4b(%rip), %xmm1      # 0xb190
pand %xmm1, %xmm0
movsd %xmm0, -0x80(%rbp)
movl $0x1, %eax
movsd 0xce5(%rip), %xmm1      # 0xb040
ucomisd %xmm1, %xmm0
movl %eax, -0x64(%rbp)
jne 0xa368
jp 0xa368
jmp 0xa315
movsd -0x80(%rbp), %xmm1
movsd 0xdeb(%rip), %xmm0      # 0xb160
movl $0x3, %eax
movl $0x4, %ecx
ucomisd %xmm1, %xmm0
cmovbel %ecx, %eax
movl %eax, -0x64(%rbp)
jmp 0xa315
movsd -0x10(%rbp), %xmm1
subsd -0x18(%rbp), %xmm1
movaps 0xdf4(%rip), %xmm0      # 0xb190
pand %xmm0, %xmm1
movsd 0xc68(%rip), %xmm0      # 0xb010
ucomisd %xmm1, %xmm0
jbe 0xa3f3
movsd -0x10(%rbp), %xmm1
subsd -0x18(%rbp), %xmm1
movaps 0xdd1(%rip), %xmm0      # 0xb190
pand %xmm0, %xmm1
movsd -0x10(%rbp), %xmm0
addsd -0x18(%rbp), %xmm0
movaps 0xdbc(%rip), %xmm2      # 0xb190
pand %xmm2, %xmm0
movsd 0xd88(%rip), %xmm2      # 0xb168
mulsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
jb 0xa3f3
movl $0x1, -0x4(%rbp)
jmp 0xa3fa
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nop