aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFeng Xue <fxue@os.amperecomputing.com>2024-08-05 15:53:19 +0800
committerFeng Xue <fxue@os.amperecomputing.com>2024-08-06 11:37:00 +0800
commit95990db02b86282249396b06f65f4f9f582bab42 (patch)
tree34aeed6002e81dc3d062813a450f41586651fd11
parent3c089ee5d5a86cab0b27c69b96c4354c496520ac (diff)
downloadgcc-95990db02b86282249396b06f65f4f9f582bab42.zip
gcc-95990db02b86282249396b06f65f4f9f582bab42.tar.gz
gcc-95990db02b86282249396b06f65f4f9f582bab42.tar.bz2
vect: Add missed opcodes in vect_get_smallest_scalar_type [PR115228]
Some opcodes are missed when determining the smallest scalar type for a vectorizable statement. Currently, this bug does not cause any problem, because vect_get_smallest_scalar_type is only used to compute max nunits vectype, and even statement with missed opcode is incorrectly bypassed, the max nunits vectype could also be rightly deduced from def statements for operands of the statement. In the future, if this function will be called to do other thing, we may get something wrong. So fix it in this patch. 2024-08-05 Feng Xue <fxue@os.amperecomputing.com> gcc/ PR tree-optimization/115228 * tree-vect-data-refs.cc (vect_get_smallest_scalar_type): Add missed opcodes that involve widening operation.
-rw-r--r--gcc/tree-vect-data-refs.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/tree-vect-data-refs.cc b/gcc/tree-vect-data-refs.cc
index 39fd887..5b0d548 100644
--- a/gcc/tree-vect-data-refs.cc
+++ b/gcc/tree-vect-data-refs.cc
@@ -162,7 +162,10 @@ vect_get_smallest_scalar_type (stmt_vec_info stmt_info, tree scalar_type)
if (gimple_assign_cast_p (assign)
|| gimple_assign_rhs_code (assign) == DOT_PROD_EXPR
|| gimple_assign_rhs_code (assign) == WIDEN_SUM_EXPR
+ || gimple_assign_rhs_code (assign) == SAD_EXPR
|| gimple_assign_rhs_code (assign) == WIDEN_MULT_EXPR
+ || gimple_assign_rhs_code (assign) == WIDEN_MULT_PLUS_EXPR
+ || gimple_assign_rhs_code (assign) == WIDEN_MULT_MINUS_EXPR
|| gimple_assign_rhs_code (assign) == WIDEN_LSHIFT_EXPR
|| gimple_assign_rhs_code (assign) == FLOAT_EXPR)
{