[clang] [Headers][X86] Add specific results to comparisons (PR #83316)

2024-02-28 Thread Paul T Robinson via cfe-commits

https://github.com/pogo59 created 
https://github.com/llvm/llvm-project/pull/83316

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.

>From 2afca3e91d96cc77f43556bbf71b6e60a22e45f2 Mon Sep 17 00:00:00 2001
From: Paul Robinson 
Date: Wed, 28 Feb 2024 11:04:41 -0800
Subject: [PATCH] [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 
 ///
@@ -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 
 ///
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 
 ///
@@ -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 
 ///
@@ -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 
 ///
@@ -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 
 ///
@@ -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 
 ///
@@ -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 ele

[clang] [Headers][X86] Add specific results to comparisons (PR #83316)

2024-02-28 Thread Paul T Robinson via cfe-commits

pogo59 wrote:

Also tag @cflores for your review.

https://github.com/llvm/llvm-project/pull/83316
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Headers][X86] Add specific results to comparisons (PR #83316)

2024-02-28 Thread via cfe-commits

llvmbot wrote:



@llvm/pr-subscribers-clang

@llvm/pr-subscribers-backend-x86

Author: Paul T Robinson (pogo59)


Changes

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.

---

Patch is 23.22 KiB, truncated to 20.00 KiB below, full version: 
https://github.com/llvm/llvm-project/pull/83316.diff


2 Files Affected:

- (modified) clang/lib/Headers/smmintrin.h (+4-2) 
- (modified) clang/lib/Headers/xmmintrin.h (+81-65) 


``diff
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 
 ///
@@ -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 
 ///
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 
 ///
@@ -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 
 ///
@@ -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 
 ///
@@ -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 
 ///
@@ -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 
 ///
@@ -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 
 ///
@@ -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 resu

[clang] [Headers][X86] Add specific results to comparisons (PR #83316)

2024-02-28 Thread Phoebe Wang via cfe-commits

https://github.com/phoebewang approved this pull request.

LGTM.

https://github.com/llvm/llvm-project/pull/83316
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Headers][X86] Add specific results to comparisons (PR #83316)

2024-03-02 Thread Simon Pilgrim via cfe-commits

RKSimon wrote:

@pogo This doesn't match what we did for the various cmp intrinsics in 
emmintrin.h - should it?
```cpp
/// Compares each of the corresponding signed 32-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, 0x for true.
///
/// \headerfile 
///
/// This intrinsic corresponds to the  VPCMPGTD / PCMPGTD  instruction.
```

https://github.com/llvm/llvm-project/pull/83316
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Headers][X86] Add specific results to comparisons (PR #83316)

2024-03-07 Thread Paul T Robinson via cfe-commits

pogo59 wrote:

@RKSimon I was not aware of the comparison intrinsics in emmintrin.h. I will 
follow that pattern.

https://github.com/llvm/llvm-project/pull/83316
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Headers][X86] Add specific results to comparisons (PR #83316)

2024-03-07 Thread Paul T Robinson via cfe-commits

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 
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 
 ///
@@ -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 
 ///
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 
 ///
@@ -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 
 ///
@@ -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 
 ///
@@ -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 
 ///
@@ -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 
 ///
@@ -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 
 ///
@@ -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
 ///th

[clang] [Headers][X86] Add specific results to comparisons (PR #83316)

2024-03-07 Thread Paul T Robinson via cfe-commits

pogo59 wrote:

@RKSimon note this will affect what the tooltips show. Is that okay?

https://github.com/llvm/llvm-project/pull/83316
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Headers][X86] Add specific results to comparisons (PR #83316)

2024-03-07 Thread via cfe-commits

github-actions[bot] wrote:




:warning: C/C++ code formatter, clang-format found issues in your code. 
:warning:



You can test this locally with the following command:


``bash
git-clang-format --diff b334664f9f3a098b6f3fd9cfd17b856a9edfe446 
1d691620a0ef9632d85e4691dc644352d4abf2b2 -- clang/lib/Headers/emmintrin.h 
clang/lib/Headers/smmintrin.h clang/lib/Headers/xmmintrin.h
``





View the diff from clang-format here.


``diff
diff --git a/clang/lib/Headers/emmintrin.h b/clang/lib/Headers/emmintrin.h
index 43ec61bbe8..f3e6843b93 100644
--- a/clang/lib/Headers/emmintrin.h
+++ b/clang/lib/Headers/emmintrin.h
@@ -1093,8 +1093,8 @@ static __inline__ int __DEFAULT_FN_ATTRS 
_mm_comineq_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 returns 0 for false, 1 for true. If either of the two 
lower
-///double-precision values is NaN, returns 0.
+///The comparison returns 0 for false, 1 for true. If either of the two
+///lower double-precision values is NaN, returns 0.
 ///
 /// \headerfile 
 ///
@@ -1117,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 returns 0 for false, 1 for true. If either of the two 
lower
-///double-precision values is NaN, returns 0.
+///The comparison returns 0 for false, 1 for true. If either of the two
+///lower double-precision values is NaN, returns 0.
 ///
 /// \headerfile 
 ///
@@ -1141,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 returns 0 for false, 1 for true. If either of the two 
lower
-///double-precision values is NaN, returns 0.
+///The comparison returns 0 for false, 1 for true. If either of the two
+///lower double-precision values is NaN, returns 0.
 ///
 /// \headerfile 
 ///
@@ -1165,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 returns 0 for false, 1 for true. If either of the two 
lower
-///double-precision values is NaN, returns 0.
+///The comparison returns 0 for false, 1 for true. If either of the two
+///lower double-precision values is NaN, returns 0.
 ///
 /// \headerfile 
 ///
@@ -1213,8 +1213,8 @@ 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 returns 0 for false, 1 for true. If either of the two 
lower
-///double-precision values is NaN, 1 is returned.
+///The comparison returns 0 for false, 1 for true. If either of the two
+///lower double-precision values is NaN, 1 is returned.
 ///
 /// \headerfile 
 ///
diff --git a/clang/lib/Headers/xmmintrin.h b/clang/lib/Headers/xmmintrin.h
index 5151ff6a45..ae7529c129 100644
--- a/clang/lib/Headers/xmmintrin.h
+++ b/clang/lib/Headers/xmmintrin.h
@@ -1046,8 +1046,8 @@ _mm_cmpunord_ps(__m128 __a, __m128 __b)
 /// Compares two 32-bit float values in the low-order bits of both
 ///operands for equality.
 ///
-///The comparison returns 0 for false, 1 for true. If either of the two 
lower
-///floating-point values is NaN, returns 0.
+///The comparison returns 0 for false, 1 for true. If either of the two
+///lower floating-point values is NaN, returns 0.
 ///
 /// \headerfile 
 ///
@@ -1071,8 +1071,8 @@ _mm_comieq_ss(__m128 __a, __m128 __b)
 ///operands to determine if the first operand is less than the second
 ///operand.
 ///
-///The comparison returns 0 for false, 1 for true. If either of the two 
lower
-///floating-point values is NaN, returns 0.
+///The comparison returns 0 for false, 1 for true. If either of the two
+///lower floating-point values is NaN, returns 0.
 ///
 /// \headerfile 
 ///
@@ -1096,8 +1096,8 @@ _mm_comilt_ss(__m128 __a, __m128 __b)
 ///operands to determine if the first operand is less than or equal to the
 ///second operand.
 ///
-///The comparison returns 0 for false, 1 for true. If either of the two 
lower
-///floating-point values is NaN, returns 0.
+///The comparison returns 0 for false, 1 for true. If either of the two
+///lower floating-point values is NaN, returns 0.
 ///
 /// \headerfile 
 ///
@@ -1120,8 +1120,8 @@ _mm_comile_ss(__m128 __a, __m128 __b)
 ///operands to determine if the first operand is greater than the second
 ///operand.
 ///
-///The comparison returns 0 for false, 1 for t

[clang] [Headers][X86] Add specific results to comparisons (PR #83316)

2024-03-07 Thread Paul T Robinson via cfe-commits

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 
Date: Wed, 28 Feb 2024 11:04:41 -0800
Subject: [PATCH 1/3] [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 
 ///
@@ -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 
 ///
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 
 ///
@@ -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 
 ///
@@ -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 
 ///
@@ -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 
 ///
@@ -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 
 ///
@@ -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 
 ///
@@ -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
 ///th

[clang] [Headers][X86] Add specific results to comparisons (PR #83316)

2024-03-08 Thread Simon Pilgrim via cfe-commits

RKSimon wrote:

> @RKSimon note this will affect what the tooltips show. Is that okay?

I think so - we're just losing the extra info about -1/0 or 1/0 result values?

https://github.com/llvm/llvm-project/pull/83316
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Headers][X86] Add specific results to comparisons (PR #83316)

2024-03-08 Thread Paul T Robinson via cfe-commits

pogo59 wrote:

> I think so - we're just losing the extra info about -1/0 or 1/0 result values?

That's my understanding. I haven't actually tried regenerating the tooltips to 
check.

https://github.com/llvm/llvm-project/pull/83316
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [Headers][X86] Add specific results to comparisons (PR #83316)

2024-03-11 Thread Paul T Robinson via cfe-commits

https://github.com/pogo59 closed https://github.com/llvm/llvm-project/pull/83316
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits