aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2018-04-24 08:46:55 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2018-04-24 08:46:55 +0000
commit4149dd37d914325fd275675b29d39049612b0a76 (patch)
tree41c552169a8910f8b6dae8473ca6de047998a742 /gcc
parentb72139eac230616ab92636cd0195b44eb235d23f (diff)
downloadgcc-4149dd37d914325fd275675b29d39049612b0a76.zip
gcc-4149dd37d914325fd275675b29d39049612b0a76.tar.gz
gcc-4149dd37d914325fd275675b29d39049612b0a76.tar.bz2
re PR target/85491 (nbench LU Decomposition test 15% slower than GCC 7, 30% slower than peak)
2018-04-24 Richard Biener <rguenther@suse.de> PR target/85491 * config/i386/i386.c (ix86_add_stmt_cost): Restrict strided load cost increase to the case of non-constant step. From-SVN: r259592
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 d9e5c6f..933cc29 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2018-04-24 Richard Biener <rguenther@suse.de>
+
+ PR target/85491
+ * config/i386/i386.c (ix86_add_stmt_cost): Restrict strided
+ load cost increase to the case of non-constant step.
+
2018-04-24 Jakub Jelinek <jakub@redhat.com>
PR target/84828
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index dc80b34..19d1c30 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -50550,8 +50550,9 @@ ix86_add_stmt_cost (void *data, int count, enum vect_cost_for_stmt kind,
construction cost by the number of elements involved. */
if (kind == vec_construct
&& stmt_info
- && stmt_info->type == load_vec_info_type
- && stmt_info->memory_access_type == VMAT_ELEMENTWISE)
+ && STMT_VINFO_TYPE (stmt_info) == load_vec_info_type
+ && STMT_VINFO_MEMORY_ACCESS_TYPE (stmt_info) == VMAT_ELEMENTWISE
+ && TREE_CODE (DR_STEP (STMT_VINFO_DATA_REF (stmt_info))) != INTEGER_CST)
{
stmt_cost = ix86_builtin_vectorization_cost (kind, vectype, misalign);
stmt_cost *= TYPE_VECTOR_SUBPARTS (vectype);