@@ -85,27 +85,23 @@ static RetType __invoke__ImageArrayRead(ImageT Img, CoordT Coords,
85
85
86
86
// Convert from sycl types to builtin types to get correct function mangling.
87
87
using TempRetT = sycl::detail::ConvertToOpenCLType_t<RetType>;
88
- using TempArgT = sycl::detail::ConvertToOpenCLType_t<CoordT> ;
88
+ auto TmpCoords = sycl::detail::convertToOpenCLType (Coords) ;
89
89
90
- TempArgT Arg = sycl::detail::convertDataToType<CoordT, TempArgT>(Coords);
91
- TempRetT Ret =
92
- __spirv_ImageArrayRead<TempRetT, ImageT, TempArgT>(Img, Arg, ArrayLayer);
93
- return sycl::detail::convertDataToType<TempRetT, RetType>(Ret);
90
+ return sycl::detail::convertFromOpenCLTypeFor<RetType>(
91
+ __spirv_ImageArrayRead<TempRetT, ImageT, decltype (TmpCoords)>(
92
+ Img, TmpCoords, ArrayLayer));
94
93
}
95
94
96
95
template <typename ImageT, typename CoordT, typename ValT>
97
96
static void __invoke__ImageArrayWrite (ImageT Img, CoordT Coords, int ArrayLayer,
98
97
ValT Val) {
99
98
100
99
// Convert from sycl types to builtin types to get correct function mangling.
101
- using TmpValT = sycl::detail::ConvertToOpenCLType_t<ValT>;
102
- using TmpCoordT = sycl::detail::ConvertToOpenCLType_t<CoordT>;
103
-
104
- TmpCoordT TmpCoord =
105
- sycl::detail::convertDataToType<CoordT, TmpCoordT>(Coords);
106
- TmpValT TmpVal = sycl::detail::convertDataToType<ValT, TmpValT>(Val);
107
- __spirv_ImageArrayWrite<ImageT, TmpCoordT, TmpValT>(Img, TmpCoord, ArrayLayer,
108
- TmpVal);
100
+ auto TmpCoords = sycl::detail::convertToOpenCLType (Coords);
101
+ auto TmpVal = sycl::detail::convertToOpenCLType (Val);
102
+
103
+ __spirv_ImageArrayWrite<ImageT, decltype (TmpCoords), decltype (TmpVal)>(
104
+ Img, TmpCoords, ArrayLayer, TmpVal);
109
105
}
110
106
111
107
template <typename RetType, typename SmpImageT, typename CoordT>
0 commit comments