Commit 27ecd5c2 by Andrew Pinski Committed by Andrew Pinski

tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's operand 1 to see if…

tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's operand 1 to see if the types precision matches.

2017-07-21  Andrew Pinski  <apinski@cavium.com>

        * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
        operand 1 to see if the types precision matches.
        * fold-const.c (operand_equal_p): Likewise.

From-SVN: r250431
parent 8c7331c5
2017-07-21 Andrew Pinski <apinski@cavium.com>
* tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
operand 1 to see if the types precision matches.
* fold-const.c (operand_equal_p): Likewise.
2017-07-21 Richard Biener <rguenther@suse.de>
PR tree-optimization/81303
......
......@@ -3184,9 +3184,18 @@ operand_equal_p (const_tree arg0, const_tree arg1, unsigned int flags)
flags &= ~OEP_ADDRESS_OF;
return OP_SAME (0);
case BIT_INSERT_EXPR:
/* BIT_INSERT_EXPR has an implict operand as the type precision
of op1. Need to check to make sure they are the same. */
if (TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST
&& TREE_CODE (TREE_OPERAND (arg1, 1)) == INTEGER_CST
&& TYPE_PRECISION (TREE_TYPE (TREE_OPERAND (arg0, 1)))
!= TYPE_PRECISION (TREE_TYPE (TREE_OPERAND (arg1, 1))))
return false;
/* FALLTHRU */
case VEC_COND_EXPR:
case DOT_PROD_EXPR:
case BIT_INSERT_EXPR:
return OP_SAME (0) && OP_SAME (1) && OP_SAME (2);
case MODIFY_EXPR:
......
......@@ -2636,6 +2636,14 @@ vn_nary_op_eq (const_vn_nary_op_t const vno1, const_vn_nary_op_t const vno2)
if (!expressions_equal_p (vno1->op[i], vno2->op[i]))
return false;
/* BIT_INSERT_EXPR has an implict operand as the type precision
of op1. Need to check to make sure they are the same. */
if (vno1->opcode == BIT_INSERT_EXPR
&& TREE_CODE (vno1->op[1]) == INTEGER_CST
&& TYPE_PRECISION (TREE_TYPE (vno1->op[1]))
!= TYPE_PRECISION (TREE_TYPE (vno2->op[1])))
return false;
return true;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment