polylane 0.14.0

Portable and versatile SIMD.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
// Copyright 2025 Gabriel Bjørnager Jensen.
//
// This Source Code Form is subject to the terms of
// the Mozilla Public License, v. 2.0. If a copy of
// the MPL was not distributed with this file, you
// can obtain one at:
// <https://mozilla.org/MPL/2.0/>.

use crate::simd::align::*;

use core::marker::PhantomData;

/// Denotes a SIMD vector layout.
///
/// This type is defined so that allowed <code>[Simd](crate::simd::Simd)&lt;T, N&gt;</code> instances may be predicated via `SimdLayout<T, N>` implementing [`ValidLayout`](crate::ValidLayout).
pub struct SimdLayout<T, const N: usize> {
	_phantom: PhantomData<fn() -> [T; N]>,
}

macro_rules! valid_num_layouts {
	{ $([$Elm:ty; $len:literal] = { SimdAlign = $SimdAlign:ty$(,)? } $(= $feature:literal)?),*$(,)? } => {$(
		$(#[cfg(feature = $feature)])?
		unsafe impl ::polylane::seal::ValidLayout for ::polylane::simd::SimdLayout<$Elm, $len> {
			type SimdAlign = $SimdAlign;
		}

		$(#[cfg(feature = $feature)])?
		impl ::polylane::ValidLayout for ::polylane::simd::SimdLayout<$Elm, $len> {}
	)*};
}

macro_rules! valid_const_ptr_layouts {
	{ $([*const _; $len:literal] = { SimdAlign = $SimdAlign:ty$(,)? }),*$(,)? } => {$(
		unsafe impl<T: ::core::marker::Sized> ::polylane::seal::ValidLayout for ::polylane::simd::SimdLayout<*const T, $len> {
			type SimdAlign = $SimdAlign;
		}

		impl<T: ::core::marker::Sized> ::polylane::ValidLayout for ::polylane::simd::SimdLayout<*const T, $len> {}
	)*};
}

macro_rules! valid_mut_ptr_layouts {
	{ $([*mut _; $len:literal] = { SimdAlign = $SimdAlign:ty$(,)? }),*$(,)? } => {$(
		unsafe impl<T: ::core::marker::Sized> ::polylane::seal::ValidLayout for ::polylane::simd::SimdLayout<*mut T, $len> {
			type SimdAlign = $SimdAlign;
		}

		impl<T: ::core::marker::Sized> ::polylane::ValidLayout for ::polylane::simd::SimdLayout<*mut T, $len> {}
	)*};
}

valid_num_layouts! {
	[u8; 01] = { SimdAlign = AlignByteX1 },
	[u8; 02] = { SimdAlign = AlignByteX2 },
	[u8; 03] = { SimdAlign = AlignByteX1 },
	[u8; 04] = { SimdAlign = AlignByteX4 },
	[u8; 05] = { SimdAlign = AlignByteX1 },
	[u8; 06] = { SimdAlign = AlignByteX2 },
	[u8; 07] = { SimdAlign = AlignByteX1 },
	[u8; 08] = { SimdAlign = AlignByteX8 },
	[u8; 09] = { SimdAlign = AlignByteX1 },
	[u8; 10] = { SimdAlign = AlignByteX2 },
	[u8; 11] = { SimdAlign = AlignByteX1 },
	[u8; 12] = { SimdAlign = AlignByteX4 },
	[u8; 13] = { SimdAlign = AlignByteX1 },
	[u8; 14] = { SimdAlign = AlignByteX2 },
	[u8; 15] = { SimdAlign = AlignByteX1 },
	[u8; 16] = { SimdAlign = AlignByteX16 },
	[u8; 17] = { SimdAlign = AlignByteX1 },
	[u8; 18] = { SimdAlign = AlignByteX2 },
	[u8; 19] = { SimdAlign = AlignByteX1 },
	[u8; 20] = { SimdAlign = AlignByteX4 },
	[u8; 21] = { SimdAlign = AlignByteX1 },
	[u8; 22] = { SimdAlign = AlignByteX2 },
	[u8; 23] = { SimdAlign = AlignByteX1 },
	[u8; 24] = { SimdAlign = AlignByteX8 },
	[u8; 25] = { SimdAlign = AlignByteX1 },
	[u8; 26] = { SimdAlign = AlignByteX2 },
	[u8; 27] = { SimdAlign = AlignByteX1 },
	[u8; 28] = { SimdAlign = AlignByteX4 },
	[u8; 29] = { SimdAlign = AlignByteX1 },
	[u8; 30] = { SimdAlign = AlignByteX2 },
	[u8; 31] = { SimdAlign = AlignByteX1 },
	[u8; 32] = { SimdAlign = AlignByteX32 },
	[u8; 33] = { SimdAlign = AlignByteX1 },
	[u8; 34] = { SimdAlign = AlignByteX2 },
	[u8; 35] = { SimdAlign = AlignByteX1 },
	[u8; 36] = { SimdAlign = AlignByteX4 },
	[u8; 37] = { SimdAlign = AlignByteX1 },
	[u8; 38] = { SimdAlign = AlignByteX2 },
	[u8; 39] = { SimdAlign = AlignByteX1 },
	[u8; 40] = { SimdAlign = AlignByteX8 },
	[u8; 41] = { SimdAlign = AlignByteX1 },
	[u8; 42] = { SimdAlign = AlignByteX2 },
	[u8; 43] = { SimdAlign = AlignByteX1 },
	[u8; 44] = { SimdAlign = AlignByteX4 },
	[u8; 45] = { SimdAlign = AlignByteX1 },
	[u8; 46] = { SimdAlign = AlignByteX2 },
	[u8; 47] = { SimdAlign = AlignByteX1 },
	[u8; 48] = { SimdAlign = AlignByteX16 },
	[u8; 49] = { SimdAlign = AlignByteX1 },
	[u8; 50] = { SimdAlign = AlignByteX2 },
	[u8; 51] = { SimdAlign = AlignByteX1 },
	[u8; 52] = { SimdAlign = AlignByteX4 },
	[u8; 53] = { SimdAlign = AlignByteX1 },
	[u8; 54] = { SimdAlign = AlignByteX2 },
	[u8; 55] = { SimdAlign = AlignByteX1 },
	[u8; 56] = { SimdAlign = AlignByteX8 },
	[u8; 57] = { SimdAlign = AlignByteX1 },
	[u8; 58] = { SimdAlign = AlignByteX2 },
	[u8; 59] = { SimdAlign = AlignByteX1 },
	[u8; 60] = { SimdAlign = AlignByteX4 },
	[u8; 61] = { SimdAlign = AlignByteX1 },
	[u8; 62] = { SimdAlign = AlignByteX2 },
	[u8; 63] = { SimdAlign = AlignByteX1 },
	[u8; 64] = { SimdAlign = AlignByteX64 },

	[i8; 01] = { SimdAlign = AlignByteX1 },
	[i8; 02] = { SimdAlign = AlignByteX2 },
	[i8; 03] = { SimdAlign = AlignByteX1 },
	[i8; 04] = { SimdAlign = AlignByteX4 },
	[i8; 05] = { SimdAlign = AlignByteX1 },
	[i8; 06] = { SimdAlign = AlignByteX2 },
	[i8; 07] = { SimdAlign = AlignByteX1 },
	[i8; 08] = { SimdAlign = AlignByteX8 },
	[i8; 09] = { SimdAlign = AlignByteX1 },
	[i8; 10] = { SimdAlign = AlignByteX2 },
	[i8; 11] = { SimdAlign = AlignByteX1 },
	[i8; 12] = { SimdAlign = AlignByteX4 },
	[i8; 13] = { SimdAlign = AlignByteX1 },
	[i8; 14] = { SimdAlign = AlignByteX2 },
	[i8; 15] = { SimdAlign = AlignByteX1 },
	[i8; 16] = { SimdAlign = AlignByteX16 },
	[i8; 17] = { SimdAlign = AlignByteX1 },
	[i8; 18] = { SimdAlign = AlignByteX2 },
	[i8; 19] = { SimdAlign = AlignByteX1 },
	[i8; 20] = { SimdAlign = AlignByteX4 },
	[i8; 21] = { SimdAlign = AlignByteX1 },
	[i8; 22] = { SimdAlign = AlignByteX2 },
	[i8; 23] = { SimdAlign = AlignByteX1 },
	[i8; 24] = { SimdAlign = AlignByteX8 },
	[i8; 25] = { SimdAlign = AlignByteX1 },
	[i8; 26] = { SimdAlign = AlignByteX2 },
	[i8; 27] = { SimdAlign = AlignByteX1 },
	[i8; 28] = { SimdAlign = AlignByteX4 },
	[i8; 29] = { SimdAlign = AlignByteX1 },
	[i8; 30] = { SimdAlign = AlignByteX2 },
	[i8; 31] = { SimdAlign = AlignByteX1 },
	[i8; 32] = { SimdAlign = AlignByteX32 },
	[i8; 33] = { SimdAlign = AlignByteX1 },
	[i8; 34] = { SimdAlign = AlignByteX2 },
	[i8; 35] = { SimdAlign = AlignByteX1 },
	[i8; 36] = { SimdAlign = AlignByteX4 },
	[i8; 37] = { SimdAlign = AlignByteX1 },
	[i8; 38] = { SimdAlign = AlignByteX2 },
	[i8; 39] = { SimdAlign = AlignByteX1 },
	[i8; 40] = { SimdAlign = AlignByteX8 },
	[i8; 41] = { SimdAlign = AlignByteX1 },
	[i8; 42] = { SimdAlign = AlignByteX2 },
	[i8; 43] = { SimdAlign = AlignByteX1 },
	[i8; 44] = { SimdAlign = AlignByteX4 },
	[i8; 45] = { SimdAlign = AlignByteX1 },
	[i8; 46] = { SimdAlign = AlignByteX2 },
	[i8; 47] = { SimdAlign = AlignByteX1 },
	[i8; 48] = { SimdAlign = AlignByteX16 },
	[i8; 49] = { SimdAlign = AlignByteX1 },
	[i8; 50] = { SimdAlign = AlignByteX2 },
	[i8; 51] = { SimdAlign = AlignByteX1 },
	[i8; 52] = { SimdAlign = AlignByteX4 },
	[i8; 53] = { SimdAlign = AlignByteX1 },
	[i8; 54] = { SimdAlign = AlignByteX2 },
	[i8; 55] = { SimdAlign = AlignByteX1 },
	[i8; 56] = { SimdAlign = AlignByteX8 },
	[i8; 57] = { SimdAlign = AlignByteX1 },
	[i8; 58] = { SimdAlign = AlignByteX2 },
	[i8; 59] = { SimdAlign = AlignByteX1 },
	[i8; 60] = { SimdAlign = AlignByteX4 },
	[i8; 61] = { SimdAlign = AlignByteX1 },
	[i8; 62] = { SimdAlign = AlignByteX2 },
	[i8; 63] = { SimdAlign = AlignByteX1 },
	[i8; 64] = { SimdAlign = AlignByteX64 },

	[u16; 01] = { SimdAlign = AlignByteX2 },
	[u16; 02] = { SimdAlign = AlignByteX4 },
	[u16; 03] = { SimdAlign = AlignByteX2 },
	[u16; 04] = { SimdAlign = AlignByteX8 },
	[u16; 05] = { SimdAlign = AlignByteX2 },
	[u16; 06] = { SimdAlign = AlignByteX4 },
	[u16; 07] = { SimdAlign = AlignByteX2 },
	[u16; 08] = { SimdAlign = AlignByteX16 },
	[u16; 09] = { SimdAlign = AlignByteX2 },
	[u16; 10] = { SimdAlign = AlignByteX4 },
	[u16; 11] = { SimdAlign = AlignByteX2 },
	[u16; 12] = { SimdAlign = AlignByteX8 },
	[u16; 13] = { SimdAlign = AlignByteX2 },
	[u16; 14] = { SimdAlign = AlignByteX4 },
	[u16; 15] = { SimdAlign = AlignByteX2 },
	[u16; 16] = { SimdAlign = AlignByteX32 },
	[u16; 17] = { SimdAlign = AlignByteX2 },
	[u16; 18] = { SimdAlign = AlignByteX4 },
	[u16; 19] = { SimdAlign = AlignByteX2 },
	[u16; 20] = { SimdAlign = AlignByteX8 },
	[u16; 21] = { SimdAlign = AlignByteX2 },
	[u16; 22] = { SimdAlign = AlignByteX4 },
	[u16; 23] = { SimdAlign = AlignByteX2 },
	[u16; 24] = { SimdAlign = AlignByteX16 },
	[u16; 25] = { SimdAlign = AlignByteX2 },
	[u16; 26] = { SimdAlign = AlignByteX4 },
	[u16; 27] = { SimdAlign = AlignByteX2 },
	[u16; 28] = { SimdAlign = AlignByteX8 },
	[u16; 29] = { SimdAlign = AlignByteX2 },
	[u16; 30] = { SimdAlign = AlignByteX4 },
	[u16; 31] = { SimdAlign = AlignByteX2 },
	[u16; 32] = { SimdAlign = AlignByteX64 },
	[u16; 33] = { SimdAlign = AlignByteX2 },
	[u16; 34] = { SimdAlign = AlignByteX4 },
	[u16; 35] = { SimdAlign = AlignByteX2 },
	[u16; 36] = { SimdAlign = AlignByteX8 },
	[u16; 37] = { SimdAlign = AlignByteX2 },
	[u16; 38] = { SimdAlign = AlignByteX4 },
	[u16; 39] = { SimdAlign = AlignByteX2 },
	[u16; 40] = { SimdAlign = AlignByteX16 },
	[u16; 41] = { SimdAlign = AlignByteX2 },
	[u16; 42] = { SimdAlign = AlignByteX4 },
	[u16; 43] = { SimdAlign = AlignByteX2 },
	[u16; 44] = { SimdAlign = AlignByteX8 },
	[u16; 45] = { SimdAlign = AlignByteX2 },
	[u16; 46] = { SimdAlign = AlignByteX4 },
	[u16; 47] = { SimdAlign = AlignByteX2 },
	[u16; 48] = { SimdAlign = AlignByteX32 },
	[u16; 49] = { SimdAlign = AlignByteX2 },
	[u16; 50] = { SimdAlign = AlignByteX4 },
	[u16; 51] = { SimdAlign = AlignByteX2 },
	[u16; 52] = { SimdAlign = AlignByteX8 },
	[u16; 53] = { SimdAlign = AlignByteX2 },
	[u16; 54] = { SimdAlign = AlignByteX4 },
	[u16; 55] = { SimdAlign = AlignByteX2 },
	[u16; 56] = { SimdAlign = AlignByteX16 },
	[u16; 57] = { SimdAlign = AlignByteX2 },
	[u16; 58] = { SimdAlign = AlignByteX4 },
	[u16; 59] = { SimdAlign = AlignByteX2 },
	[u16; 60] = { SimdAlign = AlignByteX8 },
	[u16; 61] = { SimdAlign = AlignByteX2 },
	[u16; 62] = { SimdAlign = AlignByteX4 },
	[u16; 63] = { SimdAlign = AlignByteX2 },
	[u16; 64] = { SimdAlign = AlignByteX128 },

	[i16; 01] = { SimdAlign = AlignByteX2 },
	[i16; 02] = { SimdAlign = AlignByteX4 },
	[i16; 03] = { SimdAlign = AlignByteX2 },
	[i16; 04] = { SimdAlign = AlignByteX8 },
	[i16; 05] = { SimdAlign = AlignByteX2 },
	[i16; 06] = { SimdAlign = AlignByteX4 },
	[i16; 07] = { SimdAlign = AlignByteX2 },
	[i16; 08] = { SimdAlign = AlignByteX16 },
	[i16; 09] = { SimdAlign = AlignByteX2 },
	[i16; 10] = { SimdAlign = AlignByteX4 },
	[i16; 11] = { SimdAlign = AlignByteX2 },
	[i16; 12] = { SimdAlign = AlignByteX8 },
	[i16; 13] = { SimdAlign = AlignByteX2 },
	[i16; 14] = { SimdAlign = AlignByteX4 },
	[i16; 15] = { SimdAlign = AlignByteX2 },
	[i16; 16] = { SimdAlign = AlignByteX32 },
	[i16; 17] = { SimdAlign = AlignByteX2 },
	[i16; 18] = { SimdAlign = AlignByteX4 },
	[i16; 19] = { SimdAlign = AlignByteX2 },
	[i16; 20] = { SimdAlign = AlignByteX8 },
	[i16; 21] = { SimdAlign = AlignByteX2 },
	[i16; 22] = { SimdAlign = AlignByteX4 },
	[i16; 23] = { SimdAlign = AlignByteX2 },
	[i16; 24] = { SimdAlign = AlignByteX16 },
	[i16; 25] = { SimdAlign = AlignByteX2 },
	[i16; 26] = { SimdAlign = AlignByteX4 },
	[i16; 27] = { SimdAlign = AlignByteX2 },
	[i16; 28] = { SimdAlign = AlignByteX8 },
	[i16; 29] = { SimdAlign = AlignByteX2 },
	[i16; 30] = { SimdAlign = AlignByteX4 },
	[i16; 31] = { SimdAlign = AlignByteX2 },
	[i16; 32] = { SimdAlign = AlignByteX64 },
	[i16; 33] = { SimdAlign = AlignByteX2 },
	[i16; 34] = { SimdAlign = AlignByteX4 },
	[i16; 35] = { SimdAlign = AlignByteX2 },
	[i16; 36] = { SimdAlign = AlignByteX8 },
	[i16; 37] = { SimdAlign = AlignByteX2 },
	[i16; 38] = { SimdAlign = AlignByteX4 },
	[i16; 39] = { SimdAlign = AlignByteX2 },
	[i16; 40] = { SimdAlign = AlignByteX16 },
	[i16; 41] = { SimdAlign = AlignByteX2 },
	[i16; 42] = { SimdAlign = AlignByteX4 },
	[i16; 43] = { SimdAlign = AlignByteX2 },
	[i16; 44] = { SimdAlign = AlignByteX8 },
	[i16; 45] = { SimdAlign = AlignByteX2 },
	[i16; 46] = { SimdAlign = AlignByteX4 },
	[i16; 47] = { SimdAlign = AlignByteX2 },
	[i16; 48] = { SimdAlign = AlignByteX32 },
	[i16; 49] = { SimdAlign = AlignByteX2 },
	[i16; 50] = { SimdAlign = AlignByteX4 },
	[i16; 51] = { SimdAlign = AlignByteX2 },
	[i16; 52] = { SimdAlign = AlignByteX8 },
	[i16; 53] = { SimdAlign = AlignByteX2 },
	[i16; 54] = { SimdAlign = AlignByteX4 },
	[i16; 55] = { SimdAlign = AlignByteX2 },
	[i16; 56] = { SimdAlign = AlignByteX16 },
	[i16; 57] = { SimdAlign = AlignByteX2 },
	[i16; 58] = { SimdAlign = AlignByteX4 },
	[i16; 59] = { SimdAlign = AlignByteX2 },
	[i16; 60] = { SimdAlign = AlignByteX8 },
	[i16; 61] = { SimdAlign = AlignByteX2 },
	[i16; 62] = { SimdAlign = AlignByteX4 },
	[i16; 63] = { SimdAlign = AlignByteX2 },
	[i16; 64] = { SimdAlign = AlignByteX128 },

	[u32; 01] = { SimdAlign = AlignByteX4 },
	[u32; 02] = { SimdAlign = AlignByteX8 },
	[u32; 03] = { SimdAlign = AlignByteX4 },
	[u32; 04] = { SimdAlign = AlignByteX16 },
	[u32; 05] = { SimdAlign = AlignByteX4 },
	[u32; 06] = { SimdAlign = AlignByteX8 },
	[u32; 07] = { SimdAlign = AlignByteX4 },
	[u32; 08] = { SimdAlign = AlignByteX32 },
	[u32; 09] = { SimdAlign = AlignByteX4 },
	[u32; 10] = { SimdAlign = AlignByteX8 },
	[u32; 11] = { SimdAlign = AlignByteX4 },
	[u32; 12] = { SimdAlign = AlignByteX16 },
	[u32; 13] = { SimdAlign = AlignByteX4 },
	[u32; 14] = { SimdAlign = AlignByteX8 },
	[u32; 15] = { SimdAlign = AlignByteX4 },
	[u32; 16] = { SimdAlign = AlignByteX64 },
	[u32; 17] = { SimdAlign = AlignByteX4 },
	[u32; 18] = { SimdAlign = AlignByteX8 },
	[u32; 19] = { SimdAlign = AlignByteX4 },
	[u32; 20] = { SimdAlign = AlignByteX16 },
	[u32; 21] = { SimdAlign = AlignByteX4 },
	[u32; 22] = { SimdAlign = AlignByteX8 },
	[u32; 23] = { SimdAlign = AlignByteX4 },
	[u32; 24] = { SimdAlign = AlignByteX32 },
	[u32; 25] = { SimdAlign = AlignByteX4 },
	[u32; 26] = { SimdAlign = AlignByteX8 },
	[u32; 27] = { SimdAlign = AlignByteX4 },
	[u32; 28] = { SimdAlign = AlignByteX16 },
	[u32; 29] = { SimdAlign = AlignByteX4 },
	[u32; 30] = { SimdAlign = AlignByteX8 },
	[u32; 31] = { SimdAlign = AlignByteX4 },
	[u32; 32] = { SimdAlign = AlignByteX128 },
	[u32; 33] = { SimdAlign = AlignByteX4 },
	[u32; 34] = { SimdAlign = AlignByteX8 },
	[u32; 35] = { SimdAlign = AlignByteX4 },
	[u32; 36] = { SimdAlign = AlignByteX16 },
	[u32; 37] = { SimdAlign = AlignByteX4 },
	[u32; 38] = { SimdAlign = AlignByteX8 },
	[u32; 39] = { SimdAlign = AlignByteX4 },
	[u32; 40] = { SimdAlign = AlignByteX32 },
	[u32; 41] = { SimdAlign = AlignByteX4 },
	[u32; 42] = { SimdAlign = AlignByteX8 },
	[u32; 43] = { SimdAlign = AlignByteX4 },
	[u32; 44] = { SimdAlign = AlignByteX16 },
	[u32; 45] = { SimdAlign = AlignByteX4 },
	[u32; 46] = { SimdAlign = AlignByteX8 },
	[u32; 47] = { SimdAlign = AlignByteX4 },
	[u32; 48] = { SimdAlign = AlignByteX64 },
	[u32; 49] = { SimdAlign = AlignByteX4 },
	[u32; 50] = { SimdAlign = AlignByteX8 },
	[u32; 51] = { SimdAlign = AlignByteX4 },
	[u32; 52] = { SimdAlign = AlignByteX16 },
	[u32; 53] = { SimdAlign = AlignByteX4 },
	[u32; 54] = { SimdAlign = AlignByteX8 },
	[u32; 55] = { SimdAlign = AlignByteX4 },
	[u32; 56] = { SimdAlign = AlignByteX32 },
	[u32; 57] = { SimdAlign = AlignByteX4 },
	[u32; 58] = { SimdAlign = AlignByteX8 },
	[u32; 59] = { SimdAlign = AlignByteX4 },
	[u32; 60] = { SimdAlign = AlignByteX16 },
	[u32; 61] = { SimdAlign = AlignByteX4 },
	[u32; 62] = { SimdAlign = AlignByteX8 },
	[u32; 63] = { SimdAlign = AlignByteX4 },
	[u32; 64] = { SimdAlign = AlignByteX256 },

	[i32; 01] = { SimdAlign = AlignByteX4 },
	[i32; 02] = { SimdAlign = AlignByteX8 },
	[i32; 03] = { SimdAlign = AlignByteX4 },
	[i32; 04] = { SimdAlign = AlignByteX16 },
	[i32; 05] = { SimdAlign = AlignByteX4 },
	[i32; 06] = { SimdAlign = AlignByteX8 },
	[i32; 07] = { SimdAlign = AlignByteX4 },
	[i32; 08] = { SimdAlign = AlignByteX32 },
	[i32; 09] = { SimdAlign = AlignByteX4 },
	[i32; 10] = { SimdAlign = AlignByteX8 },
	[i32; 11] = { SimdAlign = AlignByteX4 },
	[i32; 12] = { SimdAlign = AlignByteX16 },
	[i32; 13] = { SimdAlign = AlignByteX4 },
	[i32; 14] = { SimdAlign = AlignByteX8 },
	[i32; 15] = { SimdAlign = AlignByteX4 },
	[i32; 16] = { SimdAlign = AlignByteX64 },
	[i32; 17] = { SimdAlign = AlignByteX4 },
	[i32; 18] = { SimdAlign = AlignByteX8 },
	[i32; 19] = { SimdAlign = AlignByteX4 },
	[i32; 20] = { SimdAlign = AlignByteX16 },
	[i32; 21] = { SimdAlign = AlignByteX4 },
	[i32; 22] = { SimdAlign = AlignByteX8 },
	[i32; 23] = { SimdAlign = AlignByteX4 },
	[i32; 24] = { SimdAlign = AlignByteX32 },
	[i32; 25] = { SimdAlign = AlignByteX4 },
	[i32; 26] = { SimdAlign = AlignByteX8 },
	[i32; 27] = { SimdAlign = AlignByteX4 },
	[i32; 28] = { SimdAlign = AlignByteX16 },
	[i32; 29] = { SimdAlign = AlignByteX4 },
	[i32; 30] = { SimdAlign = AlignByteX8 },
	[i32; 31] = { SimdAlign = AlignByteX4 },
	[i32; 32] = { SimdAlign = AlignByteX128 },
	[i32; 33] = { SimdAlign = AlignByteX4 },
	[i32; 34] = { SimdAlign = AlignByteX8 },
	[i32; 35] = { SimdAlign = AlignByteX4 },
	[i32; 36] = { SimdAlign = AlignByteX16 },
	[i32; 37] = { SimdAlign = AlignByteX4 },
	[i32; 38] = { SimdAlign = AlignByteX8 },
	[i32; 39] = { SimdAlign = AlignByteX4 },
	[i32; 40] = { SimdAlign = AlignByteX32 },
	[i32; 41] = { SimdAlign = AlignByteX4 },
	[i32; 42] = { SimdAlign = AlignByteX8 },
	[i32; 43] = { SimdAlign = AlignByteX4 },
	[i32; 44] = { SimdAlign = AlignByteX16 },
	[i32; 45] = { SimdAlign = AlignByteX4 },
	[i32; 46] = { SimdAlign = AlignByteX8 },
	[i32; 47] = { SimdAlign = AlignByteX4 },
	[i32; 48] = { SimdAlign = AlignByteX64 },
	[i32; 49] = { SimdAlign = AlignByteX4 },
	[i32; 50] = { SimdAlign = AlignByteX8 },
	[i32; 51] = { SimdAlign = AlignByteX4 },
	[i32; 52] = { SimdAlign = AlignByteX16 },
	[i32; 53] = { SimdAlign = AlignByteX4 },
	[i32; 54] = { SimdAlign = AlignByteX8 },
	[i32; 55] = { SimdAlign = AlignByteX4 },
	[i32; 56] = { SimdAlign = AlignByteX32 },
	[i32; 57] = { SimdAlign = AlignByteX4 },
	[i32; 58] = { SimdAlign = AlignByteX8 },
	[i32; 59] = { SimdAlign = AlignByteX4 },
	[i32; 60] = { SimdAlign = AlignByteX16 },
	[i32; 61] = { SimdAlign = AlignByteX4 },
	[i32; 62] = { SimdAlign = AlignByteX8 },
	[i32; 63] = { SimdAlign = AlignByteX4 },
	[i32; 64] = { SimdAlign = AlignByteX256 },

	[u64; 01] = { SimdAlign = AlignByteX8 },
	[u64; 02] = { SimdAlign = AlignByteX16 },
	[u64; 03] = { SimdAlign = AlignByteX8 },
	[u64; 04] = { SimdAlign = AlignByteX32 },
	[u64; 05] = { SimdAlign = AlignByteX8 },
	[u64; 06] = { SimdAlign = AlignByteX16 },
	[u64; 07] = { SimdAlign = AlignByteX8 },
	[u64; 08] = { SimdAlign = AlignByteX64 },
	[u64; 09] = { SimdAlign = AlignByteX8 },
	[u64; 10] = { SimdAlign = AlignByteX16 },
	[u64; 11] = { SimdAlign = AlignByteX8 },
	[u64; 12] = { SimdAlign = AlignByteX32 },
	[u64; 13] = { SimdAlign = AlignByteX8 },
	[u64; 14] = { SimdAlign = AlignByteX16 },
	[u64; 15] = { SimdAlign = AlignByteX8 },
	[u64; 16] = { SimdAlign = AlignByteX128 },
	[u64; 17] = { SimdAlign = AlignByteX8 },
	[u64; 18] = { SimdAlign = AlignByteX16 },
	[u64; 19] = { SimdAlign = AlignByteX8 },
	[u64; 20] = { SimdAlign = AlignByteX32 },
	[u64; 21] = { SimdAlign = AlignByteX8 },
	[u64; 22] = { SimdAlign = AlignByteX16 },
	[u64; 23] = { SimdAlign = AlignByteX8 },
	[u64; 24] = { SimdAlign = AlignByteX64 },
	[u64; 25] = { SimdAlign = AlignByteX8 },
	[u64; 26] = { SimdAlign = AlignByteX16 },
	[u64; 27] = { SimdAlign = AlignByteX8 },
	[u64; 28] = { SimdAlign = AlignByteX32 },
	[u64; 29] = { SimdAlign = AlignByteX8 },
	[u64; 30] = { SimdAlign = AlignByteX16 },
	[u64; 31] = { SimdAlign = AlignByteX8 },
	[u64; 32] = { SimdAlign = AlignByteX256 },
	[u64; 33] = { SimdAlign = AlignByteX8 },
	[u64; 34] = { SimdAlign = AlignByteX16 },
	[u64; 35] = { SimdAlign = AlignByteX8 },
	[u64; 36] = { SimdAlign = AlignByteX32 },
	[u64; 37] = { SimdAlign = AlignByteX8 },
	[u64; 38] = { SimdAlign = AlignByteX16 },
	[u64; 39] = { SimdAlign = AlignByteX8 },
	[u64; 40] = { SimdAlign = AlignByteX64 },
	[u64; 41] = { SimdAlign = AlignByteX8 },
	[u64; 42] = { SimdAlign = AlignByteX16 },
	[u64; 43] = { SimdAlign = AlignByteX8 },
	[u64; 44] = { SimdAlign = AlignByteX32 },
	[u64; 45] = { SimdAlign = AlignByteX8 },
	[u64; 46] = { SimdAlign = AlignByteX16 },
	[u64; 47] = { SimdAlign = AlignByteX8 },
	[u64; 48] = { SimdAlign = AlignByteX128 },
	[u64; 49] = { SimdAlign = AlignByteX8 },
	[u64; 50] = { SimdAlign = AlignByteX16 },
	[u64; 51] = { SimdAlign = AlignByteX8 },
	[u64; 52] = { SimdAlign = AlignByteX32 },
	[u64; 53] = { SimdAlign = AlignByteX8 },
	[u64; 54] = { SimdAlign = AlignByteX16 },
	[u64; 55] = { SimdAlign = AlignByteX8 },
	[u64; 56] = { SimdAlign = AlignByteX64 },
	[u64; 57] = { SimdAlign = AlignByteX8 },
	[u64; 58] = { SimdAlign = AlignByteX16 },
	[u64; 59] = { SimdAlign = AlignByteX8 },
	[u64; 60] = { SimdAlign = AlignByteX32 },
	[u64; 61] = { SimdAlign = AlignByteX8 },
	[u64; 62] = { SimdAlign = AlignByteX16 },
	[u64; 63] = { SimdAlign = AlignByteX8 },
	[u64; 64] = { SimdAlign = AlignByteX512 },

	[i64; 01] = { SimdAlign = AlignByteX8 },
	[i64; 02] = { SimdAlign = AlignByteX16 },
	[i64; 03] = { SimdAlign = AlignByteX8 },
	[i64; 04] = { SimdAlign = AlignByteX32 },
	[i64; 05] = { SimdAlign = AlignByteX8 },
	[i64; 06] = { SimdAlign = AlignByteX16 },
	[i64; 07] = { SimdAlign = AlignByteX8 },
	[i64; 08] = { SimdAlign = AlignByteX64 },
	[i64; 09] = { SimdAlign = AlignByteX8 },
	[i64; 10] = { SimdAlign = AlignByteX16 },
	[i64; 11] = { SimdAlign = AlignByteX8 },
	[i64; 12] = { SimdAlign = AlignByteX32 },
	[i64; 13] = { SimdAlign = AlignByteX8 },
	[i64; 14] = { SimdAlign = AlignByteX16 },
	[i64; 15] = { SimdAlign = AlignByteX8 },
	[i64; 16] = { SimdAlign = AlignByteX128 },
	[i64; 17] = { SimdAlign = AlignByteX8 },
	[i64; 18] = { SimdAlign = AlignByteX16 },
	[i64; 19] = { SimdAlign = AlignByteX8 },
	[i64; 20] = { SimdAlign = AlignByteX32 },
	[i64; 21] = { SimdAlign = AlignByteX8 },
	[i64; 22] = { SimdAlign = AlignByteX16 },
	[i64; 23] = { SimdAlign = AlignByteX8 },
	[i64; 24] = { SimdAlign = AlignByteX64 },
	[i64; 25] = { SimdAlign = AlignByteX8 },
	[i64; 26] = { SimdAlign = AlignByteX16 },
	[i64; 27] = { SimdAlign = AlignByteX8 },
	[i64; 28] = { SimdAlign = AlignByteX32 },
	[i64; 29] = { SimdAlign = AlignByteX8 },
	[i64; 30] = { SimdAlign = AlignByteX16 },
	[i64; 31] = { SimdAlign = AlignByteX8 },
	[i64; 32] = { SimdAlign = AlignByteX256 },
	[i64; 33] = { SimdAlign = AlignByteX8 },
	[i64; 34] = { SimdAlign = AlignByteX16 },
	[i64; 35] = { SimdAlign = AlignByteX8 },
	[i64; 36] = { SimdAlign = AlignByteX32 },
	[i64; 37] = { SimdAlign = AlignByteX8 },
	[i64; 38] = { SimdAlign = AlignByteX16 },
	[i64; 39] = { SimdAlign = AlignByteX8 },
	[i64; 40] = { SimdAlign = AlignByteX64 },
	[i64; 41] = { SimdAlign = AlignByteX8 },
	[i64; 42] = { SimdAlign = AlignByteX16 },
	[i64; 43] = { SimdAlign = AlignByteX8 },
	[i64; 44] = { SimdAlign = AlignByteX32 },
	[i64; 45] = { SimdAlign = AlignByteX8 },
	[i64; 46] = { SimdAlign = AlignByteX16 },
	[i64; 47] = { SimdAlign = AlignByteX8 },
	[i64; 48] = { SimdAlign = AlignByteX128 },
	[i64; 49] = { SimdAlign = AlignByteX8 },
	[i64; 50] = { SimdAlign = AlignByteX16 },
	[i64; 51] = { SimdAlign = AlignByteX8 },
	[i64; 52] = { SimdAlign = AlignByteX32 },
	[i64; 53] = { SimdAlign = AlignByteX8 },
	[i64; 54] = { SimdAlign = AlignByteX16 },
	[i64; 55] = { SimdAlign = AlignByteX8 },
	[i64; 56] = { SimdAlign = AlignByteX64 },
	[i64; 57] = { SimdAlign = AlignByteX8 },
	[i64; 58] = { SimdAlign = AlignByteX16 },
	[i64; 59] = { SimdAlign = AlignByteX8 },
	[i64; 60] = { SimdAlign = AlignByteX32 },
	[i64; 61] = { SimdAlign = AlignByteX8 },
	[i64; 62] = { SimdAlign = AlignByteX16 },
	[i64; 63] = { SimdAlign = AlignByteX8 },
	[i64; 64] = { SimdAlign = AlignByteX512 },

	[u128; 01] = { SimdAlign = AlignByteX16 },
	[u128; 02] = { SimdAlign = AlignByteX32 },
	[u128; 03] = { SimdAlign = AlignByteX16 },
	[u128; 04] = { SimdAlign = AlignByteX64 },
	[u128; 05] = { SimdAlign = AlignByteX16 },
	[u128; 06] = { SimdAlign = AlignByteX32 },
	[u128; 07] = { SimdAlign = AlignByteX16 },
	[u128; 08] = { SimdAlign = AlignByteX128 },
	[u128; 09] = { SimdAlign = AlignByteX16 },
	[u128; 10] = { SimdAlign = AlignByteX32 },
	[u128; 11] = { SimdAlign = AlignByteX16 },
	[u128; 12] = { SimdAlign = AlignByteX64 },
	[u128; 13] = { SimdAlign = AlignByteX16 },
	[u128; 14] = { SimdAlign = AlignByteX32 },
	[u128; 15] = { SimdAlign = AlignByteX16 },
	[u128; 16] = { SimdAlign = AlignByteX256 },
	[u128; 17] = { SimdAlign = AlignByteX16 },
	[u128; 18] = { SimdAlign = AlignByteX32 },
	[u128; 19] = { SimdAlign = AlignByteX16 },
	[u128; 20] = { SimdAlign = AlignByteX64 },
	[u128; 21] = { SimdAlign = AlignByteX16 },
	[u128; 22] = { SimdAlign = AlignByteX32 },
	[u128; 23] = { SimdAlign = AlignByteX16 },
	[u128; 24] = { SimdAlign = AlignByteX128 },
	[u128; 25] = { SimdAlign = AlignByteX16 },
	[u128; 26] = { SimdAlign = AlignByteX32 },
	[u128; 27] = { SimdAlign = AlignByteX16 },
	[u128; 28] = { SimdAlign = AlignByteX64 },
	[u128; 29] = { SimdAlign = AlignByteX16 },
	[u128; 30] = { SimdAlign = AlignByteX32 },
	[u128; 31] = { SimdAlign = AlignByteX16 },
	[u128; 32] = { SimdAlign = AlignByteX512 },
	[u128; 33] = { SimdAlign = AlignByteX16 },
	[u128; 34] = { SimdAlign = AlignByteX32 },
	[u128; 35] = { SimdAlign = AlignByteX16 },
	[u128; 36] = { SimdAlign = AlignByteX64 },
	[u128; 37] = { SimdAlign = AlignByteX16 },
	[u128; 38] = { SimdAlign = AlignByteX32 },
	[u128; 39] = { SimdAlign = AlignByteX16 },
	[u128; 40] = { SimdAlign = AlignByteX128 },
	[u128; 41] = { SimdAlign = AlignByteX16 },
	[u128; 42] = { SimdAlign = AlignByteX32 },
	[u128; 43] = { SimdAlign = AlignByteX16 },
	[u128; 44] = { SimdAlign = AlignByteX64 },
	[u128; 45] = { SimdAlign = AlignByteX16 },
	[u128; 46] = { SimdAlign = AlignByteX32 },
	[u128; 47] = { SimdAlign = AlignByteX16 },
	[u128; 48] = { SimdAlign = AlignByteX256 },
	[u128; 49] = { SimdAlign = AlignByteX16 },
	[u128; 50] = { SimdAlign = AlignByteX32 },
	[u128; 51] = { SimdAlign = AlignByteX16 },
	[u128; 52] = { SimdAlign = AlignByteX64 },
	[u128; 53] = { SimdAlign = AlignByteX16 },
	[u128; 54] = { SimdAlign = AlignByteX32 },
	[u128; 55] = { SimdAlign = AlignByteX16 },
	[u128; 56] = { SimdAlign = AlignByteX128 },
	[u128; 57] = { SimdAlign = AlignByteX16 },
	[u128; 58] = { SimdAlign = AlignByteX32 },
	[u128; 59] = { SimdAlign = AlignByteX16 },
	[u128; 60] = { SimdAlign = AlignByteX64 },
	[u128; 61] = { SimdAlign = AlignByteX16 },
	[u128; 62] = { SimdAlign = AlignByteX32 },
	[u128; 63] = { SimdAlign = AlignByteX16 },
	[u128; 64] = { SimdAlign = AlignByteX1024 },

	[i128; 01] = { SimdAlign = AlignByteX16 },
	[i128; 02] = { SimdAlign = AlignByteX32 },
	[i128; 03] = { SimdAlign = AlignByteX16 },
	[i128; 04] = { SimdAlign = AlignByteX64 },
	[i128; 05] = { SimdAlign = AlignByteX16 },
	[i128; 06] = { SimdAlign = AlignByteX32 },
	[i128; 07] = { SimdAlign = AlignByteX16 },
	[i128; 08] = { SimdAlign = AlignByteX128 },
	[i128; 09] = { SimdAlign = AlignByteX16 },
	[i128; 10] = { SimdAlign = AlignByteX32 },
	[i128; 11] = { SimdAlign = AlignByteX16 },
	[i128; 12] = { SimdAlign = AlignByteX64 },
	[i128; 13] = { SimdAlign = AlignByteX16 },
	[i128; 14] = { SimdAlign = AlignByteX32 },
	[i128; 15] = { SimdAlign = AlignByteX16 },
	[i128; 16] = { SimdAlign = AlignByteX256 },
	[i128; 17] = { SimdAlign = AlignByteX16 },
	[i128; 18] = { SimdAlign = AlignByteX32 },
	[i128; 19] = { SimdAlign = AlignByteX16 },
	[i128; 20] = { SimdAlign = AlignByteX64 },
	[i128; 21] = { SimdAlign = AlignByteX16 },
	[i128; 22] = { SimdAlign = AlignByteX32 },
	[i128; 23] = { SimdAlign = AlignByteX16 },
	[i128; 24] = { SimdAlign = AlignByteX128 },
	[i128; 25] = { SimdAlign = AlignByteX16 },
	[i128; 26] = { SimdAlign = AlignByteX32 },
	[i128; 27] = { SimdAlign = AlignByteX16 },
	[i128; 28] = { SimdAlign = AlignByteX64 },
	[i128; 29] = { SimdAlign = AlignByteX16 },
	[i128; 30] = { SimdAlign = AlignByteX32 },
	[i128; 31] = { SimdAlign = AlignByteX16 },
	[i128; 32] = { SimdAlign = AlignByteX512 },
	[i128; 33] = { SimdAlign = AlignByteX16 },
	[i128; 34] = { SimdAlign = AlignByteX32 },
	[i128; 35] = { SimdAlign = AlignByteX16 },
	[i128; 36] = { SimdAlign = AlignByteX64 },
	[i128; 37] = { SimdAlign = AlignByteX16 },
	[i128; 38] = { SimdAlign = AlignByteX32 },
	[i128; 39] = { SimdAlign = AlignByteX16 },
	[i128; 40] = { SimdAlign = AlignByteX128 },
	[i128; 41] = { SimdAlign = AlignByteX16 },
	[i128; 42] = { SimdAlign = AlignByteX32 },
	[i128; 43] = { SimdAlign = AlignByteX16 },
	[i128; 44] = { SimdAlign = AlignByteX64 },
	[i128; 45] = { SimdAlign = AlignByteX16 },
	[i128; 46] = { SimdAlign = AlignByteX32 },
	[i128; 47] = { SimdAlign = AlignByteX16 },
	[i128; 48] = { SimdAlign = AlignByteX256 },
	[i128; 49] = { SimdAlign = AlignByteX16 },
	[i128; 50] = { SimdAlign = AlignByteX32 },
	[i128; 51] = { SimdAlign = AlignByteX16 },
	[i128; 52] = { SimdAlign = AlignByteX64 },
	[i128; 53] = { SimdAlign = AlignByteX16 },
	[i128; 54] = { SimdAlign = AlignByteX32 },
	[i128; 55] = { SimdAlign = AlignByteX16 },
	[i128; 56] = { SimdAlign = AlignByteX128 },
	[i128; 57] = { SimdAlign = AlignByteX16 },
	[i128; 58] = { SimdAlign = AlignByteX32 },
	[i128; 59] = { SimdAlign = AlignByteX16 },
	[i128; 60] = { SimdAlign = AlignByteX64 },
	[i128; 61] = { SimdAlign = AlignByteX16 },
	[i128; 62] = { SimdAlign = AlignByteX32 },
	[i128; 63] = { SimdAlign = AlignByteX16 },
	[i128; 64] = { SimdAlign = AlignByteX1024 },

	[usize; 01] = { SimdAlign = AlignSizeX1 },
	[usize; 02] = { SimdAlign = AlignSizeX2 },
	[usize; 03] = { SimdAlign = AlignSizeX1 },
	[usize; 04] = { SimdAlign = AlignSizeX4 },
	[usize; 05] = { SimdAlign = AlignSizeX1 },
	[usize; 06] = { SimdAlign = AlignSizeX2 },
	[usize; 07] = { SimdAlign = AlignSizeX1 },
	[usize; 08] = { SimdAlign = AlignSizeX8 },
	[usize; 09] = { SimdAlign = AlignSizeX1 },
	[usize; 10] = { SimdAlign = AlignSizeX2 },
	[usize; 11] = { SimdAlign = AlignSizeX1 },
	[usize; 12] = { SimdAlign = AlignSizeX4 },
	[usize; 13] = { SimdAlign = AlignSizeX1 },
	[usize; 14] = { SimdAlign = AlignSizeX2 },
	[usize; 15] = { SimdAlign = AlignSizeX1 },
	[usize; 16] = { SimdAlign = AlignSizeX16 },
	[usize; 17] = { SimdAlign = AlignSizeX1 },
	[usize; 18] = { SimdAlign = AlignSizeX2 },
	[usize; 19] = { SimdAlign = AlignSizeX1 },
	[usize; 20] = { SimdAlign = AlignSizeX4 },
	[usize; 21] = { SimdAlign = AlignSizeX1 },
	[usize; 22] = { SimdAlign = AlignSizeX2 },
	[usize; 23] = { SimdAlign = AlignSizeX1 },
	[usize; 24] = { SimdAlign = AlignSizeX8 },
	[usize; 25] = { SimdAlign = AlignSizeX1 },
	[usize; 26] = { SimdAlign = AlignSizeX2 },
	[usize; 27] = { SimdAlign = AlignSizeX1 },
	[usize; 28] = { SimdAlign = AlignSizeX4 },
	[usize; 29] = { SimdAlign = AlignSizeX1 },
	[usize; 30] = { SimdAlign = AlignSizeX2 },
	[usize; 31] = { SimdAlign = AlignSizeX1 },
	[usize; 32] = { SimdAlign = AlignSizeX32 },
	[usize; 33] = { SimdAlign = AlignSizeX1 },
	[usize; 34] = { SimdAlign = AlignSizeX2 },
	[usize; 35] = { SimdAlign = AlignSizeX1 },
	[usize; 36] = { SimdAlign = AlignSizeX4 },
	[usize; 37] = { SimdAlign = AlignSizeX1 },
	[usize; 38] = { SimdAlign = AlignSizeX2 },
	[usize; 39] = { SimdAlign = AlignSizeX1 },
	[usize; 40] = { SimdAlign = AlignSizeX8 },
	[usize; 41] = { SimdAlign = AlignSizeX1 },
	[usize; 42] = { SimdAlign = AlignSizeX2 },
	[usize; 43] = { SimdAlign = AlignSizeX1 },
	[usize; 44] = { SimdAlign = AlignSizeX4 },
	[usize; 45] = { SimdAlign = AlignSizeX1 },
	[usize; 46] = { SimdAlign = AlignSizeX2 },
	[usize; 47] = { SimdAlign = AlignSizeX1 },
	[usize; 48] = { SimdAlign = AlignSizeX16 },
	[usize; 49] = { SimdAlign = AlignSizeX1 },
	[usize; 50] = { SimdAlign = AlignSizeX2 },
	[usize; 51] = { SimdAlign = AlignSizeX1 },
	[usize; 52] = { SimdAlign = AlignSizeX4 },
	[usize; 53] = { SimdAlign = AlignSizeX1 },
	[usize; 54] = { SimdAlign = AlignSizeX2 },
	[usize; 55] = { SimdAlign = AlignSizeX1 },
	[usize; 56] = { SimdAlign = AlignSizeX8 },
	[usize; 57] = { SimdAlign = AlignSizeX1 },
	[usize; 58] = { SimdAlign = AlignSizeX2 },
	[usize; 59] = { SimdAlign = AlignSizeX1 },
	[usize; 60] = { SimdAlign = AlignSizeX4 },
	[usize; 61] = { SimdAlign = AlignSizeX1 },
	[usize; 62] = { SimdAlign = AlignSizeX2 },
	[usize; 63] = { SimdAlign = AlignSizeX1 },
	[usize; 64] = { SimdAlign = AlignSizeX64 },

	[isize; 01] = { SimdAlign = AlignSizeX1 },
	[isize; 02] = { SimdAlign = AlignSizeX2 },
	[isize; 03] = { SimdAlign = AlignSizeX1 },
	[isize; 04] = { SimdAlign = AlignSizeX4 },
	[isize; 05] = { SimdAlign = AlignSizeX1 },
	[isize; 06] = { SimdAlign = AlignSizeX2 },
	[isize; 07] = { SimdAlign = AlignSizeX1 },
	[isize; 08] = { SimdAlign = AlignSizeX8 },
	[isize; 09] = { SimdAlign = AlignSizeX1 },
	[isize; 10] = { SimdAlign = AlignSizeX2 },
	[isize; 11] = { SimdAlign = AlignSizeX1 },
	[isize; 12] = { SimdAlign = AlignSizeX4 },
	[isize; 13] = { SimdAlign = AlignSizeX1 },
	[isize; 14] = { SimdAlign = AlignSizeX2 },
	[isize; 15] = { SimdAlign = AlignSizeX1 },
	[isize; 16] = { SimdAlign = AlignSizeX16 },
	[isize; 17] = { SimdAlign = AlignSizeX1 },
	[isize; 18] = { SimdAlign = AlignSizeX2 },
	[isize; 19] = { SimdAlign = AlignSizeX1 },
	[isize; 20] = { SimdAlign = AlignSizeX4 },
	[isize; 21] = { SimdAlign = AlignSizeX1 },
	[isize; 22] = { SimdAlign = AlignSizeX2 },
	[isize; 23] = { SimdAlign = AlignSizeX1 },
	[isize; 24] = { SimdAlign = AlignSizeX8 },
	[isize; 25] = { SimdAlign = AlignSizeX1 },
	[isize; 26] = { SimdAlign = AlignSizeX2 },
	[isize; 27] = { SimdAlign = AlignSizeX1 },
	[isize; 28] = { SimdAlign = AlignSizeX4 },
	[isize; 29] = { SimdAlign = AlignSizeX1 },
	[isize; 30] = { SimdAlign = AlignSizeX2 },
	[isize; 31] = { SimdAlign = AlignSizeX1 },
	[isize; 32] = { SimdAlign = AlignSizeX32 },
	[isize; 33] = { SimdAlign = AlignSizeX1 },
	[isize; 34] = { SimdAlign = AlignSizeX2 },
	[isize; 35] = { SimdAlign = AlignSizeX1 },
	[isize; 36] = { SimdAlign = AlignSizeX4 },
	[isize; 37] = { SimdAlign = AlignSizeX1 },
	[isize; 38] = { SimdAlign = AlignSizeX2 },
	[isize; 39] = { SimdAlign = AlignSizeX1 },
	[isize; 40] = { SimdAlign = AlignSizeX8 },
	[isize; 41] = { SimdAlign = AlignSizeX1 },
	[isize; 42] = { SimdAlign = AlignSizeX2 },
	[isize; 43] = { SimdAlign = AlignSizeX1 },
	[isize; 44] = { SimdAlign = AlignSizeX4 },
	[isize; 45] = { SimdAlign = AlignSizeX1 },
	[isize; 46] = { SimdAlign = AlignSizeX2 },
	[isize; 47] = { SimdAlign = AlignSizeX1 },
	[isize; 48] = { SimdAlign = AlignSizeX16 },
	[isize; 49] = { SimdAlign = AlignSizeX1 },
	[isize; 50] = { SimdAlign = AlignSizeX2 },
	[isize; 51] = { SimdAlign = AlignSizeX1 },
	[isize; 52] = { SimdAlign = AlignSizeX4 },
	[isize; 53] = { SimdAlign = AlignSizeX1 },
	[isize; 54] = { SimdAlign = AlignSizeX2 },
	[isize; 55] = { SimdAlign = AlignSizeX1 },
	[isize; 56] = { SimdAlign = AlignSizeX8 },
	[isize; 57] = { SimdAlign = AlignSizeX1 },
	[isize; 58] = { SimdAlign = AlignSizeX2 },
	[isize; 59] = { SimdAlign = AlignSizeX1 },
	[isize; 60] = { SimdAlign = AlignSizeX4 },
	[isize; 61] = { SimdAlign = AlignSizeX1 },
	[isize; 62] = { SimdAlign = AlignSizeX2 },
	[isize; 63] = { SimdAlign = AlignSizeX1 },
	[isize; 64] = { SimdAlign = AlignSizeX64 },

	[f16; 01] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 02] = { SimdAlign = AlignByteX4 }   = "f16",
	[f16; 03] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 04] = { SimdAlign = AlignByteX8 }   = "f16",
	[f16; 05] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 06] = { SimdAlign = AlignByteX4 }   = "f16",
	[f16; 07] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 08] = { SimdAlign = AlignByteX16 }  = "f16",
	[f16; 09] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 10] = { SimdAlign = AlignByteX4 }   = "f16",
	[f16; 11] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 12] = { SimdAlign = AlignByteX8 }   = "f16",
	[f16; 13] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 14] = { SimdAlign = AlignByteX4 }   = "f16",
	[f16; 15] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 16] = { SimdAlign = AlignByteX32 }  = "f16",
	[f16; 17] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 18] = { SimdAlign = AlignByteX4 }   = "f16",
	[f16; 19] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 20] = { SimdAlign = AlignByteX8 }   = "f16",
	[f16; 21] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 22] = { SimdAlign = AlignByteX4 }   = "f16",
	[f16; 23] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 24] = { SimdAlign = AlignByteX16 }  = "f16",
	[f16; 25] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 26] = { SimdAlign = AlignByteX4 }   = "f16",
	[f16; 27] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 28] = { SimdAlign = AlignByteX8 }   = "f16",
	[f16; 29] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 30] = { SimdAlign = AlignByteX4 }   = "f16",
	[f16; 31] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 32] = { SimdAlign = AlignByteX64 }  = "f16",
	[f16; 33] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 34] = { SimdAlign = AlignByteX4 }   = "f16",
	[f16; 35] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 36] = { SimdAlign = AlignByteX8 }   = "f16",
	[f16; 37] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 38] = { SimdAlign = AlignByteX4 }   = "f16",
	[f16; 39] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 40] = { SimdAlign = AlignByteX16 }  = "f16",
	[f16; 41] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 42] = { SimdAlign = AlignByteX4 }   = "f16",
	[f16; 43] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 44] = { SimdAlign = AlignByteX8 }   = "f16",
	[f16; 45] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 46] = { SimdAlign = AlignByteX4 }   = "f16",
	[f16; 47] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 48] = { SimdAlign = AlignByteX32 }  = "f16",
	[f16; 49] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 50] = { SimdAlign = AlignByteX4 }   = "f16",
	[f16; 51] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 52] = { SimdAlign = AlignByteX8 }   = "f16",
	[f16; 53] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 54] = { SimdAlign = AlignByteX4 }   = "f16",
	[f16; 55] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 56] = { SimdAlign = AlignByteX16 }  = "f16",
	[f16; 57] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 58] = { SimdAlign = AlignByteX4 }   = "f16",
	[f16; 59] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 60] = { SimdAlign = AlignByteX8 }   = "f16",
	[f16; 61] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 62] = { SimdAlign = AlignByteX4 }   = "f16",
	[f16; 63] = { SimdAlign = AlignByteX2 }   = "f16",
	[f16; 64] = { SimdAlign = AlignByteX128 } = "f16",

	[f32; 01] = { SimdAlign = AlignByteX4 },
	[f32; 02] = { SimdAlign = AlignByteX8 },
	[f32; 03] = { SimdAlign = AlignByteX4 },
	[f32; 04] = { SimdAlign = AlignByteX16 },
	[f32; 05] = { SimdAlign = AlignByteX4 },
	[f32; 06] = { SimdAlign = AlignByteX8 },
	[f32; 07] = { SimdAlign = AlignByteX4 },
	[f32; 08] = { SimdAlign = AlignByteX32 },
	[f32; 09] = { SimdAlign = AlignByteX4 },
	[f32; 10] = { SimdAlign = AlignByteX8 },
	[f32; 11] = { SimdAlign = AlignByteX4 },
	[f32; 12] = { SimdAlign = AlignByteX16 },
	[f32; 13] = { SimdAlign = AlignByteX4 },
	[f32; 14] = { SimdAlign = AlignByteX8 },
	[f32; 15] = { SimdAlign = AlignByteX4 },
	[f32; 16] = { SimdAlign = AlignByteX64 },
	[f32; 17] = { SimdAlign = AlignByteX4 },
	[f32; 18] = { SimdAlign = AlignByteX8 },
	[f32; 19] = { SimdAlign = AlignByteX4 },
	[f32; 20] = { SimdAlign = AlignByteX16 },
	[f32; 21] = { SimdAlign = AlignByteX4 },
	[f32; 22] = { SimdAlign = AlignByteX8 },
	[f32; 23] = { SimdAlign = AlignByteX4 },
	[f32; 24] = { SimdAlign = AlignByteX32 },
	[f32; 25] = { SimdAlign = AlignByteX4 },
	[f32; 26] = { SimdAlign = AlignByteX8 },
	[f32; 27] = { SimdAlign = AlignByteX4 },
	[f32; 28] = { SimdAlign = AlignByteX16 },
	[f32; 29] = { SimdAlign = AlignByteX4 },
	[f32; 30] = { SimdAlign = AlignByteX8 },
	[f32; 31] = { SimdAlign = AlignByteX4 },
	[f32; 32] = { SimdAlign = AlignByteX128 },
	[f32; 33] = { SimdAlign = AlignByteX4 },
	[f32; 34] = { SimdAlign = AlignByteX8 },
	[f32; 35] = { SimdAlign = AlignByteX4 },
	[f32; 36] = { SimdAlign = AlignByteX16 },
	[f32; 37] = { SimdAlign = AlignByteX4 },
	[f32; 38] = { SimdAlign = AlignByteX8 },
	[f32; 39] = { SimdAlign = AlignByteX4 },
	[f32; 40] = { SimdAlign = AlignByteX32 },
	[f32; 41] = { SimdAlign = AlignByteX4 },
	[f32; 42] = { SimdAlign = AlignByteX8 },
	[f32; 43] = { SimdAlign = AlignByteX4 },
	[f32; 44] = { SimdAlign = AlignByteX16 },
	[f32; 45] = { SimdAlign = AlignByteX4 },
	[f32; 46] = { SimdAlign = AlignByteX8 },
	[f32; 47] = { SimdAlign = AlignByteX4 },
	[f32; 48] = { SimdAlign = AlignByteX64 },
	[f32; 49] = { SimdAlign = AlignByteX4 },
	[f32; 50] = { SimdAlign = AlignByteX8 },
	[f32; 51] = { SimdAlign = AlignByteX4 },
	[f32; 52] = { SimdAlign = AlignByteX16 },
	[f32; 53] = { SimdAlign = AlignByteX4 },
	[f32; 54] = { SimdAlign = AlignByteX8 },
	[f32; 55] = { SimdAlign = AlignByteX4 },
	[f32; 56] = { SimdAlign = AlignByteX32 },
	[f32; 57] = { SimdAlign = AlignByteX4 },
	[f32; 58] = { SimdAlign = AlignByteX8 },
	[f32; 59] = { SimdAlign = AlignByteX4 },
	[f32; 60] = { SimdAlign = AlignByteX16 },
	[f32; 61] = { SimdAlign = AlignByteX4 },
	[f32; 62] = { SimdAlign = AlignByteX8 },
	[f32; 63] = { SimdAlign = AlignByteX4 },
	[f32; 64] = { SimdAlign = AlignByteX256 },

	[f64; 01] = { SimdAlign = AlignByteX8 },
	[f64; 02] = { SimdAlign = AlignByteX16 },
	[f64; 03] = { SimdAlign = AlignByteX8 },
	[f64; 04] = { SimdAlign = AlignByteX32 },
	[f64; 05] = { SimdAlign = AlignByteX8 },
	[f64; 06] = { SimdAlign = AlignByteX16 },
	[f64; 07] = { SimdAlign = AlignByteX8 },
	[f64; 08] = { SimdAlign = AlignByteX64 },
	[f64; 09] = { SimdAlign = AlignByteX8 },
	[f64; 10] = { SimdAlign = AlignByteX16 },
	[f64; 11] = { SimdAlign = AlignByteX8 },
	[f64; 12] = { SimdAlign = AlignByteX32 },
	[f64; 13] = { SimdAlign = AlignByteX8 },
	[f64; 14] = { SimdAlign = AlignByteX16 },
	[f64; 15] = { SimdAlign = AlignByteX8 },
	[f64; 16] = { SimdAlign = AlignByteX128 },
	[f64; 17] = { SimdAlign = AlignByteX8 },
	[f64; 18] = { SimdAlign = AlignByteX16 },
	[f64; 19] = { SimdAlign = AlignByteX8 },
	[f64; 20] = { SimdAlign = AlignByteX32 },
	[f64; 21] = { SimdAlign = AlignByteX8 },
	[f64; 22] = { SimdAlign = AlignByteX16 },
	[f64; 23] = { SimdAlign = AlignByteX8 },
	[f64; 24] = { SimdAlign = AlignByteX64 },
	[f64; 25] = { SimdAlign = AlignByteX8 },
	[f64; 26] = { SimdAlign = AlignByteX16 },
	[f64; 27] = { SimdAlign = AlignByteX8 },
	[f64; 28] = { SimdAlign = AlignByteX32 },
	[f64; 29] = { SimdAlign = AlignByteX8 },
	[f64; 30] = { SimdAlign = AlignByteX16 },
	[f64; 31] = { SimdAlign = AlignByteX8 },
	[f64; 32] = { SimdAlign = AlignByteX256 },
	[f64; 33] = { SimdAlign = AlignByteX8 },
	[f64; 34] = { SimdAlign = AlignByteX16 },
	[f64; 35] = { SimdAlign = AlignByteX8 },
	[f64; 36] = { SimdAlign = AlignByteX32 },
	[f64; 37] = { SimdAlign = AlignByteX8 },
	[f64; 38] = { SimdAlign = AlignByteX16 },
	[f64; 39] = { SimdAlign = AlignByteX8 },
	[f64; 40] = { SimdAlign = AlignByteX64 },
	[f64; 41] = { SimdAlign = AlignByteX8 },
	[f64; 42] = { SimdAlign = AlignByteX16 },
	[f64; 43] = { SimdAlign = AlignByteX8 },
	[f64; 44] = { SimdAlign = AlignByteX32 },
	[f64; 45] = { SimdAlign = AlignByteX8 },
	[f64; 46] = { SimdAlign = AlignByteX16 },
	[f64; 47] = { SimdAlign = AlignByteX8 },
	[f64; 48] = { SimdAlign = AlignByteX128 },
	[f64; 49] = { SimdAlign = AlignByteX8 },
	[f64; 50] = { SimdAlign = AlignByteX16 },
	[f64; 51] = { SimdAlign = AlignByteX8 },
	[f64; 52] = { SimdAlign = AlignByteX32 },
	[f64; 53] = { SimdAlign = AlignByteX8 },
	[f64; 54] = { SimdAlign = AlignByteX16 },
	[f64; 55] = { SimdAlign = AlignByteX8 },
	[f64; 56] = { SimdAlign = AlignByteX64 },
	[f64; 57] = { SimdAlign = AlignByteX8 },
	[f64; 58] = { SimdAlign = AlignByteX16 },
	[f64; 59] = { SimdAlign = AlignByteX8 },
	[f64; 60] = { SimdAlign = AlignByteX32 },
	[f64; 61] = { SimdAlign = AlignByteX8 },
	[f64; 62] = { SimdAlign = AlignByteX16 },
	[f64; 63] = { SimdAlign = AlignByteX8 },
	[f64; 64] = { SimdAlign = AlignByteX512 },

	[f128; 01] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 02] = { SimdAlign = AlignByteX32 }   = "f128",
	[f128; 03] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 04] = { SimdAlign = AlignByteX64 }   = "f128",
	[f128; 05] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 06] = { SimdAlign = AlignByteX32 }   = "f128",
	[f128; 07] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 08] = { SimdAlign = AlignByteX128 }  = "f128",
	[f128; 09] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 10] = { SimdAlign = AlignByteX32 }   = "f128",
	[f128; 11] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 12] = { SimdAlign = AlignByteX64 }   = "f128",
	[f128; 13] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 14] = { SimdAlign = AlignByteX32 }   = "f128",
	[f128; 15] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 16] = { SimdAlign = AlignByteX256 }  = "f128",
	[f128; 17] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 18] = { SimdAlign = AlignByteX32 }   = "f128",
	[f128; 19] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 20] = { SimdAlign = AlignByteX64 }   = "f128",
	[f128; 21] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 22] = { SimdAlign = AlignByteX32 }   = "f128",
	[f128; 23] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 24] = { SimdAlign = AlignByteX128 }  = "f128",
	[f128; 25] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 26] = { SimdAlign = AlignByteX32 }   = "f128",
	[f128; 27] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 28] = { SimdAlign = AlignByteX64 }   = "f128",
	[f128; 29] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 30] = { SimdAlign = AlignByteX32 }   = "f128",
	[f128; 31] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 32] = { SimdAlign = AlignByteX512 }  = "f128",
	[f128; 33] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 34] = { SimdAlign = AlignByteX32 }   = "f128",
	[f128; 35] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 36] = { SimdAlign = AlignByteX64 }   = "f128",
	[f128; 37] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 38] = { SimdAlign = AlignByteX32 }   = "f128",
	[f128; 39] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 40] = { SimdAlign = AlignByteX128 }  = "f128",
	[f128; 41] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 42] = { SimdAlign = AlignByteX32 }   = "f128",
	[f128; 43] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 44] = { SimdAlign = AlignByteX64 }   = "f128",
	[f128; 45] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 46] = { SimdAlign = AlignByteX32 }   = "f128",
	[f128; 47] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 48] = { SimdAlign = AlignByteX256 }  = "f128",
	[f128; 49] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 50] = { SimdAlign = AlignByteX32 }   = "f128",
	[f128; 51] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 52] = { SimdAlign = AlignByteX64 }   = "f128",
	[f128; 53] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 54] = { SimdAlign = AlignByteX32 }   = "f128",
	[f128; 55] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 56] = { SimdAlign = AlignByteX128 }  = "f128",
	[f128; 57] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 58] = { SimdAlign = AlignByteX32 }   = "f128",
	[f128; 59] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 60] = { SimdAlign = AlignByteX64 }   = "f128",
	[f128; 61] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 62] = { SimdAlign = AlignByteX32 }   = "f128",
	[f128; 63] = { SimdAlign = AlignByteX16 }   = "f128",
	[f128; 64] = { SimdAlign = AlignByteX1024 } = "f128",
}

