https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125696

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
(simplify
  (view_convert CONSTRUCTOR@0) 
  (with
   { tree ctor = (TREE_CODE (@0) == SSA_NAME
                  ? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (@0)) : @0); }
   (switch
    (if (CONSTRUCTOR_NELTS (ctor) == 0)
     { build_zero_cst (type); })
    (if (CONSTRUCTOR_NELTS (ctor) == 1
         && VECTOR_TYPE_P (TREE_TYPE (ctor))
         && operand_equal_p (TYPE_SIZE (type),
                             TYPE_SIZE (TREE_TYPE
                               (CONSTRUCTOR_ELT (ctor, 0)->value))))
     (view_convert { CONSTRUCTOR_ELT (ctor, 0)->value; })))))

should handle this?

Reply via email to