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...
static SDValue lowerAddrSpaceCast(SDValue Op, SelectionDAG &DAG)
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.