From 4f6c08802cf9fe473a30625202d8c78ae72b234d Mon Sep 17 00:00:00 2001 From: Luke Kenneth Casson Leighton Date: Sat, 29 Apr 2023 13:24:05 +0100 Subject: [PATCH] get ls016 preamble into shape after copying from ls015 --- openpower/sv/rfc/ls016.mdwn | 129 ++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 openpower/sv/rfc/ls016.mdwn diff --git a/openpower/sv/rfc/ls016.mdwn b/openpower/sv/rfc/ls016.mdwn new file mode 100644 index 000000000..83bf4814e --- /dev/null +++ b/openpower/sv/rfc/ls016.mdwn @@ -0,0 +1,129 @@ +# RFC ls015 DCT / FFT Twin Butterfly instructions + +**URLs**: + +* +* +* + +**Severity**: Major + +**Status**: New + +**Date**: 25 Apr 2023 + +**Target**: v3.2B + +**Source**: v3.1B + +**Books and Section affected**: + +``` + Book I Fixed-Point Instructions + Book I Floating-Point Instructions + Appendix E Power ISA sorted by opcode + Appendix F Power ISA sorted by version + Appendix G Power ISA sorted by Compliancy Subset + Appendix H Power ISA sorted by mnemonic +``` + +**Summary** + +``` + Instructions added: maddsubrs, fdmadds, ffmadds +``` + +**Submitter**: Luke Leighton (Libre-SOC) + +**Requester**: Libre-SOC + +**Impact on processor**: + +``` + Addition of new Twin-Butterfly instructions, 3-in 2-out +``` + +**Impact on software**: + +``` + Requires support for new instructions in assembler, debuggers, + and related tools. Greatly decreases instruction count in + Audio/Video, DSP, Scientific Computing extremely commonly used + algorithms (NTT, FFT, DFT, DCT) +``` + +**Keywords**: + +``` + CR Fields, predication, GPR +``` + +**Motivation** + +The list of uses for DCT is enormous - well over a hundred. + +The number of uses for FFT is also equally known to be extremely high + +ARM has already added `vqrdmulhq_s16/32` instructions as their inclusion +in any ISA replaces **eight** non-Twin-Butterfly instructions, which +are often loop-unrolled, resulting in L1 I-Cache stripmining. + +**Notes and Observations**: + +1. TODO + +**Changes** + +Add the following entries to: + +* the Appendices of Book I +* Book I 3.3.9.1 Fixed-Point Arithmetic DCT/FFT Twin-Butterfly Instructions +* Book I 4.6.6.3 Floating-Point DCT/FFT Twin-Butterfly Instructions +* Book I 1.6.1 and 1.6.2 + +---------- + +\newpage{} + +[[!inline pages="openpower/sv/twin_butterfly" raw=yes ]] + +---------- + +\newpage{} + +# Instruction Formats + +Add the following entries to Book I 1.6.1 Word Instruction Formats: + +## A-FORM + +``` + |0 |6 |11 |16 |21 |26 |31 | + | PO | RT | RA | RB | SH | XO |/ | +``` + +Add the following new fields to Book I 1.6.2 Word Instruction Fields: + +``` + SH (21:25) + Field used to specify a shift amount. + Formats: A +``` + +# Appendices + + Appendix E Power ISA sorted by opcode + Appendix F Power ISA sorted by version + Appendix G Power ISA sorted by Compliancy Subset + Appendix H Power ISA sorted by mnemonic + +| Form | Book | Page | Version | Mnemonic | Description | +|------|------|------|---------|----------|-------------| +| A | I | # | 3.2B | maddsubrs | Integer DCT/FFT Twin-Butterfly | +| X | I | # | 3.2B | fdmadds | FP DCT Twin-Butterfly | +| X | I | # | 3.2B | ffmadds | FP FFT Twin-Butterfly | + +[[!tag opf_rfc]] + +---------- + -- 2.30.2