This commit is contained in:
Andrew Kane
2024-04-07 22:31:23 -07:00
parent 28367c8f30
commit 8a7f5d14b8
2 changed files with 8 additions and 3 deletions

View File

@@ -103,7 +103,8 @@ pq_sendhalf(StringInfo buf, half h)
float
HalfToFloat4(half num)
{
#if defined(F16C_SUPPORT)
#if defined(F16C_SUPPORT) && !defined(_MSC_VER)
/* TODO Use instrinsics for Windows */
return _cvtsh_ss(num);
#elif defined(FLT16_SUPPORT)
return (float) num;
@@ -190,7 +191,8 @@ HalfToFloat4(half num)
half
Float4ToHalfUnchecked(float num)
{
#if defined(F16C_SUPPORT)
#if defined(F16C_SUPPORT) && !defined(_MSC_VER)
/* TODO Use instrinsics for Windows */
return _cvtss_sh(num, 0);
#elif defined(FLT16_SUPPORT)
return (_Float16) num;

View File

@@ -8,7 +8,10 @@
#include "vector.h"
/* F16C has better performance than _Float16 (on x86-64) */
#if defined(__F16C__) || defined(__AVX2__)
#if defined(__F16C__)
#define F16C_SUPPORT
/* TODO Improve detection */
#elif defined(_MSC_VER) && defined(__AVX2__)
#define F16C_SUPPORT
#elif defined(__FLT16_MAX__)
#define FLT16_SUPPORT