@@ -206,7 +206,49 @@ impl DebugHexF16 for __m512i {
206
206
debug_simd_finish(f, "__m512i", &array)
207
207
}
208
208
}
209
- "# ;
209
+
210
+ trait DebugI16 {
211
+ fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result;
212
+ }
213
+
214
+ impl DebugI16 for i16 {
215
+ fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
216
+ write!(f, "{}", self)
217
+ }
218
+ }
219
+
220
+ impl DebugI16 for __m128i {
221
+ fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
222
+ let array = unsafe { core::mem::transmute::<_, [i16; 8]>(*self) };
223
+ debug_simd_finish(f, "__m128i", &array)
224
+ }
225
+ }
226
+
227
+ impl DebugI16 for __m256i {
228
+ fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
229
+ let array = unsafe { core::mem::transmute::<_, [i16; 16]>(*self) };
230
+ debug_simd_finish(f, "__m256i", &array)
231
+ }
232
+ }
233
+
234
+ impl DebugI16 for __m512i {
235
+ fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
236
+ let array = unsafe { core::mem::transmute::<_, [i16; 32]>(*self) };
237
+ debug_simd_finish(f, "__m512i", &array)
238
+ }
239
+ }
240
+
241
+ fn debug_i16<T: DebugI16>(x: T) -> impl core::fmt::Debug {
242
+ struct DebugWrapper<T>(T);
243
+ impl<T: DebugI16> core::fmt::Debug for DebugWrapper<T> {
244
+ fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
245
+ self.0.fmt(f)
246
+ }
247
+ }
248
+ DebugWrapper(x)
249
+ }
250
+
251
+ "# ;
210
252
211
253
pub const PLATFORM_C_FORWARD_DECLARATIONS : & str = r#"
212
254
#ifndef X86_DECLARATIONS
0 commit comments