1#![allow(clippy::useless_conversion)]
4
5use crate::{Vec2, Vec3, Vec4, Vec4Swizzles, sealed::Sealed};
6
7#[cfg(target_arch = "x86")]
8use core::arch::x86::*;
9#[cfg(target_arch = "x86_64")]
10use core::arch::x86_64::*;
11
12impl Sealed for Vec4 {}
13
14impl Vec4Swizzles for Vec4 {
15 type Vec2 = Vec2;
16
17 type Vec3 = Vec3;
18
19 #[inline]
20 fn xx(self) -> Vec2 {
21 Vec2 {
22 x: self.x,
23 y: self.x,
24 }
25 }
26
27 #[inline]
28 fn xy(self) -> Vec2 {
29 Vec2 {
30 x: self.x,
31 y: self.y,
32 }
33 }
34
35 #[inline]
36 fn with_xy(self, rhs: Vec2) -> Self {
37 Self::new(rhs.x, rhs.y, self.z, self.w)
38 }
39
40 #[inline]
41 fn xz(self) -> Vec2 {
42 Vec2 {
43 x: self.x,
44 y: self.z,
45 }
46 }
47
48 #[inline]
49 fn with_xz(self, rhs: Vec2) -> Self {
50 Self::new(rhs.x, self.y, rhs.y, self.w)
51 }
52
53 #[inline]
54 fn xw(self) -> Vec2 {
55 Vec2 {
56 x: self.x,
57 y: self.w,
58 }
59 }
60
61 #[inline]
62 fn with_xw(self, rhs: Vec2) -> Self {
63 Self::new(rhs.x, self.y, self.z, rhs.y)
64 }
65
66 #[inline]
67 fn yx(self) -> Vec2 {
68 Vec2 {
69 x: self.y,
70 y: self.x,
71 }
72 }
73
74 #[inline]
75 fn with_yx(self, rhs: Vec2) -> Self {
76 Self::new(rhs.y, rhs.x, self.z, self.w)
77 }
78
79 #[inline]
80 fn yy(self) -> Vec2 {
81 Vec2 {
82 x: self.y,
83 y: self.y,
84 }
85 }
86
87 #[inline]
88 fn yz(self) -> Vec2 {
89 Vec2 {
90 x: self.y,
91 y: self.z,
92 }
93 }
94
95 #[inline]
96 fn with_yz(self, rhs: Vec2) -> Self {
97 Self::new(self.x, rhs.x, rhs.y, self.w)
98 }
99
100 #[inline]
101 fn yw(self) -> Vec2 {
102 Vec2 {
103 x: self.y,
104 y: self.w,
105 }
106 }
107
108 #[inline]
109 fn with_yw(self, rhs: Vec2) -> Self {
110 Self::new(self.x, rhs.x, self.z, rhs.y)
111 }
112
113 #[inline]
114 fn zx(self) -> Vec2 {
115 Vec2 {
116 x: self.z,
117 y: self.x,
118 }
119 }
120
121 #[inline]
122 fn with_zx(self, rhs: Vec2) -> Self {
123 Self::new(rhs.y, self.y, rhs.x, self.w)
124 }
125
126 #[inline]
127 fn zy(self) -> Vec2 {
128 Vec2 {
129 x: self.z,
130 y: self.y,
131 }
132 }
133
134 #[inline]
135 fn with_zy(self, rhs: Vec2) -> Self {
136 Self::new(self.x, rhs.y, rhs.x, self.w)
137 }
138
139 #[inline]
140 fn zz(self) -> Vec2 {
141 Vec2 {
142 x: self.z,
143 y: self.z,
144 }
145 }
146
147 #[inline]
148 fn zw(self) -> Vec2 {
149 Vec2 {
150 x: self.z,
151 y: self.w,
152 }
153 }
154
155 #[inline]
156 fn with_zw(self, rhs: Vec2) -> Self {
157 Self::new(self.x, self.y, rhs.x, rhs.y)
158 }
159
160 #[inline]
161 fn wx(self) -> Vec2 {
162 Vec2 {
163 x: self.w,
164 y: self.x,
165 }
166 }
167
168 #[inline]
169 fn with_wx(self, rhs: Vec2) -> Self {
170 Self::new(rhs.y, self.y, self.z, rhs.x)
171 }
172
173 #[inline]
174 fn wy(self) -> Vec2 {
175 Vec2 {
176 x: self.w,
177 y: self.y,
178 }
179 }
180
181 #[inline]
182 fn with_wy(self, rhs: Vec2) -> Self {
183 Self::new(self.x, rhs.y, self.z, rhs.x)
184 }
185
186 #[inline]
187 fn wz(self) -> Vec2 {
188 Vec2 {
189 x: self.w,
190 y: self.z,
191 }
192 }
193
194 #[inline]
195 fn with_wz(self, rhs: Vec2) -> Self {
196 Self::new(self.x, self.y, rhs.y, rhs.x)
197 }
198
199 #[inline]
200 fn ww(self) -> Vec2 {
201 Vec2 {
202 x: self.w,
203 y: self.w,
204 }
205 }
206
207 #[inline]
208 fn xxx(self) -> Vec3 {
209 Vec3::new(self.x, self.x, self.x)
210 }
211
212 #[inline]
213 fn xxy(self) -> Vec3 {
214 Vec3::new(self.x, self.x, self.y)
215 }
216
217 #[inline]
218 fn xxz(self) -> Vec3 {
219 Vec3::new(self.x, self.x, self.z)
220 }
221
222 #[inline]
223 fn xxw(self) -> Vec3 {
224 Vec3::new(self.x, self.x, self.w)
225 }
226
227 #[inline]
228 fn xyx(self) -> Vec3 {
229 Vec3::new(self.x, self.y, self.x)
230 }
231
232 #[inline]
233 fn xyy(self) -> Vec3 {
234 Vec3::new(self.x, self.y, self.y)
235 }
236
237 #[inline]
238 fn xyz(self) -> Vec3 {
239 Vec3::new(self.x, self.y, self.z)
240 }
241
242 #[inline]
243 fn with_xyz(self, rhs: Vec3) -> Self {
244 Self::new(rhs.x, rhs.y, rhs.z, self.w)
245 }
246
247 #[inline]
248 fn xyw(self) -> Vec3 {
249 Vec3::new(self.x, self.y, self.w)
250 }
251
252 #[inline]
253 fn with_xyw(self, rhs: Vec3) -> Self {
254 Self::new(rhs.x, rhs.y, self.z, rhs.z)
255 }
256
257 #[inline]
258 fn xzx(self) -> Vec3 {
259 Vec3::new(self.x, self.z, self.x)
260 }
261
262 #[inline]
263 fn xzy(self) -> Vec3 {
264 Vec3::new(self.x, self.z, self.y)
265 }
266
267 #[inline]
268 fn with_xzy(self, rhs: Vec3) -> Self {
269 Self::new(rhs.x, rhs.z, rhs.y, self.w)
270 }
271
272 #[inline]
273 fn xzz(self) -> Vec3 {
274 Vec3::new(self.x, self.z, self.z)
275 }
276
277 #[inline]
278 fn xzw(self) -> Vec3 {
279 Vec3::new(self.x, self.z, self.w)
280 }
281
282 #[inline]
283 fn with_xzw(self, rhs: Vec3) -> Self {
284 Self::new(rhs.x, self.y, rhs.y, rhs.z)
285 }
286
287 #[inline]
288 fn xwx(self) -> Vec3 {
289 Vec3::new(self.x, self.w, self.x)
290 }
291
292 #[inline]
293 fn xwy(self) -> Vec3 {
294 Vec3::new(self.x, self.w, self.y)
295 }
296
297 #[inline]
298 fn with_xwy(self, rhs: Vec3) -> Self {
299 Self::new(rhs.x, rhs.z, self.z, rhs.y)
300 }
301
302 #[inline]
303 fn xwz(self) -> Vec3 {
304 Vec3::new(self.x, self.w, self.z)
305 }
306
307 #[inline]
308 fn with_xwz(self, rhs: Vec3) -> Self {
309 Self::new(rhs.x, self.y, rhs.z, rhs.y)
310 }
311
312 #[inline]
313 fn xww(self) -> Vec3 {
314 Vec3::new(self.x, self.w, self.w)
315 }
316
317 #[inline]
318 fn yxx(self) -> Vec3 {
319 Vec3::new(self.y, self.x, self.x)
320 }
321
322 #[inline]
323 fn yxy(self) -> Vec3 {
324 Vec3::new(self.y, self.x, self.y)
325 }
326
327 #[inline]
328 fn yxz(self) -> Vec3 {
329 Vec3::new(self.y, self.x, self.z)
330 }
331
332 #[inline]
333 fn with_yxz(self, rhs: Vec3) -> Self {
334 Self::new(rhs.y, rhs.x, rhs.z, self.w)
335 }
336
337 #[inline]
338 fn yxw(self) -> Vec3 {
339 Vec3::new(self.y, self.x, self.w)
340 }
341
342 #[inline]
343 fn with_yxw(self, rhs: Vec3) -> Self {
344 Self::new(rhs.y, rhs.x, self.z, rhs.z)
345 }
346
347 #[inline]
348 fn yyx(self) -> Vec3 {
349 Vec3::new(self.y, self.y, self.x)
350 }
351
352 #[inline]
353 fn yyy(self) -> Vec3 {
354 Vec3::new(self.y, self.y, self.y)
355 }
356
357 #[inline]
358 fn yyz(self) -> Vec3 {
359 Vec3::new(self.y, self.y, self.z)
360 }
361
362 #[inline]
363 fn yyw(self) -> Vec3 {
364 Vec3::new(self.y, self.y, self.w)
365 }
366
367 #[inline]
368 fn yzx(self) -> Vec3 {
369 Vec3::new(self.y, self.z, self.x)
370 }
371
372 #[inline]
373 fn with_yzx(self, rhs: Vec3) -> Self {
374 Self::new(rhs.z, rhs.x, rhs.y, self.w)
375 }
376
377 #[inline]
378 fn yzy(self) -> Vec3 {
379 Vec3::new(self.y, self.z, self.y)
380 }
381
382 #[inline]
383 fn yzz(self) -> Vec3 {
384 Vec3::new(self.y, self.z, self.z)
385 }
386
387 #[inline]
388 fn yzw(self) -> Vec3 {
389 Vec3::new(self.y, self.z, self.w)
390 }
391
392 #[inline]
393 fn with_yzw(self, rhs: Vec3) -> Self {
394 Self::new(self.x, rhs.x, rhs.y, rhs.z)
395 }
396
397 #[inline]
398 fn ywx(self) -> Vec3 {
399 Vec3::new(self.y, self.w, self.x)
400 }
401
402 #[inline]
403 fn with_ywx(self, rhs: Vec3) -> Self {
404 Self::new(rhs.z, rhs.x, self.z, rhs.y)
405 }
406
407 #[inline]
408 fn ywy(self) -> Vec3 {
409 Vec3::new(self.y, self.w, self.y)
410 }
411
412 #[inline]
413 fn ywz(self) -> Vec3 {
414 Vec3::new(self.y, self.w, self.z)
415 }
416
417 #[inline]
418 fn with_ywz(self, rhs: Vec3) -> Self {
419 Self::new(self.x, rhs.x, rhs.z, rhs.y)
420 }
421
422 #[inline]
423 fn yww(self) -> Vec3 {
424 Vec3::new(self.y, self.w, self.w)
425 }
426
427 #[inline]
428 fn zxx(self) -> Vec3 {
429 Vec3::new(self.z, self.x, self.x)
430 }
431
432 #[inline]
433 fn zxy(self) -> Vec3 {
434 Vec3::new(self.z, self.x, self.y)
435 }
436
437 #[inline]
438 fn with_zxy(self, rhs: Vec3) -> Self {
439 Self::new(rhs.y, rhs.z, rhs.x, self.w)
440 }
441
442 #[inline]
443 fn zxz(self) -> Vec3 {
444 Vec3::new(self.z, self.x, self.z)
445 }
446
447 #[inline]
448 fn zxw(self) -> Vec3 {
449 Vec3::new(self.z, self.x, self.w)
450 }
451
452 #[inline]
453 fn with_zxw(self, rhs: Vec3) -> Self {
454 Self::new(rhs.y, self.y, rhs.x, rhs.z)
455 }
456
457 #[inline]
458 fn zyx(self) -> Vec3 {
459 Vec3::new(self.z, self.y, self.x)
460 }
461
462 #[inline]
463 fn with_zyx(self, rhs: Vec3) -> Self {
464 Self::new(rhs.z, rhs.y, rhs.x, self.w)
465 }
466
467 #[inline]
468 fn zyy(self) -> Vec3 {
469 Vec3::new(self.z, self.y, self.y)
470 }
471
472 #[inline]
473 fn zyz(self) -> Vec3 {
474 Vec3::new(self.z, self.y, self.z)
475 }
476
477 #[inline]
478 fn zyw(self) -> Vec3 {
479 Vec3::new(self.z, self.y, self.w)
480 }
481
482 #[inline]
483 fn with_zyw(self, rhs: Vec3) -> Self {
484 Self::new(self.x, rhs.y, rhs.x, rhs.z)
485 }
486
487 #[inline]
488 fn zzx(self) -> Vec3 {
489 Vec3::new(self.z, self.z, self.x)
490 }
491
492 #[inline]
493 fn zzy(self) -> Vec3 {
494 Vec3::new(self.z, self.z, self.y)
495 }
496
497 #[inline]
498 fn zzz(self) -> Vec3 {
499 Vec3::new(self.z, self.z, self.z)
500 }
501
502 #[inline]
503 fn zzw(self) -> Vec3 {
504 Vec3::new(self.z, self.z, self.w)
505 }
506
507 #[inline]
508 fn zwx(self) -> Vec3 {
509 Vec3::new(self.z, self.w, self.x)
510 }
511
512 #[inline]
513 fn with_zwx(self, rhs: Vec3) -> Self {
514 Self::new(rhs.z, self.y, rhs.x, rhs.y)
515 }
516
517 #[inline]
518 fn zwy(self) -> Vec3 {
519 Vec3::new(self.z, self.w, self.y)
520 }
521
522 #[inline]
523 fn with_zwy(self, rhs: Vec3) -> Self {
524 Self::new(self.x, rhs.z, rhs.x, rhs.y)
525 }
526
527 #[inline]
528 fn zwz(self) -> Vec3 {
529 Vec3::new(self.z, self.w, self.z)
530 }
531
532 #[inline]
533 fn zww(self) -> Vec3 {
534 Vec3::new(self.z, self.w, self.w)
535 }
536
537 #[inline]
538 fn wxx(self) -> Vec3 {
539 Vec3::new(self.w, self.x, self.x)
540 }
541
542 #[inline]
543 fn wxy(self) -> Vec3 {
544 Vec3::new(self.w, self.x, self.y)
545 }
546
547 #[inline]
548 fn with_wxy(self, rhs: Vec3) -> Self {
549 Self::new(rhs.y, rhs.z, self.z, rhs.x)
550 }
551
552 #[inline]
553 fn wxz(self) -> Vec3 {
554 Vec3::new(self.w, self.x, self.z)
555 }
556
557 #[inline]
558 fn with_wxz(self, rhs: Vec3) -> Self {
559 Self::new(rhs.y, self.y, rhs.z, rhs.x)
560 }
561
562 #[inline]
563 fn wxw(self) -> Vec3 {
564 Vec3::new(self.w, self.x, self.w)
565 }
566
567 #[inline]
568 fn wyx(self) -> Vec3 {
569 Vec3::new(self.w, self.y, self.x)
570 }
571
572 #[inline]
573 fn with_wyx(self, rhs: Vec3) -> Self {
574 Self::new(rhs.z, rhs.y, self.z, rhs.x)
575 }
576
577 #[inline]
578 fn wyy(self) -> Vec3 {
579 Vec3::new(self.w, self.y, self.y)
580 }
581
582 #[inline]
583 fn wyz(self) -> Vec3 {
584 Vec3::new(self.w, self.y, self.z)
585 }
586
587 #[inline]
588 fn with_wyz(self, rhs: Vec3) -> Self {
589 Self::new(self.x, rhs.y, rhs.z, rhs.x)
590 }
591
592 #[inline]
593 fn wyw(self) -> Vec3 {
594 Vec3::new(self.w, self.y, self.w)
595 }
596
597 #[inline]
598 fn wzx(self) -> Vec3 {
599 Vec3::new(self.w, self.z, self.x)
600 }
601
602 #[inline]
603 fn with_wzx(self, rhs: Vec3) -> Self {
604 Self::new(rhs.z, self.y, rhs.y, rhs.x)
605 }
606
607 #[inline]
608 fn wzy(self) -> Vec3 {
609 Vec3::new(self.w, self.z, self.y)
610 }
611
612 #[inline]
613 fn with_wzy(self, rhs: Vec3) -> Self {
614 Self::new(self.x, rhs.z, rhs.y, rhs.x)
615 }
616
617 #[inline]
618 fn wzz(self) -> Vec3 {
619 Vec3::new(self.w, self.z, self.z)
620 }
621
622 #[inline]
623 fn wzw(self) -> Vec3 {
624 Vec3::new(self.w, self.z, self.w)
625 }
626
627 #[inline]
628 fn wwx(self) -> Vec3 {
629 Vec3::new(self.w, self.w, self.x)
630 }
631
632 #[inline]
633 fn wwy(self) -> Vec3 {
634 Vec3::new(self.w, self.w, self.y)
635 }
636
637 #[inline]
638 fn wwz(self) -> Vec3 {
639 Vec3::new(self.w, self.w, self.z)
640 }
641
642 #[inline]
643 fn www(self) -> Vec3 {
644 Vec3::new(self.w, self.w, self.w)
645 }
646
647 #[inline]
648 fn xxxx(self) -> Self {
649 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_00_00) })
650 }
651
652 #[inline]
653 fn xxxy(self) -> Self {
654 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_00_00) })
655 }
656
657 #[inline]
658 fn xxxz(self) -> Self {
659 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_00_00) })
660 }
661
662 #[inline]
663 fn xxxw(self) -> Self {
664 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_00_00_00) })
665 }
666
667 #[inline]
668 fn xxyx(self) -> Self {
669 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_00_00) })
670 }
671
672 #[inline]
673 fn xxyy(self) -> Self {
674 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_00_00) })
675 }
676
677 #[inline]
678 fn xxyz(self) -> Self {
679 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_00_00) })
680 }
681
682 #[inline]
683 fn xxyw(self) -> Self {
684 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_01_00_00) })
685 }
686
687 #[inline]
688 fn xxzx(self) -> Self {
689 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_00_00) })
690 }
691
692 #[inline]
693 fn xxzy(self) -> Self {
694 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_00_00) })
695 }
696
697 #[inline]
698 fn xxzz(self) -> Self {
699 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_00_00) })
700 }
701
702 #[inline]
703 fn xxzw(self) -> Self {
704 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_10_00_00) })
705 }
706
707 #[inline]
708 fn xxwx(self) -> Self {
709 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_11_00_00) })
710 }
711
712 #[inline]
713 fn xxwy(self) -> Self {
714 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_11_00_00) })
715 }
716
717 #[inline]
718 fn xxwz(self) -> Self {
719 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_11_00_00) })
720 }
721
722 #[inline]
723 fn xxww(self) -> Self {
724 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_11_00_00) })
725 }
726
727 #[inline]
728 fn xyxx(self) -> Self {
729 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_01_00) })
730 }
731
732 #[inline]
733 fn xyxy(self) -> Self {
734 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_01_00) })
735 }
736
737 #[inline]
738 fn xyxz(self) -> Self {
739 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_01_00) })
740 }
741
742 #[inline]
743 fn xyxw(self) -> Self {
744 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_00_01_00) })
745 }
746
747 #[inline]
748 fn xyyx(self) -> Self {
749 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_01_00) })
750 }
751
752 #[inline]
753 fn xyyy(self) -> Self {
754 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_01_00) })
755 }
756
757 #[inline]
758 fn xyyz(self) -> Self {
759 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_01_00) })
760 }
761
762 #[inline]
763 fn xyyw(self) -> Self {
764 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_01_01_00) })
765 }
766
767 #[inline]
768 fn xyzx(self) -> Self {
769 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_01_00) })
770 }
771
772 #[inline]
773 fn xyzy(self) -> Self {
774 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_01_00) })
775 }
776
777 #[inline]
778 fn xyzz(self) -> Self {
779 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_01_00) })
780 }
781
782 #[inline]
783 fn xywx(self) -> Self {
784 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_11_01_00) })
785 }
786
787 #[inline]
788 fn xywy(self) -> Self {
789 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_11_01_00) })
790 }
791
792 #[inline]
793 fn xywz(self) -> Self {
794 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_11_01_00) })
795 }
796
797 #[inline]
798 fn xyww(self) -> Self {
799 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_11_01_00) })
800 }
801
802 #[inline]
803 fn xzxx(self) -> Self {
804 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_10_00) })
805 }
806
807 #[inline]
808 fn xzxy(self) -> Self {
809 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_10_00) })
810 }
811
812 #[inline]
813 fn xzxz(self) -> Self {
814 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_10_00) })
815 }
816
817 #[inline]
818 fn xzxw(self) -> Self {
819 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_00_10_00) })
820 }
821
822 #[inline]
823 fn xzyx(self) -> Self {
824 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_10_00) })
825 }
826
827 #[inline]
828 fn xzyy(self) -> Self {
829 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_10_00) })
830 }
831
832 #[inline]
833 fn xzyz(self) -> Self {
834 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_10_00) })
835 }
836
837 #[inline]
838 fn xzyw(self) -> Self {
839 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_01_10_00) })
840 }
841
842 #[inline]
843 fn xzzx(self) -> Self {
844 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_10_00) })
845 }
846
847 #[inline]
848 fn xzzy(self) -> Self {
849 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_10_00) })
850 }
851
852 #[inline]
853 fn xzzz(self) -> Self {
854 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_10_00) })
855 }
856
857 #[inline]
858 fn xzzw(self) -> Self {
859 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_10_10_00) })
860 }
861
862 #[inline]
863 fn xzwx(self) -> Self {
864 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_11_10_00) })
865 }
866
867 #[inline]
868 fn xzwy(self) -> Self {
869 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_11_10_00) })
870 }
871
872 #[inline]
873 fn xzwz(self) -> Self {
874 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_11_10_00) })
875 }
876
877 #[inline]
878 fn xzww(self) -> Self {
879 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_11_10_00) })
880 }
881
882 #[inline]
883 fn xwxx(self) -> Self {
884 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_11_00) })
885 }
886
887 #[inline]
888 fn xwxy(self) -> Self {
889 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_11_00) })
890 }
891
892 #[inline]
893 fn xwxz(self) -> Self {
894 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_11_00) })
895 }
896
897 #[inline]
898 fn xwxw(self) -> Self {
899 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_00_11_00) })
900 }
901
902 #[inline]
903 fn xwyx(self) -> Self {
904 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_11_00) })
905 }
906
907 #[inline]
908 fn xwyy(self) -> Self {
909 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_11_00) })
910 }
911
912 #[inline]
913 fn xwyz(self) -> Self {
914 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_11_00) })
915 }
916
917 #[inline]
918 fn xwyw(self) -> Self {
919 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_01_11_00) })
920 }
921
922 #[inline]
923 fn xwzx(self) -> Self {
924 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_11_00) })
925 }
926
927 #[inline]
928 fn xwzy(self) -> Self {
929 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_11_00) })
930 }
931
932 #[inline]
933 fn xwzz(self) -> Self {
934 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_11_00) })
935 }
936
937 #[inline]
938 fn xwzw(self) -> Self {
939 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_10_11_00) })
940 }
941
942 #[inline]
943 fn xwwx(self) -> Self {
944 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_11_11_00) })
945 }
946
947 #[inline]
948 fn xwwy(self) -> Self {
949 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_11_11_00) })
950 }
951
952 #[inline]
953 fn xwwz(self) -> Self {
954 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_11_11_00) })
955 }
956
957 #[inline]
958 fn xwww(self) -> Self {
959 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_11_11_00) })
960 }
961
962 #[inline]
963 fn yxxx(self) -> Self {
964 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_00_01) })
965 }
966
967 #[inline]
968 fn yxxy(self) -> Self {
969 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_00_01) })
970 }
971
972 #[inline]
973 fn yxxz(self) -> Self {
974 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_00_01) })
975 }
976
977 #[inline]
978 fn yxxw(self) -> Self {
979 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_00_00_01) })
980 }
981
982 #[inline]
983 fn yxyx(self) -> Self {
984 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_00_01) })
985 }
986
987 #[inline]
988 fn yxyy(self) -> Self {
989 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_00_01) })
990 }
991
992 #[inline]
993 fn yxyz(self) -> Self {
994 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_00_01) })
995 }
996
997 #[inline]
998 fn yxyw(self) -> Self {
999 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_01_00_01) })
1000 }
1001
1002 #[inline]
1003 fn yxzx(self) -> Self {
1004 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_00_01) })
1005 }
1006
1007 #[inline]
1008 fn yxzy(self) -> Self {
1009 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_00_01) })
1010 }
1011
1012 #[inline]
1013 fn yxzz(self) -> Self {
1014 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_00_01) })
1015 }
1016
1017 #[inline]
1018 fn yxzw(self) -> Self {
1019 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_10_00_01) })
1020 }
1021
1022 #[inline]
1023 fn yxwx(self) -> Self {
1024 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_11_00_01) })
1025 }
1026
1027 #[inline]
1028 fn yxwy(self) -> Self {
1029 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_11_00_01) })
1030 }
1031
1032 #[inline]
1033 fn yxwz(self) -> Self {
1034 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_11_00_01) })
1035 }
1036
1037 #[inline]
1038 fn yxww(self) -> Self {
1039 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_11_00_01) })
1040 }
1041
1042 #[inline]
1043 fn yyxx(self) -> Self {
1044 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_01_01) })
1045 }
1046
1047 #[inline]
1048 fn yyxy(self) -> Self {
1049 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_01_01) })
1050 }
1051
1052 #[inline]
1053 fn yyxz(self) -> Self {
1054 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_01_01) })
1055 }
1056
1057 #[inline]
1058 fn yyxw(self) -> Self {
1059 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_00_01_01) })
1060 }
1061
1062 #[inline]
1063 fn yyyx(self) -> Self {
1064 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_01_01) })
1065 }
1066
1067 #[inline]
1068 fn yyyy(self) -> Self {
1069 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_01_01) })
1070 }
1071
1072 #[inline]
1073 fn yyyz(self) -> Self {
1074 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_01_01) })
1075 }
1076
1077 #[inline]
1078 fn yyyw(self) -> Self {
1079 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_01_01_01) })
1080 }
1081
1082 #[inline]
1083 fn yyzx(self) -> Self {
1084 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_01_01) })
1085 }
1086
1087 #[inline]
1088 fn yyzy(self) -> Self {
1089 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_01_01) })
1090 }
1091
1092 #[inline]
1093 fn yyzz(self) -> Self {
1094 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_01_01) })
1095 }
1096
1097 #[inline]
1098 fn yyzw(self) -> Self {
1099 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_10_01_01) })
1100 }
1101
1102 #[inline]
1103 fn yywx(self) -> Self {
1104 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_11_01_01) })
1105 }
1106
1107 #[inline]
1108 fn yywy(self) -> Self {
1109 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_11_01_01) })
1110 }
1111
1112 #[inline]
1113 fn yywz(self) -> Self {
1114 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_11_01_01) })
1115 }
1116
1117 #[inline]
1118 fn yyww(self) -> Self {
1119 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_11_01_01) })
1120 }
1121
1122 #[inline]
1123 fn yzxx(self) -> Self {
1124 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_10_01) })
1125 }
1126
1127 #[inline]
1128 fn yzxy(self) -> Self {
1129 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_10_01) })
1130 }
1131
1132 #[inline]
1133 fn yzxz(self) -> Self {
1134 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_10_01) })
1135 }
1136
1137 #[inline]
1138 fn yzxw(self) -> Self {
1139 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_00_10_01) })
1140 }
1141
1142 #[inline]
1143 fn yzyx(self) -> Self {
1144 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_10_01) })
1145 }
1146
1147 #[inline]
1148 fn yzyy(self) -> Self {
1149 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_10_01) })
1150 }
1151
1152 #[inline]
1153 fn yzyz(self) -> Self {
1154 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_10_01) })
1155 }
1156
1157 #[inline]
1158 fn yzyw(self) -> Self {
1159 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_01_10_01) })
1160 }
1161
1162 #[inline]
1163 fn yzzx(self) -> Self {
1164 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_10_01) })
1165 }
1166
1167 #[inline]
1168 fn yzzy(self) -> Self {
1169 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_10_01) })
1170 }
1171
1172 #[inline]
1173 fn yzzz(self) -> Self {
1174 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_10_01) })
1175 }
1176
1177 #[inline]
1178 fn yzzw(self) -> Self {
1179 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_10_10_01) })
1180 }
1181
1182 #[inline]
1183 fn yzwx(self) -> Self {
1184 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_11_10_01) })
1185 }
1186
1187 #[inline]
1188 fn yzwy(self) -> Self {
1189 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_11_10_01) })
1190 }
1191
1192 #[inline]
1193 fn yzwz(self) -> Self {
1194 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_11_10_01) })
1195 }
1196
1197 #[inline]
1198 fn yzww(self) -> Self {
1199 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_11_10_01) })
1200 }
1201
1202 #[inline]
1203 fn ywxx(self) -> Self {
1204 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_11_01) })
1205 }
1206
1207 #[inline]
1208 fn ywxy(self) -> Self {
1209 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_11_01) })
1210 }
1211
1212 #[inline]
1213 fn ywxz(self) -> Self {
1214 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_11_01) })
1215 }
1216
1217 #[inline]
1218 fn ywxw(self) -> Self {
1219 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_00_11_01) })
1220 }
1221
1222 #[inline]
1223 fn ywyx(self) -> Self {
1224 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_11_01) })
1225 }
1226
1227 #[inline]
1228 fn ywyy(self) -> Self {
1229 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_11_01) })
1230 }
1231
1232 #[inline]
1233 fn ywyz(self) -> Self {
1234 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_11_01) })
1235 }
1236
1237 #[inline]
1238 fn ywyw(self) -> Self {
1239 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_01_11_01) })
1240 }
1241
1242 #[inline]
1243 fn ywzx(self) -> Self {
1244 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_11_01) })
1245 }
1246
1247 #[inline]
1248 fn ywzy(self) -> Self {
1249 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_11_01) })
1250 }
1251
1252 #[inline]
1253 fn ywzz(self) -> Self {
1254 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_11_01) })
1255 }
1256
1257 #[inline]
1258 fn ywzw(self) -> Self {
1259 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_10_11_01) })
1260 }
1261
1262 #[inline]
1263 fn ywwx(self) -> Self {
1264 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_11_11_01) })
1265 }
1266
1267 #[inline]
1268 fn ywwy(self) -> Self {
1269 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_11_11_01) })
1270 }
1271
1272 #[inline]
1273 fn ywwz(self) -> Self {
1274 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_11_11_01) })
1275 }
1276
1277 #[inline]
1278 fn ywww(self) -> Self {
1279 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_11_11_01) })
1280 }
1281
1282 #[inline]
1283 fn zxxx(self) -> Self {
1284 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_00_10) })
1285 }
1286
1287 #[inline]
1288 fn zxxy(self) -> Self {
1289 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_00_10) })
1290 }
1291
1292 #[inline]
1293 fn zxxz(self) -> Self {
1294 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_00_10) })
1295 }
1296
1297 #[inline]
1298 fn zxxw(self) -> Self {
1299 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_00_00_10) })
1300 }
1301
1302 #[inline]
1303 fn zxyx(self) -> Self {
1304 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_00_10) })
1305 }
1306
1307 #[inline]
1308 fn zxyy(self) -> Self {
1309 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_00_10) })
1310 }
1311
1312 #[inline]
1313 fn zxyz(self) -> Self {
1314 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_00_10) })
1315 }
1316
1317 #[inline]
1318 fn zxyw(self) -> Self {
1319 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_01_00_10) })
1320 }
1321
1322 #[inline]
1323 fn zxzx(self) -> Self {
1324 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_00_10) })
1325 }
1326
1327 #[inline]
1328 fn zxzy(self) -> Self {
1329 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_00_10) })
1330 }
1331
1332 #[inline]
1333 fn zxzz(self) -> Self {
1334 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_00_10) })
1335 }
1336
1337 #[inline]
1338 fn zxzw(self) -> Self {
1339 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_10_00_10) })
1340 }
1341
1342 #[inline]
1343 fn zxwx(self) -> Self {
1344 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_11_00_10) })
1345 }
1346
1347 #[inline]
1348 fn zxwy(self) -> Self {
1349 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_11_00_10) })
1350 }
1351
1352 #[inline]
1353 fn zxwz(self) -> Self {
1354 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_11_00_10) })
1355 }
1356
1357 #[inline]
1358 fn zxww(self) -> Self {
1359 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_11_00_10) })
1360 }
1361
1362 #[inline]
1363 fn zyxx(self) -> Self {
1364 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_01_10) })
1365 }
1366
1367 #[inline]
1368 fn zyxy(self) -> Self {
1369 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_01_10) })
1370 }
1371
1372 #[inline]
1373 fn zyxz(self) -> Self {
1374 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_01_10) })
1375 }
1376
1377 #[inline]
1378 fn zyxw(self) -> Self {
1379 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_00_01_10) })
1380 }
1381
1382 #[inline]
1383 fn zyyx(self) -> Self {
1384 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_01_10) })
1385 }
1386
1387 #[inline]
1388 fn zyyy(self) -> Self {
1389 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_01_10) })
1390 }
1391
1392 #[inline]
1393 fn zyyz(self) -> Self {
1394 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_01_10) })
1395 }
1396
1397 #[inline]
1398 fn zyyw(self) -> Self {
1399 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_01_01_10) })
1400 }
1401
1402 #[inline]
1403 fn zyzx(self) -> Self {
1404 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_01_10) })
1405 }
1406
1407 #[inline]
1408 fn zyzy(self) -> Self {
1409 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_01_10) })
1410 }
1411
1412 #[inline]
1413 fn zyzz(self) -> Self {
1414 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_01_10) })
1415 }
1416
1417 #[inline]
1418 fn zyzw(self) -> Self {
1419 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_10_01_10) })
1420 }
1421
1422 #[inline]
1423 fn zywx(self) -> Self {
1424 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_11_01_10) })
1425 }
1426
1427 #[inline]
1428 fn zywy(self) -> Self {
1429 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_11_01_10) })
1430 }
1431
1432 #[inline]
1433 fn zywz(self) -> Self {
1434 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_11_01_10) })
1435 }
1436
1437 #[inline]
1438 fn zyww(self) -> Self {
1439 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_11_01_10) })
1440 }
1441
1442 #[inline]
1443 fn zzxx(self) -> Self {
1444 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_10_10) })
1445 }
1446
1447 #[inline]
1448 fn zzxy(self) -> Self {
1449 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_10_10) })
1450 }
1451
1452 #[inline]
1453 fn zzxz(self) -> Self {
1454 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_10_10) })
1455 }
1456
1457 #[inline]
1458 fn zzxw(self) -> Self {
1459 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_00_10_10) })
1460 }
1461
1462 #[inline]
1463 fn zzyx(self) -> Self {
1464 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_10_10) })
1465 }
1466
1467 #[inline]
1468 fn zzyy(self) -> Self {
1469 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_10_10) })
1470 }
1471
1472 #[inline]
1473 fn zzyz(self) -> Self {
1474 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_10_10) })
1475 }
1476
1477 #[inline]
1478 fn zzyw(self) -> Self {
1479 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_01_10_10) })
1480 }
1481
1482 #[inline]
1483 fn zzzx(self) -> Self {
1484 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_10_10) })
1485 }
1486
1487 #[inline]
1488 fn zzzy(self) -> Self {
1489 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_10_10) })
1490 }
1491
1492 #[inline]
1493 fn zzzz(self) -> Self {
1494 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_10_10) })
1495 }
1496
1497 #[inline]
1498 fn zzzw(self) -> Self {
1499 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_10_10_10) })
1500 }
1501
1502 #[inline]
1503 fn zzwx(self) -> Self {
1504 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_11_10_10) })
1505 }
1506
1507 #[inline]
1508 fn zzwy(self) -> Self {
1509 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_11_10_10) })
1510 }
1511
1512 #[inline]
1513 fn zzwz(self) -> Self {
1514 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_11_10_10) })
1515 }
1516
1517 #[inline]
1518 fn zzww(self) -> Self {
1519 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_11_10_10) })
1520 }
1521
1522 #[inline]
1523 fn zwxx(self) -> Self {
1524 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_11_10) })
1525 }
1526
1527 #[inline]
1528 fn zwxy(self) -> Self {
1529 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_11_10) })
1530 }
1531
1532 #[inline]
1533 fn zwxz(self) -> Self {
1534 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_11_10) })
1535 }
1536
1537 #[inline]
1538 fn zwxw(self) -> Self {
1539 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_00_11_10) })
1540 }
1541
1542 #[inline]
1543 fn zwyx(self) -> Self {
1544 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_11_10) })
1545 }
1546
1547 #[inline]
1548 fn zwyy(self) -> Self {
1549 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_11_10) })
1550 }
1551
1552 #[inline]
1553 fn zwyz(self) -> Self {
1554 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_11_10) })
1555 }
1556
1557 #[inline]
1558 fn zwyw(self) -> Self {
1559 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_01_11_10) })
1560 }
1561
1562 #[inline]
1563 fn zwzx(self) -> Self {
1564 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_11_10) })
1565 }
1566
1567 #[inline]
1568 fn zwzy(self) -> Self {
1569 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_11_10) })
1570 }
1571
1572 #[inline]
1573 fn zwzz(self) -> Self {
1574 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_11_10) })
1575 }
1576
1577 #[inline]
1578 fn zwzw(self) -> Self {
1579 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_10_11_10) })
1580 }
1581
1582 #[inline]
1583 fn zwwx(self) -> Self {
1584 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_11_11_10) })
1585 }
1586
1587 #[inline]
1588 fn zwwy(self) -> Self {
1589 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_11_11_10) })
1590 }
1591
1592 #[inline]
1593 fn zwwz(self) -> Self {
1594 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_11_11_10) })
1595 }
1596
1597 #[inline]
1598 fn zwww(self) -> Self {
1599 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_11_11_10) })
1600 }
1601
1602 #[inline]
1603 fn wxxx(self) -> Self {
1604 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_00_11) })
1605 }
1606
1607 #[inline]
1608 fn wxxy(self) -> Self {
1609 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_00_11) })
1610 }
1611
1612 #[inline]
1613 fn wxxz(self) -> Self {
1614 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_00_11) })
1615 }
1616
1617 #[inline]
1618 fn wxxw(self) -> Self {
1619 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_00_00_11) })
1620 }
1621
1622 #[inline]
1623 fn wxyx(self) -> Self {
1624 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_00_11) })
1625 }
1626
1627 #[inline]
1628 fn wxyy(self) -> Self {
1629 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_00_11) })
1630 }
1631
1632 #[inline]
1633 fn wxyz(self) -> Self {
1634 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_00_11) })
1635 }
1636
1637 #[inline]
1638 fn wxyw(self) -> Self {
1639 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_01_00_11) })
1640 }
1641
1642 #[inline]
1643 fn wxzx(self) -> Self {
1644 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_00_11) })
1645 }
1646
1647 #[inline]
1648 fn wxzy(self) -> Self {
1649 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_00_11) })
1650 }
1651
1652 #[inline]
1653 fn wxzz(self) -> Self {
1654 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_00_11) })
1655 }
1656
1657 #[inline]
1658 fn wxzw(self) -> Self {
1659 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_10_00_11) })
1660 }
1661
1662 #[inline]
1663 fn wxwx(self) -> Self {
1664 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_11_00_11) })
1665 }
1666
1667 #[inline]
1668 fn wxwy(self) -> Self {
1669 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_11_00_11) })
1670 }
1671
1672 #[inline]
1673 fn wxwz(self) -> Self {
1674 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_11_00_11) })
1675 }
1676
1677 #[inline]
1678 fn wxww(self) -> Self {
1679 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_11_00_11) })
1680 }
1681
1682 #[inline]
1683 fn wyxx(self) -> Self {
1684 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_01_11) })
1685 }
1686
1687 #[inline]
1688 fn wyxy(self) -> Self {
1689 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_01_11) })
1690 }
1691
1692 #[inline]
1693 fn wyxz(self) -> Self {
1694 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_01_11) })
1695 }
1696
1697 #[inline]
1698 fn wyxw(self) -> Self {
1699 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_00_01_11) })
1700 }
1701
1702 #[inline]
1703 fn wyyx(self) -> Self {
1704 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_01_11) })
1705 }
1706
1707 #[inline]
1708 fn wyyy(self) -> Self {
1709 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_01_11) })
1710 }
1711
1712 #[inline]
1713 fn wyyz(self) -> Self {
1714 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_01_11) })
1715 }
1716
1717 #[inline]
1718 fn wyyw(self) -> Self {
1719 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_01_01_11) })
1720 }
1721
1722 #[inline]
1723 fn wyzx(self) -> Self {
1724 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_01_11) })
1725 }
1726
1727 #[inline]
1728 fn wyzy(self) -> Self {
1729 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_01_11) })
1730 }
1731
1732 #[inline]
1733 fn wyzz(self) -> Self {
1734 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_01_11) })
1735 }
1736
1737 #[inline]
1738 fn wyzw(self) -> Self {
1739 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_10_01_11) })
1740 }
1741
1742 #[inline]
1743 fn wywx(self) -> Self {
1744 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_11_01_11) })
1745 }
1746
1747 #[inline]
1748 fn wywy(self) -> Self {
1749 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_11_01_11) })
1750 }
1751
1752 #[inline]
1753 fn wywz(self) -> Self {
1754 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_11_01_11) })
1755 }
1756
1757 #[inline]
1758 fn wyww(self) -> Self {
1759 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_11_01_11) })
1760 }
1761
1762 #[inline]
1763 fn wzxx(self) -> Self {
1764 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_10_11) })
1765 }
1766
1767 #[inline]
1768 fn wzxy(self) -> Self {
1769 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_10_11) })
1770 }
1771
1772 #[inline]
1773 fn wzxz(self) -> Self {
1774 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_10_11) })
1775 }
1776
1777 #[inline]
1778 fn wzxw(self) -> Self {
1779 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_00_10_11) })
1780 }
1781
1782 #[inline]
1783 fn wzyx(self) -> Self {
1784 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_10_11) })
1785 }
1786
1787 #[inline]
1788 fn wzyy(self) -> Self {
1789 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_10_11) })
1790 }
1791
1792 #[inline]
1793 fn wzyz(self) -> Self {
1794 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_10_11) })
1795 }
1796
1797 #[inline]
1798 fn wzyw(self) -> Self {
1799 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_01_10_11) })
1800 }
1801
1802 #[inline]
1803 fn wzzx(self) -> Self {
1804 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_10_11) })
1805 }
1806
1807 #[inline]
1808 fn wzzy(self) -> Self {
1809 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_10_11) })
1810 }
1811
1812 #[inline]
1813 fn wzzz(self) -> Self {
1814 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_10_11) })
1815 }
1816
1817 #[inline]
1818 fn wzzw(self) -> Self {
1819 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_10_10_11) })
1820 }
1821
1822 #[inline]
1823 fn wzwx(self) -> Self {
1824 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_11_10_11) })
1825 }
1826
1827 #[inline]
1828 fn wzwy(self) -> Self {
1829 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_11_10_11) })
1830 }
1831
1832 #[inline]
1833 fn wzwz(self) -> Self {
1834 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_11_10_11) })
1835 }
1836
1837 #[inline]
1838 fn wzww(self) -> Self {
1839 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_11_10_11) })
1840 }
1841
1842 #[inline]
1843 fn wwxx(self) -> Self {
1844 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_11_11) })
1845 }
1846
1847 #[inline]
1848 fn wwxy(self) -> Self {
1849 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_11_11) })
1850 }
1851
1852 #[inline]
1853 fn wwxz(self) -> Self {
1854 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_11_11) })
1855 }
1856
1857 #[inline]
1858 fn wwxw(self) -> Self {
1859 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_00_11_11) })
1860 }
1861
1862 #[inline]
1863 fn wwyx(self) -> Self {
1864 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_11_11) })
1865 }
1866
1867 #[inline]
1868 fn wwyy(self) -> Self {
1869 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_11_11) })
1870 }
1871
1872 #[inline]
1873 fn wwyz(self) -> Self {
1874 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_11_11) })
1875 }
1876
1877 #[inline]
1878 fn wwyw(self) -> Self {
1879 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_01_11_11) })
1880 }
1881
1882 #[inline]
1883 fn wwzx(self) -> Self {
1884 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_11_11) })
1885 }
1886
1887 #[inline]
1888 fn wwzy(self) -> Self {
1889 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_11_11) })
1890 }
1891
1892 #[inline]
1893 fn wwzz(self) -> Self {
1894 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_11_11) })
1895 }
1896
1897 #[inline]
1898 fn wwzw(self) -> Self {
1899 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_10_11_11) })
1900 }
1901
1902 #[inline]
1903 fn wwwx(self) -> Self {
1904 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_11_11_11) })
1905 }
1906
1907 #[inline]
1908 fn wwwy(self) -> Self {
1909 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_11_11_11) })
1910 }
1911
1912 #[inline]
1913 fn wwwz(self) -> Self {
1914 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_11_11_11) })
1915 }
1916
1917 #[inline]
1918 fn wwww(self) -> Self {
1919 Self(unsafe { _mm_shuffle_ps(self.0, self.0, 0b11_11_11_11) })
1920 }
1921}