Skip to content

Commit 732822e

Browse files
aratajewigcbot
authored andcommitted
Implement support for KHR SPV-IR for native math functions from OpenCL Extended Instruction Set
This change includes support for the following functions: native_cos,native_divide,native_exp,native_exp2,native_exp10,native_log,native_log2, native_log10,native_powr,native_recip,native_rsqrt,native_sin,native_sqrt,native_tan This is a preparation for SPIRV Translator switchover to vanilla version. Vanilla translator produces slightly different form of SPIRV builtins which is described here: https://github.com/KhronosGroup/SPIRV-LLVM-Translator/blob/master/docs/SPIRVRepresentationInLLVM.rst The plan is to support both versions until translator switchover is done. Once vanilla translator is enabled, old version of SPIRV builtins will get cleaned up.
1 parent 02347db commit 732822e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+536
-536
lines changed

IGC/BiFModule/Headers/spirv_math.h

Lines changed: 290 additions & 290 deletions
Large diffs are not rendered by default.

IGC/BiFModule/Implementation/Geometric/fast_length.cl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ INLINE float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fast_length, _f32, )(float p )
1414
}
1515

1616
INLINE float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fast_length, _v2f32, )(float2 p ){
17-
return __builtin_spirv_OpenCL_native_sqrt_f32( SPIRV_BUILTIN(Dot, _v2f32_v2f32, )( p, p ) );
17+
return SPIRV_OCL_BUILTIN(native_sqrt, _f32, )( SPIRV_BUILTIN(Dot, _v2f32_v2f32, )( p, p ) );
1818
}
1919

2020
INLINE float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fast_length, _v3f32, )(float3 p ){
21-
return __builtin_spirv_OpenCL_native_sqrt_f32( SPIRV_BUILTIN(Dot, _v3f32_v3f32, )( p, p ) );
21+
return SPIRV_OCL_BUILTIN(native_sqrt, _f32, )( SPIRV_BUILTIN(Dot, _v3f32_v3f32, )( p, p ) );
2222
}
2323

2424
INLINE float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fast_length, _v4f32, )(float4 p ){
25-
return __builtin_spirv_OpenCL_native_sqrt_f32( SPIRV_BUILTIN(Dot, _v4f32_v4f32, )( p, p ) );
25+
return SPIRV_OCL_BUILTIN(native_sqrt, _f32, )( SPIRV_BUILTIN(Dot, _v4f32_v4f32, )( p, p ) );
2626
}

IGC/BiFModule/Implementation/Geometric/fast_normalize.cl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,18 @@ INLINE float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fast_normalize, _f32, )(float
1515

1616
INLINE float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fast_normalize, _v2f32, )(float2 p ){
1717
float l2 = SPIRV_BUILTIN(Dot, _v2f32_v2f32, )( p, p );
18-
float2 n = p * __builtin_spirv_OpenCL_native_rsqrt_f32( l2 );;
18+
float2 n = p * SPIRV_OCL_BUILTIN(native_rsqrt, _f32, )( l2 );;
1919
return l2 == 0.0f ? p : n;
2020
}
2121

2222
INLINE float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fast_normalize, _v3f32, )(float3 p ){
2323
float l2 = SPIRV_BUILTIN(Dot, _v3f32_v3f32, )( p, p );
24-
float3 n = p * __builtin_spirv_OpenCL_native_rsqrt_f32( l2 );;
24+
float3 n = p * SPIRV_OCL_BUILTIN(native_rsqrt, _f32, )( l2 );;
2525
return l2 == 0.0f ? p : n;
2626
}
2727

2828
INLINE float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(fast_normalize, _v4f32, )(float4 p ){
2929
float l2 = SPIRV_BUILTIN(Dot, _v4f32_v4f32, )( p, p );
30-
float4 n = p * __builtin_spirv_OpenCL_native_rsqrt_f32( l2 );;
30+
float4 n = p * SPIRV_OCL_BUILTIN(native_rsqrt, _f32, )( l2 );;
3131
return l2 == 0.0f ? p : n;
3232
}