valid_const_ptr_layouts! {
	[*const _; 01] = { SimdAlign = AlignSizeX1 },
	[*const _; 02] = { SimdAlign = AlignSizeX2 },
	[*const _; 03] = { SimdAlign = AlignSizeX1 },
	[*const _; 04] = { SimdAlign = AlignSizeX4 },
	[*const _; 05] = { SimdAlign = AlignSizeX1 },
	[*const _; 06] = { SimdAlign = AlignSizeX2 },
	[*const _; 07] = { SimdAlign = AlignSizeX1 },
	[*const _; 08] = { SimdAlign = AlignSizeX8 },
	[*const _; 09] = { SimdAlign = AlignSizeX1 },
	[*const _; 10] = { SimdAlign = AlignSizeX2 },
	[*const _; 11] = { SimdAlign = AlignSizeX1 },
	[*const _; 12] = { SimdAlign = AlignSizeX4 },
	[*const _; 13] = { SimdAlign = AlignSizeX1 },
	[*const _; 14] = { SimdAlign = AlignSizeX2 },
	[*const _; 15] = { SimdAlign = AlignSizeX1 },
	[*const _; 16] = { SimdAlign = AlignSizeX16 },
	[*const _; 17] = { SimdAlign = AlignSizeX1 },
	[*const _; 18] = { SimdAlign = AlignSizeX2 },
	[*const _; 19] = { SimdAlign = AlignSizeX1 },
	[*const _; 20] = { SimdAlign = AlignSizeX4 },
	[*const _; 21] = { SimdAlign = AlignSizeX1 },
	[*const _; 22] = { SimdAlign = AlignSizeX2 },
	[*const _; 23] = { SimdAlign = AlignSizeX1 },
	[*const _; 24] = { SimdAlign = AlignSizeX8 },
	[*const _; 25] = { SimdAlign = AlignSizeX1 },
	[*const _; 26] = { SimdAlign = AlignSizeX2 },
	[*const _; 27] = { SimdAlign = AlignSizeX1 },
	[*const _; 28] = { SimdAlign = AlignSizeX4 },
	[*const _; 29] = { SimdAlign = AlignSizeX1 },
	[*const _; 30] = { SimdAlign = AlignSizeX2 },
	[*const _; 31] = { SimdAlign = AlignSizeX1 },
	[*const _; 32] = { SimdAlign = AlignSizeX32 },
	[*const _; 33] = { SimdAlign = AlignSizeX1 },
	[*const _; 34] = { SimdAlign = AlignSizeX2 },
	[*const _; 35] = { SimdAlign = AlignSizeX1 },
	[*const _; 36] = { SimdAlign = AlignSizeX4 },
	[*const _; 37] = { SimdAlign = AlignSizeX1 },
	[*const _; 38] = { SimdAlign = AlignSizeX2 },
	[*const _; 39] = { SimdAlign = AlignSizeX1 },
	[*const _; 40] = { SimdAlign = AlignSizeX8 },
	[*const _; 41] = { SimdAlign = AlignSizeX1 },
	[*const _; 42] = { SimdAlign = AlignSizeX2 },
	[*const _; 43] = { SimdAlign = AlignSizeX1 },
	[*const _; 44] = { SimdAlign = AlignSizeX4 },
	[*const _; 45] = { SimdAlign = AlignSizeX1 },
	[*const _; 46] = { SimdAlign = AlignSizeX2 },
	[*const _; 47] = { SimdAlign = AlignSizeX1 },
	[*const _; 48] = { SimdAlign = AlignSizeX16 },
	[*const _; 49] = { SimdAlign = AlignSizeX1 },
	[*const _; 50] = { SimdAlign = AlignSizeX2 },
	[*const _; 51] = { SimdAlign = AlignSizeX1 },
	[*const _; 52] = { SimdAlign = AlignSizeX4 },
	[*const _; 53] = { SimdAlign = AlignSizeX1 },
	[*const _; 54] = { SimdAlign = AlignSizeX2 },
	[*const _; 55] = { SimdAlign = AlignSizeX1 },
	[*const _; 56] = { SimdAlign = AlignSizeX8 },
	[*const _; 57] = { SimdAlign = AlignSizeX1 },
	[*const _; 58] = { SimdAlign = AlignSizeX2 },
	[*const _; 59] = { SimdAlign = AlignSizeX1 },
	[*const _; 60] = { SimdAlign = AlignSizeX4 },
	[*const _; 61] = { SimdAlign = AlignSizeX1 },
	[*const _; 62] = { SimdAlign = AlignSizeX2 },
	[*const _; 63] = { SimdAlign = AlignSizeX1 },
	[*const _; 64] = { SimdAlign = AlignSizeX64 },
}

