-
Notifications
You must be signed in to change notification settings - Fork 747
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
Implement prototype v128.load{32,64}_zero instructions #3011
Conversation
Specified in WebAssembly/simd#237. Since these are just prototypes necessary for benchmarking, this PR does not add support for these instructions to the fuzzer or the C or JS APIs. This PR also renumbers the QFMA instructions that previously used the opcodes for these new instructions. The renumbering matches the renumbering in V8 and LLVM.
test/simd.wast.fromBinary
Outdated
@@ -896,8 +896,10 @@ | |||
) | |||
) | |||
(func $f32x4.qfma (param $0 v128) (param $1 v128) (param $2 v128) (result v128) | |||
(f32x4.qfma | |||
(drop |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this correct change?
V128Load32Zero = 0xfc, | ||
V128Load64Zero = 0xfd, | ||
|
||
F32x4QFMA = 0xb4, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
0xb4
already used for I32x4DotSVecI16x8
:
https://github.com/WebAssembly/binaryen/blob/master/src/wasm-binary.h#L836
Is it correct?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No extra questions from me aside from those already asked by others.
Yes, this is the correct renumbering, although the opcode collision is unintentional. I will shift the dot instruction opcode to use the number used by V8 as well. See https://github.com/WebAssembly/tool-conventions/blob/master/Linking.md#target-features-section for the numbering I am following. |
Specified in WebAssembly/simd#237. Since these
are just prototypes necessary for benchmarking, this PR does not add
support for these instructions to the fuzzer or the C or JS APIs. This
PR also renumbers the QFMA instructions that previously used the
opcodes for these new instructions. The renumbering matches the
renumbering in V8 and LLVM.