diff options
author | Alon Zakai (kripken) <alonzakai@gmail.com> | 2017-02-11 13:20:35 -0800 |
---|---|---|
committer | Alon Zakai (kripken) <alonzakai@gmail.com> | 2017-02-16 22:45:36 -0800 |
commit | f57637d7164d8a6369d2ba281559b8d3cef7bd33 (patch) | |
tree | cfd3db06a89e5db055f6c55782485db43542dd0c /src/passes/OptimizeInstructions.cpp | |
parent | 51d57932a34dd265a8c3c35a6773387e5dd7bc9e (diff) | |
download | binaryen-f57637d7164d8a6369d2ba281559b8d3cef7bd33.tar.gz binaryen-f57637d7164d8a6369d2ba281559b8d3cef7bd33.tar.bz2 binaryen-f57637d7164d8a6369d2ba281559b8d3cef7bd33.zip |
optimize sign-extends to a boolean
Diffstat (limited to 'src/passes/OptimizeInstructions.cpp')
-rw-r--r-- | src/passes/OptimizeInstructions.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/passes/OptimizeInstructions.cpp b/src/passes/OptimizeInstructions.cpp index 561e7882c..51fb67065 100644 --- a/src/passes/OptimizeInstructions.cpp +++ b/src/passes/OptimizeInstructions.cpp @@ -561,6 +561,10 @@ private: } } } + if (auto* ext = getSignExt(binary)) { + // use a cheaper zero-extent, we just care about the boolean value anyhow + return makeZeroExt(ext, getSignExtBits(binary)); + } } else if (auto* block = boolean->dynCast<Block>()) { if (block->type == i32 && block->list.size() > 0) { block->list.back() = optimizeBoolean(block->list.back()); |