4.7. Compiler support API

4.7.1. GNU library API

4.7.1.1. Integer arithmetic

Function

Description

__mulsi3()

Multiply, signed 32-bit integer.

__muldi3()

Multiply, signed 64-bit integer.

__divsi3()

Divide, signed 32-bit integer.

__divdi3()

Divide, signed 64-bit integer.

__udivsi3()

Divide, unsigned 32-bit integer.

__udivdi3()

Divide, unsigned 64-bit integer.

__modsi3()

Remainder after divide, signed 32-bit integer.

__moddi3()

Remainder after divide, signed 64-bit integer.

__umodsi3()

Remainder after divide, unsigned 32-bit integer.

__umoddi3()

Remainder after divide, unsigned 64-bit integer.

__udivmodsi4()

Divide with remainder, unsigned 32-bit integer.

__udivmoddi4()

Divide with remainder, unsigned 64-bit integer.

__clzsi2()

Count leading zeros, 32-bit integer.

__clzdi2()

Count leading zeros, 64-bit integer.

__ctzsi2()

Count trailing zeros, 32-bit integer.

__ctzdi2()

Count trailing zeros, 64-bit integer.

__ffssi2()

Find first set, 32-bit integer.

__ffsdi2()

Find first set, 64-bit integer.

__bswapsi2()

Byte swap, 32-bit integer.

__bswapdi2()

Byte swap, 64-bit integer.

__popcountsi2()

Population count, 32-bit integer.

__popcountdi2()

Population count, 64-bit integer.

__paritysi2()

Parity, 32-bit integer.

__paritydi2()

Parity, 64-bit integer.

4.7.1.1.1. __mulsi3()

Description

Multiply, signed 32-bit integer.

Prototype

__SEGGER_RTL_U32 __mulsi3(__SEGGER_RTL_U32 a,
                          __SEGGER_RTL_U32 b);

Parameters

Parameter

Description

a

Multiplier.

b

Multiplicand.

Return value

Product.

4.7.1.1.2. __muldi3()

Description

Multiply, signed 64-bit integer.

Prototype

__SEGGER_RTL_U64 __muldi3(__SEGGER_RTL_U64 a,
                          __SEGGER_RTL_U64 b);

Parameters

Parameter

Description

a

Multiplier.

b

Multiplicand.

Return value

Product.

4.7.1.1.3. __divsi3()

Description

Divide, signed 32-bit integer.

Prototype

int32_t __divsi3(int32_t num,
                 int32_t den);

Parameters

Parameter

Description

num

Dividend.

den

Divisor.

Return value

Quotient.

4.7.1.1.4. __divdi3()

Description

Divide, signed 64-bit integer.

Prototype

int64_t __divdi3(int64_t num,
                 int64_t den);

Parameters

Parameter

Description

num

Dividend.

den

Divisor.

Return value

Quotient.

4.7.1.1.5. __udivsi3()

Description

Divide, unsigned 32-bit integer.

Prototype

__SEGGER_RTL_U32 __udivsi3(__SEGGER_RTL_U32 num,
                           __SEGGER_RTL_U32 den);

Parameters

Parameter

Description

num

Dividend.

den

Divisor.

Return value

Quotient.

4.7.1.1.6. __udivdi3()

Description

Divide, unsigned 64-bit integer.

Prototype

__SEGGER_RTL_U64 __udivdi3(__SEGGER_RTL_U64 num,
                           __SEGGER_RTL_U64 den);

Parameters

Parameter

Description

num

Dividend.

den

Divisor.

Return value

Quotient.

4.7.1.1.7. __modsi3()

Description

Remainder after divide, signed 32-bit integer.

Prototype

int32_t __modsi3(int32_t num,
                 int32_t den);

Parameters

Parameter

Description

num

Dividend.

den

Divisor.

Return value

Remainder.

4.7.1.1.8. __moddi3()

Description

Remainder after divide, signed 64-bit integer.

Prototype

