[Libre-soc-dev] single and twin-predication added to python-based LibreSOC simulator
Luke Kenneth Casson Leighton
lkcl at lkcl.net
Wed Mar 17 22:36:06 GMT 2021
https://git.libre-soc.org/?p=soc.git;a=blob;f=src/soc/decoder/isa/test_caller_svp64_predication.py;h=cd4df1e929d4c6250139e61840339ed19e2e7b02;hb=HEAD#l45
to be followed up in HDL over the next couple of weeks, the above
successful unit test illustrates how twin-predication works.
single-predication is just below, and includes both an INT (GPR) mask
as well as a CR-Field mask unit test.
"normal" Vector ISAs only have single-predication. every element in
source and dest of the vector matches up:
for i in range(VL):
if mask & (1<<i):
Vector_Operation_Proceeds()
SVP64 for operations that have only one source and one destination are
permitted *two* masks: one for the source element, one for the
destination (including LD/ST after EA is computed). this is
effectively a back-to-back VREDUCE-VEXPAND except it takes place on
*operations* not just MVs. fsqrt, extsw, popcnt - everything and
anything that's a single-src, single-dest.
l.
---
crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68
More information about the Libre-soc-dev
mailing list