This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
does the instruction combiner regards (foo & 0xff) as a special case?
- From: ibanez at sunplus dot com
- To: gcc at gcc dot gnu dot org
- Date: Mon, 1 Aug 2005 10:47:56 +0800
- Subject: does the instruction combiner regards (foo & 0xff) as a special case?
- Sensitivity:
Does the instruction combiner regards (foo & 0xff) as a special case?
I have two patterns which I expect to match all the
if(foo & $(constant)) patterns. They are
[(set (reg:CC_Z CC_REGNUM)
(compare:CC_Z
(and:SI (match_operand:SI 0 "register_operand" "")
(match_operand:SI 1 "" ""))
(const_int 0)))]
[(set (reg:CC_Z CC_REGNUM)
(compare:CC_Z (zero_extract:SI
(match_operand:SI 0 "register_operand" "")
(const_int 1)
(match_operand:SI 1 "" ""))
(const_int 0)))]
But I found they fails to match
if(foo & 0xff) and if(foo & 0xffff)
Did I forget something ?
Thank you for your reading.