IGC/BiFModule/Implementation/Half/half_exp.cl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,25 @@ SPDX-License-Identifier: MIT
1010
#include "../../Headers/spirv.h"
1111

1212
INLINE float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp, _f32, )(float x ){
13-
return __builtin_spirv_OpenCL_native_exp_f32(x);
13+
return SPIRV_OCL_BUILTIN(native_exp, _f32, )(x);
1414
}
1515

1616
INLINE float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp, _v2f32, )(float2 x ){
17-
return __builtin_spirv_OpenCL_native_exp_v2f32(x);
17+
return SPIRV_OCL_BUILTIN(native_exp, _v2f32, )(x);
1818
}
1919

2020
INLINE float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp, _v3f32, )(float3 x ){
21-
return __builtin_spirv_OpenCL_native_exp_v3f32(x);
21+
return SPIRV_OCL_BUILTIN(native_exp, _v3f32, )(x);
2222
}
2323

2424
INLINE float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp, _v4f32, )(float4 x ){
25-
return __builtin_spirv_OpenCL_native_exp_v4f32(x);
25+
return SPIRV_OCL_BUILTIN(native_exp, _v4f32, )(x);
2626
}
2727

2828
INLINE float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp, _v8f32, )(float8 x ){
29-
return __builtin_spirv_OpenCL_native_exp_v8f32(x);
29+
return SPIRV_OCL_BUILTIN(native_exp, _v8f32, )(x);
3030
}
3131

3232
INLINE float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp, _v16f32, )(float16 x ){
33-
return __builtin_spirv_OpenCL_native_exp_v16f32(x);
33+
return SPIRV_OCL_BUILTIN(native_exp, _v16f32, )(x);
3434
}

IGC/BiFModule/Implementation/Half/half_exp10.cl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,25 @@ SPDX-License-Identifier: MIT
1010
#include "../../Headers/spirv.h"
1111

1212
INLINE float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp10, _f32, )(float x ){
13-
return __builtin_spirv_OpenCL_native_exp10_f32(x);
13+
return SPIRV_OCL_BUILTIN(native_exp10, _f32, )(x);
1414
}
1515

1616
INLINE float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp10, _v2f32, )(float2 x ){
17-
return __builtin_spirv_OpenCL_native_exp10_v2f32(x);
17+
return SPIRV_OCL_BUILTIN(native_exp10, _v2f32, )(x);
1818
}
1919

2020
INLINE float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp10, _v3f32, )(float3 x ){
21-
return __builtin_spirv_OpenCL_native_exp10_v3f32(x);
21+
return SPIRV_OCL_BUILTIN(native_exp10, _v3f32, )(x);
2222
}
2323

2424
INLINE float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp10, _v4f32, )(float4 x ){
25-
return __builtin_spirv_OpenCL_native_exp10_v4f32(x);
25+
return SPIRV_OCL_BUILTIN(native_exp10, _v4f32, )(x);
2626
}
2727

2828
INLINE float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp10, _v8f32, )(float8 x ){
29-
return __builtin_spirv_OpenCL_native_exp10_v8f32(x);
29+
return SPIRV_OCL_BUILTIN(native_exp10, _v8f32, )(x);
3030
}
3131

3232
INLINE float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp10, _v16f32, )(float16 x ){
33-
return __builtin_spirv_OpenCL_native_exp10_v16f32(x);
33+
return SPIRV_OCL_BUILTIN(native_exp10, _v16f32, )(x);
3434
}

IGC/BiFModule/Implementation/Half/half_exp2.cl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,25 @@ SPDX-License-Identifier: MIT
1010
#include "../../Headers/spirv.h"
1111

1212
INLINE float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp2, _f32, )(float x ){
13-
return __builtin_spirv_OpenCL_native_exp2_f32(x);
13+
return SPIRV_OCL_BUILTIN(native_exp2, _f32, )(x);
1414
}
1515

