[clang] [llvm] [Clang][RISCV][P-ext] Add Packed Widening Multiply Accumulate intrinsics (PR #226505)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 25 07:25:33 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-ir
Author: Q (StarryCSF)
<details>
<summary>Changes</summary>
Add intrinsics, Clang builtins and SelectionDAG support for the packed widening multiply-accumulate operations.
See https://github.com/riscv/riscv-p-spec/blob/master/P-ext-intrinsics.adoc#packed-widening-multiply-accumulate.
On RV32, the pwmacc.h family accumulates into the register pair holding rd.
On RV64, the operations are lowered according to the spec decomposition table, using zip16p and the pmacc.w.h01/pmaccu.w.h01 forms, or pwcvtu.wh followed by pmaccsu.w.h00 for the signed-unsigned form.
---
Full diff: https://github.com/llvm/llvm-project/pull/226505.diff
10 Files Affected:
- (modified) clang/include/clang/Basic/BuiltinsRISCV.td (+5)
- (modified) clang/lib/CodeGen/TargetBuiltins/RISCV.cpp (+21)
- (modified) clang/lib/Headers/riscv_packed_simd.h (+5)
- (modified) clang/test/CodeGen/RISCV/rvp-intrinsics.c (+73)
- (modified) cross-project-tests/intrinsic-header-tests/riscv_packed_simd.c (+25)
- (modified) llvm/include/llvm/IR/IntrinsicsRISCV.td (+13)
- (modified) llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp (+12)
- (modified) llvm/lib/Target/RISCV/RISCVISelLowering.cpp (+58)
- (modified) llvm/lib/Target/RISCV/RISCVInstrInfoP.td (+18)
- (modified) llvm/test/CodeGen/RISCV/rvp-simd-64.ll (+49)
``````````diff
The server is unavailable at this time. Please wait a few minutes before you try again.
``````````
</details>
https://github.com/llvm/llvm-project/pull/226505
More information about the llvm-commits
mailing list