Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stable/1.0.4 4 #170

Merged
merged 3 commits into from
Sep 16, 2022
Merged

Conversation

munroesj52
Copy link
Contributor

No description provided.

Update configure.ac for autotools 2.71 and fix compile errors from
GCC 11.

	* configure.ac: Remove AC_PROG_LIBTOOL.

	* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* src/Makefile.in: regenerate.

	* src/pveclib/vec_int128_ppc.h (vec_sraq): Cast from
	vec_setb_sq() to (vui128_t).
	(vec_sraqi): Cast from vec_setb_sq() to (vui128_t).
	* src/testsuite/vec_int128_dummy.c (test_setb_cyq,
	test_setb_ncq, test_setb_sq): Change type of function result to
	vb128_t.
	* src/testsuite/vec_perf_f64.c (timed_fpclassify_f64):
	Change type of accum to vui64_t.

Signed-off-by: Steven Munroe <munroesj52@gmail.com>
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 <munroesj52@gmail.com>
@munroesj52 munroesj52 self-assigned this Sep 16, 2022
@munroesj52 munroesj52 added the bug Something isn't working label Sep 16, 2022
@munroesj52
Copy link
Contributor Author

I really did sync munroesj52 with upstream. Don't understand where this conflict is coming from. But I can resolve this and merge.

Wanted to give you a chance to review.

Copy link
Contributor

@ThinkOpenly ThinkOpenly left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the 1st commit, I think it'd be nice to describe the compiler errors you are rectifying.

In the 2nd commit message:

The implementation (tries again) to supports.

s/(tries again)/tries (again)/
s/supports/support/

  • src/pveclib/vec_f128_ppc.h (__binary128): Define/typedef to
    the quad-precision float type that the support supports.

s/support supports/compiler supports/ ?

src/testsuite/arith128_test_i128.c Show resolved Hide resolved
@munroesj52
Copy link
Contributor Author

Need to merge this for testing

@munroesj52 munroesj52 merged commit e3ecd3b into open-power-sdk:stable/1.0.4-4 Sep 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

pveclib: FTBFS in Fedora rawhide/f37 Compiler bug in vec_cpsgn reverses operands.
2 participants