# for FRA and FRT
SVSHAPE1[28:29] <- 0b01 # j+halfstep schedule
# set schedule up for DCT COS table generation
- if (SVRM = 0b0011) then
+ if (SVRM = 0b0101) then
# calculate O(N log2 N)
vlen[0:6] <- [0] * 7
itercount[0:6] <- (0b00 || SVxd) + 0b0000001
from openpower.decoder.isa.remap_fft_yield import iterate_butterfly_indices
from openpower.decoder.isa.remap_dct_yield import (
iterate_dct_inner_butterfly_indices,
+ iterate_dct_inner_costable_indices,
iterate_dct_outer_butterfly_indices)
from openpower.sv.svp64 import SVP64SHAPE
import os
# further sub-selection
if self.ydimsz == 1:
iterate_fn = iterate_butterfly_indices
- elif self.ydimsz == 2:
+ elif self.ydimsz in [2, 4]:
iterate_fn = iterate_dct_inner_butterfly_indices
elif self.ydimsz == 3:
iterate_fn = iterate_dct_outer_butterfly_indices
+ elif self.ydimsz == 3:
+ iterate_fn = iterate_dct_inner_costable_indices
# create a **NEW** iterator each time this is called
return iterate_fn(deepcopy(self))