Use correct OCKL native vector types

This commit is contained in:
Aaron Enye Shi committed 2019-01-22 22:31:19 +00:00
1 parent b0e0ec3c67
commit b63597bb95
2 files changed
+27 -10

No files matched your search

@@ -125,22 +125,22 @@ uint64_t __make_mantissa(const char* tagp)
__DEVICE__ __DEVICE__
inline inline
int amd_mixed_dot(short2 a, short2 b, int c, bool saturate) { int amd_mixed_dot(short2 a, short2 b, int c, bool saturate) {
return __ockl_sdot2(a, b, c, saturate); return __ockl_sdot2(a.data, b.data, c, saturate);
} }
__DEVICE__ __DEVICE__
inline inline
uint amd_mixed_dot(ushort2 a, ushort2 b, uint c, bool saturate) { uint amd_mixed_dot(ushort2 a, ushort2 b, uint c, bool saturate) {
return __ockl_udot2(a, b, c, saturate); return __ockl_udot2(a.data, b.data, c, saturate);
} }
__DEVICE__ __DEVICE__
inline inline
int amd_mixed_dot(char4 a, char4 b, int c, bool saturate) { int amd_mixed_dot(char4 a, char4 b, int c, bool saturate) {
return __ockl_sdot4(a, b, c, saturate); return __ockl_sdot4(a.data, b.data, c, saturate);
} }
__DEVICE__ __DEVICE__
inline inline
uint amd_mixed_dot(uchar4 a, uchar4 b, uint c, bool saturate) { uint amd_mixed_dot(uchar4 a, uchar4 b, uint c, bool saturate) {
return __ockl_udot4(a, b, c, saturate); return __ockl_udot4(a.data, b.data, c, saturate);
} }
__DEVICE__ __DEVICE__
inline inline
+23 -6
View File
@@ -32,22 +32,39 @@ THE SOFTWARE.
#if (__hcc_workweek__ >= 19015) || defined(__HIP_CLANG_ONLY__) #if (__hcc_workweek__ >= 19015) || defined(__HIP_CLANG_ONLY__)
__device__ __device__
__attribute__((const)) __attribute__((const))
int __ockl_sdot2(short2 a, short2 b, int c, bool s); int __ockl_sdot2(
HIP_vector_base<short, 2>::Native_vec_,
HIP_vector_base<short, 2>::Native_vec_,
int, bool);
__device__ __device__
__attribute__((const)) __attribute__((const))
unsigned int __ockl_udot2(ushort2 a, ushort2 b, unsigned int c, bool s); unsigned int __ockl_udot2(
HIP_vector_base<unsigned short, 2>::Native_vec_,
HIP_vector_base<unsigned short, 2>::Native_vec_,
unsigned int, bool);
__device__ __device__
__attribute__((const)) __attribute__((const))
int __ockl_sdot4(char4 a, char4 b, int c, bool s); int __ockl_sdot4(
HIP_vector_base<char, 4>::Native_vec_,
HIP_vector_base<char, 4>::Native_vec_,
int, bool);
__device__ __device__
__attribute__((const)) __attribute__((const))
unsigned int __ockl_udot4(uchar4 a, uchar4 b, unsigned int c, bool s); unsigned int __ockl_udot4(
HIP_vector_base<unsigned char, 4>::Native_vec_,
HIP_vector_base<unsigned char, 4>::Native_vec_,
unsigned int, bool);
__device__ __device__
__attribute__((const)) __attribute__((const))
int __ockl_sdot8(int a, int b, int c, bool s); int __ockl_sdot8(int, int, int, bool);
__device__ __device__
__attribute__((const)) __attribute__((const))
unsigned int __ockl_udot8(unsigned int a, unsigned int b, unsigned int c, bool s); unsigned int __ockl_udot8(unsigned int, unsigned int, unsigned int, bool);
#endif #endif
// BEGIN FLOAT // BEGIN FLOAT