diff options
author | Richard Biener <rguenther@suse.de> | 2019-12-03 11:59:13 +0000 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2019-12-03 11:59:13 +0000 |
commit | df6ee409c6f95b1f8e1a071cca4064211a2123f9 (patch) | |
tree | 5c84bcbb4ae4e3a1b2b326b0cbf5f37160d5b143 /gcc/testsuite | |
parent | aea0276d4fe3773ad55ba65c48cc5cbe05145615 (diff) |
2019-12-03 Richard Biener <rguenther@suse.de>
PR tree-optimization/92645
* gimple-fold.c (gimple_fold_builtin_memory_op): Fold memcpy
from or to a properly aligned register variable.
* gcc.target/i386/pr92645-5.c: New testcase.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@278934 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr92645-5.c | 21 |
2 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e7e07882a43..158e09073b1 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2019-12-03 Richard Biener <rguenther@suse.de> + PR tree-optimization/92645 + * gcc.target/i386/pr92645-5.c: New testcase. + +2019-12-03 Richard Biener <rguenther@suse.de> + PR tree-optimization/92751 * g++.dg/tree-ssa/pr92751.C: New testcase. diff --git a/gcc/testsuite/gcc.target/i386/pr92645-5.c b/gcc/testsuite/gcc.target/i386/pr92645-5.c new file mode 100644 index 00000000000..af3a4e23dca --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr92645-5.c @@ -0,0 +1,21 @@ +/* { dg-do compile } */ +/* { dg-options "-O -fdump-tree-cddce1 -mavx2 -Wno-psabi" } */ +typedef long long v4di __attribute__((vector_size(32))); +struct Vec +{ + unsigned int v[8]; +}; + +v4di pun (struct Vec *s) +{ + v4di tem; + __builtin_memcpy (&tem, s, 32); + return tem; +} + +/* We're expecting exactly two stmts, in particular no BIT_INSERT_EXPR + and no memcpy call. + _3 = MEM <vector(4) long long int> [(char * {ref-all})s_2(D)]; + return _3; */ +/* { dg-final { scan-tree-dump-times " = MEM" 1 "cddce1" } } */ +/* { dg-final { scan-tree-dump-not "memcpy" "cddce1" } } */ |