]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Fix pr118947-1.c and pr78408-3.c on targets where 32 bytes memcpy uses a vector
authorAndrew Pinski <quic_apinski@quicinc.com>
Sat, 19 Apr 2025 03:28:40 +0000 (20:28 -0700)
committerAndrew Pinski <quic_apinski@quicinc.com>
Sat, 19 Apr 2025 15:06:26 +0000 (08:06 -0700)
The problem here is on targets where a 32byte memcpy will use an integral (vector) type
to do the copy and the code will be optimized a different way than expected. This changes
the testcase instead to use a size of 1025 to make sure there is no target that will use an
integral (vector) type for the memcpy and be optimized via the method that was just added.

Pushed as obvious after a test run.

gcc/testsuite/ChangeLog:

* gcc.dg/pr118947-1.c: Use 1025 as the size of the buf.
* gcc.dg/pr78408-3.c: Likewise.

Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
gcc/testsuite/gcc.dg/pr118947-1.c
gcc/testsuite/gcc.dg/pr78408-3.c

index 70b7f800065ca86b7a47866b2588b9291d7ebf22..8733e8d7f5c258c8a0d7dca15c44b87899275a33 100644 (file)
@@ -6,10 +6,10 @@
 void* aaa();
 void* bbb()
 {
-    char buf[32] = {};
+    char buf[1025] = {};
     /*  Tha call to aaa should not matter and clobber buf. */
     void* ret = aaa();
-    __builtin_memcpy(ret, buf, 32);
+    __builtin_memcpy(ret, buf, sizeof(buf));
     return ret;
 }
 
index 3de90d023923e458c03105d018b4d86ac205bcbf..5ea545868ad937b04d7a7cd996b36df151a87933 100644 (file)
@@ -7,8 +7,8 @@ void* aaa();
 void* bbb()
 {
     void* ret = aaa();
-    char buf[32] = {};
-    __builtin_memcpy(ret, buf, 32);
+    char buf[1025] = {};
+    __builtin_memcpy(ret, buf, sizeof(buf));
     return ret;
 }