https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117547
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- 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)")))