aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2024-10-26 14:18:37 +0200
committerRichard Biener <rguenth@gcc.gnu.org>2024-10-28 08:54:47 +0100
commit0942bb85fc55735d1339a26c9473f7ad1f30100e (patch)
tree7d08df57fd7eb45f6e0a57b2bee1230082c1ff20
parent75caa17f5cb4e414919baff0435300b549a76eca (diff)
downloadgcc-0942bb85fc55735d1339a26c9473f7ad1f30100e.zip
gcc-0942bb85fc55735d1339a26c9473f7ad1f30100e.tar.gz
gcc-0942bb85fc55735d1339a26c9473f7ad1f30100e.tar.bz2
Remove code in vectorizer pattern recog relying on vec_cond{u,eq,}
With the intent to rely on vec_cond_mask and vec_cmp patterns comparisons do not need rewriting into COND_EXPRs that eventually combine to vec_cond{u,eq,}. * tree-vect-patterns.cc (check_bool_pattern): For comparisons we do nothing if we can expand them or we can't replace them with a ? -1 : 0 condition - but the latter would require expanding the comparison which we proved we can't. So do nothing, aka not think vec_cond{u,eq,} will save us.
-rw-r--r--gcc/tree-vect-patterns.cc37
1 files changed, 1 insertions, 36 deletions
diff --git a/gcc/tree-vect-patterns.cc b/gcc/tree-vect-patterns.cc
index 46aa312..a6d246f 100644
--- a/gcc/tree-vect-patterns.cc
+++ b/gcc/tree-vect-patterns.cc
@@ -5610,42 +5610,7 @@ check_bool_pattern (tree var, vec_info *vinfo, hash_set<gimple *> &stmts)
break;
default:
- if (TREE_CODE_CLASS (rhs_code) == tcc_comparison)
- {
- tree vecitype, comp_vectype;
-
- /* If the comparison can throw, then is_gimple_condexpr will be
- false and we can't make a COND_EXPR/VEC_COND_EXPR out of it. */
- if (stmt_could_throw_p (cfun, def_stmt))
- return false;
-
- comp_vectype = get_vectype_for_scalar_type (vinfo, TREE_TYPE (rhs1));
- if (comp_vectype == NULL_TREE)
- return false;
-
- tree mask_type = get_mask_type_for_scalar_type (vinfo,
- TREE_TYPE (rhs1));
- if (mask_type
- && expand_vec_cmp_expr_p (comp_vectype, mask_type, rhs_code))
- return false;
-
- if (TREE_CODE (TREE_TYPE (rhs1)) != INTEGER_TYPE)
- {
- scalar_mode mode = SCALAR_TYPE_MODE (TREE_TYPE (rhs1));
- tree itype
- = build_nonstandard_integer_type (GET_MODE_BITSIZE (mode), 1);
- vecitype = get_vectype_for_scalar_type (vinfo, itype);
- if (vecitype == NULL_TREE)
- return false;
- }
- else
- vecitype = comp_vectype;
- if (! expand_vec_cond_expr_p (vecitype, comp_vectype, rhs_code))
- return false;
- }
- else
- return false;
- break;
+ return false;
}
bool res = stmts.add (def_stmt);