soft-fp: Properly check _FP_W_TYPE_SIZE [BZ #24066]

quad.h have

 #if _FP_W_TYPE_SIZE < 64

union _FP_UNION_Q
{
  Use 4 _FP_W_TYPEs
}

 #else

union _FP_UNION_Q
{
  Use 2 _FP_W_TYPEs
}

 #endif

Replace

 #if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q

with

 #if _FP_W_TYPE_SIZE < 64

to check whether 4 or 2 _FP_W_TYPEs are used for IEEE quad precision.
Tested with build-many-glibcs.py.

	[BZ #24066]
	* soft-fp/extenddftf2.c: Use "_FP_W_TYPE_SIZE < 64" to check if
	4_FP_W_TYPEs are used for IEEE quad precision.
	* soft-fp/extendhftf2.c: Likewise.
	* soft-fp/extendsftf2.c: Likewise.
	* soft-fp/extendxftf2.c: Likewise.
	* soft-fp/trunctfdf2.c: Likewise.
	* soft-fp/trunctfhf2.c: Likewise.
	* soft-fp/trunctfsf2.c: Likewise.
	* soft-fp/trunctfxf2.c: Likewise.
	* sysdeps/alpha/ots_cvttx.c: Likewise.
	* sysdeps/alpha/ots_cvtxt.c: Likewise.
	* sysdeps/ieee754/soft-fp/s_daddl.c: Likewise.
	* sysdeps/ieee754/soft-fp/s_ddivl.c: Likewise.
	* sysdeps/ieee754/soft-fp/s_dmull.c: Likewise.
	* sysdeps/ieee754/soft-fp/s_dsubl.c: Likewise.
	* sysdeps/ieee754/soft-fp/s_faddl.c: Likewise.
	* sysdeps/ieee754/soft-fp/s_fdivl.c: Likewise.
	* sysdeps/ieee754/soft-fp/s_fmull.c: Likewise.
	* sysdeps/ieee754/soft-fp/s_fsubl.c: Likewise.
	* sysdeps/sparc/sparc32/q_dtoq.c: Likewise.
	* sysdeps/sparc/sparc32/q_qtod.c: Likewise.
	* sysdeps/sparc/sparc32/q_qtos.c: Likewise.
	* sysdeps/sparc/sparc32/q_stoq.c: Likewise.
	* sysdeps/sparc/sparc64/qp_dtoq.c: Likewise.
	* sysdeps/sparc/sparc64/qp_qtod.c: Likewise.
	* sysdeps/sparc/sparc64/qp_qtos.c: Likewise.
	* sysdeps/sparc/sparc64/qp_stoq.c: Likewise.
This commit is contained in:
H.J. Lu 2019-01-07 09:04:29 -08:00
parent 2ef4271688
commit 69da3c9e87
27 changed files with 57 additions and 26 deletions

View File

@ -1,3 +1,34 @@
2019-01-07 H.J. Lu <hongjiu.lu@intel.com>
[BZ #24066]
* soft-fp/extenddftf2.c: Use "_FP_W_TYPE_SIZE < 64" to check if
4_FP_W_TYPEs are used for IEEE quad precision.
* soft-fp/extendhftf2.c: Likewise.
* soft-fp/extendsftf2.c: Likewise.
* soft-fp/extendxftf2.c: Likewise.
* soft-fp/trunctfdf2.c: Likewise.
* soft-fp/trunctfhf2.c: Likewise.
* soft-fp/trunctfsf2.c: Likewise.
* soft-fp/trunctfxf2.c: Likewise.
* sysdeps/alpha/ots_cvttx.c: Likewise.
* sysdeps/alpha/ots_cvtxt.c: Likewise.
* sysdeps/ieee754/soft-fp/s_daddl.c: Likewise.
* sysdeps/ieee754/soft-fp/s_ddivl.c: Likewise.
* sysdeps/ieee754/soft-fp/s_dmull.c: Likewise.
* sysdeps/ieee754/soft-fp/s_dsubl.c: Likewise.
* sysdeps/ieee754/soft-fp/s_faddl.c: Likewise.
* sysdeps/ieee754/soft-fp/s_fdivl.c: Likewise.
* sysdeps/ieee754/soft-fp/s_fmull.c: Likewise.
* sysdeps/ieee754/soft-fp/s_fsubl.c: Likewise.
* sysdeps/sparc/sparc32/q_dtoq.c: Likewise.
* sysdeps/sparc/sparc32/q_qtod.c: Likewise.
* sysdeps/sparc/sparc32/q_qtos.c: Likewise.
* sysdeps/sparc/sparc32/q_stoq.c: Likewise.
* sysdeps/sparc/sparc64/qp_dtoq.c: Likewise.
* sysdeps/sparc/sparc64/qp_qtod.c: Likewise.
* sysdeps/sparc/sparc64/qp_qtos.c: Likewise.
* sysdeps/sparc/sparc64/qp_stoq.c: Likewise.
2019-01-07 Aurelien Jarno <aurelien@aurel32.net> 2019-01-07 Aurelien Jarno <aurelien@aurel32.net>
[BZ #24024] [BZ #24024]

View File

@ -43,7 +43,7 @@ __extenddftf2 (DFtype a)
FP_INIT_EXCEPTIONS; FP_INIT_EXCEPTIONS;
FP_UNPACK_RAW_D (A, a); FP_UNPACK_RAW_D (A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_EXTEND (Q, D, 4, 2, R, A); FP_EXTEND (Q, D, 4, 2, R, A);
#else #else
FP_EXTEND (Q, D, 2, 1, R, A); FP_EXTEND (Q, D, 2, 1, R, A);

View File

@ -41,7 +41,7 @@ __extendhftf2 (HFtype a)
FP_INIT_EXCEPTIONS; FP_INIT_EXCEPTIONS;
FP_UNPACK_RAW_H (A, a); FP_UNPACK_RAW_H (A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_EXTEND (Q, H, 4, 1, R, A); FP_EXTEND (Q, H, 4, 1, R, A);
#else #else
FP_EXTEND (Q, H, 2, 1, R, A); FP_EXTEND (Q, H, 2, 1, R, A);

View File

@ -43,7 +43,7 @@ __extendsftf2 (SFtype a)
FP_INIT_EXCEPTIONS; FP_INIT_EXCEPTIONS;
FP_UNPACK_RAW_S (A, a); FP_UNPACK_RAW_S (A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_EXTEND (Q, S, 4, 1, R, A); FP_EXTEND (Q, S, 4, 1, R, A);
#else #else
FP_EXTEND (Q, S, 2, 1, R, A); FP_EXTEND (Q, S, 2, 1, R, A);

View File

@ -41,7 +41,7 @@ __extendxftf2 (XFtype a)
FP_INIT_TRAPPING_EXCEPTIONS; FP_INIT_TRAPPING_EXCEPTIONS;
FP_UNPACK_RAW_E (A, a); FP_UNPACK_RAW_E (A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_EXTEND (Q, E, 4, 4, R, A); FP_EXTEND (Q, E, 4, 4, R, A);
#else #else
FP_EXTEND (Q, E, 2, 2, R, A); FP_EXTEND (Q, E, 2, 2, R, A);

View File

@ -42,7 +42,7 @@ __trunctfdf2 (TFtype a)
FP_INIT_ROUNDMODE; FP_INIT_ROUNDMODE;
FP_UNPACK_SEMIRAW_Q (A, a); FP_UNPACK_SEMIRAW_Q (A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_TRUNC (D, Q, 2, 4, R, A); FP_TRUNC (D, Q, 2, 4, R, A);
#else #else
FP_TRUNC (D, Q, 1, 2, R, A); FP_TRUNC (D, Q, 1, 2, R, A);

View File

@ -40,7 +40,7 @@ __trunctfhf2 (TFtype a)
FP_INIT_ROUNDMODE; FP_INIT_ROUNDMODE;
FP_UNPACK_SEMIRAW_Q (A, a); FP_UNPACK_SEMIRAW_Q (A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_TRUNC (H, Q, 1, 4, R, A); FP_TRUNC (H, Q, 1, 4, R, A);
#else #else
FP_TRUNC (H, Q, 1, 2, R, A); FP_TRUNC (H, Q, 1, 2, R, A);

View File

@ -42,7 +42,7 @@ __trunctfsf2 (TFtype a)
FP_INIT_ROUNDMODE; FP_INIT_ROUNDMODE;
FP_UNPACK_SEMIRAW_Q (A, a); FP_UNPACK_SEMIRAW_Q (A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_TRUNC (S, Q, 1, 4, R, A); FP_TRUNC (S, Q, 1, 4, R, A);
#else #else
FP_TRUNC (S, Q, 1, 2, R, A); FP_TRUNC (S, Q, 1, 2, R, A);

View File

@ -41,7 +41,7 @@ __trunctfxf2 (TFtype a)
FP_INIT_ROUNDMODE; FP_INIT_ROUNDMODE;
FP_UNPACK_SEMIRAW_Q (A, a); FP_UNPACK_SEMIRAW_Q (A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_TRUNC (E, Q, 4, 4, R, A); FP_TRUNC (E, Q, 4, 4, R, A);
#else #else
FP_TRUNC (E, Q, 2, 2, R, A); FP_TRUNC (E, Q, 2, 2, R, A);

View File

@ -35,7 +35,7 @@ _OtsConvertFloatTX(double a)
AXP_DECL_RETURN_Q(c); AXP_DECL_RETURN_Q(c);
FP_UNPACK_RAW_D(A, a); FP_UNPACK_RAW_D(A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_EXTEND(Q,D,4,2,C,A); FP_EXTEND(Q,D,4,2,C,A);
#else #else
FP_EXTEND(Q,D,2,1,C,A); FP_EXTEND(Q,D,2,1,C,A);

View File

@ -31,7 +31,7 @@ _OtsConvertFloatXT (long al, long ah, long _round)
FP_INIT_ROUNDMODE; FP_INIT_ROUNDMODE;
AXP_UNPACK_SEMIRAW_Q(A, a); AXP_UNPACK_SEMIRAW_Q(A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_TRUNC(D,Q,2,4,R,A); FP_TRUNC(D,Q,2,4,R,A);
#else #else
FP_TRUNC(D,Q,1,2,R,A); FP_TRUNC(D,Q,1,2,R,A);

View File

@ -46,7 +46,7 @@ __daddl (_Float128 x, _Float128 y)
FP_UNPACK_SEMIRAW_Q (X, x); FP_UNPACK_SEMIRAW_Q (X, x);
FP_UNPACK_SEMIRAW_Q (Y, y); FP_UNPACK_SEMIRAW_Q (Y, y);
FP_ADD_Q (R, X, Y); FP_ADD_Q (R, X, Y);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_TRUNC (D, Q, 2, 4, RN, R); FP_TRUNC (D, Q, 2, 4, RN, R);
#else #else
FP_TRUNC (D, Q, 1, 2, RN, R); FP_TRUNC (D, Q, 1, 2, RN, R);

View File

@ -46,7 +46,7 @@ __ddivl (_Float128 x, _Float128 y)
FP_UNPACK_Q (X, x); FP_UNPACK_Q (X, x);
FP_UNPACK_Q (Y, y); FP_UNPACK_Q (Y, y);
FP_DIV_Q (R, X, Y); FP_DIV_Q (R, X, Y);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_TRUNC_COOKED (D, Q, 2, 4, RN, R); FP_TRUNC_COOKED (D, Q, 2, 4, RN, R);
#else #else
FP_TRUNC_COOKED (D, Q, 1, 2, RN, R); FP_TRUNC_COOKED (D, Q, 1, 2, RN, R);

View File

@ -46,7 +46,7 @@ __dmull (_Float128 x, _Float128 y)
FP_UNPACK_Q (X, x); FP_UNPACK_Q (X, x);
FP_UNPACK_Q (Y, y); FP_UNPACK_Q (Y, y);
FP_MUL_Q (R, X, Y); FP_MUL_Q (R, X, Y);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_TRUNC_COOKED (D, Q, 2, 4, RN, R); FP_TRUNC_COOKED (D, Q, 2, 4, RN, R);
#else #else
FP_TRUNC_COOKED (D, Q, 1, 2, RN, R); FP_TRUNC_COOKED (D, Q, 1, 2, RN, R);

View File

@ -46,7 +46,7 @@ __dsubl (_Float128 x, _Float128 y)
FP_UNPACK_SEMIRAW_Q (X, x); FP_UNPACK_SEMIRAW_Q (X, x);
FP_UNPACK_SEMIRAW_Q (Y, y); FP_UNPACK_SEMIRAW_Q (Y, y);
FP_SUB_Q (R, X, Y); FP_SUB_Q (R, X, Y);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_TRUNC (D, Q, 2, 4, RN, R); FP_TRUNC (D, Q, 2, 4, RN, R);
#else #else
FP_TRUNC (D, Q, 1, 2, RN, R); FP_TRUNC (D, Q, 1, 2, RN, R);

View File

@ -42,7 +42,7 @@ __faddl (_Float128 x, _Float128 y)
FP_UNPACK_SEMIRAW_Q (X, x); FP_UNPACK_SEMIRAW_Q (X, x);
FP_UNPACK_SEMIRAW_Q (Y, y); FP_UNPACK_SEMIRAW_Q (Y, y);
FP_ADD_Q (R, X, Y); FP_ADD_Q (R, X, Y);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_TRUNC (S, Q, 1, 4, RN, R); FP_TRUNC (S, Q, 1, 4, RN, R);
#else #else
FP_TRUNC (S, Q, 1, 2, RN, R); FP_TRUNC (S, Q, 1, 2, RN, R);

View File

@ -42,7 +42,7 @@ __fdivl (_Float128 x, _Float128 y)
FP_UNPACK_Q (X, x); FP_UNPACK_Q (X, x);
FP_UNPACK_Q (Y, y); FP_UNPACK_Q (Y, y);
FP_DIV_Q (R, X, Y); FP_DIV_Q (R, X, Y);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_TRUNC_COOKED (S, Q, 1, 4, RN, R); FP_TRUNC_COOKED (S, Q, 1, 4, RN, R);
#else #else
FP_TRUNC_COOKED (S, Q, 1, 2, RN, R); FP_TRUNC_COOKED (S, Q, 1, 2, RN, R);

View File

@ -42,7 +42,7 @@ __fmull (_Float128 x, _Float128 y)
FP_UNPACK_Q (X, x); FP_UNPACK_Q (X, x);
FP_UNPACK_Q (Y, y); FP_UNPACK_Q (Y, y);
FP_MUL_Q (R, X, Y); FP_MUL_Q (R, X, Y);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_TRUNC_COOKED (S, Q, 1, 4, RN, R); FP_TRUNC_COOKED (S, Q, 1, 4, RN, R);
#else #else
FP_TRUNC_COOKED (S, Q, 1, 2, RN, R); FP_TRUNC_COOKED (S, Q, 1, 2, RN, R);

View File

@ -42,7 +42,7 @@ __fsubl (_Float128 x, _Float128 y)
FP_UNPACK_SEMIRAW_Q (X, x); FP_UNPACK_SEMIRAW_Q (X, x);
FP_UNPACK_SEMIRAW_Q (Y, y); FP_UNPACK_SEMIRAW_Q (Y, y);
FP_SUB_Q (R, X, Y); FP_SUB_Q (R, X, Y);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_TRUNC (S, Q, 1, 4, RN, R); FP_TRUNC (S, Q, 1, 4, RN, R);
#else #else
FP_TRUNC (S, Q, 1, 2, RN, R); FP_TRUNC (S, Q, 1, 2, RN, R);

View File

@ -32,7 +32,7 @@ long double _Q_dtoq(const double a)
FP_INIT_ROUNDMODE; FP_INIT_ROUNDMODE;
FP_UNPACK_RAW_D(A, a); FP_UNPACK_RAW_D(A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_EXTEND(Q,D,4,2,C,A); FP_EXTEND(Q,D,4,2,C,A);
#else #else
FP_EXTEND(Q,D,2,1,C,A); FP_EXTEND(Q,D,2,1,C,A);

View File

@ -32,7 +32,7 @@ double _Q_qtod(const long double a)
FP_INIT_ROUNDMODE; FP_INIT_ROUNDMODE;
FP_UNPACK_SEMIRAW_Q(A, a); FP_UNPACK_SEMIRAW_Q(A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_TRUNC(D,Q,2,4,R,A); FP_TRUNC(D,Q,2,4,R,A);
#else #else
FP_TRUNC(D,Q,1,2,R,A); FP_TRUNC(D,Q,1,2,R,A);

View File

@ -32,7 +32,7 @@ float _Q_qtos(const long double a)
FP_INIT_ROUNDMODE; FP_INIT_ROUNDMODE;
FP_UNPACK_SEMIRAW_Q(A, a); FP_UNPACK_SEMIRAW_Q(A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_TRUNC(S,Q,1,4,R,A); FP_TRUNC(S,Q,1,4,R,A);
#else #else
FP_TRUNC(S,Q,1,2,R,A); FP_TRUNC(S,Q,1,2,R,A);

View File

@ -31,7 +31,7 @@ long double _Q_stoq(const float a)
long double c; long double c;
FP_UNPACK_RAW_S(A, a); FP_UNPACK_RAW_S(A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_EXTEND(Q,S,4,1,C,A); FP_EXTEND(Q,S,4,1,C,A);
#else #else
FP_EXTEND(Q,S,2,1,C,A); FP_EXTEND(Q,S,2,1,C,A);

View File

@ -31,7 +31,7 @@ void _Qp_dtoq(long double *c, const double a)
FP_INIT_ROUNDMODE; FP_INIT_ROUNDMODE;
FP_UNPACK_RAW_D(A, a); FP_UNPACK_RAW_D(A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_EXTEND(Q,D,4,2,C,A); FP_EXTEND(Q,D,4,2,C,A);
#else #else
FP_EXTEND(Q,D,2,1,C,A); FP_EXTEND(Q,D,2,1,C,A);

View File

@ -32,7 +32,7 @@ double _Qp_qtod(const long double *a)
FP_INIT_ROUNDMODE; FP_INIT_ROUNDMODE;
FP_UNPACK_SEMIRAW_QP(A, a); FP_UNPACK_SEMIRAW_QP(A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_TRUNC(D,Q,2,4,R,A); FP_TRUNC(D,Q,2,4,R,A);
#else #else
FP_TRUNC(D,Q,1,2,R,A); FP_TRUNC(D,Q,1,2,R,A);

View File

@ -32,7 +32,7 @@ float _Qp_qtos(const long double *a)
FP_INIT_ROUNDMODE; FP_INIT_ROUNDMODE;
FP_UNPACK_SEMIRAW_QP(A, a); FP_UNPACK_SEMIRAW_QP(A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_TRUNC(S,Q,1,4,R,A); FP_TRUNC(S,Q,1,4,R,A);
#else #else
FP_TRUNC(S,Q,1,2,R,A); FP_TRUNC(S,Q,1,2,R,A);

View File

@ -31,7 +31,7 @@ void _Qp_stoq(long double *c, const float a)
FP_INIT_ROUNDMODE; FP_INIT_ROUNDMODE;
FP_UNPACK_RAW_S(A, a); FP_UNPACK_RAW_S(A, a);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q #if _FP_W_TYPE_SIZE < 64
FP_EXTEND(Q,S,4,1,C,A); FP_EXTEND(Q,S,4,1,C,A);
#else #else
FP_EXTEND(Q,S,2,1,C,A); FP_EXTEND(Q,S,2,1,C,A);