LLVM  16.0.0git
Macros | Functions
AMDGPUInstCombineIntrinsic.cpp File Reference
#include "AMDGPUInstrInfo.h"
#include "AMDGPUTargetTransformInfo.h"
#include "GCNSubtarget.h"
#include "llvm/ADT/FloatingPointMode.h"
#include "llvm/IR/IntrinsicsAMDGPU.h"
#include "llvm/Transforms/InstCombine/InstCombiner.h"
#include <optional>
#include "InstCombineTables.inc"
Include dependency graph for AMDGPUInstCombineIntrinsic.cpp:

Go to the source code of this file.


#define DEBUG_TYPE   "AMDGPUtti"
#define GET_AMDGPUImageDMaskIntrinsicTable_IMPL


static APFloat fmed3AMDGCN (const APFloat &Src0, const APFloat &Src1, const APFloat &Src2)
static bool canSafelyConvertTo16Bit (Value &V, bool IsFloat)
static ValueconvertTo16Bit (Value &V, InstCombiner::BuilderTy &Builder)
static std::optional< Instruction * > modifyIntrinsicCall (IntrinsicInst &OldIntr, Instruction &InstToReplace, unsigned NewIntr, InstCombiner &IC, std::function< void(SmallVectorImpl< Value * > &, SmallVectorImpl< Type * > &)> Func)
 Applies Func(OldIntr.Args, OldIntr.ArgTys), creates intrinsic call with modified arguments (based on OldIntr) and replaces InstToReplace with this newly created intrinsic call. More...
static std::optional< Instruction * > simplifyAMDGCNImageIntrinsic (const GCNSubtarget *ST, const AMDGPU::ImageDimIntrinsicInfo *ImageDimIntr, IntrinsicInst &II, InstCombiner &IC)
static ValuesimplifyAMDGCNMemoryIntrinsicDemanded (InstCombiner &IC, IntrinsicInst &II, APInt DemandedElts, int DMaskIdx=-1)
 Implement SimplifyDemandedVectorElts for amdgcn buffer and image intrinsics. More...

Macro Definition Documentation


#define DEBUG_TYPE   "AMDGPUtti"

Definition at line 27 of file AMDGPUInstCombineIntrinsic.cpp.

◆ GET_AMDGPUImageDMaskIntrinsicTable_IMPL

#define GET_AMDGPUImageDMaskIntrinsicTable_IMPL

Definition at line 35 of file AMDGPUInstCombineIntrinsic.cpp.

Function Documentation

◆ canSafelyConvertTo16Bit()

static bool canSafelyConvertTo16Bit ( Value V,
bool  IsFloat 

◆ convertTo16Bit()

static Value* convertTo16Bit ( Value V,
InstCombiner::BuilderTy Builder 

◆ fmed3AMDGCN()

static APFloat fmed3AMDGCN ( const APFloat Src0,
const APFloat Src1,
const APFloat Src2 

◆ modifyIntrinsicCall()

static std::optional<Instruction *> modifyIntrinsicCall ( IntrinsicInst OldIntr,
Instruction InstToReplace,
unsigned  NewIntr,
InstCombiner IC,
std::function< void(SmallVectorImpl< Value * > &, SmallVectorImpl< Type * > &)>  Func 

◆ simplifyAMDGCNImageIntrinsic()

static std::optional<Instruction *> simplifyAMDGCNImageIntrinsic ( const GCNSubtarget ST,
const AMDGPU::ImageDimIntrinsicInfo *  ImageDimIntr,
IntrinsicInst II,
InstCombiner IC 

◆ simplifyAMDGCNMemoryIntrinsicDemanded()

static Value* simplifyAMDGCNMemoryIntrinsicDemanded ( InstCombiner IC,
IntrinsicInst II,
APInt  DemandedElts,
int  DMaskIdx = -1