LLVM: lib/Target/X86/X86InstrFMA3Info.cpp File Reference (original) (raw)
#include "[X86InstrFMA3Info.h](X86InstrFMA3Info%5F8h%5Fsource.html)"#include "[X86InstrInfo.h](X86InstrInfo%5F8h%5Fsource.html)"#include <atomic>#include <cassert>#include <cstdint>
Go to the source code of this file.
| Macros | |
|---|---|
| #define | FMA3GROUP(Name, Suf, Attrs) |
| #define | FMA3GROUP_MASKED(Name, Suf, Attrs) |
| #define | FMA3GROUP_MASKED_INT(Name, Suf, Attrs) |
| #define | FMA3GROUP_PACKED_WIDTHS_Z(Name, Suf, Attrs) |
| #define | FMA3GROUP_PACKED_WIDTHS_ALL(Name, Suf, Attrs) |
| #define | FMA3GROUP_PACKED_DHS(Name, Attrs) |
| #define | FMA3GROUP_PACKED_BF16(Name, Attrs) |
| #define | FMA3GROUP_SCALAR_WIDTHS_Z(Name, Suf, Attrs) |
| #define | FMA3GROUP_SCALAR_WIDTHS_ALL(Name, Suf, Attrs) |
| #define | FMA3GROUP_SCALAR(Name, Attrs) |
| #define | FMA3GROUP_FULL(Name, Attrs) |
| #define | FMA3GROUP_PACKED_AVX512_WIDTHS(Name, Type, Suf, Attrs) |
| #define | FMA3GROUP_PACKED_AVX512_ALL(Name, Suf, Attrs) |
| #define | FMA3GROUP_PACKED_AVX512_DHS(Name, Suf, Attrs) |
| #define | FMA3GROUP_PACKED_AVX512_ROUND(Name, Suf, Attrs) |
| #define | FMA3GROUP_SCALAR_AVX512_ROUND(Name, Suf, Attrs) |
| Functions | |
|---|---|
| static void | verifyTables () |
◆ FMA3GROUP
| #define FMA3GROUP | ( | Name, |
|---|---|---|
| Suf, | ||
| Attrs ) |
Value:
{ { X86::Name##132##Suf, X86::Name##213##Suf, X86::Name##231##Suf }, Attrs },
Definition at line 22 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_FULL
| #define FMA3GROUP_FULL | ( | Name, |
|---|---|---|
| Attrs ) |
Value:
FMA3GROUP_PACKED_BF16(Name, Attrs) \
FMA3GROUP_PACKED_DHS(Name, Attrs) \
FMA3GROUP_SCALAR(Name, Attrs)
#define FMA3GROUP_PACKED_BF16(Name, Attrs)
Definition at line 76 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_MASKED
| #define FMA3GROUP_MASKED | ( | Name, |
|---|---|---|
| Suf, | ||
| Attrs ) |
Value:
FMA3GROUP(Name, Suf, Attrs) \
#define FMA3GROUP(Name, Suf, Attrs)
@ KZeroMasked
This bit must be set in the 'Attributes' field of FMA group if such group of FMA opcodes consists of ...
@ KMergeMasked
This bit must be set in the 'Attributes' field of FMA group if such group of FMA opcodes consists of ...
Definition at line 25 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_MASKED_INT
| #define FMA3GROUP_MASKED_INT | ( | Name, |
|---|---|---|
| Suf, | ||
| Attrs ) |
◆ FMA3GROUP_PACKED_AVX512_ALL
| #define FMA3GROUP_PACKED_AVX512_ALL | ( | Name, |
|---|---|---|
| Suf, | ||
| Attrs ) |
Value:
FMA3GROUP_PACKED_AVX512_WIDTHS(Name, BF16, Suf, Attrs) \
FMA3GROUP_PACKED_AVX512_WIDTHS(Name, PD, Suf, Attrs) \
FMA3GROUP_PACKED_AVX512_WIDTHS(Name, PH, Suf, Attrs) \
FMA3GROUP_PACKED_AVX512_WIDTHS(Name, PS, Suf, Attrs)
#define FMA3GROUP_PACKED_AVX512_WIDTHS(Name, Type, Suf, Attrs)
Definition at line 95 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_PACKED_AVX512_DHS
| #define FMA3GROUP_PACKED_AVX512_DHS | ( | Name, |
|---|---|---|
| Suf, | ||
| Attrs ) |
Value:
FMA3GROUP_PACKED_AVX512_WIDTHS(Name, PD, Suf, Attrs) \
FMA3GROUP_PACKED_AVX512_WIDTHS(Name, PH, Suf, Attrs) \
FMA3GROUP_PACKED_AVX512_WIDTHS(Name, PS, Suf, Attrs)
Definition at line 101 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_PACKED_AVX512_ROUND
| #define FMA3GROUP_PACKED_AVX512_ROUND | ( | Name, |
|---|---|---|
| Suf, | ||
| Attrs ) |
Value:
FMA3GROUP_MASKED(Name, PDZ##Suf, Attrs) \
FMA3GROUP_MASKED(Name, PHZ##Suf, Attrs) \
FMA3GROUP_MASKED(Name, PSZ##Suf, Attrs)
#define FMA3GROUP_MASKED(Name, Suf, Attrs)
Definition at line 106 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_PACKED_AVX512_WIDTHS
| #define FMA3GROUP_PACKED_AVX512_WIDTHS | ( | Name, |
|---|---|---|
| Type, | ||
| Suf, | ||
| Attrs ) |
Value:
FMA3GROUP_MASKED(Name, Type##Z128##Suf, Attrs) \
FMA3GROUP_MASKED(Name, Type##Z256##Suf, Attrs) \
FMA3GROUP_MASKED(Name, Type##Z##Suf, Attrs)
The instances of the Type class are immutable: once they are created, they are never changed.
Definition at line 90 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_PACKED_BF16
| #define FMA3GROUP_PACKED_BF16 | ( | Name, |
|---|---|---|
| Attrs ) |
Value:
FMA3GROUP_PACKED_WIDTHS_Z(Name, BF16, Attrs)
#define FMA3GROUP_PACKED_WIDTHS_Z(Name, Suf, Attrs)
Definition at line 55 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_PACKED_DHS
| #define FMA3GROUP_PACKED_DHS | ( | Name, |
|---|---|---|
| Attrs ) |
Value:
FMA3GROUP_PACKED_WIDTHS_ALL(Name, PD, Attrs) \
FMA3GROUP_PACKED_WIDTHS_Z(Name, PH, Attrs) \
FMA3GROUP_PACKED_WIDTHS_ALL(Name, PS, Attrs)
#define FMA3GROUP_PACKED_WIDTHS_ALL(Name, Suf, Attrs)
Definition at line 50 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_PACKED_WIDTHS_ALL
| #define FMA3GROUP_PACKED_WIDTHS_ALL | ( | Name, |
|---|---|---|
| Suf, | ||
| Attrs ) |
Value:
FMA3GROUP(Name, Suf##Ym, Attrs) \
FMA3GROUP(Name, Suf##Yr, Attrs) \
FMA3GROUP_PACKED_WIDTHS_Z(Name, Suf, Attrs) \
FMA3GROUP(Name, Suf##m, Attrs) \
FMA3GROUP(Name, Suf##r, Attrs)
Definition at line 43 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_PACKED_WIDTHS_Z
| #define FMA3GROUP_PACKED_WIDTHS_Z | ( | Name, |
|---|---|---|
| Suf, | ||
| Attrs ) |
Value:
FMA3GROUP_MASKED(Name, Suf##Z128m, Attrs) \
FMA3GROUP_MASKED(Name, Suf##Z128r, Attrs) \
FMA3GROUP_MASKED(Name, Suf##Z256m, Attrs) \
FMA3GROUP_MASKED(Name, Suf##Z256r, Attrs) \
FMA3GROUP_MASKED(Name, Suf##Zm, Attrs) \
FMA3GROUP_MASKED(Name, Suf##Zr, Attrs) \
Definition at line 35 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_SCALAR
| #define FMA3GROUP_SCALAR | ( | Name, |
|---|---|---|
| Attrs ) |
Value:
FMA3GROUP_SCALAR_WIDTHS_ALL(Name, SD, Attrs) \
FMA3GROUP_SCALAR_WIDTHS_Z(Name, SH, Attrs) \
FMA3GROUP_SCALAR_WIDTHS_ALL(Name, SS, Attrs)
#define FMA3GROUP_SCALAR_WIDTHS_ALL(Name, Suf, Attrs)
Definition at line 71 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_SCALAR_AVX512_ROUND
| #define FMA3GROUP_SCALAR_AVX512_ROUND | ( | Name, |
|---|---|---|
| Suf, | ||
| Attrs ) |
Value:
FMA3GROUP(Name, SDZ##Suf, Attrs) \
FMA3GROUP_MASKED_INT(Name, SDZ##Suf, Attrs) \
FMA3GROUP(Name, SHZ##Suf, Attrs) \
FMA3GROUP_MASKED_INT(Name, SHZ##Suf, Attrs) \
FMA3GROUP(Name, SSZ##Suf, Attrs) \
FMA3GROUP_MASKED_INT(Name, SSZ##Suf, Attrs)
Definition at line 111 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_SCALAR_WIDTHS_ALL
| #define FMA3GROUP_SCALAR_WIDTHS_ALL | ( | Name, |
|---|---|---|
| Suf, | ||
| Attrs ) |
Value:
FMA3GROUP_SCALAR_WIDTHS_Z(Name, Suf, Attrs) \
FMA3GROUP(Name, Suf##m, Attrs) \
FMA3GROUP(Name, Suf##r, Attrs) \
#define FMA3GROUP_SCALAR_WIDTHS_Z(Name, Suf, Attrs)
@ Intrinsic
This bit must be set in the 'Attributes' field of FMA group if such group of FMA opcodes consists of ...
Definition at line 64 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_SCALAR_WIDTHS_Z
| #define FMA3GROUP_SCALAR_WIDTHS_Z | ( | Name, |
|---|---|---|
| Suf, | ||
| Attrs ) |
Value:
FMA3GROUP(Name, Suf##Zm, Attrs) \
FMA3GROUP(Name, Suf##Zr, Attrs) \
Definition at line 58 of file X86InstrFMA3Info.cpp.
◆ verifyTables()
| void verifyTables ( ) | static |
|---|