diff options
author | Richard Biener <rguenther@suse.de> | 2019-03-18 09:16:56 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2019-03-18 09:16:56 +0000 |
commit | 0538ed1d3602ec756085c09f3213b0fe7e8428ec (patch) | |
tree | c60511490674645680b26f54ade4194ca9e6d153 | |
parent | 1d24f24c6afbd8fd00e31644d94fdb4f60d7ae36 (diff) | |
download | gcc-0538ed1d3602ec756085c09f3213b0fe7e8428ec.zip gcc-0538ed1d3602ec756085c09f3213b0fe7e8428ec.tar.gz gcc-0538ed1d3602ec756085c09f3213b0fe7e8428ec.tar.bz2 |
re PR target/87561 (416.gamess is slower by ~10% starting from r264866 with -Ofast)
2019-03-18 Richard Biener <rguenther@suse.de>
PR target/87561
* config/i386/i386.c (ix86_add_stmt_cost): Apply strided
load pessimization to stores as well.
From-SVN: r269753
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7580713..a67a0bf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-03-18 Richard Biener <rguenther@suse.de> + + PR target/87561 + * config/i386/i386.c (ix86_add_stmt_cost): Apply strided + load pessimization to stores as well. + 2019-03-18 Andrey Belevantsev <abel@ispras.ru> PR middle-end/86979 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 70e1011..67af137 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -50564,9 +50564,10 @@ ix86_add_stmt_cost (void *data, int count, enum vect_cost_for_stmt kind, latency and execution resources for the many scalar loads (AGU and load ports). Try to account for this by scaling the construction cost by the number of elements involved. */ - if (kind == vec_construct + if ((kind == vec_construct || kind == vec_to_scalar) && stmt_info - && STMT_VINFO_TYPE (stmt_info) == load_vec_info_type + && (STMT_VINFO_TYPE (stmt_info) == load_vec_info_type + || STMT_VINFO_TYPE (stmt_info) == store_vec_info_type) && STMT_VINFO_MEMORY_ACCESS_TYPE (stmt_info) == VMAT_ELEMENTWISE && TREE_CODE (DR_STEP (STMT_VINFO_DATA_REF (stmt_info))) != INTEGER_CST) { |