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

--- Comment #3 from Uroš Bizjak <ubizjak at gmail dot com> ---
*<any_or:code>di3_doubleword calls split_double_mode with:

op0: (subreg:DI (reg/v:SI 89 [ li_18 ]) 0)
op1: (reg:DI 90 [ uc_4 ])
op2: (mem/c:DI (plus:SI (reg/f:SI 19 frame)
            (const_int -4 [0xfffffffffffffffc])) [0  S8 A32])

and split_double_mode chokes on paradoxical subreg op0, returning (nil) on
highpart of op0:

(reg/v:SI 89 [ li_18 ])
(subreg:SI (reg:DI 90 [ uc_4 ]) 0)
(mem/c:SI (plus:SI (reg/f:SI 19 frame)
        (const_int -4 [0xfffffffffffffffc])) [0  S4 A32])

(nil)
(subreg:SI (reg:DI 90 [ uc_4 ]) 4)
(mem/c:SI (reg/f:SI 19 frame) [0  S4 A32])

Reply via email to