Skip to main content

glam/swizzles/sse2/
vec4_impl.rs

1// Generated from swizzle_impl.rs.tera template. Edit the template, not the generated file.
2
3#![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}