Open avikivity opened 2 years ago
CC @LebedevRI @rotateright
There's a question of why we end up with mismatched extends on this pattern, but ultimately, we are missing combines for all IR predicates. A full solution should work out the truth table equivalents, so we don't miss anything.
For example, 'sgt' can also become 'or': https://alive2.llvm.org/ce/z/NkB_eB
generates (clang 13)
However it can remove an instruction:
Boolean multiplication generates an
andl
already.This can happen when feeding std::plus to things like
std::reduce
.