This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [rs6000] Fix x86 SSSE3 compatibility implementations and testcases
- From: Segher Boessenkool <segher at kernel dot crashing dot org>
- To: Paul Clarke <pc at us dot ibm dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Wed, 19 Dec 2018 02:50:20 -0600
- Subject: Re: [rs6000] Fix x86 SSSE3 compatibility implementations and testcases
- References: <d116cdc1-4811-da2b-a5dc-d3184d1aa937@us.ibm.com>
Hi!
On Tue, Dec 18, 2018 at 10:23:05PM -0600, Paul Clarke wrote:
> 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]
> - for (i = 0; i < 256; i += 4)
> + for (i = 0; i < ARRAY_SIZE (vals); i ++)
Please write "i++", not "i ++", throughout.
I wonder if the extra overlap will not hide problems? OTOH it is extra
testing of course.
Okay for trunk. Thanks!
Segher