--- /dev/null
+# RFC ls015 DCT / FFT Twin Butterfly instructions
+
+**URLs**:
+
+* <https://libre-soc.org/openpower/sv/rfc/ls016/>
+* <https://git.openpower.foundation/isa/PowerISA/issues/TODO>
+* <https://bugs.libre-soc.org/show_bug.cgi?id=1076>
+
+**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.
+<https://en.wikipedia.org/wiki/Discrete_cosine_transform#General_applications>
+The number of uses for FFT is also equally known to be extremely high
+<https://en.wikipedia.org/wiki/Fast_Fourier_transform#Applications>
+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]]
+
+----------
+