Roman Lebedev d9ebaeeb46
[InstCombine] Hoist xor-by-constant from xor-by-value
This is one of the deficiencies that can be observed in
https://godbolt.org/z/YPczsG after D91038 patch set.

This exposed two missing folds, one was fixed by the previous commit,
another one is `(A ^ B) | ~(A ^ B) --> -1` / `(A ^ B) & ~(A ^ B) --> 0`.

`-early-cse` will catch it: https://godbolt.org/z/4n1T1v,
but isn't meaningful to fix it in InstCombine,
because we'd need to essentially do our own CSE,
and we can't even rely on `Instruction::isIdenticalTo()`,
because there are no guarantees that the order of operands matches.
So let's just accept it as a loss.
2020-12-24 21:20:50 +03:00
..
2020-06-30 19:56:37 +01:00
2020-02-27 09:06:03 -08:00
2019-08-14 16:50:06 +00:00
2020-09-05 12:37:45 +02:00
2020-08-11 11:05:42 +02:00
2019-09-11 10:51:26 +00:00
2020-10-12 17:55:00 +02:00
2019-09-06 16:26:59 +00:00
2019-06-21 17:51:18 +00:00
2020-08-13 22:37:44 +02:00
2020-10-17 12:20:18 -04:00

This directory contains test cases for the instcombine transformation.  The
dated tests are actual bug tests, whereas the named tests are used to test
for features that the this pass should be capable of performing.