// File: /workspace/github_c_makefile_star2_O2/BernardTatin[P]s7sh/s7.c
// Function: gt_b_7pp
static inline bool gt_b_7pp(s7_scheme *sc, s7_pointer x, s7_pointer y)
    {
        if (type(x) == type(y))
        {
            if (type(x) == T_INTEGER)
                return(integer(x) > integer(y));
            if (type(x) == T_REAL)
                return(real(x) > real(y));
            if (type(x) == T_RATIO)
                return(fraction(x) > fraction(y));
        }

        switch (type(x))
        {
            case T_INTEGER:
                switch (type(y))
                {
                    case T_INTEGER:
                        return(integer(x) > integer(y));

                    case T_RATIO:
                        return(g_greater(sc, set_plist_2(sc, x, y)) != sc->F);

                    case T_REAL:
                        if (is_NaN(real(y))) return(false);
                        return(integer(x) > real(y));

                    default:
                        return(gt_out_y(sc, x, y));
                }
                break;

            case T_RATIO:
                return(g_greater(sc, set_plist_2(sc, x, y)) != sc->F);

            case T_REAL:
                switch (type(y))
                {
                    case T_INTEGER:
                        if (is_NaN(real(x))) return(false);
                        return(real(x) > integer(y));

                    case T_RATIO:
                        if (is_NaN(real(x))) return(false);
                        return(real(x) > fraction(y));

                    case T_REAL:
                        if (is_NaN(real(x))) return(false);
                        return(real(x) > real(y));

                    default:
                        return(gt_out_y(sc, x, y));
                }
                break;

            default:
                return(gt_out_x(sc, x, y));
        }
        return(true);
    }

// Assembly:
pushq %rbx
subq $0x40, %rsp
movq %rdi, %rbx
movzbl (%rsi), %ecx
movzbl (%rdx), %eax
cmpb %al, %cl
jne 0x6f169
cmpl $0xd, %ecx
je 0x6f212
cmpl $0xc, %ecx
je 0x6f1d2
cmpl $0xb, %ecx
jne 0x6f194
movq 0x8(%rsi), %rax
cmpq 0x8(%rdx), %rax
setg %al
jmp 0x6f21f
cmpl $0xd, %ecx
je 0x6f225
cmpl $0xc, %ecx
je 0x6f1a1
cmpl $0xb, %ecx
jne 0x6f194
cmpl $0xd, %eax
je 0x6f299
cmpl $0xc, %eax
je 0x6f1a1
cmpl $0xb, %eax
je 0x6f159
jmp 0x6f24b
movq %rbx, %rdi
addq $0x40, %rsp
popq %rbx
jmp 0x9196c
movq 0x708(%rbx), %rax
movq %rsi, 0x8(%rax)
movq 0x710(%rbx), %rax
movq %rdx, 0x8(%rax)
movq 0x708(%rbx), %rsi
movq %rbx, %rdi
callq 0x5833e
cmpq 0x120(%rbx), %rax
setne %al
jmp 0x6f21f
movq 0x8(%rsi), %rax
movq 0x10(%rsi), %rcx
movq %rax, 0x10(%rsp)
fildll 0x10(%rsp)
movq %rcx, 0x8(%rsp)
fildll 0x8(%rsp)
fdivrp %st, %st(1)
movq 0x8(%rdx), %rax
movq 0x10(%rdx), %rcx
movq %rax, 0x20(%rsp)
fildll 0x20(%rsp)
movq %rcx, 0x18(%rsp)
fildll 0x18(%rsp)
fdivrp %st, %st(1)
fxch %st(1)
fucompi %st(1), %st
fstp %st(0)
jmp 0x6f21c
movsd 0x8(%rsi), %xmm0
ucomisd 0x8(%rdx), %xmm0
seta %al
addq $0x40, %rsp
popq %rbx
retq
cmpl $0xd, %eax
je 0x6f28c
cmpl $0xc, %eax
je 0x6f258
cmpl $0xb, %eax
jne 0x6f24b
movsd 0x8(%rsi), %xmm0
ucomisd %xmm0, %xmm0
jp 0x6f2b3
cvtsi2sdq 0x8(%rdx), %xmm1
ucomisd %xmm1, %xmm0
jmp 0x6f21c
movq %rbx, %rdi
addq $0x40, %rsp
popq %rbx
jmp 0x91870
movsd 0x8(%rsi), %xmm0
ucomisd %xmm0, %xmm0
jp 0x6f2b3
movsd %xmm0, 0x28(%rsp)
fldl 0x28(%rsp)
movq 0x8(%rdx), %rax
movq 0x10(%rdx), %rcx
movq %rax, 0x38(%rsp)
fildll 0x38(%rsp)
movq %rcx, 0x30(%rsp)
fildll 0x30(%rsp)
jmp 0x6f208
movsd 0x8(%rsi), %xmm0
ucomisd %xmm0, %xmm0
jnp 0x6f217
jmp 0x6f2b3
movsd 0x8(%rdx), %xmm0
ucomisd %xmm0, %xmm0
jp 0x6f2b3
cvtsi2sdq 0x8(%rsi), %xmm1
ucomisd %xmm0, %xmm1
jmp 0x6f21c
xorl %eax, %eax
jmp 0x6f21f