[Bug target/107432] __builtin_convertvector generates inefficient code
crazylht at gmail dot com
gcc-bugzilla@gcc.gnu.org
Fri Oct 28 05:33:53 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107432
--- Comment #6 from Hongtao.liu <crazylht at gmail dot com> ---
> Guess expand_vector_conversion can be optimized.
if (INTEGRAL_TYPE_P (TREE_TYPE (ret_type))
&& SCALAR_FLOAT_TYPE_P (TREE_TYPE (arg_type)))
code = FIX_TRUNC_EXPR;
else if (INTEGRAL_TYPE_P (TREE_TYPE (arg_type))
&& SCALAR_FLOAT_TYPE_P (TREE_TYPE (ret_type)))
code = FLOAT_EXPR;
It only supports floatmn2/fix_truncmn2 for float <-> integer.
But we can also supports extendmn2/zero_extendmn2/truncmn2 for float <-> float,
integer <-> integer.
Or are there any concerns and VEC_PACK_TRUNC_EXPR,
VEC_PACK_FIX_TRUNC_EXPR,VEC_PACK_FLOAT_EXPR are used on purpose?
More information about the Gcc-bugs
mailing list