[clang] [Headers][X86] Add specific results to comparisons (PR #83316)
Paul T Robinson via cfe-commits
cfe-commits at lists.llvm.org
Thu Mar 7 19:35:38 PST 2024
https://github.com/pogo59 updated https://github.com/llvm/llvm-project/pull/83316
>From 2afca3e91d96cc77f43556bbf71b6e60a22e45f2 Mon Sep 17 00:00:00 2001
From: Paul Robinson <paul.robinson at sony.com>
Date: Wed, 28 Feb 2024 11:04:41 -0800
Subject: [PATCH 1/2] [Headers][X86] Add specific results to comparisons
Comparison intrinsics were described as returning the "result" without
specifying how. The "cmp" intrinsics return zero or all 1's in the
corresponding elements of a returned vector; the "com" intrinsics return
an integer 0 or 1.
Also removed some redundant information.
---
clang/lib/Headers/smmintrin.h | 6 +-
clang/lib/Headers/xmmintrin.h | 146 +++++++++++++++++++---------------
2 files changed, 85 insertions(+), 67 deletions(-)
diff --git a/clang/lib/Headers/smmintrin.h b/clang/lib/Headers/smmintrin.h
index 005d7db9c3c308..ba593835b9b3dc 100644
--- a/clang/lib/Headers/smmintrin.h
+++ b/clang/lib/Headers/smmintrin.h
@@ -1186,7 +1186,8 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_testnzc_si128(__m128i __M,
/* SSE4 64-bit Packed Integer Comparisons. */
/// Compares each of the corresponding 64-bit values of the 128-bit
-/// integer vectors for equality.
+/// integer vectors for equality. Returns zero for false and all 1's for
+/// true in corresponding elements of the result.
///
/// \headerfile <x86intrin.h>
///
@@ -2303,7 +2304,8 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_minpos_epu16(__m128i __V) {
/* SSE4.2 Compare Packed Data -- Greater Than. */
/// Compares each of the corresponding 64-bit values of the 128-bit
/// integer vectors to determine if the values in the first operand are
-/// greater than those in the second operand.
+/// greater than those in the second operand. Returns zero for false and
+/// all 1's for true in corresponding elements of the result.
///
/// \headerfile <x86intrin.h>
///
diff --git a/clang/lib/Headers/xmmintrin.h b/clang/lib/Headers/xmmintrin.h
index 47368f3c23d2d6..d8ad5ae526a45f 100644
--- a/clang/lib/Headers/xmmintrin.h
+++ b/clang/lib/Headers/xmmintrin.h
@@ -474,8 +474,8 @@ _mm_xor_ps(__m128 __a, __m128 __b)
}
/// Compares two 32-bit float values in the low-order bits of both
-/// operands for equality and returns the result of the comparison in the
-/// low-order bits of a vector [4 x float].
+/// operands for equality and returns the result of the comparison (zero for
+/// false, all 1's for true) in the low-order bits of a vector [4 x float].
///
/// \headerfile <x86intrin.h>
///
@@ -496,7 +496,8 @@ _mm_cmpeq_ss(__m128 __a, __m128 __b)
}
/// Compares each of the corresponding 32-bit float values of the
-/// 128-bit vectors of [4 x float] for equality.
+/// 128-bit vectors of [4 x float] for equality. Returns zero for false and
+/// all 1's for true in corresponding elements of the result.
///
/// \headerfile <x86intrin.h>
///
@@ -516,7 +517,8 @@ _mm_cmpeq_ps(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the value in the first operand is less than the
/// corresponding value in the second operand and returns the result of the
-/// comparison in the low-order bits of a vector of [4 x float].
+/// comparison (zero for false, all 1's for true) in the low-order bits of a
+/// vector of [4 x float].
///
/// \headerfile <x86intrin.h>
///
@@ -538,7 +540,8 @@ _mm_cmplt_ss(__m128 __a, __m128 __b)
/// Compares each of the corresponding 32-bit float values of the
/// 128-bit vectors of [4 x float] to determine if the values in the first
-/// operand are less than those in the second operand.
+/// operand are less than those in the second operand. Returns zero for
+/// false and all 1's for true in corresponding elements of the result.
///
/// \headerfile <x86intrin.h>
///
@@ -558,8 +561,8 @@ _mm_cmplt_ps(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the value in the first operand is less than or
/// equal to the corresponding value in the second operand and returns the
-/// result of the comparison in the low-order bits of a vector of
-/// [4 x float].
+/// result of the comparison (zero for false, all 1's for true) in the
+/// low-order bits of a vector of [4 x float].
///
/// \headerfile <x86intrin.h>
///
@@ -581,7 +584,9 @@ _mm_cmple_ss(__m128 __a, __m128 __b)
/// Compares each of the corresponding 32-bit float values of the
/// 128-bit vectors of [4 x float] to determine if the values in the first
-/// operand are less than or equal to those in the second operand.
+/// operand are less than or equal to those in the second operand. Returns
+/// zero for false and all 1's for true in corresponding elements of the
+/// result.
///
/// \headerfile <x86intrin.h>
///
@@ -601,7 +606,8 @@ _mm_cmple_ps(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the value in the first operand is greater than
/// the corresponding value in the second operand and returns the result of
-/// the comparison in the low-order bits of a vector of [4 x float].
+/// the comparison (zero for false, all 1's for true) in the low-order bits
+/// of a vector of [4 x float].
///
/// \headerfile <x86intrin.h>
///
@@ -625,7 +631,8 @@ _mm_cmpgt_ss(__m128 __a, __m128 __b)
/// Compares each of the corresponding 32-bit float values of the
/// 128-bit vectors of [4 x float] to determine if the values in the first
-/// operand are greater than those in the second operand.
+/// operand are greater than those in the second operand. Returns zero for
+/// false and all 1's for true in corresponding elements of the result.
///
/// \headerfile <x86intrin.h>
///
@@ -645,8 +652,8 @@ _mm_cmpgt_ps(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the value in the first operand is greater than
/// or equal to the corresponding value in the second operand and returns
-/// the result of the comparison in the low-order bits of a vector of
-/// [4 x float].
+/// the result of the comparison (zero for false, all 1's for true) in the
+/// low-order bits of a vector of [4 x float].
///
/// \headerfile <x86intrin.h>
///
@@ -671,6 +678,8 @@ _mm_cmpge_ss(__m128 __a, __m128 __b)
/// Compares each of the corresponding 32-bit float values of the
/// 128-bit vectors of [4 x float] to determine if the values in the first
/// operand are greater than or equal to those in the second operand.
+/// Returns zero for false and all 1's for true in corresponding elements of
+/// the result.
///
/// \headerfile <x86intrin.h>
///
@@ -687,9 +696,9 @@ _mm_cmpge_ps(__m128 __a, __m128 __b)
return (__m128)__builtin_ia32_cmpleps((__v4sf)__b, (__v4sf)__a);
}
-/// Compares two 32-bit float values in the low-order bits of both
-/// operands for inequality and returns the result of the comparison in the
-/// low-order bits of a vector of [4 x float].
+/// Compares two 32-bit float values in the low-order bits of both operands
+/// for inequality and returns the result of the comparison (zero for false,
+/// all 1's for true) in the low-order bits of a vector of [4 x float].
///
/// \headerfile <x86intrin.h>
///
@@ -711,7 +720,8 @@ _mm_cmpneq_ss(__m128 __a, __m128 __b)
}
/// Compares each of the corresponding 32-bit float values of the
-/// 128-bit vectors of [4 x float] for inequality.
+/// 128-bit vectors of [4 x float] for inequality. Returns zero for false
+/// and all 1's for true in corresponding elements of the result.
///
/// \headerfile <x86intrin.h>
///
@@ -732,7 +742,8 @@ _mm_cmpneq_ps(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the value in the first operand is not less than
/// the corresponding value in the second operand and returns the result of
-/// the comparison in the low-order bits of a vector of [4 x float].
+/// the comparison (zero for false, all 1's for true) in the low-order bits
+/// of a vector of [4 x float].
///
/// \headerfile <x86intrin.h>
///
@@ -755,7 +766,8 @@ _mm_cmpnlt_ss(__m128 __a, __m128 __b)
/// Compares each of the corresponding 32-bit float values of the
/// 128-bit vectors of [4 x float] to determine if the values in the first
-/// operand are not less than those in the second operand.
+/// operand are not less than those in the second operand. Returns zero for
+/// false and all 1's for true in corresponding elements of the result.
///
/// \headerfile <x86intrin.h>
///
@@ -776,8 +788,8 @@ _mm_cmpnlt_ps(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the value in the first operand is not less than
/// or equal to the corresponding value in the second operand and returns
-/// the result of the comparison in the low-order bits of a vector of
-/// [4 x float].
+/// the result of the comparison (zero for false, all 1's for true) in the
+/// low-order bits of a vector of [4 x float].
///
/// \headerfile <x86intrin.h>
///
@@ -801,6 +813,8 @@ _mm_cmpnle_ss(__m128 __a, __m128 __b)
/// Compares each of the corresponding 32-bit float values of the
/// 128-bit vectors of [4 x float] to determine if the values in the first
/// operand are not less than or equal to those in the second operand.
+/// Returns zero for false and all 1's for true in corresponding elements of
+/// the result.
///
/// \headerfile <x86intrin.h>
///
@@ -821,8 +835,8 @@ _mm_cmpnle_ps(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the value in the first operand is not greater
/// than the corresponding value in the second operand and returns the
-/// result of the comparison in the low-order bits of a vector of
-/// [4 x float].
+/// result of the comparison (zero for false, all 1's for true) in the
+/// low-order bits of a vector of [4 x float].
///
/// \headerfile <x86intrin.h>
///
@@ -847,7 +861,8 @@ _mm_cmpngt_ss(__m128 __a, __m128 __b)
/// Compares each of the corresponding 32-bit float values of the
/// 128-bit vectors of [4 x float] to determine if the values in the first
-/// operand are not greater than those in the second operand.
+/// operand are not greater than those in the second operand. Returns zero
+/// for false and all 1's for true in corresponding elements of the result.
///
/// \headerfile <x86intrin.h>
///
@@ -868,8 +883,8 @@ _mm_cmpngt_ps(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the value in the first operand is not greater
/// than or equal to the corresponding value in the second operand and
-/// returns the result of the comparison in the low-order bits of a vector
-/// of [4 x float].
+/// returns the result of the comparison (zero for false, all 1's for true)
+/// in the low-order bits of a vector of [4 x float].
///
/// \headerfile <x86intrin.h>
///
@@ -895,6 +910,8 @@ _mm_cmpnge_ss(__m128 __a, __m128 __b)
/// Compares each of the corresponding 32-bit float values of the
/// 128-bit vectors of [4 x float] to determine if the values in the first
/// operand are not greater than or equal to those in the second operand.
+/// Returns zero for false and all 1's for true in corresponding elements of
+/// the result.
///
/// \headerfile <x86intrin.h>
///
@@ -915,8 +932,8 @@ _mm_cmpnge_ps(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the value in the first operand is ordered with
/// respect to the corresponding value in the second operand and returns the
-/// result of the comparison in the low-order bits of a vector of
-/// [4 x float].
+/// result of the comparison (zero for false, all 1's for true) in the
+/// low-order bits of a vector of [4 x float].
///
/// \headerfile <x86intrin.h>
///
@@ -940,6 +957,8 @@ _mm_cmpord_ss(__m128 __a, __m128 __b)
/// Compares each of the corresponding 32-bit float values of the
/// 128-bit vectors of [4 x float] to determine if the values in the first
/// operand are ordered with respect to those in the second operand.
+/// Returns zero for false and all 1's for true in corresponding elements of
+/// the result.
///
/// \headerfile <x86intrin.h>
///
@@ -960,8 +979,8 @@ _mm_cmpord_ps(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the value in the first operand is unordered
/// with respect to the corresponding value in the second operand and
-/// returns the result of the comparison in the low-order bits of a vector
-/// of [4 x float].
+/// returns the result of the comparison (zero for false, all 1's for true)
+/// in the low-order bits of a vector of [4 x float].
///
/// \headerfile <x86intrin.h>
///
@@ -985,6 +1004,8 @@ _mm_cmpunord_ss(__m128 __a, __m128 __b)
/// Compares each of the corresponding 32-bit float values of the
/// 128-bit vectors of [4 x float] to determine if the values in the first
/// operand are unordered with respect to those in the second operand.
+/// Returns zero for false and all 1's for true in corresponding elements of
+/// the result.
///
/// \headerfile <x86intrin.h>
///
@@ -1003,7 +1024,8 @@ _mm_cmpunord_ps(__m128 __a, __m128 __b)
}
/// Compares two 32-bit float values in the low-order bits of both
-/// operands for equality and returns the result of the comparison.
+/// operands for equality and returns the result of the comparison: 0 for
+/// false, 1 for true.
///
/// If either of the two lower 32-bit values is NaN, 0 is returned.
///
@@ -1018,8 +1040,7 @@ _mm_cmpunord_ps(__m128 __a, __m128 __b)
/// \param __b
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
/// used in the comparison.
-/// \returns An integer containing the comparison results. If either of the
-/// two lower 32-bit values is NaN, 0 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS
_mm_comieq_ss(__m128 __a, __m128 __b)
{
@@ -1028,7 +1049,8 @@ _mm_comieq_ss(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the first operand is less than the second
-/// operand and returns the result of the comparison.
+/// operand and returns the result of the comparison: 0 for false, 1 for
+/// true.
///
/// If either of the two lower 32-bit values is NaN, 0 is returned.
///
@@ -1043,8 +1065,7 @@ _mm_comieq_ss(__m128 __a, __m128 __b)
/// \param __b
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
/// used in the comparison.
-/// \returns An integer containing the comparison results. If either of the two
-/// lower 32-bit values is NaN, 0 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS
_mm_comilt_ss(__m128 __a, __m128 __b)
{
@@ -1053,7 +1074,8 @@ _mm_comilt_ss(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the first operand is less than or equal to the
-/// second operand and returns the result of the comparison.
+/// second operand and returns the result of the comparison: 0 for false, 1
+/// for true.
///
/// If either of the two lower 32-bit values is NaN, 0 is returned.
///
@@ -1067,8 +1089,7 @@ _mm_comilt_ss(__m128 __a, __m128 __b)
/// \param __b
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
/// used in the comparison.
-/// \returns An integer containing the comparison results. If either of the two
-/// lower 32-bit values is NaN, 0 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS
_mm_comile_ss(__m128 __a, __m128 __b)
{
@@ -1077,7 +1098,8 @@ _mm_comile_ss(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the first operand is greater than the second
-/// operand and returns the result of the comparison.
+/// operand and returns the result of the comparison: 0 for false, 1 for
+/// true.
///
/// If either of the two lower 32-bit values is NaN, 0 is returned.
///
@@ -1091,8 +1113,7 @@ _mm_comile_ss(__m128 __a, __m128 __b)
/// \param __b
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
/// used in the comparison.
-/// \returns An integer containing the comparison results. If either of the
-/// two lower 32-bit values is NaN, 0 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS
_mm_comigt_ss(__m128 __a, __m128 __b)
{
@@ -1101,7 +1122,8 @@ _mm_comigt_ss(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the first operand is greater than or equal to
-/// the second operand and returns the result of the comparison.
+/// the second operand and returns the result of the comparison: 0 for
+/// false, 1 for true.
///
/// If either of the two lower 32-bit values is NaN, 0 is returned.
///
@@ -1115,8 +1137,7 @@ _mm_comigt_ss(__m128 __a, __m128 __b)
/// \param __b
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
/// used in the comparison.
-/// \returns An integer containing the comparison results. If either of the two
-/// lower 32-bit values is NaN, 0 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS
_mm_comige_ss(__m128 __a, __m128 __b)
{
@@ -1125,7 +1146,8 @@ _mm_comige_ss(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the first operand is not equal to the second
-/// operand and returns the result of the comparison.
+/// operand and returns the result of the comparison: 0 for false, 1 for
+/// true.
///
/// If either of the two lower 32-bit values is NaN, 1 is returned.
///
@@ -1139,8 +1161,7 @@ _mm_comige_ss(__m128 __a, __m128 __b)
/// \param __b
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
/// used in the comparison.
-/// \returns An integer containing the comparison results. If either of the
-/// two lower 32-bit values is NaN, 1 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS
_mm_comineq_ss(__m128 __a, __m128 __b)
{
@@ -1149,7 +1170,7 @@ _mm_comineq_ss(__m128 __a, __m128 __b)
/// Performs an unordered comparison of two 32-bit float values using
/// the low-order bits of both operands to determine equality and returns
-/// the result of the comparison.
+/// the result of the comparison: 0 for false, 1 for true.
///
/// If either of the two lower 32-bit values is NaN, 0 is returned.
///
@@ -1163,8 +1184,7 @@ _mm_comineq_ss(__m128 __a, __m128 __b)
/// \param __b
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
/// used in the comparison.
-/// \returns An integer containing the comparison results. If either of the two
-/// lower 32-bit values is NaN, 0 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS
_mm_ucomieq_ss(__m128 __a, __m128 __b)
{
@@ -1173,7 +1193,8 @@ _mm_ucomieq_ss(__m128 __a, __m128 __b)
/// Performs an unordered comparison of two 32-bit float values using
/// the low-order bits of both operands to determine if the first operand is
-/// less than the second operand and returns the result of the comparison.
+/// less than the second operand and returns the result of the comparison:
+/// 0 for false, 1 for true.
///
/// If either of the two lower 32-bit values is NaN, 0 is returned.
///
@@ -1187,8 +1208,7 @@ _mm_ucomieq_ss(__m128 __a, __m128 __b)
/// \param __b
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
/// used in the comparison.
-/// \returns An integer containing the comparison results. If either of the two
-/// lower 32-bit values is NaN, 0 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS
_mm_ucomilt_ss(__m128 __a, __m128 __b)
{
@@ -1198,7 +1218,7 @@ _mm_ucomilt_ss(__m128 __a, __m128 __b)
/// Performs an unordered comparison of two 32-bit float values using
/// the low-order bits of both operands to determine if the first operand is
/// less than or equal to the second operand and returns the result of the
-/// comparison.
+/// comparison: 0 for false, 1 for true.
///
/// If either of the two lower 32-bit values is NaN, 0 is returned.
///
@@ -1212,8 +1232,7 @@ _mm_ucomilt_ss(__m128 __a, __m128 __b)
/// \param __b
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
/// used in the comparison.
-/// \returns An integer containing the comparison results. If either of the two
-/// lower 32-bit values is NaN, 0 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS
_mm_ucomile_ss(__m128 __a, __m128 __b)
{
@@ -1223,7 +1242,7 @@ _mm_ucomile_ss(__m128 __a, __m128 __b)
/// Performs an unordered comparison of two 32-bit float values using
/// the low-order bits of both operands to determine if the first operand is
/// greater than the second operand and returns the result of the
-/// comparison.
+/// comparison: 0 for false, 1 for true.
///
/// If either of the two lower 32-bit values is NaN, 0 is returned.
///
@@ -1237,8 +1256,7 @@ _mm_ucomile_ss(__m128 __a, __m128 __b)
/// \param __b
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
/// used in the comparison.
-/// \returns An integer containing the comparison results. If either of the two
-/// lower 32-bit values is NaN, 0 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS
_mm_ucomigt_ss(__m128 __a, __m128 __b)
{
@@ -1248,7 +1266,7 @@ _mm_ucomigt_ss(__m128 __a, __m128 __b)
/// Performs an unordered comparison of two 32-bit float values using
/// the low-order bits of both operands to determine if the first operand is
/// greater than or equal to the second operand and returns the result of
-/// the comparison.
+/// the comparison: 0 for false, 1 for true.
///
/// If either of the two lower 32-bit values is NaN, 0 is returned.
///
@@ -1262,8 +1280,7 @@ _mm_ucomigt_ss(__m128 __a, __m128 __b)
/// \param __b
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
/// used in the comparison.
-/// \returns An integer containing the comparison results. If either of the two
-/// lower 32-bit values is NaN, 0 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS
_mm_ucomige_ss(__m128 __a, __m128 __b)
{
@@ -1272,7 +1289,7 @@ _mm_ucomige_ss(__m128 __a, __m128 __b)
/// Performs an unordered comparison of two 32-bit float values using
/// the low-order bits of both operands to determine inequality and returns
-/// the result of the comparison.
+/// the result of the comparison: 0 for false, 1 for true.
///
/// If either of the two lower 32-bit values is NaN, 1 is returned.
///
@@ -1286,8 +1303,7 @@ _mm_ucomige_ss(__m128 __a, __m128 __b)
/// \param __b
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
/// used in the comparison.
-/// \returns An integer containing the comparison results. If either of the two
-/// lower 32-bit values is NaN, 1 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS
_mm_ucomineq_ss(__m128 __a, __m128 __b)
{
>From 1d691620a0ef9632d85e4691dc644352d4abf2b2 Mon Sep 17 00:00:00 2001
From: Paul Robinson <paul.robinson at sony.com>
Date: Thu, 7 Mar 2024 19:35:23 -0800
Subject: [PATCH 2/2] Rephrase description of comparison results to specify
0xFFFFFFFF (etc) instead of "all 1's".
---
clang/lib/Headers/emmintrin.h | 112 +++++++++----------
clang/lib/Headers/smmintrin.h | 10 +-
clang/lib/Headers/xmmintrin.h | 202 +++++++++++++++++++---------------
3 files changed, 170 insertions(+), 154 deletions(-)
diff --git a/clang/lib/Headers/emmintrin.h b/clang/lib/Headers/emmintrin.h
index 96e3ebdecbdf83..43ec61bbe8a104 100644
--- a/clang/lib/Headers/emmintrin.h
+++ b/clang/lib/Headers/emmintrin.h
@@ -410,8 +410,9 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_xor_pd(__m128d __a,
}
/// Compares each of the corresponding double-precision values of the
-/// 128-bit vectors of [2 x double] for equality. Each comparison yields 0x0
-/// for false, 0xFFFFFFFFFFFFFFFF for true.
+/// 128-bit vectors of [2 x double] for equality.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
///
/// \headerfile <x86intrin.h>
///
@@ -429,8 +430,9 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpeq_pd(__m128d __a,
/// Compares each of the corresponding double-precision values of the
/// 128-bit vectors of [2 x double] to determine if the values in the first
-/// operand are less than those in the second operand. Each comparison
-/// yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
+/// operand are less than those in the second operand.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
///
/// \headerfile <x86intrin.h>
///
@@ -949,8 +951,8 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpnge_sd(__m128d __a,
/// Compares the lower double-precision floating-point values in each of
/// the two 128-bit floating-point vectors of [2 x double] for equality.
///
-/// The comparison yields 0 for false, 1 for true. If either of the two
-/// lower double-precision values is NaN, 0 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two
+/// lower double-precision values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
@@ -962,8 +964,7 @@ static __inline__ __m128d __DEFAULT_FN_ATTRS _mm_cmpnge_sd(__m128d __a,
/// \param __b
/// A 128-bit vector of [2 x double]. The lower double-precision value is
/// compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-/// lower double-precision values is NaN, 0 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS _mm_comieq_sd(__m128d __a,
__m128d __b) {
return __builtin_ia32_comisdeq((__v2df)__a, (__v2df)__b);
@@ -974,8 +975,8 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_comieq_sd(__m128d __a,
/// the value in the first parameter is less than the corresponding value in
/// the second parameter.
///
-/// The comparison yields 0 for false, 1 for true. If either of the two
-/// lower double-precision values is NaN, 0 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two
+/// lower double-precision values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
@@ -987,8 +988,7 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_comieq_sd(__m128d __a,
/// \param __b
/// A 128-bit vector of [2 x double]. The lower double-precision value is
/// compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-/// lower double-precision values is NaN, 0 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS _mm_comilt_sd(__m128d __a,
__m128d __b) {
return __builtin_ia32_comisdlt((__v2df)__a, (__v2df)__b);
@@ -999,8 +999,8 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_comilt_sd(__m128d __a,
/// the value in the first parameter is less than or equal to the
/// corresponding value in the second parameter.
///
-/// The comparison yields 0 for false, 1 for true. If either of the two
-/// lower double-precision values is NaN, 0 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two
+/// lower double-precision values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
@@ -1012,8 +1012,7 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_comilt_sd(__m128d __a,
/// \param __b
/// A 128-bit vector of [2 x double]. The lower double-precision value is
/// compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-/// lower double-precision values is NaN, 0 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS _mm_comile_sd(__m128d __a,
__m128d __b) {
return __builtin_ia32_comisdle((__v2df)__a, (__v2df)__b);
@@ -1024,8 +1023,8 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_comile_sd(__m128d __a,
/// the value in the first parameter is greater than the corresponding value
/// in the second parameter.
///
-/// The comparison yields 0 for false, 1 for true. If either of the two
-/// lower double-precision values is NaN, 0 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two
+/// lower double-precision values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
@@ -1037,8 +1036,7 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_comile_sd(__m128d __a,
/// \param __b
/// A 128-bit vector of [2 x double]. The lower double-precision value is
/// compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-/// lower double-precision values is NaN, 0 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS _mm_comigt_sd(__m128d __a,
__m128d __b) {
return __builtin_ia32_comisdgt((__v2df)__a, (__v2df)__b);
@@ -1049,8 +1047,8 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_comigt_sd(__m128d __a,
/// the value in the first parameter is greater than or equal to the
/// corresponding value in the second parameter.
///
-/// The comparison yields 0 for false, 1 for true. If either of the two
-/// lower double-precision values is NaN, 0 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two
+/// lower double-precision values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
@@ -1062,8 +1060,7 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_comigt_sd(__m128d __a,
/// \param __b
/// A 128-bit vector of [2 x double]. The lower double-precision value is
/// compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-/// lower double-precision values is NaN, 0 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS _mm_comige_sd(__m128d __a,
__m128d __b) {
return __builtin_ia32_comisdge((__v2df)__a, (__v2df)__b);
@@ -1074,7 +1071,7 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_comige_sd(__m128d __a,
/// the value in the first parameter is unequal to the corresponding value in
/// the second parameter.
///
-/// The comparison yields 0 for false, 1 for true. If either of the two
+/// The comparison returns 0 for false, 1 for true. If either of the two
/// lower double-precision values is NaN, 1 is returned.
///
/// \headerfile <x86intrin.h>
@@ -1087,18 +1084,17 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_comige_sd(__m128d __a,
/// \param __b
/// A 128-bit vector of [2 x double]. The lower double-precision value is
/// compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-/// lower double-precision values is NaN, 1 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS _mm_comineq_sd(__m128d __a,
__m128d __b) {
return __builtin_ia32_comisdneq((__v2df)__a, (__v2df)__b);
}
/// Compares the lower double-precision floating-point values in each of
-/// the two 128-bit floating-point vectors of [2 x double] for equality. The
-/// comparison yields 0 for false, 1 for true.
+/// the two 128-bit floating-point vectors of [2 x double] for equality.
///
-/// If either of the two lower double-precision values is NaN, 0 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two lower
+/// double-precision values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
@@ -1110,8 +1106,7 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_comineq_sd(__m128d __a,
/// \param __b
/// A 128-bit vector of [2 x double]. The lower double-precision value is
/// compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-/// lower double-precision values is NaN, 0 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomieq_sd(__m128d __a,
__m128d __b) {
return __builtin_ia32_ucomisdeq((__v2df)__a, (__v2df)__b);
@@ -1122,8 +1117,8 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomieq_sd(__m128d __a,
/// the value in the first parameter is less than the corresponding value in
/// the second parameter.
///
-/// The comparison yields 0 for false, 1 for true. If either of the two lower
-/// double-precision values is NaN, 0 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two lower
+/// double-precision values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
@@ -1135,8 +1130,7 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomieq_sd(__m128d __a,
/// \param __b
/// A 128-bit vector of [2 x double]. The lower double-precision value is
/// compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-/// lower double-precision values is NaN, 0 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomilt_sd(__m128d __a,
__m128d __b) {
return __builtin_ia32_ucomisdlt((__v2df)__a, (__v2df)__b);
@@ -1147,8 +1141,8 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomilt_sd(__m128d __a,
/// the value in the first parameter is less than or equal to the
/// corresponding value in the second parameter.
///
-/// The comparison yields 0 for false, 1 for true. If either of the two lower
-/// double-precision values is NaN, 0 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two lower
+/// double-precision values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
@@ -1160,8 +1154,7 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomilt_sd(__m128d __a,
/// \param __b
/// A 128-bit vector of [2 x double]. The lower double-precision value is
/// compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-/// lower double-precision values is NaN, 0 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomile_sd(__m128d __a,
__m128d __b) {
return __builtin_ia32_ucomisdle((__v2df)__a, (__v2df)__b);
@@ -1172,8 +1165,8 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomile_sd(__m128d __a,
/// the value in the first parameter is greater than the corresponding value
/// in the second parameter.
///
-/// The comparison yields 0 for false, 1 for true. If either of the two lower
-/// double-precision values is NaN, 0 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two lower
+/// double-precision values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
@@ -1185,8 +1178,7 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomile_sd(__m128d __a,
/// \param __b
/// A 128-bit vector of [2 x double]. The lower double-precision value is
/// compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-/// lower double-precision values is NaN, 0 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomigt_sd(__m128d __a,
__m128d __b) {
return __builtin_ia32_ucomisdgt((__v2df)__a, (__v2df)__b);
@@ -1197,8 +1189,8 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomigt_sd(__m128d __a,
/// the value in the first parameter is greater than or equal to the
/// corresponding value in the second parameter.
///
-/// The comparison yields 0 for false, 1 for true. If either of the two
-/// lower double-precision values is NaN, 0 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two
+/// lower double-precision values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
@@ -1210,8 +1202,7 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomigt_sd(__m128d __a,
/// \param __b
/// A 128-bit vector of [2 x double]. The lower double-precision value is
/// compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison results. If either of the two
-/// lower double-precision values is NaN, 0 is returned.
+/// \returns An integer containing the comparison results.
static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomige_sd(__m128d __a,
__m128d __b) {
return __builtin_ia32_ucomisdge((__v2df)__a, (__v2df)__b);
@@ -1222,7 +1213,7 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomige_sd(__m128d __a,
/// the value in the first parameter is unequal to the corresponding value in
/// the second parameter.
///
-/// The comparison yields 0 for false, 1 for true. If either of the two lower
+/// The comparison returns 0 for false, 1 for true. If either of the two lower
/// double-precision values is NaN, 1 is returned.
///
/// \headerfile <x86intrin.h>
@@ -1235,8 +1226,7 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomige_sd(__m128d __a,
/// \param __b
/// A 128-bit vector of [2 x double]. The lower double-precision value is
/// compared to the lower double-precision value of \a __a.
-/// \returns An integer containing the comparison result. If either of the two
-/// lower double-precision values is NaN, 1 is returned.
+/// \returns An integer containing the comparison result.
static __inline__ int __DEFAULT_FN_ATTRS _mm_ucomineq_sd(__m128d __a,
__m128d __b) {
return __builtin_ia32_ucomisdneq((__v2df)__a, (__v2df)__b);
@@ -3008,8 +2998,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_srl_epi64(__m128i __a,
}
/// Compares each of the corresponding 8-bit values of the 128-bit
-/// integer vectors for equality. Each comparison yields 0x0 for false, 0xFF
-/// for true.
+/// integer vectors for equality.
+///
+/// Each comparison yields 0x0 for false, 0xFF for true.
///
/// \headerfile <x86intrin.h>
///
@@ -3026,8 +3017,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpeq_epi8(__m128i __a,
}
/// Compares each of the corresponding 16-bit values of the 128-bit
-/// integer vectors for equality. Each comparison yields 0x0 for false,
-/// 0xFFFF for true.
+/// integer vectors for equality.
+///
+/// Each comparison yields 0x0 for false, 0xFFFF for true.
///
/// \headerfile <x86intrin.h>
///
@@ -3044,8 +3036,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpeq_epi16(__m128i __a,
}
/// Compares each of the corresponding 32-bit values of the 128-bit
-/// integer vectors for equality. Each comparison yields 0x0 for false,
-/// 0xFFFFFFFF for true.
+/// integer vectors for equality.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFF for true.
///
/// \headerfile <x86intrin.h>
///
@@ -3063,8 +3056,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmpeq_epi32(__m128i __a,
/// Compares each of the corresponding signed 8-bit values of the 128-bit
/// integer vectors to determine if the values in the first operand are
-/// greater than those in the second operand. Each comparison yields 0x0 for
-/// false, 0xFF for true.
+/// greater than those in the second operand.
+///
+/// Each comparison yields 0x0 for false, 0xFF for true.
///
/// \headerfile <x86intrin.h>
///
diff --git a/clang/lib/Headers/smmintrin.h b/clang/lib/Headers/smmintrin.h
index ba593835b9b3dc..54554ee4bcead0 100644
--- a/clang/lib/Headers/smmintrin.h
+++ b/clang/lib/Headers/smmintrin.h
@@ -1186,8 +1186,9 @@ static __inline__ int __DEFAULT_FN_ATTRS _mm_testnzc_si128(__m128i __M,
/* SSE4 64-bit Packed Integer Comparisons. */
/// Compares each of the corresponding 64-bit values of the 128-bit
-/// integer vectors for equality. Returns zero for false and all 1's for
-/// true in corresponding elements of the result.
+/// integer vectors for equality.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
///
/// \headerfile <x86intrin.h>
///
@@ -2304,8 +2305,9 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_minpos_epu16(__m128i __V) {
/* SSE4.2 Compare Packed Data -- Greater Than. */
/// Compares each of the corresponding 64-bit values of the 128-bit
/// integer vectors to determine if the values in the first operand are
-/// greater than those in the second operand. Returns zero for false and
-/// all 1's for true in corresponding elements of the result.
+/// greater than those in the second operand.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
///
/// \headerfile <x86intrin.h>
///
diff --git a/clang/lib/Headers/xmmintrin.h b/clang/lib/Headers/xmmintrin.h
index d8ad5ae526a45f..5151ff6a4538de 100644
--- a/clang/lib/Headers/xmmintrin.h
+++ b/clang/lib/Headers/xmmintrin.h
@@ -474,8 +474,10 @@ _mm_xor_ps(__m128 __a, __m128 __b)
}
/// Compares two 32-bit float values in the low-order bits of both
-/// operands for equality and returns the result of the comparison (zero for
-/// false, all 1's for true) in the low-order bits of a vector [4 x float].
+/// operands for equality.
+///
+/// The comparison yields 0x0 for false, 0xFFFFFFFF for true, in the
+/// low-order bits of a vector [4 x float].
///
/// \headerfile <x86intrin.h>
///
@@ -496,8 +498,9 @@ _mm_cmpeq_ss(__m128 __a, __m128 __b)
}
/// Compares each of the corresponding 32-bit float values of the
-/// 128-bit vectors of [4 x float] for equality. Returns zero for false and
-/// all 1's for true in corresponding elements of the result.
+/// 128-bit vectors of [4 x float] for equality.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFF for true.
///
/// \headerfile <x86intrin.h>
///
@@ -516,9 +519,10 @@ _mm_cmpeq_ps(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the value in the first operand is less than the
-/// corresponding value in the second operand and returns the result of the
-/// comparison (zero for false, all 1's for true) in the low-order bits of a
-/// vector of [4 x float].
+/// corresponding value in the second operand.
+///
+/// The comparison yields 0x0 for false, 0xFFFFFFFF for true, in the
+/// low-order bits of a vector of [4 x float].
///
/// \headerfile <x86intrin.h>
///
@@ -540,8 +544,9 @@ _mm_cmplt_ss(__m128 __a, __m128 __b)
/// Compares each of the corresponding 32-bit float values of the
/// 128-bit vectors of [4 x float] to determine if the values in the first
-/// operand are less than those in the second operand. Returns zero for
-/// false and all 1's for true in corresponding elements of the result.
+/// operand are less than those in the second operand.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
///
/// \headerfile <x86intrin.h>
///
@@ -560,9 +565,10 @@ _mm_cmplt_ps(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the value in the first operand is less than or
-/// equal to the corresponding value in the second operand and returns the
-/// result of the comparison (zero for false, all 1's for true) in the
-/// low-order bits of a vector of [4 x float].
+/// equal to the corresponding value in the second operand.
+///
+/// The comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true, in
+/// the low-order bits of a vector of [4 x float].
///
/// \headerfile <x86intrin.h>
///
@@ -584,9 +590,9 @@ _mm_cmple_ss(__m128 __a, __m128 __b)
/// Compares each of the corresponding 32-bit float values of the
/// 128-bit vectors of [4 x float] to determine if the values in the first
-/// operand are less than or equal to those in the second operand. Returns
-/// zero for false and all 1's for true in corresponding elements of the
-/// result.
+/// operand are less than or equal to those in the second operand.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFF for true.
///
/// \headerfile <x86intrin.h>
///
@@ -605,9 +611,10 @@ _mm_cmple_ps(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the value in the first operand is greater than
-/// the corresponding value in the second operand and returns the result of
-/// the comparison (zero for false, all 1's for true) in the low-order bits
-/// of a vector of [4 x float].
+/// the corresponding value in the second operand.
+///
+/// The comparison yields 0x0 for false, 0xFFFFFFFF for true, in the
+/// low-order bits of a vector of [4 x float].
///
/// \headerfile <x86intrin.h>
///
@@ -631,8 +638,9 @@ _mm_cmpgt_ss(__m128 __a, __m128 __b)
/// Compares each of the corresponding 32-bit float values of the
/// 128-bit vectors of [4 x float] to determine if the values in the first
-/// operand are greater than those in the second operand. Returns zero for
-/// false and all 1's for true in corresponding elements of the result.
+/// operand are greater than those in the second operand.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFF for true.
///
/// \headerfile <x86intrin.h>
///
@@ -651,8 +659,9 @@ _mm_cmpgt_ps(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the value in the first operand is greater than
-/// or equal to the corresponding value in the second operand and returns
-/// the result of the comparison (zero for false, all 1's for true) in the
+/// or equal to the corresponding value in the second operand.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFF for true, in the
/// low-order bits of a vector of [4 x float].
///
/// \headerfile <x86intrin.h>
@@ -678,8 +687,8 @@ _mm_cmpge_ss(__m128 __a, __m128 __b)
/// Compares each of the corresponding 32-bit float values of the
/// 128-bit vectors of [4 x float] to determine if the values in the first
/// operand are greater than or equal to those in the second operand.
-/// Returns zero for false and all 1's for true in corresponding elements of
-/// the result.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFFFFFFFFFF for true.
///
/// \headerfile <x86intrin.h>
///
@@ -697,8 +706,10 @@ _mm_cmpge_ps(__m128 __a, __m128 __b)
}
/// Compares two 32-bit float values in the low-order bits of both operands
-/// for inequality and returns the result of the comparison (zero for false,
-/// all 1's for true) in the low-order bits of a vector of [4 x float].
+/// for inequality.
+///
+/// The comparison yields 0x0 for false, 0xFFFFFFFF for true, in the
+/// low-order bits of a vector of [4 x float].
///
/// \headerfile <x86intrin.h>
///
@@ -720,8 +731,9 @@ _mm_cmpneq_ss(__m128 __a, __m128 __b)
}
/// Compares each of the corresponding 32-bit float values of the
-/// 128-bit vectors of [4 x float] for inequality. Returns zero for false
-/// and all 1's for true in corresponding elements of the result.
+/// 128-bit vectors of [4 x float] for inequality.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFF for true.
///
/// \headerfile <x86intrin.h>
///
@@ -741,9 +753,10 @@ _mm_cmpneq_ps(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the value in the first operand is not less than
-/// the corresponding value in the second operand and returns the result of
-/// the comparison (zero for false, all 1's for true) in the low-order bits
-/// of a vector of [4 x float].
+/// the corresponding value in the second operand.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFF for true, in the
+/// low-order bits of a vector of [4 x float].
///
/// \headerfile <x86intrin.h>
///
@@ -766,8 +779,9 @@ _mm_cmpnlt_ss(__m128 __a, __m128 __b)
/// Compares each of the corresponding 32-bit float values of the
/// 128-bit vectors of [4 x float] to determine if the values in the first
-/// operand are not less than those in the second operand. Returns zero for
-/// false and all 1's for true in corresponding elements of the result.
+/// operand are not less than those in the second operand.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFF for true.
///
/// \headerfile <x86intrin.h>
///
@@ -787,8 +801,9 @@ _mm_cmpnlt_ps(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the value in the first operand is not less than
-/// or equal to the corresponding value in the second operand and returns
-/// the result of the comparison (zero for false, all 1's for true) in the
+/// or equal to the corresponding value in the second operand.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFF for true, in the
/// low-order bits of a vector of [4 x float].
///
/// \headerfile <x86intrin.h>
@@ -813,8 +828,8 @@ _mm_cmpnle_ss(__m128 __a, __m128 __b)
/// Compares each of the corresponding 32-bit float values of the
/// 128-bit vectors of [4 x float] to determine if the values in the first
/// operand are not less than or equal to those in the second operand.
-/// Returns zero for false and all 1's for true in corresponding elements of
-/// the result.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFF for true.
///
/// \headerfile <x86intrin.h>
///
@@ -834,8 +849,9 @@ _mm_cmpnle_ps(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the value in the first operand is not greater
-/// than the corresponding value in the second operand and returns the
-/// result of the comparison (zero for false, all 1's for true) in the
+/// than the corresponding value in the second operand.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFF for true, in the
/// low-order bits of a vector of [4 x float].
///
/// \headerfile <x86intrin.h>
@@ -861,8 +877,9 @@ _mm_cmpngt_ss(__m128 __a, __m128 __b)
/// Compares each of the corresponding 32-bit float values of the
/// 128-bit vectors of [4 x float] to determine if the values in the first
-/// operand are not greater than those in the second operand. Returns zero
-/// for false and all 1's for true in corresponding elements of the result.
+/// operand are not greater than those in the second operand.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFF for true.
///
/// \headerfile <x86intrin.h>
///
@@ -882,9 +899,10 @@ _mm_cmpngt_ps(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the value in the first operand is not greater
-/// than or equal to the corresponding value in the second operand and
-/// returns the result of the comparison (zero for false, all 1's for true)
-/// in the low-order bits of a vector of [4 x float].
+/// than or equal to the corresponding value in the second operand.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFF for true, in the
+/// low-order bits of a vector of [4 x float].
///
/// \headerfile <x86intrin.h>
///
@@ -910,8 +928,8 @@ _mm_cmpnge_ss(__m128 __a, __m128 __b)
/// Compares each of the corresponding 32-bit float values of the
/// 128-bit vectors of [4 x float] to determine if the values in the first
/// operand are not greater than or equal to those in the second operand.
-/// Returns zero for false and all 1's for true in corresponding elements of
-/// the result.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFF for true.
///
/// \headerfile <x86intrin.h>
///
@@ -931,8 +949,9 @@ _mm_cmpnge_ps(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the value in the first operand is ordered with
-/// respect to the corresponding value in the second operand and returns the
-/// result of the comparison (zero for false, all 1's for true) in the
+/// respect to the corresponding value in the second operand.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFF for true, in the
/// low-order bits of a vector of [4 x float].
///
/// \headerfile <x86intrin.h>
@@ -957,8 +976,8 @@ _mm_cmpord_ss(__m128 __a, __m128 __b)
/// Compares each of the corresponding 32-bit float values of the
/// 128-bit vectors of [4 x float] to determine if the values in the first
/// operand are ordered with respect to those in the second operand.
-/// Returns zero for false and all 1's for true in corresponding elements of
-/// the result.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFF for true.
///
/// \headerfile <x86intrin.h>
///
@@ -978,9 +997,10 @@ _mm_cmpord_ps(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the value in the first operand is unordered
-/// with respect to the corresponding value in the second operand and
-/// returns the result of the comparison (zero for false, all 1's for true)
-/// in the low-order bits of a vector of [4 x float].
+/// with respect to the corresponding value in the second operand.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFF for true, in the
+/// low-order bits of a vector of [4 x float].
///
/// \headerfile <x86intrin.h>
///
@@ -1004,8 +1024,8 @@ _mm_cmpunord_ss(__m128 __a, __m128 __b)
/// Compares each of the corresponding 32-bit float values of the
/// 128-bit vectors of [4 x float] to determine if the values in the first
/// operand are unordered with respect to those in the second operand.
-/// Returns zero for false and all 1's for true in corresponding elements of
-/// the result.
+///
+/// Each comparison yields 0x0 for false, 0xFFFFFFFF for true.
///
/// \headerfile <x86intrin.h>
///
@@ -1024,10 +1044,10 @@ _mm_cmpunord_ps(__m128 __a, __m128 __b)
}
/// Compares two 32-bit float values in the low-order bits of both
-/// operands for equality and returns the result of the comparison: 0 for
-/// false, 1 for true.
+/// operands for equality.
///
-/// If either of the two lower 32-bit values is NaN, 0 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two lower
+/// floating-point values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
@@ -1049,10 +1069,10 @@ _mm_comieq_ss(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the first operand is less than the second
-/// operand and returns the result of the comparison: 0 for false, 1 for
-/// true.
+/// operand.
///
-/// If either of the two lower 32-bit values is NaN, 0 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two lower
+/// floating-point values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
@@ -1074,10 +1094,10 @@ _mm_comilt_ss(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the first operand is less than or equal to the
-/// second operand and returns the result of the comparison: 0 for false, 1
-/// for true.
+/// second operand.
///
-/// If either of the two lower 32-bit values is NaN, 0 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two lower
+/// floating-point values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
@@ -1098,10 +1118,10 @@ _mm_comile_ss(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the first operand is greater than the second
-/// operand and returns the result of the comparison: 0 for false, 1 for
-/// true.
+/// operand.
///
-/// If either of the two lower 32-bit values is NaN, 0 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two lower
+/// floating-point values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
@@ -1122,10 +1142,10 @@ _mm_comigt_ss(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the first operand is greater than or equal to
-/// the second operand and returns the result of the comparison: 0 for
-/// false, 1 for true.
+/// the second operand.
///
-/// If either of the two lower 32-bit values is NaN, 0 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two lower
+/// floating-point values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
@@ -1146,10 +1166,10 @@ _mm_comige_ss(__m128 __a, __m128 __b)
/// Compares two 32-bit float values in the low-order bits of both
/// operands to determine if the first operand is not equal to the second
-/// operand and returns the result of the comparison: 0 for false, 1 for
-/// true.
+/// operand.
///
-/// If either of the two lower 32-bit values is NaN, 1 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two lower
+/// floating-point values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
@@ -1169,10 +1189,10 @@ _mm_comineq_ss(__m128 __a, __m128 __b)
}
/// Performs an unordered comparison of two 32-bit float values using
-/// the low-order bits of both operands to determine equality and returns
-/// the result of the comparison: 0 for false, 1 for true.
+/// the low-order bits of both operands to determine equality.
///
-/// If either of the two lower 32-bit values is NaN, 0 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two
+/// lower floating-point values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
@@ -1193,10 +1213,10 @@ _mm_ucomieq_ss(__m128 __a, __m128 __b)
/// Performs an unordered comparison of two 32-bit float values using
/// the low-order bits of both operands to determine if the first operand is
-/// less than the second operand and returns the result of the comparison:
-/// 0 for false, 1 for true.
+/// less than the second operand.
///
-/// If either of the two lower 32-bit values is NaN, 0 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two
+/// lower floating-point values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
@@ -1217,10 +1237,10 @@ _mm_ucomilt_ss(__m128 __a, __m128 __b)
/// Performs an unordered comparison of two 32-bit float values using
/// the low-order bits of both operands to determine if the first operand is
-/// less than or equal to the second operand and returns the result of the
-/// comparison: 0 for false, 1 for true.
+/// less than or equal to the second operand.
///
-/// If either of the two lower 32-bit values is NaN, 0 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two
+/// lower floating-point values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
@@ -1241,10 +1261,10 @@ _mm_ucomile_ss(__m128 __a, __m128 __b)
/// Performs an unordered comparison of two 32-bit float values using
/// the low-order bits of both operands to determine if the first operand is
-/// greater than the second operand and returns the result of the
-/// comparison: 0 for false, 1 for true.
+/// greater than the second operand.
///
-/// If either of the two lower 32-bit values is NaN, 0 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two
+/// lower floating-point values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
@@ -1265,10 +1285,10 @@ _mm_ucomigt_ss(__m128 __a, __m128 __b)
/// Performs an unordered comparison of two 32-bit float values using
/// the low-order bits of both operands to determine if the first operand is
-/// greater than or equal to the second operand and returns the result of
-/// the comparison: 0 for false, 1 for true.
+/// greater than or equal to the second operand.
///
-/// If either of the two lower 32-bit values is NaN, 0 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two
+/// lower floating-point values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
@@ -1288,10 +1308,10 @@ _mm_ucomige_ss(__m128 __a, __m128 __b)
}
/// Performs an unordered comparison of two 32-bit float values using
-/// the low-order bits of both operands to determine inequality and returns
-/// the result of the comparison: 0 for false, 1 for true.
+/// the low-order bits of both operands to determine inequality.
///
-/// If either of the two lower 32-bit values is NaN, 1 is returned.
+/// The comparison returns 0 for false, 1 for true. If either of the two
+/// lower floating-point values is NaN, returns 0.
///
/// \headerfile <x86intrin.h>
///
More information about the cfe-commits
mailing list