[Bug rtl-optimization/78090] [x86_64]: GCC allows integer register for inter unit conversion under -mtune-ctrl=^inter_unit_conversions .

ubizjak at gmail dot com gcc-bugzilla@gcc.gnu.org
Mon Oct 24 08:39:00 GMT 2016


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

Uroš Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ra
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2016-10-24
     Ever confirmed|0                           |1

--- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> ---
This is due to RA decision, we have:

(insn 18 37 19 4 (set (reg:SF 98)
        (float:SF (reg/v:SI 100 [orig:92 a ] [92]))) "pr78090.c":12 193
{*floatsisf2_mixed}
     (expr_list:REG_DEAD (reg/v:SI 100 [orig:92 a ] [92])
        (nil)))

and RA creates:

(insn 18 17 20 4 (set (reg:SF 21 xmm0 [98])
        (float:SF (reg/v:SI 5 di [orig:92 a ] [92]))) "pr78090.c":12 193
{*floatsisf2_mixed}
     (nil))

although we have correct tuning in relevant pattern:

   (set (attr "preferred_for_speed")
     (cond [(eq_attr "alternative" "1")
              (symbol_ref "TARGET_INTER_UNIT_CONVERSIONS")]
           (symbol_ref "true")))])


More information about the Gcc-bugs mailing list