1mod test;
12
13use crate::prelude::*;
14
15macro_rules! def_mask {
16 {
17 ident: $ident:ident,
18 elm: $elm:ident,
19 len: $len:literal,
20 inner: $inner:ty,
21 pretty_size: $pretty_size:literal,
22 pretty_len: $pretty_len:expr$(,)?
23 } => {
24 #[doc = ::core::concat!(
25 "SIMD vector mask suitable for (",
26 $pretty_len,
27 ") ",
28 $pretty_size,
29 "-bit element(s).\n",
30 "\n",
31 "For a given SIMD vector with elements of some width, the equivalent mask type can be described as another SIMD vector of equivalently-wide, signed integers.\n",
32 "That is, for example, for an [`f32x6`](::polylane::simd::f32x6) vector, the appropriate mask vector type would be [`i32x6`](::polylane::simd::i32x6).\n",
33 )]
34 #[repr(transparent)]
35 #[derive(
36 ::core::clone::Clone,
37 ::core::marker::Copy,
38 ::core::fmt::Debug,
39 ::core::default::Default,
40 ::core::cmp::Eq,
41 ::core::cmp::PartialEq,
42 ::core::cmp::PartialOrd,
43 )]
44 #[cfg_attr(
45 feature = "bytemuck",
46 derive(
47 ::bytemuck::Pod,
48 ::bytemuck::Zeroable,
49 ),
50 )]
51 #[cfg_attr(
52 feature = "zerocopy",
53 derive(
54 ::zerocopy::FromBytes,
55 ::zerocopy::IntoBytes,
56 ::zerocopy::KnownLayout,
57 ),
58 )]
59 pub struct $ident($inner);
60
61 impl $ident {
62 #[inline]
64 #[must_use]
65 pub const fn from_bitmask(mask: [bool; $len]) -> Self {
66 let mut data = [0x0; $len];
67
68 let mut i = 0x0;
69 while i < $len {
70 data[i] = 0x0 - mask[i] as $elm;
71
72 i += 0x1;
73 }
74
75 let mask = <$inner>::from_array(data);
76
77 Self::from_int(mask)
78 }
79
80 #[inline]
89 #[must_use]
90 pub const fn from_int(value: $inner) -> Self {
91 let mut i = 0x0;
92 while i < <$inner>::LEN {
93 let mask_element = value.as_array()[i];
94
95 assert!(
96 mask_element == 0x0 || mask_element == -0x1,
97 "mask elements must either be `0` or `-1`",
98 );
99
100 i += 0x1;
101 }
102
103 unsafe { Self::from_int_unchecked(value) }
105 }
106
107 #[inline(always)]
116 #[must_use]
117 pub const unsafe fn from_int_unchecked(value: $inner) -> Self {
118 Self(value)
119 }
120
121 #[inline]
125 #[must_use]
126 pub const fn to_bitmask(self) -> [bool; $len] {
127 let mask = self.to_int().to_array();
128
129 let mut data = [false; $len];
130
131 let mut i = 0x0;
132 while i < $len {
133 data[i] = mask[i] < 0x0;
134
135 i += 0x1;
136 }
137
138 data
139 }
140
141 #[inline(always)]
145 #[must_use]
146 pub const fn to_int(self) -> $inner {
147 self.0
148 }
149 }
150
151 impl ::core::convert::From<[bool; $len]> for $ident {
152 #[inline(always)]
154 fn from(value: [bool; $len]) -> Self {
155 Self::from_bitmask(value)
156 }
157 }
158 };
159}
160
161def_mask! {
162 ident: Mask8x1,
163 elm: i8,
164 len: 0x1,
165 inner: i8x1,
166 pretty_size: "8",
167 pretty_len: "1",
168}
169
170def_mask! {
171 ident: Mask8x2,
172 elm: i8,
173 len: 0x2,
174 inner: i8x2,
175 pretty_size: "8",
176 pretty_len: "2",
177}
178
179def_mask! {
180 ident: Mask8x3,
181 elm: i8,
182 len: 0x3,
183 inner: i8x3,
184 pretty_size: "8",
185 pretty_len: "3",
186}
187
188def_mask! {
189 ident: Mask8x4,
190 elm: i8,
191 len: 0x4,
192 inner: i8x4,
193 pretty_size: "8",
194 pretty_len: "4",
195}
196
197def_mask! {
198 ident: Mask8x5,
199 elm: i8,
200 len: 0x5,
201 inner: i8x5,
202 pretty_size: "8",
203 pretty_len: "5",
204}
205
206def_mask! {
207 ident: Mask8x6,
208 elm: i8,
209 len: 0x6,
210 inner: i8x6,
211 pretty_size: "8",
212 pretty_len: "6",
213}
214
215def_mask! {
216 ident: Mask8x7,
217 elm: i8,
218 len: 0x7,
219 inner: i8x7,
220 pretty_size: "8",
221 pretty_len: "7",
222}
223
224def_mask! {
225 ident: Mask8x8,
226 elm: i8,
227 len: 0x8,
228 inner: i8x8,
229 pretty_size: "8",
230 pretty_len: "8",
231}
232
233def_mask! {
234 ident: Mask8x9,
235 elm: i8,
236 len: 0x9,
237 inner: i8x9,
238 pretty_size: "8",
239 pretty_len: "9",
240}
241
242def_mask! {
243 ident: Mask8x10,
244 elm: i8,
245 len: 0xA,
246 inner: i8x10,
247 pretty_size: "8",
248 pretty_len: "10",
249}
250
251def_mask! {
252 ident: Mask8x11,
253 elm: i8,
254 len: 0xB,
255 inner: i8x11,
256 pretty_size: "8",
257 pretty_len: "11",
258}
259
260def_mask! {
261 ident: Mask8x12,
262 elm: i8,
263 len: 0xC,
264 inner: i8x12,
265 pretty_size: "8",
266 pretty_len: "12",
267}
268
269def_mask! {
270 ident: Mask8x13,
271 elm: i8,
272 len: 0xD,
273 inner: i8x13,
274 pretty_size: "8",
275 pretty_len: "13",
276}
277
278def_mask! {
279 ident: Mask8x14,
280 elm: i8,
281 len: 0xE,
282 inner: i8x14,
283 pretty_size: "8",
284 pretty_len: "14",
285}
286
287def_mask! {
288 ident: Mask8x15,
289 elm: i8,
290 len: 0xF,
291 inner: i8x15,
292 pretty_size: "8",
293 pretty_len: "15",
294}
295
296def_mask! {
297 ident: Mask8x16,
298 elm: i8,
299 len: 0x10,
300 inner: i8x16,
301 pretty_size: "8",
302 pretty_len: "16",
303}
304
305def_mask! {
306 ident: Mask8x17,
307 elm: i8,
308 len: 0x11,
309 inner: i8x17,
310 pretty_size: "8",
311 pretty_len: "17",
312}
313
314def_mask! {
315 ident: Mask8x18,
316 elm: i8,
317 len: 0x12,
318 inner: i8x18,
319 pretty_size: "8",
320 pretty_len: "18",
321}
322
323def_mask! {
324 ident: Mask8x19,
325 elm: i8,
326 len: 0x13,
327 inner: i8x19,
328 pretty_size: "8",
329 pretty_len: "19",
330}
331
332def_mask! {
333 ident: Mask8x20,
334 elm: i8,
335 len: 0x14,
336 inner: i8x20,
337 pretty_size: "8",
338 pretty_len: "20",
339}
340
341def_mask! {
342 ident: Mask8x21,
343 elm: i8,
344 len: 0x15,
345 inner: i8x21,
346 pretty_size: "8",
347 pretty_len: "21",
348}
349
350def_mask! {
351 ident: Mask8x22,
352 elm: i8,
353 len: 0x16,
354 inner: i8x22,
355 pretty_size: "8",
356 pretty_len: "22",
357}
358
359def_mask! {
360 ident: Mask8x23,
361 elm: i8,
362 len: 0x17,
363 inner: i8x23,
364 pretty_size: "8",
365 pretty_len: "23",
366}
367
368def_mask! {
369 ident: Mask8x24,
370 elm: i8,
371 len: 0x18,
372 inner: i8x24,
373 pretty_size: "8",
374 pretty_len: "24",
375}
376
377def_mask! {
378 ident: Mask8x25,
379 elm: i8,
380 len: 0x19,
381 inner: i8x25,
382 pretty_size: "8",
383 pretty_len: "25",
384}
385
386def_mask! {
387 ident: Mask8x26,
388 elm: i8,
389 len: 0x1A,
390 inner: i8x26,
391 pretty_size: "8",
392 pretty_len: "26",
393}
394
395def_mask! {
396 ident: Mask8x27,
397 elm: i8,
398 len: 0x1B,
399 inner: i8x27,
400 pretty_size: "8",
401 pretty_len: "27",
402}
403
404def_mask! {
405 ident: Mask8x28,
406 elm: i8,
407 len: 0x1C,
408 inner: i8x28,
409 pretty_size: "8",
410 pretty_len: "28",
411}
412
413def_mask! {
414 ident: Mask8x29,
415 elm: i8,
416 len: 0x1D,
417 inner: i8x29,
418 pretty_size: "8",
419 pretty_len: "29",
420}
421
422def_mask! {
423 ident: Mask8x30,
424 elm: i8,
425 len: 0x1E,
426 inner: i8x30,
427 pretty_size: "8",
428 pretty_len: "30",
429}
430
431def_mask! {
432 ident: Mask8x31,
433 elm: i8,
434 len: 0x1F,
435 inner: i8x31,
436 pretty_size: "8",
437 pretty_len: "31",
438}
439
440def_mask! {
441 ident: Mask8x32,
442 elm: i8,
443 len: 0x20,
444 inner: i8x32,
445 pretty_size: "8",
446 pretty_len: "32",
447}
448
449def_mask! {
450 ident: Mask8x33,
451 elm: i8,
452 len: 0x21,
453 inner: i8x33,
454 pretty_size: "8",
455 pretty_len: "33",
456}
457
458def_mask! {
459 ident: Mask8x34,
460 elm: i8,
461 len: 0x22,
462 inner: i8x34,
463 pretty_size: "8",
464 pretty_len: "34",
465}
466
467def_mask! {
468 ident: Mask8x35,
469 elm: i8,
470 len: 0x23,
471 inner: i8x35,
472 pretty_size: "8",
473 pretty_len: "35",
474}
475
476def_mask! {
477 ident: Mask8x36,
478 elm: i8,
479 len: 0x24,
480 inner: i8x36,
481 pretty_size: "8",
482 pretty_len: "36",
483}
484
485def_mask! {
486 ident: Mask8x37,
487 elm: i8,
488 len: 0x25,
489 inner: i8x37,
490 pretty_size: "8",
491 pretty_len: "37",
492}
493
494def_mask! {
495 ident: Mask8x38,
496 elm: i8,
497 len: 0x26,
498 inner: i8x38,
499 pretty_size: "8",
500 pretty_len: "38",
501}
502
503def_mask! {
504 ident: Mask8x39,
505 elm: i8,
506 len: 0x27,
507 inner: i8x39,
508 pretty_size: "8",
509 pretty_len: "39",
510}
511
512def_mask! {
513 ident: Mask8x40,
514 elm: i8,
515 len: 0x28,
516 inner: i8x40,
517 pretty_size: "8",
518 pretty_len: "40",
519}
520
521def_mask! {
522 ident: Mask8x41,
523 elm: i8,
524 len: 0x29,
525 inner: i8x41,
526 pretty_size: "8",
527 pretty_len: "41",
528}
529
530def_mask! {
531 ident: Mask8x42,
532 elm: i8,
533 len: 0x2A,
534 inner: i8x42,
535 pretty_size: "8",
536 pretty_len: "42",
537}
538
539def_mask! {
540 ident: Mask8x43,
541 elm: i8,
542 len: 0x2B,
543 inner: i8x43,
544 pretty_size: "8",
545 pretty_len: "43",
546}
547
548def_mask! {
549 ident: Mask8x44,
550 elm: i8,
551 len: 0x2C,
552 inner: i8x44,
553 pretty_size: "8",
554 pretty_len: "44",
555}
556
557def_mask! {
558 ident: Mask8x45,
559 elm: i8,
560 len: 0x2D,
561 inner: i8x45,
562 pretty_size: "8",
563 pretty_len: "45",
564}
565
566def_mask! {
567 ident: Mask8x46,
568 elm: i8,
569 len: 0x2E,
570 inner: i8x46,
571 pretty_size: "8",
572 pretty_len: "46",
573}
574
575def_mask! {
576 ident: Mask8x47,
577 elm: i8,
578 len: 0x2F,
579 inner: i8x47,
580 pretty_size: "8",
581 pretty_len: "47",
582}
583
584def_mask! {
585 ident: Mask8x48,
586 elm: i8,
587 len: 0x30,
588 inner: i8x48,
589 pretty_size: "8",
590 pretty_len: "48",
591}
592
593def_mask! {
594 ident: Mask8x49,
595 elm: i8,
596 len: 0x31,
597 inner: i8x49,
598 pretty_size: "8",
599 pretty_len: "49",
600}
601
602def_mask! {
603 ident: Mask8x50,
604 elm: i8,
605 len: 0x32,
606 inner: i8x50,
607 pretty_size: "8",
608 pretty_len: "50",
609}
610
611def_mask! {
612 ident: Mask8x51,
613 elm: i8,
614 len: 0x33,
615 inner: i8x51,
616 pretty_size: "8",
617 pretty_len: "51",
618}
619
620def_mask! {
621 ident: Mask8x52,
622 elm: i8,
623 len: 0x34,
624 inner: i8x52,
625 pretty_size: "8",
626 pretty_len: "52",
627}
628
629def_mask! {
630 ident: Mask8x53,
631 elm: i8,
632 len: 0x35,
633 inner: i8x53,
634 pretty_size: "8",
635 pretty_len: "53",
636}
637
638def_mask! {
639 ident: Mask8x54,
640 elm: i8,
641 len: 0x36,
642 inner: i8x54,
643 pretty_size: "8",
644 pretty_len: "54",
645}
646
647def_mask! {
648 ident: Mask8x55,
649 elm: i8,
650 len: 0x37,
651 inner: i8x55,
652 pretty_size: "8",
653 pretty_len: "55",
654}
655
656def_mask! {
657 ident: Mask8x56,
658 elm: i8,
659 len: 0x38,
660 inner: i8x56,
661 pretty_size: "8",
662 pretty_len: "56",
663}
664
665def_mask! {
666 ident: Mask8x57,
667 elm: i8,
668 len: 0x39,
669 inner: i8x57,
670 pretty_size: "8",
671 pretty_len: "57",
672}
673
674def_mask! {
675 ident: Mask8x58,
676 elm: i8,
677 len: 0x3A,
678 inner: i8x58,
679 pretty_size: "8",
680 pretty_len: "58",
681}
682
683def_mask! {
684 ident: Mask8x59,
685 elm: i8,
686 len: 0x3B,
687 inner: i8x59,
688 pretty_size: "8",
689 pretty_len: "59",
690}
691
692def_mask! {
693 ident: Mask8x60,
694 elm: i8,
695 len: 0x3C,
696 inner: i8x60,
697 pretty_size: "8",
698 pretty_len: "60",
699}
700
701def_mask! {
702 ident: Mask8x61,
703 elm: i8,
704 len: 0x3D,
705 inner: i8x61,
706 pretty_size: "8",
707 pretty_len: "61",
708}
709
710def_mask! {
711 ident: Mask8x62,
712 elm: i8,
713 len: 0x3E,
714 inner: i8x62,
715 pretty_size: "8",
716 pretty_len: "62",
717}
718
719def_mask! {
720 ident: Mask8x63,
721 elm: i8,
722 len: 0x3F,
723 inner: i8x63,
724 pretty_size: "8",
725 pretty_len: "63",
726}
727
728def_mask! {
729 ident: Mask8x64,
730 elm: i8,
731 len: 0x40,
732 inner: i8x64,
733 pretty_size: "8",
734 pretty_len: "64",
735}
736
737def_mask! {
738 ident: Mask16x1,
739 elm: i16,
740 len: 0x1,
741 inner: i16x1,
742 pretty_size: "16",
743 pretty_len: "1",
744}
745
746def_mask! {
747 ident: Mask16x2,
748 elm: i16,
749 len: 0x2,
750 inner: i16x2,
751 pretty_size: "16",
752 pretty_len: "2",
753}
754
755def_mask! {
756 ident: Mask16x3,
757 elm: i16,
758 len: 0x3,
759 inner: i16x3,
760 pretty_size: "16",
761 pretty_len: "3",
762}
763
764def_mask! {
765 ident: Mask16x4,
766 elm: i16,
767 len: 0x4,
768 inner: i16x4,
769 pretty_size: "16",
770 pretty_len: "4",
771}
772
773def_mask! {
774 ident: Mask16x5,
775 elm: i16,
776 len: 0x5,
777 inner: i16x5,
778 pretty_size: "16",
779 pretty_len: "5",
780}
781
782def_mask! {
783 ident: Mask16x6,
784 elm: i16,
785 len: 0x6,
786 inner: i16x6,
787 pretty_size: "16",
788 pretty_len: "6",
789}
790
791def_mask! {
792 ident: Mask16x7,
793 elm: i16,
794 len: 0x7,
795 inner: i16x7,
796 pretty_size: "16",
797 pretty_len: "7",
798}
799
800def_mask! {
801 ident: Mask16x8,
802 elm: i16,
803 len: 0x8,
804 inner: i16x8,
805 pretty_size: "16",
806 pretty_len: "8",
807}
808
809def_mask! {
810 ident: Mask16x9,
811 elm: i16,
812 len: 0x9,
813 inner: i16x9,
814 pretty_size: "16",
815 pretty_len: "9",
816}
817
818def_mask! {
819 ident: Mask16x10,
820 elm: i16,
821 len: 0xA,
822 inner: i16x10,
823 pretty_size: "16",
824 pretty_len: "10",
825}
826
827def_mask! {
828 ident: Mask16x11,
829 elm: i16,
830 len: 0xB,
831 inner: i16x11,
832 pretty_size: "16",
833 pretty_len: "11",
834}
835
836def_mask! {
837 ident: Mask16x12,
838 elm: i16,
839 len: 0xC,
840 inner: i16x12,
841 pretty_size: "16",
842 pretty_len: "12",
843}
844
845def_mask! {
846 ident: Mask16x13,
847 elm: i16,
848 len: 0xD,
849 inner: i16x13,
850 pretty_size: "16",
851 pretty_len: "13",
852}
853
854def_mask! {
855 ident: Mask16x14,
856 elm: i16,
857 len: 0xE,
858 inner: i16x14,
859 pretty_size: "16",
860 pretty_len: "14",
861}
862
863def_mask! {
864 ident: Mask16x15,
865 elm: i16,
866 len: 0xF,
867 inner: i16x15,
868 pretty_size: "16",
869 pretty_len: "15",
870}
871
872def_mask! {
873 ident: Mask16x16,
874 elm: i16,
875 len: 0x10,
876 inner: i16x16,
877 pretty_size: "16",
878 pretty_len: "16",
879}
880
881def_mask! {
882 ident: Mask16x17,
883 elm: i16,
884 len: 0x11,
885 inner: i16x17,
886 pretty_size: "16",
887 pretty_len: "17",
888}
889
890def_mask! {
891 ident: Mask16x18,
892 elm: i16,
893 len: 0x12,
894 inner: i16x18,
895 pretty_size: "16",
896 pretty_len: "18",
897}
898
899def_mask! {
900 ident: Mask16x19,
901 elm: i16,
902 len: 0x13,
903 inner: i16x19,
904 pretty_size: "16",
905 pretty_len: "19",
906}
907
908def_mask! {
909 ident: Mask16x20,
910 elm: i16,
911 len: 0x14,
912 inner: i16x20,
913 pretty_size: "16",
914 pretty_len: "20",
915}
916
917def_mask! {
918 ident: Mask16x21,
919 elm: i16,
920 len: 0x15,
921 inner: i16x21,
922 pretty_size: "16",
923 pretty_len: "21",
924}
925
926def_mask! {
927 ident: Mask16x22,
928 elm: i16,
929 len: 0x16,
930 inner: i16x22,
931 pretty_size: "16",
932 pretty_len: "22",
933}
934
935def_mask! {
936 ident: Mask16x23,
937 elm: i16,
938 len: 0x17,
939 inner: i16x23,
940 pretty_size: "16",
941 pretty_len: "23",
942}
943
944def_mask! {
945 ident: Mask16x24,
946 elm: i16,
947 len: 0x18,
948 inner: i16x24,
949 pretty_size: "16",
950 pretty_len: "24",
951}
952
953def_mask! {
954 ident: Mask16x25,
955 elm: i16,
956 len: 0x19,
957 inner: i16x25,
958 pretty_size: "16",
959 pretty_len: "25",
960}
961
962def_mask! {
963 ident: Mask16x26,
964 elm: i16,
965 len: 0x1A,
966 inner: i16x26,
967 pretty_size: "16",
968 pretty_len: "26",
969}
970
971def_mask! {
972 ident: Mask16x27,
973 elm: i16,
974 len: 0x1B,
975 inner: i16x27,
976 pretty_size: "16",
977 pretty_len: "27",
978}
979
980def_mask! {
981 ident: Mask16x28,
982 elm: i16,
983 len: 0x1C,
984 inner: i16x28,
985 pretty_size: "16",
986 pretty_len: "28",
987}
988
989def_mask! {
990 ident: Mask16x29,
991 elm: i16,
992 len: 0x1D,
993 inner: i16x29,
994 pretty_size: "16",
995 pretty_len: "29",
996}
997
998def_mask! {
999 ident: Mask16x30,
1000 elm: i16,
1001 len: 0x1E,
1002 inner: i16x30,
1003 pretty_size: "16",
1004 pretty_len: "30",
1005}
1006
1007def_mask! {
1008 ident: Mask16x31,
1009 elm: i16,
1010 len: 0x1F,
1011 inner: i16x31,
1012 pretty_size: "16",
1013 pretty_len: "31",
1014}
1015
1016def_mask! {
1017 ident: Mask16x32,
1018 elm: i16,
1019 len: 0x20,
1020 inner: i16x32,
1021 pretty_size: "16",
1022 pretty_len: "32",
1023}
1024
1025def_mask! {
1026 ident: Mask32x1,
1027 elm: i32,
1028 len: 0x1,
1029 inner: i32x1,
1030 pretty_size: "32",
1031 pretty_len: "1",
1032}
1033
1034def_mask! {
1035 ident: Mask32x2,
1036 elm: i32,
1037 len: 0x2,
1038 inner: i32x2,
1039 pretty_size: "32",
1040 pretty_len: "2",
1041}
1042
1043def_mask! {
1044 ident: Mask32x3,
1045 elm: i32,
1046 len: 0x3,
1047 inner: i32x3,
1048 pretty_size: "32",
1049 pretty_len: "3",
1050}
1051
1052def_mask! {
1053 ident: Mask32x4,
1054 elm: i32,
1055 len: 0x4,
1056 inner: i32x4,
1057 pretty_size: "32",
1058 pretty_len: "4",
1059}
1060
1061def_mask! {
1062 ident: Mask32x5,
1063 elm: i32,
1064 len: 0x5,
1065 inner: i32x5,
1066 pretty_size: "32",
1067 pretty_len: "5",
1068}
1069
1070def_mask! {
1071 ident: Mask32x6,
1072 elm: i32,
1073 len: 0x6,
1074 inner: i32x6,
1075 pretty_size: "32",
1076 pretty_len: "6",
1077}
1078
1079def_mask! {
1080 ident: Mask32x7,
1081 elm: i32,
1082 len: 0x7,
1083 inner: i32x7,
1084 pretty_size: "32",
1085 pretty_len: "7",
1086}
1087
1088def_mask! {
1089 ident: Mask32x8,
1090 elm: i32,
1091 len: 0x8,
1092 inner: i32x8,
1093 pretty_size: "32",
1094 pretty_len: "8",
1095}
1096
1097def_mask! {
1098 ident: Mask32x9,
1099 elm: i32,
1100 len: 0x9,
1101 inner: i32x9,
1102 pretty_size: "32",
1103 pretty_len: "9",
1104}
1105
1106def_mask! {
1107 ident: Mask32x10,
1108 elm: i32,
1109 len: 0xA,
1110 inner: i32x10,
1111 pretty_size: "32",
1112 pretty_len: "10",
1113}
1114
1115def_mask! {
1116 ident: Mask32x11,
1117 elm: i32,
1118 len: 0xB,
1119 inner: i32x11,
1120 pretty_size: "32",
1121 pretty_len: "11",
1122}
1123
1124def_mask! {
1125 ident: Mask32x12,
1126 elm: i32,
1127 len: 0xC,
1128 inner: i32x12,
1129 pretty_size: "32",
1130 pretty_len: "12",
1131}
1132
1133def_mask! {
1134 ident: Mask32x13,
1135 elm: i32,
1136 len: 0xD,
1137 inner: i32x13,
1138 pretty_size: "32",
1139 pretty_len: "13",
1140}
1141
1142def_mask! {
1143 ident: Mask32x14,
1144 elm: i32,
1145 len: 0xE,
1146 inner: i32x14,
1147 pretty_size: "32",
1148 pretty_len: "14",
1149}
1150
1151def_mask! {
1152 ident: Mask32x15,
1153 elm: i32,
1154 len: 0xF,
1155 inner: i32x15,
1156 pretty_size: "32",
1157 pretty_len: "15",
1158}
1159
1160def_mask! {
1161 ident: Mask32x16,
1162 elm: i32,
1163 len: 0x10,
1164 inner: i32x16,
1165 pretty_size: "32",
1166 pretty_len: "16",
1167}
1168
1169def_mask! {
1170 ident: Mask64x1,
1171 elm: i64,
1172 len: 0x1,
1173 inner: i64x1,
1174 pretty_size: "64",
1175 pretty_len: "1",
1176}
1177
1178def_mask! {
1179 ident: Mask64x2,
1180 elm: i64,
1181 len: 0x2,
1182 inner: i64x2,
1183 pretty_size: "64",
1184 pretty_len: "2",
1185}
1186
1187def_mask! {
1188 ident: Mask64x3,
1189 elm: i64,
1190 len: 0x3,
1191 inner: i64x3,
1192 pretty_size: "64",
1193 pretty_len: "3",
1194}
1195
1196def_mask! {
1197 ident: Mask64x4,
1198 elm: i64,
1199 len: 0x4,
1200 inner: i64x4,
1201 pretty_size: "64",
1202 pretty_len: "4",
1203}
1204
1205def_mask! {
1206 ident: Mask64x5,
1207 elm: i64,
1208 len: 0x5,
1209 inner: i64x5,
1210 pretty_size: "64",
1211 pretty_len: "5",
1212}
1213
1214def_mask! {
1215 ident: Mask64x6,
1216 elm: i64,
1217 len: 0x6,
1218 inner: i64x6,
1219 pretty_size: "64",
1220 pretty_len: "6",
1221}
1222
1223def_mask! {
1224 ident: Mask64x7,
1225 elm: i64,
1226 len: 0x7,
1227 inner: i64x7,
1228 pretty_size: "64",
1229 pretty_len: "7",
1230}
1231
1232def_mask! {
1233 ident: Mask64x8,
1234 elm: i64,
1235 len: 0x8,
1236 inner: i64x8,
1237 pretty_size: "64",
1238 pretty_len: "8",
1239}
1240
1241def_mask! {
1242 ident: Mask128x1,
1243 elm: i128,
1244 len: 0x1,
1245 inner: i128x1,
1246 pretty_size: "128",
1247 pretty_len: "1",
1248}
1249
1250def_mask! {
1251 ident: Mask128x2,
1252 elm: i128,
1253 len: 0x2,
1254 inner: i128x2,
1255 pretty_size: "128",
1256 pretty_len: "2",
1257}
1258
1259def_mask! {
1260 ident: Mask128x3,
1261 elm: i128,
1262 len: 0x3,
1263 inner: i128x3,
1264 pretty_size: "128",
1265 pretty_len: "3",
1266}
1267
1268def_mask! {
1269 ident: Mask128x4,
1270 elm: i128,
1271 len: 0x4,
1272 inner: i128x4,
1273 pretty_size: "128",
1274 pretty_len: "4",
1275}