@@ -331,6 +331,64 @@ types! {
331
331
/// ```
332
332
#[ stable( feature = "simd_x86" , since = "1.27.0" ) ]
333
333
pub struct __m256d( f64 , f64 , f64 , f64 ) ;
334
+
335
+ /// 512-bit wide integer vector type, x86-specific
336
+ ///
337
+ /// This type is the same as the `__m512i` type defined by Intel,
338
+ /// representing a 512-bit SIMD register. Usage of this type typically
339
+ /// corresponds to the `avx512*` and up target features for x86/x86_64.
340
+ ///
341
+ /// Internally this type may be viewed as:
342
+ ///
343
+ /// * `i8x64` - sixty-four `i8` variables packed together
344
+ /// * `i16x32` - thirty-two `i16` variables packed together
345
+ /// * `i32x16` - sixteen `i32` variables packed together
346
+ /// * `i64x8` - eight `i64` variables packed together
347
+ ///
348
+ /// (as well as unsigned versions). Each intrinsic may interpret the
349
+ /// internal bits differently, check the documentation of the intrinsic
350
+ /// to see how it's being used.
351
+ ///
352
+ /// Note that this means that an instance of `__m512i` typically just means
353
+ /// a "bag of bits" which is left up to interpretation at the point of use.
354
+ pub struct __m512i( i64 , i64 , i64 , i64 , i64 , i64 , i64 , i64 ) ;
355
+
356
+ /// 512-bit wide set of sixteen `f32` types, x86-specific
357
+ ///
358
+ /// This type is the same as the `__m512` type defined by Intel,
359
+ /// representing a 512-bit SIMD register which internally is consisted of
360
+ /// eight packed `f32` instances. Usage of this type typically corresponds
361
+ /// to the `avx512*` and up target features for x86/x86_64.
362
+ ///
363
+ /// Note that unlike `__m512i`, the integer version of the 512-bit
364
+ /// registers, this `__m512` type has *one* interpretation. Each instance
365
+ /// of `__m512` always corresponds to `f32x16`, or sixteen `f32` types
366
+ /// packed together.
367
+ ///
368
+ /// Most intrinsics using `__m512` are prefixed with `_mm512_` and are
369
+ /// suffixed with "ps" (or otherwise contain "ps"). Not to be confused with
370
+ /// "pd" which is used for `__m512d`.
371
+ pub struct __m512(
372
+ f32 , f32 , f32 , f32 , f32 , f32 , f32 , f32 ,
373
+ f32 , f32 , f32 , f32 , f32 , f32 , f32 , f32 ,
374
+ ) ;
375
+
376
+ /// 512-bit wide set of eight `f64` types, x86-specific
377
+ ///
378
+ /// This type is the same as the `__m512d` type defined by Intel,
379
+ /// representing a 512-bit SIMD register which internally is consisted of
380
+ /// eight packed `f64` instances. Usage of this type typically corresponds
381
+ /// to the `avx` and up target features for x86/x86_64.
382
+ ///
383
+ /// Note that unlike `__m512i`, the integer version of the 512-bit
384
+ /// registers, this `__m512d` type has *one* interpretation. Each instance
385
+ /// of `__m512d` always corresponds to `f64x4`, or eight `f64` types packed
386
+ /// together.
387
+ ///
388
+ /// Most intrinsics using `__m512d` are prefixed with `_mm512_` and are
389
+ /// suffixed with "pd" (or otherwise contain "pd"). Not to be confused with
390
+ /// "ps" which is used for `__m512`.
391
+ pub struct __m512d( f64 , f64 , f64 , f64 , f64 , f64 , f64 , f64 ) ;
334
392
}
335
393
336
394
#[ cfg( test) ]
0 commit comments