LLVM 20.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/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::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