# [DRAFT] Integer Butterfly Multiply Add/Sub FFT/DCT A-Form * maddsubrs RT,RA,SH,RB Pseudo-code: n <- SH sum <- (RT) + (RA) diff <- (RT) - (RA) prod1 <- MULS(RB, sum)[XLEN:(XLEN*2)-1] prod2 <- MULS(RB, diff)[XLEN:(XLEN*2)-1] res1 <- ROTL64(prod1, XLEN-n) res2 <- ROTL64(prod2, XLEN-n) m <- MASK(n, (XLEN-1)) signbit1 <- res1[0] signbit2 <- res2[0] smask1 <- ([signbit1]*XLEN) & ¬m smask2 <- ([signbit2]*XLEN) & ¬m s64_1 <- [0]*(XLEN-1) || signbit1 s64_2 <- [0]*(XLEN-1) || signbit2 RT <- (res1 & m | smask1) + s64_1 RS <- (res2 & m | smask2) + s64_2 Special Registers Altered: None