[clang] [clang][x86] Add constexpr support for some basic SSE1 intrinsics (PR #111001)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 3 07:46:18 PDT 2024
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff 241f93658a8a9509216b841d3272194bd34fed36 d3e47ffe0bc2b6080cf74846baf78a3e7ec5b1ca --extensions c,h -- clang/lib/Headers/xmmintrin.h clang/test/CodeGen/X86/sse-builtins.c
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/clang/lib/Headers/xmmintrin.h b/clang/lib/Headers/xmmintrin.h
index e755556f9c..ae0199779a 100644
--- a/clang/lib/Headers/xmmintrin.h
+++ b/clang/lib/Headers/xmmintrin.h
@@ -83,8 +83,8 @@ typedef unsigned int __v4su __attribute__((__vector_size__(16)));
/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the sum
/// of the lower 32 bits of both operands. The upper 96 bits are copied from
/// the upper 96 bits of the first source operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm_add_ss(__m128 __a, __m128 __b) {
+static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_add_ss(__m128 __a,
+ __m128 __b) {
__a[0] += __b[0];
return __a;
}
@@ -102,8 +102,8 @@ _mm_add_ss(__m128 __a, __m128 __b) {
/// A 128-bit vector of [4 x float] containing one of the source operands.
/// \returns A 128-bit vector of [4 x float] containing the sums of both
/// operands.
-static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm_add_ps(__m128 __a, __m128 __b) {
+static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_add_ps(__m128 __a,
+ __m128 __b) {
return (__m128)((__v4sf)__a + (__v4sf)__b);
}
@@ -123,8 +123,8 @@ _mm_add_ps(__m128 __a, __m128 __b) {
/// \returns A 128-bit vector of [4 x float] whose lower 32 bits contain the
/// difference of the lower 32 bits of both operands. The upper 96 bits are
/// copied from the upper 96 bits of the first source operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm_sub_ss(__m128 __a, __m128 __b) {
+static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_sub_ss(__m128 __a,
+ __m128 __b) {
__a[0] -= __b[0];
return __a;
}
@@ -143,8 +143,8 @@ _mm_sub_ss(__m128 __a, __m128 __b) {
/// A 128-bit vector of [4 x float] containing the subtrahend.
/// \returns A 128-bit vector of [4 x float] containing the differences between
/// both operands.
-static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm_sub_ps(__m128 __a, __m128 __b) {
+static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_sub_ps(__m128 __a,
+ __m128 __b) {
return (__m128)((__v4sf)__a - (__v4sf)__b);
}
@@ -164,8 +164,8 @@ _mm_sub_ps(__m128 __a, __m128 __b) {
/// \returns A 128-bit vector of [4 x float] containing the product of the lower
/// 32 bits of both operands. The upper 96 bits are copied from the upper 96
/// bits of the first source operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm_mul_ss(__m128 __a, __m128 __b) {
+static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_mul_ss(__m128 __a,
+ __m128 __b) {
__a[0] *= __b[0];
return __a;
}
@@ -183,8 +183,8 @@ _mm_mul_ss(__m128 __a, __m128 __b) {
/// A 128-bit vector of [4 x float] containing one of the source operands.
/// \returns A 128-bit vector of [4 x float] containing the products of both
/// operands.
-static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm_mul_ps(__m128 __a, __m128 __b) {
+static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_mul_ps(__m128 __a,
+ __m128 __b) {
return (__m128)((__v4sf)__a * (__v4sf)__b);
}
@@ -204,8 +204,8 @@ _mm_mul_ps(__m128 __a, __m128 __b) {
/// \returns A 128-bit vector of [4 x float] containing the quotients of the
/// lower 32 bits of both operands. The upper 96 bits are copied from the
/// upper 96 bits of the first source operand.
-static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm_div_ss(__m128 __a, __m128 __b) {
+static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_div_ss(__m128 __a,
+ __m128 __b) {
__a[0] /= __b[0];
return __a;
}
@@ -222,8 +222,8 @@ _mm_div_ss(__m128 __a, __m128 __b) {
/// A 128-bit vector of [4 x float] containing the divisor.
/// \returns A 128-bit vector of [4 x float] containing the quotients of both
/// operands.
-static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm_div_ps(__m128 __a, __m128 __b) {
+static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_div_ps(__m128 __a,
+ __m128 __b) {
return (__m128)((__v4sf)__a / (__v4sf)__b);
}
@@ -437,8 +437,8 @@ _mm_max_ps(__m128 __a, __m128 __b)
/// A 128-bit vector containing one of the source operands.
/// \returns A 128-bit vector of [4 x float] containing the bitwise AND of the
/// values between both operands.
-static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm_and_ps(__m128 __a, __m128 __b) {
+static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_and_ps(__m128 __a,
+ __m128 __b) {
return (__m128)((__v4su)__a & (__v4su)__b);
}
@@ -475,8 +475,8 @@ _mm_andnot_ps(__m128 __a, __m128 __b) {
/// A 128-bit vector of [4 x float] containing one of the source operands.
/// \returns A 128-bit vector of [4 x float] containing the bitwise OR of the
/// values between both operands.
-static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm_or_ps(__m128 __a, __m128 __b) {
+static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_or_ps(__m128 __a,
+ __m128 __b) {
return (__m128)((__v4su)__a | (__v4su)__b);
}
@@ -493,8 +493,8 @@ _mm_or_ps(__m128 __a, __m128 __b) {
/// A 128-bit vector of [4 x float] containing one of the source operands.
/// \returns A 128-bit vector of [4 x float] containing the bitwise exclusive OR
/// of the values between both operands.
-static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm_xor_ps(__m128 __a, __m128 __b) {
+static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_xor_ps(__m128 __a,
+ __m128 __b) {
return (__m128)((__v4su)__a ^ (__v4su)__b);
}
@@ -1734,8 +1734,7 @@ _mm_cvt_pi2ps(__m128 __a, __m64 __b)
/// A 128-bit vector of [4 x float]. The lower 32 bits of this operand are
/// used in the extraction.
/// \returns A 32-bit float containing the extracted value.
-static __inline__ float __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm_cvtss_f32(__m128 __a) {
+static __inline__ float __DEFAULT_FN_ATTRS_CONSTEXPR _mm_cvtss_f32(__m128 __a) {
return __a[0];
}
@@ -1926,8 +1925,7 @@ _mm_undefined_ps(void)
/// \returns An initialized 128-bit floating-point vector of [4 x float]. The
/// lower 32 bits contain the value provided in the source operand. The
/// upper 96 bits are set to zero.
-static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm_set_ss(float __w) {
+static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_ss(float __w) {
return __extension__ (__m128){ __w, 0.0f, 0.0f, 0.0f };
}
@@ -1943,8 +1941,7 @@ _mm_set_ss(float __w) {
/// A single-precision floating-point value used to initialize each vector
/// element of the result.
/// \returns An initialized 128-bit floating-point vector of [4 x float].
-static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm_set1_ps(float __w) {
+static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set1_ps(float __w) {
return __extension__ (__m128){ __w, __w, __w, __w };
}
@@ -1961,9 +1958,8 @@ _mm_set1_ps(float __w) {
/// A single-precision floating-point value used to initialize each vector
/// element of the result.
/// \returns An initialized 128-bit floating-point vector of [4 x float].
-static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm_set_ps1(float __w) {
- return _mm_set1_ps(__w);
+static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_ps1(float __w) {
+ return _mm_set1_ps(__w);
}
/// Constructs a 128-bit floating-point vector of [4 x float]
@@ -1987,8 +1983,10 @@ _mm_set_ps1(float __w) {
/// A single-precision floating-point value used to initialize bits [31:0]
/// of the result.
/// \returns An initialized 128-bit floating-point vector of [4 x float].
-static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm_set_ps(float __z, float __y, float __x, float __w) {
+static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_set_ps(float __z,
+ float __y,
+ float __x,
+ float __w) {
return __extension__ (__m128){ __w, __x, __y, __z };
}
@@ -2014,8 +2012,10 @@ _mm_set_ps(float __z, float __y, float __x, float __w) {
/// A single-precision floating-point value used to initialize bits [127:96]
/// of the result.
/// \returns An initialized 128-bit floating-point vector of [4 x float].
-static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm_setr_ps(float __z, float __y, float __x, float __w) {
+static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_setr_ps(float __z,
+ float __y,
+ float __x,
+ float __w) {
return __extension__ (__m128){ __z, __y, __x, __w };
}
@@ -2028,8 +2028,7 @@ _mm_setr_ps(float __z, float __y, float __x, float __w) {
///
/// \returns An initialized 128-bit floating-point vector of [4 x float] with
/// all elements set to zero.
-static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm_setzero_ps(void) {
+static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_setzero_ps(void) {
return __extension__ (__m128){ 0.0f, 0.0f, 0.0f, 0.0f };
}
@@ -2817,8 +2816,8 @@ _mm_unpacklo_ps(__m128 __a, __m128 __b) {
/// A 128-bit floating-point vector of [4 x float]. The lower 32 bits are
/// written to the lower 32 bits of the result.
/// \returns A 128-bit floating-point vector of [4 x float].
-static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR
-_mm_move_ss(__m128 __a, __m128 __b) {
+static __inline__ __m128 __DEFAULT_FN_ATTRS_CONSTEXPR _mm_move_ss(__m128 __a,
+ __m128 __b) {
__a[0] = __b[0];
return __a;
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/111001
More information about the cfe-commits
mailing list