https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104497
--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> --- At -O0 we don't ICE but still have invalid _2 = VIEW_CONVERT_EXPR<int[4]>(iftmp.0_4)[i_7(D)]; at RTL expansion. We're somehow recovering here, IIRC RTL expansion makes sure to expand iftmp.0_4 to memory.