From: Jakub Jelinek Date: Wed, 10 Dec 2025 17:07:02 +0000 (+0100) Subject: vect-generic: Fix expand_vector_mult [PR123069] X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9029f5436aa4badd17c63a5633346a620d265ef5;p=thirdparty%2Fgcc.git 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 Andrew Pinski 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 --git a/gcc/testsuite/gcc.c-torture/compile/pr123069.c b/gcc/testsuite/gcc.c-torture/compile/pr123069.c new file mode 100644 index 00000000000..756e243d992 --- /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 e980a66e880..dc4cb1ba8f4 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;