test 64bit-integer selection operator
authorHomer Hsing <homer.xing@intel.com>
Wed, 7 Aug 2013 08:28:34 +0000 (16:28 +0800)
committerZhigang Gong <zhigang.gong@linux.intel.com>
Wed, 7 Aug 2013 08:38:59 +0000 (16:38 +0800)
Signed-off-by: Homer Hsing <homer.xing@intel.com>
Reviewed-by: Zhigang Gong <zhigang.gong@linux.intel.com>
kernels/compiler_long_2.cl
utests/compiler_long_2.cpp

index f559d93..92be93a 100644 (file)
@@ -13,5 +13,8 @@ kernel void compiler_long_2(global long *src1, global long *src2, global long *d
     case 3:
       dst[i] = src1[i] ^ src2[i];
       break;
+    case 4:
+      dst[i] = src1[i] ? 0x1122334455667788L : 0x8877665544332211UL;
+      break;
   }
 }
index 012c2ab..e3c6640 100644 (file)
@@ -24,6 +24,7 @@ void compiler_long_2(void)
     src1[i] = ((long)rand() << 32) + rand();
     src2[i] = ((long)rand() << 32) + rand();
   }
+  src1[4] = 1;
   OCL_MAP_BUFFER(0);
   OCL_MAP_BUFFER(1);
   memcpy(buf_data[0], src1, sizeof(src1));
@@ -37,10 +38,13 @@ void compiler_long_2(void)
   // Compare
   OCL_MAP_BUFFER(2);
   int64_t *dest = ((int64_t *)buf_data[2]);
+  //for (int32_t i = 0; i < (int32_t) n; ++i)
+  //  printf("%lx\n", dest[i]);
   OCL_ASSERT(0xFEDCBA9876543210UL == (uint64_t)dest[0]);
   OCL_ASSERT((src1[1] & src2[1]) == dest[1]);
   OCL_ASSERT((src1[2] | src2[2]) == dest[2]);
   OCL_ASSERT((src1[3] ^ src2[3]) == dest[3]);
+  OCL_ASSERT(0x1122334455667788L == dest[4]);
   OCL_UNMAP_BUFFER(2);
 }