LGTM with tweaks. ================ Comment at: lib/Transforms/Scalar/Reassociate.cpp:1045 @@ +1044,3 @@ + if (NUW && NSW) + Mul->setHasNoSignedWrap(NSW); + Mul->setHasNoUnsignedWrap(NUW); ---------------- This can just be `Mul->setHasNoSignedWrap(true);` http://reviews.llvm.org/D6172