LLVM  10.0.0svn
Public Types | Public Member Functions | Public Attributes | List of all members
llvm::X86InstrFMA3Group Struct Reference

This class is used to group {132, 213, 231} forms of FMA opcodes together. More...

#include "Target/X86/X86InstrFMA3Info.h"

Collaboration diagram for llvm::X86InstrFMA3Group:
Collaboration graph
[legend]

Public Types

enum  { Form132, Form213, Form231 }
 
enum  : uint16_t { Intrinsic = 0x1, KMergeMasked = 0x2, KZeroMasked = 0x4 }
 

Public Member Functions

unsigned get132Opcode () const
 Returns the 132 form of FMA opcode. More...
 
unsigned get213Opcode () const
 Returns the 213 form of FMA opcode. More...
 
unsigned get231Opcode () const
 Returns the 231 form of FMA opcode. More...
 
bool isIntrinsic () const
 Returns true iff the group of FMA opcodes holds intrinsic opcodes. More...
 
bool isKMergeMasked () const
 Returns true iff the group of FMA opcodes holds k-merge-masked opcodes. More...
 
bool isKZeroMasked () const
 Returns true iff the group of FMA opcodes holds k-zero-masked opcodes. More...
 
bool isKMasked () const
 Returns true iff the group of FMA opcodes holds any of k-masked opcodes. More...
 
bool operator< (const X86InstrFMA3Group &RHS) const
 

Public Attributes

uint16_t Opcodes [3]
 An array holding 3 forms of FMA opcodes. More...
 
uint16_t Attributes
 This bitfield specifies the attributes associated with the created FMA groups of opcodes. More...
 

Detailed Description

This class is used to group {132, 213, 231} forms of FMA opcodes together.

Each of the groups has either 3 opcodes, Also, each group has an attributes field describing it.

Definition at line 28 of file X86InstrFMA3Info.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
Form132 
Form213 
Form231 

Definition at line 36 of file X86InstrFMA3Info.h.

◆ anonymous enum

anonymous enum : uint16_t
Enumerator
Intrinsic 

This bit must be set in the 'Attributes' field of FMA group if such group of FMA opcodes consists of FMA intrinsic opcodes.

KMergeMasked 

This bit must be set in the 'Attributes' field of FMA group if such group of FMA opcodes consists of AVX512 opcodes accepting a k-mask and passing the elements from the 1st operand to the result of the operation when the correpondings bits in the k-mask are unset.

KZeroMasked 

This bit must be set in the 'Attributes' field of FMA group if such group of FMA opcodes consists of AVX512 opcodes accepting a k-zeromask.

Definition at line 42 of file X86InstrFMA3Info.h.

Member Function Documentation

◆ get132Opcode()

unsigned llvm::X86InstrFMA3Group::get132Opcode ( ) const
inline

Returns the 132 form of FMA opcode.

Definition at line 59 of file X86InstrFMA3Info.h.

References Form132.

Referenced by llvm::X86InstrInfo::getFMA3OpcodeToCommuteOperands().

◆ get213Opcode()

unsigned llvm::X86InstrFMA3Group::get213Opcode ( ) const
inline

Returns the 213 form of FMA opcode.

Definition at line 64 of file X86InstrFMA3Info.h.

References Form213.

Referenced by llvm::X86InstrInfo::getFMA3OpcodeToCommuteOperands().

◆ get231Opcode()

unsigned llvm::X86InstrFMA3Group::get231Opcode ( ) const
inline

Returns the 231 form of FMA opcode.

Definition at line 69 of file X86InstrFMA3Info.h.

References Form231.

Referenced by llvm::X86InstrInfo::getFMA3OpcodeToCommuteOperands().

◆ isIntrinsic()

bool llvm::X86InstrFMA3Group::isIntrinsic ( ) const
inline

Returns true iff the group of FMA opcodes holds intrinsic opcodes.

Definition at line 74 of file X86InstrFMA3Info.h.

References Intrinsic.

Referenced by llvm::X86InstrInfo::findCommutedOpIndices(), and llvm::X86InstrInfo::getFMA3OpcodeToCommuteOperands().

◆ isKMasked()

bool llvm::X86InstrFMA3Group::isKMasked ( ) const
inline

Returns true iff the group of FMA opcodes holds any of k-masked opcodes.

Definition at line 85 of file X86InstrFMA3Info.h.

References KMergeMasked, and KZeroMasked.

◆ isKMergeMasked()

bool llvm::X86InstrFMA3Group::isKMergeMasked ( ) const
inline

Returns true iff the group of FMA opcodes holds k-merge-masked opcodes.

Definition at line 77 of file X86InstrFMA3Info.h.

References KMergeMasked.

◆ isKZeroMasked()

bool llvm::X86InstrFMA3Group::isKZeroMasked ( ) const
inline

Returns true iff the group of FMA opcodes holds k-zero-masked opcodes.

Definition at line 82 of file X86InstrFMA3Info.h.

References KZeroMasked.

◆ operator<()

bool llvm::X86InstrFMA3Group::operator< ( const X86InstrFMA3Group RHS) const
inline

Definition at line 89 of file X86InstrFMA3Info.h.

References llvm::getFMA3Group(), and Opcodes.

Member Data Documentation

◆ Attributes

uint16_t llvm::X86InstrFMA3Group::Attributes

This bitfield specifies the attributes associated with the created FMA groups of opcodes.

Definition at line 34 of file X86InstrFMA3Info.h.

◆ Opcodes

uint16_t llvm::X86InstrFMA3Group::Opcodes[3]

An array holding 3 forms of FMA opcodes.

Definition at line 30 of file X86InstrFMA3Info.h.

Referenced by llvm::getFMA3Group(), and operator<().


The documentation for this struct was generated from the following file: