Added asm statements to force reading of registers. Doesn't seems to change significally the code generated by gcc 4.9.0 on linux.
Could be special cased for clang if needed.