[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