diff mbox series

tree-optimization/116081 - typedef vs. non-typedef in vectorization

Message ID 20240725114434.B742C1368A@imap1.dmz-prg2.suse.org
State New
Headers show
Series tree-optimization/116081 - typedef vs. non-typedef in vectorization | expand

Commit Message

Richard Biener July 25, 2024, 11:44 a.m. UTC
The following fixes the code generation difference when using
a typedef for the scalar type.  The issue is using a pointer
equality test for an INTEGER_CST which fails when the types
are different variants.

Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed.

	PR tree-optimization/116081
	* tree-vect-loop.cc (get_initial_defs_for_reduction):
	Use operand_equal_p for comparing the element with the
	neutral op.
---
 gcc/tree-vect-loop.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc
index d7d628efa60..856ce491c3e 100644
--- a/gcc/tree-vect-loop.cc
+++ b/gcc/tree-vect-loop.cc
@@ -5652,7 +5652,7 @@  get_initial_defs_for_reduction (loop_vec_info loop_vinfo,
 	      init = gimple_build_vector_from_val (&ctor_seq, vector_type,
 						   neutral_op);
 	      int k = nunits;
-	      while (k > 0 && elts[k - 1] == neutral_op)
+	      while (k > 0 && operand_equal_p (elts[k - 1], neutral_op))
 		k -= 1;
 	      while (k > 0)
 		{