@@ -98,6 +98,13 @@ Below is a list of new compile-time constant properties supported with
98
98
```c++
99
99
namespace sycl::ext::intel::experimental {
100
100
101
+ enum class cache_level : /*unspecified*/ {
102
+ L1,
103
+ L2,
104
+ L3,
105
+ L4,
106
+ };
107
+
101
108
enum class cache_control_read_type : /* unspecified */ {
102
109
cached,
103
110
uncached,
@@ -114,19 +121,19 @@ enum class cache_control_write_type : /* unspecified */ {
114
121
};
115
122
116
123
struct cache_control_read_key {
117
- template<cache_control_read_type C, int L>
118
- using value_t = property_value<cache_control_read, C, std::integral_constant<int , L>>;
124
+ template<cache_control_read_type C, cache_level L>
125
+ using value_t = property_value<cache_control_read, C, std::integral_constant<cache_level , L>>;
119
126
};
120
127
121
128
struct cache_control_write_key {
122
- template<cache_control_write_type C, int L>
123
- using value_t = property_value<cache_control_write, C, std::integral_constant<int , L>>;
129
+ template<cache_control_write_type C, cache_level L>
130
+ using value_t = property_value<cache_control_write, C, std::integral_constant<cache_level , L>>;
124
131
};
125
132
126
- template<cache_control_read_type C, int L>
133
+ template<cache_control_read_type C, cache_level L>
127
134
inline constexpr cache_control_read_key::value_t<C, L> cache_control_read;
128
135
129
- template<cache_control_write_type C, int L>
136
+ template<cache_control_write_type C, cache_level L>
130
137
inline constexpr cache_control_write_key::value_t<C, L> cache_control_write;
131
138
132
139
template<>
@@ -143,32 +150,32 @@ template<typename T, typename PropertyListT>
143
150
struct is_property_key_of<
144
151
cache_control_write_key, annotated_ptr<T, PropertyListT>> : std::true_type {};
145
152
146
- template<int L>
153
+ template<cache_level L>
147
154
inline constexpr cache_control_read_key::value_t<cache_control_read_type::cached, L>
148
155
cache_control_read_cached;
149
156
150
- template<int L>
157
+ template<cache_level L>
151
158
inline constexpr cache_control_read_key::value_t<cache_control_read_type::uncached, L> cache_control_read_uncached;
152
159
153
- template<int L>
160
+ template<cache_level L>
154
161
inline constexpr cache_control_read_key::value_t<cache_control_read_type::streaming, L> cache_control_read_streaming;
155
162
156
- template<int L>
163
+ template<cache_level L>
157
164
inline constexpr cache_control_read_key::value_t<cache_control_read_type::invalidate_after_read, L> cache_control_invalidate_after_read;
158
165
159
- template<int L>
166
+ template<cache_level L>
160
167
inline constexpr cache_control_read_key::value_t<cache_control_read_type::const_cached, L> cache_control_read_const_cached;
161
168
162
- template<int L>
169
+ template<cache_level L>
163
170
inline constexpr cache_control_write_key::value_t<cache_control_write_type::uncached, L> cache_control_write_uncached;
164
171
165
- template<int L>
172
+ template<cache_level L>
166
173
inline constexpr cache_control_write_key::value_t<cache_control_write_type::write_streaming, L> cache_control_write_streaming;
167
174
168
- template<int L>
175
+ template<cache_level L>
169
176
inline constexpr cache_control_write_key::value_t<cache_control_write_type::write_through, L> cache_control_write_through;
170
177
171
- template<int L>
178
+ template<cache_level L>
172
179
inline constexpr cache_control_write_key::value_t<cache_control_write_type::write_back, L> cache_control_write_back;
173
180
174
181
} // namespace sycl::ext::intel::experimental
0 commit comments