int64_t __moddi3(int64_t num,
                 int64_t den);

Parameters

Parameter

Description

num

Dividend.

den

Divisor.

Return value

Remainder.

4.7.1.1.9. __umodsi3()

Description

Remainder after divide, unsigned 32-bit integer.

Prototype

__SEGGER_RTL_U32 __umodsi3(__SEGGER_RTL_U32 num,
                           __SEGGER_RTL_U32 den);

Parameters

Parameter

Description

num

Dividend.

den

Divisor.

Return value

Remainder.

4.7.1.1.10. __umoddi3()

Description

Remainder after divide, unsigned 64-bit integer.

Prototype

__SEGGER_RTL_U64 __umoddi3(__SEGGER_RTL_U64 num,
                           __SEGGER_RTL_U64 den);

Parameters

Parameter

Description

num

Dividend.

den

Divisor.

Return value

Remainder.

4.7.1.1.11. __udivmodsi4()

Description

Divide with remainder, unsigned 32-bit integer.

Prototype

__SEGGER_RTL_U32 __udivmodsi4(__SEGGER_RTL_U32 num,
                              __SEGGER_RTL_U32 den,
                              __SEGGER_RTL_U32 *rem);

Parameters

Parameter

Description

num

Dividend.

den

Divisor.

rem

Pointer to object that receives the remainder.

Return value

Quotient.

4.7.1.1.12. __udivmoddi4()

Description

Divide with remainder, unsigned 64-bit integer.

Prototype

__SEGGER_RTL_U64 __udivmoddi4(__SEGGER_RTL_U64 num,
                              __SEGGER_RTL_U64 den,
                              __SEGGER_RTL_U64 *rem);

Parameters

Parameter

Description

num

Dividend.

den

Divisor.

rem

Pointer to object that receives the remainder.

Return value

Quotient.

4.7.1.1.13. __clzsi2()

Description

Count leading zeros, 32-bit integer.

Prototype

int __clzsi2(__SEGGER_RTL_U32 x);

Parameters

Parameter

Description

x

Argument; x must not be zero.

Return value

Number of leading zeros in x.

4.7.1.1.14. __clzdi2()

Description

Count leading zeros, 64-bit integer.

Prototype

int __clzdi2(__SEGGER_RTL_U64 x);

Parameters

Parameter

Description

x

Argument; x must not be zero.

Return value

Number of leading zeros in x.

4.7.1.1.15. __ctzsi2()

Description

Count trailing zeros, 32-bit integer.

Prototype

int __ctzsi2(__SEGGER_RTL_U32 x);

Parameters

Parameter

Description

x

Argument; x must not be zero.

Return value

Number of trailing zeros in x.

4.7.1.1.16. __ctzdi2()

Description

Count trailing zeros, 64-bit integer.

Prototype

int __ctzdi2(__SEGGER_RTL_U64 x);

Parameters

Parameter

Description

x

Argument; x must not be zero.

Return value

Number of trailing zeros in x.

4.7.1.1.17. __ffssi2()

Description

Find first set, 32-bit integer.

Prototype

int __ffssi2(__SEGGER_RTL_U32 x);

Parameters

Parameter

Description

x

Argument; Return value zero if x is zero.

Return value

The index of the least significant 1-bit in x.

4.7.1.1.18. __ffsdi2()

Description

Find first set, 64-bit integer.

Prototype

int __ffsdi2(__SEGGER_RTL_U64 x);

Parameters

Parameter

Description

x

Argument; Return value zero if x is zero.

Return value

The index of the least significant 1-bit in x.

4.7.1.1.19. __bswapsi2()

Description

Byte swap, 32-bit integer.

Prototype

int __bswapsi2(__SEGGER_RTL_U32 x);

Parameters

Parameter

Description

x

Argument.

Return value

The result of byte swap in x.

4.7.1.1.20. __bswapdi2()

Description

Byte swap, 64-bit integer.

Prototype

