Hi Joel,

your patch fails here with:

../../repos/gcc-11-commit/gcc/tree-vect-loop.c:8000:8: error:
‘directly_supported_p’ was not declared in this scope
 8000 |   if (!directly_supported_p (PLUS_EXPR, step_vectype)
      |        ^~~~~~~~~~~~~~~~~~~~

And "git grep" shows that this is only present in:

gcc/tree-vect-loop.c:  if (!directly_supported_p (PLUS_EXPR, step_vectype)
gcc/tree-vect-loop.c:      || !directly_supported_p (MINUS_EXPR,
step_vectype))

That's different on mainline, which offers that function.

Tobias

On 10.12.21 14:24, Joel Hutton via Gcc-patches wrote:
ok for backport to 11?
________________________________
From: Richard Sandiford <richard.sandif...@arm.com>
Sent: 10 December 2021 10:22
To: Joel Hutton <joel.hut...@arm.com>
Cc: GCC Patches <gcc-patches@gcc.gnu.org>; Richard Biener <rguent...@suse.de>
Subject: Re: pr103523: Check for PLUS/MINUS support

Joel Hutton <joel.hut...@arm.com> writes:
Hi all,

This is to address pr103523.

bootstrapped and regression tested on aarch64.

Check for PLUS_EXPR/MINUS_EXPR support in vectorizable_induction.
PR103523 is an ICE on valid code:

void d(float *a, float b, int c) {
     float e;
     for (; c; c--, e += b)
       a[c] = e;
}

This is due to not checking for PLUS_EXPR support, which is missing in
VNx2sf mode. This causes an ICE at expand time. This patch adds a check
for support in vectorizable_induction.

gcc/ChangeLog:

         PR tree-optimization/PR103523
The bugzilla hook expects: PR tree-optimization/103523

         * tree-vect-loop.c (vectorizable_induction): Check for
     PLUS_EXPR/MINUS_EXPR support.
OK, thanks.

Richard
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 
München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas 
Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht 
München, HRB 106955

Reply via email to