diff options
author | Richard Biener <rguenther@suse.de> | 2019-10-25 13:03:56 +0000 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2019-10-25 13:03:56 +0000 |
commit | cad94ac8ff9043196d4915f41cad8ac6441e6a87 (patch) | |
tree | 5d27d2ddaa20b183311d9a7fa54f6a637c3a57c3 /gcc/testsuite | |
parent | df94c65d0fcd860c0c41ed64e6e9f72ee8f57263 (diff) |
2019-10-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/92222
* tree-vect-slp.c (_slp_oprnd_info::first_pattern): Remove.
(_slp_oprnd_info::second_pattern): Likewise.
(_slp_oprnd_info::any_pattern): New.
(vect_create_oprnd_info): Adjust.
(vect_get_and_check_slp_defs): Compute whether any stmt is
in a pattern.
(vect_build_slp_tree_2): Avoid building up a node from scalars
if any of the operand defs, not just the first, is in a pattern.
* gcc.dg/torture/pr92222.c: New testcase.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@277448 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/pr92222.c | 17 |
2 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9397ff3a98b..4e0fedd6c19 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-10-25 Richard Biener <rguenther@suse.de> + + PR tree-optimization/92222 + * gcc.dg/torture/pr92222.c: New testcase. + 2019-10-25 Richard Sandiford <richard.sandiford@arm.com> * gcc.target/aarch64/sve/reduc_strict_3.c (double_reduc1): Prevent diff --git a/gcc/testsuite/gcc.dg/torture/pr92222.c b/gcc/testsuite/gcc.dg/torture/pr92222.c new file mode 100644 index 00000000000..f48010d6d31 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr92222.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-ftree-vectorize" } */ + +unsigned char *a; +int b; +void f(); +void c() +{ + char *d; + int e; + for (; b; b++) { + e = 7; + for (; e >= 0; e--) + *d++ = a[b] & 1 << e ? '1' : '0'; + } + f(); +} |