Ответ в том, что это не имеет значения.
В соответствии с этим:
http://msdn.microsoft.com/en-us/library/ms235286.aspx
Соглашение о вызовах гласит, что 16-байт (и, вероятно, 32-байт) операнды всегда передаются по ссылке.Таким образом, даже если вы передадите по значению, компилятор передаст его по ссылке ниже.
Другими словами, регистры XMM и YMM никогда не передаются по значению в Windows.Но нижние половины XMM0-4 все еще можно использовать для передачи 64-битных параметров по значению.
EDIT:
Во втором примере со значением float
имеется небольшоеразница, поскольку она все равно будет влиять на то, будет ли b
передан по ссылке или по значению.