From 38a359f5f31a8d0688a30b4ed26168d5069b4f82 Mon Sep 17 00:00:00 2001 From: Alexandra Sidorova Date: Thu, 8 Jan 2026 17:49:13 +0400 Subject: [PATCH] [CLR] prevent compilation errors for non-HIP compilers in amd_hip_mx_common.h and amd_hip_ocp_types.h (#2448) Co-authored-by: Andrei Kochin --- .../clr/hipamd/include/hip/amd_detail/amd_hip_mx_common.h | 5 +++++ .../clr/hipamd/include/hip/amd_detail/amd_hip_ocp_types.h | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/projects/clr/hipamd/include/hip/amd_detail/amd_hip_mx_common.h b/projects/clr/hipamd/include/hip/amd_detail/amd_hip_mx_common.h index b4c925a2ea..7762c6e693 100644 --- a/projects/clr/hipamd/include/hip/amd_detail/amd_hip_mx_common.h +++ b/projects/clr/hipamd/include/hip/amd_detail/amd_hip_mx_common.h @@ -43,6 +43,8 @@ enum hipRoundMode { hipRoundMinInf = 3, }; +#if defined(__clang__) && defined(__HIP__) + namespace internal { __host__ __device__ static inline __amd_fp16_storage_t half_to_f16(const __half val) { __half_raw tmp = val; @@ -71,4 +73,7 @@ __host__ __device__ static inline __amd_bf16x2_storage_t hipbf162_to_bf16x2(cons } u{val}; return u.bf16; } + } // namespace internal + +#endif // defined(__clang__) && defined(__HIP__) diff --git a/projects/clr/hipamd/include/hip/amd_detail/amd_hip_ocp_types.h b/projects/clr/hipamd/include/hip/amd_detail/amd_hip_ocp_types.h index 661c027884..0b2738a7d3 100644 --- a/projects/clr/hipamd/include/hip/amd_detail/amd_hip_ocp_types.h +++ b/projects/clr/hipamd/include/hip/amd_detail/amd_hip_ocp_types.h @@ -83,8 +83,9 @@ typedef _Float16 __attribute__((vector_size(16))) __amd_fp16x8_storage_t; typedef _Float16 __attribute__((vector_size(64))) __amd_fp16x32_storage_t; typedef uint32_t __attribute__((vector_size(24))) __amd_fp6x32_storage_t; typedef short __attribute__((vector_size(4))) __amd_shortx2_storage_t; -#else -#error "Only supported by HIPCC or GCC >= 13." #endif +#if (defined(__clang__) && (__clang_major__ > 17) && defined(__HIP__)) || \ + (defined(__GNUC__) && (__GNUC__ > 13)) static_assert(sizeof(__amd_uintx2_storage_t) == sizeof(__amd_fp8x8_storage_t)); +#endif