     }
     __syncthreads();
 
-    auto xCoords = sharedMem + threadIdx.x * (xRank + yRank + zRank);
-    auto yCoords = xCoords + xRank;
-    auto zCoords = yCoords + yRank;
+    Nd4jLong xCoords[MAX_RANK]; // = sharedMem + threadIdx.x * (xRank + yRank + zRank);
+    Nd4jLong yCoords[MAX_RANK]; // = xCoords + xRank;
+    Nd4jLong zCoords[MAX_RANK]; // = yCoords + yRank;
 
     const auto tid = blockIdx.x * blockDim.x + threadIdx.x;
 

template<typename X, typename Y, typename Z>
template <typename OpType>
void TrueBroadcastHelper<X,Y,Z>::execLauncher(dim3 launchDims, cudaStream_t *stream, const void *vx, const Nd4jLong *xShapeInfo, const void *vy, const Nd4jLong *yShapeInfo, void *vz, const Nd4jLong *zShapeInfo) {

    trueBroadcastCuda<X, Y, Z, OpType><<<launchDims.x, launchDims.y, launchDims.z, *stream>>>(vx, xShapeInfo, vy, yShapeInfo, vz, zShapeInfo);
}


    dim3 launchDims;
    launchDims.x = MAX_NUM_THREADS / 8;   // threadsPerBlock
    launchDims.y = (zArr.lengthOf() + launchDims.x - 1) / launchDims.x;  // blocksPerGrid
    launchDims.z = 1024; // sharedMem

    PointersManager manager(xArr.getContext(), "TrueBroadcastBoolHelper<X,Y>::exec");

