from openpower.consts import SVP64CROffs
from copy import deepcopy
from openpower.decoder.helpers import fp64toselectable
-from openpower.decoder.isafunctions.double2single import DOUBLE2SINGLE
from functools import reduce
import operator
self.assertEqual(sim.gpr(i), SelectableInt(expected[i], 64))
def test_sv_remap1(self):
- """>>> lst = ["svremap 2, 2, 3, 0",
- "sv.fmadds 0.v, 8.v, 16.v, 0.v"
+ """>>> lst = ["svshape 2, 2, 3, 0, 0",
+ "svremap 31, 1, 2, 3, 0, 0, 0",
+ "sv.fmadds *0, *8, *16, *0"
]
REMAP fmadds FRT, FRA, FRC, FRB
"""
- lst = SVP64Asm(["svremap 2, 2, 3, 0",
- "sv.fmadds 0.v, 16.v, 32.v, 0.v"
+ lst = SVP64Asm(["svshape 2, 2, 3, 0, 0",
+ "svremap 31, 1, 2, 3, 0, 0, 0",
+ "sv.fmadds *0, *16, *32, *0"
])
lst = list(lst)
#print ("FFT", i, "in", a, b, "coeff", c, "mul",
# mul, "res", t, u)
- # SVSTATE (in this case, VL=12, to cover all of matrix)
- svstate = SVP64State()
- svstate.vl[0:7] = 12 # VL
- svstate.maxvl[0:7] = 12 # MAXVL
- print ("SVSTATE", bin(svstate.spr.asint()))
-
with Program(lst, bigendian=False) as program:
- sim = self.run_tst_program(program, svstate=svstate,
- initial_fprs=fprs)
+ sim = self.run_tst_program(program, initial_fprs=fprs)
print ("spr svshape0", sim.spr['SVSHAPE0'])
print (" xdimsz", sim.spr['SVSHAPE0'].xdimsz)
print (" ydimsz", sim.spr['SVSHAPE0'].ydimsz)
# self.assertEqual(sim.fpr(i+6), u)
def test_sv_remap2(self):
- """>>> lst = ["svremap 5, 4, 3, 0",
- "sv.fmadds 0.v, 8.v, 16.v, 0.v"
+ """>>> lst = ["svshape 5, 4, 3, 0, 0",
+ "svremap 31, 1, 2, 3, 0, 0, 0",
+ "sv.fmadds *0, *8, *16, *0"
]
REMAP fmadds FRT, FRA, FRC, FRB
"""
- lst = SVP64Asm(["svremap 4, 3, 3, 0",
- "sv.fmadds 0.v, 16.v, 32.v, 0.v"
+ lst = SVP64Asm(["svshape 4, 3, 3, 0, 0",
+ "svremap 31, 1, 2, 3, 0, 0, 0",
+ "sv.fmadds *0, *16, *32, *0"
])
lst = list(lst)
xdim2 = len(Y[0])
ydim2 = len(Y)
- VL = ydim2 * xdim2 * ydim1
print ("xdim2 ydim1 ydim2", xdim2, ydim1, ydim2)
xf = reduce(operator.add, X)
#print ("FFT", i, "in", a, b, "coeff", c, "mul",
# mul, "res", t, u)
- # SVSTATE (in this case, VL=12, to cover all of matrix)
- svstate = SVP64State()
- svstate.vl[0:7] = VL # VL
- svstate.maxvl[0:7] = VL # MAXVL
- print ("SVSTATE", bin(svstate.spr.asint()))
-
with Program(lst, bigendian=False) as program:
- sim = self.run_tst_program(program, svstate=svstate,
- initial_fprs=fprs)
+ sim = self.run_tst_program(program, initial_fprs=fprs)
print ("spr svshape0", sim.spr['SVSHAPE0'])
print (" xdimsz", sim.spr['SVSHAPE0'].xdimsz)
print (" ydimsz", sim.spr['SVSHAPE0'].ydimsz)