LLVM
22.0.0git
lib
Target
AMDGPU
AMDGPUInstrInfo.h
Go to the documentation of this file.
1
//===-- AMDGPUInstrInfo.h - AMDGPU Instruction Information ------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
/// \file
10
/// Contains the definition of a TargetInstrInfo class that is common
11
/// to all AMD GPUs.
12
//
13
//===----------------------------------------------------------------------===//
14
15
#ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPUINSTRINFO_H
16
#define LLVM_LIB_TARGET_AMDGPU_AMDGPUINSTRINFO_H
17
18
#include "
Utils/AMDGPUBaseInfo.h
"
19
20
namespace
llvm
{
21
22
class
GCNSubtarget;
23
class
MachineMemOperand;
24
class
MachineInstr;
25
26
namespace
AMDGPU {
27
28
bool
isUniformMMO
(
const
MachineMemOperand *MMO);
29
30
/// Return the intrinsic ID for opcodes with the G_AMDGPU_INTRIN_ prefix.
31
///
32
/// These opcodes have an Intrinsic::ID operand similar to a GIntrinsic. But
33
/// they are not actual instances of GIntrinsics, so we cannot use
34
/// GIntrinsic::getIntrinsicID() on them.
35
Intrinsic::ID
getIntrinsicID
(
const
MachineInstr &
I
);
36
37
struct
RsrcIntrinsic
{
38
unsigned
Intr
;
39
uint8_t
RsrcArg
;
40
bool
IsImage
;
41
};
42
const
RsrcIntrinsic
*
lookupRsrcIntrinsic
(
unsigned
Intr
);
43
44
struct
D16ImageDimIntrinsic
{
45
unsigned
Intr
;
46
unsigned
D16HelperIntr
;
47
};
48
const
D16ImageDimIntrinsic
*
lookupD16ImageDimIntrinsic
(
unsigned
Intr
);
49
50
struct
ImageDimIntrinsicInfo
{
51
unsigned
Intr
;
52
unsigned
BaseOpcode
;
53
MIMGDim
Dim
;
54
55
uint8_t
NumOffsetArgs
;
56
uint8_t
NumBiasArgs
;
57
uint8_t
NumZCompareArgs
;
58
uint8_t
NumGradients
;
59
uint8_t
NumDmask
;
60
uint8_t
NumData
;
61
uint8_t
NumVAddrs
;
62
uint8_t
NumArgs
;
63
64
uint8_t
DMaskIndex
;
65
uint8_t
VAddrStart
;
66
uint8_t
OffsetIndex
;
67
uint8_t
BiasIndex
;
68
uint8_t
ZCompareIndex
;
69
uint8_t
GradientStart
;
70
uint8_t
CoordStart
;
71
uint8_t
LodIndex
;
72
uint8_t
MipIndex
;
73
uint8_t
VAddrEnd
;
74
uint8_t
RsrcIndex
;
75
uint8_t
SampIndex
;
76
uint8_t
UnormIndex
;
77
uint8_t
TexFailCtrlIndex
;
78
uint8_t
CachePolicyIndex
;
79
80
uint8_t
BiasTyArg
;
81
uint8_t
GradientTyArg
;
82
uint8_t
CoordTyArg
;
83
};
84
const
ImageDimIntrinsicInfo
*
getImageDimIntrinsicInfo
(
unsigned
Intr
);
85
86
const
ImageDimIntrinsicInfo
*
87
getImageDimIntrinsicByBaseOpcode
(
unsigned
BaseOpcode,
unsigned
Dim);
88
89
}
// end AMDGPU namespace
90
}
// End llvm namespace
91
92
#endif
Intr
unsigned Intr
Definition:
AMDGPUBaseInfo.cpp:3279
AMDGPUBaseInfo.h
I
#define I(x, y, z)
Definition:
MD5.cpp:58
uint8_t
llvm::AMDGPU::getImageDimIntrinsicByBaseOpcode
const ImageDimIntrinsicInfo * getImageDimIntrinsicByBaseOpcode(unsigned BaseOpcode, unsigned Dim)
llvm::AMDGPU::lookupD16ImageDimIntrinsic
const D16ImageDimIntrinsic * lookupD16ImageDimIntrinsic(unsigned Intr)
llvm::AMDGPU::isUniformMMO
bool isUniformMMO(const MachineMemOperand *MMO)
Definition:
AMDGPUInstrInfo.cpp:30
llvm::AMDGPU::getIntrinsicID
Intrinsic::ID getIntrinsicID(const MachineInstr &I)
Return the intrinsic ID for opcodes with the G_AMDGPU_INTRIN_ prefix.
Definition:
AMDGPUInstrInfo.cpp:25
llvm::AMDGPU::getImageDimIntrinsicInfo
const ImageDimIntrinsicInfo * getImageDimIntrinsicInfo(unsigned Intr)
llvm::AMDGPU::lookupRsrcIntrinsic
const RsrcIntrinsic * lookupRsrcIntrinsic(unsigned Intr)
llvm::Intrinsic::ID
unsigned ID
Definition:
GenericSSAContext.h:28
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:
AddressRanges.h:18
llvm::AMDGPU::D16ImageDimIntrinsic
Definition:
AMDGPUInstrInfo.h:44
llvm::AMDGPU::D16ImageDimIntrinsic::D16HelperIntr
unsigned D16HelperIntr
Definition:
AMDGPUInstrInfo.h:46
llvm::AMDGPU::D16ImageDimIntrinsic::Intr
unsigned Intr
Definition:
AMDGPUInstrInfo.h:45
llvm::AMDGPU::ImageDimIntrinsicInfo
Definition:
AMDGPUInstrInfo.h:50
llvm::AMDGPU::ImageDimIntrinsicInfo::NumVAddrs
uint8_t NumVAddrs
Definition:
AMDGPUInstrInfo.h:61
llvm::AMDGPU::ImageDimIntrinsicInfo::CoordTyArg
uint8_t CoordTyArg
Definition:
AMDGPUInstrInfo.h:82
llvm::AMDGPU::ImageDimIntrinsicInfo::NumDmask
uint8_t NumDmask
Definition:
AMDGPUInstrInfo.h:59
llvm::AMDGPU::ImageDimIntrinsicInfo::BaseOpcode
unsigned BaseOpcode
Definition:
AMDGPUInstrInfo.h:52
llvm::AMDGPU::ImageDimIntrinsicInfo::VAddrEnd
uint8_t VAddrEnd
Definition:
AMDGPUInstrInfo.h:73
llvm::AMDGPU::ImageDimIntrinsicInfo::ZCompareIndex
uint8_t ZCompareIndex
Definition:
AMDGPUInstrInfo.h:68
llvm::AMDGPU::ImageDimIntrinsicInfo::CachePolicyIndex
uint8_t CachePolicyIndex
Definition:
AMDGPUInstrInfo.h:78
llvm::AMDGPU::ImageDimIntrinsicInfo::Dim
MIMGDim Dim
Definition:
AMDGPUInstrInfo.h:53
llvm::AMDGPU::ImageDimIntrinsicInfo::NumData
uint8_t NumData
Definition:
AMDGPUInstrInfo.h:60
llvm::AMDGPU::ImageDimIntrinsicInfo::Intr
unsigned Intr
Definition:
AMDGPUInstrInfo.h:51
llvm::AMDGPU::ImageDimIntrinsicInfo::NumBiasArgs
uint8_t NumBiasArgs
Definition:
AMDGPUInstrInfo.h:56
llvm::AMDGPU::ImageDimIntrinsicInfo::NumOffsetArgs
uint8_t NumOffsetArgs
Definition:
AMDGPUInstrInfo.h:55
llvm::AMDGPU::ImageDimIntrinsicInfo::OffsetIndex
uint8_t OffsetIndex
Definition:
AMDGPUInstrInfo.h:66
llvm::AMDGPU::ImageDimIntrinsicInfo::BiasIndex
uint8_t BiasIndex
Definition:
AMDGPUInstrInfo.h:67
llvm::AMDGPU::ImageDimIntrinsicInfo::NumZCompareArgs
uint8_t NumZCompareArgs
Definition:
AMDGPUInstrInfo.h:57
llvm::AMDGPU::ImageDimIntrinsicInfo::GradientTyArg
uint8_t GradientTyArg
Definition:
AMDGPUInstrInfo.h:81
llvm::AMDGPU::ImageDimIntrinsicInfo::NumArgs
uint8_t NumArgs
Definition:
AMDGPUInstrInfo.h:62
llvm::AMDGPU::ImageDimIntrinsicInfo::GradientStart
uint8_t GradientStart
Definition:
AMDGPUInstrInfo.h:69
llvm::AMDGPU::ImageDimIntrinsicInfo::RsrcIndex
uint8_t RsrcIndex
Definition:
AMDGPUInstrInfo.h:74
llvm::AMDGPU::ImageDimIntrinsicInfo::UnormIndex
uint8_t UnormIndex
Definition:
AMDGPUInstrInfo.h:76
llvm::AMDGPU::ImageDimIntrinsicInfo::NumGradients
uint8_t NumGradients
Definition:
AMDGPUInstrInfo.h:58
llvm::AMDGPU::ImageDimIntrinsicInfo::LodIndex
uint8_t LodIndex
Definition:
AMDGPUInstrInfo.h:71
llvm::AMDGPU::ImageDimIntrinsicInfo::SampIndex
uint8_t SampIndex
Definition:
AMDGPUInstrInfo.h:75
llvm::AMDGPU::ImageDimIntrinsicInfo::CoordStart
uint8_t CoordStart
Definition:
AMDGPUInstrInfo.h:70
llvm::AMDGPU::ImageDimIntrinsicInfo::MipIndex
uint8_t MipIndex
Definition:
AMDGPUInstrInfo.h:72
llvm::AMDGPU::ImageDimIntrinsicInfo::TexFailCtrlIndex
uint8_t TexFailCtrlIndex
Definition:
AMDGPUInstrInfo.h:77
llvm::AMDGPU::ImageDimIntrinsicInfo::VAddrStart
uint8_t VAddrStart
Definition:
AMDGPUInstrInfo.h:65
llvm::AMDGPU::ImageDimIntrinsicInfo::BiasTyArg
uint8_t BiasTyArg
Definition:
AMDGPUInstrInfo.h:80
llvm::AMDGPU::ImageDimIntrinsicInfo::DMaskIndex
uint8_t DMaskIndex
Definition:
AMDGPUInstrInfo.h:64
llvm::AMDGPU::RsrcIntrinsic
Definition:
AMDGPUInstrInfo.h:37
llvm::AMDGPU::RsrcIntrinsic::RsrcArg
uint8_t RsrcArg
Definition:
AMDGPUInstrInfo.h:39
llvm::AMDGPU::RsrcIntrinsic::Intr
unsigned Intr
Definition:
AMDGPUInstrInfo.h:38
llvm::AMDGPU::RsrcIntrinsic::IsImage
bool IsImage
Definition:
AMDGPUInstrInfo.h:40
Generated on Tue Sep 2 2025 04:04:41 for LLVM by
1.9.6