LLVM  8.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 29 of file X86InstrFMA3Info.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
Form132 
Form213 
Form231 

Definition at line 37 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 43 of file X86InstrFMA3Info.h.

Member Function Documentation

◆ get132Opcode()

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

Returns the 132 form of FMA opcode.

Definition at line 60 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 65 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 70 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 75 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 86 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 78 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 83 of file X86InstrFMA3Info.h.

References KZeroMasked.

◆ operator<()

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

Definition at line 90 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 35 of file X86InstrFMA3Info.h.

◆ Opcodes

uint16_t llvm::X86InstrFMA3Group::Opcodes[3]

An array holding 3 forms of FMA opcodes.

Definition at line 31 of file X86InstrFMA3Info.h.

Referenced by operator<().


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