[Bug target/59968] Unused BT patterns

hjl.tools at gmail dot com gcc-bugzilla@gcc.gnu.org
Wed Jan 29 20:39:00 GMT 2014


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59968

--- Comment #19 from H.J. Lu <hjl.tools at gmail dot com> ---
For

---
int
foo1 (int x, int y)
{
  x &= 1 << y;
  return x != 0;
}
---

combine fails to try

(set (reg:CCZ 17 flags)
    (compare:CCZ (and:SI (lshiftrt:SI (reg/v:SI 88 [ x ])
                (subreg:QI (reg/v:SI 89 [ y ]) 0)) 
            (const_int 1 [0x1]))
        (const_int 0 [0])))
(set (reg:SI 94 [ D.1754 ])
    (ne:SI (reg:CCZ 17 flags)
        (const_int 0 [0])))

which can be turned into

(set (reg:CCC 17 flags)
    (compare:CCC (and:SI (lshiftrt:SI (reg/v:SI 88 [ x ])
                (subreg:QI (reg/v:SI 89 [ y ]) 0)) 
            (const_int 1 [0x1]))
        (const_int 0 [0])))
(set (reg:SI 94 [ D.1754 ])
    (ne:SI (reg:CCC 17 flags)
        (const_int 0 [0])))



More information about the Gcc-bugs mailing list