From f537d96633cf6ef1d2ca36f7de280cd0fefaf7a9 Mon Sep 17 00:00:00 2001 From: Aditya Atluri Date: Fri, 20 Jan 2017 09:49:11 -0600 Subject: [PATCH] fixed compilation issues for vector types and math functions 1. Added math_functions.h to hip_runtime.h 2. Changed operator overloading classifier static to static inline 3. Added vector types test for gpu 4. Seperated __host__ and __device__ for math functions in headers Change-Id: I499862fad5d7b10da686da9011d7ecefe523f8e2 --- include/hip/hcc_detail/hip_runtime.h | 2 + include/hip/hcc_detail/hip_vector_types.h | 40 +- include/hip/hcc_detail/math_functions.h | 35 +- src/math_functions.cpp | 12 +- tests/src/deviceLib/hipVectorTypes.cpp | 1981 ++++----- tests/src/deviceLib/hipVectorTypesDevice.cpp | 3880 ++++++++++++++++++ 6 files changed, 4942 insertions(+), 1008 deletions(-) create mode 100644 tests/src/deviceLib/hipVectorTypesDevice.cpp diff --git a/include/hip/hcc_detail/hip_runtime.h b/include/hip/hcc_detail/hip_runtime.h index f11846a0da..909b7f5680 100644 --- a/include/hip/hcc_detail/hip_runtime.h +++ b/include/hip/hcc_detail/hip_runtime.h @@ -69,6 +69,8 @@ extern int HIP_TRACE_API; #include #endif #include +#include + // TODO-HCC remove old definitions ; ~1602 hcc supports __HCC_ACCELERATOR__ define. #if defined (__KALMAR_ACCELERATOR__) && !defined (__HCC_ACCELERATOR__) #define __HCC_ACCELERATOR__ __KALMAR_ACCELERATOR__ diff --git a/include/hip/hcc_detail/hip_vector_types.h b/include/hip/hcc_detail/hip_vector_types.h index e15da69b3f..3e3acb8f29 100644 --- a/include/hip/hcc_detail/hip_vector_types.h +++ b/include/hip/hcc_detail/hip_vector_types.h @@ -1228,20 +1228,20 @@ DECLOP_MAKE_FOUR_COMPONENT(signed long, longlong4); #if __cplusplus #define DECLOP_1VAR_2IN_1OUT(type, op) \ -__device__ __host__ static type operator op (const type& lhs, const type& rhs) { \ +__device__ __host__ static inline type operator op (const type& lhs, const type& rhs) { \ type ret; \ ret.x = lhs.x op rhs.x; \ return ret; \ } #define DECLOP_1VAR_SCALE_PRODUCT(type, type1) \ -__device__ __host__ static type operator * (const type& lhs, type1 rhs) { \ +__device__ __host__ static inline type operator * (const type& lhs, type1 rhs) { \ type ret; \ ret.x = lhs.x * rhs; \ return ret; \ } \ \ -__device__ __host__ static type operator * (type1 lhs, const type& rhs) { \ +__device__ __host__ static inline type operator * (type1 lhs, const type& rhs) { \ type ret; \ ret.x = lhs * rhs.x; \ return ret; \ @@ -1260,7 +1260,7 @@ __device__ __host__ static inline type& operator op (type& val) { \ } #define DECLOP_1VAR_POSTOP(type, op) \ -__device__ __host__ static type operator op (type& val, int i) { \ +__device__ __host__ static inline type operator op (type& val, int i) { \ type ret; \ ret.x = val.x; \ val.x op; \ @@ -1273,7 +1273,7 @@ __device__ __host__ static inline bool operator op (type& lhs, type& rhs) { \ } #define DECLOP_1VAR_1IN_1OUT(type, op) \ -__device__ __host__ static type operator op(type& rhs) { \ +__device__ __host__ static inline type operator op(type& rhs) { \ type ret; \ ret.x = op rhs.x; \ return ret; \ @@ -1289,7 +1289,7 @@ __device__ __host__ static inline bool operator op (type& rhs) { \ */ #define DECLOP_2VAR_2IN_1OUT(type, op) \ -__device__ __host__ static type operator op (const type& lhs, const type& rhs) { \ +__device__ __host__ static inline type operator op (const type& lhs, const type& rhs) { \ type ret; \ ret.x = lhs.x op rhs.x; \ ret.y = lhs.y op rhs.y; \ @@ -1297,14 +1297,14 @@ __device__ __host__ static type operator op (const type& lhs, const type& rhs) { } #define DECLOP_2VAR_SCALE_PRODUCT(type, type1) \ -__device__ __host__ static type operator * (const type& lhs, type1 rhs) { \ +__device__ __host__ static inline type operator * (const type& lhs, type1 rhs) { \ type ret; \ ret.x = lhs.x * rhs; \ ret.y = lhs.y * rhs; \ return ret; \ } \ \ -__device__ __host__ static type operator * (type1 lhs, const type& rhs) { \ +__device__ __host__ static inline type operator * (type1 lhs, const type& rhs) { \ type ret; \ ret.x = lhs * rhs.x; \ ret.y = lhs * rhs.y; \ @@ -1326,7 +1326,7 @@ __device__ __host__ static inline type& operator op (type& val) { \ } #define DECLOP_2VAR_POSTOP(type, op) \ -__device__ __host__ static type operator op (type& val, int i) { \ +__device__ __host__ static inline type operator op (type& val, int i) { \ type ret; \ ret.x = val.x; \ ret.y = val.y; \ @@ -1341,7 +1341,7 @@ __device__ __host__ static inline bool operator op (type& lhs, type& rhs) { \ } #define DECLOP_2VAR_1IN_1OUT(type, op) \ -__device__ __host__ static type operator op(type &rhs) { \ +__device__ __host__ static inline type operator op(type &rhs) { \ type ret; \ ret.x = op rhs.x; \ ret.y = op rhs.y; \ @@ -1359,7 +1359,7 @@ __device__ __host__ static inline bool operator op (type &rhs) { \ */ #define DECLOP_3VAR_2IN_1OUT(type, op) \ -__device__ __host__ static type operator op (const type& lhs, const type& rhs) { \ +__device__ __host__ static inline type operator op (const type& lhs, const type& rhs) { \ type ret; \ ret.x = lhs.x op rhs.x; \ ret.y = lhs.y op rhs.y; \ @@ -1368,7 +1368,7 @@ __device__ __host__ static type operator op (const type& lhs, const type& rhs) { } #define DECLOP_3VAR_SCALE_PRODUCT(type, type1) \ -__device__ __host__ static type operator * (const type& lhs, type1 rhs) { \ +__device__ __host__ static inline type operator * (const type& lhs, type1 rhs) { \ type ret; \ ret.x = lhs.x * rhs; \ ret.y = lhs.y * rhs; \ @@ -1376,7 +1376,7 @@ __device__ __host__ static type operator * (const type& lhs, type1 rhs) { \ return ret; \ } \ \ -__device__ __host__ static type operator * (type1 lhs, const type& rhs) { \ +__device__ __host__ static inline type operator * (type1 lhs, const type& rhs) { \ type ret; \ ret.x = lhs * rhs.x; \ ret.y = lhs * rhs.y; \ @@ -1401,7 +1401,7 @@ __device__ __host__ static inline type& operator op (type& val) { \ } #define DECLOP_3VAR_POSTOP(type, op) \ -__device__ __host__ static type operator op (type& val, int i) { \ +__device__ __host__ static inline type operator op (type& val, int i) { \ type ret; \ ret.x = val.x; \ ret.y = val.y; \ @@ -1418,7 +1418,7 @@ __device__ __host__ static inline bool operator op (type& lhs, type& rhs) { \ } #define DECLOP_3VAR_1IN_1OUT(type, op) \ -__device__ __host__ static type operator op(type &rhs) { \ +__device__ __host__ static inline type operator op(type &rhs) { \ type ret; \ ret.x = op rhs.x; \ ret.y = op rhs.y; \ @@ -1437,7 +1437,7 @@ __device__ __host__ static inline bool operator op (type &rhs) { \ */ #define DECLOP_4VAR_2IN_1OUT(type, op) \ -__device__ __host__ static type operator op ( const type& lhs, const type& rhs) { \ +__device__ __host__ static inline type operator op ( const type& lhs, const type& rhs) { \ type ret; \ ret.x = lhs.x op rhs.x; \ ret.y = lhs.y op rhs.y; \ @@ -1447,7 +1447,7 @@ __device__ __host__ static type operator op ( const type& lhs, const type& rhs) } #define DECLOP_4VAR_SCALE_PRODUCT(type, type1) \ -__device__ __host__ static type operator * (const type& lhs, type1 rhs) { \ +__device__ __host__ static inline type operator * (const type& lhs, type1 rhs) { \ type ret; \ ret.x = lhs.x * rhs; \ ret.y = lhs.y * rhs; \ @@ -1456,7 +1456,7 @@ __device__ __host__ static type operator * (const type& lhs, type1 rhs) { \ return ret; \ } \ \ -__device__ __host__ static type operator * (type1 lhs, const type& rhs) { \ +__device__ __host__ static inline type operator * (type1 lhs, const type& rhs) { \ type ret; \ ret.x = lhs * rhs.x; \ ret.y = lhs * rhs.y; \ @@ -1484,7 +1484,7 @@ __device__ __host__ static inline type& operator op (type& val) { \ } #define DECLOP_4VAR_POSTOP(type, op) \ -__device__ __host__ static type operator op (type& val, int i) { \ +__device__ __host__ static inline type operator op (type& val, int i) { \ type ret; \ ret.x = val.x; \ ret.y = val.y; \ @@ -1503,7 +1503,7 @@ __device__ __host__ static inline bool operator op (type& lhs, type& rhs) { \ } #define DECLOP_4VAR_1IN_1OUT(type, op) \ -__device__ __host__ static type operator op(type &rhs) { \ +__device__ __host__ static inline type operator op(type &rhs) { \ type ret; \ ret.x = op rhs.x; \ ret.y = op rhs.y; \ diff --git a/include/hip/hcc_detail/math_functions.h b/include/hip/hcc_detail/math_functions.h index b07830958f..2755c896db 100644 --- a/include/hip/hcc_detail/math_functions.h +++ b/include/hip/hcc_detail/math_functions.h @@ -36,7 +36,7 @@ __device__ float ceilf(float x); __device__ float copysignf(float x, float y); __device__ float cosf(float x); __device__ float coshf(float x); -__device__ __host__ float cospif(float x); +__device__ float cospif(float x); //__device__ float cyl_bessel_i0f(float x); //__device__ float cyl_bessel_i1f(float x); __device__ float erfcf(float x); @@ -50,7 +50,7 @@ __device__ float expf(float x); __device__ float expm1f(float x); __device__ float fabsf(float x); __device__ float fdimf(float x, float y); -__device__ __host__ float fdividef(float x, float y); +__device__ float fdividef(float x, float y); __device__ float floorf(float x); __device__ float fmaf(float x, float y, float z); __device__ float fmaxf(float x, float y); @@ -59,7 +59,7 @@ __device__ float fmodf(float x, float y); //__device__ float frexpf(float x, int* nptr); __device__ float hypotf(float x, float y); __device__ float ilogbf(float x); -__device__ __host__ int isfinite(float a); +__device__ int isfinite(float a); __device__ unsigned isinf(float a); __device__ unsigned isnan(float a); __device__ float j0f(float x); @@ -93,15 +93,15 @@ __device__ float rnorm3df(float a, float b, float c); __device__ float rnorm4df(float a, float b, float c, float d); __device__ float rnormf(int dim, const float* a); __device__ float roundf(float x); -__device__ __host__ float rsqrtf(float x); +__device__ float rsqrtf(float x); __device__ float scalblnf(float x, long int n); __device__ float scalbnf(float x, int n); -__device__ __host__ unsigned signbit(float a); +__device__ int signbit(float a); __device__ void sincosf(float x, float *sptr, float *cptr); __device__ void sincospif(float x, float *sptr, float *cptr); __device__ float sinf(float x); __device__ float sinhf(float x); -__device__ __host__ float sinpif(float x); +__device__ float sinpif(float x); __device__ float sqrtf(float x); __device__ float tanf(float x); __device__ float tanhf(float x); @@ -111,11 +111,12 @@ __device__ float y0f(float x); __device__ float y1f(float x); __device__ float ynf(int n, float x); - +__host__ float cospif(float x); __host__ float normcdff(float y); __host__ float erfcinvf(float y); __host__ float erfcxf(float x); __host__ float erfinvf(float y); +__host__ float fdividef(float x, float y); __host__ float norm3df(float a, float b, float c); __host__ float normcdfinvf(float y); __host__ float norm4df(float a, float b, float c, float d); @@ -125,7 +126,10 @@ __host__ float rnorm3df(float a, float b, float c); __host__ float rnormf(int dim, const float* a); __host__ float rnorm4df(float a, float b, float c, float d); __host__ void sincospif(float x, float *sptr, float *cptr); - +__host__ int isfinite(float a); +__host__ float rsqrtf(float x); +__host__ float sinpif(float x); +__host__ int signbit(float a); __device__ double acos(double x); @@ -140,7 +144,7 @@ __device__ double ceil(double x); __device__ double copysign(double x, double y); __device__ double cos(double x); __device__ double cosh(double x); -__device__ __host__ double cospi(double x); +__device__ double cospi(double x); //__device__ double cyl_bessel_i0(double x); //__device__ double cyl_bessel_i1(double x); __device__ double erf(double x); @@ -162,7 +166,7 @@ __device__ double fmod(double x, double y); //__device__ double frexp(double x, int *nptr); __device__ double hypot(double x, double y); __device__ double ilogb(double x); -__device__ __host__ unsigned isfinite(double x); +__device__ int isfinite(double x); __device__ unsigned isinf(double x); __device__ unsigned isnan(double x); __device__ double j0(double x); @@ -198,15 +202,15 @@ __device__ double rnorm(int dim, const double* t); __device__ double rnorm3d(double a, double b, double c); __device__ double rnorm4d(double a, double b, double c, double d); __device__ double round(double x); -__device__ __host__ double rsqrt(double x); +__device__ double rsqrt(double x); __device__ double scalbln(double x, long int n); __device__ double scalbn(double x, int n); -__device__ __host__ unsigned signbit(double a); +__device__ int signbit(double a); __device__ double sin(double a); __device__ void sincos(double x, double *sptr, double *cptr); __device__ void sincospi(double x, double *sptr, double *cptr); __device__ double sinh(double x); -__device__ __host__ double sinpi(double x); +__device__ double sinpi(double x); __device__ double sqrt(double x); __device__ double tan(double x); __device__ double tanh(double x); @@ -231,6 +235,11 @@ __host__ double rnorm(int dim, const double* t); __host__ double rnorm3d(double a, double b, double c); __host__ double rnorm4d(double a, double b, double c, double d); __host__ void sincospi(double x, double *sptr, double *cptr); +__host__ double cospi(double x); +__host__ int isfinite(double x); +__host__ double rsqrt(double x); +__host__ int signbit(double a); +__host__ double sinpi(double x); // ENDPARSER diff --git a/src/math_functions.cpp b/src/math_functions.cpp index 130d4152ae..a1ee9d3ce5 100644 --- a/src/math_functions.cpp +++ b/src/math_functions.cpp @@ -158,7 +158,7 @@ __device__ float ilogbf(float x) { return hc::precise_math::ilogbf(x); } -__device__ unsigned isfinite(float a) +__device__ int isfinite(float a) { return hc::precise_math::isfinite(a); } @@ -334,7 +334,7 @@ __device__ float scalbnf(float x, int n) { return hc::precise_math::scalbnf(x, n); } -__device__ unsigned signbit(float a) +__device__ int signbit(float a) { return hc::precise_math::signbit(a); } @@ -539,7 +539,7 @@ __device__ double ilogb(double x) { return hc::precise_math::ilogb(x); } -__device__ unsigned isfinite(double x) +__device__ int isfinite(double x) { return hc::precise_math::isfinite(x); } @@ -712,7 +712,7 @@ __device__ double scalbn(double x, int n) { return hc::precise_math::scalbn(x, n); } -__device__ unsigned signbit(double x) +__device__ int signbit(double x) { return hc::precise_math::signbit(x); } @@ -792,7 +792,7 @@ __host__ int signbit(float x) return std::signbit(x); } -__host__ int sinpif(float x) +__host__ float sinpif(float x) { return std::sin(x*HIP_PI); } @@ -984,7 +984,7 @@ __host__ double cospi(double a) return std::cos(HIP_PI * a); } -__host__ double isfinite(double a) +__host__ int isfinite(double a) { return std::isfinite(a); } diff --git a/tests/src/deviceLib/hipVectorTypes.cpp b/tests/src/deviceLib/hipVectorTypes.cpp index 0e5757b30d..957439c27e 100644 --- a/tests/src/deviceLib/hipVectorTypes.cpp +++ b/tests/src/deviceLib/hipVectorTypes.cpp @@ -20,29 +20,35 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/* HIT_START + * BUILD: %t %s ../test_common.cpp + * RUN: %t + * HIT_END + */ + #include #include -#include - -#define cmpFloat1(in, exp) \ +#include +#include"test_common.h" +#define cmpVal1(in, exp) \ if(in.x != exp) { \ std::cout<<"Failed at: "<<__LINE__<<" in func: "<<__func__<<" expected output: "<> f1; - cmpFloat1(f2, 2); + cmpVal1(f2, 2); f1.x = 2; f2.x = 1; f1 += f2; - cmpFloat1(f1, 3); + cmpVal1(f1, 3); f1 -= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 *= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 /= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 %= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1 &= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1 |= f2; - cmpFloat1(f1, 1); + cmpVal1(f1, 1); f1 ^= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1.x = 1; f1 <<= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 >>= f2; - cmpFloat1(f1, 1); + cmpVal1(f1, 1); f1.x = 2; f2 = f1++; - cmpFloat1(f1, 3); - cmpFloat1(f2, 2); + cmpVal1(f1, 3); + cmpVal1(f2, 2); f2 = f1--; - cmpFloat1(f2, 3); - cmpFloat1(f1, 2); + cmpVal1(f2, 3); + cmpVal1(f1, 2); f2 = ++f1; - cmpFloat1(f1, 3); - cmpFloat1(f2, 3); + cmpVal1(f1, 3); + cmpVal1(f2, 3); f2 = --f1; - cmpFloat1(f1, 2); - cmpFloat1(f2, 2); + cmpVal1(f1, 2); + cmpVal1(f2, 2); f2 = ~f1; - cmpFloat1(f2, 253); + cmpVal1(f2, 253); assert(!f1 == false); + f1.x = 3; + f1 = f1 * (unsigned char)1; + cmpVal1(f1, 3); + f1 = (unsigned char)1 * f1; + cmpVal1(f1, 3); + f1 = f1 * (signed char)1; + cmpVal1(f1, 3); + f1 = (signed char)1 * f1; + cmpVal1(f1, 3); + f1 = f1 * (unsigned short)1; + cmpVal1(f1, 3); + f1 = (unsigned short)1 * f1; + cmpVal1(f1, 3); + f1 = f1 * (signed short)1; + cmpVal1(f1, 3); + f1 = (signed short)1 * f1; + cmpVal1(f1, 3); + f1 = f1 * (unsigned int)1; + cmpVal1(f1, 3); + f1 = (unsigned int)1 * f1; + cmpVal1(f1, 3); + f1 = f1 * (signed int)1; + cmpVal1(f1, 3); + f1 = (signed int)1 * f1; + cmpVal1(f1, 3); + f1 = f1 * (float)1; + cmpVal1(f1, 3); + f1 = (float)1 * f1; + cmpVal1(f1, 3); + f1 = f1 * (unsigned long)1; + cmpVal1(f1, 3); + f1 = (unsigned long)1 * f1; + cmpVal1(f1, 3); + f1 = f1 * (signed long)1; + cmpVal1(f1, 3); + f1 = (signed long)1 * f1; + cmpVal1(f1, 3); + +// signed char sc = 1; f1.x = 3; f2.x = 4; @@ -137,72 +182,72 @@ bool TestUChar2() { f2.x = 1; f2.y = 1; f3 = f1 + f2; - cmpFloat2(f3, 2); + cmpVal2(f3, 2); f2 = f3 - f1; - cmpFloat2(f2, 1); + cmpVal2(f2, 1); f1 = f2 * f3; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f2 = f1 / f3; - cmpFloat2(f2, 2/2); + cmpVal2(f2, 2/2); f3 = f1 % f2; - cmpFloat2(f3, 0); + cmpVal2(f3, 0); f1 = f3 & f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f2 = f1 ^ f3; - cmpFloat2(f2, 0); + cmpVal2(f2, 0); f1.x = 1; f1.y = 1; f2.x = 2; f2.y = 2; f3 = f1 << f2; - cmpFloat2(f3, 4); + cmpVal2(f3, 4); f2 = f3 >> f1; - cmpFloat2(f2, 2); + cmpVal2(f2, 2); f1.x = 2; f1.y = 2; f2.x = 1; f2.y = 1; f1 += f2; - cmpFloat2(f1, 3); + cmpVal2(f1, 3); f1 -= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 *= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 /= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 %= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1 &= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1 |= f2; - cmpFloat2(f1, 1); + cmpVal2(f1, 1); f1 ^= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1.x = 1; f1.y = 1; f1 <<= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 >>= f2; - cmpFloat2(f1, 1); + cmpVal2(f1, 1); f1.x = 2; f1.y = 2; f2 = f1++; - cmpFloat2(f1, 3); - cmpFloat2(f2, 2); + cmpVal2(f1, 3); + cmpVal2(f2, 2); f2 = f1--; - cmpFloat2(f2, 3); - cmpFloat2(f1, 2); + cmpVal2(f2, 3); + cmpVal2(f1, 2); f2 = ++f1; - cmpFloat2(f1, 3); - cmpFloat2(f2, 3); + cmpVal2(f1, 3); + cmpVal2(f2, 3); f2 = --f1; - cmpFloat2(f1, 2); - cmpFloat2(f2, 2); + cmpVal2(f1, 2); + cmpVal2(f2, 2); f2 = ~f1; - cmpFloat2(f2, 253); + cmpVal2(f2, 253); assert(!f1 == false); f1.x = 3; @@ -232,19 +277,19 @@ bool TestUChar3() { f2.y = 1; f2.z = 1; f3 = f1 + f2; - cmpFloat3(f3, 2); + cmpVal3(f3, 2); f2 = f3 - f1; - cmpFloat3(f2, 1); + cmpVal3(f2, 1); f1 = f2 * f3; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f2 = f1 / f3; - cmpFloat3(f2, 2/2); + cmpVal3(f2, 2/2); f3 = f1 % f2; - cmpFloat3(f3, 0); + cmpVal3(f3, 0); f1 = f3 & f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f2 = f1 ^ f3; - cmpFloat3(f2, 0); + cmpVal3(f2, 0); f1.x = 1; f1.y = 1; f1.z = 1; @@ -252,9 +297,9 @@ bool TestUChar3() { f2.y = 2; f2.z = 2; f3 = f1 << f2; - cmpFloat3(f3, 4); + cmpVal3(f3, 4); f2 = f3 >> f1; - cmpFloat3(f2, 2); + cmpVal3(f2, 2); f1.x = 2; f1.y = 2; @@ -263,47 +308,47 @@ bool TestUChar3() { f2.y = 1; f2.z = 1; f1 += f2; - cmpFloat3(f1, 3); + cmpVal3(f1, 3); f1 -= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 *= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 /= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 %= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1 &= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1 |= f2; - cmpFloat3(f1, 1); + cmpVal3(f1, 1); f1 ^= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1.x = 1; f1.y = 1; f1.z = 1; f1 <<= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 >>= f2; - cmpFloat3(f1, 1); + cmpVal3(f1, 1); f1.x = 2; f1.y = 2; f1.z = 2; f2 = f1++; - cmpFloat3(f1, 3); - cmpFloat3(f2, 2); + cmpVal3(f1, 3); + cmpVal3(f2, 2); f2 = f1--; - cmpFloat3(f2, 3); - cmpFloat3(f1, 2); + cmpVal3(f2, 3); + cmpVal3(f1, 2); f2 = ++f1; - cmpFloat3(f1, 3); - cmpFloat3(f2, 3); + cmpVal3(f1, 3); + cmpVal3(f2, 3); f2 = --f1; - cmpFloat3(f1, 2); - cmpFloat3(f2, 2); + cmpVal3(f1, 2); + cmpVal3(f2, 2); f2 = ~f1; - cmpFloat3(f2, 253); + cmpVal3(f2, 253); assert(!f1 == false); f1.x = 3; @@ -338,19 +383,19 @@ bool TestUChar4() { f2.z = 1; f2.w = 1; f3 = f1 + f2; - cmpFloat4(f3, 2); + cmpVal4(f3, 2); f2 = f3 - f1; - cmpFloat4(f2, 1); + cmpVal4(f2, 1); f1 = f2 * f3; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f2 = f1 / f3; - cmpFloat4(f2, 2/2); + cmpVal4(f2, 2/2); f3 = f1 % f2; - cmpFloat4(f3, 0); + cmpVal4(f3, 0); f1 = f3 & f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f2 = f1 ^ f3; - cmpFloat4(f2, 0); + cmpVal4(f2, 0); f1.x = 1; f1.y = 1; f1.z = 1; @@ -360,9 +405,9 @@ bool TestUChar4() { f2.z = 2; f2.w = 2; f3 = f1 << f2; - cmpFloat4(f3, 4); + cmpVal4(f3, 4); f2 = f3 >> f1; - cmpFloat4(f2, 2); + cmpVal4(f2, 2); f1.x = 2; f1.y = 2; @@ -373,49 +418,49 @@ bool TestUChar4() { f2.z = 1; f2.w = 1; f1 += f2; - cmpFloat4(f1, 3); + cmpVal4(f1, 3); f1 -= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 *= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 /= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 %= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1 &= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1 |= f2; - cmpFloat4(f1, 1); + cmpVal4(f1, 1); f1 ^= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1.x = 1; f1.y = 1; f1.z = 1; f1.w = 1; f1 <<= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 >>= f2; - cmpFloat4(f1, 1); + cmpVal4(f1, 1); f1.x = 2; f1.y = 2; f1.z = 2; f1.w = 2; f2 = f1++; - cmpFloat4(f1, 3); - cmpFloat4(f2, 2); + cmpVal4(f1, 3); + cmpVal4(f2, 2); f2 = f1--; - cmpFloat4(f2, 3); - cmpFloat4(f1, 2); + cmpVal4(f2, 3); + cmpVal4(f1, 2); f2 = ++f1; - cmpFloat4(f1, 3); - cmpFloat4(f2, 3); + cmpVal4(f1, 3); + cmpVal4(f2, 3); f2 = --f1; - cmpFloat4(f1, 2); - cmpFloat4(f2, 2); + cmpVal4(f1, 2); + cmpVal4(f2, 2); f2 = ~f1; - cmpFloat4(f2, 253); + cmpVal4(f2, 253); assert(!f1 == false); f1.x = 3; @@ -447,66 +492,66 @@ bool TestChar1() { f1.x = 1; f2.x = 1; f3 = f1 + f2; - cmpFloat1(f3, 2); + cmpVal1(f3, 2); f2 = f3 - f1; - cmpFloat1(f2, 1); + cmpVal1(f2, 1); f1 = f2 * f3; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f2 = f1 / f3; - cmpFloat1(f2, 2/2); + cmpVal1(f2, 2/2); f3 = f1 % f2; - cmpFloat1(f3, 0); + cmpVal1(f3, 0); f1 = f3 & f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f2 = f1 ^ f3; - cmpFloat1(f2, 0); + cmpVal1(f2, 0); f1.x = 1; f2.x = 2; f3 = f1 << f2; - cmpFloat1(f3, 4); + cmpVal1(f3, 4); f2 = f3 >> f1; - cmpFloat1(f2, 2); + cmpVal1(f2, 2); f1.x = 2; f2.x = 1; f1 += f2; - cmpFloat1(f1, 3); + cmpVal1(f1, 3); f1 -= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 *= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 /= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 %= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1 &= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1 |= f2; - cmpFloat1(f1, 1); + cmpVal1(f1, 1); f1 ^= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1.x = 1; f1 <<= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 >>= f2; - cmpFloat1(f1, 1); + cmpVal1(f1, 1); f1.x = 2; f2 = f1++; - cmpFloat1(f1, 3); - cmpFloat1(f2, 2); + cmpVal1(f1, 3); + cmpVal1(f2, 2); f2 = f1--; - cmpFloat1(f2, 3); - cmpFloat1(f1, 2); + cmpVal1(f2, 3); + cmpVal1(f1, 2); f2 = ++f1; - cmpFloat1(f1, 3); - cmpFloat1(f2, 3); + cmpVal1(f1, 3); + cmpVal1(f2, 3); f2 = --f1; - cmpFloat1(f1, 2); - cmpFloat1(f2, 2); + cmpVal1(f1, 2); + cmpVal1(f2, 2); f2 = ~f1; - cmpFloat1(f2, (char)253); + cmpVal1(f2, (char)253); assert(!f1 == false); f1.x = 3; @@ -531,72 +576,72 @@ bool TestChar2() { f2.x = 1; f2.y = 1; f3 = f1 + f2; - cmpFloat2(f3, 2); + cmpVal2(f3, 2); f2 = f3 - f1; - cmpFloat2(f2, 1); + cmpVal2(f2, 1); f1 = f2 * f3; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f2 = f1 / f3; - cmpFloat2(f2, 2/2); + cmpVal2(f2, 2/2); f3 = f1 % f2; - cmpFloat2(f3, 0); + cmpVal2(f3, 0); f1 = f3 & f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f2 = f1 ^ f3; - cmpFloat2(f2, 0); + cmpVal2(f2, 0); f1.x = 1; f1.y = 1; f2.x = 2; f2.y = 2; f3 = f1 << f2; - cmpFloat2(f3, 4); + cmpVal2(f3, 4); f2 = f3 >> f1; - cmpFloat2(f2, 2); + cmpVal2(f2, 2); f1.x = 2; f1.y = 2; f2.x = 1; f2.y = 1; f1 += f2; - cmpFloat2(f1, 3); + cmpVal2(f1, 3); f1 -= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 *= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 /= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 %= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1 &= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1 |= f2; - cmpFloat2(f1, 1); + cmpVal2(f1, 1); f1 ^= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1.x = 1; f1.y = 1; f1 <<= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 >>= f2; - cmpFloat2(f1, 1); + cmpVal2(f1, 1); f1.x = 2; f1.y = 2; f2 = f1++; - cmpFloat2(f1, 3); - cmpFloat2(f2, 2); + cmpVal2(f1, 3); + cmpVal2(f2, 2); f2 = f1--; - cmpFloat2(f2, 3); - cmpFloat2(f1, 2); + cmpVal2(f2, 3); + cmpVal2(f1, 2); f2 = ++f1; - cmpFloat2(f1, 3); - cmpFloat2(f2, 3); + cmpVal2(f1, 3); + cmpVal2(f2, 3); f2 = --f1; - cmpFloat2(f1, 2); - cmpFloat2(f2, 2); + cmpVal2(f1, 2); + cmpVal2(f2, 2); f2 = ~f1; - cmpFloat2(f2, (char)253); + cmpVal2(f2, (char)253); assert(!f1 == false); f1.x = 3; @@ -626,19 +671,19 @@ bool TestChar3() { f2.y = 1; f2.z = 1; f3 = f1 + f2; - cmpFloat3(f3, 2); + cmpVal3(f3, 2); f2 = f3 - f1; - cmpFloat3(f2, 1); + cmpVal3(f2, 1); f1 = f2 * f3; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f2 = f1 / f3; - cmpFloat3(f2, 2/2); + cmpVal3(f2, 2/2); f3 = f1 % f2; - cmpFloat3(f3, 0); + cmpVal3(f3, 0); f1 = f3 & f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f2 = f1 ^ f3; - cmpFloat3(f2, 0); + cmpVal3(f2, 0); f1.x = 1; f1.y = 1; f1.z = 1; @@ -646,9 +691,9 @@ bool TestChar3() { f2.y = 2; f2.z = 2; f3 = f1 << f2; - cmpFloat3(f3, 4); + cmpVal3(f3, 4); f2 = f3 >> f1; - cmpFloat3(f2, 2); + cmpVal3(f2, 2); f1.x = 2; f1.y = 2; @@ -657,47 +702,47 @@ bool TestChar3() { f2.y = 1; f2.z = 1; f1 += f2; - cmpFloat3(f1, 3); + cmpVal3(f1, 3); f1 -= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 *= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 /= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 %= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1 &= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1 |= f2; - cmpFloat3(f1, 1); + cmpVal3(f1, 1); f1 ^= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1.x = 1; f1.y = 1; f1.z = 1; f1 <<= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 >>= f2; - cmpFloat3(f1, 1); + cmpVal3(f1, 1); f1.x = 2; f1.y = 2; f1.z = 2; f2 = f1++; - cmpFloat3(f1, 3); - cmpFloat3(f2, 2); + cmpVal3(f1, 3); + cmpVal3(f2, 2); f2 = f1--; - cmpFloat3(f2, 3); - cmpFloat3(f1, 2); + cmpVal3(f2, 3); + cmpVal3(f1, 2); f2 = ++f1; - cmpFloat3(f1, 3); - cmpFloat3(f2, 3); + cmpVal3(f1, 3); + cmpVal3(f2, 3); f2 = --f1; - cmpFloat3(f1, 2); - cmpFloat3(f2, 2); + cmpVal3(f1, 2); + cmpVal3(f2, 2); f2 = ~f1; - cmpFloat3(f2, (char)253); + cmpVal3(f2, (char)253); assert(!f1 == false); f1.x = 3; @@ -732,19 +777,19 @@ bool TestChar4() { f2.z = 1; f2.w = 1; f3 = f1 + f2; - cmpFloat4(f3, 2); + cmpVal4(f3, 2); f2 = f3 - f1; - cmpFloat4(f2, 1); + cmpVal4(f2, 1); f1 = f2 * f3; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f2 = f1 / f3; - cmpFloat4(f2, 2/2); + cmpVal4(f2, 2/2); f3 = f1 % f2; - cmpFloat4(f3, 0); + cmpVal4(f3, 0); f1 = f3 & f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f2 = f1 ^ f3; - cmpFloat4(f2, 0); + cmpVal4(f2, 0); f1.x = 1; f1.y = 1; f1.z = 1; @@ -754,9 +799,9 @@ bool TestChar4() { f2.z = 2; f2.w = 2; f3 = f1 << f2; - cmpFloat4(f3, 4); + cmpVal4(f3, 4); f2 = f3 >> f1; - cmpFloat4(f2, 2); + cmpVal4(f2, 2); f1.x = 2; f1.y = 2; @@ -767,49 +812,49 @@ bool TestChar4() { f2.z = 1; f2.w = 1; f1 += f2; - cmpFloat4(f1, 3); + cmpVal4(f1, 3); f1 -= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 *= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 /= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 %= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1 &= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1 |= f2; - cmpFloat4(f1, 1); + cmpVal4(f1, 1); f1 ^= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1.x = 1; f1.y = 1; f1.z = 1; f1.w = 1; f1 <<= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 >>= f2; - cmpFloat4(f1, 1); + cmpVal4(f1, 1); f1.x = 2; f1.y = 2; f1.z = 2; f1.w = 2; f2 = f1++; - cmpFloat4(f1, 3); - cmpFloat4(f2, 2); + cmpVal4(f1, 3); + cmpVal4(f2, 2); f2 = f1--; - cmpFloat4(f2, 3); - cmpFloat4(f1, 2); + cmpVal4(f2, 3); + cmpVal4(f1, 2); f2 = ++f1; - cmpFloat4(f1, 3); - cmpFloat4(f2, 3); + cmpVal4(f1, 3); + cmpVal4(f2, 3); f2 = --f1; - cmpFloat4(f1, 2); - cmpFloat4(f2, 2); + cmpVal4(f1, 2); + cmpVal4(f2, 2); f2 = ~f1; - cmpFloat4(f2, (char)253); + cmpVal4(f2, (char)253); assert(!f1 == false); f1.x = 3; @@ -841,66 +886,66 @@ bool TestUShort1() { f1.x = 1; f2.x = 1; f3 = f1 + f2; - cmpFloat1(f3, 2); + cmpVal1(f3, 2); f2 = f3 - f1; - cmpFloat1(f2, 1); + cmpVal1(f2, 1); f1 = f2 * f3; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f2 = f1 / f3; - cmpFloat1(f2, 2/2); + cmpVal1(f2, 2/2); f3 = f1 % f2; - cmpFloat1(f3, 0); + cmpVal1(f3, 0); f1 = f3 & f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f2 = f1 ^ f3; - cmpFloat1(f2, 0); + cmpVal1(f2, 0); f1.x = 1; f2.x = 2; f3 = f1 << f2; - cmpFloat1(f3, 4); + cmpVal1(f3, 4); f2 = f3 >> f1; - cmpFloat1(f2, 2); + cmpVal1(f2, 2); f1.x = 2; f2.x = 1; f1 += f2; - cmpFloat1(f1, 3); + cmpVal1(f1, 3); f1 -= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 *= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 /= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 %= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1 &= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1 |= f2; - cmpFloat1(f1, 1); + cmpVal1(f1, 1); f1 ^= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1.x = 1; f1 <<= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 >>= f2; - cmpFloat1(f1, 1); + cmpVal1(f1, 1); f1.x = 2; f2 = f1++; - cmpFloat1(f1, 3); - cmpFloat1(f2, 2); + cmpVal1(f1, 3); + cmpVal1(f2, 2); f2 = f1--; - cmpFloat1(f2, 3); - cmpFloat1(f1, 2); + cmpVal1(f2, 3); + cmpVal1(f1, 2); f2 = ++f1; - cmpFloat1(f1, 3); - cmpFloat1(f2, 3); + cmpVal1(f1, 3); + cmpVal1(f2, 3); f2 = --f1; - cmpFloat1(f1, 2); - cmpFloat1(f2, 2); + cmpVal1(f1, 2); + cmpVal1(f2, 2); f2 = ~f1; - cmpFloat1(f2, (unsigned short)65533); + cmpVal1(f2, (unsigned short)65533); assert(!f1 == false); f1.x = 3; @@ -925,72 +970,72 @@ bool TestUShort2() { f2.x = 1; f2.y = 1; f3 = f1 + f2; - cmpFloat2(f3, 2); + cmpVal2(f3, 2); f2 = f3 - f1; - cmpFloat2(f2, 1); + cmpVal2(f2, 1); f1 = f2 * f3; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f2 = f1 / f3; - cmpFloat2(f2, 2/2); + cmpVal2(f2, 2/2); f3 = f1 % f2; - cmpFloat2(f3, 0); + cmpVal2(f3, 0); f1 = f3 & f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f2 = f1 ^ f3; - cmpFloat2(f2, 0); + cmpVal2(f2, 0); f1.x = 1; f1.y = 1; f2.x = 2; f2.y = 2; f3 = f1 << f2; - cmpFloat2(f3, 4); + cmpVal2(f3, 4); f2 = f3 >> f1; - cmpFloat2(f2, 2); + cmpVal2(f2, 2); f1.x = 2; f1.y = 2; f2.x = 1; f2.y = 1; f1 += f2; - cmpFloat2(f1, 3); + cmpVal2(f1, 3); f1 -= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 *= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 /= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 %= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1 &= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1 |= f2; - cmpFloat2(f1, 1); + cmpVal2(f1, 1); f1 ^= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1.x = 1; f1.y = 1; f1 <<= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 >>= f2; - cmpFloat2(f1, 1); + cmpVal2(f1, 1); f1.x = 2; f1.y = 2; f2 = f1++; - cmpFloat2(f1, 3); - cmpFloat2(f2, 2); + cmpVal2(f1, 3); + cmpVal2(f2, 2); f2 = f1--; - cmpFloat2(f2, 3); - cmpFloat2(f1, 2); + cmpVal2(f2, 3); + cmpVal2(f1, 2); f2 = ++f1; - cmpFloat2(f1, 3); - cmpFloat2(f2, 3); + cmpVal2(f1, 3); + cmpVal2(f2, 3); f2 = --f1; - cmpFloat2(f1, 2); - cmpFloat2(f2, 2); + cmpVal2(f1, 2); + cmpVal2(f2, 2); f2 = ~f1; - cmpFloat2(f2, (unsigned short)65533); + cmpVal2(f2, (unsigned short)65533); assert(!f1 == false); f1.x = 3; @@ -1020,19 +1065,19 @@ bool TestUShort3() { f2.y = 1; f2.z = 1; f3 = f1 + f2; - cmpFloat3(f3, 2); + cmpVal3(f3, 2); f2 = f3 - f1; - cmpFloat3(f2, 1); + cmpVal3(f2, 1); f1 = f2 * f3; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f2 = f1 / f3; - cmpFloat3(f2, 2/2); + cmpVal3(f2, 2/2); f3 = f1 % f2; - cmpFloat3(f3, 0); + cmpVal3(f3, 0); f1 = f3 & f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f2 = f1 ^ f3; - cmpFloat3(f2, 0); + cmpVal3(f2, 0); f1.x = 1; f1.y = 1; f1.z = 1; @@ -1040,9 +1085,9 @@ bool TestUShort3() { f2.y = 2; f2.z = 2; f3 = f1 << f2; - cmpFloat3(f3, 4); + cmpVal3(f3, 4); f2 = f3 >> f1; - cmpFloat3(f2, 2); + cmpVal3(f2, 2); f1.x = 2; f1.y = 2; @@ -1051,47 +1096,47 @@ bool TestUShort3() { f2.y = 1; f2.z = 1; f1 += f2; - cmpFloat3(f1, 3); + cmpVal3(f1, 3); f1 -= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 *= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 /= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 %= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1 &= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1 |= f2; - cmpFloat3(f1, 1); + cmpVal3(f1, 1); f1 ^= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1.x = 1; f1.y = 1; f1.z = 1; f1 <<= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 >>= f2; - cmpFloat3(f1, 1); + cmpVal3(f1, 1); f1.x = 2; f1.y = 2; f1.z = 2; f2 = f1++; - cmpFloat3(f1, 3); - cmpFloat3(f2, 2); + cmpVal3(f1, 3); + cmpVal3(f2, 2); f2 = f1--; - cmpFloat3(f2, 3); - cmpFloat3(f1, 2); + cmpVal3(f2, 3); + cmpVal3(f1, 2); f2 = ++f1; - cmpFloat3(f1, 3); - cmpFloat3(f2, 3); + cmpVal3(f1, 3); + cmpVal3(f2, 3); f2 = --f1; - cmpFloat3(f1, 2); - cmpFloat3(f2, 2); + cmpVal3(f1, 2); + cmpVal3(f2, 2); f2 = ~f1; - cmpFloat3(f2, (unsigned short)65533); + cmpVal3(f2, (unsigned short)65533); assert(!f1 == false); f1.x = 3; @@ -1126,19 +1171,19 @@ bool TestUShort4() { f2.z = 1; f2.w = 1; f3 = f1 + f2; - cmpFloat4(f3, 2); + cmpVal4(f3, 2); f2 = f3 - f1; - cmpFloat4(f2, 1); + cmpVal4(f2, 1); f1 = f2 * f3; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f2 = f1 / f3; - cmpFloat4(f2, 2/2); + cmpVal4(f2, 2/2); f3 = f1 % f2; - cmpFloat4(f3, 0); + cmpVal4(f3, 0); f1 = f3 & f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f2 = f1 ^ f3; - cmpFloat4(f2, 0); + cmpVal4(f2, 0); f1.x = 1; f1.y = 1; f1.z = 1; @@ -1148,9 +1193,9 @@ bool TestUShort4() { f2.z = 2; f2.w = 2; f3 = f1 << f2; - cmpFloat4(f3, 4); + cmpVal4(f3, 4); f2 = f3 >> f1; - cmpFloat4(f2, 2); + cmpVal4(f2, 2); f1.x = 2; f1.y = 2; @@ -1161,49 +1206,49 @@ bool TestUShort4() { f2.z = 1; f2.w = 1; f1 += f2; - cmpFloat4(f1, 3); + cmpVal4(f1, 3); f1 -= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 *= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 /= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 %= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1 &= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1 |= f2; - cmpFloat4(f1, 1); + cmpVal4(f1, 1); f1 ^= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1.x = 1; f1.y = 1; f1.z = 1; f1.w = 1; f1 <<= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 >>= f2; - cmpFloat4(f1, 1); + cmpVal4(f1, 1); f1.x = 2; f1.y = 2; f1.z = 2; f1.w = 2; f2 = f1++; - cmpFloat4(f1, 3); - cmpFloat4(f2, 2); + cmpVal4(f1, 3); + cmpVal4(f2, 2); f2 = f1--; - cmpFloat4(f2, 3); - cmpFloat4(f1, 2); + cmpVal4(f2, 3); + cmpVal4(f1, 2); f2 = ++f1; - cmpFloat4(f1, 3); - cmpFloat4(f2, 3); + cmpVal4(f1, 3); + cmpVal4(f2, 3); f2 = --f1; - cmpFloat4(f1, 2); - cmpFloat4(f2, 2); + cmpVal4(f1, 2); + cmpVal4(f2, 2); f2 = ~f1; - cmpFloat4(f2, (unsigned short)65533); + cmpVal4(f2, (unsigned short)65533); assert(!f1 == false); f1.x = 3; @@ -1235,66 +1280,66 @@ bool TestShort1() { f1.x = 1; f2.x = 1; f3 = f1 + f2; - cmpFloat1(f3, 2); + cmpVal1(f3, 2); f2 = f3 - f1; - cmpFloat1(f2, 1); + cmpVal1(f2, 1); f1 = f2 * f3; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f2 = f1 / f3; - cmpFloat1(f2, 2/2); + cmpVal1(f2, 2/2); f3 = f1 % f2; - cmpFloat1(f3, 0); + cmpVal1(f3, 0); f1 = f3 & f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f2 = f1 ^ f3; - cmpFloat1(f2, 0); + cmpVal1(f2, 0); f1.x = 1; f2.x = 2; f3 = f1 << f2; - cmpFloat1(f3, 4); + cmpVal1(f3, 4); f2 = f3 >> f1; - cmpFloat1(f2, 2); + cmpVal1(f2, 2); f1.x = 2; f2.x = 1; f1 += f2; - cmpFloat1(f1, 3); + cmpVal1(f1, 3); f1 -= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 *= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 /= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 %= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1 &= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1 |= f2; - cmpFloat1(f1, 1); + cmpVal1(f1, 1); f1 ^= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1.x = 1; f1 <<= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 >>= f2; - cmpFloat1(f1, 1); + cmpVal1(f1, 1); f1.x = 2; f2 = f1++; - cmpFloat1(f1, 3); - cmpFloat1(f2, 2); + cmpVal1(f1, 3); + cmpVal1(f2, 2); f2 = f1--; - cmpFloat1(f2, 3); - cmpFloat1(f1, 2); + cmpVal1(f2, 3); + cmpVal1(f1, 2); f2 = ++f1; - cmpFloat1(f1, 3); - cmpFloat1(f2, 3); + cmpVal1(f1, 3); + cmpVal1(f2, 3); f2 = --f1; - cmpFloat1(f1, 2); - cmpFloat1(f2, 2); + cmpVal1(f1, 2); + cmpVal1(f2, 2); f2 = ~f1; - cmpFloat1(f2, (signed short)65533); + cmpVal1(f2, (signed short)65533); assert(!f1 == false); f1.x = 3; @@ -1319,72 +1364,72 @@ bool TestShort2() { f2.x = 1; f2.y = 1; f3 = f1 + f2; - cmpFloat2(f3, 2); + cmpVal2(f3, 2); f2 = f3 - f1; - cmpFloat2(f2, 1); + cmpVal2(f2, 1); f1 = f2 * f3; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f2 = f1 / f3; - cmpFloat2(f2, 2/2); + cmpVal2(f2, 2/2); f3 = f1 % f2; - cmpFloat2(f3, 0); + cmpVal2(f3, 0); f1 = f3 & f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f2 = f1 ^ f3; - cmpFloat2(f2, 0); + cmpVal2(f2, 0); f1.x = 1; f1.y = 1; f2.x = 2; f2.y = 2; f3 = f1 << f2; - cmpFloat2(f3, 4); + cmpVal2(f3, 4); f2 = f3 >> f1; - cmpFloat2(f2, 2); + cmpVal2(f2, 2); f1.x = 2; f1.y = 2; f2.x = 1; f2.y = 1; f1 += f2; - cmpFloat2(f1, 3); + cmpVal2(f1, 3); f1 -= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 *= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 /= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 %= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1 &= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1 |= f2; - cmpFloat2(f1, 1); + cmpVal2(f1, 1); f1 ^= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1.x = 1; f1.y = 1; f1 <<= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 >>= f2; - cmpFloat2(f1, 1); + cmpVal2(f1, 1); f1.x = 2; f1.y = 2; f2 = f1++; - cmpFloat2(f1, 3); - cmpFloat2(f2, 2); + cmpVal2(f1, 3); + cmpVal2(f2, 2); f2 = f1--; - cmpFloat2(f2, 3); - cmpFloat2(f1, 2); + cmpVal2(f2, 3); + cmpVal2(f1, 2); f2 = ++f1; - cmpFloat2(f1, 3); - cmpFloat2(f2, 3); + cmpVal2(f1, 3); + cmpVal2(f2, 3); f2 = --f1; - cmpFloat2(f1, 2); - cmpFloat2(f2, 2); + cmpVal2(f1, 2); + cmpVal2(f2, 2); f2 = ~f1; - cmpFloat2(f2, (signed short)65533); + cmpVal2(f2, (signed short)65533); assert(!f1 == false); f1.x = 3; @@ -1414,19 +1459,19 @@ bool TestShort3() { f2.y = 1; f2.z = 1; f3 = f1 + f2; - cmpFloat3(f3, 2); + cmpVal3(f3, 2); f2 = f3 - f1; - cmpFloat3(f2, 1); + cmpVal3(f2, 1); f1 = f2 * f3; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f2 = f1 / f3; - cmpFloat3(f2, 2/2); + cmpVal3(f2, 2/2); f3 = f1 % f2; - cmpFloat3(f3, 0); + cmpVal3(f3, 0); f1 = f3 & f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f2 = f1 ^ f3; - cmpFloat3(f2, 0); + cmpVal3(f2, 0); f1.x = 1; f1.y = 1; f1.z = 1; @@ -1434,9 +1479,9 @@ bool TestShort3() { f2.y = 2; f2.z = 2; f3 = f1 << f2; - cmpFloat3(f3, 4); + cmpVal3(f3, 4); f2 = f3 >> f1; - cmpFloat3(f2, 2); + cmpVal3(f2, 2); f1.x = 2; f1.y = 2; @@ -1445,47 +1490,47 @@ bool TestShort3() { f2.y = 1; f2.z = 1; f1 += f2; - cmpFloat3(f1, 3); + cmpVal3(f1, 3); f1 -= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 *= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 /= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 %= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1 &= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1 |= f2; - cmpFloat3(f1, 1); + cmpVal3(f1, 1); f1 ^= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1.x = 1; f1.y = 1; f1.z = 1; f1 <<= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 >>= f2; - cmpFloat3(f1, 1); + cmpVal3(f1, 1); f1.x = 2; f1.y = 2; f1.z = 2; f2 = f1++; - cmpFloat3(f1, 3); - cmpFloat3(f2, 2); + cmpVal3(f1, 3); + cmpVal3(f2, 2); f2 = f1--; - cmpFloat3(f2, 3); - cmpFloat3(f1, 2); + cmpVal3(f2, 3); + cmpVal3(f1, 2); f2 = ++f1; - cmpFloat3(f1, 3); - cmpFloat3(f2, 3); + cmpVal3(f1, 3); + cmpVal3(f2, 3); f2 = --f1; - cmpFloat3(f1, 2); - cmpFloat3(f2, 2); + cmpVal3(f1, 2); + cmpVal3(f2, 2); f2 = ~f1; - cmpFloat3(f2, (signed short)65533); + cmpVal3(f2, (signed short)65533); assert(!f1 == false); f1.x = 3; @@ -1520,19 +1565,19 @@ bool TestShort4() { f2.z = 1; f2.w = 1; f3 = f1 + f2; - cmpFloat4(f3, 2); + cmpVal4(f3, 2); f2 = f3 - f1; - cmpFloat4(f2, 1); + cmpVal4(f2, 1); f1 = f2 * f3; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f2 = f1 / f3; - cmpFloat4(f2, 2/2); + cmpVal4(f2, 2/2); f3 = f1 % f2; - cmpFloat4(f3, 0); + cmpVal4(f3, 0); f1 = f3 & f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f2 = f1 ^ f3; - cmpFloat4(f2, 0); + cmpVal4(f2, 0); f1.x = 1; f1.y = 1; f1.z = 1; @@ -1542,9 +1587,9 @@ bool TestShort4() { f2.z = 2; f2.w = 2; f3 = f1 << f2; - cmpFloat4(f3, 4); + cmpVal4(f3, 4); f2 = f3 >> f1; - cmpFloat4(f2, 2); + cmpVal4(f2, 2); f1.x = 2; f1.y = 2; @@ -1555,49 +1600,49 @@ bool TestShort4() { f2.z = 1; f2.w = 1; f1 += f2; - cmpFloat4(f1, 3); + cmpVal4(f1, 3); f1 -= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 *= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 /= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 %= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1 &= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1 |= f2; - cmpFloat4(f1, 1); + cmpVal4(f1, 1); f1 ^= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1.x = 1; f1.y = 1; f1.z = 1; f1.w = 1; f1 <<= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 >>= f2; - cmpFloat4(f1, 1); + cmpVal4(f1, 1); f1.x = 2; f1.y = 2; f1.z = 2; f1.w = 2; f2 = f1++; - cmpFloat4(f1, 3); - cmpFloat4(f2, 2); + cmpVal4(f1, 3); + cmpVal4(f2, 2); f2 = f1--; - cmpFloat4(f2, 3); - cmpFloat4(f1, 2); + cmpVal4(f2, 3); + cmpVal4(f1, 2); f2 = ++f1; - cmpFloat4(f1, 3); - cmpFloat4(f2, 3); + cmpVal4(f1, 3); + cmpVal4(f2, 3); f2 = --f1; - cmpFloat4(f1, 2); - cmpFloat4(f2, 2); + cmpVal4(f1, 2); + cmpVal4(f2, 2); f2 = ~f1; - cmpFloat4(f2, (signed short)65533); + cmpVal4(f2, (signed short)65533); assert(!f1 == false); f1.x = 3; @@ -1630,66 +1675,66 @@ bool TestUInt1() { f1.x = 1; f2.x = 1; f3 = f1 + f2; - cmpFloat1(f3, 2); + cmpVal1(f3, 2); f2 = f3 - f1; - cmpFloat1(f2, 1); + cmpVal1(f2, 1); f1 = f2 * f3; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f2 = f1 / f3; - cmpFloat1(f2, 2/2); + cmpVal1(f2, 2/2); f3 = f1 % f2; - cmpFloat1(f3, 0); + cmpVal1(f3, 0); f1 = f3 & f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f2 = f1 ^ f3; - cmpFloat1(f2, 0); + cmpVal1(f2, 0); f1.x = 1; f2.x = 2; f3 = f1 << f2; - cmpFloat1(f3, 4); + cmpVal1(f3, 4); f2 = f3 >> f1; - cmpFloat1(f2, 2); + cmpVal1(f2, 2); f1.x = 2; f2.x = 1; f1 += f2; - cmpFloat1(f1, 3); + cmpVal1(f1, 3); f1 -= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 *= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 /= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 %= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1 &= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1 |= f2; - cmpFloat1(f1, 1); + cmpVal1(f1, 1); f1 ^= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1.x = 1; f1 <<= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 >>= f2; - cmpFloat1(f1, 1); + cmpVal1(f1, 1); f1.x = 2; f2 = f1++; - cmpFloat1(f1, 3); - cmpFloat1(f2, 2); + cmpVal1(f1, 3); + cmpVal1(f2, 2); f2 = f1--; - cmpFloat1(f2, 3); - cmpFloat1(f1, 2); + cmpVal1(f2, 3); + cmpVal1(f1, 2); f2 = ++f1; - cmpFloat1(f1, 3); - cmpFloat1(f2, 3); + cmpVal1(f1, 3); + cmpVal1(f2, 3); f2 = --f1; - cmpFloat1(f1, 2); - cmpFloat1(f2, 2); + cmpVal1(f1, 2); + cmpVal1(f2, 2); f2 = ~f1; - cmpFloat1(f2, (unsigned int)4294967293); + cmpVal1(f2, (unsigned int)4294967293); assert(!f1 == false); f1.x = 3; @@ -1714,72 +1759,72 @@ bool TestUInt2() { f2.x = 1; f2.y = 1; f3 = f1 + f2; - cmpFloat2(f3, 2); + cmpVal2(f3, 2); f2 = f3 - f1; - cmpFloat2(f2, 1); + cmpVal2(f2, 1); f1 = f2 * f3; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f2 = f1 / f3; - cmpFloat2(f2, 2/2); + cmpVal2(f2, 2/2); f3 = f1 % f2; - cmpFloat2(f3, 0); + cmpVal2(f3, 0); f1 = f3 & f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f2 = f1 ^ f3; - cmpFloat2(f2, 0); + cmpVal2(f2, 0); f1.x = 1; f1.y = 1; f2.x = 2; f2.y = 2; f3 = f1 << f2; - cmpFloat2(f3, 4); + cmpVal2(f3, 4); f2 = f3 >> f1; - cmpFloat2(f2, 2); + cmpVal2(f2, 2); f1.x = 2; f1.y = 2; f2.x = 1; f2.y = 1; f1 += f2; - cmpFloat2(f1, 3); + cmpVal2(f1, 3); f1 -= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 *= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 /= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 %= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1 &= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1 |= f2; - cmpFloat2(f1, 1); + cmpVal2(f1, 1); f1 ^= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1.x = 1; f1.y = 1; f1 <<= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 >>= f2; - cmpFloat2(f1, 1); + cmpVal2(f1, 1); f1.x = 2; f1.y = 2; f2 = f1++; - cmpFloat2(f1, 3); - cmpFloat2(f2, 2); + cmpVal2(f1, 3); + cmpVal2(f2, 2); f2 = f1--; - cmpFloat2(f2, 3); - cmpFloat2(f1, 2); + cmpVal2(f2, 3); + cmpVal2(f1, 2); f2 = ++f1; - cmpFloat2(f1, 3); - cmpFloat2(f2, 3); + cmpVal2(f1, 3); + cmpVal2(f2, 3); f2 = --f1; - cmpFloat2(f1, 2); - cmpFloat2(f2, 2); + cmpVal2(f1, 2); + cmpVal2(f2, 2); f2 = ~f1; - cmpFloat2(f2, (unsigned int)4294967293); + cmpVal2(f2, (unsigned int)4294967293); assert(!f1 == false); f1.x = 3; @@ -1809,19 +1854,19 @@ bool TestUInt3() { f2.y = 1; f2.z = 1; f3 = f1 + f2; - cmpFloat3(f3, 2); + cmpVal3(f3, 2); f2 = f3 - f1; - cmpFloat3(f2, 1); + cmpVal3(f2, 1); f1 = f2 * f3; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f2 = f1 / f3; - cmpFloat3(f2, 2/2); + cmpVal3(f2, 2/2); f3 = f1 % f2; - cmpFloat3(f3, 0); + cmpVal3(f3, 0); f1 = f3 & f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f2 = f1 ^ f3; - cmpFloat3(f2, 0); + cmpVal3(f2, 0); f1.x = 1; f1.y = 1; f1.z = 1; @@ -1829,9 +1874,9 @@ bool TestUInt3() { f2.y = 2; f2.z = 2; f3 = f1 << f2; - cmpFloat3(f3, 4); + cmpVal3(f3, 4); f2 = f3 >> f1; - cmpFloat3(f2, 2); + cmpVal3(f2, 2); f1.x = 2; f1.y = 2; @@ -1840,47 +1885,47 @@ bool TestUInt3() { f2.y = 1; f2.z = 1; f1 += f2; - cmpFloat3(f1, 3); + cmpVal3(f1, 3); f1 -= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 *= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 /= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 %= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1 &= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1 |= f2; - cmpFloat3(f1, 1); + cmpVal3(f1, 1); f1 ^= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1.x = 1; f1.y = 1; f1.z = 1; f1 <<= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 >>= f2; - cmpFloat3(f1, 1); + cmpVal3(f1, 1); f1.x = 2; f1.y = 2; f1.z = 2; f2 = f1++; - cmpFloat3(f1, 3); - cmpFloat3(f2, 2); + cmpVal3(f1, 3); + cmpVal3(f2, 2); f2 = f1--; - cmpFloat3(f2, 3); - cmpFloat3(f1, 2); + cmpVal3(f2, 3); + cmpVal3(f1, 2); f2 = ++f1; - cmpFloat3(f1, 3); - cmpFloat3(f2, 3); + cmpVal3(f1, 3); + cmpVal3(f2, 3); f2 = --f1; - cmpFloat3(f1, 2); - cmpFloat3(f2, 2); + cmpVal3(f1, 2); + cmpVal3(f2, 2); f2 = ~f1; - cmpFloat3(f2, (unsigned int)4294967293); + cmpVal3(f2, (unsigned int)4294967293); assert(!f1 == false); f1.x = 3; @@ -1915,19 +1960,19 @@ bool TestUInt4() { f2.z = 1; f2.w = 1; f3 = f1 + f2; - cmpFloat4(f3, 2); + cmpVal4(f3, 2); f2 = f3 - f1; - cmpFloat4(f2, 1); + cmpVal4(f2, 1); f1 = f2 * f3; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f2 = f1 / f3; - cmpFloat4(f2, 2/2); + cmpVal4(f2, 2/2); f3 = f1 % f2; - cmpFloat4(f3, 0); + cmpVal4(f3, 0); f1 = f3 & f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f2 = f1 ^ f3; - cmpFloat4(f2, 0); + cmpVal4(f2, 0); f1.x = 1; f1.y = 1; f1.z = 1; @@ -1937,9 +1982,9 @@ bool TestUInt4() { f2.z = 2; f2.w = 2; f3 = f1 << f2; - cmpFloat4(f3, 4); + cmpVal4(f3, 4); f2 = f3 >> f1; - cmpFloat4(f2, 2); + cmpVal4(f2, 2); f1.x = 2; f1.y = 2; @@ -1950,49 +1995,49 @@ bool TestUInt4() { f2.z = 1; f2.w = 1; f1 += f2; - cmpFloat4(f1, 3); + cmpVal4(f1, 3); f1 -= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 *= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 /= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 %= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1 &= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1 |= f2; - cmpFloat4(f1, 1); + cmpVal4(f1, 1); f1 ^= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1.x = 1; f1.y = 1; f1.z = 1; f1.w = 1; f1 <<= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 >>= f2; - cmpFloat4(f1, 1); + cmpVal4(f1, 1); f1.x = 2; f1.y = 2; f1.z = 2; f1.w = 2; f2 = f1++; - cmpFloat4(f1, 3); - cmpFloat4(f2, 2); + cmpVal4(f1, 3); + cmpVal4(f2, 2); f2 = f1--; - cmpFloat4(f2, 3); - cmpFloat4(f1, 2); + cmpVal4(f2, 3); + cmpVal4(f1, 2); f2 = ++f1; - cmpFloat4(f1, 3); - cmpFloat4(f2, 3); + cmpVal4(f1, 3); + cmpVal4(f2, 3); f2 = --f1; - cmpFloat4(f1, 2); - cmpFloat4(f2, 2); + cmpVal4(f1, 2); + cmpVal4(f2, 2); f2 = ~f1; - cmpFloat4(f2, (unsigned int)4294967293); + cmpVal4(f2, (unsigned int)4294967293); assert(!f1 == false); f1.x = 3; @@ -2024,66 +2069,66 @@ bool TestInt1() { f1.x = 1; f2.x = 1; f3 = f1 + f2; - cmpFloat1(f3, 2); + cmpVal1(f3, 2); f2 = f3 - f1; - cmpFloat1(f2, 1); + cmpVal1(f2, 1); f1 = f2 * f3; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f2 = f1 / f3; - cmpFloat1(f2, 2/2); + cmpVal1(f2, 2/2); f3 = f1 % f2; - cmpFloat1(f3, 0); + cmpVal1(f3, 0); f1 = f3 & f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f2 = f1 ^ f3; - cmpFloat1(f2, 0); + cmpVal1(f2, 0); f1.x = 1; f2.x = 2; f3 = f1 << f2; - cmpFloat1(f3, 4); + cmpVal1(f3, 4); f2 = f3 >> f1; - cmpFloat1(f2, 2); + cmpVal1(f2, 2); f1.x = 2; f2.x = 1; f1 += f2; - cmpFloat1(f1, 3); + cmpVal1(f1, 3); f1 -= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 *= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 /= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 %= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1 &= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1 |= f2; - cmpFloat1(f1, 1); + cmpVal1(f1, 1); f1 ^= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1.x = 1; f1 <<= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 >>= f2; - cmpFloat1(f1, 1); + cmpVal1(f1, 1); f1.x = 2; f2 = f1++; - cmpFloat1(f1, 3); - cmpFloat1(f2, 2); + cmpVal1(f1, 3); + cmpVal1(f2, 2); f2 = f1--; - cmpFloat1(f2, 3); - cmpFloat1(f1, 2); + cmpVal1(f2, 3); + cmpVal1(f1, 2); f2 = ++f1; - cmpFloat1(f1, 3); - cmpFloat1(f2, 3); + cmpVal1(f1, 3); + cmpVal1(f2, 3); f2 = --f1; - cmpFloat1(f1, 2); - cmpFloat1(f2, 2); + cmpVal1(f1, 2); + cmpVal1(f2, 2); f2 = ~f1; - cmpFloat1(f2, (signed int)4294967293); + cmpVal1(f2, (signed int)4294967293); assert(!f1 == false); f1.x = 3; @@ -2108,72 +2153,72 @@ bool TestInt2() { f2.x = 1; f2.y = 1; f3 = f1 + f2; - cmpFloat2(f3, 2); + cmpVal2(f3, 2); f2 = f3 - f1; - cmpFloat2(f2, 1); + cmpVal2(f2, 1); f1 = f2 * f3; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f2 = f1 / f3; - cmpFloat2(f2, 2/2); + cmpVal2(f2, 2/2); f3 = f1 % f2; - cmpFloat2(f3, 0); + cmpVal2(f3, 0); f1 = f3 & f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f2 = f1 ^ f3; - cmpFloat2(f2, 0); + cmpVal2(f2, 0); f1.x = 1; f1.y = 1; f2.x = 2; f2.y = 2; f3 = f1 << f2; - cmpFloat2(f3, 4); + cmpVal2(f3, 4); f2 = f3 >> f1; - cmpFloat2(f2, 2); + cmpVal2(f2, 2); f1.x = 2; f1.y = 2; f2.x = 1; f2.y = 1; f1 += f2; - cmpFloat2(f1, 3); + cmpVal2(f1, 3); f1 -= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 *= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 /= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 %= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1 &= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1 |= f2; - cmpFloat2(f1, 1); + cmpVal2(f1, 1); f1 ^= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1.x = 1; f1.y = 1; f1 <<= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 >>= f2; - cmpFloat2(f1, 1); + cmpVal2(f1, 1); f1.x = 2; f1.y = 2; f2 = f1++; - cmpFloat2(f1, 3); - cmpFloat2(f2, 2); + cmpVal2(f1, 3); + cmpVal2(f2, 2); f2 = f1--; - cmpFloat2(f2, 3); - cmpFloat2(f1, 2); + cmpVal2(f2, 3); + cmpVal2(f1, 2); f2 = ++f1; - cmpFloat2(f1, 3); - cmpFloat2(f2, 3); + cmpVal2(f1, 3); + cmpVal2(f2, 3); f2 = --f1; - cmpFloat2(f1, 2); - cmpFloat2(f2, 2); + cmpVal2(f1, 2); + cmpVal2(f2, 2); f2 = ~f1; - cmpFloat2(f2, (signed int)4294967293); + cmpVal2(f2, (signed int)4294967293); assert(!f1 == false); f1.x = 3; @@ -2203,19 +2248,19 @@ bool TestInt3() { f2.y = 1; f2.z = 1; f3 = f1 + f2; - cmpFloat3(f3, 2); + cmpVal3(f3, 2); f2 = f3 - f1; - cmpFloat3(f2, 1); + cmpVal3(f2, 1); f1 = f2 * f3; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f2 = f1 / f3; - cmpFloat3(f2, 2/2); + cmpVal3(f2, 2/2); f3 = f1 % f2; - cmpFloat3(f3, 0); + cmpVal3(f3, 0); f1 = f3 & f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f2 = f1 ^ f3; - cmpFloat3(f2, 0); + cmpVal3(f2, 0); f1.x = 1; f1.y = 1; f1.z = 1; @@ -2223,9 +2268,9 @@ bool TestInt3() { f2.y = 2; f2.z = 2; f3 = f1 << f2; - cmpFloat3(f3, 4); + cmpVal3(f3, 4); f2 = f3 >> f1; - cmpFloat3(f2, 2); + cmpVal3(f2, 2); f1.x = 2; f1.y = 2; @@ -2234,47 +2279,47 @@ bool TestInt3() { f2.y = 1; f2.z = 1; f1 += f2; - cmpFloat3(f1, 3); + cmpVal3(f1, 3); f1 -= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 *= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 /= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 %= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1 &= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1 |= f2; - cmpFloat3(f1, 1); + cmpVal3(f1, 1); f1 ^= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1.x = 1; f1.y = 1; f1.z = 1; f1 <<= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 >>= f2; - cmpFloat3(f1, 1); + cmpVal3(f1, 1); f1.x = 2; f1.y = 2; f1.z = 2; f2 = f1++; - cmpFloat3(f1, 3); - cmpFloat3(f2, 2); + cmpVal3(f1, 3); + cmpVal3(f2, 2); f2 = f1--; - cmpFloat3(f2, 3); - cmpFloat3(f1, 2); + cmpVal3(f2, 3); + cmpVal3(f1, 2); f2 = ++f1; - cmpFloat3(f1, 3); - cmpFloat3(f2, 3); + cmpVal3(f1, 3); + cmpVal3(f2, 3); f2 = --f1; - cmpFloat3(f1, 2); - cmpFloat3(f2, 2); + cmpVal3(f1, 2); + cmpVal3(f2, 2); f2 = ~f1; - cmpFloat3(f2, (signed int)4294967293); + cmpVal3(f2, (signed int)4294967293); assert(!f1 == false); f1.x = 3; @@ -2309,19 +2354,19 @@ bool TestInt4() { f2.z = 1; f2.w = 1; f3 = f1 + f2; - cmpFloat4(f3, 2); + cmpVal4(f3, 2); f2 = f3 - f1; - cmpFloat4(f2, 1); + cmpVal4(f2, 1); f1 = f2 * f3; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f2 = f1 / f3; - cmpFloat4(f2, 2/2); + cmpVal4(f2, 2/2); f3 = f1 % f2; - cmpFloat4(f3, 0); + cmpVal4(f3, 0); f1 = f3 & f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f2 = f1 ^ f3; - cmpFloat4(f2, 0); + cmpVal4(f2, 0); f1.x = 1; f1.y = 1; f1.z = 1; @@ -2331,9 +2376,9 @@ bool TestInt4() { f2.z = 2; f2.w = 2; f3 = f1 << f2; - cmpFloat4(f3, 4); + cmpVal4(f3, 4); f2 = f3 >> f1; - cmpFloat4(f2, 2); + cmpVal4(f2, 2); f1.x = 2; f1.y = 2; @@ -2344,49 +2389,49 @@ bool TestInt4() { f2.z = 1; f2.w = 1; f1 += f2; - cmpFloat4(f1, 3); + cmpVal4(f1, 3); f1 -= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 *= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 /= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 %= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1 &= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1 |= f2; - cmpFloat4(f1, 1); + cmpVal4(f1, 1); f1 ^= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1.x = 1; f1.y = 1; f1.z = 1; f1.w = 1; f1 <<= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 >>= f2; - cmpFloat4(f1, 1); + cmpVal4(f1, 1); f1.x = 2; f1.y = 2; f1.z = 2; f1.w = 2; f2 = f1++; - cmpFloat4(f1, 3); - cmpFloat4(f2, 2); + cmpVal4(f1, 3); + cmpVal4(f2, 2); f2 = f1--; - cmpFloat4(f2, 3); - cmpFloat4(f1, 2); + cmpVal4(f2, 3); + cmpVal4(f1, 2); f2 = ++f1; - cmpFloat4(f1, 3); - cmpFloat4(f2, 3); + cmpVal4(f1, 3); + cmpVal4(f2, 3); f2 = --f1; - cmpFloat4(f1, 2); - cmpFloat4(f2, 2); + cmpVal4(f1, 2); + cmpVal4(f2, 2); f2 = ~f1; - cmpFloat4(f2, (signed int)4294967293); + cmpVal4(f2, (signed int)4294967293); assert(!f1 == false); f1.x = 3; @@ -2418,66 +2463,66 @@ bool TestULong1() { f1.x = 1; f2.x = 1; f3 = f1 + f2; - cmpFloat1(f3, 2); + cmpVal1(f3, 2); f2 = f3 - f1; - cmpFloat1(f2, 1); + cmpVal1(f2, 1); f1 = f2 * f3; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f2 = f1 / f3; - cmpFloat1(f2, 2/2); + cmpVal1(f2, 2/2); f3 = f1 % f2; - cmpFloat1(f3, 0); + cmpVal1(f3, 0); f1 = f3 & f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f2 = f1 ^ f3; - cmpFloat1(f2, 0); + cmpVal1(f2, 0); f1.x = 1; f2.x = 2; f3 = f1 << f2; - cmpFloat1(f3, 4); + cmpVal1(f3, 4); f2 = f3 >> f1; - cmpFloat1(f2, 2); + cmpVal1(f2, 2); f1.x = 2; f2.x = 1; f1 += f2; - cmpFloat1(f1, 3); + cmpVal1(f1, 3); f1 -= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 *= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 /= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 %= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1 &= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1 |= f2; - cmpFloat1(f1, 1); + cmpVal1(f1, 1); f1 ^= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1.x = 1; f1 <<= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 >>= f2; - cmpFloat1(f1, 1); + cmpVal1(f1, 1); f1.x = 2; f2 = f1++; - cmpFloat1(f1, 3); - cmpFloat1(f2, 2); + cmpVal1(f1, 3); + cmpVal1(f2, 2); f2 = f1--; - cmpFloat1(f2, 3); - cmpFloat1(f1, 2); + cmpVal1(f2, 3); + cmpVal1(f1, 2); f2 = ++f1; - cmpFloat1(f1, 3); - cmpFloat1(f2, 3); + cmpVal1(f1, 3); + cmpVal1(f2, 3); f2 = --f1; - cmpFloat1(f1, 2); - cmpFloat1(f2, 2); + cmpVal1(f1, 2); + cmpVal1(f2, 2); f2 = ~f1; - cmpFloat1(f2, 18446744073709551613UL); + cmpVal1(f2, 18446744073709551613UL); assert(!f1 == false); f1.x = 3; @@ -2502,72 +2547,72 @@ bool TestULong2() { f2.x = 1; f2.y = 1; f3 = f1 + f2; - cmpFloat2(f3, 2); + cmpVal2(f3, 2); f2 = f3 - f1; - cmpFloat2(f2, 1); + cmpVal2(f2, 1); f1 = f2 * f3; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f2 = f1 / f3; - cmpFloat2(f2, 2/2); + cmpVal2(f2, 2/2); f3 = f1 % f2; - cmpFloat2(f3, 0); + cmpVal2(f3, 0); f1 = f3 & f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f2 = f1 ^ f3; - cmpFloat2(f2, 0); + cmpVal2(f2, 0); f1.x = 1; f1.y = 1; f2.x = 2; f2.y = 2; f3 = f1 << f2; - cmpFloat2(f3, 4); + cmpVal2(f3, 4); f2 = f3 >> f1; - cmpFloat2(f2, 2); + cmpVal2(f2, 2); f1.x = 2; f1.y = 2; f2.x = 1; f2.y = 1; f1 += f2; - cmpFloat2(f1, 3); + cmpVal2(f1, 3); f1 -= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 *= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 /= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 %= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1 &= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1 |= f2; - cmpFloat2(f1, 1); + cmpVal2(f1, 1); f1 ^= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1.x = 1; f1.y = 1; f1 <<= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 >>= f2; - cmpFloat2(f1, 1); + cmpVal2(f1, 1); f1.x = 2; f1.y = 2; f2 = f1++; - cmpFloat2(f1, 3); - cmpFloat2(f2, 2); + cmpVal2(f1, 3); + cmpVal2(f2, 2); f2 = f1--; - cmpFloat2(f2, 3); - cmpFloat2(f1, 2); + cmpVal2(f2, 3); + cmpVal2(f1, 2); f2 = ++f1; - cmpFloat2(f1, 3); - cmpFloat2(f2, 3); + cmpVal2(f1, 3); + cmpVal2(f2, 3); f2 = --f1; - cmpFloat2(f1, 2); - cmpFloat2(f2, 2); + cmpVal2(f1, 2); + cmpVal2(f2, 2); f2 = ~f1; - cmpFloat2(f2, 18446744073709551613UL); + cmpVal2(f2, 18446744073709551613UL); assert(!f1 == false); f1.x = 3; @@ -2597,19 +2642,19 @@ bool TestULong3() { f2.y = 1; f2.z = 1; f3 = f1 + f2; - cmpFloat3(f3, 2); + cmpVal3(f3, 2); f2 = f3 - f1; - cmpFloat3(f2, 1); + cmpVal3(f2, 1); f1 = f2 * f3; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f2 = f1 / f3; - cmpFloat3(f2, 2/2); + cmpVal3(f2, 2/2); f3 = f1 % f2; - cmpFloat3(f3, 0); + cmpVal3(f3, 0); f1 = f3 & f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f2 = f1 ^ f3; - cmpFloat3(f2, 0); + cmpVal3(f2, 0); f1.x = 1; f1.y = 1; f1.z = 1; @@ -2617,9 +2662,9 @@ bool TestULong3() { f2.y = 2; f2.z = 2; f3 = f1 << f2; - cmpFloat3(f3, 4); + cmpVal3(f3, 4); f2 = f3 >> f1; - cmpFloat3(f2, 2); + cmpVal3(f2, 2); f1.x = 2; f1.y = 2; @@ -2628,47 +2673,47 @@ bool TestULong3() { f2.y = 1; f2.z = 1; f1 += f2; - cmpFloat3(f1, 3); + cmpVal3(f1, 3); f1 -= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 *= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 /= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 %= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1 &= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1 |= f2; - cmpFloat3(f1, 1); + cmpVal3(f1, 1); f1 ^= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1.x = 1; f1.y = 1; f1.z = 1; f1 <<= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 >>= f2; - cmpFloat3(f1, 1); + cmpVal3(f1, 1); f1.x = 2; f1.y = 2; f1.z = 2; f2 = f1++; - cmpFloat3(f1, 3); - cmpFloat3(f2, 2); + cmpVal3(f1, 3); + cmpVal3(f2, 2); f2 = f1--; - cmpFloat3(f2, 3); - cmpFloat3(f1, 2); + cmpVal3(f2, 3); + cmpVal3(f1, 2); f2 = ++f1; - cmpFloat3(f1, 3); - cmpFloat3(f2, 3); + cmpVal3(f1, 3); + cmpVal3(f2, 3); f2 = --f1; - cmpFloat3(f1, 2); - cmpFloat3(f2, 2); + cmpVal3(f1, 2); + cmpVal3(f2, 2); f2 = ~f1; - cmpFloat3(f2, 18446744073709551613UL); + cmpVal3(f2, 18446744073709551613UL); assert(!f1 == false); f1.x = 3; @@ -2703,19 +2748,19 @@ bool TestULong4() { f2.z = 1; f2.w = 1; f3 = f1 + f2; - cmpFloat4(f3, 2); + cmpVal4(f3, 2); f2 = f3 - f1; - cmpFloat4(f2, 1); + cmpVal4(f2, 1); f1 = f2 * f3; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f2 = f1 / f3; - cmpFloat4(f2, 2/2); + cmpVal4(f2, 2/2); f3 = f1 % f2; - cmpFloat4(f3, 0); + cmpVal4(f3, 0); f1 = f3 & f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f2 = f1 ^ f3; - cmpFloat4(f2, 0); + cmpVal4(f2, 0); f1.x = 1; f1.y = 1; f1.z = 1; @@ -2725,9 +2770,9 @@ bool TestULong4() { f2.z = 2; f2.w = 2; f3 = f1 << f2; - cmpFloat4(f3, 4); + cmpVal4(f3, 4); f2 = f3 >> f1; - cmpFloat4(f2, 2); + cmpVal4(f2, 2); f1.x = 2; f1.y = 2; @@ -2738,49 +2783,49 @@ bool TestULong4() { f2.z = 1; f2.w = 1; f1 += f2; - cmpFloat4(f1, 3); + cmpVal4(f1, 3); f1 -= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 *= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 /= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 %= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1 &= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1 |= f2; - cmpFloat4(f1, 1); + cmpVal4(f1, 1); f1 ^= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1.x = 1; f1.y = 1; f1.z = 1; f1.w = 1; f1 <<= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 >>= f2; - cmpFloat4(f1, 1); + cmpVal4(f1, 1); f1.x = 2; f1.y = 2; f1.z = 2; f1.w = 2; f2 = f1++; - cmpFloat4(f1, 3); - cmpFloat4(f2, 2); + cmpVal4(f1, 3); + cmpVal4(f2, 2); f2 = f1--; - cmpFloat4(f2, 3); - cmpFloat4(f1, 2); + cmpVal4(f2, 3); + cmpVal4(f1, 2); f2 = ++f1; - cmpFloat4(f1, 3); - cmpFloat4(f2, 3); + cmpVal4(f1, 3); + cmpVal4(f2, 3); f2 = --f1; - cmpFloat4(f1, 2); - cmpFloat4(f2, 2); + cmpVal4(f1, 2); + cmpVal4(f2, 2); f2 = ~f1; - cmpFloat4(f2, 18446744073709551613UL); + cmpVal4(f2, 18446744073709551613UL); assert(!f1 == false); f1.x = 3; @@ -2812,66 +2857,66 @@ bool TestLong1() { f1.x = 1; f2.x = 1; f3 = f1 + f2; - cmpFloat1(f3, 2); + cmpVal1(f3, 2); f2 = f3 - f1; - cmpFloat1(f2, 1); + cmpVal1(f2, 1); f1 = f2 * f3; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f2 = f1 / f3; - cmpFloat1(f2, 2/2); + cmpVal1(f2, 2/2); f3 = f1 % f2; - cmpFloat1(f3, 0); + cmpVal1(f3, 0); f1 = f3 & f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f2 = f1 ^ f3; - cmpFloat1(f2, 0); + cmpVal1(f2, 0); f1.x = 1; f2.x = 2; f3 = f1 << f2; - cmpFloat1(f3, 4); + cmpVal1(f3, 4); f2 = f3 >> f1; - cmpFloat1(f2, 2); + cmpVal1(f2, 2); f1.x = 2; f2.x = 1; f1 += f2; - cmpFloat1(f1, 3); + cmpVal1(f1, 3); f1 -= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 *= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 /= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 %= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1 &= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1 |= f2; - cmpFloat1(f1, 1); + cmpVal1(f1, 1); f1 ^= f2; - cmpFloat1(f1, 0); + cmpVal1(f1, 0); f1.x = 1; f1 <<= f2; - cmpFloat1(f1, 2); + cmpVal1(f1, 2); f1 >>= f2; - cmpFloat1(f1, 1); + cmpVal1(f1, 1); f1.x = 2; f2 = f1++; - cmpFloat1(f1, 3); - cmpFloat1(f2, 2); + cmpVal1(f1, 3); + cmpVal1(f2, 2); f2 = f1--; - cmpFloat1(f2, 3); - cmpFloat1(f1, 2); + cmpVal1(f2, 3); + cmpVal1(f1, 2); f2 = ++f1; - cmpFloat1(f1, 3); - cmpFloat1(f2, 3); + cmpVal1(f1, 3); + cmpVal1(f2, 3); f2 = --f1; - cmpFloat1(f1, 2); - cmpFloat1(f2, 2); + cmpVal1(f1, 2); + cmpVal1(f2, 2); f2 = ~f1; - cmpFloat1(f2, -3); + cmpVal1(f2, -3); assert(!f1 == false); f1.x = 3; @@ -2896,72 +2941,72 @@ bool TestLong2() { f2.x = 1; f2.y = 1; f3 = f1 + f2; - cmpFloat2(f3, 2); + cmpVal2(f3, 2); f2 = f3 - f1; - cmpFloat2(f2, 1); + cmpVal2(f2, 1); f1 = f2 * f3; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f2 = f1 / f3; - cmpFloat2(f2, 2/2); + cmpVal2(f2, 2/2); f3 = f1 % f2; - cmpFloat2(f3, 0); + cmpVal2(f3, 0); f1 = f3 & f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f2 = f1 ^ f3; - cmpFloat2(f2, 0); + cmpVal2(f2, 0); f1.x = 1; f1.y = 1; f2.x = 2; f2.y = 2; f3 = f1 << f2; - cmpFloat2(f3, 4); + cmpVal2(f3, 4); f2 = f3 >> f1; - cmpFloat2(f2, 2); + cmpVal2(f2, 2); f1.x = 2; f1.y = 2; f2.x = 1; f2.y = 1; f1 += f2; - cmpFloat2(f1, 3); + cmpVal2(f1, 3); f1 -= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 *= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 /= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 %= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1 &= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1 |= f2; - cmpFloat2(f1, 1); + cmpVal2(f1, 1); f1 ^= f2; - cmpFloat2(f1, 0); + cmpVal2(f1, 0); f1.x = 1; f1.y = 1; f1 <<= f2; - cmpFloat2(f1, 2); + cmpVal2(f1, 2); f1 >>= f2; - cmpFloat2(f1, 1); + cmpVal2(f1, 1); f1.x = 2; f1.y = 2; f2 = f1++; - cmpFloat2(f1, 3); - cmpFloat2(f2, 2); + cmpVal2(f1, 3); + cmpVal2(f2, 2); f2 = f1--; - cmpFloat2(f2, 3); - cmpFloat2(f1, 2); + cmpVal2(f2, 3); + cmpVal2(f1, 2); f2 = ++f1; - cmpFloat2(f1, 3); - cmpFloat2(f2, 3); + cmpVal2(f1, 3); + cmpVal2(f2, 3); f2 = --f1; - cmpFloat2(f1, 2); - cmpFloat2(f2, 2); + cmpVal2(f1, 2); + cmpVal2(f2, 2); f2 = ~f1; - cmpFloat2(f2, -3); + cmpVal2(f2, -3); assert(!f1 == false); f1.x = 3; @@ -2991,19 +3036,19 @@ bool TestLong3() { f2.y = 1; f2.z = 1; f3 = f1 + f2; - cmpFloat3(f3, 2); + cmpVal3(f3, 2); f2 = f3 - f1; - cmpFloat3(f2, 1); + cmpVal3(f2, 1); f1 = f2 * f3; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f2 = f1 / f3; - cmpFloat3(f2, 2/2); + cmpVal3(f2, 2/2); f3 = f1 % f2; - cmpFloat3(f3, 0); + cmpVal3(f3, 0); f1 = f3 & f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f2 = f1 ^ f3; - cmpFloat3(f2, 0); + cmpVal3(f2, 0); f1.x = 1; f1.y = 1; f1.z = 1; @@ -3011,9 +3056,9 @@ bool TestLong3() { f2.y = 2; f2.z = 2; f3 = f1 << f2; - cmpFloat3(f3, 4); + cmpVal3(f3, 4); f2 = f3 >> f1; - cmpFloat3(f2, 2); + cmpVal3(f2, 2); f1.x = 2; f1.y = 2; @@ -3022,47 +3067,47 @@ bool TestLong3() { f2.y = 1; f2.z = 1; f1 += f2; - cmpFloat3(f1, 3); + cmpVal3(f1, 3); f1 -= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 *= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 /= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 %= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1 &= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1 |= f2; - cmpFloat3(f1, 1); + cmpVal3(f1, 1); f1 ^= f2; - cmpFloat3(f1, 0); + cmpVal3(f1, 0); f1.x = 1; f1.y = 1; f1.z = 1; f1 <<= f2; - cmpFloat3(f1, 2); + cmpVal3(f1, 2); f1 >>= f2; - cmpFloat3(f1, 1); + cmpVal3(f1, 1); f1.x = 2; f1.y = 2; f1.z = 2; f2 = f1++; - cmpFloat3(f1, 3); - cmpFloat3(f2, 2); + cmpVal3(f1, 3); + cmpVal3(f2, 2); f2 = f1--; - cmpFloat3(f2, 3); - cmpFloat3(f1, 2); + cmpVal3(f2, 3); + cmpVal3(f1, 2); f2 = ++f1; - cmpFloat3(f1, 3); - cmpFloat3(f2, 3); + cmpVal3(f1, 3); + cmpVal3(f2, 3); f2 = --f1; - cmpFloat3(f1, 2); - cmpFloat3(f2, 2); + cmpVal3(f1, 2); + cmpVal3(f2, 2); f2 = ~f1; - cmpFloat3(f2, -3); + cmpVal3(f2, -3); assert(!f1 == false); f1.x = 3; @@ -3097,19 +3142,19 @@ bool TestLong4() { f2.z = 1; f2.w = 1; f3 = f1 + f2; - cmpFloat4(f3, 2); + cmpVal4(f3, 2); f2 = f3 - f1; - cmpFloat4(f2, 1); + cmpVal4(f2, 1); f1 = f2 * f3; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f2 = f1 / f3; - cmpFloat4(f2, 2/2); + cmpVal4(f2, 2/2); f3 = f1 % f2; - cmpFloat4(f3, 0); + cmpVal4(f3, 0); f1 = f3 & f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f2 = f1 ^ f3; - cmpFloat4(f2, 0); + cmpVal4(f2, 0); f1.x = 1; f1.y = 1; f1.z = 1; @@ -3119,9 +3164,9 @@ bool TestLong4() { f2.z = 2; f2.w = 2; f3 = f1 << f2; - cmpFloat4(f3, 4); + cmpVal4(f3, 4); f2 = f3 >> f1; - cmpFloat4(f2, 2); + cmpVal4(f2, 2); f1.x = 2; f1.y = 2; @@ -3132,49 +3177,49 @@ bool TestLong4() { f2.z = 1; f2.w = 1; f1 += f2; - cmpFloat4(f1, 3); + cmpVal4(f1, 3); f1 -= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 *= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 /= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 %= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1 &= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1 |= f2; - cmpFloat4(f1, 1); + cmpVal4(f1, 1); f1 ^= f2; - cmpFloat4(f1, 0); + cmpVal4(f1, 0); f1.x = 1; f1.y = 1; f1.z = 1; f1.w = 1; f1 <<= f2; - cmpFloat4(f1, 2); + cmpVal4(f1, 2); f1 >>= f2; - cmpFloat4(f1, 1); + cmpVal4(f1, 1); f1.x = 2; f1.y = 2; f1.z = 2; f1.w = 2; f2 = f1++; - cmpFloat4(f1, 3); - cmpFloat4(f2, 2); + cmpVal4(f1, 3); + cmpVal4(f2, 2); f2 = f1--; - cmpFloat4(f2, 3); - cmpFloat4(f1, 2); + cmpVal4(f2, 3); + cmpVal4(f1, 2); f2 = ++f1; - cmpFloat4(f1, 3); - cmpFloat4(f2, 3); + cmpVal4(f1, 3); + cmpVal4(f2, 3); f2 = --f1; - cmpFloat4(f1, 2); - cmpFloat4(f2, 2); + cmpVal4(f1, 2); + cmpVal4(f2, 2); f2 = ~f1; - cmpFloat4(f2, -3); + cmpVal4(f2, -3); assert(!f1 == false); f1.x = 3; @@ -3205,39 +3250,39 @@ bool TestLong4() { bool TestFloat1() { float1 f1, f2, f3; // float1 f4(1); -// cmpFloat1(f4, 1.0f); +// cmpVal1(f4, 1.0f); // float1 f5(2.0f); -// cmpFloat1(f5, 2.0f); +// cmpVal1(f5, 2.0f); f1.x = 1.0f; f2.x = 1.0f; f3 = f1 + f2; - cmpFloat1(f3, 2.0f); + cmpVal1(f3, 2.0f); f2 = f3 - f1; - cmpFloat1(f2, 1.0f); + cmpVal1(f2, 1.0f); f1 = f2 * f3; - cmpFloat1(f1, 2.0f); + cmpVal1(f1, 2.0f); f2 = f1 / f3; - cmpFloat1(f2, 2.0f/2.0f); + cmpVal1(f2, 2.0f/2.0f); f1 += f2; - cmpFloat1(f1, 3.0f); + cmpVal1(f1, 3.0f); f1 -= f2; - cmpFloat1(f1, 2.0f); + cmpVal1(f1, 2.0f); f1 *= f2; - cmpFloat1(f1, 2.0f); + cmpVal1(f1, 2.0f); f1 /= f2; - cmpFloat1(f1, 2.0f); + cmpVal1(f1, 2.0f); f2 = f1++; - cmpFloat1(f1, 3.0f); - cmpFloat1(f2, 2.0f); + cmpVal1(f1, 3.0f); + cmpVal1(f2, 2.0f); f2 = f1--; - cmpFloat1(f2, 3.0f); - cmpFloat1(f1, 2.0f); + cmpVal1(f2, 3.0f); + cmpVal1(f1, 2.0f); f2 = ++f1; - cmpFloat1(f1, 3.0f); - cmpFloat1(f2, 3.0f); + cmpVal1(f1, 3.0f); + cmpVal1(f2, 3.0f); f2 = --f1; - cmpFloat1(f1, 2.0f); - cmpFloat1(f1, 2.0f); + cmpVal1(f1, 2.0f); + cmpVal1(f1, 2.0f); f1.x = 3.0f; f2.x = 4.0f; @@ -3259,34 +3304,34 @@ bool TestFloat2() { f2.x = 1.0f; f2.y = 1.0f; f3 = f1 + f2; - cmpFloat2(f3, 2.0f); + cmpVal2(f3, 2.0f); f2 = f3 - f1; - cmpFloat2(f2, 1.0f); + cmpVal2(f2, 1.0f); f1 = f2 * f3; - cmpFloat2(f1, 2.0f); + cmpVal2(f1, 2.0f); f2 = f1 / f3; - cmpFloat2(f2, 2.0f/2.0f); + cmpVal2(f2, 2.0f/2.0f); f1 += f2; - cmpFloat2(f1, 3.0f); + cmpVal2(f1, 3.0f); f1 -= f2; - cmpFloat2(f1, 2.0f); + cmpVal2(f1, 2.0f); f1 *= f2; - cmpFloat2(f1, 2.0f); + cmpVal2(f1, 2.0f); f1 /= f2; - cmpFloat2(f1, 2.0f); + cmpVal2(f1, 2.0f); f2 = f1++; - cmpFloat2(f1, 3.0f); - cmpFloat2(f2, 2.0f); + cmpVal2(f1, 3.0f); + cmpVal2(f2, 2.0f); f2 = f1--; - cmpFloat2(f2, 3.0f); - cmpFloat2(f1, 2.0f); + cmpVal2(f2, 3.0f); + cmpVal2(f1, 2.0f); f2 = ++f1; - cmpFloat2(f1, 3.0f); - cmpFloat2(f2, 3.0f); + cmpVal2(f1, 3.0f); + cmpVal2(f2, 3.0f); f2 = --f1; - cmpFloat2(f1, 2.0f); - cmpFloat2(f1, 2.0f); + cmpVal2(f1, 2.0f); + cmpVal2(f1, 2.0f); f1.x = 3.0f; f1.y = 3.0f; @@ -3314,32 +3359,32 @@ bool TestFloat3() { f2.y = 1.0f; f2.z = 1.0f; f3 = f1 + f2; - cmpFloat3(f3, 2.0f); + cmpVal3(f3, 2.0f); f2 = f3 - f1; - cmpFloat3(f2, 1.0f); + cmpVal3(f2, 1.0f); f1 = f2 * f3; - cmpFloat3(f1, 2.0f); + cmpVal3(f1, 2.0f); f2 = f1 / f3; - cmpFloat3(f2, 2.0f/2.0f); + cmpVal3(f2, 2.0f/2.0f); f1 += f2; - cmpFloat3(f1, 3.0f); + cmpVal3(f1, 3.0f); f1 -= f2; - cmpFloat3(f1, 2.0f); + cmpVal3(f1, 2.0f); f1 *= f2; - cmpFloat3(f1, 2.0f); + cmpVal3(f1, 2.0f); f1 /= f2; f2 = f1++; - cmpFloat3(f1, 3.0f); - cmpFloat3(f2, 2.0f); + cmpVal3(f1, 3.0f); + cmpVal3(f2, 2.0f); f2 = f1--; - cmpFloat3(f2, 3.0f); - cmpFloat3(f1, 2.0f); + cmpVal3(f2, 3.0f); + cmpVal3(f1, 2.0f); f2 = ++f1; - cmpFloat3(f1, 3.0f); - cmpFloat3(f2, 3.0f); + cmpVal3(f1, 3.0f); + cmpVal3(f2, 3.0f); f2 = --f1; - cmpFloat3(f1, 2.0f); - cmpFloat3(f1, 2.0f); + cmpVal3(f1, 2.0f); + cmpVal3(f1, 2.0f); f1.x = 3.0f; f1.y = 3.0f; @@ -3373,32 +3418,32 @@ bool TestFloat4() { f2.z = 1.0f; f2.w = 1.0f; f3 = f1 + f2; - cmpFloat4(f3, 2.0f); + cmpVal4(f3, 2.0f); f2 = f3 - f1; - cmpFloat4(f2, 1.0f); + cmpVal4(f2, 1.0f); f1 = f2 * f3; - cmpFloat4(f1, 2.0f); + cmpVal4(f1, 2.0f); f2 = f1 / f3; - cmpFloat4(f2, 2.0f/2.0f); + cmpVal4(f2, 2.0f/2.0f); f1 += f2; - cmpFloat4(f1, 3.0f); + cmpVal4(f1, 3.0f); f1 -= f2; - cmpFloat4(f1, 2.0f); + cmpVal4(f1, 2.0f); f1 *= f2; - cmpFloat4(f1, 2.0f); + cmpVal4(f1, 2.0f); f1 /= f2; f2 = f1++; - cmpFloat4(f1, 3.0f); - cmpFloat4(f2, 2.0f); + cmpVal4(f1, 3.0f); + cmpVal4(f2, 2.0f); f2 = f1--; - cmpFloat4(f2, 3.0f); - cmpFloat4(f1, 2.0f); + cmpVal4(f2, 3.0f); + cmpVal4(f1, 2.0f); f2 = ++f1; - cmpFloat4(f1, 3.0f); - cmpFloat4(f2, 3.0f); + cmpVal4(f1, 3.0f); + cmpVal4(f2, 3.0f); f2 = --f1; - cmpFloat4(f1, 2.0f); - cmpFloat4(f1, 2.0f); + cmpVal4(f1, 2.0f); + cmpVal4(f1, 2.0f); f1.x = 3.0f; f1.y = 3.0f; @@ -3422,8 +3467,6 @@ bool TestFloat4() { return true; } - - int main() { assert(sizeof(float1) == 4); assert(sizeof(float2) == 8); @@ -3438,6 +3481,6 @@ int main() { && TestInt1() && TestInt2() && TestInt3() && TestInt4() && TestULong1() && TestULong2() && TestULong3() && TestULong4() && TestLong1() && TestLong2() && TestLong3() && TestLong4() == true); - + passed(); float1 f1 = make_float1(1.0f); } diff --git a/tests/src/deviceLib/hipVectorTypesDevice.cpp b/tests/src/deviceLib/hipVectorTypesDevice.cpp new file mode 100644 index 0000000000..87351a1e83 --- /dev/null +++ b/tests/src/deviceLib/hipVectorTypesDevice.cpp @@ -0,0 +1,3880 @@ +/* +Copyright (c) 2015-2017 Advanced Micro Devices, Inc. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +/* HIT_START + * BUILD: %t %s ../test_common.cpp + * RUN: %t + * HIT_END + */ + +#include +#include +#include"test_common.h" +#define cmpVal1(in, exp) \ + if(in.x != exp) { \ + } \ + +#define cmpVal2(in, exp) \ + if(in.x != exp || in.y != exp) { \ + } \ + +#define cmpVal3(in, exp) \ + if(in.x != exp || in.y != exp || in.z != exp) { \ + } \ + +#define cmpVal4(in, exp) \ + if(in.x != exp || in.y != exp || in.z != exp || in.w != exp ) { \ + } \ + +__device__ bool TestUChar1() { + uchar1 f1, f2, f3; + f1.x = 1; + f2.x = 1; + f3 = f1 + f2; + cmpVal1(f3, 2); + f2 = f3 - f1; + cmpVal1(f2, 1); + f1 = f2 * f3; + cmpVal1(f1, 2); + f2 = f1 / f3; + cmpVal1(f2, 2/2); + f3 = f1 % f2; + cmpVal1(f3, 0); + f1 = f3 & f2; + cmpVal1(f1, 0); + f2 = f1 ^ f3; + cmpVal1(f2, 0); + f1.x = 1; + f2.x = 2; + f3 = f1 << f2; + cmpVal1(f3, 4); + f2 = f3 >> f1; + cmpVal1(f2, 2); + + f1.x = 2; + f2.x = 1; + f1 += f2; + cmpVal1(f1, 3); + f1 -= f2; + cmpVal1(f1, 2); + f1 *= f2; + cmpVal1(f1, 2); + f1 /= f2; + cmpVal1(f1, 2); + f1 %= f2; + cmpVal1(f1, 0); + f1 &= f2; + cmpVal1(f1, 0); + f1 |= f2; + cmpVal1(f1, 1); + f1 ^= f2; + cmpVal1(f1, 0); + f1.x = 1; + f1 <<= f2; + cmpVal1(f1, 2); + f1 >>= f2; + cmpVal1(f1, 1); + + f1.x = 2; + f2 = f1++; + cmpVal1(f1, 3); + cmpVal1(f2, 2); + f2 = f1--; + cmpVal1(f2, 3); + cmpVal1(f1, 2); + f2 = ++f1; + cmpVal1(f1, 3); + cmpVal1(f2, 3); + f2 = --f1; + cmpVal1(f1, 2); + cmpVal1(f2, 2); + + f2 = ~f1; + cmpVal1(f2, 253); + + f1.x = 3; + f1 = f1 * (unsigned char)1; + cmpVal1(f1, 3); + f1 = (unsigned char)1 * f1; + cmpVal1(f1, 3); + f1 = f1 * (signed char)1; + cmpVal1(f1, 3); + f1 = (signed char)1 * f1; + cmpVal1(f1, 3); + f1 = f1 * (unsigned short)1; + cmpVal1(f1, 3); + f1 = (unsigned short)1 * f1; + cmpVal1(f1, 3); + f1 = f1 * (signed short)1; + cmpVal1(f1, 3); + f1 = (signed short)1 * f1; + cmpVal1(f1, 3); + f1 = f1 * (unsigned int)1; + cmpVal1(f1, 3); + f1 = (unsigned int)1 * f1; + cmpVal1(f1, 3); + f1 = f1 * (signed int)1; + cmpVal1(f1, 3); + f1 = (signed int)1 * f1; + cmpVal1(f1, 3); + f1 = f1 * (float)1; + cmpVal1(f1, 3); + f1 = (float)1 * f1; + cmpVal1(f1, 3); + f1 = f1 * (unsigned long)1; + cmpVal1(f1, 3); + f1 = (unsigned long)1 * f1; + cmpVal1(f1, 3); + f1 = f1 * (signed long)1; + cmpVal1(f1, 3); + f1 = (signed long)1 * f1; + cmpVal1(f1, 3); + +// signed char sc = 1; + + f1.x = 3; + f2.x = 4; + f3.x = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestUChar2() { + uchar2 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f2.x = 1; + f2.y = 1; + f3 = f1 + f2; + cmpVal2(f3, 2); + f2 = f3 - f1; + cmpVal2(f2, 1); + f1 = f2 * f3; + cmpVal2(f1, 2); + f2 = f1 / f3; + cmpVal2(f2, 2/2); + f3 = f1 % f2; + cmpVal2(f3, 0); + f1 = f3 & f2; + cmpVal2(f1, 0); + f2 = f1 ^ f3; + cmpVal2(f2, 0); + f1.x = 1; + f1.y = 1; + f2.x = 2; + f2.y = 2; + f3 = f1 << f2; + cmpVal2(f3, 4); + f2 = f3 >> f1; + cmpVal2(f2, 2); + + f1.x = 2; + f1.y = 2; + f2.x = 1; + f2.y = 1; + f1 += f2; + cmpVal2(f1, 3); + f1 -= f2; + cmpVal2(f1, 2); + f1 *= f2; + cmpVal2(f1, 2); + f1 /= f2; + cmpVal2(f1, 2); + f1 %= f2; + cmpVal2(f1, 0); + f1 &= f2; + cmpVal2(f1, 0); + f1 |= f2; + cmpVal2(f1, 1); + f1 ^= f2; + cmpVal2(f1, 0); + f1.x = 1; + f1.y = 1; + f1 <<= f2; + cmpVal2(f1, 2); + f1 >>= f2; + cmpVal2(f1, 1); + + f1.x = 2; + f1.y = 2; + f2 = f1++; + cmpVal2(f1, 3); + cmpVal2(f2, 2); + f2 = f1--; + cmpVal2(f2, 3); + cmpVal2(f1, 2); + f2 = ++f1; + cmpVal2(f1, 3); + cmpVal2(f2, 3); + f2 = --f1; + cmpVal2(f1, 2); + cmpVal2(f2, 2); + + f2 = ~f1; + cmpVal2(f2, 253); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f2.x = 4; + f2.y = 4; + f3.x = 3; + f3.y = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestUChar3() { + uchar3 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f1.z = 1; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f3 = f1 + f2; + cmpVal3(f3, 2); + f2 = f3 - f1; + cmpVal3(f2, 1); + f1 = f2 * f3; + cmpVal3(f1, 2); + f2 = f1 / f3; + cmpVal3(f2, 2/2); + f3 = f1 % f2; + cmpVal3(f3, 0); + f1 = f3 & f2; + cmpVal3(f1, 0); + f2 = f1 ^ f3; + cmpVal3(f2, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f2.x = 2; + f2.y = 2; + f2.z = 2; + f3 = f1 << f2; + cmpVal3(f3, 4); + f2 = f3 >> f1; + cmpVal3(f2, 2); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f1 += f2; + cmpVal3(f1, 3); + f1 -= f2; + cmpVal3(f1, 2); + f1 *= f2; + cmpVal3(f1, 2); + f1 /= f2; + cmpVal3(f1, 2); + f1 %= f2; + cmpVal3(f1, 0); + f1 &= f2; + cmpVal3(f1, 0); + f1 |= f2; + cmpVal3(f1, 1); + f1 ^= f2; + cmpVal3(f1, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1 <<= f2; + cmpVal3(f1, 2); + f1 >>= f2; + cmpVal3(f1, 1); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f2 = f1++; + cmpVal3(f1, 3); + cmpVal3(f2, 2); + f2 = f1--; + cmpVal3(f2, 3); + cmpVal3(f1, 2); + f2 = ++f1; + cmpVal3(f1, 3); + cmpVal3(f2, 3); + f2 = --f1; + cmpVal3(f1, 2); + cmpVal3(f2, 2); + + f2 = ~f1; + cmpVal3(f2, 253); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f1.z = 3; + f2.x = 4; + f2.y = 4; + f2.z = 4; + f3.x = 3; + f3.y = 3; + f3.z = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestUChar4() { + uchar4 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f2.w = 1; + f3 = f1 + f2; + cmpVal4(f3, 2); + f2 = f3 - f1; + cmpVal4(f2, 1); + f1 = f2 * f3; + cmpVal4(f1, 2); + f2 = f1 / f3; + cmpVal4(f2, 2/2); + f3 = f1 % f2; + cmpVal4(f3, 0); + f1 = f3 & f2; + cmpVal4(f1, 0); + f2 = f1 ^ f3; + cmpVal4(f2, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f2.x = 2; + f2.y = 2; + f2.z = 2; + f2.w = 2; + f3 = f1 << f2; + cmpVal4(f3, 4); + f2 = f3 >> f1; + cmpVal4(f2, 2); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f1.w = 2; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f2.w = 1; + f1 += f2; + cmpVal4(f1, 3); + f1 -= f2; + cmpVal4(f1, 2); + f1 *= f2; + cmpVal4(f1, 2); + f1 /= f2; + cmpVal4(f1, 2); + f1 %= f2; + cmpVal4(f1, 0); + f1 &= f2; + cmpVal4(f1, 0); + f1 |= f2; + cmpVal4(f1, 1); + f1 ^= f2; + cmpVal4(f1, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f1 <<= f2; + cmpVal4(f1, 2); + f1 >>= f2; + cmpVal4(f1, 1); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f1.w = 2; + f2 = f1++; + cmpVal4(f1, 3); + cmpVal4(f2, 2); + f2 = f1--; + cmpVal4(f2, 3); + cmpVal4(f1, 2); + f2 = ++f1; + cmpVal4(f1, 3); + cmpVal4(f2, 3); + f2 = --f1; + cmpVal4(f1, 2); + cmpVal4(f2, 2); + + f2 = ~f1; + cmpVal4(f2, 253); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f1.z = 3; + f1.w = 3; + f2.x = 4; + f2.y = 4; + f2.z = 4; + f2.w = 4; + f3.x = 3; + f3.y = 3; + f3.z = 3; + f3.w = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestChar1() { + char1 f1, f2, f3; + f1.x = 1; + f2.x = 1; + f3 = f1 + f2; + cmpVal1(f3, 2); + f2 = f3 - f1; + cmpVal1(f2, 1); + f1 = f2 * f3; + cmpVal1(f1, 2); + f2 = f1 / f3; + cmpVal1(f2, 2/2); + f3 = f1 % f2; + cmpVal1(f3, 0); + f1 = f3 & f2; + cmpVal1(f1, 0); + f2 = f1 ^ f3; + cmpVal1(f2, 0); + f1.x = 1; + f2.x = 2; + f3 = f1 << f2; + cmpVal1(f3, 4); + f2 = f3 >> f1; + cmpVal1(f2, 2); + + f1.x = 2; + f2.x = 1; + f1 += f2; + cmpVal1(f1, 3); + f1 -= f2; + cmpVal1(f1, 2); + f1 *= f2; + cmpVal1(f1, 2); + f1 /= f2; + cmpVal1(f1, 2); + f1 %= f2; + cmpVal1(f1, 0); + f1 &= f2; + cmpVal1(f1, 0); + f1 |= f2; + cmpVal1(f1, 1); + f1 ^= f2; + cmpVal1(f1, 0); + f1.x = 1; + f1 <<= f2; + cmpVal1(f1, 2); + f1 >>= f2; + cmpVal1(f1, 1); + + f1.x = 2; + f2 = f1++; + cmpVal1(f1, 3); + cmpVal1(f2, 2); + f2 = f1--; + cmpVal1(f2, 3); + cmpVal1(f1, 2); + f2 = ++f1; + cmpVal1(f1, 3); + cmpVal1(f2, 3); + f2 = --f1; + cmpVal1(f1, 2); + cmpVal1(f2, 2); + + f2 = ~f1; + cmpVal1(f2, (char)253); + if(!f1 == false){} + + f1.x = 3; + f2.x = 4; + f3.x = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestChar2() { + char2 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f2.x = 1; + f2.y = 1; + f3 = f1 + f2; + cmpVal2(f3, 2); + f2 = f3 - f1; + cmpVal2(f2, 1); + f1 = f2 * f3; + cmpVal2(f1, 2); + f2 = f1 / f3; + cmpVal2(f2, 2/2); + f3 = f1 % f2; + cmpVal2(f3, 0); + f1 = f3 & f2; + cmpVal2(f1, 0); + f2 = f1 ^ f3; + cmpVal2(f2, 0); + f1.x = 1; + f1.y = 1; + f2.x = 2; + f2.y = 2; + f3 = f1 << f2; + cmpVal2(f3, 4); + f2 = f3 >> f1; + cmpVal2(f2, 2); + + f1.x = 2; + f1.y = 2; + f2.x = 1; + f2.y = 1; + f1 += f2; + cmpVal2(f1, 3); + f1 -= f2; + cmpVal2(f1, 2); + f1 *= f2; + cmpVal2(f1, 2); + f1 /= f2; + cmpVal2(f1, 2); + f1 %= f2; + cmpVal2(f1, 0); + f1 &= f2; + cmpVal2(f1, 0); + f1 |= f2; + cmpVal2(f1, 1); + f1 ^= f2; + cmpVal2(f1, 0); + f1.x = 1; + f1.y = 1; + f1 <<= f2; + cmpVal2(f1, 2); + f1 >>= f2; + cmpVal2(f1, 1); + + f1.x = 2; + f1.y = 2; + f2 = f1++; + cmpVal2(f1, 3); + cmpVal2(f2, 2); + f2 = f1--; + cmpVal2(f2, 3); + cmpVal2(f1, 2); + f2 = ++f1; + cmpVal2(f1, 3); + cmpVal2(f2, 3); + f2 = --f1; + cmpVal2(f1, 2); + cmpVal2(f2, 2); + + f2 = ~f1; + cmpVal2(f2, (char)253); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f2.x = 4; + f2.y = 4; + f3.x = 3; + f3.y = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestChar3() { + char3 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f1.z = 1; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f3 = f1 + f2; + cmpVal3(f3, 2); + f2 = f3 - f1; + cmpVal3(f2, 1); + f1 = f2 * f3; + cmpVal3(f1, 2); + f2 = f1 / f3; + cmpVal3(f2, 2/2); + f3 = f1 % f2; + cmpVal3(f3, 0); + f1 = f3 & f2; + cmpVal3(f1, 0); + f2 = f1 ^ f3; + cmpVal3(f2, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f2.x = 2; + f2.y = 2; + f2.z = 2; + f3 = f1 << f2; + cmpVal3(f3, 4); + f2 = f3 >> f1; + cmpVal3(f2, 2); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f1 += f2; + cmpVal3(f1, 3); + f1 -= f2; + cmpVal3(f1, 2); + f1 *= f2; + cmpVal3(f1, 2); + f1 /= f2; + cmpVal3(f1, 2); + f1 %= f2; + cmpVal3(f1, 0); + f1 &= f2; + cmpVal3(f1, 0); + f1 |= f2; + cmpVal3(f1, 1); + f1 ^= f2; + cmpVal3(f1, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1 <<= f2; + cmpVal3(f1, 2); + f1 >>= f2; + cmpVal3(f1, 1); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f2 = f1++; + cmpVal3(f1, 3); + cmpVal3(f2, 2); + f2 = f1--; + cmpVal3(f2, 3); + cmpVal3(f1, 2); + f2 = ++f1; + cmpVal3(f1, 3); + cmpVal3(f2, 3); + f2 = --f1; + cmpVal3(f1, 2); + cmpVal3(f2, 2); + + f2 = ~f1; + cmpVal3(f2, (char)253); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f1.z = 3; + f2.x = 4; + f2.y = 4; + f2.z = 4; + f3.x = 3; + f3.y = 3; + f3.z = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestChar4() { + char4 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f2.w = 1; + f3 = f1 + f2; + cmpVal4(f3, 2); + f2 = f3 - f1; + cmpVal4(f2, 1); + f1 = f2 * f3; + cmpVal4(f1, 2); + f2 = f1 / f3; + cmpVal4(f2, 2/2); + f3 = f1 % f2; + cmpVal4(f3, 0); + f1 = f3 & f2; + cmpVal4(f1, 0); + f2 = f1 ^ f3; + cmpVal4(f2, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f2.x = 2; + f2.y = 2; + f2.z = 2; + f2.w = 2; + f3 = f1 << f2; + cmpVal4(f3, 4); + f2 = f3 >> f1; + cmpVal4(f2, 2); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f1.w = 2; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f2.w = 1; + f1 += f2; + cmpVal4(f1, 3); + f1 -= f2; + cmpVal4(f1, 2); + f1 *= f2; + cmpVal4(f1, 2); + f1 /= f2; + cmpVal4(f1, 2); + f1 %= f2; + cmpVal4(f1, 0); + f1 &= f2; + cmpVal4(f1, 0); + f1 |= f2; + cmpVal4(f1, 1); + f1 ^= f2; + cmpVal4(f1, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f1 <<= f2; + cmpVal4(f1, 2); + f1 >>= f2; + cmpVal4(f1, 1); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f1.w = 2; + f2 = f1++; + cmpVal4(f1, 3); + cmpVal4(f2, 2); + f2 = f1--; + cmpVal4(f2, 3); + cmpVal4(f1, 2); + f2 = ++f1; + cmpVal4(f1, 3); + cmpVal4(f2, 3); + f2 = --f1; + cmpVal4(f1, 2); + cmpVal4(f2, 2); + + f2 = ~f1; + cmpVal4(f2, (char)253); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f1.z = 3; + f1.w = 3; + f2.x = 4; + f2.y = 4; + f2.z = 4; + f2.w = 4; + f3.x = 3; + f3.y = 3; + f3.z = 3; + f3.w = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestUShort1() { + ushort1 f1, f2, f3; + f1.x = 1; + f2.x = 1; + f3 = f1 + f2; + cmpVal1(f3, 2); + f2 = f3 - f1; + cmpVal1(f2, 1); + f1 = f2 * f3; + cmpVal1(f1, 2); + f2 = f1 / f3; + cmpVal1(f2, 2/2); + f3 = f1 % f2; + cmpVal1(f3, 0); + f1 = f3 & f2; + cmpVal1(f1, 0); + f2 = f1 ^ f3; + cmpVal1(f2, 0); + f1.x = 1; + f2.x = 2; + f3 = f1 << f2; + cmpVal1(f3, 4); + f2 = f3 >> f1; + cmpVal1(f2, 2); + + f1.x = 2; + f2.x = 1; + f1 += f2; + cmpVal1(f1, 3); + f1 -= f2; + cmpVal1(f1, 2); + f1 *= f2; + cmpVal1(f1, 2); + f1 /= f2; + cmpVal1(f1, 2); + f1 %= f2; + cmpVal1(f1, 0); + f1 &= f2; + cmpVal1(f1, 0); + f1 |= f2; + cmpVal1(f1, 1); + f1 ^= f2; + cmpVal1(f1, 0); + f1.x = 1; + f1 <<= f2; + cmpVal1(f1, 2); + f1 >>= f2; + cmpVal1(f1, 1); + + f1.x = 2; + f2 = f1++; + cmpVal1(f1, 3); + cmpVal1(f2, 2); + f2 = f1--; + cmpVal1(f2, 3); + cmpVal1(f1, 2); + f2 = ++f1; + cmpVal1(f1, 3); + cmpVal1(f2, 3); + f2 = --f1; + cmpVal1(f1, 2); + cmpVal1(f2, 2); + + f2 = ~f1; + cmpVal1(f2, (unsigned short)65533); + if(!f1 == false){} + + f1.x = 3; + f2.x = 4; + f3.x = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestUShort2() { + ushort2 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f2.x = 1; + f2.y = 1; + f3 = f1 + f2; + cmpVal2(f3, 2); + f2 = f3 - f1; + cmpVal2(f2, 1); + f1 = f2 * f3; + cmpVal2(f1, 2); + f2 = f1 / f3; + cmpVal2(f2, 2/2); + f3 = f1 % f2; + cmpVal2(f3, 0); + f1 = f3 & f2; + cmpVal2(f1, 0); + f2 = f1 ^ f3; + cmpVal2(f2, 0); + f1.x = 1; + f1.y = 1; + f2.x = 2; + f2.y = 2; + f3 = f1 << f2; + cmpVal2(f3, 4); + f2 = f3 >> f1; + cmpVal2(f2, 2); + + f1.x = 2; + f1.y = 2; + f2.x = 1; + f2.y = 1; + f1 += f2; + cmpVal2(f1, 3); + f1 -= f2; + cmpVal2(f1, 2); + f1 *= f2; + cmpVal2(f1, 2); + f1 /= f2; + cmpVal2(f1, 2); + f1 %= f2; + cmpVal2(f1, 0); + f1 &= f2; + cmpVal2(f1, 0); + f1 |= f2; + cmpVal2(f1, 1); + f1 ^= f2; + cmpVal2(f1, 0); + f1.x = 1; + f1.y = 1; + f1 <<= f2; + cmpVal2(f1, 2); + f1 >>= f2; + cmpVal2(f1, 1); + + f1.x = 2; + f1.y = 2; + f2 = f1++; + cmpVal2(f1, 3); + cmpVal2(f2, 2); + f2 = f1--; + cmpVal2(f2, 3); + cmpVal2(f1, 2); + f2 = ++f1; + cmpVal2(f1, 3); + cmpVal2(f2, 3); + f2 = --f1; + cmpVal2(f1, 2); + cmpVal2(f2, 2); + + f2 = ~f1; + cmpVal2(f2, (unsigned short)65533); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f2.x = 4; + f2.y = 4; + f3.x = 3; + f3.y = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestUShort3() { + ushort3 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f1.z = 1; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f3 = f1 + f2; + cmpVal3(f3, 2); + f2 = f3 - f1; + cmpVal3(f2, 1); + f1 = f2 * f3; + cmpVal3(f1, 2); + f2 = f1 / f3; + cmpVal3(f2, 2/2); + f3 = f1 % f2; + cmpVal3(f3, 0); + f1 = f3 & f2; + cmpVal3(f1, 0); + f2 = f1 ^ f3; + cmpVal3(f2, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f2.x = 2; + f2.y = 2; + f2.z = 2; + f3 = f1 << f2; + cmpVal3(f3, 4); + f2 = f3 >> f1; + cmpVal3(f2, 2); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f1 += f2; + cmpVal3(f1, 3); + f1 -= f2; + cmpVal3(f1, 2); + f1 *= f2; + cmpVal3(f1, 2); + f1 /= f2; + cmpVal3(f1, 2); + f1 %= f2; + cmpVal3(f1, 0); + f1 &= f2; + cmpVal3(f1, 0); + f1 |= f2; + cmpVal3(f1, 1); + f1 ^= f2; + cmpVal3(f1, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1 <<= f2; + cmpVal3(f1, 2); + f1 >>= f2; + cmpVal3(f1, 1); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f2 = f1++; + cmpVal3(f1, 3); + cmpVal3(f2, 2); + f2 = f1--; + cmpVal3(f2, 3); + cmpVal3(f1, 2); + f2 = ++f1; + cmpVal3(f1, 3); + cmpVal3(f2, 3); + f2 = --f1; + cmpVal3(f1, 2); + cmpVal3(f2, 2); + + f2 = ~f1; + cmpVal3(f2, (unsigned short)65533); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f1.z = 3; + f2.x = 4; + f2.y = 4; + f2.z = 4; + f3.x = 3; + f3.y = 3; + f3.z = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestUShort4() { + ushort4 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f2.w = 1; + f3 = f1 + f2; + cmpVal4(f3, 2); + f2 = f3 - f1; + cmpVal4(f2, 1); + f1 = f2 * f3; + cmpVal4(f1, 2); + f2 = f1 / f3; + cmpVal4(f2, 2/2); + f3 = f1 % f2; + cmpVal4(f3, 0); + f1 = f3 & f2; + cmpVal4(f1, 0); + f2 = f1 ^ f3; + cmpVal4(f2, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f2.x = 2; + f2.y = 2; + f2.z = 2; + f2.w = 2; + f3 = f1 << f2; + cmpVal4(f3, 4); + f2 = f3 >> f1; + cmpVal4(f2, 2); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f1.w = 2; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f2.w = 1; + f1 += f2; + cmpVal4(f1, 3); + f1 -= f2; + cmpVal4(f1, 2); + f1 *= f2; + cmpVal4(f1, 2); + f1 /= f2; + cmpVal4(f1, 2); + f1 %= f2; + cmpVal4(f1, 0); + f1 &= f2; + cmpVal4(f1, 0); + f1 |= f2; + cmpVal4(f1, 1); + f1 ^= f2; + cmpVal4(f1, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f1 <<= f2; + cmpVal4(f1, 2); + f1 >>= f2; + cmpVal4(f1, 1); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f1.w = 2; + f2 = f1++; + cmpVal4(f1, 3); + cmpVal4(f2, 2); + f2 = f1--; + cmpVal4(f2, 3); + cmpVal4(f1, 2); + f2 = ++f1; + cmpVal4(f1, 3); + cmpVal4(f2, 3); + f2 = --f1; + cmpVal4(f1, 2); + cmpVal4(f2, 2); + + f2 = ~f1; + cmpVal4(f2, (unsigned short)65533); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f1.z = 3; + f1.w = 3; + f2.x = 4; + f2.y = 4; + f2.z = 4; + f2.w = 4; + f3.x = 3; + f3.y = 3; + f3.z = 3; + f3.w = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestShort1() { + short1 f1, f2, f3; + f1.x = 1; + f2.x = 1; + f3 = f1 + f2; + cmpVal1(f3, 2); + f2 = f3 - f1; + cmpVal1(f2, 1); + f1 = f2 * f3; + cmpVal1(f1, 2); + f2 = f1 / f3; + cmpVal1(f2, 2/2); + f3 = f1 % f2; + cmpVal1(f3, 0); + f1 = f3 & f2; + cmpVal1(f1, 0); + f2 = f1 ^ f3; + cmpVal1(f2, 0); + f1.x = 1; + f2.x = 2; + f3 = f1 << f2; + cmpVal1(f3, 4); + f2 = f3 >> f1; + cmpVal1(f2, 2); + + f1.x = 2; + f2.x = 1; + f1 += f2; + cmpVal1(f1, 3); + f1 -= f2; + cmpVal1(f1, 2); + f1 *= f2; + cmpVal1(f1, 2); + f1 /= f2; + cmpVal1(f1, 2); + f1 %= f2; + cmpVal1(f1, 0); + f1 &= f2; + cmpVal1(f1, 0); + f1 |= f2; + cmpVal1(f1, 1); + f1 ^= f2; + cmpVal1(f1, 0); + f1.x = 1; + f1 <<= f2; + cmpVal1(f1, 2); + f1 >>= f2; + cmpVal1(f1, 1); + + f1.x = 2; + f2 = f1++; + cmpVal1(f1, 3); + cmpVal1(f2, 2); + f2 = f1--; + cmpVal1(f2, 3); + cmpVal1(f1, 2); + f2 = ++f1; + cmpVal1(f1, 3); + cmpVal1(f2, 3); + f2 = --f1; + cmpVal1(f1, 2); + cmpVal1(f2, 2); + + f2 = ~f1; + cmpVal1(f2, (signed short)65533); + if(!f1 == false){} + + f1.x = 3; + f2.x = 4; + f3.x = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestShort2() { + short2 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f2.x = 1; + f2.y = 1; + f3 = f1 + f2; + cmpVal2(f3, 2); + f2 = f3 - f1; + cmpVal2(f2, 1); + f1 = f2 * f3; + cmpVal2(f1, 2); + f2 = f1 / f3; + cmpVal2(f2, 2/2); + f3 = f1 % f2; + cmpVal2(f3, 0); + f1 = f3 & f2; + cmpVal2(f1, 0); + f2 = f1 ^ f3; + cmpVal2(f2, 0); + f1.x = 1; + f1.y = 1; + f2.x = 2; + f2.y = 2; + f3 = f1 << f2; + cmpVal2(f3, 4); + f2 = f3 >> f1; + cmpVal2(f2, 2); + + f1.x = 2; + f1.y = 2; + f2.x = 1; + f2.y = 1; + f1 += f2; + cmpVal2(f1, 3); + f1 -= f2; + cmpVal2(f1, 2); + f1 *= f2; + cmpVal2(f1, 2); + f1 /= f2; + cmpVal2(f1, 2); + f1 %= f2; + cmpVal2(f1, 0); + f1 &= f2; + cmpVal2(f1, 0); + f1 |= f2; + cmpVal2(f1, 1); + f1 ^= f2; + cmpVal2(f1, 0); + f1.x = 1; + f1.y = 1; + f1 <<= f2; + cmpVal2(f1, 2); + f1 >>= f2; + cmpVal2(f1, 1); + + f1.x = 2; + f1.y = 2; + f2 = f1++; + cmpVal2(f1, 3); + cmpVal2(f2, 2); + f2 = f1--; + cmpVal2(f2, 3); + cmpVal2(f1, 2); + f2 = ++f1; + cmpVal2(f1, 3); + cmpVal2(f2, 3); + f2 = --f1; + cmpVal2(f1, 2); + cmpVal2(f2, 2); + + f2 = ~f1; + cmpVal2(f2, (signed short)65533); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f2.x = 4; + f2.y = 4; + f3.x = 3; + f3.y = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestShort3() { + short3 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f1.z = 1; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f3 = f1 + f2; + cmpVal3(f3, 2); + f2 = f3 - f1; + cmpVal3(f2, 1); + f1 = f2 * f3; + cmpVal3(f1, 2); + f2 = f1 / f3; + cmpVal3(f2, 2/2); + f3 = f1 % f2; + cmpVal3(f3, 0); + f1 = f3 & f2; + cmpVal3(f1, 0); + f2 = f1 ^ f3; + cmpVal3(f2, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f2.x = 2; + f2.y = 2; + f2.z = 2; + f3 = f1 << f2; + cmpVal3(f3, 4); + f2 = f3 >> f1; + cmpVal3(f2, 2); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f1 += f2; + cmpVal3(f1, 3); + f1 -= f2; + cmpVal3(f1, 2); + f1 *= f2; + cmpVal3(f1, 2); + f1 /= f2; + cmpVal3(f1, 2); + f1 %= f2; + cmpVal3(f1, 0); + f1 &= f2; + cmpVal3(f1, 0); + f1 |= f2; + cmpVal3(f1, 1); + f1 ^= f2; + cmpVal3(f1, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1 <<= f2; + cmpVal3(f1, 2); + f1 >>= f2; + cmpVal3(f1, 1); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f2 = f1++; + cmpVal3(f1, 3); + cmpVal3(f2, 2); + f2 = f1--; + cmpVal3(f2, 3); + cmpVal3(f1, 2); + f2 = ++f1; + cmpVal3(f1, 3); + cmpVal3(f2, 3); + f2 = --f1; + cmpVal3(f1, 2); + cmpVal3(f2, 2); + + f2 = ~f1; + cmpVal3(f2, (signed short)65533); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f1.z = 3; + f2.x = 4; + f2.y = 4; + f2.z = 4; + f3.x = 3; + f3.y = 3; + f3.z = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestShort4() { + short4 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f2.w = 1; + f3 = f1 + f2; + cmpVal4(f3, 2); + f2 = f3 - f1; + cmpVal4(f2, 1); + f1 = f2 * f3; + cmpVal4(f1, 2); + f2 = f1 / f3; + cmpVal4(f2, 2/2); + f3 = f1 % f2; + cmpVal4(f3, 0); + f1 = f3 & f2; + cmpVal4(f1, 0); + f2 = f1 ^ f3; + cmpVal4(f2, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f2.x = 2; + f2.y = 2; + f2.z = 2; + f2.w = 2; + f3 = f1 << f2; + cmpVal4(f3, 4); + f2 = f3 >> f1; + cmpVal4(f2, 2); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f1.w = 2; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f2.w = 1; + f1 += f2; + cmpVal4(f1, 3); + f1 -= f2; + cmpVal4(f1, 2); + f1 *= f2; + cmpVal4(f1, 2); + f1 /= f2; + cmpVal4(f1, 2); + f1 %= f2; + cmpVal4(f1, 0); + f1 &= f2; + cmpVal4(f1, 0); + f1 |= f2; + cmpVal4(f1, 1); + f1 ^= f2; + cmpVal4(f1, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f1 <<= f2; + cmpVal4(f1, 2); + f1 >>= f2; + cmpVal4(f1, 1); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f1.w = 2; + f2 = f1++; + cmpVal4(f1, 3); + cmpVal4(f2, 2); + f2 = f1--; + cmpVal4(f2, 3); + cmpVal4(f1, 2); + f2 = ++f1; + cmpVal4(f1, 3); + cmpVal4(f2, 3); + f2 = --f1; + cmpVal4(f1, 2); + cmpVal4(f2, 2); + + f2 = ~f1; + cmpVal4(f2, (signed short)65533); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f1.z = 3; + f1.w = 3; + f2.x = 4; + f2.y = 4; + f2.z = 4; + f2.w = 4; + f3.x = 3; + f3.y = 3; + f3.z = 3; + f3.w = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + + +__device__ bool TestUInt1() { + uint1 f1, f2, f3; + f1.x = 1; + f2.x = 1; + f3 = f1 + f2; + cmpVal1(f3, 2); + f2 = f3 - f1; + cmpVal1(f2, 1); + f1 = f2 * f3; + cmpVal1(f1, 2); + f2 = f1 / f3; + cmpVal1(f2, 2/2); + f3 = f1 % f2; + cmpVal1(f3, 0); + f1 = f3 & f2; + cmpVal1(f1, 0); + f2 = f1 ^ f3; + cmpVal1(f2, 0); + f1.x = 1; + f2.x = 2; + f3 = f1 << f2; + cmpVal1(f3, 4); + f2 = f3 >> f1; + cmpVal1(f2, 2); + + f1.x = 2; + f2.x = 1; + f1 += f2; + cmpVal1(f1, 3); + f1 -= f2; + cmpVal1(f1, 2); + f1 *= f2; + cmpVal1(f1, 2); + f1 /= f2; + cmpVal1(f1, 2); + f1 %= f2; + cmpVal1(f1, 0); + f1 &= f2; + cmpVal1(f1, 0); + f1 |= f2; + cmpVal1(f1, 1); + f1 ^= f2; + cmpVal1(f1, 0); + f1.x = 1; + f1 <<= f2; + cmpVal1(f1, 2); + f1 >>= f2; + cmpVal1(f1, 1); + + f1.x = 2; + f2 = f1++; + cmpVal1(f1, 3); + cmpVal1(f2, 2); + f2 = f1--; + cmpVal1(f2, 3); + cmpVal1(f1, 2); + f2 = ++f1; + cmpVal1(f1, 3); + cmpVal1(f2, 3); + f2 = --f1; + cmpVal1(f1, 2); + cmpVal1(f2, 2); + + f2 = ~f1; + cmpVal1(f2, (unsigned int)4294967293); + if(!f1 == false){} + + f1.x = 3; + f2.x = 4; + f3.x = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestUInt2() { + uint2 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f2.x = 1; + f2.y = 1; + f3 = f1 + f2; + cmpVal2(f3, 2); + f2 = f3 - f1; + cmpVal2(f2, 1); + f1 = f2 * f3; + cmpVal2(f1, 2); + f2 = f1 / f3; + cmpVal2(f2, 2/2); + f3 = f1 % f2; + cmpVal2(f3, 0); + f1 = f3 & f2; + cmpVal2(f1, 0); + f2 = f1 ^ f3; + cmpVal2(f2, 0); + f1.x = 1; + f1.y = 1; + f2.x = 2; + f2.y = 2; + f3 = f1 << f2; + cmpVal2(f3, 4); + f2 = f3 >> f1; + cmpVal2(f2, 2); + + f1.x = 2; + f1.y = 2; + f2.x = 1; + f2.y = 1; + f1 += f2; + cmpVal2(f1, 3); + f1 -= f2; + cmpVal2(f1, 2); + f1 *= f2; + cmpVal2(f1, 2); + f1 /= f2; + cmpVal2(f1, 2); + f1 %= f2; + cmpVal2(f1, 0); + f1 &= f2; + cmpVal2(f1, 0); + f1 |= f2; + cmpVal2(f1, 1); + f1 ^= f2; + cmpVal2(f1, 0); + f1.x = 1; + f1.y = 1; + f1 <<= f2; + cmpVal2(f1, 2); + f1 >>= f2; + cmpVal2(f1, 1); + + f1.x = 2; + f1.y = 2; + f2 = f1++; + cmpVal2(f1, 3); + cmpVal2(f2, 2); + f2 = f1--; + cmpVal2(f2, 3); + cmpVal2(f1, 2); + f2 = ++f1; + cmpVal2(f1, 3); + cmpVal2(f2, 3); + f2 = --f1; + cmpVal2(f1, 2); + cmpVal2(f2, 2); + + f2 = ~f1; + cmpVal2(f2, (unsigned int)4294967293); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f2.x = 4; + f2.y = 4; + f3.x = 3; + f3.y = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestUInt3() { + uint3 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f1.z = 1; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f3 = f1 + f2; + cmpVal3(f3, 2); + f2 = f3 - f1; + cmpVal3(f2, 1); + f1 = f2 * f3; + cmpVal3(f1, 2); + f2 = f1 / f3; + cmpVal3(f2, 2/2); + f3 = f1 % f2; + cmpVal3(f3, 0); + f1 = f3 & f2; + cmpVal3(f1, 0); + f2 = f1 ^ f3; + cmpVal3(f2, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f2.x = 2; + f2.y = 2; + f2.z = 2; + f3 = f1 << f2; + cmpVal3(f3, 4); + f2 = f3 >> f1; + cmpVal3(f2, 2); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f1 += f2; + cmpVal3(f1, 3); + f1 -= f2; + cmpVal3(f1, 2); + f1 *= f2; + cmpVal3(f1, 2); + f1 /= f2; + cmpVal3(f1, 2); + f1 %= f2; + cmpVal3(f1, 0); + f1 &= f2; + cmpVal3(f1, 0); + f1 |= f2; + cmpVal3(f1, 1); + f1 ^= f2; + cmpVal3(f1, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1 <<= f2; + cmpVal3(f1, 2); + f1 >>= f2; + cmpVal3(f1, 1); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f2 = f1++; + cmpVal3(f1, 3); + cmpVal3(f2, 2); + f2 = f1--; + cmpVal3(f2, 3); + cmpVal3(f1, 2); + f2 = ++f1; + cmpVal3(f1, 3); + cmpVal3(f2, 3); + f2 = --f1; + cmpVal3(f1, 2); + cmpVal3(f2, 2); + + f2 = ~f1; + cmpVal3(f2, (unsigned int)4294967293); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f1.z = 3; + f2.x = 4; + f2.y = 4; + f2.z = 4; + f3.x = 3; + f3.y = 3; + f3.z = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestUInt4() { + uint4 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f2.w = 1; + f3 = f1 + f2; + cmpVal4(f3, 2); + f2 = f3 - f1; + cmpVal4(f2, 1); + f1 = f2 * f3; + cmpVal4(f1, 2); + f2 = f1 / f3; + cmpVal4(f2, 2/2); + f3 = f1 % f2; + cmpVal4(f3, 0); + f1 = f3 & f2; + cmpVal4(f1, 0); + f2 = f1 ^ f3; + cmpVal4(f2, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f2.x = 2; + f2.y = 2; + f2.z = 2; + f2.w = 2; + f3 = f1 << f2; + cmpVal4(f3, 4); + f2 = f3 >> f1; + cmpVal4(f2, 2); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f1.w = 2; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f2.w = 1; + f1 += f2; + cmpVal4(f1, 3); + f1 -= f2; + cmpVal4(f1, 2); + f1 *= f2; + cmpVal4(f1, 2); + f1 /= f2; + cmpVal4(f1, 2); + f1 %= f2; + cmpVal4(f1, 0); + f1 &= f2; + cmpVal4(f1, 0); + f1 |= f2; + cmpVal4(f1, 1); + f1 ^= f2; + cmpVal4(f1, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f1 <<= f2; + cmpVal4(f1, 2); + f1 >>= f2; + cmpVal4(f1, 1); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f1.w = 2; + f2 = f1++; + cmpVal4(f1, 3); + cmpVal4(f2, 2); + f2 = f1--; + cmpVal4(f2, 3); + cmpVal4(f1, 2); + f2 = ++f1; + cmpVal4(f1, 3); + cmpVal4(f2, 3); + f2 = --f1; + cmpVal4(f1, 2); + cmpVal4(f2, 2); + + f2 = ~f1; + cmpVal4(f2, (unsigned int)4294967293); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f1.z = 3; + f1.w = 3; + f2.x = 4; + f2.y = 4; + f2.z = 4; + f2.w = 4; + f3.x = 3; + f3.y = 3; + f3.z = 3; + f3.w = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestInt1() { + int1 f1, f2, f3; + f1.x = 1; + f2.x = 1; + f3 = f1 + f2; + cmpVal1(f3, 2); + f2 = f3 - f1; + cmpVal1(f2, 1); + f1 = f2 * f3; + cmpVal1(f1, 2); + f2 = f1 / f3; + cmpVal1(f2, 2/2); + f3 = f1 % f2; + cmpVal1(f3, 0); + f1 = f3 & f2; + cmpVal1(f1, 0); + f2 = f1 ^ f3; + cmpVal1(f2, 0); + f1.x = 1; + f2.x = 2; + f3 = f1 << f2; + cmpVal1(f3, 4); + f2 = f3 >> f1; + cmpVal1(f2, 2); + + f1.x = 2; + f2.x = 1; + f1 += f2; + cmpVal1(f1, 3); + f1 -= f2; + cmpVal1(f1, 2); + f1 *= f2; + cmpVal1(f1, 2); + f1 /= f2; + cmpVal1(f1, 2); + f1 %= f2; + cmpVal1(f1, 0); + f1 &= f2; + cmpVal1(f1, 0); + f1 |= f2; + cmpVal1(f1, 1); + f1 ^= f2; + cmpVal1(f1, 0); + f1.x = 1; + f1 <<= f2; + cmpVal1(f1, 2); + f1 >>= f2; + cmpVal1(f1, 1); + + f1.x = 2; + f2 = f1++; + cmpVal1(f1, 3); + cmpVal1(f2, 2); + f2 = f1--; + cmpVal1(f2, 3); + cmpVal1(f1, 2); + f2 = ++f1; + cmpVal1(f1, 3); + cmpVal1(f2, 3); + f2 = --f1; + cmpVal1(f1, 2); + cmpVal1(f2, 2); + + f2 = ~f1; + cmpVal1(f2, (signed int)4294967293); + if(!f1 == false){} + + f1.x = 3; + f2.x = 4; + f3.x = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestInt2() { + int2 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f2.x = 1; + f2.y = 1; + f3 = f1 + f2; + cmpVal2(f3, 2); + f2 = f3 - f1; + cmpVal2(f2, 1); + f1 = f2 * f3; + cmpVal2(f1, 2); + f2 = f1 / f3; + cmpVal2(f2, 2/2); + f3 = f1 % f2; + cmpVal2(f3, 0); + f1 = f3 & f2; + cmpVal2(f1, 0); + f2 = f1 ^ f3; + cmpVal2(f2, 0); + f1.x = 1; + f1.y = 1; + f2.x = 2; + f2.y = 2; + f3 = f1 << f2; + cmpVal2(f3, 4); + f2 = f3 >> f1; + cmpVal2(f2, 2); + + f1.x = 2; + f1.y = 2; + f2.x = 1; + f2.y = 1; + f1 += f2; + cmpVal2(f1, 3); + f1 -= f2; + cmpVal2(f1, 2); + f1 *= f2; + cmpVal2(f1, 2); + f1 /= f2; + cmpVal2(f1, 2); + f1 %= f2; + cmpVal2(f1, 0); + f1 &= f2; + cmpVal2(f1, 0); + f1 |= f2; + cmpVal2(f1, 1); + f1 ^= f2; + cmpVal2(f1, 0); + f1.x = 1; + f1.y = 1; + f1 <<= f2; + cmpVal2(f1, 2); + f1 >>= f2; + cmpVal2(f1, 1); + + f1.x = 2; + f1.y = 2; + f2 = f1++; + cmpVal2(f1, 3); + cmpVal2(f2, 2); + f2 = f1--; + cmpVal2(f2, 3); + cmpVal2(f1, 2); + f2 = ++f1; + cmpVal2(f1, 3); + cmpVal2(f2, 3); + f2 = --f1; + cmpVal2(f1, 2); + cmpVal2(f2, 2); + + f2 = ~f1; + cmpVal2(f2, (signed int)4294967293); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f2.x = 4; + f2.y = 4; + f3.x = 3; + f3.y = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestInt3() { + int3 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f1.z = 1; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f3 = f1 + f2; + cmpVal3(f3, 2); + f2 = f3 - f1; + cmpVal3(f2, 1); + f1 = f2 * f3; + cmpVal3(f1, 2); + f2 = f1 / f3; + cmpVal3(f2, 2/2); + f3 = f1 % f2; + cmpVal3(f3, 0); + f1 = f3 & f2; + cmpVal3(f1, 0); + f2 = f1 ^ f3; + cmpVal3(f2, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f2.x = 2; + f2.y = 2; + f2.z = 2; + f3 = f1 << f2; + cmpVal3(f3, 4); + f2 = f3 >> f1; + cmpVal3(f2, 2); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f1 += f2; + cmpVal3(f1, 3); + f1 -= f2; + cmpVal3(f1, 2); + f1 *= f2; + cmpVal3(f1, 2); + f1 /= f2; + cmpVal3(f1, 2); + f1 %= f2; + cmpVal3(f1, 0); + f1 &= f2; + cmpVal3(f1, 0); + f1 |= f2; + cmpVal3(f1, 1); + f1 ^= f2; + cmpVal3(f1, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1 <<= f2; + cmpVal3(f1, 2); + f1 >>= f2; + cmpVal3(f1, 1); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f2 = f1++; + cmpVal3(f1, 3); + cmpVal3(f2, 2); + f2 = f1--; + cmpVal3(f2, 3); + cmpVal3(f1, 2); + f2 = ++f1; + cmpVal3(f1, 3); + cmpVal3(f2, 3); + f2 = --f1; + cmpVal3(f1, 2); + cmpVal3(f2, 2); + + f2 = ~f1; + cmpVal3(f2, (signed int)4294967293); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f1.z = 3; + f2.x = 4; + f2.y = 4; + f2.z = 4; + f3.x = 3; + f3.y = 3; + f3.z = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestInt4() { + int4 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f2.w = 1; + f3 = f1 + f2; + cmpVal4(f3, 2); + f2 = f3 - f1; + cmpVal4(f2, 1); + f1 = f2 * f3; + cmpVal4(f1, 2); + f2 = f1 / f3; + cmpVal4(f2, 2/2); + f3 = f1 % f2; + cmpVal4(f3, 0); + f1 = f3 & f2; + cmpVal4(f1, 0); + f2 = f1 ^ f3; + cmpVal4(f2, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f2.x = 2; + f2.y = 2; + f2.z = 2; + f2.w = 2; + f3 = f1 << f2; + cmpVal4(f3, 4); + f2 = f3 >> f1; + cmpVal4(f2, 2); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f1.w = 2; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f2.w = 1; + f1 += f2; + cmpVal4(f1, 3); + f1 -= f2; + cmpVal4(f1, 2); + f1 *= f2; + cmpVal4(f1, 2); + f1 /= f2; + cmpVal4(f1, 2); + f1 %= f2; + cmpVal4(f1, 0); + f1 &= f2; + cmpVal4(f1, 0); + f1 |= f2; + cmpVal4(f1, 1); + f1 ^= f2; + cmpVal4(f1, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f1 <<= f2; + cmpVal4(f1, 2); + f1 >>= f2; + cmpVal4(f1, 1); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f1.w = 2; + f2 = f1++; + cmpVal4(f1, 3); + cmpVal4(f2, 2); + f2 = f1--; + cmpVal4(f2, 3); + cmpVal4(f1, 2); + f2 = ++f1; + cmpVal4(f1, 3); + cmpVal4(f2, 3); + f2 = --f1; + cmpVal4(f1, 2); + cmpVal4(f2, 2); + + f2 = ~f1; + cmpVal4(f2, (signed int)4294967293); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f1.z = 3; + f1.w = 3; + f2.x = 4; + f2.y = 4; + f2.z = 4; + f2.w = 4; + f3.x = 3; + f3.y = 3; + f3.z = 3; + f3.w = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestULong1() { + ulong1 f1, f2, f3; + f1.x = 1; + f2.x = 1; + f3 = f1 + f2; + cmpVal1(f3, 2); + f2 = f3 - f1; + cmpVal1(f2, 1); + f1 = f2 * f3; + cmpVal1(f1, 2); + f2 = f1 / f3; + cmpVal1(f2, 2/2); + f3 = f1 % f2; + cmpVal1(f3, 0); + f1 = f3 & f2; + cmpVal1(f1, 0); + f2 = f1 ^ f3; + cmpVal1(f2, 0); + f1.x = 1; + f2.x = 2; + f3 = f1 << f2; + cmpVal1(f3, 4); + f2 = f3 >> f1; + cmpVal1(f2, 2); + + f1.x = 2; + f2.x = 1; + f1 += f2; + cmpVal1(f1, 3); + f1 -= f2; + cmpVal1(f1, 2); + f1 *= f2; + cmpVal1(f1, 2); + f1 /= f2; + cmpVal1(f1, 2); + f1 %= f2; + cmpVal1(f1, 0); + f1 &= f2; + cmpVal1(f1, 0); + f1 |= f2; + cmpVal1(f1, 1); + f1 ^= f2; + cmpVal1(f1, 0); + f1.x = 1; + f1 <<= f2; + cmpVal1(f1, 2); + f1 >>= f2; + cmpVal1(f1, 1); + + f1.x = 2; + f2 = f1++; + cmpVal1(f1, 3); + cmpVal1(f2, 2); + f2 = f1--; + cmpVal1(f2, 3); + cmpVal1(f1, 2); + f2 = ++f1; + cmpVal1(f1, 3); + cmpVal1(f2, 3); + f2 = --f1; + cmpVal1(f1, 2); + cmpVal1(f2, 2); + + f2 = ~f1; + cmpVal1(f2, 18446744073709551613UL); + if(!f1 == false){} + + f1.x = 3; + f2.x = 4; + f3.x = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestULong2() { + ulong2 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f2.x = 1; + f2.y = 1; + f3 = f1 + f2; + cmpVal2(f3, 2); + f2 = f3 - f1; + cmpVal2(f2, 1); + f1 = f2 * f3; + cmpVal2(f1, 2); + f2 = f1 / f3; + cmpVal2(f2, 2/2); + f3 = f1 % f2; + cmpVal2(f3, 0); + f1 = f3 & f2; + cmpVal2(f1, 0); + f2 = f1 ^ f3; + cmpVal2(f2, 0); + f1.x = 1; + f1.y = 1; + f2.x = 2; + f2.y = 2; + f3 = f1 << f2; + cmpVal2(f3, 4); + f2 = f3 >> f1; + cmpVal2(f2, 2); + + f1.x = 2; + f1.y = 2; + f2.x = 1; + f2.y = 1; + f1 += f2; + cmpVal2(f1, 3); + f1 -= f2; + cmpVal2(f1, 2); + f1 *= f2; + cmpVal2(f1, 2); + f1 /= f2; + cmpVal2(f1, 2); + f1 %= f2; + cmpVal2(f1, 0); + f1 &= f2; + cmpVal2(f1, 0); + f1 |= f2; + cmpVal2(f1, 1); + f1 ^= f2; + cmpVal2(f1, 0); + f1.x = 1; + f1.y = 1; + f1 <<= f2; + cmpVal2(f1, 2); + f1 >>= f2; + cmpVal2(f1, 1); + + f1.x = 2; + f1.y = 2; + f2 = f1++; + cmpVal2(f1, 3); + cmpVal2(f2, 2); + f2 = f1--; + cmpVal2(f2, 3); + cmpVal2(f1, 2); + f2 = ++f1; + cmpVal2(f1, 3); + cmpVal2(f2, 3); + f2 = --f1; + cmpVal2(f1, 2); + cmpVal2(f2, 2); + + f2 = ~f1; + cmpVal2(f2, 18446744073709551613UL); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f2.x = 4; + f2.y = 4; + f3.x = 3; + f3.y = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestULong3() { + ulong3 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f1.z = 1; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f3 = f1 + f2; + cmpVal3(f3, 2); + f2 = f3 - f1; + cmpVal3(f2, 1); + f1 = f2 * f3; + cmpVal3(f1, 2); + f2 = f1 / f3; + cmpVal3(f2, 2/2); + f3 = f1 % f2; + cmpVal3(f3, 0); + f1 = f3 & f2; + cmpVal3(f1, 0); + f2 = f1 ^ f3; + cmpVal3(f2, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f2.x = 2; + f2.y = 2; + f2.z = 2; + f3 = f1 << f2; + cmpVal3(f3, 4); + f2 = f3 >> f1; + cmpVal3(f2, 2); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f1 += f2; + cmpVal3(f1, 3); + f1 -= f2; + cmpVal3(f1, 2); + f1 *= f2; + cmpVal3(f1, 2); + f1 /= f2; + cmpVal3(f1, 2); + f1 %= f2; + cmpVal3(f1, 0); + f1 &= f2; + cmpVal3(f1, 0); + f1 |= f2; + cmpVal3(f1, 1); + f1 ^= f2; + cmpVal3(f1, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1 <<= f2; + cmpVal3(f1, 2); + f1 >>= f2; + cmpVal3(f1, 1); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f2 = f1++; + cmpVal3(f1, 3); + cmpVal3(f2, 2); + f2 = f1--; + cmpVal3(f2, 3); + cmpVal3(f1, 2); + f2 = ++f1; + cmpVal3(f1, 3); + cmpVal3(f2, 3); + f2 = --f1; + cmpVal3(f1, 2); + cmpVal3(f2, 2); + + f2 = ~f1; + cmpVal3(f2, 18446744073709551613UL); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f1.z = 3; + f2.x = 4; + f2.y = 4; + f2.z = 4; + f3.x = 3; + f3.y = 3; + f3.z = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestULong4() { + ulong4 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f2.w = 1; + f3 = f1 + f2; + cmpVal4(f3, 2); + f2 = f3 - f1; + cmpVal4(f2, 1); + f1 = f2 * f3; + cmpVal4(f1, 2); + f2 = f1 / f3; + cmpVal4(f2, 2/2); + f3 = f1 % f2; + cmpVal4(f3, 0); + f1 = f3 & f2; + cmpVal4(f1, 0); + f2 = f1 ^ f3; + cmpVal4(f2, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f2.x = 2; + f2.y = 2; + f2.z = 2; + f2.w = 2; + f3 = f1 << f2; + cmpVal4(f3, 4); + f2 = f3 >> f1; + cmpVal4(f2, 2); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f1.w = 2; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f2.w = 1; + f1 += f2; + cmpVal4(f1, 3); + f1 -= f2; + cmpVal4(f1, 2); + f1 *= f2; + cmpVal4(f1, 2); + f1 /= f2; + cmpVal4(f1, 2); + f1 %= f2; + cmpVal4(f1, 0); + f1 &= f2; + cmpVal4(f1, 0); + f1 |= f2; + cmpVal4(f1, 1); + f1 ^= f2; + cmpVal4(f1, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f1 <<= f2; + cmpVal4(f1, 2); + f1 >>= f2; + cmpVal4(f1, 1); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f1.w = 2; + f2 = f1++; + cmpVal4(f1, 3); + cmpVal4(f2, 2); + f2 = f1--; + cmpVal4(f2, 3); + cmpVal4(f1, 2); + f2 = ++f1; + cmpVal4(f1, 3); + cmpVal4(f2, 3); + f2 = --f1; + cmpVal4(f1, 2); + cmpVal4(f2, 2); + + f2 = ~f1; + cmpVal4(f2, 18446744073709551613UL); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f1.z = 3; + f1.w = 3; + f2.x = 4; + f2.y = 4; + f2.z = 4; + f2.w = 4; + f3.x = 3; + f3.y = 3; + f3.z = 3; + f3.w = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestLong1() { + long1 f1, f2, f3; + f1.x = 1; + f2.x = 1; + f3 = f1 + f2; + cmpVal1(f3, 2); + f2 = f3 - f1; + cmpVal1(f2, 1); + f1 = f2 * f3; + cmpVal1(f1, 2); + f2 = f1 / f3; + cmpVal1(f2, 2/2); + f3 = f1 % f2; + cmpVal1(f3, 0); + f1 = f3 & f2; + cmpVal1(f1, 0); + f2 = f1 ^ f3; + cmpVal1(f2, 0); + f1.x = 1; + f2.x = 2; + f3 = f1 << f2; + cmpVal1(f3, 4); + f2 = f3 >> f1; + cmpVal1(f2, 2); + + f1.x = 2; + f2.x = 1; + f1 += f2; + cmpVal1(f1, 3); + f1 -= f2; + cmpVal1(f1, 2); + f1 *= f2; + cmpVal1(f1, 2); + f1 /= f2; + cmpVal1(f1, 2); + f1 %= f2; + cmpVal1(f1, 0); + f1 &= f2; + cmpVal1(f1, 0); + f1 |= f2; + cmpVal1(f1, 1); + f1 ^= f2; + cmpVal1(f1, 0); + f1.x = 1; + f1 <<= f2; + cmpVal1(f1, 2); + f1 >>= f2; + cmpVal1(f1, 1); + + f1.x = 2; + f2 = f1++; + cmpVal1(f1, 3); + cmpVal1(f2, 2); + f2 = f1--; + cmpVal1(f2, 3); + cmpVal1(f1, 2); + f2 = ++f1; + cmpVal1(f1, 3); + cmpVal1(f2, 3); + f2 = --f1; + cmpVal1(f1, 2); + cmpVal1(f2, 2); + + f2 = ~f1; + cmpVal1(f2, -3); + if(!f1 == false){} + + f1.x = 3; + f2.x = 4; + f3.x = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestLong2() { + long2 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f2.x = 1; + f2.y = 1; + f3 = f1 + f2; + cmpVal2(f3, 2); + f2 = f3 - f1; + cmpVal2(f2, 1); + f1 = f2 * f3; + cmpVal2(f1, 2); + f2 = f1 / f3; + cmpVal2(f2, 2/2); + f3 = f1 % f2; + cmpVal2(f3, 0); + f1 = f3 & f2; + cmpVal2(f1, 0); + f2 = f1 ^ f3; + cmpVal2(f2, 0); + f1.x = 1; + f1.y = 1; + f2.x = 2; + f2.y = 2; + f3 = f1 << f2; + cmpVal2(f3, 4); + f2 = f3 >> f1; + cmpVal2(f2, 2); + + f1.x = 2; + f1.y = 2; + f2.x = 1; + f2.y = 1; + f1 += f2; + cmpVal2(f1, 3); + f1 -= f2; + cmpVal2(f1, 2); + f1 *= f2; + cmpVal2(f1, 2); + f1 /= f2; + cmpVal2(f1, 2); + f1 %= f2; + cmpVal2(f1, 0); + f1 &= f2; + cmpVal2(f1, 0); + f1 |= f2; + cmpVal2(f1, 1); + f1 ^= f2; + cmpVal2(f1, 0); + f1.x = 1; + f1.y = 1; + f1 <<= f2; + cmpVal2(f1, 2); + f1 >>= f2; + cmpVal2(f1, 1); + + f1.x = 2; + f1.y = 2; + f2 = f1++; + cmpVal2(f1, 3); + cmpVal2(f2, 2); + f2 = f1--; + cmpVal2(f2, 3); + cmpVal2(f1, 2); + f2 = ++f1; + cmpVal2(f1, 3); + cmpVal2(f2, 3); + f2 = --f1; + cmpVal2(f1, 2); + cmpVal2(f2, 2); + + f2 = ~f1; + cmpVal2(f2, -3); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f2.x = 4; + f2.y = 4; + f3.x = 3; + f3.y = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestLong3() { + long3 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f1.z = 1; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f3 = f1 + f2; + cmpVal3(f3, 2); + f2 = f3 - f1; + cmpVal3(f2, 1); + f1 = f2 * f3; + cmpVal3(f1, 2); + f2 = f1 / f3; + cmpVal3(f2, 2/2); + f3 = f1 % f2; + cmpVal3(f3, 0); + f1 = f3 & f2; + cmpVal3(f1, 0); + f2 = f1 ^ f3; + cmpVal3(f2, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f2.x = 2; + f2.y = 2; + f2.z = 2; + f3 = f1 << f2; + cmpVal3(f3, 4); + f2 = f3 >> f1; + cmpVal3(f2, 2); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f1 += f2; + cmpVal3(f1, 3); + f1 -= f2; + cmpVal3(f1, 2); + f1 *= f2; + cmpVal3(f1, 2); + f1 /= f2; + cmpVal3(f1, 2); + f1 %= f2; + cmpVal3(f1, 0); + f1 &= f2; + cmpVal3(f1, 0); + f1 |= f2; + cmpVal3(f1, 1); + f1 ^= f2; + cmpVal3(f1, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1 <<= f2; + cmpVal3(f1, 2); + f1 >>= f2; + cmpVal3(f1, 1); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f2 = f1++; + cmpVal3(f1, 3); + cmpVal3(f2, 2); + f2 = f1--; + cmpVal3(f2, 3); + cmpVal3(f1, 2); + f2 = ++f1; + cmpVal3(f1, 3); + cmpVal3(f2, 3); + f2 = --f1; + cmpVal3(f1, 2); + cmpVal3(f2, 2); + + f2 = ~f1; + cmpVal3(f2, -3); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f1.z = 3; + f2.x = 4; + f2.y = 4; + f2.z = 4; + f3.x = 3; + f3.y = 3; + f3.z = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestLong4() { + long4 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f2.w = 1; + f3 = f1 + f2; + cmpVal4(f3, 2); + f2 = f3 - f1; + cmpVal4(f2, 1); + f1 = f2 * f3; + cmpVal4(f1, 2); + f2 = f1 / f3; + cmpVal4(f2, 2/2); + f3 = f1 % f2; + cmpVal4(f3, 0); + f1 = f3 & f2; + cmpVal4(f1, 0); + f2 = f1 ^ f3; + cmpVal4(f2, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f2.x = 2; + f2.y = 2; + f2.z = 2; + f2.w = 2; + f3 = f1 << f2; + cmpVal4(f3, 4); + f2 = f3 >> f1; + cmpVal4(f2, 2); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f1.w = 2; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f2.w = 1; + f1 += f2; + cmpVal4(f1, 3); + f1 -= f2; + cmpVal4(f1, 2); + f1 *= f2; + cmpVal4(f1, 2); + f1 /= f2; + cmpVal4(f1, 2); + f1 %= f2; + cmpVal4(f1, 0); + f1 &= f2; + cmpVal4(f1, 0); + f1 |= f2; + cmpVal4(f1, 1); + f1 ^= f2; + cmpVal4(f1, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f1 <<= f2; + cmpVal4(f1, 2); + f1 >>= f2; + cmpVal4(f1, 1); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f1.w = 2; + f2 = f1++; + cmpVal4(f1, 3); + cmpVal4(f2, 2); + f2 = f1--; + cmpVal4(f2, 3); + cmpVal4(f1, 2); + f2 = ++f1; + cmpVal4(f1, 3); + cmpVal4(f2, 3); + f2 = --f1; + cmpVal4(f1, 2); + cmpVal4(f2, 2); + + f2 = ~f1; + cmpVal4(f2, -3); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f1.z = 3; + f1.w = 3; + f2.x = 4; + f2.y = 4; + f2.z = 4; + f2.w = 4; + f3.x = 3; + f3.y = 3; + f3.z = 3; + f3.w = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + + +__device__ bool TestFloat1() { + float1 f1, f2, f3; +// float1 f4(1); +// cmpVal1(f4, 1.0f); +// float1 f5(2.0f); +// cmpVal1(f5, 2.0f); + f1.x = 1.0f; + f2.x = 1.0f; + f3 = f1 + f2; + cmpVal1(f3, 2.0f); + f2 = f3 - f1; + cmpVal1(f2, 1.0f); + f1 = f2 * f3; + cmpVal1(f1, 2.0f); + f2 = f1 / f3; + cmpVal1(f2, 2.0f/2.0f); + f1 += f2; + cmpVal1(f1, 3.0f); + f1 -= f2; + cmpVal1(f1, 2.0f); + f1 *= f2; + cmpVal1(f1, 2.0f); + f1 /= f2; + cmpVal1(f1, 2.0f); + f2 = f1++; + cmpVal1(f1, 3.0f); + cmpVal1(f2, 2.0f); + f2 = f1--; + cmpVal1(f2, 3.0f); + cmpVal1(f1, 2.0f); + f2 = ++f1; + cmpVal1(f1, 3.0f); + cmpVal1(f2, 3.0f); + f2 = --f1; + cmpVal1(f1, 2.0f); + cmpVal1(f1, 2.0f); + + f1.x = 3.0f; + f2.x = 4.0f; + f3.x = 3.0f; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + return true; +} + +__device__ bool TestFloat2() { + float2 f1, f2, f3; + f1.x = 1.0f; + f1.y = 1.0f; + f2.x = 1.0f; + f2.y = 1.0f; + f3 = f1 + f2; + cmpVal2(f3, 2.0f); + f2 = f3 - f1; + cmpVal2(f2, 1.0f); + f1 = f2 * f3; + cmpVal2(f1, 2.0f); + f2 = f1 / f3; + cmpVal2(f2, 2.0f/2.0f); + f1 += f2; + cmpVal2(f1, 3.0f); + f1 -= f2; + cmpVal2(f1, 2.0f); + f1 *= f2; + cmpVal2(f1, 2.0f); + f1 /= f2; + cmpVal2(f1, 2.0f); + + f2 = f1++; + cmpVal2(f1, 3.0f); + cmpVal2(f2, 2.0f); + f2 = f1--; + cmpVal2(f2, 3.0f); + cmpVal2(f1, 2.0f); + f2 = ++f1; + cmpVal2(f1, 3.0f); + cmpVal2(f2, 3.0f); + f2 = --f1; + cmpVal2(f1, 2.0f); + cmpVal2(f1, 2.0f); + + f1.x = 3.0f; + f1.y = 3.0f; + f2.x = 4.0f; + f2.y = 4.0f; + f3.x = 3.0f; + f3.y = 3.0f; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + + return true; +} + +__device__ bool TestFloat3() { + float3 f1, f2, f3; + f1.x = 1.0f; + f1.y = 1.0f; + f1.z = 1.0f; + f2.x = 1.0f; + f2.y = 1.0f; + f2.z = 1.0f; + f3 = f1 + f2; + cmpVal3(f3, 2.0f); + f2 = f3 - f1; + cmpVal3(f2, 1.0f); + f1 = f2 * f3; + cmpVal3(f1, 2.0f); + f2 = f1 / f3; + cmpVal3(f2, 2.0f/2.0f); + f1 += f2; + cmpVal3(f1, 3.0f); + f1 -= f2; + cmpVal3(f1, 2.0f); + f1 *= f2; + cmpVal3(f1, 2.0f); + f1 /= f2; + f2 = f1++; + cmpVal3(f1, 3.0f); + cmpVal3(f2, 2.0f); + f2 = f1--; + cmpVal3(f2, 3.0f); + cmpVal3(f1, 2.0f); + f2 = ++f1; + cmpVal3(f1, 3.0f); + cmpVal3(f2, 3.0f); + f2 = --f1; + cmpVal3(f1, 2.0f); + cmpVal3(f1, 2.0f); + + f1.x = 3.0f; + f1.y = 3.0f; + f1.z = 3.0f; + f2.x = 4.0f; + f2.y = 4.0f; + f2.z = 4.0f; + f3.x = 3.0f; + f3.y = 3.0f; + f3.z = 3.0f; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + + return true; +} + + +__device__ bool TestFloat4() { + float4 f1, f2, f3; + f1.x = 1.0f; + f1.y = 1.0f; + f1.z = 1.0f; + f1.w = 1.0f; + f2.x = 1.0f; + f2.y = 1.0f; + f2.z = 1.0f; + f2.w = 1.0f; + f3 = f1 + f2; + cmpVal4(f3, 2.0f); + f2 = f3 - f1; + cmpVal4(f2, 1.0f); + f1 = f2 * f3; + cmpVal4(f1, 2.0f); + f2 = f1 / f3; + cmpVal4(f2, 2.0f/2.0f); + f1 += f2; + cmpVal4(f1, 3.0f); + f1 -= f2; + cmpVal4(f1, 2.0f); + f1 *= f2; + cmpVal4(f1, 2.0f); + f1 /= f2; + f2 = f1++; + cmpVal4(f1, 3.0f); + cmpVal4(f2, 2.0f); + f2 = f1--; + cmpVal4(f2, 3.0f); + cmpVal4(f1, 2.0f); + f2 = ++f1; + cmpVal4(f1, 3.0f); + cmpVal4(f2, 3.0f); + f2 = --f1; + cmpVal4(f1, 2.0f); + cmpVal4(f1, 2.0f); + + f1.x = 3.0f; + f1.y = 3.0f; + f1.z = 3.0f; + f1.w = 3.0f; + f2.x = 4.0f; + f2.y = 4.0f; + f2.z = 4.0f; + f2.w = 4.0f; + f3.x = 3.0f; + f3.y = 3.0f; + f3.z = 3.0f; + f3.w = 3.0f; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + return true; +} + +__device__ bool TestULongLong1() { + ulonglong1 f1, f2, f3; + f1.x = 1; + f2.x = 1; + f3 = f1 + f2; + cmpVal1(f3, 2); + f2 = f3 - f1; + cmpVal1(f2, 1); + f1 = f2 * f3; + cmpVal1(f1, 2); + f2 = f1 / f3; + cmpVal1(f2, 2/2); + f3 = f1 % f2; + cmpVal1(f3, 0); + f1 = f3 & f2; + cmpVal1(f1, 0); + f2 = f1 ^ f3; + cmpVal1(f2, 0); + f1.x = 1; + f2.x = 2; + f3 = f1 << f2; + cmpVal1(f3, 4); + f2 = f3 >> f1; + cmpVal1(f2, 2); + + f1.x = 2; + f2.x = 1; + f1 += f2; + cmpVal1(f1, 3); + f1 -= f2; + cmpVal1(f1, 2); + f1 *= f2; + cmpVal1(f1, 2); + f1 /= f2; + cmpVal1(f1, 2); + f1 %= f2; + cmpVal1(f1, 0); + f1 &= f2; + cmpVal1(f1, 0); + f1 |= f2; + cmpVal1(f1, 1); + f1 ^= f2; + cmpVal1(f1, 0); + f1.x = 1; + f1 <<= f2; + cmpVal1(f1, 2); + f1 >>= f2; + cmpVal1(f1, 1); + + f1.x = 2; + f2 = f1++; + cmpVal1(f1, 3); + cmpVal1(f2, 2); + f2 = f1--; + cmpVal1(f2, 3); + cmpVal1(f1, 2); + f2 = ++f1; + cmpVal1(f1, 3); + cmpVal1(f2, 3); + f2 = --f1; + cmpVal1(f1, 2); + cmpVal1(f2, 2); + + f2 = ~f1; + cmpVal1(f2, -3); + if(!f1 == false){} + + f1.x = 3; + f2.x = 4; + f3.x = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + + +__device__ bool TestULongLong2() { + ulonglong2 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f2.x = 1; + f2.y = 1; + f3 = f1 + f2; + cmpVal2(f3, 2); + f2 = f3 - f1; + cmpVal2(f2, 1); + f1 = f2 * f3; + cmpVal2(f1, 2); + f2 = f1 / f3; + cmpVal2(f2, 2/2); + f3 = f1 % f2; + cmpVal2(f3, 0); + f1 = f3 & f2; + cmpVal2(f1, 0); + f2 = f1 ^ f3; + cmpVal2(f2, 0); + f1.x = 1; + f1.y = 1; + f2.x = 2; + f2.y = 2; + f3 = f1 << f2; + cmpVal2(f3, 4); + f2 = f3 >> f1; + cmpVal2(f2, 2); + + f1.x = 2; + f1.y = 2; + f2.x = 1; + f2.y = 1; + f1 += f2; + cmpVal2(f1, 3); + f1 -= f2; + cmpVal2(f1, 2); + f1 *= f2; + cmpVal2(f1, 2); + f1 /= f2; + cmpVal2(f1, 2); + f1 %= f2; + cmpVal2(f1, 0); + f1 &= f2; + cmpVal2(f1, 0); + f1 |= f2; + cmpVal2(f1, 1); + f1 ^= f2; + cmpVal2(f1, 0); + f1.x = 1; + f1.y = 1; + f1 <<= f2; + cmpVal2(f1, 2); + f1 >>= f2; + cmpVal2(f1, 1); + + f1.x = 2; + f1.y = 2; + f2 = f1++; + cmpVal2(f1, 3); + cmpVal2(f2, 2); + f2 = f1--; + cmpVal2(f2, 3); + cmpVal2(f1, 2); + f2 = ++f1; + cmpVal2(f1, 3); + cmpVal2(f2, 3); + f2 = --f1; + cmpVal2(f1, 2); + cmpVal2(f2, 2); + + f2 = ~f1; + cmpVal2(f2, -3); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f2.x = 4; + f2.y = 4; + f3.x = 3; + f3.y = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestULongLong3() { + ulonglong3 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f1.z = 1; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f3 = f1 + f2; + cmpVal3(f3, 2); + f2 = f3 - f1; + cmpVal3(f2, 1); + f1 = f2 * f3; + cmpVal3(f1, 2); + f2 = f1 / f3; + cmpVal3(f2, 2/2); + f3 = f1 % f2; + cmpVal3(f3, 0); + f1 = f3 & f2; + cmpVal3(f1, 0); + f2 = f1 ^ f3; + cmpVal3(f2, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f2.x = 2; + f2.y = 2; + f2.z = 2; + f3 = f1 << f2; + cmpVal3(f3, 4); + f2 = f3 >> f1; + cmpVal3(f2, 2); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f1 += f2; + cmpVal3(f1, 3); + f1 -= f2; + cmpVal3(f1, 2); + f1 *= f2; + cmpVal3(f1, 2); + f1 /= f2; + cmpVal3(f1, 2); + f1 %= f2; + cmpVal3(f1, 0); + f1 &= f2; + cmpVal3(f1, 0); + f1 |= f2; + cmpVal3(f1, 1); + f1 ^= f2; + cmpVal3(f1, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1 <<= f2; + cmpVal3(f1, 2); + f1 >>= f2; + cmpVal3(f1, 1); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f2 = f1++; + cmpVal3(f1, 3); + cmpVal3(f2, 2); + f2 = f1--; + cmpVal3(f2, 3); + cmpVal3(f1, 2); + f2 = ++f1; + cmpVal3(f1, 3); + cmpVal3(f2, 3); + f2 = --f1; + cmpVal3(f1, 2); + cmpVal3(f2, 2); + + f2 = ~f1; + cmpVal3(f2, -3); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f1.z = 3; + f2.x = 4; + f2.y = 4; + f2.z = 4; + f3.x = 3; + f3.y = 3; + f3.z = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + +__device__ bool TestULongLong4() { + ulonglong4 f1, f2, f3; + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f2.w = 1; + f3 = f1 + f2; + cmpVal4(f3, 2); + f2 = f3 - f1; + cmpVal4(f2, 1); + f1 = f2 * f3; + cmpVal4(f1, 2); + f2 = f1 / f3; + cmpVal4(f2, 2/2); + f3 = f1 % f2; + cmpVal4(f3, 0); + f1 = f3 & f2; + cmpVal4(f1, 0); + f2 = f1 ^ f3; + cmpVal4(f2, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f2.x = 2; + f2.y = 2; + f2.z = 2; + f2.w = 2; + f3 = f1 << f2; + cmpVal4(f3, 4); + f2 = f3 >> f1; + cmpVal4(f2, 2); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f1.w = 2; + f2.x = 1; + f2.y = 1; + f2.z = 1; + f2.w = 1; + f1 += f2; + cmpVal4(f1, 3); + f1 -= f2; + cmpVal4(f1, 2); + f1 *= f2; + cmpVal4(f1, 2); + f1 /= f2; + cmpVal4(f1, 2); + f1 %= f2; + cmpVal4(f1, 0); + f1 &= f2; + cmpVal4(f1, 0); + f1 |= f2; + cmpVal4(f1, 1); + f1 ^= f2; + cmpVal4(f1, 0); + f1.x = 1; + f1.y = 1; + f1.z = 1; + f1.w = 1; + f1 <<= f2; + cmpVal4(f1, 2); + f1 >>= f2; + cmpVal4(f1, 1); + + f1.x = 2; + f1.y = 2; + f1.z = 2; + f1.w = 2; + f2 = f1++; + cmpVal4(f1, 3); + cmpVal4(f2, 2); + f2 = f1--; + cmpVal4(f2, 3); + cmpVal4(f1, 2); + f2 = ++f1; + cmpVal4(f1, 3); + cmpVal4(f2, 3); + f2 = --f1; + cmpVal4(f1, 2); + cmpVal4(f2, 2); + + f2 = ~f1; + cmpVal4(f2, -3); + if(!f1 == false){} + + f1.x = 3; + f1.y = 3; + f1.z = 3; + f1.w = 3; + f2.x = 4; + f2.y = 4; + f2.z = 4; + f2.w = 4; + f3.x = 3; + f3.y = 3; + f3.z = 3; + f3.w = 3; + if((f1 == f2) == false){} + if((f1 != f2) == true){} + if((f1 < f2) == true){} + if((f2 > f1) == true){} + if((f1 >= f3) == true){} + if((f1 <= f3) == true){} + + if((f1 && f2) == true){} + if((f1 || f2) == true){} + return true; +} + + +__global__ void CheckVectorTypes(hipLaunchParm lp, bool *ptr){ + if(TestFloat1() && TestFloat2() && TestFloat3() && TestFloat4() + && TestUChar1() && TestUChar2() && TestUChar3() && TestUChar4() + && TestChar1() && TestChar2() && TestChar3() && TestChar4() + && TestUShort1() && TestUShort2() && TestUShort3() && TestUShort4() + && TestShort1() && TestShort2() && TestShort3() && TestShort4() + && TestUInt1() && TestUInt2() && TestUInt3() && TestUInt4() + && TestInt1() && TestInt2() && TestInt3() && TestInt4() + && TestULong1() && TestULong2() && TestULong3() && TestULong4() + && TestLong1() && TestLong2() && TestLong3() && TestLong4() + && TestULongLong1() && TestULongLong2() && TestULongLong3() && TestULongLong4() == true){ + ptr[0] = true; + } +} + +int main() { + assert(sizeof(float1) == 4); + assert(sizeof(float2) == 8); + assert(sizeof(float3) == 12); + assert(sizeof(float4) == 16); + bool *ptr; + hipLaunchKernel(CheckVectorTypes, dim3(1,1,1), dim3(1,1,1), 0, 0, ptr); + passed(); +}