llvm / llvm/llvm-project

[LoopVectorize] Support nested predicates and guarded stores for check-first vectorization

Open
#215,472 0 comments 0 reactions 0 assignees View on GitHub
vectorizers
Dominant language
LLVM
Stars
40.5k
Forks
18.7k
PR merge metrics
PR metrics pending

Description

Extend check-first vectorization to support nested exit predicates and guarded memory operations.

High level objectives:

1. Recognize supported diamond-shaped control flow.
2. Convert diamond guards into exit conditions.
3. Build and attach guards to predicated stores.
4. Handle loads used by guarded exit conditions.
5. Add scalar-replay tests for guarded and nested exits.

Depends on [#215471](https://github.com/llvm/llvm-project/issues/215471)

Contributor guide

Open the contributing guide

Research direction

Start with check-first vectorization and the dependency in issue #215471. Trace how diamond-shaped control flow, nested exit predicates, guarded stores, and loads in exit conditions are handled, then add the scalar-replay tests mentioned for guarded and nested exits. Done means all five listed objectives are supported and covered by those tests.

Written by the indexing model from the issue text.

Assessment

Domain
compilers
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.