This is an archive of the discontinued LLVM Phabricator instance.

[2/6][Clang][RISCV] Replace unit-stride segment store with tuple type interfaces
ClosedPublic

Authored by eopXD on Jun 5 2023, 2:52 AM.

Details

Summary

Depends on D152134.

This is the 2nd commit of the patch-set.

This patch makes the unit-stride segment store intrinsics to use tuple
types.

Diff Detail

Event Timeline

eopXD created this revision.Jun 5 2023, 2:52 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 5 2023, 2:52 AM
eopXD requested review of this revision.Jun 5 2023, 2:52 AM
eopXD updated this revision to Diff 528354.Jun 5 2023, 2:59 AM

Bump CI.

eopXD updated this revision to Diff 528355.Jun 5 2023, 3:00 AM

Bump CI.

rogfer01 accepted this revision.Jun 14 2023, 11:40 PM

LGTM. Thanks @eopXD

This revision is now accepted and ready to land.Jun 14 2023, 11:40 PM

Just to confirm, though: seeing those COERCE, I assume the underlying calling convention (which unfortunately it not 100% transparent to clang at this point) is the same as passing in order the components of the tuple, right?

(Apologies if this was already discussed elsewhere)

Just to confirm, though: seeing those COERCE, I assume the underlying calling convention (which unfortunately it not 100% transparent to clang at this point) is the same as passing in order the components of the tuple, right?

(Apologies if this was already discussed elsewhere)

Yes. The calling convention lowers them in corresponding order.
https://github.com/llvm/llvm-project/blob/main/clang/lib/CodeGen/CGCall.cpp#L3139

clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/non-policy/overloaded/vsseg2e32.c