diff options
author | Richard Stallman <rms@gnu.org> | 1993-10-30 06:03:36 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-10-30 06:03:36 +0000 |
commit | 0766f2391794b8999026c8b82ce74043fb018e97 (patch) | |
tree | cd6159ed4dc610860981d4e3f185b0b50988463c /gcc | |
parent | 22128dafd5382d8c8df73a202f3274a7f6a27e35 (diff) | |
download | gcc-0766f2391794b8999026c8b82ce74043fb018e97.zip gcc-0766f2391794b8999026c8b82ce74043fb018e97.tar.gz gcc-0766f2391794b8999026c8b82ce74043fb018e97.tar.bz2 |
(do_jump): Use do_jump_by_parts_equality for complex compares.
From-SVN: r5938
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/expr.c | 20 |
1 files changed, 12 insertions, 8 deletions
@@ -8294,10 +8294,12 @@ do_jump (exp, if_false_label, if_true_label) case EQ_EXPR: if (integer_zerop (TREE_OPERAND (exp, 1))) do_jump (TREE_OPERAND (exp, 0), if_true_label, if_false_label); - else if ((GET_MODE_CLASS (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)))) - == MODE_INT) - && - !can_compare_p (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0))))) + else if (((GET_MODE_CLASS (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)))) + == MODE_INT) + && + !can_compare_p (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0))))) + || GET_MODE_CLASS (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)))) == MODE_COMPLEX_FLOAT + || GET_MODE_CLASS (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)))) == MODE_COMPLEX_INT) do_jump_by_parts_equality (exp, if_false_label, if_true_label); else comparison = compare (exp, EQ, EQ); @@ -8306,10 +8308,12 @@ do_jump (exp, if_false_label, if_true_label) case NE_EXPR: if (integer_zerop (TREE_OPERAND (exp, 1))) do_jump (TREE_OPERAND (exp, 0), if_false_label, if_true_label); - else if ((GET_MODE_CLASS (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)))) - == MODE_INT) - && - !can_compare_p (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0))))) + else if (((GET_MODE_CLASS (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)))) + == MODE_INT) + && + !can_compare_p (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0))))) + || GET_MODE_CLASS (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)))) == MODE_COMPLEX_FLOAT + || GET_MODE_CLASS (TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 0)))) == MODE_COMPLEX_INT) do_jump_by_parts_equality (exp, if_true_label, if_false_label); else comparison = compare (exp, NE, NE); |