[clang] Implement the `fmod` intrinsic (PR #130320)
via cfe-commits
cfe-commits at lists.llvm.org
Fri Mar 7 13:17:19 PST 2025
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 a2b3dafcdfbf3cdeea8a722fe47402df69c20221 00b3e767b0fe222f6b0bfa9fe49633df2984a641 --extensions h -- clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h clang/lib/Headers/hlsl/hlsl_detail.h clang/lib/Headers/hlsl/hlsl_intrinsics.h
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/clang/lib/Headers/hlsl/hlsl_detail.h b/clang/lib/Headers/hlsl/hlsl_detail.h
index 470cc4db24..918030fbb0 100644
--- a/clang/lib/Headers/hlsl/hlsl_detail.h
+++ b/clang/lib/Headers/hlsl/hlsl_detail.h
@@ -102,7 +102,7 @@ constexpr enable_if_t<is_same<float, T>::value || is_same<half, T>::value, T>
fmod_impl(T X, T Y) {
#if !defined(__DIRECTX__)
return __builtin_elementwise_fmod(X, Y);
-#else
+#else
T div = X / Y;
bool ge = div >= -div;
T frc = frac(abs(div));
@@ -114,10 +114,10 @@ template <typename T, int N>
constexpr vector<T, N> fmod_vec_impl(vector<T, N> X, vector<T, N> Y) {
#if !defined(__DIRECTX__)
return __builtin_elementwise_fmod(X, Y);
-#else
+#else
vector<T, N> div = X / Y;
vector<bool, N> ge = div >= -div;
- vector<T, N> frc = frac(abs(div));
+ vector<T, N> frc = frac(abs(div));
return select<T>(ge, frc, -frc) * Y;
#endif
}
diff --git a/clang/lib/Headers/hlsl/hlsl_intrinsics.h b/clang/lib/Headers/hlsl/hlsl_intrinsics.h
index 3393c955e9..a01e0bd708 100644
--- a/clang/lib/Headers/hlsl/hlsl_intrinsics.h
+++ b/clang/lib/Headers/hlsl/hlsl_intrinsics.h
@@ -122,13 +122,9 @@ const inline float distance(vector<float, N> X, vector<float, N> Y) {
/// parameter.
_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
-const inline half fmod(half X, half Y) {
- return __detail::fmod_impl(X, Y);
-}
+const inline half fmod(half X, half Y) { return __detail::fmod_impl(X, Y); }
-const inline float fmod(float X, float Y) {
- return __detail::fmod_impl(X, Y);
-}
+const inline float fmod(float X, float Y) { return __detail::fmod_impl(X, Y); }
template <int N>
_HLSL_16BIT_AVAILABILITY(shadermodel, 6.2)
``````````
</details>
https://github.com/llvm/llvm-project/pull/130320
More information about the cfe-commits
mailing list