Skip to content

Support strided store with predicate in SVE2#9085

Open
stevesuzuki-arm wants to merge 3 commits intohalide:mainfrom
stevesuzuki-arm:pr-pred_strided_store
Open

Support strided store with predicate in SVE2#9085
stevesuzuki-arm wants to merge 3 commits intohalide:mainfrom
stevesuzuki-arm:pr-pred_strided_store

Conversation

@stevesuzuki-arm
Copy link
Copy Markdown
Contributor

Strided store with predicated tail strategy is supported by computing
the predicate in SVE2 intrinsic.

Checklist

  • Tests added or updated (not required for docs, CI config, or typo fixes)
  • Documentation updated (if public API changed)
  • Python bindings updated (if public API changed)
  • Benchmarks are included here if the change is intended to affect performance.
  • Commits include AI attribution where applicable (see Code of Conduct)

Handle the tail of a vector by using predicate while
taking predicated store into account
Expr vpred_predicated_store;
const Shuffle *shuffle = rhs.as<Shuffle>();
if (shuffle && shuffle->is_interleave() && shuffle->vectors.size() == static_cast<size_t>(num_vecs)) {
vpred_predicated_store = shuffle->vectors[0];
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This only looks at shuffle->vectors[0], and the below takes a slice starting at zero. Doesn't this assume that the predicate is the same for each of the interleaved vectors? I think that would need to be checked.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, I've added the checking in the new commit. I'm not sure if using can_prove() is the best way though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants