[Bug target/105927] ICE: RTL check: expected code 'reg', have 'mem' in rhs_regno, at rtl.h:1932 with -mtune=k6-3 -msse
ubizjak at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sun Jun 12 19:37:46 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105927
Uroš Bizjak <ubizjak at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Last reconfirmed| |2022-06-12
--- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> ---
combine pass is creating:
#12 0x0000000002306b0f in recog_for_combine (pnewpat=0x7fffffffd5e0,
insn=0x7fffea12f940, pnotes=0x7fffffffd630)
at /home/uros/git/gcc/gcc/combine.cc:11622
11622 int insn_code_number = recog_for_combine_1 (pnewpat, insn, pnotes);
(gdb) p debug_rtx (insn)
(insn 32 31 33 2 (set (mem:HF (pre_modify:SI (reg/f:SI 7 sp)
(plus:SI (reg/f:SI 7 sp)
(const_int -4 [0xfffffffffffffffc]))) [0 S2 A8])
(subreg:HF (mem/c:HI (const:SI (plus:SI (symbol_ref:SI ("u") [flags
0x2] <var_decl 0x7fffea127c60 u>)
(const_int 2 [0x2]))) [1 u+2 S2 A16]) 0))
"pr105927.c":13:3 138 {*pushhf}
(nil))
$2 = void
and SUBREG of memory operand ICES through nonmemory_no_elim_operand predicate
in
(define_insn "*pushhf_rex64"
[(set (match_operand:HF 0 "push_operand" "=X,X")
(match_operand:HF 1 "nonmemory_no_elim_operand" "r,x"))]
"TARGET_64BIT"
(-msse2 has to be used with RTL-checking configured compiler.)
More information about the Gcc-bugs
mailing list