diff options
author | Richard Biener <rguenther@suse.de> | 2018-06-06 15:06:50 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2018-06-06 15:06:50 +0000 |
commit | f8c67f3d308f060e2f6d6ce6abce952867c2234c (patch) | |
tree | f974b3a1b74279439a3d9ed1bc5fecb088981cdb /gcc/tree-vect-generic.c | |
parent | d30117c96381b8b97b12506d3acc8ff12ab368e4 (diff) | |
download | gcc-f8c67f3d308f060e2f6d6ce6abce952867c2234c.zip gcc-f8c67f3d308f060e2f6d6ce6abce952867c2234c.tar.gz gcc-f8c67f3d308f060e2f6d6ce6abce952867c2234c.tar.bz2 |
Backport PRs 85863, 85934, 85964, 86038
2018-06-06 Richard Biener <rguenther@suse.de>
Backport from mainline
2018-06-04 Richard Biener <rguenther@suse.de>
PR tree-optimization/86038
* tracer.c (find_best_successor): Check probability for
being initialized, bail out if not.
* gcc.dg/pr86038.c: New testcase.
2018-05-30 Richard Biener <rguenther@suse.de>
PR tree-optimization/85964
* tracer.c (better_p): Drop initialized count check, we only
call the function with initialized counts now.
(find_best_successor): Do find a best edge if one
has uninitialized count.
(find_best_predecessor): Likewise. Do BB frequency check only
if count is initialized.
2018-05-28 Richard Biener <rguenther@suse.de>
PR tree-optimization/85934
* tree-vect-generic.c (expand_vector_operations_1): Hoist
vector boolean check before scalar optimization.
* gcc.target/i386/pr85934.c: New testcase.
2018-05-22 Richard Biener <rguenther@suse.de>
PR tree-optimization/85863
* tree-vect-stmts.c (vect_is_simple_cond): Only widen invariant
comparisons when vectype is specified.
(vectorizable_condition): Do not specify vectype for
vect_is_simple_cond when SLP vectorizing.
* gfortran.fortran-torture/compile/pr85863.f: New testcase.
From-SVN: r261237
Diffstat (limited to 'gcc/tree-vect-generic.c')
-rw-r--r-- | gcc/tree-vect-generic.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/tree-vect-generic.c b/gcc/tree-vect-generic.c index 3dcbdeb..2ade60b 100644 --- a/gcc/tree-vect-generic.c +++ b/gcc/tree-vect-generic.c @@ -1612,6 +1612,12 @@ expand_vector_operations_1 (gimple_stmt_iterator *gsi) if (!VECTOR_TYPE_P (type) || !VECTOR_TYPE_P (TREE_TYPE (rhs1))) return; + + /* A scalar operation pretending to be a vector one. */ + if (VECTOR_BOOLEAN_TYPE_P (type) + && !VECTOR_MODE_P (TYPE_MODE (type)) + && TYPE_MODE (type) != BLKmode) + return; /* If the vector operation is operating on all same vector elements implement it with a scalar operation and a splat if the target @@ -1638,12 +1644,6 @@ expand_vector_operations_1 (gimple_stmt_iterator *gsi) return; } } - - /* A scalar operation pretending to be a vector one. */ - if (VECTOR_BOOLEAN_TYPE_P (type) - && !VECTOR_MODE_P (TYPE_MODE (type)) - && TYPE_MODE (type) != BLKmode) - return; if (CONVERT_EXPR_CODE_P (code) || code == FLOAT_EXPR |