int __bswapdi2(__SEGGER_RTL_U64 x);

Parameters

Parameter

Description

x

Argument.

Return value

The result of byte swap in x.

4.7.1.1.21. __popcountsi2()

Description

Population count, 32-bit integer.

Prototype

int __popcountsi2(__SEGGER_RTL_U32 x);

Parameters

Parameter

Description

x

Argument.

Return value

Count of number of one bits in x.

4.7.1.1.22. __popcountdi2()

Description

Population count, 64-bit integer.

Prototype

int __popcountdi2(__SEGGER_RTL_U64 x);

Parameters

Parameter

Description

x

Argument.

Return value

Count of number of one bits in x.

4.7.1.1.23. __paritysi2()

Description

Parity, 32-bit integer.

Prototype

int __paritysi2(__SEGGER_RTL_U32 x);

Parameters

Parameter

Description

x

Argument.

Return value

1

number of one bits in x is odd.

0

number of one bits in x is even.

4.7.1.1.24. __paritydi2()

Description

Parity, 64-bit integer.

Prototype

int __paritydi2(__SEGGER_RTL_U64 x);

Parameters

Parameter

Description

x

Argument.

Return value

1

number of one bits in x is odd.

0

number of one bits in x is even.

4.7.1.2. Floating arithmetic

Function

Description

__addsf3()

Add, float.

__adddf3()

Add, double.

__addtf3()

Add, long double.

__subsf3()

Subtract, float.

__subdf3()

Subtract, double.

__subtf3()

Subtract, long double.

__mulsf3()

Multiply, float.

__muldf3()

Multiply, double.

__multf3()

Multiply, long double.

__divsf3()

Divide, float.

__divdf3()

Divide, double.

__divtf3()

Divide, long double.

4.7.1.2.1. __addsf3()

Description

Add, float.

Prototype

float __addsf3(float x,
               float y);

Parameters

Parameter

Description

x

Augend.

y

Addend.

Return value

Sum.

4.7.1.2.2. __adddf3()

Description

Add, double.

Prototype

double __adddf3(double x,
                double y);

Parameters

Parameter

Description

x

Augend.

y

Addend.

Return value

Sum.

4.7.1.2.3. __addtf3()

Description

Add, long double.

Prototype

long double __addtf3(long double x,
                     long double y);

Parameters

Parameter

Description

x

Augend.

y

Addend.

Return value

Sum.

4.7.1.2.4. __subsf3()

Description

Subtract, float.

Prototype

float __subsf3(float x,
               float y);

Parameters

Parameter

Description

x

Minuend.

y

Subtrahend.

Return value

Difference.

4.7.1.2.5. __subdf3()

Description

Subtract, double.

Prototype

double __subdf3(double x,
                double y);

Parameters

Parameter

Description

x

Minuend.

y

Subtrahend.

Return value

Difference.

4.7.1.2.6. __subtf3()

Description

Subtract, long double.

Prototype

long double __subtf3(long double x,
                     long double y);

Parameters

Parameter

Description

x

Minuend.

y

Subtrahend.

Return value

Difference.

4.7.1.2.7. __mulsf3()

Description

Multiply, float.

Prototype

float __mulsf3(float x,
               float y);

Parameters

Parameter

Description

x

Multiplicand.

y

Multiplier.

Return value

Product.

4.7.1.2.8. __muldf3()

Description

Multiply, double.

Prototype

double __muldf3(double x,
                double y);

Parameters

Parameter

Description

x

Multiplicand.

y

Multiplier.

Return value

Product.

4.7.1.2.9. __multf3()

Description

Multiply, long double.

Prototype

long double __multf3(long double x,
                     long double y);

Parameters

Parameter

Description

x

Multiplicand.

y

Multiplier.

Return value

Product.

4.7.1.2.10. __divsf3()

Description

Divide, float.

Prototype

float __divsf3(float x,
               float y);

Parameters

Parameter

Description

x

Dividend.

y

Divisor.

