mirror of
https://gitlab.kitware.com/vtk/vtk-m
synced 2024-09-19 10:35:42 +00:00
using reinterpret cast and removing warning from atomic array test
This commit is contained in:
parent
72f2549bb9
commit
ecc12dddb7
@ -338,25 +338,25 @@ private:
|
||||
VTKM_EXEC_EXPORT
|
||||
vtkm::Int32 vtkmAtomicAdd(vtkm::Int32 *address, const vtkm::Int32 &value) const
|
||||
{
|
||||
return InterlockedExchangeAdd(static_cast<volatile long *>(address),value);
|
||||
return InterlockedExchangeAdd(reinterpret_cast<volatile long *>(address),value);
|
||||
}
|
||||
|
||||
VTKM_EXEC_EXPORT
|
||||
vtkm::Int64 vtkmAtomicAdd(vtkm::Int64 *address, const vtkm::Int64 &value) const
|
||||
{
|
||||
return InterlockedExchangeAdd64(static_cast<volatile long long *>(address),value);
|
||||
return InterlockedExchangeAdd64(reinterpret_cast<volatile long long *>(address),value);
|
||||
}
|
||||
|
||||
VTKM_EXEC_EXPORT
|
||||
vtkm::UInt32 vtkmAtomicAdd(vtkm::UInt32 *address, const vtkm::UInt32 &value) const
|
||||
{
|
||||
return InterlockedExchangeAdd(static_cast<volatile unsigned long *>(address),value);
|
||||
return InterlockedExchangeAdd(reinterpret_cast<volatile unsigned long *>(address),value);
|
||||
}
|
||||
|
||||
VTKM_EXEC_EXPORT
|
||||
vtkm::UInt64 vtkmAtomicAdd(vtkm::UInt64 *address, const vtkm::UInt64 &value) const
|
||||
{
|
||||
return InterlockedExchangeAdd64(static_cast<volatile unsigned long long *>(address),value);
|
||||
return InterlockedExchangeAdd64(reinterpret_cast<volatile unsigned long long *>(address),value);
|
||||
}
|
||||
|
||||
#else //gcc built-in atomics
|
||||
|
@ -288,7 +288,8 @@ public:
|
||||
|
||||
VTKM_EXEC_EXPORT void operator()(vtkm::Id index) const
|
||||
{
|
||||
this->AArray.Add(0, 1);
|
||||
T value = (T) index;
|
||||
this->AArray.Add(0, value);
|
||||
}
|
||||
|
||||
VTKM_CONT_EXPORT void SetErrorMessageBuffer(
|
||||
@ -1587,6 +1588,8 @@ private:
|
||||
|
||||
static VTKM_CONT_EXPORT void TestAtomicArray()
|
||||
{
|
||||
vtkm::Int32 atomicCount = 0;
|
||||
for(vtkm::Int32 i = 0; i < ARRAY_SIZE; i++) atomicCount += i;
|
||||
std::cout << "-------------------------------------------" << std::endl;
|
||||
// To test the atomics, ARRAY_SIZE number of threads will all increment
|
||||
// a single atomic value.
|
||||
@ -1598,7 +1601,7 @@ private:
|
||||
|
||||
vtkm::exec::AtomicArray<vtkm::Int32, DeviceAdapterTag> atomic(atomicElement);
|
||||
Algorithm::Schedule(AtomicKernel<vtkm::Int32>(atomic), ARRAY_SIZE);
|
||||
vtkm::Int32 expected = vtkm::Int32(ARRAY_SIZE);
|
||||
vtkm::Int32 expected = vtkm::Int32(atomicCount);
|
||||
vtkm::Int32 actual= atomicElement.GetPortalControl().Get(0);
|
||||
VTKM_TEST_ASSERT(expected == actual, "Did not get expected value: Atomic add Int32");
|
||||
}
|
||||
@ -1611,7 +1614,7 @@ private:
|
||||
|
||||
vtkm::exec::AtomicArray<vtkm::UInt32, DeviceAdapterTag> atomic(atomicElement);
|
||||
Algorithm::Schedule(AtomicKernel<vtkm::UInt32>(atomic), ARRAY_SIZE);
|
||||
vtkm::UInt32 expected = vtkm::UInt32(ARRAY_SIZE);
|
||||
vtkm::UInt32 expected = vtkm::UInt32(atomicCount);
|
||||
vtkm::UInt32 actual= atomicElement.GetPortalControl().Get(0);
|
||||
VTKM_TEST_ASSERT(expected == actual, "Did not get expected value: Atomic add UInt32");
|
||||
}
|
||||
@ -1624,7 +1627,7 @@ private:
|
||||
|
||||
vtkm::exec::AtomicArray<vtkm::UInt64, DeviceAdapterTag> atomic(atomicElement);
|
||||
Algorithm::Schedule(AtomicKernel<vtkm::UInt64>(atomic), ARRAY_SIZE);
|
||||
vtkm::UInt64 expected = vtkm::UInt64(ARRAY_SIZE);
|
||||
vtkm::UInt64 expected = vtkm::UInt64(atomicCount);
|
||||
vtkm::UInt64 actual= atomicElement.GetPortalControl().Get(0);
|
||||
VTKM_TEST_ASSERT(expected == actual, "Did not get expected value: Atomic add UInt64");
|
||||
}
|
||||
@ -1637,7 +1640,7 @@ private:
|
||||
|
||||
vtkm::exec::AtomicArray<vtkm::Int64, DeviceAdapterTag> atomic(atomicElement);
|
||||
Algorithm::Schedule(AtomicKernel<vtkm::Int64>(atomic), ARRAY_SIZE);
|
||||
vtkm::Int64 expected = vtkm::Int64(ARRAY_SIZE);
|
||||
vtkm::Int64 expected = vtkm::Int64(atomicCount);
|
||||
vtkm::Int64 actual= atomicElement.GetPortalControl().Get(0);
|
||||
VTKM_TEST_ASSERT(expected == actual, "Did not get expected value: Atomic add Int64");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user