On 5/17/23 03:03, Jin Ma wrote:
For example:
(define_insn "mov_lowpart_sidi2"
   [(set (match_operand:SI            0 "register_operand" "=r")
         (subreg:SI (match_operand:DI 1 "register_operand" " r") 0))]
   "TARGET_64BIT"
   "mov\t%0,%1")

(define_insn "mov_highpart_sidi2"
   [(set (match_operand:SI            0 "register_operand" "=r")
         (subreg:SI (match_operand:DI 1 "register_operand" " r") 1))]
   "TARGET_64BIT"
   "movh\t%0,%1")

When defining the above patterns, the generated file insn-recog.cc will
appear 'switch (SUBREG_BYTE (op))', but since the return value of
SUBREG_BYTE is poly_uint16_pod, the following error will occur:
"error: switch quantity not an integer".

gcc/ChangeLog:

        * genrecog.cc (print_nonbool_test): Fix type error of
        'switch (SUBREG_BYTE (op))'.
Thanks.  Installed.

jeff

Reply via email to