Is it actually faster to combine two u32 values into a single u64 value?

56 points rhedgeco

I see all over the place these little micro optimizations of combining two 32bit integers into a single 64bit integer, and then accessing it by masking bitshifting the numbers in some kind of public facing api. But is this actually faster? It seems like the time you save by using the same load instruction, would just be nullified by the time lost having to do extra conversions on access. Not to mention it now restricts the alignment internally to a larger offset.

Can anyone shed some light on this?