[gcc r14-9295] tree-optimization/114164 - unsupported SIMD clone call, unsupported VEC_COND
Richard Biener
rguenth@gcc.gnu.org
Mon Mar 4 12:41:20 GMT 2024
https://gcc.gnu.org/g:a19ab1c42aba47fbfb122a6160f504565aef0943
commit r14-9295-ga19ab1c42aba47fbfb122a6160f504565aef0943
Author: Richard Biener <rguenther@suse.de>
Date: Fri Mar 1 11:07:21 2024 +0100
tree-optimization/114164 - unsupported SIMD clone call, unsupported VEC_COND
The following avoids creating unsupported VEC_COND_EXPRs as part of
SIMD clone call mask argument setup during vectorization which results
in inefficient decomposing of the operation during vector lowering.
PR tree-optimization/114164
* tree-vect-stmts.cc (vectorizable_simd_clone_call): Fail if
the code generated for mask argument setup is not supported.
Diff:
---
gcc/tree-vect-stmts.cc | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc
index be0e1a9c69d..14a3ffb5f02 100644
--- a/gcc/tree-vect-stmts.cc
+++ b/gcc/tree-vect-stmts.cc
@@ -4210,6 +4210,16 @@ vectorizable_simd_clone_call (vec_info *vinfo, stmt_vec_info stmt_info,
" supported for mismatched vector sizes.\n");
return false;
}
+ if (!expand_vec_cond_expr_p (clone_arg_vectype,
+ arginfo[i].vectype, ERROR_MARK))
+ {
+ if (dump_enabled_p ())
+ dump_printf_loc (MSG_MISSED_OPTIMIZATION,
+ vect_location,
+ "cannot compute mask argument for"
+ " in-branch vector clones.\n");
+ return false;
+ }
}
else if (SCALAR_INT_MODE_P (bestn->simdclone->mask_mode))
{
More information about the Gcc-cvs
mailing list