After r12-7931 we again honor MOVE_MAX when folding memcpy to
a load/store pair. On i?86-*-* without SSE this now exposes the
change done in r12-2666-g29f0e955c97da0 which adjusts MOVE_MAX
from 16 to 4 on those targets. This makes adjusting testcases
necessary that assume that we transform memcpy to load/store pairs
on GIMPLE for sizes larger or equal to 8.
2022-04-04 Richard Biener <rguenther@suse.de>
PR testsuite/105122
* gcc.dg/memcpy-6.c: Adjust.
* gcc.dg/strlenopt-73.c: Likewise.
* gcc.dg/strlenopt-80.c: Likewise.
of targets where it's known to pass (see PR testsuite/83483).
{ dg-do compile }
{ dg-options "-O0 -Wrestrict -fdump-tree-optimized" }
- { dg-skip-if "skip non-x86 targets" { ! { i?86-*-* x86_64-*-* } } } */
+ { dg-skip-if "skip non-x86 targets" { ! { i?86-*-* x86_64-*-* } } }
+ { dg-additional-options "-msse" { target i?86-*-* x86_64-*-* } } */
char a[32];
T ( 0 ==, 33, 1, (i0 ? a32 : b32) + 32);
}
-#if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) \
+#if (defined(__i386__) && defined(__SSE__)) || defined(__x86_64__) || defined(__aarch64__) \
|| defined(__s390__) || defined(__powerpc64__)
/* The following tests assume GCC transforms the memcpy calls into
such a store.
{ dg-do compile { target { { aarch64*-*-* i?86-*-* x86_64-*-* } || { { powerpc*-*-* } && lp64 } } } }
- { dg-options "-O2 -Wall -fdump-tree-optimized" } */
+ { dg-options "-O2 -Wall -fdump-tree-optimized" }
+ { dg-additional-options "-msse" { target i?86-*-* x86_64-*-* } } */
#define CHAR_BIT __CHAR_BIT__
#define SIZE_MAX __SIZE_MAX__