[Bug target/107185] [13 Regression] during RTL pass: vregs ICE: in extract_insn, at recog.cc:2791 (unrecognizable insn) with -ffast-math and lrintf()
crazylht at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sun Oct 9 06:33:17 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107185
--- Comment #1 from Hongtao.liu <crazylht at gmail dot com> ---
Looks like there's mismatch between
20147(define_expand "lrint<MODEF:mode><SWI48:mode>2"
20148 [(set (match_operand:SWI48 0 "nonimmediate_operand")
20149 (unspec:SWI48 [(match_operand:MODEF 1 "register_operand")]
20150 UNSPEC_FIX_NOTRUNC))]
20151 "SSE_FLOAT_MODE_P (<MODEF:MODE>mode) && TARGET_SSE_MATH")
and
7770(define_insn "sse_cvtss2si<rex64namesuffix>_2"
7771 [(set (match_operand:SWI48 0 "register_operand" "=r,r")
7772 (unspec:SWI48 [(match_operand:SF 1 "nonimmediate_operand" "v,m")]
7773 UNSPEC_FIX_NOTRUNC))]
...
...
8215(define_insn "sse2_cvtsd2si<rex64namesuffix>_2"
8216 [(set (match_operand:SWI48 0 "register_operand" "=r,r")
8217 (unspec:SWI48 [(match_operand:DF 1 "nonimmediate_operand" "v,m")]
8218 UNSPEC_FIX_NOTRUNC))]
8219 "TARGET_SSE2"
8220 "%vcvtsd2si<rex64suffix>\t{%1, %0|%0, %q1}"
Need to swap predicates for operands[0] and operand[1] of
"lrint<MODEF:mode><SWI48:mode>2"
More information about the Gcc-bugs
mailing list