[Bug target/102057] ICE at -O2 in extract_constrain_insn, at recog.c:2670
ubizjak at gmail dot com
gcc-bugzilla@gcc.gnu.org
Wed Aug 25 08:57:11 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102057
--- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> ---
A recently added peephole is converting:
(insn 229 108 280 22 (parallel [
(set (reg:CCZ 17 flags)
(compare:CCZ (ashiftrt:SI (reg:SI 0 ax [orig:90 _12 ] [90])
(const_int 2 [0x2]))
(const_int 0 [0])))
(set (reg:SI 0 ax [orig:90 _12 ] [90])
(ashiftrt:SI (reg:SI 0 ax [orig:90 _12 ] [90])
(const_int 2 [0x2])))
]) "pr102057.c":32:31 740 {*ashrsi3_cmp}
(nil))
(insn 280 229 231 22 (set (reg:SI 1 dx [141])
(const_int 3 [0x3])) "pr102057.c":32:31 75 {*movsi_internal}
(expr_list:REG_EQUIV (const_int 3 [0x3])
(nil)))
(insn 231 280 114 22 (set (reg:SI 0 ax [orig:99 iftmp.13_29 ] [99])
(if_then_else:SI (ne (reg:CCZ 17 flags)
(const_int 0 [0]))
(reg:SI 0 ax [orig:99 iftmp.13_29 ] [99])
(reg:SI 1 dx [141]))) "pr102057.c":32:31 1140 {*movsicc_noc}
(expr_list:REG_DEAD (reg:CCZ 17 flags)
(expr_list:REG_DEAD (reg:SI 1 dx [141])
(nil))))
to:
(insn 429 228 430 22 (parallel [
(set (reg:CCZ 17 flags)
(compare:CCZ (ashiftrt:SI (reg:SI 0 ax [orig:90 _12 ] [90])
(const_int 2 [0x2]))
(const_int 0 [0])))
(set (reg:SI 41 r13 [orig:137 k ] [137])
(ashiftrt:SI (reg:SI 0 ax [orig:90 _12 ] [90])
(const_int 2 [0x2])))
]) "pr102057.c":32:31 -1
(nil))
(insn 430 429 431 22 (set (reg:SI 0 ax [orig:90 _12 ] [90])
(const_int 3 [0x3])) "pr102057.c":32:31 -1
(nil))
(insn 431 430 114 22 (set (reg:SI 0 ax [orig:90 _12 ] [90])
(if_then_else:SI (ne (reg:CCZ 17 flags)
(const_int 0 [0]))
(reg:SI 41 r13 [orig:137 k ] [137])
(reg:SI 0 ax [orig:90 _12 ] [90]))) "pr102057.c":32:31 -1
(nil))
More information about the Gcc-bugs
mailing list