diff options
author | Veera <32646674+veera-sivarajan@users.noreply.github.com> | 2025-03-28 08:32:45 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-28 08:32:45 -0400 |
commit | 4cdcf3b19302d8f337b5607d6b9df170f577dc70 (patch) | |
tree | 911ebfaa478f476f03e14fec31db2a7281b3164d /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | f76254d9b2a68e0021d93e682744e4240a2368b9 (diff) | |
download | llvm-4cdcf3b19302d8f337b5607d6b9df170f577dc70.zip llvm-4cdcf3b19302d8f337b5607d6b9df170f577dc70.tar.gz llvm-4cdcf3b19302d8f337b5607d6b9df170f577dc70.tar.bz2 |
[InstCombine] Fold `(trunc nuw A to i1) == (trunc nuw B to i1)` to `A == B` (#133368)
Fixes #133344
Proof: https://alive2.llvm.org/ce/z/X3Uh23
InstCombine couldn't optimize `i1` because `canonicalizeICmpBool()` was
transforming the comparison into bitwise operations before
`foldICmpTruncWithTruncOrExt()` was called.
This PR solves the ordering issue by placing
`foldICmpTruncWithTruncOrExt()` before `canonicalizeICmpBool()`.
I believe this will not cause any regressions since all tests are
passing.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions