Skip to content

[RISCV] Implementation tracking for zvqdotq #141826

Open
@preames

Description

@preames

This issue exists purely to track pending items for zvqdotq implementation for RISCV. It's primary purpose is serving as a reminder for me as I suspect I'm going to need to context switch away shortly.

Current status: Most of the basic cases should work for both SLP and LV. LV can't currently generated vqdotsu.vv/vx, SLP can. LV lowering goes through generic DAG, SLP is RISCV custom.

Codegen

  • Support vqdotsu via new SDAG node
  • Restructure reduce rooted code to use the generic nodes

Loop Vectorizer Support

SLP Vectorizer

  • Identify any work on partial.reduce (optional given llvm.reduce rooted SDAG)

Cleanup/Rework

  • Consider migrating the reduce rooted version to VectorCombine, with a secondary goal to support add reduce trees for the partial.reduce variants as well.
  • Plumb costkind through the TTI hook
  • AArch64 has a variant of the vec_reduce combine - consider how to share

v8i8 -> v1i64 partial.reduce

  • Codegen via vqdot + vwadd.wv
  • Update TTI for i64 accum types - depends on reg weight fix to be useful

Metadata

Metadata

Assignees

Labels

backend:RISC-VmetaissueIssue to collect references to a group of similar or related issues.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions