https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121831
--- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> --- store_constructor simply doesn't have RAW_DATA_CST support, that can be added. What worries me more is that expand_constructor doesn't have some upper size bound on the optimization. We punt if we can't can_move_by_pieces and exp is not mostly zeros, but if exp is mostly zeros, even if it is say 10GB of non-zeros and 30GB of zeros, we still could expand it by clearing 40GB and then trying to store 10billion INTEGER_CSTs one by one into the MEM. mostly_zeros_p still means just that 3/4 or more of it are zero bytes, the non-zero byte chunks can be huge.
