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