LLVM 19.0.0git
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"

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

Public Attributes

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

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 24 of file X86InstrFMA3Info.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
Form132 
Form213 
Form231 

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

Member Function Documentation

◆ get132Opcode()

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

Returns the 132 form of FMA opcode.

Definition at line 55 of file X86InstrFMA3Info.h.

References Form132, and Opcodes.

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

◆ get213Opcode()

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

Returns the 213 form of FMA opcode.

Definition at line 60 of file X86InstrFMA3Info.h.

References Form213, and Opcodes.

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

◆ get231Opcode()

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

Returns the 231 form of FMA opcode.

Definition at line 65 of file X86InstrFMA3Info.h.

References Form231, and Opcodes.

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 70 of file X86InstrFMA3Info.h.

References Attributes, and 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 81 of file X86InstrFMA3Info.h.

References Attributes, 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 73 of file X86InstrFMA3Info.h.

References Attributes, and KMergeMasked.

◆ isKZeroMasked()

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

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

Definition at line 78 of file X86InstrFMA3Info.h.

References Attributes, and KZeroMasked.

◆ operator<()

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

Definition at line 85 of file X86InstrFMA3Info.h.

References Opcodes, and RHS.

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 30 of file X86InstrFMA3Info.h.

Referenced by isIntrinsic(), isKMasked(), isKMergeMasked(), and isKZeroMasked().

◆ Opcodes

uint16_t llvm::X86InstrFMA3Group::Opcodes[3]

An array holding 3 forms of FMA opcodes.

Definition at line 26 of file X86InstrFMA3Info.h.

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


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