aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objdump/llvm-objdump.cpp
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2022-05-16 12:29:47 -0400
committerSanjay Patel <spatel@rotateright.com>2022-05-16 12:55:52 -0400
commit3794cc0e996481e10307b67c8436aa44e0d65d22 (patch)
treec0dce126df8143ce75d58e298f9e032828d41e4a /llvm/tools/llvm-objdump/llvm-objdump.cpp
parent836305b24ca7a0dea0f80873bfa79d417d4d798d (diff)
downloadllvm-3794cc0e996481e10307b67c8436aa44e0d65d22.zip
llvm-3794cc0e996481e10307b67c8436aa44e0d65d22.tar.gz
llvm-3794cc0e996481e10307b67c8436aa44e0d65d22.tar.bz2
[InstCombine] invert canonicalization for cast of signbit test
The existing transform was wrong in 3 ways: 1. It created an extra instruction when the source and dest types don't match. 2. It did not account for an extra use of the icmp, so could create 2 extra insts. 3. It favored bit hacks over icmp (icmp generally has better analysis). This fixes #54692 (modeled by the PhaseOrdering tests). This is a minimal step to fix the bug, but we should likely invert the sibling transform for the "is negative" pattern too. The backend should be able to invert this back to a shift if that leads to better codegen.
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
0 files changed, 0 insertions, 0 deletions