Return value

Quotient.

4.7.1.2.11. __divdf3()

Description

Divide, double.

Prototype

double __divdf3(double x,
                double y);

Parameters

Parameter

Description

x

Dividend.

y

Divisor.

Return value

Quotient.

4.7.1.2.12. __divtf3()

Description

Divide, long double.

Prototype

long double __divtf3(long double x,
                     long double y);

Parameters

Parameter

Description

x

Dividend.

y

Divisor.

Return value

Quotient.

4.7.1.3. Floating conversions

Function

Description

__fixsfsi()

Convert float to int.

__fixdfsi()

Convert double to int.

__fixtfsi()

Convert long double to int.

__fixsfdi()

Convert float to long long.

__fixdfdi()

Convert double to long long.

__fixtfdi()

Convert long double to long long.

__fixunssfsi()

Convert float to unsigned.

__fixunsdfsi()

Convert double to unsigned.

__fixunstfsi()

Convert long double to int.

__fixunssfdi()

Convert float to unsigned long long.

__fixunsdfdi()

Convert double to unsigned long long.

__fixunstfdi()

Convert long double to unsigned long long.

__floatsisf()

Convert int to float.

__floatsidf()

Convert int to double.

__floatsitf()

Convert int to long double.

__floatdisf()

Convert long long to float.

__floatdidf()

Convert long long to double.

__floatditf()

Convert long long to long double.

__floatunsisf()

Convert unsigned to float.

__floatunsidf()

Convert unsigned to double.

__floatunsitf()

Convert unsigned to long double.

__floatundisf()

Convert unsigned long long to float.

__floatundidf()

Convert unsigned long long to double.

__floatunditf()

Convert unsigned long long to long double.

__extendsfdf2()

Extend float to double.

__extendsftf2()

Extend float to long double.

__extenddftf2()

Extend double to long double.

__truncdfsf2()

Truncate double to float.

__trunctfsf2()

Truncate long double to float.

__trunctfdf2()

Truncate long double to double.

4.7.1.3.1. __fixsfsi()

Description

Convert float to int.

Prototype

__SEGGER_RTL_I32 __fixsfsi(float x);

Parameters

Parameter

Description

x

Floating value to convert.

Return value

Integerized value.

4.7.1.3.2. __fixdfsi()

Description

Convert double to int.

Prototype

__SEGGER_RTL_I32 __fixdfsi(double x);

Parameters

Parameter

Description

x

Floating value to convert.

Return value

Integerized value.

4.7.1.3.3. __fixtfsi()

Description

Convert long double to int.

Prototype

__SEGGER_RTL_I32 __fixtfsi(long double x);

Parameters

Parameter

Description

x

Floating value to convert.

Return value

Integerized value.

4.7.1.3.4. __fixsfdi()

Description

Convert float to long long.

Prototype

__SEGGER_RTL_I64 __fixsfdi(float f);

Parameters

Parameter

Description

f

Floating value to convert.

Return value

Integerized value.

Notes

The RV32 compiler converts a float to a 64-bit integer by calling runtime support to handle it.

4.7.1.3.5. __fixdfdi()

Description

Convert double to long long.

Prototype

__SEGGER_RTL_I64 __fixdfdi(double x);

Parameters

Parameter

Description

x

Floating value to convert.

Return value

Integerized value.

Notes

RV32 always calls runtime for double to int64 conversion.

4.7.1.3.6. __fixtfdi()

Description

Convert long double to long long.

Prototype

__SEGGER_RTL_I64 __fixtfdi(long double x);

Parameters

Parameter

Description

x

Floating value to convert.

Return value

Integerized value.

4.7.1.3.7. __fixunssfsi()

Description

Convert float to unsigned.

Prototype

__SEGGER_RTL_U32 __fixunssfsi(float x);

Parameters

Parameter

Description

x

Float value to convert.

Return value

Integerized value.

4.7.1.3.8. __fixunsdfsi()

Description

