Sanjay Patel 26725bdc50 [InstCombine] add folds for icmp with xor mask constant
These are the folds in Alive;
Name: xor_ult
Pre: isPowerOf2(-C1)
%xor = xor i8 %x, C1
%r = icmp ult i8 %xor, C1
=>
%r = icmp ugt i8 %x, ~C1

Name: xor_ugt
Pre: isPowerOf2(C1+1)
%xor = xor i8 %x, C1
%r = icmp ugt i8 %xor, C1
=>
%r = icmp ugt i8 %x, C1

https://rise4fun.com/Alive/Vty

The ugt case in its simplest form was already handled by DemandedBits,
but that's not ideal as shown in the multi-use test.

I'm not sure if these are all of the symmetrical folds, but I adjusted 
the existing code for one of the folds to try to show the similarities.

There's no obvious connection, but this is another preliminary step 
for PR14613...
https://bugs.llvm.org/show_bug.cgi?id=14613

llvm-svn: 341997
2018-09-11 22:00:15 +00:00
..
2018-02-01 13:05:25 +00:00
2017-10-10 05:07:54 +00:00
2017-10-10 05:07:54 +00:00
2017-10-10 05:07:54 +00:00
2017-10-10 05:07:54 +00:00
2017-10-10 05:07:54 +00:00
2017-10-10 05:07:54 +00:00
2017-10-10 05:07:54 +00:00
2017-05-19 22:37:09 +00:00
2018-08-14 15:21:13 +00:00
2018-08-16 17:03:22 +00:00
2017-04-19 12:06:40 +00:00
2018-06-04 02:52:36 +00:00
2018-02-01 13:05:25 +00:00
2017-04-14 17:47:07 +00: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.