On Mon, Feb 1, 2021 at 6:10 PM Jakub Jelinek <ja...@redhat.com> wrote: > > 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?
Yeah, that's correct, let me send v2 for updating the checking and comment. > > Jakub >