Convert double to unsigned.

Prototype

__SEGGER_RTL_U32 __fixunsdfsi(double x);

Parameters

Parameter

Description

x

Float value to convert.

Return value

Integerized value.

4.7.1.3.9. __fixunstfsi()

Description

Convert long double to int.

Prototype

int __fixunstfsi(long double x);

Parameters

Parameter

Description

x

Float value to convert.

Return value

Integerized value.

4.7.1.3.10. __fixunssfdi()

Description

Convert float to unsigned long long.

Prototype

__SEGGER_RTL_U64 __fixunssfdi(float f);

Parameters

Parameter

Description

f

Float value to convert.

Return value

Integerized value.

4.7.1.3.11. __fixunsdfdi()

Description

Convert double to unsigned long long.

Prototype

__SEGGER_RTL_U64 __fixunsdfdi(double x);

Parameters

Parameter

Description

x

Float value to convert.

Return value

Integerized value.

4.7.1.3.12. __fixunstfdi()

Description

Convert long double to unsigned long long.

Prototype

__SEGGER_RTL_U64 __fixunstfdi(long double x);

Parameters

Parameter

Description

x

Float value to convert.

Return value

Integerized value.

4.7.1.3.13. __floatsisf()

Description

Convert int to float.

Prototype

float __floatsisf(__SEGGER_RTL_I32 x);

Parameters

Parameter

Description

x

Integer value to convert.

Return value

Floating value.

4.7.1.3.14. __floatsidf()

Description

Convert int to double.

Prototype

double __floatsidf(__SEGGER_RTL_I32 x);

Parameters

Parameter

Description

x

Integer value to convert.

Return value

Floating value.

4.7.1.3.15. __floatsitf()

Description

Convert int to long double.

Prototype

long double __floatsitf(__SEGGER_RTL_I32 x);

Parameters

Parameter

Description

x

Integer value to convert.

Return value

Floating value.

4.7.1.3.16. __floatdisf()

Description

Convert long long to float.

Prototype

float __floatdisf(__SEGGER_RTL_I64 x);

Parameters

Parameter

Description

x

Integer value to convert.

Return value

Floating value.

4.7.1.3.17. __floatdidf()

Description

Convert long long to double.

Prototype

double __floatdidf(__SEGGER_RTL_I64 x);

Parameters

Parameter

Description

x

Integer value to convert.

Return value

Floating value.

4.7.1.3.18. __floatditf()

Description

Convert long long to long double.

Prototype

long double __floatditf(__SEGGER_RTL_I64 x);

Parameters

Parameter

Description

x

Integer value to convert.

Return value

Floating value.

4.7.1.3.19. __floatunsisf()

Description

Convert unsigned to float.

Prototype

float __floatunsisf(__SEGGER_RTL_U32 x);

Parameters

Parameter

Description

x

Integer value to convert.

Return value

Floating value.

4.7.1.3.20. __floatunsidf()

Description

Convert unsigned to double.

Prototype

double __floatunsidf(__SEGGER_RTL_U32 x);

Parameters

Parameter

Description

x

Unsigned value to convert.

Return value

Double value.

4.7.1.3.21. __floatunsitf()

Description

Convert unsigned to long double.

Prototype

long double __floatunsitf(__SEGGER_RTL_U32 x);

Parameters

Parameter

Description

x

Unsigned value to convert.

Return value

Long double value.

4.7.1.3.22. __floatundisf()

Description

Convert unsigned long long to float.

Prototype

float __floatundisf(__SEGGER_RTL_U64 x);

Parameters

Parameter

Description

x

Unsigned long long value to convert.

Return value

Float value.

4.7.1.3.23. __floatundidf()

Description

Convert unsigned long long to double.

Prototype

double __floatundidf(__SEGGER_RTL_U64 x);

Parameters

Parameter

Description

x

Unsigned long long value to convert.

Return value

Double value.

4.7.1.3.24. __floatunditf()

Description

