From 95990db02b86282249396b06f65f4f9f582bab42 Mon Sep 17 00:00:00 2001 From: Feng Xue Date: Mon, 5 Aug 2024 15:53:19 +0800 Subject: 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 gcc/ PR tree-optimization/115228 * tree-vect-data-refs.cc (vect_get_smallest_scalar_type): Add missed opcodes that involve widening operation. --- gcc/tree-vect-data-refs.cc | 3 +++ 1 file changed, 3 insertions(+) (limited to 'gcc') 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) { -- cgit v1.1