LLVM 17.0.0git
Enumerations | Functions
llvm::AArch64CC Namespace Reference

Enumerations

enum  CondCode {
  EQ = 0x0 , NE = 0x1 , HS = 0x2 , LO = 0x3 ,
  MI = 0x4 , PL = 0x5 , VS = 0x6 , VC = 0x7 ,
  HI = 0x8 , LS = 0x9 , GE = 0xa , LT = 0xb ,
  GT = 0xc , LE = 0xd , AL = 0xe , NV = 0xf ,
  Invalid , ANY_ACTIVE = NE , FIRST_ACTIVE = MI , LAST_ACTIVE = LO ,
  NONE_ACTIVE = EQ
}
 

Functions

static const chargetCondCodeName (CondCode Code)
 
static CondCode getInvertedCondCode (CondCode Code)
 
static unsigned getNZCVToSatisfyCondCode (CondCode Code)
 Given a condition code, return NZCV flags that would satisfy that condition.
 
static bool isReflexive (CondCode Code)
 Return true if Code is a reflexive relationship: forall x.
 
static bool isIrreflexive (CondCode Code)
 Return true if Code is an irreflexive relationship: forall x.
 

Enumeration Type Documentation

◆ CondCode

Enumerator
EQ 
NE 
HS 
LO 
MI 
PL 
VS 
VC 
HI 
LS 
GE 
LT 
GT 
LE 
AL 
NV 
Invalid 
ANY_ACTIVE 
FIRST_ACTIVE 
LAST_ACTIVE 
NONE_ACTIVE 

Definition at line 254 of file AArch64BaseInfo.h.

Function Documentation

◆ getCondCodeName()

static const char * llvm::AArch64CC::getCondCodeName ( CondCode  Code)
inlinestatic

◆ getInvertedCondCode()

static CondCode llvm::AArch64CC::getInvertedCondCode ( CondCode  Code)
inlinestatic

◆ getNZCVToSatisfyCondCode()

static unsigned llvm::AArch64CC::getNZCVToSatisfyCondCode ( CondCode  Code)
inlinestatic

Given a condition code, return NZCV flags that would satisfy that condition.

The flag bits are in the format expected by the ccmp instructions. Note that many different flag settings can satisfy a given condition code, this function just returns one of them.

Definition at line 313 of file AArch64BaseInfo.h.

References llvm::CallingConv::C, EQ, GE, GT, HI, HS, LE, llvm_unreachable, LO, LS, LT, MI, N, NE, PL, VC, and VS.

Referenced by emitConditionalComparison(), and performANDORCSELCombine().

◆ isIrreflexive()

static bool llvm::AArch64CC::isIrreflexive ( CondCode  Code)
inlinestatic

Return true if Code is an irreflexive relationship: forall x.

(CSET Code (CMP x x)) == 0

Definition at line 355 of file AArch64BaseInfo.h.

References GT, HI, LO, LT, MI, and NE.

◆ isReflexive()

static bool llvm::AArch64CC::isReflexive ( CondCode  Code)
inlinestatic

Return true if Code is a reflexive relationship: forall x.

(CSET Code (CMP x x)) == 1

Definition at line 337 of file AArch64BaseInfo.h.

References AL, EQ, GE, HS, LE, LS, NV, and PL.