This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] ppc-vector-memcpy.c
- From: David Edelsohn <dje dot gcc at gmail dot com>
- To: Michael Meissner <meissner at linux dot vnet dot ibm dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 24 Jul 2013 11:00:18 -0400
- Subject: [PATCH] ppc-vector-memcpy.c
gcc.target/ppc-vector-memcpy.c testcase currently fails and has been
failing since early in the GCC 4.6 development cycle. A change by
Eric Botcazou in April 2008 to the handling of constants reduced the
extra alignment of initializers matching the alignment of the
variable.
The testcases originally was written by Geoff Keating and I do not
know exactly what features he was trying to test -- if he only was
testing Altivec used for block move or also Altivec used for aligned
initializers.
The appended patch changes the testcase to match the name of the file:
test that aligned memcpy uses VMX.
Any contrary opinion about this change?
Thanks, David
* gcc.target/powerpc/ppc-vector-memcpy.c: Test use of VMX for memcpy
not initializers.
Index: ppc-vector-memcpy.c
===================================================================
--- ppc-vector-memcpy.c (revision 201200)
+++ ppc-vector-memcpy.c (working copy)
@@ -3,8 +3,13 @@
/* { dg-options "-O -maltivec -mno-vsx" } */
/* { dg-final { scan-assembler "lvx" } } */
+#include <string.h>
+
void foo(void)
{
- int x[8] __attribute__((aligned(128))) = { 1, 1, 1, 1, 1, 1, 1, 1 };
- bar (x);
+ extern int x[8] __attribute__((aligned(128)));
+ int y[8] __attribute__((aligned(128)));
+ memcpy (y, x, sizeof (x));
+ bar (y);
}