pysvp64db: fix traversal
[openpower-isa.git] / openpower / isa / maddsubrs.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 Round Shift for FFT/DCT
6
7 A-Form
8
9 * maddsubrs RT,RA,RB,SH
10
11 Pseudo-code:
12
13 n <- SH
14 sum <- (RT[0] || RT) + (RA[0] || RA)
15 diff <- (RT[0] || RT) - (RA[0] || RA)
16 prod1 <- MULS(RB, sum)
17 prod2 <- MULS(RB, diff)
18 if n = 0 then
19 prod1_lo <- prod1[XLEN+1:(XLEN*2)]
20 prod2_lo <- prod2[XLEN+1:(XLEN*2)]
21 RT <- prod1_lo
22 RS <- prod2_lo
23 else
24 round <- [0]*(XLEN*2 + 1)
25 round[XLEN*2 - n + 1] <- 1
26 prod1 <- prod1 + round
27 prod2 <- prod2 + round
28 res1 <- prod1[XLEN - n + 1:XLEN*2 - n]
29 res2 <- prod2[XLEN - n + 1:XLEN*2 - n]
30 RT <- res1
31 RS <- res2
32
33 Special Registers Altered:
34
35 None