> struct x { char c[8]; };
> : GET_MODE (RTX) != BLKmode ? GET_MODE_ALIGNMENT (GET_MODE (RTX)) \
I think we're back to the fundamental bug of the mode claiming to be
DI instead of BLK - so it guesses the alignment wrong. I think
someone needs to somehow be aware of this case, so it can override the
mode-based alignment.