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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |iii at gcc dot gnu.org,
                   |                            |jakub at gcc dot gnu.org,
                   |                            |krebbel at gcc dot gnu.org

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #1)
>         /* Build a vector type with the alignment of the target
>            location in order to enable correct alignment hints to be
>            generated for vst.  */
>         tree mem_type = build_aligned_type (TREE_TYPE((*arglist)[0]),
>                                             TYPE_ALIGN (TREE_TYPE (TREE_TYPE
> ((*arglist)[2]))));
>         return build2 (MODIFY_EXPR, mem_type,
>                        build1 (INDIRECT_REF, mem_type,
>                                fold_build_pointer_plus ((*arglist)[2],
> (*arglist)[1])),
>                        (*arglist)[0]);
> 
> 
> Does -fno-strict-aliasing help? I wonder if the above (which is
> S390_OVERLOADED_BUILTIN_s390_vec_xst from s390_expand_overloaded_builtin)
> should be have an may_alias variant .

Building MEM_REF is one option, another one is to cast the operand of
INDIRECT_REF to
build_pointer_type (mem_type, VOIDmode, true) type.

Reply via email to