https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91796
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hjl.tools at gmail dot com, | |jakub at gcc dot gnu.org, | |uros at gcc dot gnu.org, | |vmakarov at gcc dot gnu.org --- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The #c0 issue is a RA decision, what registers it decides to use for each pseudo register. As for #c1, the optimizers see that what you've typed there is a constant and optimizes it into a constant (which is desirable). Whether that particular constant is better loaded into a register using a memory load or two instructions depends on various factors, we obviously have special cases for constants that can be built using a single non-memory instruction (e.g. zero vector or all ones vector), whether to do that for other constant is something that needs to be thought out, benchmarked etc.