Convert unsigned long long to long double.

Prototype

long double __floatunditf(__SEGGER_RTL_U64 x);

Parameters

Parameter

Description

x

Unsigned long long value to convert.

Return value

Long double value.

4.7.1.3.25. __extendsfdf2()

Description

Extend float to double.

Prototype

double __extendsfdf2(float x);

Parameters

Parameter

Description

x

Float value to extend.

Return value

Double value.

4.7.1.3.26. __extendsftf2()

Description

Extend float to long double.

Prototype

long double __extendsftf2(float x);

Parameters

Parameter

Description

x

Float value to extend.

Return value

Double value.

4.7.1.3.27. __extenddftf2()

Description

Extend double to long double.

Prototype

long double __extenddftf2(double x);

Parameters

Parameter

Description

x

Double value to extend.

Return value

Long double value.

4.7.1.3.28. __truncdfsf2()

Description

Truncate double to float.

Prototype

float __truncdfsf2(double x);

Parameters

Parameter

Description

x

Double value to truncate.

Return value

Float value.

4.7.1.3.29. __trunctfdf2()

Description

Truncate long double to double.

Prototype

double __trunctfdf2(long double x);

Parameters

Parameter

Description

x

Long double value to truncate.

Return value

Double value.

4.7.1.3.30. __trunctfsf2()

Description

Truncate long double to float.

Prototype

float __trunctfsf2(long double x);

Parameters

Parameter

Description

x

Long double value to truncate.

Return value

Float value.

4.7.1.4. Floating comparisons

Function

Description

__eqsf2()

Equal, float.

__eqdf2()

Equal, double.

__eqtf2()

Equal, long double.

__nesf2()

Not equal, float.

__nedf2()

Not equal, double.

__netf2()

Not equal, long double.

__ltsf2()

Less than, float.

__ltdf2()

Less than, double.

__lttf2()

Less than, long double.

__lesf2()

Less than or equal, float.

__ledf2()

Less than or equal, double.

__letf2()

Less than or equal, long double.

__gtsf2()

Greater than, float.

__gtdf2()

Greater than, double.

__gttf2()

Greater than, long double.

__gesf2()

Greater than or equal, float.

__gedf2()

Greater than or equal, double.

__getf2()

Greater than or equal, long double.

4.7.1.4.1. __eqsf2()

Description

Equal, float.

Prototype

int __eqsf2(float x,
            float y);

Parameters

Parameter

Description

x

Left-hand operand.

y

Right-hand operand.

Return value

Return = 0 if both operands are non-NaN and a = b (GNU three-way boolean).

4.7.1.4.2. __eqdf2()

Description

Equal, double.

Prototype

int __eqdf2(double x,
            double y);

Parameters

Parameter

Description

x

Left-hand operand.

y

Right-hand operand.

Return value

Return = 0 if both operands are non-NaN and a = b (GNU three-way boolean).

4.7.1.4.3. __eqtf2()

Description

Equal, long double.

Prototype

int __eqtf2(long double x,
            long double y);

Parameters

Parameter

Description

x

Left-hand operand.

y

Right-hand operand.

Return value

Return = 0 if both operands are non-NaN and a = b (GNU three-way boolean).

4.7.1.4.4. __nesf2()

Description

Not equal, float.

Prototype

int __nesf2(float x,
            float y);

Parameters

Parameter

Description

x

Left-hand operand.

y

Right-hand operand.

Return value

Return = 0 if both operands are non-NaN and a = b (GNU three-way boolean).

4.7.1.4.5. __nedf2()

Description

Not equal, double.

Prototype

int __nedf2(double x,
            double y);

Parameters

Parameter

Description

x

Left-hand operand.

y

Right-hand operand.

Return value

Return = 0 if both operands are non-NaN and a = b (GNU three-way boolean).

4.7.1.4.6. __netf2()

Description

Not equal, long double.

Prototype

int __netf2(long double x,
            long double y);

Parameters

