aboutsummaryrefslogtreecommitdiffhomepage
path: root/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExtractAccessor.h
diff options
context:
space:
mode:
authorGravatar Mehdi Goli <mehdi.goli@example.com>2016-12-01 13:02:27 +0000
committerGravatar Mehdi Goli <mehdi.goli@example.com>2016-12-01 13:02:27 +0000
commit79aa2b784ecc26d6a8ef6fb2b2b053f4ad81593b (patch)
tree626e91024c30ad3caa510ca2e06548dbd6ffadce /unsupported/Eigen/CXX11/src/Tensor/TensorSyclExtractAccessor.h
parenta70393fd02fb56f432c6258ab1744e6d299797e3 (diff)
Adding sycl backend for TensorPadding.h; disbaling __unit128 for sycl in TensorIntDiv.h; disabling cashsize for sycl in tensorDeviceDefault.h; adding sycl backend for StrideSliceOP ; removing sycl compiler warning for creating an array of size 0 in CXX11Meta.h; cleaning up the sycl backend code.
Diffstat (limited to 'unsupported/Eigen/CXX11/src/Tensor/TensorSyclExtractAccessor.h')
-rw-r--r--unsupported/Eigen/CXX11/src/Tensor/TensorSyclExtractAccessor.h30
1 files changed, 24 insertions, 6 deletions
diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExtractAccessor.h b/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExtractAccessor.h
index f5ef05e36..dc8356cf4 100644
--- a/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExtractAccessor.h
+++ b/unsupported/Eigen/CXX11/src/Tensor/TensorSyclExtractAccessor.h
@@ -209,7 +209,21 @@ SYCLSLICEOPEXTACC(const)
SYCLSLICEOPEXTACC()
#undef SYCLSLICEOPEXTACC
-#define RESHAPEANDSHUFFOPEXTRACC(OPEXPR, CVQual)\
+#define SYCLSLICESTRIDEOPEXTACC(CVQual)\
+template<typename StartIndices, typename StopIndices, typename Strides, typename XprType, typename Dev>\
+struct ExtractAccessor<TensorEvaluator<CVQual TensorStridingSlicingOp<StartIndices, StopIndices, Strides, XprType>, Dev> >{\
+ static inline auto getTuple(cl::sycl::handler& cgh, const TensorEvaluator<CVQual TensorStridingSlicingOp<StartIndices, StopIndices, Strides, XprType>, Dev>& eval)\
+ -> decltype(AccessorConstructor::getTuple(cgh, eval.impl())){\
+ return AccessorConstructor::getTuple(cgh, eval.impl());\
+ }\
+};
+
+SYCLSLICESTRIDEOPEXTACC(const)
+SYCLSLICESTRIDEOPEXTACC()
+#undef SYCLSLICESTRIDEOPEXTACC
+
+
+#define PADDINGRESHAPEANDSHUFFOPEXTRACC(OPEXPR, CVQual)\
template<typename Param, typename XprType, typename Dev>\
struct ExtractAccessor<TensorEvaluator<CVQual OPEXPR<Param, XprType>, Dev> > {\
static inline auto getTuple(cl::sycl::handler& cgh, const TensorEvaluator<CVQual OPEXPR<Param, XprType>, Dev>& eval)\
@@ -217,13 +231,17 @@ struct ExtractAccessor<TensorEvaluator<CVQual OPEXPR<Param, XprType>, Dev> > {\
return AccessorConstructor::getTuple(cgh, eval.impl());\
}\
};
+
+// tensor padding
+PADDINGRESHAPEANDSHUFFOPEXTRACC(TensorPaddingOp, const)
+PADDINGRESHAPEANDSHUFFOPEXTRACC(TensorPaddingOp, )
// tensor reshaping
-RESHAPEANDSHUFFOPEXTRACC(TensorReshapingOp, const)
-RESHAPEANDSHUFFOPEXTRACC(TensorReshapingOp, )
+PADDINGRESHAPEANDSHUFFOPEXTRACC(TensorReshapingOp, const)
+PADDINGRESHAPEANDSHUFFOPEXTRACC(TensorReshapingOp, )
/// Tensor shuffling
-RESHAPEANDSHUFFOPEXTRACC(TensorShufflingOp, const)
-RESHAPEANDSHUFFOPEXTRACC(TensorShufflingOp, )
-#undef RESHAPEANDSHUFFOPEXTRACC
+PADDINGRESHAPEANDSHUFFOPEXTRACC(TensorShufflingOp, const)
+PADDINGRESHAPEANDSHUFFOPEXTRACC(TensorShufflingOp, )
+#undef PADDINGRESHAPEANDSHUFFOPEXTRACC
/// template deduction for \ref ExtractAccessor
template <typename Evaluator>