diff --git a/docs/LangRef.html b/docs/LangRef.html index d6696884e4a..a84de0ebc34 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -3101,9 +3101,8 @@ yields a bool result, as follows:
If the operands are pointer typed, the pointer values are treated as integers and then compared.
If the operands are packed typed, the elements of -the vector are compared in turn and the predicate must hold for all elements. -While this is of dubious use for predicates other than eq and -ne, the other predicates can be used with packed types.
+the vector are compared in turn and the predicate must hold for all +elements.<result> = icmp eq int 4, 5 ; yields: result=false @@ -3130,7 +3129,7 @@ of its floating point operands. the condition code which indicates the kind of comparison to perform. It is not a value, just a keyword. The possibilities for the condition code are:-
- false: no comparison, always false (always folded)
+- false: no comparison, always returns false
- oeq: ordered and equal
- ogt: ordered and greater than
- oge: ordered and greater than or equal
@@ -3145,49 +3144,50 @@ a value, just a keyword. The possibilities for the condition code are:- ule: unordered or less than or equal
- une: unordered or not equal
- uno: unordered (either nans)
-- true: no comparison, always true (always folded)
+- true: no comparison, always returns true
The val1 and val2 arguments must be of floating point, or a packed floating point type. They must have identical types.
+In the foregoing, ordered means that neither operand is a QNAN and +unordered means that either operand is a QNAN.
Semantics:
The 'fcmp' compares var1 and var2 according to the condition code given as cond. The comparison performed always yields a bool result, as follows:
- false: always yields false, regardless of operands.
-- oeq: yields true if both operands are ordered and +
- oeq: yields true if both operands are not a QNAN and var1 is equal to var2.
-- ogt: yields true if both operands are ordered and +
- ogt: yields true if both operands are not a QNAN and var1 is greather than var2.
-- oge: yields true if both operands are ordered and +
- oge: yields true if both operands are not a QNAN and var1 is greater than or equal to var2.
-- olt: yields true if both operands are ordered and +
- olt: yields true if both operands are not a QNAN and var1 is less than var2.
-- ole: yields true if both operands are ordered and +
- ole: yields true if both operands are not a QNAN and var1 is less than or equal to var2.
-- one: yields true if both operands are ordered and +
- one: yields true if both operands are not a QNAN and var1 is not equal to var2.
-- ord: yields true if both operands are ordered.
-- ueq: yields true if either operand is unordered or +
- ord: yields true if both operands are not a QNAN.
+- ueq: yields true if either operand is a QNAN or var1 is equal to var2.
-- ugt: yields true if either operand is unordered or +
- ugt: yields true if either operand is a QNAN or var1 is greater than var2.
-- uge: yields true if either operand is unordered or +
- uge: yields true if either operand is a QNAN or var1 is greater than or equal to var2.
-- ult: yields true if either operand is unordered or +
- ult: yields true if either operand is a QNAN or var1 is less than var2.
-- ule: yields true if either operand is unordered or +
- ule: yields true if either operand is a QNAN or var1 is less than or equal to var2.
-- une: yields true if either operand is unordered or +
- une: yields true if either operand is a QNAN or var1 is not equal to var2.
-- uno: yields true if either operand is unordered.
+- uno: yields true if either operand is a QNAN.
- true: always yields true, regardless of operands.
If the operands are packed typed, the elements of the vector are compared in turn and the predicate must hold for all elements. -While this is of dubious use for predicates other than eq and -ne, the other predicates can be used with packed types.
+Example:
<result> = fcmp oeq float 4.0, 5.0 ; yields: result=false