Parameter

Description

x

Left-hand operand.

y

Right-hand operand.

Return value

Return = 0 if both operands are non-NaN and a = b (GNU three-way boolean).

4.7.1.4.7. __ltsf2()

Description

Less than, float.

Prototype

int __ltsf2(float x,
            float y);

Parameters

Parameter

Description

x

Left-hand operand.

y

Right-hand operand.

Return value

Return < 0 if both operands are non-NaN and a < b (GNU three-way boolean).

4.7.1.4.8. __ltdf2()

Description

Less than, double.

Prototype

int __ltdf2(double x,
            double y);

Parameters

Parameter

Description

x

Left-hand operand.

y

Right-hand operand.

Return value

Return < 0 if both operands are non-NaN and a < b (GNU three-way boolean).

4.7.1.4.9. __lttf2()

Description

Less than, long double.

Prototype

int __lttf2(long double x,
            long double y);

Parameters

Parameter

Description

x

Left-hand operand.

y

Right-hand operand.

Return value

Return < 0 if both operands are non-NaN and a < b (GNU three-way boolean).

4.7.1.4.10. __lesf2()

Description

Less than or equal, float.

Prototype

int __lesf2(float x,
            float y);

Parameters

Parameter

Description

x

Left-hand operand.

y

Right-hand operand.

Return value

Return ≤ 0 if both operands are non-NaN and a < b (GNU three-way boolean).

4.7.1.4.11. __ledf2()

Description

Less than or equal, double.

Prototype

int __ledf2(double x,
            double y);

Parameters

Parameter

Description

x

Left-hand operand.

y

Right-hand operand.

Return value

Return ≤ 0 if both operands are non-NaN and a < b (GNU three-way boolean).

4.7.1.4.12. __letf2()

Description

Less than or equal, long double.

Prototype

int __letf2(long double x,
            long double y);

Parameters

Parameter

Description

x

Left-hand operand.

y

Right-hand operand.

Return value

Return ≤ 0 if both operands are non-NaN and a < b (GNU three-way boolean).

4.7.1.4.13. __gtsf2()

Description

Greater than, float.

Prototype

int __gtsf2(float x,
            float y);

Parameters

Parameter

Description

x

Left-hand operand.

y

Right-hand operand.

Return value

Return > 0 if both operands are non-NaN and a > b (GNU three-way boolean).

4.7.1.4.14. __gtdf2()

Description

Greater than, double.

Prototype

int __gtdf2(double x,
            double y);

Parameters

Parameter

Description

x

Left-hand operand.

y

Right-hand operand.

Return value

Return > 0 if both operands are non-NaN and a > b (GNU three-way boolean).

4.7.1.4.15. __gttf2()

Description

Greater than, long double.

Prototype

int __gttf2(long double x,
            long double y);

Parameters

Parameter

Description

x

Left-hand operand.

y

Right-hand operand.

Return value

Return > 0 if both operands are non-NaN and a > b (GNU three-way boolean).

4.7.1.4.16. __gesf2()

Description

Greater than or equal, float.

Prototype

int __gesf2(float x,
            float y);

Parameters

Parameter

Description

x

Left-hand operand.

y

Right-hand operand.

Return value

Return ≥ 0 if both operands are non-NaN and a ≥ b (GNU three-way boolean).

4.7.1.4.17. __gedf2()

Description

Greater than or equal, double.

Prototype

int __gedf2(double x,
            double y);

Parameters

Parameter

Description

x

Left-hand operand.

y

Right-hand operand.

Return value

Return ≥ 0 if both operands are non-NaN and a ≥ b (GNU three-way boolean).

4.7.1.4.18. __getf2()

Description

Greater than or equal, long double.

Prototype

int __getf2(long double x,
            long double y);

Parameters

Parameter

Description

x

Left-hand operand.

y

Right-hand operand.

Return value

Return ≥ 0 if both operands are non-NaN and a ≥ b (GNU three-way boolean).