LLVM  7.0.0svn
Macros | Functions | Variables
X86InstrFMA3Info.cpp File Reference
#include "X86InstrFMA3Info.h"
#include "X86InstrInfo.h"
#include "llvm/Support/ManagedStatic.h"
#include "llvm/Support/Threading.h"
#include <cassert>
#include <cstdint>
Include dependency graph for X86InstrFMA3Info.cpp:

Go to the source code of this file.

Macros

#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(Name, Suf, Attrs)
 
#define FMA3GROUP_PACKED(Name, Attrs)
 
#define FMA3GROUP_SCALAR_WIDTHS(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(Name, Suf, Attrs)
 
#define FMA3GROUP_PACKED_AVX512_ROUND(Name, Suf, Attrs)
 
#define FMA3GROUP_SCALAR_AVX512_ROUND(Name, Suf, Attrs)
 

Functions

static void verifyTables ()
 

Variables

static const X86InstrFMA3Group Groups []
 
static const X86InstrFMA3Group BroadcastGroups []
 
static const X86InstrFMA3Group RoundGroups []
 

Macro Definition Documentation

◆ FMA3GROUP

#define FMA3GROUP (   Name,
  Suf,
  Attrs 
)    { { X86::Name##132##Suf, X86::Name##213##Suf, X86::Name##231##Suf }, Attrs },

Definition at line 24 of file X86InstrFMA3Info.cpp.

◆ FMA3GROUP_FULL

#define FMA3GROUP_FULL (   Name,
  Attrs 
)
Value:
FMA3GROUP_SCALAR(Name, Attrs)
#define FMA3GROUP_PACKED(Name, Attrs)
constexpr char Attrs[]
Key for Kernel::Metadata::mAttrs.

Definition at line 62 of file X86InstrFMA3Info.cpp.

◆ FMA3GROUP_MASKED

#define FMA3GROUP_MASKED (   Name,
  Suf,
  Attrs 
)
Value:
FMA3GROUP(Name, Suf##k, Attrs | X86InstrFMA3Group::KMergeMasked) \
FMA3GROUP(Name, Suf##kz, Attrs | X86InstrFMA3Group::KZeroMasked)
constexpr char Attrs[]
Key for Kernel::Metadata::mAttrs.
#define FMA3GROUP(Name, Suf, Attrs)

Definition at line 27 of file X86InstrFMA3Info.cpp.

◆ FMA3GROUP_PACKED

#define FMA3GROUP_PACKED (   Name,
  Attrs 
)
Value:
FMA3GROUP_PACKED_WIDTHS(Name, PS, Attrs)
#define FMA3GROUP_PACKED_WIDTHS(Name, Suf, Attrs)
constexpr char Attrs[]
Key for Kernel::Metadata::mAttrs.

Definition at line 44 of file X86InstrFMA3Info.cpp.

◆ FMA3GROUP_PACKED_AVX512

#define FMA3GROUP_PACKED_AVX512 (   Name,
  Suf,
  Attrs 
)
Value:
FMA3GROUP_PACKED_AVX512_WIDTHS(Name, PS, Suf, Attrs)
constexpr char Attrs[]
Key for Kernel::Metadata::mAttrs.
#define FMA3GROUP_PACKED_AVX512_WIDTHS(Name, Type, Suf, Attrs)

Definition at line 80 of file X86InstrFMA3Info.cpp.

◆ FMA3GROUP_PACKED_AVX512_ROUND

#define FMA3GROUP_PACKED_AVX512_ROUND (   Name,
  Suf,
  Attrs 
)
Value:
FMA3GROUP_MASKED(Name, PSZ##Suf, Attrs)
#define FMA3GROUP_MASKED(Name, Suf, Attrs)
constexpr char Attrs[]
Key for Kernel::Metadata::mAttrs.

Definition at line 84 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)
#define FMA3GROUP_MASKED(Name, Suf, Attrs)
constexpr char Attrs[]
Key for Kernel::Metadata::mAttrs.
The instances of the Type class are immutable: once they are created, they are never changed...
Definition: Type.h:46

