http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55549



             Bug #: 55549

           Summary: zero_extend and vectors

    Classification: Unclassified

           Product: gcc

           Version: 4.8.0

            Status: UNCONFIRMED

          Severity: enhancement

          Priority: P3

         Component: rtl-optimization

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: gli...@gcc.gnu.org





Hello,



the documentation of zero_extend says:



@findex zero_extend

@item (zero_extend:@var{m} @var{x})

Represents the result of zero-extending the value @var{x}

to machine mode @var{m}.  @var{m} must be a fixed-point mode

and @var{x} a fixed-point value of a mode narrower than @var{m}.



However, try_combine will happily call:



                SUBST (*split, gen_rtx_ZERO_EXTEND (split_mode,

                                                    SUBREG_REG (*split)));



without many checks. In particular, in PR54855, it tries:



     (zero_extend:V2DF (mem/u/c:DF ...))



It isn't a bug because nothing will recognize this pattern and it will be

rejected, but it seems it would be good to add a few conditions.

Reply via email to