Public
Edited
Feb 2
Insert cell
Insert cell
Insert cell
vectorInstructions = insts.filter(someVal('definedBy', 'V')) // filter vector instructions
Insert cell
mVectorInstructions = vectorInstructions.map(({name}) => {
const tr = traits.flatMap(({ch, m}) => {
const m1 = name.match(m);
return m1 ? [ch] : [];
})
return {name, traits: tr.join(', ')};
})
Insert cell
console.log(mVectorInstructions)
Insert cell
traits = [
{ch: '32.7', m: /^v([ls]\w)$/, desc: 'Vector Loads and Stores'},
{ch: '32.7.4', m: /^v[ls](e(8|16|32|64)|m).v$/, desc: 'Vector Unit-Stride Instructions'},
{ch: '32.7.5', m: /^v[ls]se(8|16|32|64).v$/, desc: 'Vector Strided Instructions'},
{ch: '32.7.6', m: /^v[ls][uo]xei(8|16|32|64).v$/, desc: 'Vector Indexed Instructions'},
{ch: '32.10.1', m: /^v(add).v[vixf]$/, desc: 'Vector Arithmetic Instruction encoding'},
{ch: '32.10.2', m: /^vw\w+.v\w$/, desc: 'Widening Vector Arithmetic Instructions'},
{ch: '32.10.3', m: /^vn\w+.\w+$/, desc: 'Narrowing Vector Arithmetic Instructions'},
{ch: '32.12', m: /^v[as](add|sub|mul)u?.v[vix]$/, desc: 'Vector Fixed-Point Arithmetic Instructions'},
{ch: '32.12.1', m: /^vs(add|sub)u?.v[vix]$/, desc: 'Vector Single-Width Saturating Add and Subtract'},
{ch: '32.12.2', m: /^va(add|sub)u?.v[vix]$/, desc: 'Vector Single-Width Averaging Add and Subtract'},
{ch: '32.12.3', m: /^vsmul.v[vx]$/, desc: 'Vector Single-Width Fractional Multiply with Rounding and Saturation'},
{ch: '32.12.4', m: /^vssr[la].v[vix]$/, desc: 'Vector Single-Width Scaling Shift Instructions'},
{ch: '32.12.5', m: /^vnclip(u?).w[vix]$/, desc: 'Vector Narrowing Fixed-Point Clip Instructions'},
{ch: '32.13', m: /^vf\w+.(v[vf]|w[vf])$/, desc: 'Vector Floating-Point Instructions'},
{ch: '32.13.2', m: /^vf(add|sub|rsub).v[vf]$/, desc: 'Vector Single-Width Floating-Point Add/Subtract Instructions'},
{ch: '32.13.3', m: /^vfw(add|sub).(v[vf]|w[vf])$/, desc: 'Vector Widening Floating-Point Add/Subtract Instructions'},
{ch: '32.13.4', m: /^vf(mul|div|rdiv).v[vf]$/, desc: 'Vector Single-Width Floating-Point Multiply/Divide Instructions'},
{ch: '32.13.5', m: /^vfwmul.v/, desc: 'Vector Widening Floating-Point Multiply'},
// /^(?<vec>v)((((?<wiop>w(add|sub|redsum|mul|mul))|(?<iop>(zext|sext|add|sub|rsub|and|or|xor|mul|div)))(?<uiop>(su|u))?)|(?<fop>f(add|sub|and|div)))(?<ops>[.](vv|vx|vi|vf|vs|wv|wx))/
]
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell

One platform to build and deploy the best data apps

Experiment and prototype by building visualizations in live JavaScript notebooks. Collaborate with your team and decide which concepts to build out.
Use Observable Framework to build data apps locally. Use data loaders to build in any language or library, including Python, SQL, and R.
Seamlessly deploy to Observable. Test before you ship, use automatic deploy-on-commit, and ensure your projects are always up-to-date.
Learn more