Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Define binary encoding #34

Closed
penzn opened this issue Apr 30, 2021 · 3 comments
Closed

Define binary encoding #34

penzn opened this issue Apr 30, 2021 · 3 comments

Comments

@penzn
Copy link
Contributor

penzn commented Apr 30, 2021

The gist is just defining types and opcodes. However we have multiple vector types (thanks to both sizes and types of lanes) and this makes every operation consist of multiple operations working on a specific types.

I don't know if we can define a single opcode taking various types (and returning matching), or we can define a hierarchy of types with the more generic operations accepting "higher types".

@penzn
Copy link
Contributor Author

penzn commented Jun 4, 2021

This is basically a revisit of #6. What I've ran into is that because we have to have different instructions for different input types, even if the operations are technically the same, we end up with a bit of opcode bloat. First tier is already getting close to taking up a whole byte for opcodes. From what I can tell we can't really have the same instruction taking multiple different types.

The options are to use just lane sizes in types, which would only cut out two types, or ditch multiple value types altogether and be more like the SIMD spec.

@penzn
Copy link
Contributor Author

penzn commented Jun 14, 2021

In the discussion in #36 we decided that having more opcodes is not necessarily a bad thing, I will try to keep the current design. There are parts of it that I am not exactly happy about, but there are benefits to FP vs int distinction.

@penzn
Copy link
Contributor Author

penzn commented Sep 28, 2021

#39 introduced the encoding

@penzn penzn closed this as completed Sep 28, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant