===================================================================
@@ -4333,7 +4333,9 @@ pass_store_merging::process_store (gimpl
&& const_bitsize <= 64)
{
/* Bypass a conversion to the bit-field type. */
- if (is_gimple_assign (def_stmt) && CONVERT_EXPR_CODE_P (rhs_code))
+ if (!bit_not_p
+ && is_gimple_assign (def_stmt)
+ && CONVERT_EXPR_CODE_P (rhs_code))
{
tree rhs1 = gimple_assign_rhs1 (def_stmt);
if (TREE_CODE (rhs1) == SSA_NAME
@@ -4341,6 +4343,7 @@ pass_store_merging::process_store (gimpl
rhs = rhs1;
}
rhs_code = BIT_INSERT_EXPR;
+ bit_not_p = false;
ops[0].val = rhs;
ops[0].base_addr = NULL_TREE;
ops[1].base_addr = NULL_TREE;