-<!-- This defines Load instructions described in SVP64 -->
+<!-- This defines SVP64 bit-reversed Load instructions -->
+<!-- They are augmented variants of v3.0B Load instructions -->
+<!-- and are designed specifically for Cooley-Tukey FFT/DCT -->
# Load Byte and Zero
Pseudo-code:
b <- (RA|0)
- EA <- b + (bitrev(srcstep, VL) * EXTS(D)) << RC
+ n <- (RC)[58:63]
+ EA <- b + SHL64(bitrev(srcstep, VL) * EXTS(D), n)
RT <- [0]*56 || MEM(EA, 1)
Special Registers Altered:
Pseudo-code:
- EA <- (RA) + (bitrev(srcstep, VL) * EXTS(D)) << RC
+ n <- (RC)[58:63]
+ EA <- (RA) + SHL64(bitrev(srcstep, VL) * EXTS(D), n)
RT <- [0] * 56 || MEM(EA, 1)
RA <- EA
Pseudo-code:
b <- (RA|0)
- EA <- b + (bitrev(srcstep, VL) * EXTS(D)) << RC
+ n <- (RC)[58:63]
+ EA <- b + SHL64(bitrev(srcstep, VL) * EXTS(D), n)
RT <- [0] * 48 || MEM(EA, 2)
Special Registers Altered:
Pseudo-code:
- EA <- (RA) + (bitrev(srcstep, VL) * EXTS(D)) << RC
+ n <- (RC)[58:63]
+ EA <- (RA) + SHL64(bitrev(srcstep, VL) * EXTS(D), n)
RT <- [0] * 48 || MEM(EA, 2)
RA <- EA
Pseudo-code:
b <- (RA|0)
- EA <- b + (bitrev(srcstep, VL) * EXTS(D)) << RC
+ n <- (RC)[58:63]
+ EA <- b + SHL64(bitrev(srcstep, VL) * EXTS(D), n)
RT <- EXTS(MEM(EA, 2))
Special Registers Altered:
Pseudo-code:
- EA <- (RA) + (bitrev(srcstep, VL) * EXTS(D)) << RC
+ n <- (RC)[58:63]
+ EA <- (RA) + SHL64(bitrev(srcstep, VL) * EXTS(D), n)
RT <- EXTS(MEM(EA, 2))
RA <- EA
Pseudo-code:
b <- (RA|0)
- EA <- b + (bitrev(srcstep, VL) * EXTS(D)) << RC
+ n <- (RC)[58:63]
+ EA <- b + SHL64(bitrev(srcstep, VL) * EXTS(D), n)
RT <- [0] * 32 || MEM(EA, 4)
Special Registers Altered:
Pseudo-code:
- EA <- (RA) + (bitrev(srcstep, VL) * EXTS(D)) << RC
+ n <- (RC)[58:63]
+ EA <- (RA) + SHL64(bitrev(srcstep, VL) * EXTS(D), n)
RT <- [0]*32 || MEM(EA, 4)
RA <- EA
Pseudo-code:
b <- (RA|0)
- EA <- b + (bitrev(srcstep, VL) * EXTS(DS || 0b00)) << RC
+ n <- (RC)[58:63]
+ EA <- b + SHL64(bitrev(srcstep, VL) * EXTS(DS || 0b00), n)
RT <- EXTS(MEM(EA, 4))
Special Registers Altered:
Pseudo-code:
b <- (RA|0)
- EA <- b + (bitrev(srcstep, VL) * EXTS(DS || 0b00)) << RC
+ n <- (RC)[58:63]
+ EA <- b + SHL64(bitrev(srcstep, VL) * EXTS(DS || 0b00), n)
RT <- MEM(EA, 8)
Special Registers Altered:
Pseudo-code:
- EA <- (RA) + (bitrev(srcstep, VL) * EXTS(DS || 0b00)) << RC
+ n <- (RC)[58:63]
+ EA <- (RA) + SHL64(bitrev(srcstep, VL) * EXTS(DS || 0b00), n)
RT <- MEM(EA, 8)
RA <- EA