From: Jakub Jelinek Date: Fri, 25 Aug 2000 12:40:18 +0000 (+0200) Subject: i386.c (ix86_expand_branch): Treat GE and GEU the same way as LT and LTU when... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1f9124e42e485a2afe439fbd6966a5263783186c;p=gcc.git i386.c (ix86_expand_branch): Treat GE and GEU the same way as LT and LTU when... * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same way as LT and LTU when the second operand has 0 in low word. From-SVN: r35982 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e4b4d6e92f6..e07ca1c5e75 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-08-25 Jakub Jelinek + + * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same + way as LT and LTU when the second operand has 0 in low word. + 2000-08-26 Michael Hayes * basic-block.h (struct loop): Rename `exits' field to diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 4c21a88a4d9..9fa6fabb85b 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -4977,17 +4977,21 @@ ix86_expand_branch (code, label) return; } - /* Otherwise, if we are doing less-than, op1 is a constant and the - low word is zero, then we can just examine the high word. */ + /* Otherwise, if we are doing less-than or greater-or-equal-than, + op1 is a constant and the low word is zero, then we can just + examine the high word. */ - if (GET_CODE (hi[1]) == CONST_INT && lo[1] == const0_rtx - && (code == LT || code == LTU)) - { - ix86_compare_op0 = hi[0]; - ix86_compare_op1 = hi[1]; - ix86_expand_branch (code, label); - return; - } + if (GET_CODE (hi[1]) == CONST_INT && lo[1] == const0_rtx) + switch (code) + { + case LT: case LTU: case GE: case GEU: + ix86_compare_op0 = hi[0]; + ix86_compare_op1 = hi[1]; + ix86_expand_branch (code, label); + return; + default: + break; + } /* Otherwise, we need two or three jumps. */