Did you verify that this was indeed faster? I would expect LLVM to possibly perform an optimization similar to this.