vect: Fix single_imm_use in tree_vect_patterns
Since pattern statement coexists with normal statements in a way that it is not linked into function body, we should not invoke utility procedures that depends on def/use graph on pattern statement, such as counting uses of a pseudo value defined by a pattern statement. This patch is to fix a bug of this type in vect pattern formation. 2024-06-14 Feng Xue <fxue@os.amperecomputing.com> gcc/ * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Only call single_imm_use if statement is not generated from pattern recognition.
This commit is contained in:
parent
16daeb262a
commit
49339d8b7e
1 changed files with 2 additions and 1 deletions
|
@ -2702,7 +2702,8 @@ vect_recog_bitfield_ref_pattern (vec_info *vinfo, stmt_vec_info stmt_info,
|
|||
/* If the only use of the result of this BIT_FIELD_REF + CONVERT is a
|
||||
PLUS_EXPR then do the shift last as some targets can combine the shift and
|
||||
add into a single instruction. */
|
||||
if (lhs && single_imm_use (lhs, &use_p, &use_stmt))
|
||||
if (lhs && !is_pattern_stmt_p (stmt_info)
|
||||
&& single_imm_use (lhs, &use_p, &use_stmt))
|
||||
{
|
||||
if (gimple_code (use_stmt) == GIMPLE_ASSIGN
|
||||
&& gimple_assign_rhs_code (use_stmt) == PLUS_EXPR)
|
||||
|
|
Loading…
Add table
Reference in a new issue