Bug 116609 - Live lane vectorization does not support SLP with loop masking
Summary: Live lane vectorization does not support SLP with loop masking
Status: NEW
Alias: None
Product: gcc
Classification: Unclassified
Component: tree-optimization (show other bugs)
Version: 15.0
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks: 116578
  Show dependency treegraph
 
Reported: 2024-09-05 08:42 UTC by Richard Biener
Modified: 2024-09-06 07:18 UTC (History)
0 users

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2024-09-06 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Richard Biener 2024-09-05 08:42:21 UTC
It should be trivial to support for single-lane SLP (testing a patch for that)
but also multi-lane might be supportable, for example using slide up/down
or easier when the number of lanes is power-of-two use a larger element
lastb extract.

In general when SLP discovery gets us multi-lanes and that fails we currently
scrap the respective SLP instance but we might want to split it up to a set
of single-lane instances (also avoiding re-discovery).
Comment 1 GCC Commits 2024-09-06 07:16:28 UTC
The master branch has been updated by Richard Biener <rguenth@gcc.gnu.org>:

https://gcc.gnu.org/g:116bfbc806a7aa3f1ae2a3b3eb38d6bb65e0d0a7

commit r15-3506-g116bfbc806a7aa3f1ae2a3b3eb38d6bb65e0d0a7
Author: Richard Biener <rguenther@suse.de>
Date:   Thu Sep 5 10:46:58 2024 +0200

    tree-optimization/116609 - SLP live lane vectorization with partial vectors
    
    The following implements the simple case of single-lane SLP when
    using partial vectors which can use the VEC_EXTRACT_LAST code
    generation without changes.  I'll keep the PR open for further
    enhancements.
    
    This avoids FAILs of gcc.target/aarch64/sve/live_1.c when using
    single-lane SLP for non-grouped stores.
    
            PR tree-optimization/116609
            * tree-vect-loop.cc (vectorizable_live_operation_1): Support
            partial vectors for single-lane SLP.
Comment 2 Richard Biener 2024-09-06 07:18:18 UTC
It should now work for single-lane SLP when also using the SLP equivalent
of ncopies == 1.  Both is overly restrictive of course, so keeping open.