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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |missed-optimization
             Status|UNCONFIRMED                 |NEW
             Target|                            |x86_64
   Last reconfirmed|                            |2022-11-08
          Component|analyzer                    |target
           Assignee|dmalcolm at gcc dot gnu.org        |unassigned at gcc dot 
gnu.org
     Ever confirmed|0                           |1

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed.
      else if (!fndecl_has_gimple_body_p (callee_fndecl)
               && (!(callee_fndecl_flags & (ECF_CONST | ECF_PURE)))
               && !fndecl_built_in_p (callee_fndecl))
        unknown_side_effects = true;

The last part is part of the problem I think. At least here.
Yes maybe we should have another builtin which returns a "_Complex unsigned
long long" here which is folded into for __builtin_ia32_rdrand*_step to remove
the need to the address too.

I am going to declare this one as a target issue but there might be other
builtins which are harder to do the "_Complex" trick.

Reply via email to