1#![allow(clippy::useless_conversion)]
4
5use crate::{Vec2, Vec3A, Vec3Swizzles, Vec4};
6
7#[cfg(target_arch = "x86")]
8use core::arch::x86::*;
9#[cfg(target_arch = "x86_64")]
10use core::arch::x86_64::*;
11
12impl Vec3Swizzles for Vec3A {
13 type Vec2 = Vec2;
14
15 type Vec4 = Vec4;
16
17 #[inline]
18 #[must_use]
19 fn xx(self) -> Vec2 {
20 Vec2 {
21 x: self.x,
22 y: self.x,
23 }
24 }
25
26 #[inline]
27 #[must_use]
28 fn xy(self) -> Vec2 {
29 Vec2 {
30 x: self.x,
31 y: self.y,
32 }
33 }
34
35 #[inline]
36 #[must_use]
37 fn xz(self) -> Vec2 {
38 Vec2 {
39 x: self.x,
40 y: self.z,
41 }
42 }
43
44 #[inline]
45 #[must_use]
46 fn yx(self) -> Vec2 {
47 Vec2 {
48 x: self.y,
49 y: self.x,
50 }
51 }
52
53 #[inline]
54 #[must_use]
55 fn yy(self) -> Vec2 {
56 Vec2 {
57 x: self.y,
58 y: self.y,
59 }
60 }
61
62 #[inline]
63 #[must_use]
64 fn yz(self) -> Vec2 {
65 Vec2 {
66 x: self.y,
67 y: self.z,
68 }
69 }
70
71 #[inline]
72 #[must_use]
73 fn zx(self) -> Vec2 {
74 Vec2 {
75 x: self.z,
76 y: self.x,
77 }
78 }
79
80 #[inline]
81 #[must_use]
82 fn zy(self) -> Vec2 {
83 Vec2 {
84 x: self.z,
85 y: self.y,
86 }
87 }
88
89 #[inline]
90 #[must_use]
91 fn zz(self) -> Vec2 {
92 Vec2 {
93 x: self.z,
94 y: self.z,
95 }
96 }
97
98 #[inline]
99 #[must_use]
100 fn xxx(self) -> Vec3A {
101 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_00_00) }).into())
102 }
103
104 #[inline]
105 #[must_use]
106 fn xxy(self) -> Vec3A {
107 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_00_00) }).into())
108 }
109
110 #[inline]
111 #[must_use]
112 fn xxz(self) -> Vec3A {
113 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_00_00) }).into())
114 }
115
116 #[inline]
117 #[must_use]
118 fn xyx(self) -> Vec3A {
119 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_01_00) }).into())
120 }
121
122 #[inline]
123 #[must_use]
124 fn xyy(self) -> Vec3A {
125 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_01_00) }).into())
126 }
127
128 #[inline]
129 #[must_use]
130 fn xzx(self) -> Vec3A {
131 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_10_00) }).into())
132 }
133
134 #[inline]
135 #[must_use]
136 fn xzy(self) -> Vec3A {
137 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_10_00) }).into())
138 }
139
140 #[inline]
141 #[must_use]
142 fn xzz(self) -> Vec3A {
143 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_10_00) }).into())
144 }
145
146 #[inline]
147 #[must_use]
148 fn yxx(self) -> Vec3A {
149 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_00_01) }).into())
150 }
151
152 #[inline]
153 #[must_use]
154 fn yxy(self) -> Vec3A {
155 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_00_01) }).into())
156 }
157
158 #[inline]
159 #[must_use]
160 fn yxz(self) -> Vec3A {
161 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_00_01) }).into())
162 }
163
164 #[inline]
165 #[must_use]
166 fn yyx(self) -> Vec3A {
167 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_01_01) }).into())
168 }
169
170 #[inline]
171 #[must_use]
172 fn yyy(self) -> Vec3A {
173 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_01_01) }).into())
174 }
175
176 #[inline]
177 #[must_use]
178 fn yyz(self) -> Vec3A {
179 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_01_01) }).into())
180 }
181
182 #[inline]
183 #[must_use]
184 fn yzx(self) -> Vec3A {
185 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_10_01) }).into())
186 }
187
188 #[inline]
189 #[must_use]
190 fn yzy(self) -> Vec3A {
191 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_10_01) }).into())
192 }
193
194 #[inline]
195 #[must_use]
196 fn yzz(self) -> Vec3A {
197 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_10_01) }).into())
198 }
199
200 #[inline]
201 #[must_use]
202 fn zxx(self) -> Vec3A {
203 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_00_10) }).into())
204 }
205
206 #[inline]
207 #[must_use]
208 fn zxy(self) -> Vec3A {
209 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_00_10) }).into())
210 }
211
212 #[inline]
213 #[must_use]
214 fn zxz(self) -> Vec3A {
215 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_00_10) }).into())
216 }
217
218 #[inline]
219 #[must_use]
220 fn zyx(self) -> Vec3A {
221 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_01_10) }).into())
222 }
223
224 #[inline]
225 #[must_use]
226 fn zyy(self) -> Vec3A {
227 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_01_10) }).into())
228 }
229
230 #[inline]
231 #[must_use]
232 fn zyz(self) -> Vec3A {
233 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_01_10) }).into())
234 }
235
236 #[inline]
237 #[must_use]
238 fn zzx(self) -> Vec3A {
239 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_10_10) }).into())
240 }
241
242 #[inline]
243 #[must_use]
244 fn zzy(self) -> Vec3A {
245 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_10_10) }).into())
246 }
247
248 #[inline]
249 #[must_use]
250 fn zzz(self) -> Vec3A {
251 Vec3A((unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_10_10) }).into())
252 }
253
254 #[inline]
255 #[must_use]
256 fn xxxx(self) -> Vec4 {
257 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_00_00) })
258 }
259
260 #[inline]
261 #[must_use]
262 fn xxxy(self) -> Vec4 {
263 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_00_00) })
264 }
265
266 #[inline]
267 #[must_use]
268 fn xxxz(self) -> Vec4 {
269 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_00_00) })
270 }
271
272 #[inline]
273 #[must_use]
274 fn xxyx(self) -> Vec4 {
275 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_00_00) })
276 }
277
278 #[inline]
279 #[must_use]
280 fn xxyy(self) -> Vec4 {
281 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_00_00) })
282 }
283
284 #[inline]
285 #[must_use]
286 fn xxyz(self) -> Vec4 {
287 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_00_00) })
288 }
289
290 #[inline]
291 #[must_use]
292 fn xxzx(self) -> Vec4 {
293 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_00_00) })
294 }
295
296 #[inline]
297 #[must_use]
298 fn xxzy(self) -> Vec4 {
299 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_00_00) })
300 }
301
302 #[inline]
303 #[must_use]
304 fn xxzz(self) -> Vec4 {
305 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_00_00) })
306 }
307
308 #[inline]
309 #[must_use]
310 fn xyxx(self) -> Vec4 {
311 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_01_00) })
312 }
313
314 #[inline]
315 #[must_use]
316 fn xyxy(self) -> Vec4 {
317 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_01_00) })
318 }
319
320 #[inline]
321 #[must_use]
322 fn xyxz(self) -> Vec4 {
323 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_01_00) })
324 }
325
326 #[inline]
327 #[must_use]
328 fn xyyx(self) -> Vec4 {
329 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_01_00) })
330 }
331
332 #[inline]
333 #[must_use]
334 fn xyyy(self) -> Vec4 {
335 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_01_00) })
336 }
337
338 #[inline]
339 #[must_use]
340 fn xyyz(self) -> Vec4 {
341 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_01_00) })
342 }
343
344 #[inline]
345 #[must_use]
346 fn xyzx(self) -> Vec4 {
347 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_01_00) })
348 }
349
350 #[inline]
351 #[must_use]
352 fn xyzy(self) -> Vec4 {
353 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_01_00) })
354 }
355
356 #[inline]
357 #[must_use]
358 fn xyzz(self) -> Vec4 {
359 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_01_00) })
360 }
361
362 #[inline]
363 #[must_use]
364 fn xzxx(self) -> Vec4 {
365 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_10_00) })
366 }
367
368 #[inline]
369 #[must_use]
370 fn xzxy(self) -> Vec4 {
371 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_10_00) })
372 }
373
374 #[inline]
375 #[must_use]
376 fn xzxz(self) -> Vec4 {
377 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_10_00) })
378 }
379
380 #[inline]
381 #[must_use]
382 fn xzyx(self) -> Vec4 {
383 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_10_00) })
384 }
385
386 #[inline]
387 #[must_use]
388 fn xzyy(self) -> Vec4 {
389 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_10_00) })
390 }
391
392 #[inline]
393 #[must_use]
394 fn xzyz(self) -> Vec4 {
395 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_10_00) })
396 }
397
398 #[inline]
399 #[must_use]
400 fn xzzx(self) -> Vec4 {
401 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_10_00) })
402 }
403
404 #[inline]
405 #[must_use]
406 fn xzzy(self) -> Vec4 {
407 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_10_00) })
408 }
409
410 #[inline]
411 #[must_use]
412 fn xzzz(self) -> Vec4 {
413 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_10_00) })
414 }
415
416 #[inline]
417 #[must_use]
418 fn yxxx(self) -> Vec4 {
419 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_00_01) })
420 }
421
422 #[inline]
423 #[must_use]
424 fn yxxy(self) -> Vec4 {
425 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_00_01) })
426 }
427
428 #[inline]
429 #[must_use]
430 fn yxxz(self) -> Vec4 {
431 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_00_01) })
432 }
433
434 #[inline]
435 #[must_use]
436 fn yxyx(self) -> Vec4 {
437 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_00_01) })
438 }
439
440 #[inline]
441 #[must_use]
442 fn yxyy(self) -> Vec4 {
443 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_00_01) })
444 }
445
446 #[inline]
447 #[must_use]
448 fn yxyz(self) -> Vec4 {
449 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_00_01) })
450 }
451
452 #[inline]
453 #[must_use]
454 fn yxzx(self) -> Vec4 {
455 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_00_01) })
456 }
457
458 #[inline]
459 #[must_use]
460 fn yxzy(self) -> Vec4 {
461 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_00_01) })
462 }
463
464 #[inline]
465 #[must_use]
466 fn yxzz(self) -> Vec4 {
467 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_00_01) })
468 }
469
470 #[inline]
471 #[must_use]
472 fn yyxx(self) -> Vec4 {
473 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_01_01) })
474 }
475
476 #[inline]
477 #[must_use]
478 fn yyxy(self) -> Vec4 {
479 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_01_01) })
480 }
481
482 #[inline]
483 #[must_use]
484 fn yyxz(self) -> Vec4 {
485 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_01_01) })
486 }
487
488 #[inline]
489 #[must_use]
490 fn yyyx(self) -> Vec4 {
491 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_01_01) })
492 }
493
494 #[inline]
495 #[must_use]
496 fn yyyy(self) -> Vec4 {
497 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_01_01) })
498 }
499
500 #[inline]
501 #[must_use]
502 fn yyyz(self) -> Vec4 {
503 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_01_01) })
504 }
505
506 #[inline]
507 #[must_use]
508 fn yyzx(self) -> Vec4 {
509 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_01_01) })
510 }
511
512 #[inline]
513 #[must_use]
514 fn yyzy(self) -> Vec4 {
515 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_01_01) })
516 }
517
518 #[inline]
519 #[must_use]
520 fn yyzz(self) -> Vec4 {
521 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_01_01) })
522 }
523
524 #[inline]
525 #[must_use]
526 fn yzxx(self) -> Vec4 {
527 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_10_01) })
528 }
529
530 #[inline]
531 #[must_use]
532 fn yzxy(self) -> Vec4 {
533 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_10_01) })
534 }
535
536 #[inline]
537 #[must_use]
538 fn yzxz(self) -> Vec4 {
539 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_10_01) })
540 }
541
542 #[inline]
543 #[must_use]
544 fn yzyx(self) -> Vec4 {
545 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_10_01) })
546 }
547
548 #[inline]
549 #[must_use]
550 fn yzyy(self) -> Vec4 {
551 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_10_01) })
552 }
553
554 #[inline]
555 #[must_use]
556 fn yzyz(self) -> Vec4 {
557 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_10_01) })
558 }
559
560 #[inline]
561 #[must_use]
562 fn yzzx(self) -> Vec4 {
563 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_10_01) })
564 }
565
566 #[inline]
567 #[must_use]
568 fn yzzy(self) -> Vec4 {
569 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_10_01) })
570 }
571
572 #[inline]
573 #[must_use]
574 fn yzzz(self) -> Vec4 {
575 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_10_01) })
576 }
577
578 #[inline]
579 #[must_use]
580 fn zxxx(self) -> Vec4 {
581 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_00_10) })
582 }
583
584 #[inline]
585 #[must_use]
586 fn zxxy(self) -> Vec4 {
587 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_00_10) })
588 }
589
590 #[inline]
591 #[must_use]
592 fn zxxz(self) -> Vec4 {
593 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_00_10) })
594 }
595
596 #[inline]
597 #[must_use]
598 fn zxyx(self) -> Vec4 {
599 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_00_10) })
600 }
601
602 #[inline]
603 #[must_use]
604 fn zxyy(self) -> Vec4 {
605 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_00_10) })
606 }
607
608 #[inline]
609 #[must_use]
610 fn zxyz(self) -> Vec4 {
611 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_00_10) })
612 }
613
614 #[inline]
615 #[must_use]
616 fn zxzx(self) -> Vec4 {
617 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_00_10) })
618 }
619
620 #[inline]
621 #[must_use]
622 fn zxzy(self) -> Vec4 {
623 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_00_10) })
624 }
625
626 #[inline]
627 #[must_use]
628 fn zxzz(self) -> Vec4 {
629 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_00_10) })
630 }
631
632 #[inline]
633 #[must_use]
634 fn zyxx(self) -> Vec4 {
635 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_01_10) })
636 }
637
638 #[inline]
639 #[must_use]
640 fn zyxy(self) -> Vec4 {
641 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_01_10) })
642 }
643
644 #[inline]
645 #[must_use]
646 fn zyxz(self) -> Vec4 {
647 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_01_10) })
648 }
649
650 #[inline]
651 #[must_use]
652 fn zyyx(self) -> Vec4 {
653 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_01_10) })
654 }
655
656 #[inline]
657 #[must_use]
658 fn zyyy(self) -> Vec4 {
659 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_01_10) })
660 }
661
662 #[inline]
663 #[must_use]
664 fn zyyz(self) -> Vec4 {
665 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_01_10) })
666 }
667
668 #[inline]
669 #[must_use]
670 fn zyzx(self) -> Vec4 {
671 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_01_10) })
672 }
673
674 #[inline]
675 #[must_use]
676 fn zyzy(self) -> Vec4 {
677 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_01_10) })
678 }
679
680 #[inline]
681 #[must_use]
682 fn zyzz(self) -> Vec4 {
683 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_01_10) })
684 }
685
686 #[inline]
687 #[must_use]
688 fn zzxx(self) -> Vec4 {
689 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_00_10_10) })
690 }
691
692 #[inline]
693 #[must_use]
694 fn zzxy(self) -> Vec4 {
695 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_00_10_10) })
696 }
697
698 #[inline]
699 #[must_use]
700 fn zzxz(self) -> Vec4 {
701 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_00_10_10) })
702 }
703
704 #[inline]
705 #[must_use]
706 fn zzyx(self) -> Vec4 {
707 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_01_10_10) })
708 }
709
710 #[inline]
711 #[must_use]
712 fn zzyy(self) -> Vec4 {
713 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_01_10_10) })
714 }
715
716 #[inline]
717 #[must_use]
718 fn zzyz(self) -> Vec4 {
719 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_01_10_10) })
720 }
721
722 #[inline]
723 #[must_use]
724 fn zzzx(self) -> Vec4 {
725 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b00_10_10_10) })
726 }
727
728 #[inline]
729 #[must_use]
730 fn zzzy(self) -> Vec4 {
731 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b01_10_10_10) })
732 }
733
734 #[inline]
735 #[must_use]
736 fn zzzz(self) -> Vec4 {
737 Vec4(unsafe { _mm_shuffle_ps(self.0, self.0, 0b10_10_10_10) })
738 }
739}