On Mon, Feb 01, 2021 at 05:57:28PM +0800, Kito Cheng wrote:
> > >  - Check `TO` mode is not BLMmode before call store_expr, calling 
> > > store_expr
> > >    with BLKmode will cause ICE.
> >
> > How do you end up with a SUBREG_PROMOTED* of something that has bitsize of 0
> > (GET_MODE_BITSIZE of BLKmode is 0, right)?
> 
> to_rtx is already having a mode other than BLKmode in this point,
> it's SImode for riscv64*-*-*, so bitsize is 32 rather than 0.
> 
> I guess my comment isn't clear enough, the root cause why
> `store_expr (from, to_rtx, 0, nontemporal, false)` ICE is
> because `from` is still BLKmode here.

But mode is TYPE_MODE (TREE_TYPE (to)), that is expanded already at this
point and got some different mode.  So, if anything, you care about
TYPE_MODE (TREE_TYPE (from)) rather than mode, don't you?

        Jakub

Reply via email to