prevent 2**N optimisation from breaking 2.0**N
also test in-place operator for power-of-2 optimisation (not currently optimised)