1616
INLINE float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp2, _v2f32, )(float2 x ){
17-
return __builtin_spirv_OpenCL_native_exp2_v2f32(x);
17+
return SPIRV_OCL_BUILTIN(native_exp2, _v2f32, )(x);
1818
}
1919

2020
INLINE float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp2, _v3f32, )(float3 x ){
21-
return __builtin_spirv_OpenCL_native_exp2_v3f32(x);
21+
return SPIRV_OCL_BUILTIN(native_exp2, _v3f32, )(x);
2222
}
2323

2424
INLINE float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp2, _v4f32, )(float4 x ){
25-
return __builtin_spirv_OpenCL_native_exp2_v4f32(x);
25+
return SPIRV_OCL_BUILTIN(native_exp2, _v4f32, )(x);
2626
}
2727

2828
INLINE float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp2, _v8f32, )(float8 x ){
29-
return __builtin_spirv_OpenCL_native_exp2_v8f32(x);
29+
return SPIRV_OCL_BUILTIN(native_exp2, _v8f32, )(x);
3030
}
3131

3232
INLINE float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_exp2, _v16f32, )(float16 x ){
33-
return __builtin_spirv_OpenCL_native_exp2_v16f32(x);
33+
return SPIRV_OCL_BUILTIN(native_exp2, _v16f32, )(x);
3434
}

IGC/BiFModule/Implementation/Half/half_log.cl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,25 @@ SPDX-License-Identifier: MIT
1010
#include "../../Headers/spirv.h"
1111

1212
INLINE float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log, _f32, )(float x ){
13-
return __builtin_spirv_OpenCL_native_log_f32(x);
13+
return SPIRV_OCL_BUILTIN(native_log, _f32, )(x);
1414
}
1515

1616
INLINE float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log, _v2f32, )(float2 x ){
17-
return __builtin_spirv_OpenCL_native_log_v2f32(x);
17+
return SPIRV_OCL_BUILTIN(native_log, _v2f32, )(x);
1818
}
1919

2020
INLINE float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log, _v3f32, )(float3 x ){
21-
return __builtin_spirv_OpenCL_native_log_v3f32(x);
21+
return SPIRV_OCL_BUILTIN(native_log, _v3f32, )(x);
2222
}
2323

2424
INLINE float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log, _v4f32, )(float4 x ){
25-
return __builtin_spirv_OpenCL_native_log_v4f32(x);
25+
return SPIRV_OCL_BUILTIN(native_log, _v4f32, )(x);
2626
}
2727

2828
INLINE float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log, _v8f32, )(float8 x ){
29-
return __builtin_spirv_OpenCL_native_log_v8f32(x);
29+
return SPIRV_OCL_BUILTIN(native_log, _v8f32, )(x);
3030
}
3131

3232
INLINE float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log, _v16f32, )(float16 x ){
33-
return __builtin_spirv_OpenCL_native_log_v16f32(x);
33+
return SPIRV_OCL_BUILTIN(native_log, _v16f32, )(x);
3434
}

IGC/BiFModule/Implementation/Half/half_log10.cl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,25 @@ SPDX-License-Identifier: MIT
1010
#include "../../Headers/spirv.h"
1111

1212
INLINE float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log10, _f32, )(float x ){
13-
return __builtin_spirv_OpenCL_native_log10_f32(x);
13+
return SPIRV_OCL_BUILTIN(native_log10, _f32, )(x);
1414
}
1515

1616
INLINE float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log10, _v2f32, )(float2 x ){
17-
return __builtin_spirv_OpenCL_native_log10_v2f32(x);
17+
return SPIRV_OCL_BUILTIN(native_log10, _v2f32, )(x);
1818
}
1919

2020
INLINE float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log10, _v3f32, )(float3 x ){
21-
return __builtin_spirv_OpenCL_native_log10_v3f32(x);
21+
return SPIRV_OCL_BUILTIN(native_log10, _v3f32, )(x);
2222
}
2323

