26#define DEBUG_TYPE "gi-combiner"
35 LLT DstTy =
MRI.getType(Dst);
39 assert(
Merge->getNumSources() == 2 &&
"Unexpected number of operands");
54 B.buildAnyExt(Dst,
Merge->getSourceReg(0));
64 LLT DstTy =
MRI.getType(Dst);
82 B.buildZExt(Dst,
Merge->getSourceReg(0));
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
This contains common combine transformations that may be used in a combine pass,or by the target else...
Interface for Targets to specify which operations they can successfully select and how the others sho...
This file declares the MachineIRBuilder class.
LLVM_ABI bool matchMergeXAndZero(const MachineInstr &MI, BuildFnTy &MatchInfo) const
LLVM_ABI bool matchMergeXAndUndef(const MachineInstr &MI, BuildFnTy &MatchInfo) const
MachineRegisterInfo & MRI
LLVM_ABI bool isLegalOrBeforeLegalizer(const LegalityQuery &Query) const
Represents a G_MERGE_VALUES.
Helper class to build MachineInstr.
Representation of each machine instruction.
Wrapper class representing virtual and physical registers.
This is an optimization pass for GlobalISel generic memory operations.
std::function< void(MachineIRBuilder &)> BuildFnTy
decltype(auto) cast(const From &Val)
cast<X> - Return the argument parameter cast to the specified type.