diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr79690.c | 10 | ||||
-rw-r--r-- | gcc/tree-vect-stmts.c | 2 |
4 files changed, 22 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1dc82c1..faf3d66 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2017-02-27 Richard Biener <rguenther@suse.de> + + PR tree-optimization/79690 + * tree-vect-stmts.c (vectorizable_store): Use vector type + built from the DR with address-space. + 2017-02-26 Gerald Pfeifer <gerald@pfeifer.com> * doc/invoke.texi (Optimize Options): Refine the description diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 30198a6..3cd68ea 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-02-27 Richard Biener <rguenther@suse.de> + + PR tree-optimization/79690 + * gcc.target/i386/pr79690.c: New testcase. + 2017-02-26 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/51119 diff --git a/gcc/testsuite/gcc.target/i386/pr79690.c b/gcc/testsuite/gcc.target/i386/pr79690.c new file mode 100644 index 0000000..7bd9317 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr79690.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-options "-O3 -msse2 -mno-avx" } */ + +void fill(unsigned char __seg_gs *arr, unsigned char c, long n) +{ + for (long i = 0; i < n; ++i) + arr[i] = c; +} + +/* { dg-final { scan-assembler "mov\[au\]p.\[ \t\]\[^,\]+, %gs:" } } */ diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c index 5976882..f4b777e 100644 --- a/gcc/tree-vect-stmts.c +++ b/gcc/tree-vect-stmts.c @@ -6324,7 +6324,7 @@ vectorizable_store (gimple *stmt, gimple_stmt_iterator *gsi, gimple **vec_stmt, vect_permute_store_chain(). */ vec_oprnd = result_chain[i]; - data_ref = fold_build2 (MEM_REF, TREE_TYPE (vec_oprnd), + data_ref = fold_build2 (MEM_REF, vectype, dataref_ptr, dataref_offset ? dataref_offset |