[clang] Add _MM_FROUND_TIES_TO_EVEN to avx512fintrin.h (PR #99691)
via cfe-commits
cfe-commits at lists.llvm.org
Mon Jul 22 10:30:40 PDT 2024
https://github.com/hpkfft updated https://github.com/llvm/llvm-project/pull/99691
>From b4fcf05f7df9365cd8289a20badad6ff485ecbd5 Mon Sep 17 00:00:00 2001
From: "hpkfft.com" <paul at hpkfft.com>
Date: Fri, 19 Jul 2024 12:35:33 -0700
Subject: [PATCH 1/2] Add _MM_FROUND_TIES_TO_EVEN to avx512fintrin.h
Intrinsics such as `_mm512_add_round_ps` take a rounding mode argument to specify the floating point rounding mode. This, and similar instructions, do NOT round their result to an integer. Thus it is inappropriate for user code to specify the existing `_MM_FROUND_TO_NEAREST_INT` when desiring to round to the nearest floating point number. This commit adds a suitable macro definition.
---
clang/lib/Headers/avx512fintrin.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h
index 4f172c74b31cb..2d7b5c534e554 100644
--- a/clang/lib/Headers/avx512fintrin.h
+++ b/clang/lib/Headers/avx512fintrin.h
@@ -43,6 +43,7 @@ typedef unsigned short __mmask16;
/* Rounding mode macros. */
#define _MM_FROUND_TO_NEAREST_INT 0x00
+#define _MM_FROUND_TIES_TO_EVEN 0x00
#define _MM_FROUND_TO_NEG_INF 0x01
#define _MM_FROUND_TO_POS_INF 0x02
#define _MM_FROUND_TO_ZERO 0x03
>From 1fd68574756bad264e0ef2a74226dfe0916cf49b Mon Sep 17 00:00:00 2001
From: Paul Caprioli <paul at hpkfft.com>
Date: Mon, 22 Jul 2024 10:17:05 -0700
Subject: [PATCH 2/2] Add _MM_FROUND_TO_NEAREST_TIES_EVEN to avx512fintrin.h
---
clang/lib/Headers/avx512fintrin.h | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/clang/lib/Headers/avx512fintrin.h b/clang/lib/Headers/avx512fintrin.h
index 2d7b5c534e554..6efed35760a22 100644
--- a/clang/lib/Headers/avx512fintrin.h
+++ b/clang/lib/Headers/avx512fintrin.h
@@ -42,12 +42,12 @@ typedef unsigned char __mmask8;
typedef unsigned short __mmask16;
/* Rounding mode macros. */
-#define _MM_FROUND_TO_NEAREST_INT 0x00
-#define _MM_FROUND_TIES_TO_EVEN 0x00
-#define _MM_FROUND_TO_NEG_INF 0x01
-#define _MM_FROUND_TO_POS_INF 0x02
-#define _MM_FROUND_TO_ZERO 0x03
-#define _MM_FROUND_CUR_DIRECTION 0x04
+#define _MM_FROUND_TO_NEAREST_INT 0x00
+#define _MM_FROUND_TO_NEAREST_TIES_EVEN 0x00
+#define _MM_FROUND_TO_NEG_INF 0x01
+#define _MM_FROUND_TO_POS_INF 0x02
+#define _MM_FROUND_TO_ZERO 0x03
+#define _MM_FROUND_CUR_DIRECTION 0x04
/* Constants for integer comparison predicates */
typedef enum {
More information about the cfe-commits
mailing list