SWDEV-375004 - Fix rocprim test failure

- For !__HIPCC_RTC__ case, operator<<(std::ostream& os, const hip_bfloat16& bf16) calls itself in endless recursion
- Convert hip_bfloat16 to float to fix this

Change-Id: I252a656817550caf43c587cebf461474f12b8c0c
This commit is contained in:
Rakesh Roy
2023-01-20 22:39:43 +05:30
committed by Rakesh Roy
vanhempi 70bfc6145b
commit 8b00f56577
@@ -32,10 +32,8 @@
#include "host_defines.h"
#if defined(__HIPCC_RTC__)
#define __HOST_DEVICE__ __device__
#define HIP_OSTREAM __hip_internal::ostream
#else
#define __HOST_DEVICE__ __host__ __device__
#define HIP_OSTREAM std::ostream
#endif
#if __cplusplus < 201103L || !defined(__HIPCC__)
@@ -181,12 +179,12 @@ static_assert(__hip_internal::is_trivial<hip_bfloat16>{},
static_assert(sizeof(hip_bfloat16) == sizeof(hip_bfloat16_public)
&& offsetof(hip_bfloat16, data) == offsetof(hip_bfloat16_public, data),
"internal hip_bfloat16 does not match public hip_bfloat16");
#endif
inline HIP_OSTREAM& operator<<(HIP_OSTREAM& os, const hip_bfloat16& bf16)
inline std::ostream& operator<<(std::ostream& os, const hip_bfloat16& bf16)
{
return os << bf16;
return os << float(bf16);
}
#endif
inline __HOST_DEVICE__ hip_bfloat16 operator+(hip_bfloat16 a)
{