http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60969

--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Andrew Pinski from comment #3)
> How did mmx usage get into the code when user did not use mmx. Mmx should
> not be used by the autovectorizer at all.

For

(insn 26 25 27 4 (set (reg:SF 147 [ D.2421 ])
        (float:SF (reg/v:SI 154 [ z ]))) 203 {*floatsisf2_i387}
     (expr_list:REG_DEAD (reg/v:SI 154 [ z ])
        (nil)))
(insn 27 26 28 4 (set (reg:SF 148 [ D.2421 ])
        (float:SF (reg/v:SI 153 [ y ]))) 203 {*floatsisf2_i387}
     (nil))

LRA generates

(insn 26 24 166 4 (set (reg:SF 9 st(1) [orig:147 D.2421 ] [147])
        (float:SF (mem/c:SI (plus:SI (reg/f:SI 7 sp)
                    (const_int 100 [0x64])) [5 z+0 S4 A32]))) 203
{*floatsisf2_i387}
     (nil))
(insn 166 26 167 4 (set (mem/c:SF (plus:SI (reg/f:SI 7 sp)
                (const_int 20 [0x14])) [6 %sfp+-28 S4 A32])
        (reg:SF 9 st(1) [orig:147 D.2421 ] [147])) 129 {*movsf_internal}
     (nil))
(insn 167 166 169 4 (set (reg:SF 29 mm0 [orig:147 D.2421 ] [147])
        (mem/c:SF (plus:SI (reg/f:SI 7 sp)
                (const_int 20 [0x14])) [6 %sfp+-28 S4 A32])) 129
{*movsf_internal}
     (nil))
(insn 169 167 27 4 (set (mem/c:SI (plus:SI (reg/f:SI 7 sp)
                (const_int 20 [0x14])) [6 %sfp+-28 S4 A32])
        (reg/v:SI 6 bp [orig:153 y ] [153])) 90 {*movsi_internal}
     (nil))
(insn 27 169 168 4 (set (reg:SF 10 st(2) [orig:148 D.2421 ] [148])
        (float:SF (mem/c:SI (plus:SI (reg/f:SI 7 sp)
                    (const_int 20 [0x14])) [6 %sfp+-28 S4 A32]))) 203
{*floatsisf2_i387}
     (nil))

to load a SFmode value into mm0 for later use.

Reply via email to