|
6 | 6 | // |
7 | 7 | //===----------------------------------------------------------------------===// |
8 | 8 |
|
| 9 | +#include <clc/geometric/clc_cross.h> |
9 | 10 | #include <libspirv/spirv.h> |
10 | 11 |
|
11 | | -_CLC_OVERLOAD _CLC_DEF float3 __spirv_ocl_cross(float3 p0, float3 p1) { |
12 | | - return (float3)(p0.y * p1.z - p0.z * p1.y, p0.z * p1.x - p0.x * p1.z, |
13 | | - p0.x * p1.y - p0.y * p1.x); |
14 | | -} |
15 | | - |
16 | | -_CLC_OVERLOAD _CLC_DEF float4 __spirv_ocl_cross(float4 p0, float4 p1) { |
17 | | - return (float4)(p0.y * p1.z - p0.z * p1.y, p0.z * p1.x - p0.x * p1.z, |
18 | | - p0.x * p1.y - p0.y * p1.x, 0.f); |
19 | | -} |
20 | | - |
21 | | -#ifdef cl_khr_fp64 |
22 | | -#pragma OPENCL EXTENSION cl_khr_fp64 : enable |
23 | | - |
24 | | -_CLC_OVERLOAD _CLC_DEF double3 __spirv_ocl_cross(double3 p0, double3 p1) { |
25 | | - return (double3)(p0.y * p1.z - p0.z * p1.y, p0.z * p1.x - p0.x * p1.z, |
26 | | - p0.x * p1.y - p0.y * p1.x); |
27 | | -} |
28 | | - |
29 | | -_CLC_OVERLOAD _CLC_DEF double4 __spirv_ocl_cross(double4 p0, double4 p1) { |
30 | | - return (double4)(p0.y * p1.z - p0.z * p1.y, p0.z * p1.x - p0.x * p1.z, |
31 | | - p0.x * p1.y - p0.y * p1.x, 0.f); |
32 | | -} |
33 | | -#endif |
34 | | - |
35 | | -#ifdef cl_khr_fp16 |
36 | | -#pragma OPENCL EXTENSION cl_khr_fp16 : enable |
37 | | - |
38 | | -_CLC_OVERLOAD _CLC_DEF half3 __spirv_ocl_cross(half3 p0, half3 p1) { |
39 | | - return (half3)(p0.y * p1.z - p0.z * p1.y, p0.z * p1.x - p0.x * p1.z, |
40 | | - p0.x * p1.y - p0.y * p1.x); |
41 | | -} |
42 | | - |
43 | | -_CLC_OVERLOAD _CLC_DEF half4 __spirv_ocl_cross(half4 p0, half4 p1) { |
44 | | - return (half4)(p0.y * p1.z - p0.z * p1.y, p0.z * p1.x - p0.x * p1.z, |
45 | | - p0.x * p1.y - p0.y * p1.x, 0.f); |
46 | | -} |
47 | | -#endif |
| 12 | +#define __CLC_BODY <cross.inc> |
| 13 | +#include <clc/math/gentype.inc> |
0 commit comments