2424
INLINE float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log10, _v4f32, )(float4 x ){
25-
return __builtin_spirv_OpenCL_native_log10_v4f32(x);
25+
return SPIRV_OCL_BUILTIN(native_log10, _v4f32, )(x);
2626
}
2727

2828
INLINE float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log10, _v8f32, )(float8 x ){
29-
return __builtin_spirv_OpenCL_native_log10_v8f32(x);
29+
return SPIRV_OCL_BUILTIN(native_log10, _v8f32, )(x);
3030
}
3131

3232
INLINE float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log10, _v16f32, )(float16 x ){
33-
return __builtin_spirv_OpenCL_native_log10_v16f32(x);
33+
return SPIRV_OCL_BUILTIN(native_log10, _v16f32, )(x);
3434
}

IGC/BiFModule/Implementation/Half/half_log2.cl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,25 @@ SPDX-License-Identifier: MIT
1010
#include "../../Headers/spirv.h"
1111

1212
INLINE float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log2, _f32, )(float x ){
13-
return __builtin_spirv_OpenCL_native_log2_f32(x);
13+
return SPIRV_OCL_BUILTIN(native_log2, _f32, )(x);
1414
}
1515

1616
INLINE float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log2, _v2f32, )(float2 x ){
17-
return __builtin_spirv_OpenCL_native_log2_v2f32(x);
17+
return SPIRV_OCL_BUILTIN(native_log2, _v2f32, )(x);
1818
}
1919

2020
INLINE float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log2, _v3f32, )(float3 x ){
21-
return __builtin_spirv_OpenCL_native_log2_v3f32(x);
21+
return SPIRV_OCL_BUILTIN(native_log2, _v3f32, )(x);
2222
}
2323

2424
INLINE float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log2, _v4f32, )(float4 x ){
25-
return __builtin_spirv_OpenCL_native_log2_v4f32(x);
25+
return SPIRV_OCL_BUILTIN(native_log2, _v4f32, )(x);
2626
}
2727

2828
INLINE float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log2, _v8f32, )(float8 x ){
29-
return __builtin_spirv_OpenCL_native_log2_v8f32(x);
29+
return SPIRV_OCL_BUILTIN(native_log2, _v8f32, )(x);
3030
}
3131

3232
INLINE float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_log2, _v16f32, )(float16 x ){
33-
return __builtin_spirv_OpenCL_native_log2_v16f32(x);
33+
return SPIRV_OCL_BUILTIN(native_log2, _v16f32, )(x);
3434
}

IGC/BiFModule/Implementation/Half/half_recip.cl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,25 @@ SPDX-License-Identifier: MIT
1010
#include "../../Headers/spirv.h"
1111

1212
INLINE float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_recip, _f32, )(float x ){
13-
return __builtin_spirv_OpenCL_native_recip_f32(x);
13+
return SPIRV_OCL_BUILTIN(native_recip, _f32, )(x);
1414
}
1515

1616
INLINE float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_recip, _v2f32, )(float2 x ){
17-
return __builtin_spirv_OpenCL_native_recip_v2f32(x);
17+
return SPIRV_OCL_BUILTIN(native_recip, _v2f32, )(x);
1818
}
1919

2020
INLINE float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_recip, _v3f32, )(float3 x ){
21-
return __builtin_spirv_OpenCL_native_recip_v3f32(x);
21+
return SPIRV_OCL_BUILTIN(native_recip, _v3f32, )(x);
2222
}
2323

2424
INLINE float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_recip, _v4f32, )(float4 x ){
25-
return __builtin_spirv_OpenCL_native_recip_v4f32(x);
25+
return SPIRV_OCL_BUILTIN(native_recip, _v4f32, )(x);
2626
}
2727

2828
INLINE float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_recip, _v8f32, )(float8 x ){
29-
return __builtin_spirv_OpenCL_native_recip_v8f32(x);
29+
return SPIRV_OCL_BUILTIN(native_recip, _v8f32, )(x);
3030
}
3131

