|
Is there any difference in effect of the two instructions i64.extend32_s and i64.extend_i32_s or are they just dublicates? I have look at the documentation document for both versions and 2 and as far I can see they do the exact same operation (page 63 and 73) version 1. |
Answered by
rossberg
Oct 24, 2023
Replies: 2 comments 1 reply
|
The former has type i64 → i64, the latter type i32 → i64. So they differ in how the operand is represented. That said, I agree that something seems to be amiss in the specification – i64.extend32_s should extend the lower half of its operand, but the current definition of iextend fails to filter out the other bits. I think it should be |
1 reply
Answer selected by
kam1986
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The former has type i64 → i64, the latter type i32 → i64. So they differ in how the operand is represented.
That said, I agree that something seems to be amiss in the specification – i64.extend32_s should extend the lower half of its operand, but the current definition of iextend fails to filter out the other bits. I think it should be