summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/i386/avx256-unaligned-load-2.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.target/i386/avx256-unaligned-load-2.c')
-rw-r--r--gcc/testsuite/gcc.target/i386/avx256-unaligned-load-2.c30
1 files changed, 8 insertions, 22 deletions
diff --git a/gcc/testsuite/gcc.target/i386/avx256-unaligned-load-2.c b/gcc/testsuite/gcc.target/i386/avx256-unaligned-load-2.c
index 3f4fbf7647..30b42aa38c 100644
--- a/gcc/testsuite/gcc.target/i386/avx256-unaligned-load-2.c
+++ b/gcc/testsuite/gcc.target/i386/avx256-unaligned-load-2.c
@@ -1,29 +1,15 @@
-/* { dg-do compile } */
-/* { dg-require-effective-target lp64 } */
-/* { dg-options "-O3 -dp -mavx -mavx256-split-unaligned-load" } */
-
-#define N 1024
-
-char **ep;
-char **fp;
+/* { dg-do compile { target { ! ia32 } } } */
+/* { dg-options "-O3 -dp -mavx -mavx256-split-unaligned-load -mno-prefer-avx128" } */
void
-avx_test (void)
+avx_test (char **cp, char **ep)
{
int i;
- char **ap;
- char **bp;
- char **cp;
-
- ap = ep;
- bp = fp;
- for (i = 128; i >= 0; i--)
- {
- *ap++ = *cp++;
- *bp++ = 0;
- }
+ char **ap = __builtin_assume_aligned (ep, 32);
+ for (i = 128; i > 0; i--)
+ *ap++ = *cp++;
}
-/* { dg-final { scan-assembler-not "avx_loaddqu256" } } */
-/* { dg-final { scan-assembler "sse2_loaddqu" } } */
+/* { dg-final { scan-assembler-not "(avx_loaddqu256|vmovdqu\[^\n\r]*movv32qi_internal)" } } */
+/* { dg-final { scan-assembler "(sse2_loaddqu|vmovdqu\[^\n\r]*movv16qi_internal)" } } */
/* { dg-final { scan-assembler "vinsert.128" } } */