[Bug target/101322] ICE in copy_to_mode_reg, at explow.c:651

bergner at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Aug 26 19:15:48 GMT 2022


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

Peter Bergner <bergner at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2022-08-26
             Target|powerpc-*-linux-gnu         |powerpc*-*-linux-gnu
             Status|UNCONFIRMED                 |ASSIGNED
     Ever confirmed|0                           |1
           Assignee|unassigned at gcc dot gnu.org      |bergner at gcc dot gnu.org

--- Comment #1 from Peter Bergner <bergner at gcc dot gnu.org> ---
Confirmed.  I see what the problem is.  When we expand the built-in, the cast
to the proper type is lost and we only see a char *vpp.  We then use that type
to create a temporary and we end up with a reg:QI rather than a reg:OO.

Is the casted pointer type supposed to be stripped away like that?

Anyway, I can work around that since I know what the temporary type should be
rather than stealing the type from the src operand.


More information about the Gcc-bugs mailing list