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

--- Comment #4 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Jakub Jelinek from comment #2)

> Not sure what to do about this though, most of the SSE* arithmetic
> instructions use nonimmediate_operand or similar predicates, we'd have to
> switch all of them to use some other predicate that for pre-AVX would
> disallow misaligned_operand.

Similar problem, where semi-invalid operands (e.g. unaligned memory operand,
hard register that wouldn't satisfy operand constraints) were propagated in
combine pass was solved by introducing ix86_legitimate_combined_insn and
ssealign attribute. If LRA is doing similar propagation, then I think we should
introduce to LRA similar target hook that would eventually reject this kind of
invalid instruction. This way, target would be allowed to have the last say
about the validity of the insn.

(And neverthelast, this functionality would also help other targets, e.g. SH).

Reply via email to