I've refactored the code to genericise the implementation to better allow for target specific constrained fp intrinsics.
3fda50d391
llvm.lifetime.end
cttz(lshr(-1, x) + 1)
width - x