#include "X86InstrFMA3Info.h"
#include "X86InstrInfo.h"
#include <atomic>
#include <cassert>
#include <cstdint>
Go to the source code of this file.
|
#define | FMA3GROUP(Name, Suf, Attrs) { { X86::Name##132##Suf, X86::Name##213##Suf, X86::Name##231##Suf }, Attrs }, |
|
#define | FMA3GROUP_MASKED(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) FMA3GROUP_PACKED_WIDTHS_Z(Name, NEPBF16, 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) |
|
◆ FMA3GROUP
◆ FMA3GROUP_FULL
#define FMA3GROUP_FULL |
( |
|
Name, |
|
|
|
Attrs |
|
) |
| |
Value:
FMA3GROUP_PACKED_DHS(
Name, Attrs) \
FMA3GROUP_SCALAR(
Name, Attrs)
#define FMA3GROUP_PACKED_BF16(Name, Attrs)
Definition at line 71 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_MASKED
#define FMA3GROUP_MASKED |
( |
|
Name, |
|
|
|
Suf, |
|
|
|
Attrs |
|
) |
| |
Value:
#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_PACKED_AVX512_ALL
#define FMA3GROUP_PACKED_AVX512_ALL |
( |
|
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)
#define FMA3GROUP_PACKED_AVX512_WIDTHS(Name, Type, Suf, Attrs)
Definition at line 90 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_PACKED_AVX512_DHS
#define FMA3GROUP_PACKED_AVX512_DHS |
( |
|
Name, |
|
|
|
Suf, |
|
|
|
Attrs |
|
) |
| |
Value:
FMA3GROUP_PACKED_AVX512_WIDTHS(
Name, PH, Suf, Attrs) \
FMA3GROUP_PACKED_AVX512_WIDTHS(
Name, PS, Suf, Attrs)
Definition at line 96 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, PHZ256##Suf, Attrs) \
FMA3GROUP_MASKED(
Name, PHZ##Suf, Attrs) \
FMA3GROUP_MASKED(
Name, PSZ256##Suf, Attrs) \
FMA3GROUP_MASKED(
Name, PSZ##Suf, Attrs)
#define FMA3GROUP_MASKED(Name, Suf, Attrs)
Definition at line 101 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_PACKED_AVX512_WIDTHS
#define FMA3GROUP_PACKED_AVX512_WIDTHS |
( |
|
Name, |
|
|
|
Type, |
|
|
|
Suf, |
|
|
|
Attrs |
|
) |
| |
Value:
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 85 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_PACKED_BF16
◆ FMA3GROUP_PACKED_DHS
#define FMA3GROUP_PACKED_DHS |
( |
|
Name, |
|
|
|
Attrs |
|
) |
| |
Value:
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 45 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_PACKED_WIDTHS_ALL
#define FMA3GROUP_PACKED_WIDTHS_ALL |
( |
|
Name, |
|
|
|
Suf, |
|
|
|
Attrs |
|
) |
| |
Value:
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 38 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_PACKED_WIDTHS_Z
#define FMA3GROUP_PACKED_WIDTHS_Z |
( |
|
Name, |
|
|
|
Suf, |
|
|
|
Attrs |
|
) |
| |
Value:
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 30 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_SCALAR
#define FMA3GROUP_SCALAR |
( |
|
Name, |
|
|
|
Attrs |
|
) |
| |
Value:
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 66 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_SCALAR_AVX512_ROUND
#define FMA3GROUP_SCALAR_AVX512_ROUND |
( |
|
Name, |
|
|
|
Suf, |
|
|
|
Attrs |
|
) |
| |
Value:
FMA3GROUP_MASKED(
Name, SDZ##Suf##_Int, Attrs) \
FMA3GROUP(
Name, SHZ##Suf, Attrs) \
FMA3GROUP_MASKED(
Name, SHZ##Suf##_Int, Attrs) \
FMA3GROUP(
Name, SSZ##Suf, Attrs) \
FMA3GROUP_MASKED(
Name, SSZ##Suf##_Int, Attrs)
Definition at line 109 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_SCALAR_WIDTHS_ALL
#define FMA3GROUP_SCALAR_WIDTHS_ALL |
( |
|
Name, |
|
|
|
Suf, |
|
|
|
Attrs |
|
) |
| |
Value:
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 59 of file X86InstrFMA3Info.cpp.
◆ FMA3GROUP_SCALAR_WIDTHS_Z
#define FMA3GROUP_SCALAR_WIDTHS_Z |
( |
|
Name, |
|
|
|
Suf, |
|
|
|
Attrs |
|
) |
| |
◆ verifyTables()
static void verifyTables |
( |
| ) |
|
|
static |
◆ BroadcastGroups
◆ Groups
◆ RoundGroups