-
Notifications
You must be signed in to change notification settings - Fork 570
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
i#2626 fp/simd encode: Add support for vector and scalar FMUL. #2896
Conversation
This uses the encoding scheme introduced in #2811. Everything expect the tests are auto-generated now. Change-Id: I0cb18af8aabf121417404e83d262745e1bbd0a8f
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.
Just suggestions on the docs.
core/arch/aarch64/instr_create.h
Outdated
@@ -47,18 +47,33 @@ | |||
*/ | |||
#define FSZ_HALF 1 | |||
|
|||
/** | |||
* Operand indication half-precision floating point vector elements. |
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.
s/indication/indicating/
Maybe also:
s/elements./elements for the other operands of the containing instruction./
core/arch/aarch64/instr_create.h
Outdated
/** | ||
* Used in an additional immediate source operand to a vector operation, denotes | ||
* single-precision floating point vector elements. See \ref sec_IR_AArch64. | ||
*/ | ||
#define FSZ_SINGLE 2 | ||
|
||
/** | ||
* Operand indication single-precision floating point vector elements. |
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.
Ditto
core/arch/aarch64/instr_create.h
Outdated
/** | ||
* Used in an additional immediate source operand to a vector operation, denotes | ||
* double-precision floating point vector elements. See \ref sec_IR_AArch64. | ||
*/ | ||
#define FSZ_DOUBLE 3 | ||
|
||
/** | ||
* Operand indication double-precision floating point vector elements. |
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.
Ditto
core/arch/aarch64/instr_create.h
Outdated
* \param Rd output register | ||
* \param Rm input register | ||
* \param Rn input register | ||
* \param width vector element width as immediate |
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.
nit: All 4 of these are nicer as complete sentences: "The output register.", etc.
Maybe for the width you could reference OPND_CREATE_DOUBLE() + the other 2 (just trying to imagine what would make it easy for users).
Change-Id: Ice1681292607aa9cc267a187bfe1d5b96719e54f
Done, thanks @derekbruening ! |
This patch adds encoding & decoding support for most arithmetic FP Neon instructions. The structure of the generated macros and tests follows the style of #2896. codec.txt contains comments if not all encodings of an instruction are supported yet. Also missing are the Arm v8.3-a FCADD and FCMLA instructions, because their rotation arguments require a bit of special handling to get nice macros. Issue #2626 Change-Id: I8c3a8ac3e03d9b466c1872ed5382639b746092b2
) This patch adds encoding & decoding support for most arithmetic FP Neon instructions. The structure of the generated macros and tests follows the style of #2896. codec.txt contains comments if not all encodings of an instruction are supported yet. Also missing are the Arm v8.3-a FCADD and FCMLA instructions, because their rotation arguments require a bit of special handling to get nice macros. Issue #2626
This uses the encoding scheme introduced in #2811. It also adds INSTR_CREATE_ macros and related tests.
Everything expect the tests are auto-generated now.
Issue: #2626
Change-Id: I0cb18af8aabf121417404e83d262745e1bbd0a8f