crtrott added a comment. This implements about 80% of the necessary tests, but its already a lot of code so we can collect review feedback while we do the rest. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D154367/new/ https://reviews.llvm.org/D154367