@@ -206,7 +206,49 @@ impl DebugHexF16 for __m512i {
206206 debug_simd_finish(f, "__m512i", &array)
207207 }
208208}
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+ "# ;
210252
211253pub const PLATFORM_C_FORWARD_DECLARATIONS : & str = r#"
212254#ifndef X86_DECLARATIONS
0 commit comments