valid_mut_ptr_layouts! {
	[*mut _; 01] = { SimdAlign = AlignSizeX1 },
	[*mut _; 02] = { SimdAlign = AlignSizeX2 },
	[*mut _; 03] = { SimdAlign = AlignSizeX1 },
	[*mut _; 04] = { SimdAlign = AlignSizeX4 },
	[*mut _; 05] = { SimdAlign = AlignSizeX1 },
	[*mut _; 06] = { SimdAlign = AlignSizeX2 },
	[*mut _; 07] = { SimdAlign = AlignSizeX1 },
	[*mut _; 08] = { SimdAlign = AlignSizeX8 },
	[*mut _; 09] = { SimdAlign = AlignSizeX1 },
	[*mut _; 10] = { SimdAlign = AlignSizeX2 },
	[*mut _; 11] = { SimdAlign = AlignSizeX1 },
	[*mut _; 12] = { SimdAlign = AlignSizeX4 },
	[*mut _; 13] = { SimdAlign = AlignSizeX1 },
	[*mut _; 14] = { SimdAlign = AlignSizeX2 },
	[*mut _; 15] = { SimdAlign = AlignSizeX1 },
	[*mut _; 16] = { SimdAlign = AlignSizeX16 },
	[*mut _; 17] = { SimdAlign = AlignSizeX1 },
	[*mut _; 18] = { SimdAlign = AlignSizeX2 },
	[*mut _; 19] = { SimdAlign = AlignSizeX1 },
	[*mut _; 20] = { SimdAlign = AlignSizeX4 },
	[*mut _; 21] = { SimdAlign = AlignSizeX1 },
	[*mut _; 22] = { SimdAlign = AlignSizeX2 },
	[*mut _; 23] = { SimdAlign = AlignSizeX1 },
	[*mut _; 24] = { SimdAlign = AlignSizeX8 },
	[*mut _; 25] = { SimdAlign = AlignSizeX1 },
	[*mut _; 26] = { SimdAlign = AlignSizeX2 },
	[*mut _; 27] = { SimdAlign = AlignSizeX1 },
	[*mut _; 28] = { SimdAlign = AlignSizeX4 },
	[*mut _; 29] = { SimdAlign = AlignSizeX1 },
	[*mut _; 30] = { SimdAlign = AlignSizeX2 },
	[*mut _; 31] = { SimdAlign = AlignSizeX1 },
	[*mut _; 32] = { SimdAlign = AlignSizeX32 },
	[*mut _; 33] = { SimdAlign = AlignSizeX1 },
	[*mut _; 34] = { SimdAlign = AlignSizeX2 },
	[*mut _; 35] = { SimdAlign = AlignSizeX1 },
	[*mut _; 36] = { SimdAlign = AlignSizeX4 },
	[*mut _; 37] = { SimdAlign = AlignSizeX1 },
	[*mut _; 38] = { SimdAlign = AlignSizeX2 },
	[*mut _; 39] = { SimdAlign = AlignSizeX1 },
	[*mut _; 40] = { SimdAlign = AlignSizeX8 },
	[*mut _; 41] = { SimdAlign = AlignSizeX1 },
	[*mut _; 42] = { SimdAlign = AlignSizeX2 },
	[*mut _; 43] = { SimdAlign = AlignSizeX1 },
	[*mut _; 44] = { SimdAlign = AlignSizeX4 },
	[*mut _; 45] = { SimdAlign = AlignSizeX1 },
	[*mut _; 46] = { SimdAlign = AlignSizeX2 },
	[*mut _; 47] = { SimdAlign = AlignSizeX1 },
	[*mut _; 48] = { SimdAlign = AlignSizeX16 },
	[*mut _; 49] = { SimdAlign = AlignSizeX1 },
	[*mut _; 50] = { SimdAlign = AlignSizeX2 },
	[*mut _; 51] = { SimdAlign = AlignSizeX1 },
	[*mut _; 52] = { SimdAlign = AlignSizeX4 },
	[*mut _; 53] = { SimdAlign = AlignSizeX1 },
	[*mut _; 54] = { SimdAlign = AlignSizeX2 },
	[*mut _; 55] = { SimdAlign = AlignSizeX1 },
	[*mut _; 56] = { SimdAlign = AlignSizeX8 },
	[*mut _; 57] = { SimdAlign = AlignSizeX1 },
	[*mut _; 58] = { SimdAlign = AlignSizeX2 },
	[*mut _; 59] = { SimdAlign = AlignSizeX1 },
	[*mut _; 60] = { SimdAlign = AlignSizeX4 },
	[*mut _; 61] = { SimdAlign = AlignSizeX1 },
	[*mut _; 62] = { SimdAlign = AlignSizeX2 },
	[*mut _; 63] = { SimdAlign = AlignSizeX1 },
	[*mut _; 64] = { SimdAlign = AlignSizeX64 },
}