https://gcc.gnu.org/g:d95d65c4a6277aa026cfd39c4564939ae298a0ba
commit r16-7657-gd95d65c4a6277aa026cfd39c4564939ae298a0ba Author: Richard Biener <[email protected]> Date: Tue Feb 24 09:50:17 2026 +0100 tree-optimization/123117 - fix sign conversion check The following fixes the sign conversion check added to properly check whether the BIT_FIELD_REF does a sign conversion on the original vector elements instead of a conversion to the target constructor element type. This avoids disabling all unpacking conversions. PR tree-optimization/123117 PR target/120234 * tree-ssa-forwprop.cc (simplify_vector_constructor): Fix sign conversion check guarding unpacking. Diff: --- gcc/tree-ssa-forwprop.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/tree-ssa-forwprop.cc b/gcc/tree-ssa-forwprop.cc index 931c0798a813..b5544414ca6e 100644 --- a/gcc/tree-ssa-forwprop.cc +++ b/gcc/tree-ssa-forwprop.cc @@ -4080,7 +4080,7 @@ simplify_vector_constructor (gimple_stmt_iterator *gsi) == TYPE_PRECISION (TREE_TYPE (type))) && orig_elem_type[0] && useless_type_conversion_p (orig_elem_type[0], - TREE_TYPE (type)) + TREE_TYPE (TREE_TYPE (orig[0]))) && mode_for_vector (as_a <scalar_mode> (TYPE_MODE (TREE_TYPE (TREE_TYPE (orig[0])))), nelts * 2).exists () @@ -4122,7 +4122,7 @@ simplify_vector_constructor (gimple_stmt_iterator *gsi) == 2 * TYPE_PRECISION (TREE_TYPE (type))) && orig_elem_type[0] && useless_type_conversion_p (orig_elem_type[0], - TREE_TYPE (type)) + TREE_TYPE (TREE_TYPE (orig[0]))) && mode_for_vector (as_a <scalar_mode> (TYPE_MODE (TREE_TYPE (TREE_TYPE (orig[0])))),