Definition at line 75 of file X86InstrFMA3Info.cpp.

◆ FMA3GROUP_PACKED_WIDTHS

#define FMA3GROUP_PACKED_WIDTHS (   Name,
  Suf,
  Attrs 
)
Value:
FMA3GROUP(Name, Suf##Ym, Attrs) \
FMA3GROUP(Name, Suf##Yr, Attrs) \
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) \
FMA3GROUP(Name, Suf##m, Attrs) \
FMA3GROUP(Name, Suf##r, Attrs)
constexpr char Attrs[]
Key for Kernel::Metadata::mAttrs.
#define FMA3GROUP(Name, Suf, Attrs)

Definition at line 32 of file X86InstrFMA3Info.cpp.

◆ FMA3GROUP_SCALAR

#define FMA3GROUP_SCALAR (   Name,
  Attrs 
)
Value:
FMA3GROUP_SCALAR_WIDTHS(Name, SS, Attrs) \
constexpr char Attrs[]
Key for Kernel::Metadata::mAttrs.
#define FMA3GROUP_SCALAR_WIDTHS(Name, Suf, Attrs)

Definition at line 58 of file X86InstrFMA3Info.cpp.

◆ FMA3GROUP_SCALAR_AVX512_ROUND

#define FMA3GROUP_SCALAR_AVX512_ROUND (   Name,
  Suf,
  Attrs 
)
Value:
FMA3GROUP(Name, SDZ##Suf, Attrs) \
FMA3GROUP_MASKED(Name, SDZ##Suf##_Int, Attrs) \
FMA3GROUP(Name, SSZ##Suf, Attrs) \
FMA3GROUP_MASKED(Name, SSZ##Suf##_Int, Attrs)
constexpr char Attrs[]
Key for Kernel::Metadata::mAttrs.
#define FMA3GROUP(Name, Suf, Attrs)

Definition at line 88 of file X86InstrFMA3Info.cpp.

◆ FMA3GROUP_SCALAR_WIDTHS

#define FMA3GROUP_SCALAR_WIDTHS (   Name,
  Suf,
  Attrs 
)
Value:
FMA3GROUP(Name, Suf##Zm, Attrs) \
FMA3GROUP_MASKED(Name, Suf##Zm_Int, Attrs | X86InstrFMA3Group::Intrinsic) \
FMA3GROUP(Name, Suf##Zr, Attrs) \
FMA3GROUP_MASKED(Name, Suf##Zr_Int, Attrs | X86InstrFMA3Group::Intrinsic) \
FMA3GROUP(Name, Suf##m, Attrs) \
FMA3GROUP(Name, Suf##m_Int, Attrs | X86InstrFMA3Group::Intrinsic) \
FMA3GROUP(Name, Suf##r, Attrs) \
FMA3GROUP(Name, Suf##r_Int, Attrs | X86InstrFMA3Group::Intrinsic)
constexpr char Attrs[]
Key for Kernel::Metadata::mAttrs.
#define FMA3GROUP(Name, Suf, Attrs)

Definition at line 48 of file X86InstrFMA3Info.cpp.

Function Documentation

◆ verifyTables()

static void verifyTables ( )
static

Definition at line 116 of file X86InstrFMA3Info.cpp.

References assert(), llvm::sys::path::begin(), and llvm::sys::path::end().

Referenced by llvm::getFMA3Group().

Variable Documentation

◆ BroadcastGroups

const X86InstrFMA3Group BroadcastGroups[]
static
Initial value:
= {
}

Definition at line 94 of file X86InstrFMA3Info.cpp.

◆ Groups

const X86InstrFMA3Group Groups[]
static
Initial value:
= {
}

Definition at line 66 of file X86InstrFMA3Info.cpp.

Referenced by INITIALIZE_PASS(), and isWeak().

◆ RoundGroups

const X86InstrFMA3Group RoundGroups[]
static
Initial value:
= {
}

Definition at line 103 of file X86InstrFMA3Info.cpp.