diff options
author | Sanjay Patel <spatel@rotateright.com> | 2020-11-08 09:49:31 -0500 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2020-11-08 09:52:05 -0500 |
commit | 00808e321c724bd9f2a822bce87fe7fe87376371 (patch) | |
tree | 4c6a7c07c0e121f6033a552ed3ecbedbca765758 /llvm/lib/Object/ELFObjectFile.cpp | |
parent | 73a5f0b614fcd4d3732bc4ffba54b6c4dce5b4ed (diff) | |
download | llvm-00808e321c724bd9f2a822bce87fe7fe87376371.zip llvm-00808e321c724bd9f2a822bce87fe7fe87376371.tar.gz llvm-00808e321c724bd9f2a822bce87fe7fe87376371.tar.bz2 |
[InstSimplify] allow vector folds for (Pow2C << X) == NonPow2C
Existing pre-conditions seem to be correct:
https://rise4fun.com/Alive/lCLB
Name: non-zero C1
Pre: !isPowerOf2(C1) && isPowerOf2(C2) && C1 != 0
%sub = shl i8 C2, %X
%cmp = icmp eq i8 %sub, C1
=>
%cmp = false
Name: one == C2
Pre: !isPowerOf2(C1) && isPowerOf2(C2) && C2 == 1
%sub = shl i8 C2, %X
%cmp = icmp eq i8 %sub, C1
=>
%cmp = false
Name: nuw
Pre: !isPowerOf2(C1) && isPowerOf2(C2)
%sub = shl nuw i8 C2, %X
%cmp = icmp eq i8 %sub, C1
=>
%cmp = false
Name: nsw
Pre: !isPowerOf2(C1) && isPowerOf2(C2)
%sub = shl nsw i8 C2, %X
%cmp = icmp eq i8 %sub, C1
=>
%cmp = false
Diffstat (limited to 'llvm/lib/Object/ELFObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions