joerg added a comment. The difference is that modsi3 etc are all paired instructions. A backend should not be lowering to one of them if a real division instruction exists and it should be consistent in the lowering. https://reviews.llvm.org/D41813