use proper register sizes
[openpower-isa.git] / openpower / isa / butterfly.mdwn
1 <!-- SVP64 Butterfly DCT Instructions here described are based on -->
2
3 <!-- PLEASE NOTE THESE ARE UNAPPROVED AND DRAFT, NOT SUBMITTED TO OPF ISA WG -->
4
5 # [DRAFT] Integer Butterfly Multiply Add/Sub FFT/DCT
6
7 A-Form
8
9 * maddsubrs RT,RA,RB,SH
10
11 Pseudo-code:
12
13 n <- XLEN-SH
14 sum <- (RT) + (RA)
15 diff <- (RT) - (RA)
16 prod1[0:(XLEN*2)-1] <- MULS(RB, sum)
17 prod2[0:(XLEN*2)-1] <- MULS(RB, diff)
18 res1 <- prod1[XLEN/2-SH:XLEN-1-SH]
19 res2 <- prod2[XLEN/2-SH:XLEN-1-SH]
20 RT <- (RT) + EXTS(res1)
21 RS <- (RS) + EXTS(res2)
22
23 Special Registers Altered:
24
25 None