-
Notifications
You must be signed in to change notification settings - Fork 17.9k
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
cmd/asm: add VTST instruction on arm64 #59713
Comments
cc @golang/arm @golang/compiler |
This doesn't need to be a proposal. Feel free to just send a CL adding the instruction. Thanks. |
If I could, then I would @cherrymui. I would do the entire RISC set and get it over with actually. |
I'm refactoring the arm64 assembler, which is expected to support the vast majority of missing instructions. By the way, VTST is an Armv7 instruction, not an Arm64 instruction, I want to confirm with you that it is the instruction you want? Armv8 has a similar instruction CMTST, are you looking for it? |
I was wondering why none of the opcodes from the "Alphabetical list of A64 Advanced SIMD and floating-point instructions" of the "Arm Architecture Reference Manual for A-profile architecture" match For the zig-zag usecase, I need arithmetic shifts Also happy to to help with the refactoring. Could start with some basic comments. Refer to the correct manual and such. 🤭 Make |
Glad to hear this. CMTST has been supported already, it's called VCMTST in go, here are two use cases:
I'll close this issue, feel free to reopen it if there's any further comment, thanks. |
Any luck with the refactoring yet @erifan? |
@pascaldekloe The refactoring work is still in progress, and I'm sorry that the instructions you want are still not supported yet. If you are eager to use them, I suggest you temporarily use "DWORD <32-bit instruction binary>" to work around, because now it is the release cycle, we can't merge such changes into the master branch. The refactoring changes are here https://go-review.googlesource.com/c/go/+/424137 |
I'm not here to put any pressure on you Eric. Better get this right than fast. B.t.w., Go's |
“Vector Test Bits takes each element in a vector, and bitwise ANDs it with the corresponding element of a second vector. If the result is not zero, the corresponding element in the destination vector is set to all ones. Otherwise, it is set to all zeros.”
https://developer.arm.com/documentation/ddi0406/c/Application-Level-Architecture/Instruction-Details/Alphabetical-list-of-instructions/VTST
The instruction would enable parallel zig-zag encoding, as NEON has no arithmetic shift.
The text was updated successfully, but these errors were encountered: