X-Form
-* fcvtfg FRT,RB,IT (Rc=0)
-* fcvtfg. FRT,RB,IT (Rc=1)
+* ctfpr FRT,RB,IT (Rc=0)
+* ctfpr. FRT,RB,IT (Rc=1)
Pseudo-code:
X-Form
-* fcvtfgs FRT,RB,IT (Rc=0)
-* fcvtfgs. FRT,RB,IT (Rc=1)
+* ctfprs FRT,RB,IT (Rc=0)
+* ctfprs. FRT,RB,IT (Rc=1)
Pseudo-code:
XO-Form
-* fcvttg RT,FRB,CVM,IT (OE=0 Rc=0)
-* fcvttg. RT,FRB,CVM,IT (OE=0 Rc=1)
-* fcvttgo RT,FRB,CVM,IT (OE=1 Rc=0)
-* fcvttgo. RT,FRB,CVM,IT (OE=1 Rc=1)
+* cffpr RT,FRB,CVM,IT (OE=0 Rc=0)
+* cffpr. RT,FRB,CVM,IT (OE=0 Rc=1)
+* cffpro RT,FRB,CVM,IT (OE=1 Rc=0)
+* cffpro. RT,FRB,CVM,IT (OE=1 Rc=1)
Pseudo-code:
X-Form
-* fmvtg RT,FRB (Rc=0)
-* fmvtg. RT,FRB (Rc=1)
+* mffpr RT,FRB (Rc=0)
+* mffpr. RT,FRB (Rc=1)
Pseudo-code:
X-Form
-* fmvtgs RT,FRB (Rc=0)
-* fmvtgs. RT,FRB (Rc=1)
+* mffprs RT,FRB (Rc=0)
+* mffprs. RT,FRB (Rc=1)
Pseudo-code:
X-Form
-* fmvfg FRT,RB
+* mtfpr FRT,RB
Pseudo-code:
X-Form
-* fmvfgs FRT,RB
+* mtfprs FRT,RB
Pseudo-code:
# binary-floating-point helper functions
-`bfp_*` and related functions as needed by fcvt* from PowerISA v3.1B Book I
+`bfp_*` and related functions as needed by c[ft]fpr* from PowerISA v3.1B Book I
section 7.6.2.2
def reset_xflags():
popcntw,NORMAL,,2P,EXTRA3,EN,d:RA,s:RS,0,0,RS,0,0,RA,0,0,0
mtspr,NORMAL,,2P,EXTRA3,EN,d:SPR,s:RS,0,0,RS,0,0,SPR,0,0,0
popcntd,NORMAL,,2P,EXTRA3,EN,d:RA,s:RS,0,0,RS,0,0,RA,0,0,0
-fmvfgs,NORMAL,,2P,EXTRA3,EN,d:FRT,s:RB,0,0,0,RB,0,FRT,0,0,0
-fmvfg,NORMAL,,2P,EXTRA3,EN,d:FRT,s:RB,0,0,0,RB,0,FRT,0,0,0
+mtfprs,NORMAL,,2P,EXTRA3,EN,d:FRT,s:RB,0,0,0,RB,0,FRT,0,0,0
+mtfpr,NORMAL,,2P,EXTRA3,EN,d:FRT,s:RB,0,0,0,RB,0,FRT,0,0,0
addic,NORMAL,,2P,EXTRA3,EN,d:RT,s:RA,0,0,RA,0,0,RT,0,0,0
addi,NORMAL,,2P,EXTRA3,EN,d:RT,s:RA,0,0,RA_OR_ZERO,0,0,RT,0,0,0
addis,NORMAL,,2P,EXTRA3,EN,d:RT,s:RA,0,0,RA_OR_ZERO,0,0,RT,0,0,0
fatanhs,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
fexp2m1s,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
flog2p1s,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
-fcvtfgs,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:RB,0,0,0,RB,0,FRT,0,CR1,0
+ctfprs,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:RB,0,0,0,RB,0,FRT,0,CR1,0
fexpm1s,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
flogp1s,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
fexp10m1s,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
fcfids,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
fexp2s,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
flog2s,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
-fmvtgs,NORMAL,,2P,EXTRA3,EN,d:RT;d:CR0,s:FRB,0,0,0,FRB,0,RT,0,CR0,0
+mffprs,NORMAL,,2P,EXTRA3,EN,d:RT;d:CR0,s:FRB,0,0,0,FRB,0,RT,0,CR0,0
fexps,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
flogs,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
fexp10s,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
4/14=fctiwu,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
4/15=fctiwuz,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
8/8=fabs,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
-fcvttg,NORMAL,,2P,EXTRA3,EN,d:RT;d:CR0,s:FRB,0,0,0,FRB,0,RT,0,CR0,0
+cffpr,NORMAL,,2P,EXTRA3,EN,d:RT;d:CR0,s:FRB,0,0,0,FRB,0,RT,0,CR0,0
12/8=frin,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
13/8=friz,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
14/8=frip,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
fatanh,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
fexp2m1,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
flog2p1,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
-fcvttgo,NORMAL,,2P,EXTRA3,EN,d:RT;d:CR0,s:FRB,0,0,0,FRB,0,RT,0,CR0,0
-fcvtfg,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:RB,0,0,0,RB,0,FRT,0,CR1,0
+cffpro,NORMAL,,2P,EXTRA3,EN,d:RT;d:CR0,s:FRB,0,0,0,FRB,0,RT,0,CR0,0
+ctfpr,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:RB,0,0,0,RB,0,FRT,0,CR1,0
fexpm1,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
flogp1,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
25/14=fctid,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
26/14=fcfid,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
fexp2,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
flog2,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
-fmvtg,NORMAL,,2P,EXTRA3,EN,d:RT;d:CR0,s:FRB,0,0,0,FRB,0,RT,0,CR0,0
+mffpr,NORMAL,,2P,EXTRA3,EN,d:RT;d:CR0,s:FRB,0,0,0,FRB,0,RT,0,CR0,0
fexp,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
flog,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
29/14=fctidu,NORMAL,,2P,EXTRA3,EN,d:FRT;d:CR1,s:FRB,0,0,0,FRB,0,FRT,0,CR1,0
# 1111101111,FPU,OP_FPOP,FRA,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC_ONLY,0,0,fmaxmagcs,X,,1,unofficial until submitted and approved/renumbered by the opf isa wg
1101001111,FPU,OP_FPOP,FRA,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC_ONLY,0,0,fmods,X,,1,unofficial until submitted and approved/renumbered by the opf isa wg
1111001111,FPU,OP_FPOP,FRA,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC_ONLY,0,0,fremainders,X,,1,unofficial until submitted and approved/renumbered by the opf isa wg
-1110001110,FPU,OP_FPOP,NONE,FRB,NONE,RT,NONE,CR0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC_ONLY,0,0,fmvtgs,X,,1,unofficial until submitted and approved/renumbered by the opf isa wg
-1100001111,FPU,OP_FPOP,NONE,RB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC_ONLY,0,0,fcvtfgs,X,,1,unofficial until submitted and approved/renumbered by the opf isa wg
-1110001111,FPU,OP_FPOP,NONE,RB,NONE,FRT,NONE,NONE,0,0,ZERO,0,NONE,0,0,0,0,0,0,NONE,0,0,fmvfgs,X,,1,unofficial until submitted and approved/renumbered by the opf isa wg
+1110001110,FPU,OP_FPOP,NONE,FRB,NONE,RT,NONE,CR0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC_ONLY,0,0,mffprs,X,,1,unofficial until submitted and approved/renumbered by the opf isa wg
+1100001111,FPU,OP_FPOP,NONE,RB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC_ONLY,0,0,ctfprs,X,,1,unofficial until submitted and approved/renumbered by the opf isa wg
+1110001111,FPU,OP_FPOP,NONE,RB,NONE,FRT,NONE,NONE,0,0,ZERO,0,NONE,0,0,0,0,0,0,NONE,0,0,mtfprs,X,,1,unofficial until submitted and approved/renumbered by the opf isa wg
# 1111101111,FPU,OP_FPOP,FRA,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC_ONLY,0,0,fmaxmagc,X,,1,unofficial until submitted and approved/renumbered by the opf isa wg
1101001111,FPU,OP_FPOP,FRA,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC_ONLY,0,0,fmod,X,,1,unofficial until submitted and approved/renumbered by the opf isa wg
1111001111,FPU,OP_FPOP,FRA,FRB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,1,0,RC_ONLY,0,0,fremainder,X,,1,unofficial until submitted and approved/renumbered by the opf isa wg
-0100001110,FPU,OP_FPOP,NONE,FRB,NONE,RT,NONE,CR0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fcvttg,XO,,1,unofficial until submitted and approved/renumbered by the opf isa wg
-1100001110,FPU,OP_FPOP,NONE,FRB,NONE,RT,NONE,CR0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,fcvttgo,XO,,1,unofficial until submitted and approved/renumbered by the opf isa wg
-1110001110,FPU,OP_FPOP,NONE,FRB,NONE,RT,NONE,CR0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC_ONLY,0,0,fmvtg,X,,1,unofficial until submitted and approved/renumbered by the opf isa wg
-1100001111,FPU,OP_FPOP,NONE,RB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC_ONLY,0,0,fcvtfg,X,,1,unofficial until submitted and approved/renumbered by the opf isa wg
-1110001111,FPU,OP_FPOP,NONE,RB,NONE,FRT,NONE,NONE,0,0,ZERO,0,NONE,0,0,0,0,0,0,NONE,0,0,fmvfg,X,,1,unofficial until submitted and approved/renumbered by the opf isa wg
+0100001110,FPU,OP_FPOP,NONE,FRB,NONE,RT,NONE,CR0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,cffpr,XO,,1,unofficial until submitted and approved/renumbered by the opf isa wg
+1100001110,FPU,OP_FPOP,NONE,FRB,NONE,RT,NONE,CR0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC,0,0,cffpro,XO,,1,unofficial until submitted and approved/renumbered by the opf isa wg
+1110001110,FPU,OP_FPOP,NONE,FRB,NONE,RT,NONE,CR0,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC_ONLY,0,0,mffpr,X,,1,unofficial until submitted and approved/renumbered by the opf isa wg
+1100001111,FPU,OP_FPOP,NONE,RB,NONE,FRT,NONE,CR1,0,0,ZERO,0,NONE,0,0,0,0,0,0,RC_ONLY,0,0,ctfpr,X,,1,unofficial until submitted and approved/renumbered by the opf isa wg
+1110001111,FPU,OP_FPOP,NONE,RB,NONE,FRT,NONE,NONE,0,0,ZERO,0,NONE,0,0,0,0,0,0,NONE,0,0,mtfpr,X,,1,unofficial until submitted and approved/renumbered by the opf isa wg
'fmvis', 'fishmv', 'pcdec', "maddedu", "divmod2du",
"dsld", "dsrd", "maddedus",
"sadd", "saddw", "sadduw",
- "fcvttg", "fcvttgo",
- "fmvtg", "fmvtgs",
- "fcvtfg", "fcvtfgs",
- "fmvfg", "fmvfgs",
+ "cffpr", "cffpro",
+ "mffpr", "mffprs",
+ "ctfpr", "ctfprs",
+ "mtfpr", "mtfprs",
"maddsubrs", "maddrs"
]:
illegal = False
-""" fmv/fcvt tests
+""" [mc][ft]fpr* tests
"""
import unittest
"fmr", "fabs", "fnabs", "fneg", "fcpsgn", # FP move/abs/neg
"fmvis", # FP load immediate
"fishmv", # Float Replace Lower-Half Single, Immediate
- "fcvttg", "fcvttgo",
- "fmvtg", "fmvtgs",
- "fcvtfg", "fcvtfgs",
- "fmvfg", "fmvfgs",
+ "cffpr", "cffpro",
+ "mffpr", "mffprs",
+ "ctfpr", "ctfprs",
+ "mtfpr", "mtfprs",
'grev', 'grev.', 'grevi', 'grevi.',
'grevw', 'grevw.', 'grevwi', 'grevwi.',
"hrfid", "icbi", "icbt", "isel", "isync",
with self.subTest(inp=inp.hex(), inp_bits=hex(inp_bits),
test_title=test_title,
signed=signed, _32bit=_32bit, CVM=CVM, RN=RN, VE=VE):
- lst = [f"fcvttgo. 3,0,{CVM},{IT}"]
+ lst = [f"cffpro. 3,0,{CVM},{IT}"]
gprs = [0] * 32
fprs = [0] * 32
fprs[0] = inp_bits
@staticmethod
@functools.lru_cache(maxsize=None)
- def _fcvtfg_fpscr(RN, set_XX, FR, FPRF, fpscr_unmodified):
- """ cached FPSCR computation for fcvtfg_one since that part is slow """
+ def _ctfpr_fpscr(RN, set_XX, FR, FPRF, fpscr_unmodified):
+ """ cached FPSCR computation for ctfpr_one since that part is slow """
initial_fpscr = FPSCRState()
initial_fpscr.RN = RN
fpscr = FPSCRState(initial_fpscr)
fpscr = FPSCRState(initial_fpscr)
return initial_fpscr, fpscr
- def fcvtfg_one(self, inp, bfp32, IT, Rc, RN):
+ def ctfpr_one(self, inp, bfp32, IT, Rc, RN):
+ if (dict(inp=hex(inp), bfp32=bfp32, IT=IT, Rc=Rc, RN=RN) !=
+ {'inp': '0x80001000', 'bfp32': True, 'IT': 3, 'Rc': True, 'RN': 0}):
+ return # FIXME: just for debugging
inp %= 2 ** 64
inp_width = 64 if IT & 0b10 else 32
inp_value = inp % 2 ** inp_width
# defined to not modify FPSCR since the conversion is always exact
fpscr_unmodified = inp_width == 32 and not bfp32
- initial_fpscr, fpscr = self._fcvtfg_fpscr(
+ initial_fpscr, fpscr = self._ctfpr_fpscr(
RN=RN, set_XX=set_XX, FR=FR, FPRF=FPRF,
fpscr_unmodified=fpscr_unmodified)
if Rc:
):
s = "s" if bfp32 else ""
rc_str = "." if Rc else ""
- lst = [f"fcvtfg{s}{rc_str} 0,3,{IT}"]
+ lst = [f"ctfpr{s}{rc_str} 0,3,{IT}"]
gprs = [0] * 32
fprs = [0] * 32
gprs[3] = inp
_cached_program(*lst), gprs, fpregs=fprs, expected=e,
initial_fpscr=int(initial_fpscr))
- def fcvtfg(self, inp):
+ def ctfpr(self, inp):
for bfp32 in (False, True):
for IT in range(4):
for Rc in (False, True):
for RN in range(4):
- self.fcvtfg_one(inp, bfp32, IT, Rc, RN)
+ self.ctfpr_one(inp, bfp32, IT, Rc, RN)
- def case_fcvtfg(self):
+ def case_ctfpr(self):
inp_values = {0}
for sh in (0, 22, 23, 24, 31, 52, 53, 54, 63):
for offset in range(-2, 3):
v %= 2 ** 64
inp_values.add(v)
for i in sorted(inp_values):
- self.fcvtfg(i)
+ self.ctfpr(i)
def fmv(self, gpr_bits, bfp32, Rc):
if bfp32:
bfp32=bfp32, Rc=Rc):
s = "s" if bfp32 else ""
rc_str = "." if Rc else ""
- tg_p = _cached_program(f"fmvtg{s}{rc_str} 3, 0")
- # fmvfg[s]. doesn't exist since Rc=1 is basically useless due to
+ tg_p = _cached_program(f"mffpr{s}{rc_str} 3, 0")
+ # mtfpr[s]. doesn't exist since Rc=1 is basically useless due to
# fmv* not changing any FPSCR bits
- fg_p = _cached_program(f"fmvfg{s} 0, 3")
+ fg_p = _cached_program(f"mtfpr{s} 0, 3")
tg_gprs = [0] * 32
fg_gprs = [0] * 32
tg_fprs = [0] * 32
class SVP64FMvFCvtCases(TestAccumulatorBase):
- def case_sv_fmvfg(self):
- lst = list(SVP64Asm(["sv.fmvfg *3, *3"]))
+ def case_sv_mtfpr(self):
+ lst = list(SVP64Asm(["sv.mtfpr *3, *3"]))
gprs = [0] * 32
fprs = [0] * 32
svstate = SVP64State()
self.add_case(Program(lst, False), gprs, fpregs=fprs,
initial_svstate=svstate, expected=e)
- def case_sv_fmvtg(self):
- lst = list(SVP64Asm(["sv.fmvtg *3, *3"]))
+ def case_sv_mffpr(self):
+ lst = list(SVP64Asm(["sv.mffpr *3, *3"]))
gprs = [0] * 32
fprs = [0] * 32
svstate = SVP64State()
self.add_case(Program(lst, False), gprs, fpregs=fprs,
initial_svstate=svstate, expected=e)
- def case_sv_fmvfgs(self):
- lst = list(SVP64Asm(["sv.fmvfgs *3, *3"]))
+ def case_sv_mtfprs(self):
+ lst = list(SVP64Asm(["sv.mtfprs *3, *3"]))
gprs = [0] * 32
fprs = [0] * 32
svstate = SVP64State()
self.add_case(Program(lst, False), gprs, fpregs=fprs,
initial_svstate=svstate, expected=e)
- def case_sv_fmvtgs(self):
- lst = list(SVP64Asm(["sv.fmvtgs *3, *3"]))
+ def case_sv_mffprs(self):
+ lst = list(SVP64Asm(["sv.mffprs *3, *3"]))
gprs = [0] * 32
fprs = [0] * 32
svstate = SVP64State()
self.add_case(Program(lst, False), gprs, fpregs=fprs,
initial_svstate=svstate, expected=e)
- def case_sv_fcvtfg(self):
- lst = list(SVP64Asm(["sv.fcvtfg *3, *3, 0"]))
+ def case_sv_ctfpr(self):
+ lst = list(SVP64Asm(["sv.ctfpr *3, *3, 0"]))
gprs = [0] * 32
fprs = [0] * 32
svstate = SVP64State()
self.add_case(Program(lst, False), gprs, fpregs=fprs,
initial_svstate=svstate, expected=e)
- def case_sv_fcvttg_js(self):
- lst = list(SVP64Asm(["sv.fcvttg *3, *3, 5, 0"]))
+ def case_sv_cffpr_js(self):
+ lst = list(SVP64Asm(["sv.cffpr *3, *3, 5, 0"]))
gprs = [0] * 32
fprs = [0] * 32
svstate = SVP64State()
self.add_case(Program(lst, False), gprs, fpregs=fprs,
initial_svstate=svstate, expected=e)
- def case_sv_fcvttg_sat(self):
- lst = list(SVP64Asm(["sv.fcvttg *3, *3, 3, 0"]))
+ def case_sv_cffpr_sat(self):
+ lst = list(SVP64Asm(["sv.cffpr *3, *3, 3, 0"]))
gprs = [0] * 32
fprs = [0] * 32
svstate = SVP64State()
self.add_case(Program(lst, False), gprs, fpregs=fprs,
initial_svstate=svstate, expected=e)
- def case_sv_fcvtfgs(self):
- lst = list(SVP64Asm(["sv.fcvtfgs *3, *3, 0"]))
+ def case_sv_ctfprs(self):
+ lst = list(SVP64Asm(["sv.ctfprs *3, *3, 0"]))
gprs = [0] * 32
fprs = [0] * 32
svstate = SVP64State()