New try at rL353611. The previous version asserted on ARM, because I missed that this code relies on a post-legalization libcall lowering. I've now added a flag for this to makeLibCall.
The change looks ok, but can you describe here or point to a discussion about how this fits in the overall plan for overflow op codegen? Ie, what exactly is enabled by moving this code?