28 #ifndef HIP_VECTOR_TYPES_H
29 #define HIP_VECTOR_TYPES_H
31 #if defined (__HCC__) && (__hcc_workweek__ < 16032)
32 #error("This version of HIP requires a newer version of HCC.");
36 #include <hc_short_vector.hpp>
38 using namespace hc::short_vector;
43 typedef hc::short_vector::char1 char1;
44 typedef hc::short_vector::char2 char2;
45 typedef hc::short_vector::char3 char3;
46 typedef hc::short_vector::char4 char4;
49 typedef hc::short_vector::short1 short1;
50 typedef hc::short_vector::short2 short2;
51 typedef hc::short_vector::short3 short3;
52 typedef hc::short_vector::short4 short4;
55 typedef hc::short_vector::int1 int1;
56 typedef hc::short_vector::int2 int2;
57 typedef hc::short_vector::int3 int3;
58 typedef hc::short_vector::int4 int4;
61 typedef hc::short_vector::long1 long1;
62 typedef hc::short_vector::long2 long2;
63 typedef hc::short_vector::long3 long3;
64 typedef hc::short_vector::long4 long4;
67 typedef hc::short_vector::longlong1 longlong1;
68 typedef hc::short_vector::longlong2 longlong2;
69 typedef hc::short_vector::longlong3 longlong3;
70 typedef hc::short_vector::longlong4 longlong4;
75 typedef hc::short_vector::uchar1 uchar1;
76 typedef hc::short_vector::uchar2 uchar2;
77 typedef hc::short_vector::uchar3 uchar3;
78 typedef hc::short_vector::uchar4 uchar4;
81 typedef hc::short_vector::ushort1 ushort1;
82 typedef hc::short_vector::ushort2 ushort2;
83 typedef hc::short_vector::ushort3 ushort3;
84 typedef hc::short_vector::ushort4 ushort4;
87 typedef hc::short_vector::uint1 uint1;
88 typedef hc::short_vector::uint2 uint2;
89 typedef hc::short_vector::uint3 uint3;
90 typedef hc::short_vector::uint4 uint4;
93 typedef hc::short_vector::ulong1 ulong1;
94 typedef hc::short_vector::ulong2 ulong2;
95 typedef hc::short_vector::ulong3 ulong3;
96 typedef hc::short_vector::ulong4 ulong4;
99 typedef hc::short_vector::ulonglong1 ulonglong1;
100 typedef hc::short_vector::ulonglong2 ulonglong2;
101 typedef hc::short_vector::ulonglong3 ulonglong3;
102 typedef hc::short_vector::ulonglong4 ulonglong4;
107 typedef hc::short_vector::float1 float1;
108 typedef hc::short_vector::float2 float2;
109 typedef hc::short_vector::float3 float3;
110 typedef hc::short_vector::float4 float4;
113 typedef hc::short_vector::double1 double1;
114 typedef hc::short_vector::double2 double2;
115 typedef hc::short_vector::double3 double3;
116 typedef hc::short_vector::double4 double4;
119 #include"hip/hcc_detail/host_defines.h"
120 #define __HIP_DEVICE__ __device__ __host__
122 #define __HIP_DEVICE__
125 __HIP_DEVICE__ char1 make_char1(
signed char );
126 __HIP_DEVICE__ char2 make_char2(
signed char,
signed char );
127 __HIP_DEVICE__ char3 make_char3(
signed char,
signed char,
signed char );
128 __HIP_DEVICE__ char4 make_char4(
signed char,
signed char,
signed char,
signed char );
130 __HIP_DEVICE__ short1 make_short1(
short );
131 __HIP_DEVICE__ short2 make_short2(
short,
short );
132 __HIP_DEVICE__ short3 make_short3(
short,
short,
short );
133 __HIP_DEVICE__ short4 make_short4(
short,
short,
short,
short );
135 __HIP_DEVICE__ int1 make_int1(
int );
136 __HIP_DEVICE__ int2 make_int2(
int,
int );
137 __HIP_DEVICE__ int3 make_int3(
int,
int,
int );
138 __HIP_DEVICE__ int4 make_int4(
int,
int,
int,
int );
140 __HIP_DEVICE__ long1 make_long1(
long );
141 __HIP_DEVICE__ long2 make_long2(
long,
long );
142 __HIP_DEVICE__ long3 make_long3(
long,
long,
long );
143 __HIP_DEVICE__ long4 make_long4(
long,
long,
long,
long );
145 __HIP_DEVICE__ longlong1 make_longlong1(
long long );
146 __HIP_DEVICE__ longlong2 make_longlong2(
long long,
long long );
147 __HIP_DEVICE__ longlong3 make_longlong3(
long long,
long long,
long long );
148 __HIP_DEVICE__ longlong4 make_longlong4(
long long,
long long,
long long,
long long );
150 __HIP_DEVICE__ uchar1 make_uchar1(
unsigned char );
151 __HIP_DEVICE__ uchar2 make_uchar2(
unsigned char,
unsigned char );
152 __HIP_DEVICE__ uchar3 make_uchar3(
unsigned char,
unsigned char,
unsigned char );
153 __HIP_DEVICE__ uchar4 make_uchar4(
unsigned char,
unsigned char,
unsigned char,
unsigned char );
155 __HIP_DEVICE__ ushort1 make_ushort1(
unsigned short );
156 __HIP_DEVICE__ ushort2 make_ushort2(
unsigned short,
unsigned short );
157 __HIP_DEVICE__ ushort3 make_ushort3(
unsigned short,
unsigned short,
unsigned short );
158 __HIP_DEVICE__ ushort4 make_ushort4(
unsigned short,
unsigned short,
unsigned short,
unsigned short );
160 __HIP_DEVICE__ uint1 make_uint1(
unsigned int );
161 __HIP_DEVICE__ uint2 make_uint2(
unsigned int,
unsigned int );
162 __HIP_DEVICE__ uint3 make_uint3(
unsigned int,
unsigned int,
unsigned int );
163 __HIP_DEVICE__ uint4 make_uint4(
unsigned int,
unsigned int,
unsigned int,
unsigned int );
165 __HIP_DEVICE__ ulong1 make_ulong1(
unsigned long );
166 __HIP_DEVICE__ ulong2 make_ulong2(
unsigned long,
unsigned long );
167 __HIP_DEVICE__ ulong3 make_ulong3(
unsigned long,
unsigned long,
unsigned long );
168 __HIP_DEVICE__ ulong4 make_ulong4(
unsigned long,
unsigned long,
unsigned long,
unsigned long );
170 __HIP_DEVICE__ ulonglong1 make_ulonglong1(
unsigned long long );
171 __HIP_DEVICE__ ulonglong2 make_ulonglong2(
unsigned long long,
unsigned long long);
172 __HIP_DEVICE__ ulonglong3 make_ulonglong3(
unsigned long long,
unsigned long long,
unsigned long long);
173 __HIP_DEVICE__ ulonglong4 make_ulonglong4(
unsigned long long,
unsigned long long,
unsigned long long,
unsigned long long );
175 __HIP_DEVICE__ float1 make_float1(
float );
176 __HIP_DEVICE__ float2 make_float2(
float,
float );
177 __HIP_DEVICE__ float3 make_float3(
float,
float,
float );
178 __HIP_DEVICE__ float4 make_float4(
float,
float,
float,
float );
180 __HIP_DEVICE__ double1 make_double1(
double );
181 __HIP_DEVICE__ double2 make_double2(
double,
double );
182 __HIP_DEVICE__ double3 make_double3(
double,
double,
double );
183 __HIP_DEVICE__ double4 make_double4(
double,
double,
double,
double );