LLVM 22.0.0git
X86InstrFoldTables.cpp File Reference
#include "X86InstrFoldTables.h"
#include "X86InstrInfo.h"
#include "llvm/ADT/STLExtras.h"
#include <atomic>
#include <vector>
#include "X86GenFoldTables.inc"

Go to the source code of this file.

Macros

#define CHECK_SORTED_UNIQUE(TABLE)

Functions

static const X86FoldTableEntrylookupFoldTableImpl (ArrayRef< X86FoldTableEntry > Table, unsigned RegOp)

Variables

static const X86FoldTableEntry BroadcastSizeTable2 []
static const X86FoldTableEntry BroadcastSizeTable3 []

Macro Definition Documentation

◆ CHECK_SORTED_UNIQUE

#define CHECK_SORTED_UNIQUE ( TABLE)
Value:
assert(llvm::is_sorted(TABLE) && #TABLE " is not sorted"); \
assert(std::adjacent_find(std::begin(Table), std::end(Table)) == \
std::end(Table) && \
#TABLE " is not unique");
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
bool is_sorted(R &&Range, Compare C)
Wrapper function around std::is_sorted to check if elements in a range R are sorted with respect to a...
Definition STLExtras.h:1900

Referenced by lookupFoldTableImpl().

Function Documentation

◆ lookupFoldTableImpl()

Variable Documentation

◆ BroadcastSizeTable2

const X86FoldTableEntry BroadcastSizeTable2[]
static

Definition at line 29 of file X86InstrFoldTables.cpp.

Referenced by lookupFoldTableImpl().

◆ BroadcastSizeTable3

const X86FoldTableEntry BroadcastSizeTable3[]
static
Initial value:
= {
{ X86::VPTERNLOGDZ128rri, X86::VPTERNLOGQZ128rmbi, TB_BCAST_Q },
{ X86::VPTERNLOGDZ256rri, X86::VPTERNLOGQZ256rmbi, TB_BCAST_Q },
{ X86::VPTERNLOGDZrri, X86::VPTERNLOGQZrmbi, TB_BCAST_Q },
{ X86::VPTERNLOGQZ128rri, X86::VPTERNLOGDZ128rmbi, TB_BCAST_D },
{ X86::VPTERNLOGQZ256rri, X86::VPTERNLOGDZ256rmbi, TB_BCAST_D },
{ X86::VPTERNLOGQZrri, X86::VPTERNLOGDZrmbi, TB_BCAST_D },
}

Definition at line 80 of file X86InstrFoldTables.cpp.

Referenced by lookupFoldTableImpl().