LLVM 19.0.0git
Classes | Namespaces | Enumerations | Functions | Variables
ARMISelLowering.h File Reference
#include "MCTargetDesc/ARMBaseInfo.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/CodeGen/CallingConvLower.h"
#include "llvm/CodeGen/ISDOpcodes.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/SelectionDAGNodes.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/CodeGen/ValueTypes.h"
#include "llvm/CodeGenTypes/MachineValueType.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/CallingConv.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/InlineAsm.h"
#include "llvm/Support/CodeGen.h"
#include <optional>
#include <utility>

Go to the source code of this file.

Classes

class  llvm::ARMTargetLowering
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::ARMISD
 
namespace  llvm::ARM
 Define some predicates that are used for node matching.
 

Enumerations

enum  llvm::ARMISD::NodeType : unsigned {
  llvm::ARMISD::FIRST_NUMBER = ISD::BUILTIN_OP_END , llvm::ARMISD::Wrapper , llvm::ARMISD::WrapperPIC , llvm::ARMISD::WrapperJT ,
  llvm::ARMISD::COPY_STRUCT_BYVAL , llvm::ARMISD::CALL , llvm::ARMISD::CALL_PRED , llvm::ARMISD::CALL_NOLINK ,
  llvm::ARMISD::tSECALL , llvm::ARMISD::t2CALL_BTI , llvm::ARMISD::BRCOND , llvm::ARMISD::BR_JT ,
  llvm::ARMISD::BR2_JT , llvm::ARMISD::RET_GLUE , llvm::ARMISD::SERET_GLUE , llvm::ARMISD::INTRET_GLUE ,
  llvm::ARMISD::PIC_ADD , llvm::ARMISD::ASRL , llvm::ARMISD::LSRL , llvm::ARMISD::LSLL ,
  llvm::ARMISD::CMP , llvm::ARMISD::CMN , llvm::ARMISD::CMPZ , llvm::ARMISD::CMPFP ,
  llvm::ARMISD::CMPFPE , llvm::ARMISD::CMPFPw0 , llvm::ARMISD::CMPFPEw0 , llvm::ARMISD::FMSTAT ,
  llvm::ARMISD::CMOV , llvm::ARMISD::SUBS , llvm::ARMISD::SSAT , llvm::ARMISD::USAT ,
  llvm::ARMISD::BCC_i64 , llvm::ARMISD::SRL_GLUE , llvm::ARMISD::SRA_GLUE , llvm::ARMISD::RRX ,
  llvm::ARMISD::ADDC , llvm::ARMISD::ADDE , llvm::ARMISD::SUBC , llvm::ARMISD::SUBE ,
  llvm::ARMISD::LSLS , llvm::ARMISD::VMOVRRD , llvm::ARMISD::VMOVDRR , llvm::ARMISD::VMOVSR ,
  llvm::ARMISD::EH_SJLJ_SETJMP , llvm::ARMISD::EH_SJLJ_LONGJMP , llvm::ARMISD::EH_SJLJ_SETUP_DISPATCH , llvm::ARMISD::TC_RETURN ,
  llvm::ARMISD::THREAD_POINTER , llvm::ARMISD::DYN_ALLOC , llvm::ARMISD::MEMBARRIER_MCR , llvm::ARMISD::PRELOAD ,
  llvm::ARMISD::WIN__CHKSTK , llvm::ARMISD::WIN__DBZCHK , llvm::ARMISD::WLS , llvm::ARMISD::WLSSETUP ,
  llvm::ARMISD::LOOP_DEC , llvm::ARMISD::LE , llvm::ARMISD::PREDICATE_CAST , llvm::ARMISD::VECTOR_REG_CAST ,
  llvm::ARMISD::MVESEXT , llvm::ARMISD::MVEZEXT , llvm::ARMISD::MVETRUNC , llvm::ARMISD::VCMP ,
  llvm::ARMISD::VCMPZ , llvm::ARMISD::VTST , llvm::ARMISD::VSHLs , llvm::ARMISD::VSHLu ,
  llvm::ARMISD::VSHLIMM , llvm::ARMISD::VSHRsIMM , llvm::ARMISD::VSHRuIMM , llvm::ARMISD::VRSHRsIMM ,
  llvm::ARMISD::VRSHRuIMM , llvm::ARMISD::VRSHRNIMM , llvm::ARMISD::VQSHLsIMM , llvm::ARMISD::VQSHLuIMM ,
  llvm::ARMISD::VQSHLsuIMM , llvm::ARMISD::VQSHRNsIMM , llvm::ARMISD::VQSHRNuIMM , llvm::ARMISD::VQSHRNsuIMM ,
  llvm::ARMISD::VQRSHRNsIMM , llvm::ARMISD::VQRSHRNuIMM , llvm::ARMISD::VQRSHRNsuIMM , llvm::ARMISD::VSLIIMM ,
  llvm::ARMISD::VSRIIMM , llvm::ARMISD::VGETLANEu , llvm::ARMISD::VGETLANEs , llvm::ARMISD::VMOVIMM ,
  llvm::ARMISD::VMVNIMM , llvm::ARMISD::VMOVFPIMM , llvm::ARMISD::VMOVrh , llvm::ARMISD::VMOVhr ,
  llvm::ARMISD::VDUP , llvm::ARMISD::VDUPLANE , llvm::ARMISD::VEXT , llvm::ARMISD::VREV64 ,
  llvm::ARMISD::VREV32 , llvm::ARMISD::VREV16 , llvm::ARMISD::VZIP , llvm::ARMISD::VUZP ,
  llvm::ARMISD::VTRN , llvm::ARMISD::VTBL1 , llvm::ARMISD::VTBL2 , llvm::ARMISD::VMOVN ,
  llvm::ARMISD::VQMOVNs , llvm::ARMISD::VQMOVNu , llvm::ARMISD::VCVTN , llvm::ARMISD::VCVTL ,
  llvm::ARMISD::VIDUP , llvm::ARMISD::VMULLs , llvm::ARMISD::VMULLu , llvm::ARMISD::VQDMULH ,
  llvm::ARMISD::VADDVs , llvm::ARMISD::VADDVu , llvm::ARMISD::VADDVps , llvm::ARMISD::VADDVpu ,
  llvm::ARMISD::VADDLVs , llvm::ARMISD::VADDLVu , llvm::ARMISD::VADDLVAs , llvm::ARMISD::VADDLVAu ,
  llvm::ARMISD::VADDLVps , llvm::ARMISD::VADDLVpu , llvm::ARMISD::VADDLVAps , llvm::ARMISD::VADDLVApu ,
  llvm::ARMISD::VMLAVs , llvm::ARMISD::VMLAVu , llvm::ARMISD::VMLAVps , llvm::ARMISD::VMLAVpu ,
  llvm::ARMISD::VMLALVs , llvm::ARMISD::VMLALVu , llvm::ARMISD::VMLALVps , llvm::ARMISD::VMLALVpu ,
  llvm::ARMISD::VMLALVAs , llvm::ARMISD::VMLALVAu , llvm::ARMISD::VMLALVAps , llvm::ARMISD::VMLALVApu ,
  llvm::ARMISD::VMINVu , llvm::ARMISD::VMINVs , llvm::ARMISD::VMAXVu , llvm::ARMISD::VMAXVs ,
  llvm::ARMISD::SMULWB , llvm::ARMISD::SMULWT , llvm::ARMISD::UMLAL , llvm::ARMISD::SMLAL ,
  llvm::ARMISD::UMAAL , llvm::ARMISD::SMLALBB , llvm::ARMISD::SMLALBT , llvm::ARMISD::SMLALTB ,
  llvm::ARMISD::SMLALTT , llvm::ARMISD::SMLALD , llvm::ARMISD::SMLALDX , llvm::ARMISD::SMLSLD ,
  llvm::ARMISD::SMLSLDX , llvm::ARMISD::SMMLAR , llvm::ARMISD::SMMLSR , llvm::ARMISD::QADD8b ,
  llvm::ARMISD::QSUB8b , llvm::ARMISD::QADD16b , llvm::ARMISD::QSUB16b , llvm::ARMISD::UQADD8b ,
  llvm::ARMISD::UQSUB8b , llvm::ARMISD::UQADD16b , llvm::ARMISD::UQSUB16b , llvm::ARMISD::BUILD_VECTOR ,
  llvm::ARMISD::BFI , llvm::ARMISD::VORRIMM , llvm::ARMISD::VBICIMM , llvm::ARMISD::VBSP ,
  llvm::ARMISD::MEMCPY , llvm::ARMISD::MEMCPYLOOP , llvm::ARMISD::MEMSETLOOP , llvm::ARMISD::CSINV ,
  llvm::ARMISD::CSNEG , llvm::ARMISD::CSINC , llvm::ARMISD::VLD1DUP = ISD::FIRST_TARGET_MEMORY_OPCODE , llvm::ARMISD::VLD2DUP ,
  llvm::ARMISD::VLD3DUP , llvm::ARMISD::VLD4DUP , llvm::ARMISD::VLD1_UPD , llvm::ARMISD::VLD2_UPD ,
  llvm::ARMISD::VLD3_UPD , llvm::ARMISD::VLD4_UPD , llvm::ARMISD::VLD2LN_UPD , llvm::ARMISD::VLD3LN_UPD ,
  llvm::ARMISD::VLD4LN_UPD , llvm::ARMISD::VLD1DUP_UPD , llvm::ARMISD::VLD2DUP_UPD , llvm::ARMISD::VLD3DUP_UPD ,
  llvm::ARMISD::VLD4DUP_UPD , llvm::ARMISD::VLD1x2_UPD , llvm::ARMISD::VLD1x3_UPD , llvm::ARMISD::VLD1x4_UPD ,
  llvm::ARMISD::VST1_UPD , llvm::ARMISD::VST2_UPD , llvm::ARMISD::VST3_UPD , llvm::ARMISD::VST4_UPD ,
  llvm::ARMISD::VST2LN_UPD , llvm::ARMISD::VST3LN_UPD , llvm::ARMISD::VST4LN_UPD , llvm::ARMISD::VST1x2_UPD ,
  llvm::ARMISD::VST1x3_UPD , llvm::ARMISD::VST1x4_UPD , llvm::ARMISD::LDRD , llvm::ARMISD::STRD
}
 
enum  llvm::ARM::Rounding {
  llvm::ARM::RN = 0 , llvm::ARM::RP = 1 , llvm::ARM::RM = 2 , llvm::ARM::RZ = 3 ,
  llvm::ARM::rmMask = 3
}
 Possible values of current rounding mode, which is specified in bits 23:22 of FPSCR. More...
 
enum  llvm::VMOVModImmType { llvm::VMOVModImm , llvm::VMVNModImm , llvm::MVEVMVNModImm , llvm::OtherModImm }
 

Functions

bool llvm::ARM::isBitFieldInvertedMask (unsigned v)
 
FastISelllvm::ARM::createFastISel (FunctionLoweringInfo &funcInfo, const TargetLibraryInfo *libInfo)
 

Variables

const unsigned llvm::ARM::RoundingBitsPos = 22
 
const unsigned llvm::ARM::FPStatusBits = 0xf800009f
 
const unsigned llvm::ARM::FPReservedBits = 0x00006060