3232
INLINE float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_recip, _v16f32, )(float16 x ){
33-
return __builtin_spirv_OpenCL_native_recip_v16f32(x);
33+
return SPIRV_OCL_BUILTIN(native_recip, _v16f32, )(x);
3434
}

IGC/BiFModule/Implementation/Half/half_rsqrt.cl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,25 @@ SPDX-License-Identifier: MIT
1010
#include "../../Headers/spirv.h"
1111

1212
INLINE float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_rsqrt, _f32, )(float x ){
13-
return __builtin_spirv_OpenCL_native_rsqrt_f32(x);
13+
return SPIRV_OCL_BUILTIN(native_rsqrt, _f32, )(x);
1414
}
1515

1616
INLINE float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_rsqrt, _v2f32, )(float2 x ){
17-
return __builtin_spirv_OpenCL_native_rsqrt_v2f32(x);
17+
return SPIRV_OCL_BUILTIN(native_rsqrt, _v2f32, )(x);
1818
}
1919

2020
INLINE float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_rsqrt, _v3f32, )(float3 x ){
21-
return __builtin_spirv_OpenCL_native_rsqrt_v3f32(x);
21+
return SPIRV_OCL_BUILTIN(native_rsqrt, _v3f32, )(x);
2222
}
2323

2424
INLINE float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_rsqrt, _v4f32, )(float4 x ){
25-
return __builtin_spirv_OpenCL_native_rsqrt_v4f32(x);
25+
return SPIRV_OCL_BUILTIN(native_rsqrt, _v4f32, )(x);
2626
}
2727

2828
INLINE float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_rsqrt, _v8f32, )(float8 x ){
29-
return __builtin_spirv_OpenCL_native_rsqrt_v8f32(x);
29+
return SPIRV_OCL_BUILTIN(native_rsqrt, _v8f32, )(x);
3030
}
3131

3232
INLINE float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_rsqrt, _v16f32, )(float16 x ){
33-
return __builtin_spirv_OpenCL_native_rsqrt_v16f32(x);
33+
return SPIRV_OCL_BUILTIN(native_rsqrt, _v16f32, )(x);
3434
}

IGC/BiFModule/Implementation/Half/half_sqrt.cl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,25 @@ SPDX-License-Identifier: MIT
1010
#include "../../Headers/spirv.h"
1111

1212
INLINE float SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_sqrt, _f32, )(float x ){
13-
return __builtin_spirv_OpenCL_native_sqrt_f32(x);
13+
return SPIRV_OCL_BUILTIN(native_sqrt, _f32, )(x);
1414
}
1515

1616
INLINE float2 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_sqrt, _v2f32, )(float2 x ){
17-
return __builtin_spirv_OpenCL_native_sqrt_v2f32(x);
17+
return SPIRV_OCL_BUILTIN(native_sqrt, _v2f32, )(x);
1818
}
1919

2020
INLINE float3 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_sqrt, _v3f32, )(float3 x ){
21-
return __builtin_spirv_OpenCL_native_sqrt_v3f32(x);
21+
return SPIRV_OCL_BUILTIN(native_sqrt, _v3f32, )(x);
2222
}
2323

2424
INLINE float4 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_sqrt, _v4f32, )(float4 x ){
25-
return __builtin_spirv_OpenCL_native_sqrt_v4f32(x);
25+
return SPIRV_OCL_BUILTIN(native_sqrt, _v4f32, )(x);
2626
}
2727

2828
INLINE float8 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_sqrt, _v8f32, )(float8 x ){
29-
return __builtin_spirv_OpenCL_native_sqrt_v8f32(x);
29+
return SPIRV_OCL_BUILTIN(native_sqrt, _v8f32, )(x);
3030
}
3131

3232
INLINE float16 SPIRV_OVERLOADABLE SPIRV_OCL_BUILTIN(half_sqrt, _v16f32, )(float16 x ){
33-
return __builtin_spirv_OpenCL_native_sqrt_v16f32(x);
33+
return SPIRV_OCL_BUILTIN(native_sqrt, _v16f32, )(x);
3434
}

0 commit comments

Comments
 (0)