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

--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Richard Biener from comment #2)
> I think the error is with const_0_to_255_operand which seems to operate
> without context of the mode a VOIDmode CONST_INT is need to be interpreted
> with.  Alternatively every operand with such (or similar) predicate would
> have to undergo trunc_int_for_mode - but I see both match_operand:SI 
> with const_0_to_255_operand and modeless match_operand.
> 
> Note const_0_to_255_operand gets passed the mode, but I'm not sure how
> to access this in
> 
> (define_predicate "const_0_to_255_operand"
>   (and (match_code "const_int")
>        (match_test "IN_RANGE (INTVAL (op), 0, 255)")))

It may be too late for const_0_to_255_operand to check even with mode.
We may not use the host operation to check the target value.

Reply via email to