[Bug target/106588] The constraints on most of the patterns in bitmanip.md are broken
hp at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Aug 16 23:21:00 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106588
Hans-Peter Nilsson <hp at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |hp at gcc dot gnu.org
--- Comment #2 from Hans-Peter Nilsson <hp at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #0)
> Take:
> (define_insn "*bseti<mode>"
> [(set (match_operand:X 0 "register_operand" "=r")
> (ior:X (match_operand:X 1 "register_operand" "r")
> (match_operand 2 "single_bit_mask_operand" "i")))]
> "TARGET_ZBS"
> "bseti\t%0,%1,%S2"
> [(set_attr "type" "bitmanip")])
>
> That is if something after reload decides to change operand 2, it will be
> accepted and then crash while emitting %S2.
And that "something" doesn't also re-validate through the
single_bit_mask_operand predicate at the time? AFAIR, re-validation requires
predicate-matching too, not just constraint-matching.
More information about the Gcc-bugs
mailing list