[llvm-dev] DAGCombiner folds (xor (and x, y), y) -> (and (not x), y). Can I do the reverse for a target?

Joerg Sonnenberger via llvm-dev llvm-dev at lists.llvm.org
Tue Jun 21 14:23:05 PDT 2016

On Tue, Jun 21, 2016 at 04:18:28PM -0400, Assem Bsoul via llvm-dev wrote:
> In SystemZ, for 64-bit operands, (not x) is translated as two xor
> instructions, i.e., XORing the high and low half words of x with 32-bit
> immediate. The other form that I want will reduce the instruction count by
> 1 because (and x, y) is translated as a single instruction.

In that case, you can directly pattern match the canonical form.


More information about the llvm-dev mailing list