r267271 - in /trunk/gcc: ChangeLog config/rs600...
pc@gcc.gnu.org
pc@gcc.gnu.org
Wed Dec 19 15:06:00 GMT 2018
Author: pc
Date: Wed Dec 19 15:06:00 2018
New Revision: 267271
URL: https://gcc.gnu.org/viewcvs?rev=267271&root=gcc&view=rev
Log:
[rs6000] Fix x86 SSSE3 compatibility implementations and testcases
This patch is the analog to r266868-r266870, but for SSSE3.
The SSSE3 tests had been inadvertently made to PASS without actually running
the test code. Actually running the code turned up some previously undetected
issues.
This patch fixes some issues in the implementations, fixes up the tests
to use a union for the test data, which avoids strict aliasing issues,
and enables the tests to actually run (by removing a dependency on
__BUILTIN_CPU_SUPPORTS).
Also, there's a fairly insignificant change in the testcases that walk
through the data as pairs of vectors from:
[0] and [1]
[2] and [3]
...
[n-4] and [n-3]
[n-2] and [n-1]
to:
[0] and [1]
[1] and [2]
...
[n-3] and [n-2]
[n-2] and [n-1]
Since the testcases compute the correct answers based on the input, no
other changes were necessary to effect the change.
2018-12-19 Paul A. Clarke <pc@us.ibm.com>
[gcc]
* config/rs6000/tmmintrin.h (_mm_hadds_epi16): Vector lanes swapped.
(_mm_hsub_epi32): Likewise.
(_mm_shuffle_epi8): Fix reversed interpretation of parameters.
(_mm_shuffle_pi8): Likewise.
(_mm_addubs_pi16): Likewise.
[gcc/testsuite]
* gcc.target/powerpc/ssse3-check.h: Enable tests to run.
* gcc.target/powerpc/ssse3-pabsb.c: Code fixes for strict aliasing
issues.
* gcc.target/powerpc/ssse3-pabsd.c: Likewise.
* gcc.target/powerpc/ssse3-palignr.c: Likewise.
* gcc.target/powerpc/ssse3-phaddd.c: Likewise.
* gcc.target/powerpc/ssse3-phaddsw.c: Likewise.
* gcc.target/powerpc/ssse3-phaddw.c: Likewise.
* gcc.target/powerpc/ssse3-phsubd.c: Likewise.
* gcc.target/powerpc/ssse3-phsubw.c: Likewise.
* gcc.target/powerpc/ssse3-pmulhrsw.c: Likewise.
* gcc.target/powerpc/ssse3-pshufb.c: Likewise.
* gcc.target/powerpc/ssse3-psignb.c: Likewise.
* gcc.target/powerpc/ssse3-psignd.c: Likewise.
* gcc.target/powerpc/ssse3-psignw.c: Likewise.
* gcc.target/powerpc/ssse3-vals.h: Provide input data as a union.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/tmmintrin.h
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.target/powerpc/ssse3-check.h
trunk/gcc/testsuite/gcc.target/powerpc/ssse3-pabsb.c
trunk/gcc/testsuite/gcc.target/powerpc/ssse3-pabsd.c
trunk/gcc/testsuite/gcc.target/powerpc/ssse3-pabsw.c
trunk/gcc/testsuite/gcc.target/powerpc/ssse3-palignr.c
trunk/gcc/testsuite/gcc.target/powerpc/ssse3-phaddd.c
trunk/gcc/testsuite/gcc.target/powerpc/ssse3-phaddsw.c
trunk/gcc/testsuite/gcc.target/powerpc/ssse3-phaddw.c
trunk/gcc/testsuite/gcc.target/powerpc/ssse3-phsubd.c
trunk/gcc/testsuite/gcc.target/powerpc/ssse3-phsubsw.c
trunk/gcc/testsuite/gcc.target/powerpc/ssse3-phsubw.c
trunk/gcc/testsuite/gcc.target/powerpc/ssse3-pmaddubsw.c
trunk/gcc/testsuite/gcc.target/powerpc/ssse3-pmulhrsw.c
trunk/gcc/testsuite/gcc.target/powerpc/ssse3-pshufb.c
trunk/gcc/testsuite/gcc.target/powerpc/ssse3-psignb.c
trunk/gcc/testsuite/gcc.target/powerpc/ssse3-psignd.c
trunk/gcc/testsuite/gcc.target/powerpc/ssse3-psignw.c
trunk/gcc/testsuite/gcc.target/powerpc/ssse3-vals.h
More information about the Gcc-cvs
mailing list