diff options
author | Sanjay Patel <spatel@rotateright.com> | 2017-11-16 14:40:51 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2017-11-16 14:40:51 +0000 |
commit | b3fa94586f6f466fe3d7b7d2595b97c5efa3f9c2 (patch) | |
tree | 0ab34875672d25cdc7b8d4ea479b89ee59831fbf /llvm/tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp | |
parent | 89bca9e56642a1631acfa7a874489a1a989927dc (diff) | |
download | bcm5719-llvm-b3fa94586f6f466fe3d7b7d2595b97c5efa3f9c2.tar.gz bcm5719-llvm-b3fa94586f6f466fe3d7b7d2595b97c5efa3f9c2.zip |
[InstCombine] include 'sub' in the list of narrow-able binops
// trunc (binop X, C) --> binop (trunc X, C')
// trunc (binop (ext X), Y) --> binop X, (trunc Y)
I'm grouping sub with the other binops because that makes the code simpler
and the transforms are valid:
https://rise4fun.com/Alive/UeF
...so even though we don't expect a sub with constant Op1 or any of the
other opcodes with constant Op0 due to canonicalization rules, we might as
well handle those situations if non-canonical code somehow reaches this
point (it should just make instcombine more efficient in reaching its
end goal).
This should solve the problem that later manifests in the vectorizers in
PR35295:
https://bugs.llvm.org/show_bug.cgi?id=35295
llvm-svn: 318404
Diffstat (limited to 'llvm/tools/llvm-isel-fuzzer/llvm-isel-fuzzer.cpp')
0 files changed, 0 insertions, 0 deletions