Notice there is warning in predicates.md:
../../../riscv-gcc/gcc/config/riscv/predicates.md: In function ‘bool arith_operand_or_mode_mask(rtx, machine_mode)’:
../../../riscv-gcc/gcc/config/riscv/predicates.md:33:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
(match_test "INTVAL (op) == GET_MODE_MASK (HImode)
../../../riscv-gcc/gcc/config/riscv/predicates.md:34:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
|| INTVAL (op) == GET_MODE_MASK (SImode)"))))
gcc/ChangeLog:
* config/riscv/predicates.md: Change INTVAL into UINTVAL.
(ior (match_operand 0 "arith_operand")
(and (match_code "const_int")
(match_test "INTVAL (op) == GET_MODE_MASK (HImode)
- || INTVAL (op) == GET_MODE_MASK (SImode)"))))
+ || UINTVAL (op) == GET_MODE_MASK (SImode)"))))
(define_predicate "lui_operand"
(and (match_code "const_int")