]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
vect-generic: Fix expand_vector_mult [PR123069]
authorJakub Jelinek <jakub@redhat.com>
Wed, 10 Dec 2025 17:07:02 +0000 (18:07 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 10 Dec 2025 17:07:02 +0000 (18:07 +0100)
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.

gcc/testsuite/gcc.c-torture/compile/pr123069.c [new file with mode: 0644]
gcc/tree-vect-generic.cc

diff --git a/gcc/testsuite/gcc.c-torture/compile/pr123069.c b/gcc/testsuite/gcc.c-torture/compile/pr123069.c
new file mode 100644 (file)
index 0000000..756e243
--- /dev/null
@@ -0,0 +1,9 @@
+/* PR middle-end/123069 */
+
+__attribute__((__vector_size__ (2 * sizeof (long long)))) unsigned long long v;
+
+void
+foo (void)
+{
+  v *= 0xffffffff00000000ULL;
+}
index e980a66e88098022bf2012930fbb6d8569692c6d..dc4cb1ba8f4b1a4edecf600dfad518527ec21788 100644 (file)
@@ -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;