aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2019-03-18 09:16:56 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2019-03-18 09:16:56 +0000
commit0538ed1d3602ec756085c09f3213b0fe7e8428ec (patch)
treec60511490674645680b26f54ade4194ca9e6d153 /gcc
parent1d24f24c6afbd8fd00e31644d94fdb4f60d7ae36 (diff)
downloadgcc-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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/i386/i386.c5
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)
{