Sanjay Patel 59d0aeaafe [InstCombine] check one-use before applying DeMorgan nor/nand folds
If we have ~(~X & Y), it only makes sense to transform it to (X | ~Y) when we do not need 
the intermediate (~X & Y) value. In that case, we would need an extra instruction to 
generate ~Y + 'or' (as shown in the test changes).

It's ok if we have multiple uses of ~X or Y, however. In those cases, we may not reduce the
instruction count or critical path, but we might improve throughput because we can generate 
~X and ~Y in parallel. Whether that actually makes perf sense or not for a target is something 
we can't answer in IR.

Differential Revision: https://reviews.llvm.org/D32703

llvm-svn: 301848
2017-05-01 22:25:42 +00:00
..
2016-09-13 12:10:14 +00:00
2013-08-28 23:04:41 +00:00
2014-06-02 21:23:54 +00:00
2017-04-14 17:47:07 +00:00
2016-07-16 16:24:06 +00:00
2017-01-22 20:28:56 +00:00
2014-03-06 05:32:52 +00:00
2017-04-17 03:41:47 +00:00
2016-06-05 17:29:45 +00:00
2017-01-10 23:08:54 +00:00
2014-11-04 05:17:58 +00:00
2014-10-21 23:00:20 +00:00
2016-04-17 04:30:43 +00:00
2016-05-02 15:25:49 +00:00
2015-01-06 23:00:33 +00:00
2016-04-05 17:24:54 +00:00
2015-06-05 18:04:42 +00:00
2015-08-11 21:33:55 +00:00
2015-08-28 19:09:31 +00:00
2017-04-19 12:06:40 +00:00
2016-01-07 19:27:16 +00:00
2016-06-05 17:54:56 +00:00
2017-04-14 17:47:07 +00:00
2013-08-28 23:04:41 +00:00
2013-08-28 23:04:41 +00:00
2013-03-28 19:34:14 +00:00
2017-04-14 17:47:07 +00:00
2016-04-05 17:24:54 +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.