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.