Mesa (main): util/cpu_detect, gallium: use cpu_family CPU_S390X instead of separate flag

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Nov 25 13:34:56 UTC 2021


Module: Mesa
Branch: main
Commit: a46d155329201f840e4cb00897bde358392b9539
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a46d155329201f840e4cb00897bde358392b9539

Author: Marius Hillenbrand <mhillen at linux.ibm.com>
Date:   Thu Nov 25 12:48:27 2021 +0100

util/cpu_detect, gallium: use cpu_family CPU_S390X instead of separate flag

to also get rid of the additional function that I introduced before.

Fixes: 82b261417e53 ("util/cpu_detect: Add flag for IBM Z (s390x)")

Signed-off-by: Marius Hillenbrand <mhillen at linux.ibm.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13958>

---

 src/gallium/auxiliary/gallivm/lp_bld_arit.c |  4 ++--
 src/gallium/drivers/llvmpipe/lp_test_arit.c |  2 +-
 src/util/u_cpu_detect.c                     |  4 ++++
 src/util/u_cpu_detect.h                     | 12 ++----------
 4 files changed, 9 insertions(+), 13 deletions(-)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_arit.c b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
index 171880041a1..9cff0162b23 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_arit.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
@@ -1887,7 +1887,7 @@ arch_rounding_available(const struct lp_type type)
       return TRUE;
    else if (util_get_cpu_caps()->has_neon)
       return TRUE;
-   else if (util_cpu_caps_has_zarch())
+   else if (util_get_cpu_caps()->family == CPU_S390X)
       return TRUE;
 
    return FALSE;
@@ -1997,7 +1997,7 @@ lp_build_round_arch(struct lp_build_context *bld,
                     enum lp_build_round_mode mode)
 {
    if (util_get_cpu_caps()->has_sse4_1 || util_get_cpu_caps()->has_neon ||
-       util_cpu_caps_has_zarch()) {
+       util_get_cpu_caps()->family == CPU_S390X) {
       LLVMBuilderRef builder = bld->gallivm->builder;
       const struct lp_type type = bld->type;
       const char *intrinsic_root;
diff --git a/src/gallium/drivers/llvmpipe/lp_test_arit.c b/src/gallium/drivers/llvmpipe/lp_test_arit.c
index ff6cdac491f..504d3c3aa96 100644
--- a/src/gallium/drivers/llvmpipe/lp_test_arit.c
+++ b/src/gallium/drivers/llvmpipe/lp_test_arit.c
@@ -480,7 +480,7 @@ test_unary(unsigned verbose, FILE *fp, const struct unary_test_t *test, unsigned
          }
 
          if (!util_get_cpu_caps()->has_neon &&
-             !util_cpu_caps_has_zarch() &&
+             util_get_cpu_caps()->family != CPU_S390X &&
              test->ref == &nearbyintf && length == 2 &&
              ref != roundf(testval)) {
             /* FIXME: The generic (non SSE) path in lp_build_iround, which is
diff --git a/src/util/u_cpu_detect.c b/src/util/u_cpu_detect.c
index 955d087b8ea..7375fabfed8 100644
--- a/src/util/u_cpu_detect.c
+++ b/src/util/u_cpu_detect.c
@@ -813,6 +813,10 @@ util_cpu_detect_once(void)
    check_os_mips64_support();
 #endif /* PIPE_ARCH_MIPS64 */
 
+#if defined(PIPE_ARCH_S390)
+   util_cpu_caps.family = CPU_S390X;
+#endif
+
    get_cpu_topology();
 
    if (debug_get_option_dump_cpu()) {
diff --git a/src/util/u_cpu_detect.h b/src/util/u_cpu_detect.h
index 464ed7079b5..e89a3e0eef4 100644
--- a/src/util/u_cpu_detect.h
+++ b/src/util/u_cpu_detect.h
@@ -53,6 +53,8 @@ enum cpu_family {
    CPU_AMD_ZEN3,
    CPU_AMD_ZEN_NEXT,
    CPU_AMD_LAST,
+
+   CPU_S390X,
 };
 
 typedef uint32_t util_affinity_mask[UTIL_MAX_CPUS / 32];
@@ -140,16 +142,6 @@ util_get_cpu_caps(void)
 
 void util_cpu_detect(void);
 
-static inline bool
-util_cpu_caps_has_zarch(void)
-{
-#if defined(PIPE_ARCH_S390)
-   return true;
-#else
-   return false;
-#endif
-}
-
 
 #ifdef	__cplusplus
 }



More information about the mesa-commit mailing list