@@ -133,12 +133,31 @@ int main(void) {
133
133
passed &= tests (q, " move assignment operator" ,
134
134
[](auto &va_view, auto &vb_view)
135
135
SYCL_ESIMD_FUNCTION { va_view = std::move (vb_view); });
136
+
136
137
// construct complete view of a vector.
138
+ #if 0
139
+ // TODO: When/if template arguments deducing is implemented for simd
140
+ // constructor accepting simd_view are implemented, the following
141
+ // shorter and more elegant version of the code may be used.
137
142
passed &= tests(q, "constructor from simd",
138
143
[](auto &va_view, auto &vb_view) SYCL_ESIMD_FUNCTION {
139
144
simd vb = vb_view;
140
145
simd_view new_vb_view = vb; // ctor from simd
141
146
va_view = new_vb_view;
142
147
});
148
+ #else
149
+ passed &= test<8 >(q, " constructor from simd" ,
150
+ [](auto &va_view, auto &vb_view) SYCL_ESIMD_FUNCTION {
151
+ simd<int , 4 > vb = vb_view;
152
+ simd_view new_vb_view = vb; // ctor from simd
153
+ va_view = new_vb_view;
154
+ });
155
+ passed &= test<1 >(q, " constructor from simd" ,
156
+ [](auto &va_view, auto &vb_view) SYCL_ESIMD_FUNCTION {
157
+ simd<int , 1 > vb = vb_view;
158
+ simd_view new_vb_view = vb; // ctor from simd
159
+ va_view = new_vb_view;
160
+ });
161
+ #endif
143
162
return passed ? 0 : 1 ;
144
163
}
0 commit comments