aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/tree-vect-stmts.c
diff options
context:
space:
mode:
authorAlexander Ivchenko <alexander.ivchenko@intel.com>2015-03-16 10:30:57 +0300
committerAlexander Ivchenko <alexander.ivchenko@intel.com>2015-03-17 13:03:08 +0300
commit3951a3654b8197466bee3e6732b3bc94e4018f68 (patch)
tree5f71295bf4a3df8c9d8187ae983591466ff82a86 /gcc-4.9/gcc/tree-vect-stmts.c
parent8075018d7ad15059179e6ff7d0dd12071e1749b9 (diff)
downloadtoolchain_gcc-3951a3654b8197466bee3e6732b3bc94e4018f68.tar.gz
toolchain_gcc-3951a3654b8197466bee3e6732b3bc94e4018f68.tar.bz2
toolchain_gcc-3951a3654b8197466bee3e6732b3bc94e4018f68.zip
[4.9] Several improvements in code generation for x86. Backport from trunk.
2014-11-21 Evgeny Stupachenko <evstupac@gmail.com> PR target/60451 * config/i386/i386.c (expand_vec_perm_even_odd_pack): New. (expand_vec_perm_even_odd_1): Add new expand for V8HI mode, replace for V16QI, V16HI and V32QI modes. (ix86_expand_vec_perm_const_1): Add new expand. 2014-06-11 Evgeny Stupachenko <evstupac@gmail.com> * tree-vect-data-refs.c (vect_grouped_store_supported): New check for stores group of length 3. (vect_permute_store_chain): New permutations for stores group of length 3. * tree-vect-stmts.c (vect_model_store_cost): Change cost of vec_perm_shuffle for the new permutations. 2014-11-28 Evgeny Stupachenko <evstupac@gmail.com> * tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift permutations to loads group of size 3. 2014-12-18 Bin Cheng <bin.cheng@arm.com> PR tree-optimization/62178 * tree-ssa-loop-ivopts.c (cheaper_cost_with_cand): New function. (iv_ca_replace): New function. (try_improve_iv_set): New parameter try_replace_p. Break local optimal fixed-point by calling iv_ca_replace. (find_optimal_iv_set_1): Pass new argument to try_improve_iv_set. Change-Id: I5dca8236d3807cedc5e09d7eda65f0ccec9f5cb2 Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
Diffstat (limited to 'gcc-4.9/gcc/tree-vect-stmts.c')
-rw-r--r--gcc-4.9/gcc/tree-vect-stmts.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc-4.9/gcc/tree-vect-stmts.c b/gcc-4.9/gcc/tree-vect-stmts.c
index d208f2d6b..9677d601c 100644
--- a/gcc-4.9/gcc/tree-vect-stmts.c
+++ b/gcc-4.9/gcc/tree-vect-stmts.c
@@ -974,9 +974,9 @@ vect_model_store_cost (stmt_vec_info stmt_info, int ncopies,
include the cost of the permutes. */
if (!store_lanes_p && group_size > 1)
{
- /* Uses a high and low interleave operation for each needed permute. */
-
- int nstmts = ncopies * exact_log2 (group_size) * group_size;
+ /* Uses a high and low interleave or shuffle operations for each
+ needed permute. */
+ int nstmts = ncopies * ceil_log2 (group_size) * group_size;
inside_cost = record_stmt_cost (body_cost_vec, nstmts, vec_perm,
stmt_info, 0, vect_body);