void warn_c32 (char c)
{
- extern char warn_a32[32]; // { dg-message "at offset (32|1) into destination object 'warn_a32' of size 32" "pr97027" }
+ extern char warn_a32[32]; // { dg-message "at offset (32|1|17) into destination object 'warn_a32' of size 32" "pr97027" }
void *p = warn_a32 + 1;
- *(C32*)p = (C32){ c }; // { dg-warning "writing (1 byte|32 bytes) into a region of size (0|31)" "pr97027" }
+ *(C32*)p = (C32){ c }; // { dg-warning "writing (1 byte|16 bytes|32 bytes) into a region of size (0|15|31)" "pr97027" }
/* Verify a local variable too. */
char a32[32];
p = a32 + 1;
- *(C32*)p = (C32){ c }; // { dg-warning "writing (1 byte|32 bytes) into a region of size (0|31)" "pr97027" }
+ *(C32*)p = (C32){ c }; // { dg-warning "writing (1 byte|16 bytes|32 bytes) into a region of size (0|15|31)" "pr97027" }
sink (p);
}
}
if (is_a <bb_vec_info> (vinfo)
- && !oprnd_info->any_pattern)
+ && !oprnd_info->any_pattern
+ && number_of_oprnds > 1)
{
/* Now for commutative ops we should see whether we can
make the other operand matching. */
/* Mismatch. */
continue;
}
- if (first_stmt_code != rhs_code
+ if (!ldst_p
+ && first_stmt_code != rhs_code
&& alt_stmt_code == ERROR_MARK)
alt_stmt_code = rhs_code;
- if ((first_stmt_code != rhs_code
+ if ((!ldst_p
+ && first_stmt_code != rhs_code
&& (first_stmt_code != IMAGPART_EXPR
|| rhs_code != REALPART_EXPR)
&& (first_stmt_code != REALPART_EXPR
&& (TREE_CODE_CLASS (tree_code (first_stmt_code))
== tcc_comparison)
&& (swap_tree_comparison (tree_code (first_stmt_code))
- == tree_code (rhs_code)))
- && !(STMT_VINFO_GROUPED_ACCESS (stmt_info)
- && (first_stmt_code == ARRAY_REF
- || first_stmt_code == BIT_FIELD_REF
- || first_stmt_code == COMPONENT_REF
- || first_stmt_code == REALPART_EXPR
- || first_stmt_code == IMAGPART_EXPR
- || first_stmt_code == MEM_REF)
- && (rhs_code == ARRAY_REF
- || rhs_code == BIT_FIELD_REF
- || rhs_code == COMPONENT_REF
- || rhs_code == REALPART_EXPR
- || rhs_code == IMAGPART_EXPR
- || rhs_code == MEM_REF)))
+ == tree_code (rhs_code))))
|| (ldst_p
&& (STMT_VINFO_GROUPED_ACCESS (stmt_info)
!= STMT_VINFO_GROUPED_ACCESS (first_stmt_info)))