[Bug target/102154] [12 Regression] ICE in extract_insn, at recog.c:2769 since r12-3277-gd2874d905647a1d146dafa60199d440e837adc4d

crazylht at gmail dot com gcc-bugzilla@gcc.gnu.org
Wed Sep 1 08:42:15 GMT 2021


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

--- Comment #9 from Hongtao.liu <crazylht at gmail dot com> ---

> 
> (define_insn "movsf_hardfloat"
>   [(set (match_operand:SF 0 "nonimmediate_operand"
> 	 "=!r,       f,         v,          wa,        m,         wY,
> 	  Z,         m,         wa,         !r,        f,         wa,
> 	  !r,        *c*l,      !r,         *h")
> 	(match_operand:SF 1 "input_operand"
> 	 "m,         m,         wY,         Z,         f,         v,
> 	  wa,        r,         j,          j,         f,         wa,
> 	  r,         r,         *h,         0"))]
>   "(register_operand (operands[0], SFmode)
>    || register_operand (operands[1], SFmode))
>    && TARGET_HARD_FLOAT
>    && (TARGET_ALLOW_SF_SUBREG
>        || valid_sf_si_move (operands[0], operands[1], SFmode))"
> 
> Oh, The pattern disllow sf subreg.

Here TARGET_ALLOW_SF_SUBREG || valid_sf_si_move (operands[0], operands[1],
SFmode) is false, others are true which means input_operand accept (subreg:SF
(reg:DI 4))


More information about the Gcc-bugs mailing list