Skip to content

Commit c91a948

Browse files
authored
Add doc for avx512 target features
1 parent bbe4b18 commit c91a948

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

src/attributes/codegen.md

+44
Original file line numberDiff line numberDiff line change
@@ -155,12 +155,32 @@ Feature | Implicitly Enables | Description
155155
`aes` | `sse2` | [AES] --- Advanced Encryption Standard
156156
`avx` | `sse4.2` | [AVX] --- Advanced Vector Extensions
157157
`avx2` | `avx` | [AVX2] --- Advanced Vector Extensions 2
158+
`avx512bf16` | `avx512bw` | [AVX512-BF16] --- Advanced Vector Extensions 512-bit - Bfloat16 Extensions
159+
`avx512bitalg` | `avx512bw` | [AVX512-BITALG] --- Advanced Vector Extensions 512-bit - Bit Algorithms
160+
`avx512bw` | `avx512f` | [AVX512-BW] --- Advanced Vector Extensions 512-bit - Byte and Word Instructions
161+
`avx512cd` | `avx512f` | [AVX512-CD] --- Advanced Vector Extensions 512-bit - Conflict Detection Instructions
162+
`avx512dq` | `avx512f` | [AVX512-DQ] --- Advanced Vector Extensions 512-bit - Doubleword and Quadword Instructions
163+
`avx512f` | `avx2` | [AVX512-F] --- Advanced Vector Extensions 512-bit - Foundation
164+
`avx512fp16` | `avx512bw`, `avx512dq` | [AVX512-FP16] --- Advanced Vector Extensions 512-bit - Float16 Extensions
165+
`avx512ifma` | `avx512f` | [AVX512-IFMA] --- Advanced Vector Extensions 512-bit - Integer Fused Multiply Add
166+
`avx512vbmi` | `avx512bw` | [AVX512-VBMI] --- Advanced Vector Extensions 512-bit - Vector Byte Manipulation Instructions
167+
`avx512vbmi2` | `avx512bw` | [AVX512-VBMI2] --- Advanced Vector Extensions 512-bit - Vector Byte Manipulation Instructions 2
168+
`avx512vl` | `avx512f` | [AVX512-VL] --- Advanced Vector Extensions 512-bit - Vector Length Extensions
169+
`avx512vnni` | `avx512f` | [AVX512-VNNI] --- Advanced Vector Extensions 512-bit - Vector Neural Network Instructions
170+
`avx512vp2intersect`| `avx512f` | [AVX512-VP2INTERSECT] --- Advanced Vector Extensions 512-bit - Vector Pair Intersection to a Pair of Mask Registers
171+
`avx512vpopcntdq` | `avx512f` | [AVX512-VPOPCNTDQ] --- Advanced Vector Extensions 512-bit - Vector Population Count Instruction
172+
`avxifma` | `avx2` | [AVX-IFMA] --- Advanced Vector Extensions - Integer Fused Multiply Add
173+
`avxneconvert` | `avx2` | [AVX-NE-CONVERT] --- Advanced Vector Extensions - No-Exception Floating-Point conversion Instructions
174+
`avxvnni` | `avx2` | [AVX-VNNI] --- Advanced Vector Extensions - Vector Neural Network Instructions
175+
`avxvnniint16` | `avx2` | [AVX-VNNI-INT16] --- Advanced Vector Extensions - Vector Neural Network Instructions with 16-bit Integers
176+
`avxvnniint8` | `avx2` | [AVX-VNNI-INT8] --- Advanced Vector Extensions - Vector Neural Network Instructions with 8-bit Integers
158177
`bmi1` | | [BMI1] --- Bit Manipulation Instruction Sets
159178
`bmi2` | | [BMI2] --- Bit Manipulation Instruction Sets 2
160179
`cmpxchg16b`| | [`cmpxchg16b`] --- Compares and exchange 16 bytes (128 bits) of data atomically
161180
`f16c` | `avx` | [F16C] --- 16-bit floating point conversion instructions
162181
`fma` | `avx` | [FMA3] --- Three-operand fused multiply-add
163182
`fxsr` | | [`fxsave`] and [`fxrstor`] --- Save and restore x87 FPU, MMX Technology, and SSE State
183+
`gfni` | `sse2` | [GFNI] --- Galois Field New Instructions
164184
`lzcnt` | | [`lzcnt`] --- Leading zeros count
165185
`movbe` | | [`movbe`] --- Move data after swapping bytes
166186
`pclmulqdq` | `sse2` | [`pclmulqdq`] --- Packed carry-less multiplication quadword
@@ -174,6 +194,8 @@ Feature | Implicitly Enables | Description
174194
`sse4.1` | `ssse3` | [SSE4.1] --- Streaming SIMD Extensions 4.1
175195
`sse4.2` | `sse4.1` | [SSE4.2] --- Streaming SIMD Extensions 4.2
176196
`ssse3` | `sse3` | [SSSE3] --- Supplemental Streaming SIMD Extensions 3
197+
`vaes` | `avx2`, `aes` | [VAES] --- Vector AES Instructions
198+
`vpclmulqdq`| `avx`, `pclmulqdq`| [VPCLMULQDQ] --- Vector Carry-less multiplication of Quadwords
177199
`xsave` | | [`xsave`] --- Save processor extended states
178200
`xsavec` | | [`xsavec`] --- Save processor extended states with compaction
179201
`xsaveopt` | | [`xsaveopt`] --- Save processor extended states optimized
@@ -185,13 +207,33 @@ Feature | Implicitly Enables | Description
185207
[AES]: https://en.wikipedia.org/wiki/AES_instruction_set
186208
[AVX]: https://en.wikipedia.org/wiki/Advanced_Vector_Extensions
187209
[AVX2]: https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#AVX2
210+
[AVX512-BF16]: https://en.wikipedia.org/wiki/AVX-512#BF16
211+
[AVX512-BITALG]: https://en.wikipedia.org/wiki/AVX-512#VPOPCNTDQ_and_BITALG
212+
[AVX512-BW]: https://en.wikipedia.org/wiki/AVX-512#BW,_DQ_and_VBMI
213+
[AVX512-CD]: https://en.wikipedia.org/wiki/AVX-512#Conflict_detection
214+
[AVX512-DQ]: https://en.wikipedia.org/wiki/AVX-512#BW,_DQ_and_VBMI
215+
[AVX512-F]: https://en.wikipedia.org/wiki/AVX-512
216+
[AVX512-FP16]: https://en.wikipedia.org/wiki/AVX-512#FP16
217+
[AVX512-IFMA]: https://en.wikipedia.org/wiki/AVX-512#IFMA
218+
[AVX512-VBMI]: https://en.wikipedia.org/wiki/AVX-512#BW,_DQ_and_VBMI
219+
[AVX512-VBMI2]: https://en.wikipedia.org/wiki/AVX-512#VBMI2
220+
[AVX512-VL]: https://en.wikipedia.org/wiki/AVX-512
221+
[AVX512-VNNI]: https://en.wikipedia.org/wiki/AVX-512#VNNI
222+
[AVX512-VP2INTERSECT]: https://en.wikipedia.org/wiki/AVX-512#VP2INTERSECT
223+
[AVX512-VPOPCNTDQ]:https://en.wikipedia.org/wiki/AVX-512#VPOPCNTDQ_and_BITALG
224+
[AVX-IFMA]: https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#AVX-VNNI,_AVX-IFMA
225+
[AVX-NE-CONVERT]: https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#AVX-VNNI,_AVX-IFMA
226+
[AVX-VNNI]: https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#AVX-VNNI,_AVX-IFMA
227+
[AVX-VNNI-INT16]: https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#AVX-VNNI,_AVX-IFMA
228+
[AVX-VNNI-INT8]: https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#AVX-VNNI,_AVX-IFMA
188229
[BMI1]: https://en.wikipedia.org/wiki/Bit_Manipulation_Instruction_Sets
189230
[BMI2]: https://en.wikipedia.org/wiki/Bit_Manipulation_Instruction_Sets#BMI2
190231
[`cmpxchg16b`]: https://www.felixcloutier.com/x86/cmpxchg8b:cmpxchg16b
191232
[F16C]: https://en.wikipedia.org/wiki/F16C
192233
[FMA3]: https://en.wikipedia.org/wiki/FMA_instruction_set
193234
[`fxsave`]: https://www.felixcloutier.com/x86/fxsave
194235
[`fxrstor`]: https://www.felixcloutier.com/x86/fxrstor
236+
[GFNI]: https://en.wikipedia.org/wiki/AVX-512#GFNI
195237
[`lzcnt`]: https://www.felixcloutier.com/x86/lzcnt
196238
[`movbe`]: https://www.felixcloutier.com/x86/movbe
197239
[`pclmulqdq`]: https://www.felixcloutier.com/x86/pclmulqdq
@@ -205,6 +247,8 @@ Feature | Implicitly Enables | Description
205247
[SSE4.1]: https://en.wikipedia.org/wiki/SSE4#SSE4.1
206248
[SSE4.2]: https://en.wikipedia.org/wiki/SSE4#SSE4.2
207249
[SSSE3]: https://en.wikipedia.org/wiki/SSSE3
250+
[VAES]: https://en.wikipedia.org/wiki/AVX-512#VAES
251+
[VPCLMULQDQ]: https://en.wikipedia.org/wiki/AVX-512#VPCLMULQDQ
208252
[`xsave`]: https://www.felixcloutier.com/x86/xsave
209253
[`xsavec`]: https://www.felixcloutier.com/x86/xsavec
210254
[`xsaveopt`]: https://www.felixcloutier.com/x86/xsaveopt

0 commit comments

Comments
 (0)