layout: page
title: Comparison Operations

Integer Comparision # {#icmp}

Predicates for use with icmp instruction are listed below. All of these are integer constants defined in the llvm.core module.

ICMP_EQ

Equality

ICMP_NE

Inequality

ICMP_UGT

Unsigned greater than

ICMP_UGE

Unsigned greater than or equal

ICMP_ULT

Unsigned less than

ICMP_ULE

Unsigned less than or equal

ICMP_SGT

Signed greater than

ICMP_SGE

Signed greater than or equal

ICMP_SLT

Signed less than

ICMP_SLE

Signed less than or equal

Float Comparision # {#fcmp}

Predicates for use with fcmp instruction are listed below. All of these are integer constants defined in the llvm.core module.

FCMP_FALSE

Always false

FCMP_OEQ

True if ordered and equal

FCMP_OGT

True if ordered and greater than

FCMP_OGE

True if ordered and greater than or equal

FCMP_OLT

True if ordered and less than

FCMP_OLE

True if ordered and less than or equal

FCMP_ONE

True if ordered and operands are unequal

FCMP_ORD

True if ordered (no NaNs)

FCMP_UNO

True if unordered: isnan(X) | isnan(Y)

FCMP_UEQ

True if unordered or equal

FCMP_UGT

True if unordered or greater than

FCMP_UGE

True if unordered, greater than or equal

FCMP_ULT

True if unordered, or less than

FCMP_ULE

True if unordered, less than or equal

FCMP_UNE

True if unordered or not equal

FCMP_TRUE

Always true