Zvabd Draft Spec - #1
Conversation
| .... | ||
|
|
||
| Reserved Encodings:: | ||
| * `SEW` is 32 or 64. |
There was a problem hiding this comment.
I would define this with the reciprocal: "SEW is not 8 nor 16" (we never know which new SEW values may appear in the future)
There was a problem hiding this comment.
Minor nit: I would rephrase it as "neither 8 nor 16".
|
One question: why is there no vector-scalar / It seems the opcode are free, or at least riscv-opcodes does not complain when: Note that this would allow to define Andrew made an interesting suggestion: in all cases |
I fully agree with you, and the original proposal was also designed this way, but the feedback from ARC is completely the opposite. We must prove that .vx is widely used and has value, otherwise the encoding should be reserved. If .vx has only one usage, x0, then defining a vabs.v and placing it in the VXUNARY0 domain is a more encoding-space-efficient approach.
|
Update Zvabd extension implementation based on riscv/integer-vector-absolute-difference#1. Changes: - Rename widening instruction mnemonics `vwabdacc`/`vwabdaccu` to `vwabda`/`vwabdau`. - Add SEW validity checks to `vabd`/`vabdu` and `vwabda`/`vwabdau` to restrict operations to SEW=8 and SEW=16. - Move mnemonics and assembly mappings to follow the `execute` clause. - Remove enum with single variant. - Update ChangeLog.
Update Zvabd extension implementation based on riscv/integer-vector-absolute-difference#1. Changes: - Rename widening instruction mnemonics `vwabdacc`/`vwabdaccu` to `vwabda`/`vwabdau`. - Add SEW validity checks to `vabd`/`vabdu` and `vwabda`/`vwabdau` to restrict operations to SEW=8 and SEW=16. - Move mnemonics and assembly mappings to follow the `execute` clause. - Remove enum with single variant. - Update ChangeLog.
This patch adds support for the RISC-V Zvabd (Vector Absolute Difference) extension, based on Zvabd Draft Spec. riscv/integer-vector-absolute-difference#1 Zvabd is now in the 'Specification in Freeze' state. https://riscv.atlassian.net/browse/RVS-3896 It adds patterns for: - vabs - vabd/vabdu - vwabdacc/vwabdaccu Note: - The abd expand condition remains gated because PR119224 is still open. - check_GNU_style.sh false positive on riscv-ext.opt, gcc/ChangeLog: * config/riscv/autovec.md: Add auto-vectorization patterns for Zvabd instructions. * config/riscv/riscv-ext.def: Add Zvabd extension entry. * config/riscv/riscv-ext.opt: Add Zvabd option. * config/riscv/vector-iterators.md: Update for Zvabd. * config/riscv/vector.md: Add Zvabd patterns. * doc/riscv-ext.texi: Document zvabd extension. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/zvabd-1.c: New tests for Zvabd. Co-authored-by: Yuke Tang <tang.yuke@zte.com.cn> Signed-off-by: Zhongyao Chen <chen.zhongyao@zte.com.cn>
This patch adds support for the RISC-V Zvabd (Vector Absolute Difference) extension, based on the current draft specification: riscv/integer-vector-absolute-difference#1 Zvabd is now in the "Specification in Freeze" state: https://riscv.atlassian.net/browse/RVS-3896 It adds patterns for: - vabs - vabd/vabdu - vwabda/vwabdau gcc/ChangeLog: * config/riscv/autovec.md: Add auto-vectorization patterns for Zvabd instructions. * config/riscv/autovec-opt.md: Add widening absolute-difference accumulate combine patterns. * config/riscv/riscv-ext.def: Add Zvabd extension entry. * config/riscv/riscv-ext.opt: Add Zvabd option. * config/riscv/vector-iterators.md: Update for Zvabd. * config/riscv/vector.md: Add Zvabd patterns. * doc/riscv-ext.texi: Document zvabd extension. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/zvabd-1.c: New tests for Zvabd. Co-authored-by: Yuke Tang <tang.yuke@zte.com.cn> Signed-off-by: Zhongyao Chen <chen.zhongyao@zte.com.cn>
Changes from v2: - move widen_abd_plus combine to autovec-opt.md. - some naming update. - update conditions: TARGET_ZVABD implies TARGET_VECTOR. - remove redundant vialu attributes - PR119224 is resolved, so remove the abd condition block. BTW: If abs is a define_insn_and_split, pr117722.c still fails because combine can no longer fold abs(a - b) into the old form. So I keep it as an expand. This patch adds support for the RISC-V Zvabd (Vector Absolute Difference) extension, based on the current draft specification: riscv/integer-vector-absolute-difference#1 Zvabd is now in the "Specification in Freeze" state: https://riscv.atlassian.net/browse/RVS-3896 It adds patterns for: - vabs - vabd/vabdu - vwabdacc/vwabdaccu gcc/ChangeLog: * config/riscv/autovec.md: Add auto-vectorization patterns for Zvabd instructions. * config/riscv/autovec-opt.md: Add widening absolute-difference accumulate combine patterns. * config/riscv/riscv-ext.def: Add Zvabd extension entry. * config/riscv/riscv-ext.opt: Add Zvabd option. * config/riscv/vector-iterators.md: Update for Zvabd. * config/riscv/vector.md: Add Zvabd patterns. * doc/riscv-ext.texi: Document zvabd extension. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/zvabd-1.c: New tests for Zvabd. Co-authored-by: Yuke Tang <tang.yuke@zte.com.cn> Signed-off-by: Zhongyao Chen <chen.zhongyao@zte.com.cn>
ec85de7 to
c9e062a
Compare
aa1eba3 to
fbae3b4
Compare
|
|
Normative Rule Changes DetectedThis PR modifies normatively tagged text. Please review the changes below to ensure they are intentional. View Detected ChangesNormative Tag Change Reportriscv-spec SpecificationWhat happens next:
How to update reference files (if needed): make update-ref
git add ref/*.json
git commit -m "Update normative tag reference files"
This comment was automatically generated by the normative tag check workflow. |
|
|
This patch adds support for the RISC-V Zvabd (Vector Absolute Difference) extension, based on the current draft specification: riscv/integer-vector-absolute-difference#1 Zvabd is now in the "Specification in Freeze" state: https://riscv.atlassian.net/browse/RVS-3896 It adds patterns for: - vabs - vabd/vabdu - vwabda/vwabdau gcc/ChangeLog: * config/riscv/autovec.md: Add auto-vectorization patterns for Zvabd instructions. * config/riscv/autovec-opt.md: Add widening absolute-difference accumulate combine patterns. * config/riscv/riscv-ext.def: Add Zvabd extension entry. * config/riscv/riscv-ext.opt: Add Zvabd option. * config/riscv/vector-iterators.md: Update for Zvabd. * config/riscv/vector.md: Add Zvabd patterns. * doc/riscv-ext.texi: Document zvabd extension. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/zvabd-1.c: New tests for Zvabd. Co-authored-by: Yuke Tang <tang.yuke@zte.com.cn> Signed-off-by: Zhongyao Chen <chen.zhongyao@zte.com.cn>
This patch adds support for the RISC-V Zvabd (Vector Absolute Difference) extension, based on the current draft specification: riscv/integer-vector-absolute-difference#1 Zvabd is now in the "Specification in Freeze" state: https://riscv.atlassian.net/browse/RVS-3896 It adds patterns for: - vabs - vabd/vabdu - vwabda/vwabdau gcc/ChangeLog: * config/riscv/autovec.md: Add auto-vectorization patterns for Zvabd instructions. * config/riscv/autovec-opt.md: Add widening absolute-difference accumulate combine patterns. * config/riscv/riscv-ext.def: Add Zvabd extension entry. * config/riscv/riscv-ext.opt: Add Zvabd option. * config/riscv/vector-iterators.md: Update for Zvabd. * config/riscv/vector.md: Add Zvabd patterns. * doc/riscv-ext.texi: Document zvabd extension. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/zvabd-1.c: New tests for Zvabd. Co-authored-by: Yuke Tang <tang.yuke@zte.com.cn> Signed-off-by: Zhongyao Chen <chen.zhongyao@zte.com.cn>
This patch adds support for the RISC-V Zvabd (Vector Absolute Difference) extension, based on the current draft specification: riscv/integer-vector-absolute-difference#1 Zvabd is now in the "Specification in Freeze" state: https://riscv.atlassian.net/browse/RVS-3896 It adds patterns for: - vabs - vabd/vabdu - vwabda/vwabdau gcc/ChangeLog: * config/riscv/autovec.md: Add auto-vectorization patterns for Zvabd instructions. * config/riscv/autovec-opt.md: Add widening absolute-difference accumulate combine patterns. * config/riscv/riscv-ext.def: Add Zvabd extension entry. * config/riscv/riscv-ext.opt: Add Zvabd option. * config/riscv/vector-iterators.md: Update for Zvabd. * config/riscv/vector.md: Add Zvabd patterns. * doc/riscv-ext.texi: Document zvabd extension. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/zvabd-1.c: New tests for Zvabd. Co-authored-by: Yuke Tang <tang.yuke@zte.com.cn> Signed-off-by: Zhongyao Chen <chen.zhongyao@zte.com.cn>
This patch adds support for the RISC-V Zvabd (Vector Absolute Difference) extension, based on the current draft specification: riscv/integer-vector-absolute-difference#1 Zvabd is now in the "Specification in Freeze" state: https://riscv.atlassian.net/browse/RVS-3896 It adds patterns for: - vabs - vabd/vabdu - vwabda/vwabdau gcc/ChangeLog: * config/riscv/autovec.md: Add auto-vectorization patterns for Zvabd instructions. * config/riscv/autovec-opt.md: Add widening absolute-difference accumulate combine patterns. * config/riscv/riscv-ext.def: Add Zvabd extension entry. * config/riscv/riscv-ext.opt: Add Zvabd option. * config/riscv/vector-iterators.md: Update for Zvabd. * config/riscv/vector.md: Add Zvabd patterns. * doc/riscv-ext.texi: Document zvabd extension. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/zvabd-1.c: New tests for Zvabd. Co-authored-by: Yuke Tang <tang.yuke@zte.com.cn> Signed-off-by: Zhongyao Chen <chen.zhongyao@zte.com.cn>
|
|
|
Hi! I'm the It looks like you correctly set up a CI job that uses the autofix.ci GitHub Action, but the autofix.ci GitHub App has not been installed for this repository. This means that autofix.ci unfortunately does not have the permissions to fix this pull request. If you are the repository owner, please install the app and then restart the CI workflow! 😃 |
Include hstatus.HUPMM in the two-stage GPA masking and HFENCE.GVMA guidance. Specify in the supervisor chapter that senvcfg.PMM changes take effect immediately without SFENCE.VMA, avoiding TLB flushes on context switches. Signed-off-by: Abhinav Agarwal <abhinavagarwal1996@gmail.com>
…iscv#3271) Autofix regeneration of the normative tag reference commits back to the PR, so gate it behind the 'update-norm-rules' label: a maintainer applies the label when a PR that changes normative rules is ready, and autofix regenerates ref/ and pushes it before merge, instead of running on every PR update. Because that push lands as the autofix-ci[bot] account, and bots cannot sign off their commits, exempt bot-authored/-committed commits from the DCO check so the bot commit does not fail it. Point the check-normative-tags freshness error at the label so a maintainer knows how to trigger the regeneration. Signed-off-by: Bill Traynor <wmat@riscv.org> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: arvern-dev <arvernsilicon@gmail.com>
Signed-off-by: Tristan Ross <tristan.ross@midstall.com>
Signed-off-by: umershahidengr <umer.shahid@10xengineers.ai>
Add the integer vector absolute difference (Zvabd) extension as a subsection of the Vector Extensions chapter, including its normative rule definitions. - src/unpriv/zvabd.adoc: Zvabd chapter content - src/unpriv/zv.adoc: include Zvabd chapter - normative_rule_defs/zvabd.yaml: Zvabd normative rules Signed-off-by: qianjiayan <qianjiayan.1@bytedance.com>
2e2a7df to
8da5d19
Compare
|
|
It is the draft spec of Zvabd extension for integer vector absolute difference instructions.