15#ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPUMCINSTLOWER_H
16#define LLVM_LIB_TARGET_AMDGPU_AMDGPUMCINSTLOWER_H
52 auto *CE = dyn_cast<ConstantExpr>(CV);
57 if (CE && CE->getOpcode() == Instruction::AddrSpaceCast) {
58 auto Op = CE->getOperand(0);
59 auto SrcAddr =
Op->getType()->getPointerAddressSpace();
60 if (
Op->isNullValue() && AT.getNullPointerValue(SrcAddr) == 0) {
61 auto DstAddr = CE->getType()->getPointerAddressSpace();
The AMDGPU TargetMachine interface definition for hw codegen targets.
This file contains the declarations for the subclasses of Constant, which represent the different fla...
const char LLVMTargetMachineRef TM
bool lowerOperand(const MachineOperand &MO, MCOperand &MCOp) const
void lower(const MachineInstr *MI, MCInst &OutMI) const
Lower a MachineInstr to an MCInst.
This class is intended to be used as a driving class for all asm writers.
This is an important base class in LLVM.
This class represents an Operation in the Expression.
static const MCConstantExpr * create(int64_t Value, MCContext &Ctx, bool PrintInHex=false, unsigned SizeInBytes=0)
Context object for machine code objects.
Base class for the full range of assembler expressions which are needed for parsing.
Instances of this class represent a single low-level machine instruction.
Instances of this class represent operands of the MCInst class.
Representation of each machine instruction.
MachineOperand class - Representation of each machine instruction operand.
Primary interface to the complete machine description for the target machine.
TargetSubtargetInfo - Generic base class for all target subtargets.
This is an optimization pass for GlobalISel generic memory operations.