Meant to CC a few people, oops. Aaron Sawdey, Ph.D. saw...@linux.ibm.com IBM Linux on POWER Toolchain
> On Sep 2, 2020, at 9:22 AM, Aaron Sawdey via Gcc <gcc@gcc.gnu.org> wrote: > > > PR96791 is happening because DSE is trying to truncate a > POImode reg down to DImode. The POImode is created by a > structure copy that gets inline expanded using lxvp/stxvp > which we have defined using POImode. DSE recognizes that a > following load overlaps with the stxvp and can be satisfied > by a truncation of the POImode reg used for the stxvp. > > The intention of using POImode was to avoid having to fully > define OImode and it seems like defining these truncations > would be the first step along that path. If I haven't > misrepresented it, I believe that is Segher's position on > this. > > The function extract_low_bits() in expmed.c does some > querying of the target hook modes_tieable_p but not in any > way that allows us to tell it not to allow truncation of > POImode to a smaller mode. As a result we run into the ICE > because the patterns are not provided to do this. > > So, I put it to the community: Is there an existing way to do > this? Or, do we need another target hook of some kind to > check this sort of thing? > > Thanks, > Aaron > > > Aaron Sawdey, Ph.D. saw...@linux.ibm.com > IBM Linux on POWER Toolchain > >