[gcc r16-6017] vect-generic: Fix expand_vector_mult [PR123069]
Jakub Jelinek
jakub@gcc.gnu.org
Wed Dec 10 17:07:43 GMT 2025
https://gcc.gnu.org/g:9029f5436aa4badd17c63a5633346a620d265ef5
commit r16-6017-g9029f5436aa4badd17c63a5633346a620d265ef5
Author: Jakub Jelinek <jakub@redhat.com>
Date: Wed Dec 10 18:07:02 2025 +0100
vect-generic: Fix expand_vector_mult [PR123069]
The r16-5095 PR122065 change added build_int_cst call on vector types.
That is never correct, it ICEs already on the TYPE_PRECISION used at the
start of wide_int_to_tree_1.
Fixed by using build_zero_cst instead.
2025-12-10 Jakub Jelinek <jakub@redhat.com>
Andrew Pinski <andrew.pinski@oss.qualcomm.com>
PR middle-end/123069
* tree-vect-generic.cc (expand_vector_mult): Use
build_zero_cst (vectype) instead of build_int_cst (vectype, 0).
* gcc.c-torture/compile/pr123069.c: New test.
Diff:
---
gcc/testsuite/gcc.c-torture/compile/pr123069.c | 9 +++++++++
gcc/tree-vect-generic.cc | 2 +-
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr123069.c b/gcc/testsuite/gcc.c-torture/compile/pr123069.c
new file mode 100644
index 000000000000..756e243d992f
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr123069.c
@@ -0,0 +1,9 @@
+/* PR middle-end/123069 */
+
+__attribute__((__vector_size__ (2 * sizeof (long long)))) unsigned long long v;
+
+void
+foo (void)
+{
+ v *= 0xffffffff00000000ULL;
+}
diff --git a/gcc/tree-vect-generic.cc b/gcc/tree-vect-generic.cc
index e980a66e8809..dc4cb1ba8f4b 100644
--- a/gcc/tree-vect-generic.cc
+++ b/gcc/tree-vect-generic.cc
@@ -627,7 +627,7 @@ expand_vector_mult (gimple_stmt_iterator *gsi, tree type, tree op0,
}
tree accumulator, tmp_var;
if (alg.op[0] == alg_zero)
- accumulator = build_int_cst (vectype, 0);
+ accumulator = build_zero_cst (vectype);
else
accumulator = op0;
More information about the Gcc-cvs
mailing list