|
23 | 23 |
|
24 | 24 | #ifdef __SYCL_DEVICE_ONLY__
|
25 | 25 | template <typename T, std::size_t R, std::size_t C,
|
| 26 | + __spv::MatrixUse U = __spv::MatrixUse::Unnecessary, |
26 | 27 | __spv::MatrixLayout L = __spv::MatrixLayout::RowMajor,
|
27 | 28 | __spv::Scope::Flag S = __spv::Scope::Flag::Subgroup>
|
28 |
| -extern SYCL_EXTERNAL __spv::__spirv_JointMatrixINTEL<T, R, C, L, S> * |
| 29 | +extern SYCL_EXTERNAL __spv::__spirv_JointMatrixINTEL<T, R, C, L, S, U> * |
29 | 30 | __spirv_JointMatrixLoadINTEL(T *Ptr, std::size_t Stride,
|
30 | 31 | __spv::MatrixLayout Layout = L,
|
31 | 32 | __spv::Scope::Flag Sc = S, int MemOperand = 0);
|
32 | 33 |
|
33 | 34 | template <typename T, std::size_t R, std::size_t C,
|
| 35 | + __spv::MatrixUse U = __spv::MatrixUse::Unnecessary, |
34 | 36 | __spv::MatrixLayout L = __spv::MatrixLayout::RowMajor,
|
35 | 37 | __spv::Scope::Flag S = __spv::Scope::Flag::Subgroup>
|
36 | 38 | extern SYCL_EXTERNAL void __spirv_JointMatrixStoreINTEL(
|
37 |
| - T *Ptr, __spv::__spirv_JointMatrixINTEL<T, R, C, L, S> *Object, |
| 39 | + T *Ptr, __spv::__spirv_JointMatrixINTEL<T, R, C, L, S, U> *Object, |
38 | 40 | std::size_t Stride, __spv::MatrixLayout Layout = L,
|
39 | 41 | __spv::Scope::Flag Sc = S, int MemOperand = 0);
|
40 | 42 |
|
41 | 43 | template <typename T1, typename T2, std::size_t M, std::size_t K, std::size_t N,
|
| 44 | + __spv::MatrixUse UA = __spv::MatrixUse::Unnecessary, |
| 45 | + __spv::MatrixUse UB = __spv::MatrixUse::Unnecessary, |
| 46 | + __spv::MatrixUse UC = __spv::MatrixUse::Unnecessary, |
42 | 47 | __spv::MatrixLayout LA = __spv::MatrixLayout::RowMajor,
|
43 | 48 | __spv::MatrixLayout LB = __spv::MatrixLayout::RowMajor,
|
44 | 49 | __spv::MatrixLayout LC = __spv::MatrixLayout::RowMajor,
|
45 | 50 | __spv::Scope::Flag S = __spv::Scope::Flag::Subgroup>
|
46 |
| -extern SYCL_EXTERNAL __spv::__spirv_JointMatrixINTEL<T2, M, N, LC, S> * |
| 51 | +extern SYCL_EXTERNAL __spv::__spirv_JointMatrixINTEL<T2, M, N, LC, S, UC> * |
47 | 52 | __spirv_JointMatrixMadINTEL(
|
48 |
| - __spv::__spirv_JointMatrixINTEL<T1, M, K, LA, S> *A, |
49 |
| - __spv::__spirv_JointMatrixINTEL<T1, K, N, LB, S> *B, |
50 |
| - __spv::__spirv_JointMatrixINTEL<T2, M, N, LC, S> *C, |
| 53 | + __spv::__spirv_JointMatrixINTEL<T1, M, K, LA, S, UA> *A, |
| 54 | + __spv::__spirv_JointMatrixINTEL<T1, K, N, LB, S, UB> *B, |
| 55 | + __spv::__spirv_JointMatrixINTEL<T2, M, N, LC, S, UC> *C, |
51 | 56 | __spv::Scope::Flag Sc = __spv::Scope::Flag::Subgroup);
|
52 | 57 |
|
53 | 58 | template <typename T1, typename T2, typename T3, std::size_t M, std::size_t K,
|
54 |
| - std::size_t N, __spv::MatrixLayout LA = __spv::MatrixLayout::RowMajor, |
| 59 | + std::size_t N, __spv::MatrixUse UA = __spv::MatrixUse::Unnecessary, |
| 60 | + __spv::MatrixUse UB = __spv::MatrixUse::Unnecessary, |
| 61 | + __spv::MatrixUse UC = __spv::MatrixUse::Unnecessary, |
| 62 | + __spv::MatrixLayout LA = __spv::MatrixLayout::RowMajor, |
55 | 63 | __spv::MatrixLayout LB = __spv::MatrixLayout::RowMajor,
|
56 | 64 | __spv::MatrixLayout LC = __spv::MatrixLayout::RowMajor,
|
57 | 65 | __spv::Scope::Flag S = __spv::Scope::Flag::Subgroup>
|
58 |
| -extern SYCL_EXTERNAL __spv::__spirv_JointMatrixINTEL<T3, M, N, LC, S> * |
| 66 | +extern SYCL_EXTERNAL __spv::__spirv_JointMatrixINTEL<T3, M, N, LC, S, UC> * |
59 | 67 | __spirv_JointMatrixUUMadINTEL(
|
60 |
| - __spv::__spirv_JointMatrixINTEL<T1, M, K, LA, S> *A, |
61 |
| - __spv::__spirv_JointMatrixINTEL<T2, K, N, LB, S> *B, |
62 |
| - __spv::__spirv_JointMatrixINTEL<T3, M, N, LC, S> *C, |
| 68 | + __spv::__spirv_JointMatrixINTEL<T1, M, K, LA, S, UA> *A, |
| 69 | + __spv::__spirv_JointMatrixINTEL<T2, K, N, LB, S, UB> *B, |
| 70 | + __spv::__spirv_JointMatrixINTEL<T3, M, N, LC, S, UC> *C, |
63 | 71 | __spv::Scope::Flag Sc = __spv::Scope::Flag::Subgroup);
|
64 | 72 |
|
65 | 73 | template <typename T1, typename T2, typename T3, std::size_t M, std::size_t K,
|
66 |
| - std::size_t N, __spv::MatrixLayout LA = __spv::MatrixLayout::RowMajor, |
| 74 | + std::size_t N, __spv::MatrixUse UA = __spv::MatrixUse::Unnecessary, |
| 75 | + __spv::MatrixUse UB = __spv::MatrixUse::Unnecessary, |
| 76 | + __spv::MatrixUse UC = __spv::MatrixUse::Unnecessary, |
| 77 | + __spv::MatrixLayout LA = __spv::MatrixLayout::RowMajor, |
67 | 78 | __spv::MatrixLayout LB = __spv::MatrixLayout::RowMajor,
|
68 | 79 | __spv::MatrixLayout LC = __spv::MatrixLayout::RowMajor,
|
69 | 80 | __spv::Scope::Flag S = __spv::Scope::Flag::Subgroup>
|
70 |
| -extern SYCL_EXTERNAL __spv::__spirv_JointMatrixINTEL<T3, M, N, LC, S> * |
| 81 | +extern SYCL_EXTERNAL __spv::__spirv_JointMatrixINTEL<T3, M, N, LC, S, UC> * |
71 | 82 | __spirv_JointMatrixUSMadINTEL(
|
72 |
| - __spv::__spirv_JointMatrixINTEL<T1, M, K, LA, S> *A, |
73 |
| - __spv::__spirv_JointMatrixINTEL<T2, K, N, LB, S> *B, |
74 |
| - __spv::__spirv_JointMatrixINTEL<T3, M, N, LC, S> *C, |
| 83 | + __spv::__spirv_JointMatrixINTEL<T1, M, K, LA, S, UA> *A, |
| 84 | + __spv::__spirv_JointMatrixINTEL<T2, K, N, LB, S, UB> *B, |
| 85 | + __spv::__spirv_JointMatrixINTEL<T3, M, N, LC, S, UC> *C, |
75 | 86 | __spv::Scope::Flag Sc = __spv::Scope::Flag::Subgroup);
|
76 | 87 |
|
77 | 88 | template <typename T1, typename T2, typename T3, std::size_t M, std::size_t K,
|
78 |
| - std::size_t N, __spv::MatrixLayout LA = __spv::MatrixLayout::RowMajor, |
| 89 | + std::size_t N, __spv::MatrixUse UA = __spv::MatrixUse::Unnecessary, |
| 90 | + __spv::MatrixUse UB = __spv::MatrixUse::Unnecessary, |
| 91 | + __spv::MatrixUse UC = __spv::MatrixUse::Unnecessary, |
| 92 | + __spv::MatrixLayout LA = __spv::MatrixLayout::RowMajor, |
79 | 93 | __spv::MatrixLayout LB = __spv::MatrixLayout::RowMajor,
|
80 | 94 | __spv::MatrixLayout LC = __spv::MatrixLayout::RowMajor,
|
81 | 95 | __spv::Scope::Flag S = __spv::Scope::Flag::Subgroup>
|
82 |
| -extern SYCL_EXTERNAL __spv::__spirv_JointMatrixINTEL<T3, M, N, LC, S> * |
| 96 | +extern SYCL_EXTERNAL __spv::__spirv_JointMatrixINTEL<T3, M, N, LC, S, UC> * |
83 | 97 | __spirv_JointMatrixSUMadINTEL(
|
84 |
| - __spv::__spirv_JointMatrixINTEL<T1, M, K, LA, S> *A, |
85 |
| - __spv::__spirv_JointMatrixINTEL<T2, K, N, LB, S> *B, |
86 |
| - __spv::__spirv_JointMatrixINTEL<T3, M, N, LC, S> *C, |
| 98 | + __spv::__spirv_JointMatrixINTEL<T1, M, K, LA, S, UA> *A, |
| 99 | + __spv::__spirv_JointMatrixINTEL<T2, K, N, LB, S, UB> *B, |
| 100 | + __spv::__spirv_JointMatrixINTEL<T3, M, N, LC, S, UC> *C, |
87 | 101 | __spv::Scope::Flag Sc = __spv::Scope::Flag::Subgroup);
|
88 | 102 |
|
89 | 103 | template <typename T, std::size_t R, std::size_t C,
|
| 104 | + __spv::MatrixUse U = __spv::MatrixUse::Unnecessary, |
90 | 105 | __spv::MatrixLayout L = __spv::MatrixLayout::RowMajor,
|
91 | 106 | __spv::Scope::Flag S = __spv::Scope::Flag::Subgroup>
|
92 |
| -extern SYCL_EXTERNAL __spv::__spirv_JointMatrixINTEL<T, R, C, L, S> * |
| 107 | +extern SYCL_EXTERNAL __spv::__spirv_JointMatrixINTEL<T, R, C, L, S, U> * |
93 | 108 | __spirv_CompositeConstruct(const T v);
|
94 | 109 |
|
95 |
| -template <typename T, std::size_t R, std::size_t C, __spv::MatrixLayout U, |
| 110 | +template <typename T, std::size_t R, std::size_t C, __spv::MatrixUse U, |
| 111 | + __spv::MatrixLayout L, |
96 | 112 | __spv::Scope::Flag S = __spv::Scope::Flag::Subgroup>
|
97 | 113 | extern SYCL_EXTERNAL size_t __spirv_JointMatrixWorkItemLengthINTEL(
|
98 |
| - __spv::__spirv_JointMatrixINTEL<T, R, C, U, S> *); |
| 114 | + __spv::__spirv_JointMatrixINTEL<T, R, C, L, S, U> *); |
99 | 115 |
|
100 |
| -template <typename T, std::size_t R, std::size_t C, __spv::MatrixLayout U, |
| 116 | +template <typename T, std::size_t R, std::size_t C, __spv::MatrixUse U, |
| 117 | + __spv::MatrixLayout L, |
101 | 118 | __spv::Scope::Flag S = __spv::Scope::Flag::Subgroup>
|
102 | 119 | extern SYCL_EXTERNAL T __spirv_VectorExtractDynamic(
|
103 |
| - __spv::__spirv_JointMatrixINTEL<T, R, C, U, S> *, size_t i); |
| 120 | + __spv::__spirv_JointMatrixINTEL<T, R, C, L, S, U> *, size_t i); |
104 | 121 |
|
105 |
| -template <typename T, std::size_t R, std::size_t C, __spv::MatrixLayout U, |
| 122 | +template <typename T, std::size_t R, std::size_t C, __spv::MatrixUse U, |
| 123 | + __spv::MatrixLayout L, |
106 | 124 | __spv::Scope::Flag S = __spv::Scope::Flag::Subgroup>
|
107 |
| -extern SYCL_EXTERNAL __spv::__spirv_JointMatrixINTEL<T, R, C, U, S> * |
108 |
| -__spirv_VectorInsertDynamic(__spv::__spirv_JointMatrixINTEL<T, R, C, U, S> *, |
| 125 | +extern SYCL_EXTERNAL __spv::__spirv_JointMatrixINTEL<T, R, C, L, S, U> * |
| 126 | +__spirv_VectorInsertDynamic(__spv::__spirv_JointMatrixINTEL<T, R, C, L, S, U> *, |
109 | 127 | T val, size_t i);
|
110 | 128 |
|
111 | 129 | #ifndef __SPIRV_BUILTIN_DECLARATIONS__
|
|
0 commit comments