Evan Cheng c892aeb266 Optimize a couple of common patterns involving conditional moves where the false
value is zero. Instead of a cmov + op, issue an conditional op instead. e.g.
    cmp   r9, r4
    mov   r4, #0
    moveq r4, #1 
    orr   lr, lr, r4

should be:
    cmp   r9, r4
    orreq lr, lr, #1

That is, optimize (or x, (cmov 0, y, cond)) to (or.cond x, y). Similarly extend
this to xor as well as (and x, (cmov -1, y, cond)) => (and.cond x, y).

It's possible to extend this to ADD and SUB but I don't think they are common.

rdar://8659097


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151224 91177308-0d34-0410-b5e6-96231b3b80d8
2012-02-23 01:19:06 +00:00
..
2011-12-19 23:26:44 +00:00
2011-12-19 23:26:44 +00:00
2012-01-11 03:56:08 +00:00
2011-11-14 18:03:05 +00:00
2011-11-29 23:09:16 +00:00
2011-11-29 23:09:16 +00:00
2011-11-12 22:39:34 +00:00
2011-07-26 20:49:44 +00:00
2011-10-17 20:23:23 +00:00