Visual C++ can emit C4738 warning:
storing 32-bit float result in memory, possible loss of performance
for cases when a 32-bit float is about to be stored in memory instead of being stored in a register.
The description further says using double resolves the issue. I don’t get why the latter is true.
Why is storing float in memory result in performance loss and storing double does not?
The warning combines two issues:
Using double resolves the second issue (at least partially, 64 bits are still less precise than 80 bits), but has no impact on the possible performance loss. Which is why the warning decription mentions TWO remedies: