-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Resolve FTBFS [Bug 2113609] pveclib in rawhide/f37
The switch to GCC-12 exposed some latent issues in pveclib-1.0.4-4 1) The (accidental) typedef of __float128 over __ieee128 and the cast of (vector unsigned int *) constants to (vector unsigned __int128 *) seems to violate strict-aliasing. But this is not reported unless -Wstrict-aliasing=2 is used. The result was silently generating incorrect code. GCC PR 106755. 2) GCC-12 corrected a long latent problem with vec_cpsgn (swapped operands). PVECLIB followed the implementation from previous GCC versions (GCC <= 11). This broke vector float/double unit tests. GCC PR 101984. 3) The implementation of IEEE Float128 is evolving and various types (__float128, __ieee128, _Float128, ...) are highly dependent on the compiler version/options used. The implementation (tries again) to supports. The API uses __binary128 and avoids _Float128. * src/pveclib/vec_f128_ppc.h (__binary128): Define/typedef to the quad-precision float type that the support supports. * src/pveclib/vec_f32_ppc.h (vec_copysignf32): Unless PVECLIB_CPSGN_FIXED is defined, avoid vec_cpsgn. * src/pveclib/vec_f64_ppc.h (vec_copysignf64): Unless PVECLIB_CPSGN_FIXED is defined, avoid vec_cpsgn. * src/testsuite/arith128_test_f32.c (test_float_cpsgn): Swap operands/results to match GCC12. * src/testsuite/arith128_test_f64.c (test_double_cpsgn): Swap operands/results to match GCC12. * src/testsuite/arith128_test_i128.c (test_muludq): Change local variable 'l' type to match vec_muludq parameter. (test_madduq) Change local variable 'l' type to match vec_madduq parameter. * src/testsuite/vec_f128_dummy.c: Replace all usage of type __Float128 with __binary128. Signed-off-by: Steven Munroe <[email protected]>
- Loading branch information
1 parent
f0160f9
commit 1e9692c
Showing
7 changed files
with
120 additions
and
56 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters