1// pathfinder/simd/src/scalar/swizzle_i32x4.rs
2//
3// Copyright © 2019 The Pathfinder Project Developers.
4//
5// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8// option. This file may not be copied, modified, or distributed
9// except according to those terms.
10
11use crate::scalar::I32x4;
12
13impl I32x4 {
14 /// Constructs a new vector from the first, first, first, and first
15 /// lanes in this vector, respectively.
16 #[inline]
17 pub fn xxxx(self) -> I32x4 {
18 I32x4([self[0], self[0], self[0], self[0]])
19 }
20
21 /// Constructs a new vector from the second, first, first, and first
22 /// lanes in this vector, respectively.
23 #[inline]
24 pub fn yxxx(self) -> I32x4 {
25 I32x4([self[1], self[0], self[0], self[0]])
26 }
27
28 /// Constructs a new vector from the third, first, first, and first
29 /// lanes in this vector, respectively.
30 #[inline]
31 pub fn zxxx(self) -> I32x4 {
32 I32x4([self[2], self[0], self[0], self[0]])
33 }
34
35 /// Constructs a new vector from the fourth, first, first, and first
36 /// lanes in this vector, respectively.
37 #[inline]
38 pub fn wxxx(self) -> I32x4 {
39 I32x4([self[3], self[0], self[0], self[0]])
40 }
41
42 /// Constructs a new vector from the first, second, first, and first
43 /// lanes in this vector, respectively.
44 #[inline]
45 pub fn xyxx(self) -> I32x4 {
46 I32x4([self[0], self[1], self[0], self[0]])
47 }
48
49 /// Constructs a new vector from the second, second, first, and first
50 /// lanes in this vector, respectively.
51 #[inline]
52 pub fn yyxx(self) -> I32x4 {
53 I32x4([self[1], self[1], self[0], self[0]])
54 }
55
56 /// Constructs a new vector from the third, second, first, and first
57 /// lanes in this vector, respectively.
58 #[inline]
59 pub fn zyxx(self) -> I32x4 {
60 I32x4([self[2], self[1], self[0], self[0]])
61 }
62
63 /// Constructs a new vector from the fourth, second, first, and first
64 /// lanes in this vector, respectively.
65 #[inline]
66 pub fn wyxx(self) -> I32x4 {
67 I32x4([self[3], self[1], self[0], self[0]])
68 }
69
70 /// Constructs a new vector from the first, third, first, and first
71 /// lanes in this vector, respectively.
72 #[inline]
73 pub fn xzxx(self) -> I32x4 {
74 I32x4([self[0], self[2], self[0], self[0]])
75 }
76
77 /// Constructs a new vector from the second, third, first, and first
78 /// lanes in this vector, respectively.
79 #[inline]
80 pub fn yzxx(self) -> I32x4 {
81 I32x4([self[1], self[2], self[0], self[0]])
82 }
83
84 /// Constructs a new vector from the third, third, first, and first
85 /// lanes in this vector, respectively.
86 #[inline]
87 pub fn zzxx(self) -> I32x4 {
88 I32x4([self[2], self[2], self[0], self[0]])
89 }
90
91 /// Constructs a new vector from the fourth, third, first, and first
92 /// lanes in this vector, respectively.
93 #[inline]
94 pub fn wzxx(self) -> I32x4 {
95 I32x4([self[3], self[2], self[0], self[0]])
96 }
97
98 /// Constructs a new vector from the first, fourth, first, and first
99 /// lanes in this vector, respectively.
100 #[inline]
101 pub fn xwxx(self) -> I32x4 {
102 I32x4([self[0], self[3], self[0], self[0]])
103 }
104
105 /// Constructs a new vector from the second, fourth, first, and first
106 /// lanes in this vector, respectively.
107 #[inline]
108 pub fn ywxx(self) -> I32x4 {
109 I32x4([self[1], self[3], self[0], self[0]])
110 }
111
112 /// Constructs a new vector from the third, fourth, first, and first
113 /// lanes in this vector, respectively.
114 #[inline]
115 pub fn zwxx(self) -> I32x4 {
116 I32x4([self[2], self[3], self[0], self[0]])
117 }
118
119 /// Constructs a new vector from the fourth, fourth, first, and first
120 /// lanes in this vector, respectively.
121 #[inline]
122 pub fn wwxx(self) -> I32x4 {
123 I32x4([self[3], self[3], self[0], self[0]])
124 }
125
126 /// Constructs a new vector from the first, first, second, and first
127 /// lanes in this vector, respectively.
128 #[inline]
129 pub fn xxyx(self) -> I32x4 {
130 I32x4([self[0], self[0], self[1], self[0]])
131 }
132
133 /// Constructs a new vector from the second, first, second, and first
134 /// lanes in this vector, respectively.
135 #[inline]
136 pub fn yxyx(self) -> I32x4 {
137 I32x4([self[1], self[0], self[1], self[0]])
138 }
139
140 /// Constructs a new vector from the third, first, second, and first
141 /// lanes in this vector, respectively.
142 #[inline]
143 pub fn zxyx(self) -> I32x4 {
144 I32x4([self[2], self[0], self[1], self[0]])
145 }
146
147 /// Constructs a new vector from the fourth, first, second, and first
148 /// lanes in this vector, respectively.
149 #[inline]
150 pub fn wxyx(self) -> I32x4 {
151 I32x4([self[3], self[0], self[1], self[0]])
152 }
153
154 /// Constructs a new vector from the first, second, second, and first
155 /// lanes in this vector, respectively.
156 #[inline]
157 pub fn xyyx(self) -> I32x4 {
158 I32x4([self[0], self[1], self[1], self[0]])
159 }
160
161 /// Constructs a new vector from the second, second, second, and first
162 /// lanes in this vector, respectively.
163 #[inline]
164 pub fn yyyx(self) -> I32x4 {
165 I32x4([self[1], self[1], self[1], self[0]])
166 }
167
168 /// Constructs a new vector from the third, second, second, and first
169 /// lanes in this vector, respectively.
170 #[inline]
171 pub fn zyyx(self) -> I32x4 {
172 I32x4([self[2], self[1], self[1], self[0]])
173 }
174
175 /// Constructs a new vector from the fourth, second, second, and first
176 /// lanes in this vector, respectively.
177 #[inline]
178 pub fn wyyx(self) -> I32x4 {
179 I32x4([self[3], self[1], self[1], self[0]])
180 }
181
182 /// Constructs a new vector from the first, third, second, and first
183 /// lanes in this vector, respectively.
184 #[inline]
185 pub fn xzyx(self) -> I32x4 {
186 I32x4([self[0], self[2], self[1], self[0]])
187 }
188
189 /// Constructs a new vector from the second, third, second, and first
190 /// lanes in this vector, respectively.
191 #[inline]
192 pub fn yzyx(self) -> I32x4 {
193 I32x4([self[1], self[2], self[1], self[0]])
194 }
195
196 /// Constructs a new vector from the third, third, second, and first
197 /// lanes in this vector, respectively.
198 #[inline]
199 pub fn zzyx(self) -> I32x4 {
200 I32x4([self[2], self[2], self[1], self[0]])
201 }
202
203 /// Constructs a new vector from the fourth, third, second, and first
204 /// lanes in this vector, respectively.
205 #[inline]
206 pub fn wzyx(self) -> I32x4 {
207 I32x4([self[3], self[2], self[1], self[0]])
208 }
209
210 /// Constructs a new vector from the first, fourth, second, and first
211 /// lanes in this vector, respectively.
212 #[inline]
213 pub fn xwyx(self) -> I32x4 {
214 I32x4([self[0], self[3], self[1], self[0]])
215 }
216
217 /// Constructs a new vector from the second, fourth, second, and first
218 /// lanes in this vector, respectively.
219 #[inline]
220 pub fn ywyx(self) -> I32x4 {
221 I32x4([self[1], self[3], self[1], self[0]])
222 }
223
224 /// Constructs a new vector from the third, fourth, second, and first
225 /// lanes in this vector, respectively.
226 #[inline]
227 pub fn zwyx(self) -> I32x4 {
228 I32x4([self[2], self[3], self[1], self[0]])
229 }
230
231 /// Constructs a new vector from the fourth, fourth, second, and first
232 /// lanes in this vector, respectively.
233 #[inline]
234 pub fn wwyx(self) -> I32x4 {
235 I32x4([self[3], self[3], self[1], self[0]])
236 }
237
238 /// Constructs a new vector from the first, first, third, and first
239 /// lanes in this vector, respectively.
240 #[inline]
241 pub fn xxzx(self) -> I32x4 {
242 I32x4([self[0], self[0], self[2], self[0]])
243 }
244
245 /// Constructs a new vector from the second, first, third, and first
246 /// lanes in this vector, respectively.
247 #[inline]
248 pub fn yxzx(self) -> I32x4 {
249 I32x4([self[1], self[0], self[2], self[0]])
250 }
251
252 /// Constructs a new vector from the third, first, third, and first
253 /// lanes in this vector, respectively.
254 #[inline]
255 pub fn zxzx(self) -> I32x4 {
256 I32x4([self[2], self[0], self[2], self[0]])
257 }
258
259 /// Constructs a new vector from the fourth, first, third, and first
260 /// lanes in this vector, respectively.
261 #[inline]
262 pub fn wxzx(self) -> I32x4 {
263 I32x4([self[3], self[0], self[2], self[0]])
264 }
265
266 /// Constructs a new vector from the first, second, third, and first
267 /// lanes in this vector, respectively.
268 #[inline]
269 pub fn xyzx(self) -> I32x4 {
270 I32x4([self[0], self[1], self[2], self[0]])
271 }
272
273 /// Constructs a new vector from the second, second, third, and first
274 /// lanes in this vector, respectively.
275 #[inline]
276 pub fn yyzx(self) -> I32x4 {
277 I32x4([self[1], self[1], self[2], self[0]])
278 }
279
280 /// Constructs a new vector from the third, second, third, and first
281 /// lanes in this vector, respectively.
282 #[inline]
283 pub fn zyzx(self) -> I32x4 {
284 I32x4([self[2], self[1], self[2], self[0]])
285 }
286
287 /// Constructs a new vector from the fourth, second, third, and first
288 /// lanes in this vector, respectively.
289 #[inline]
290 pub fn wyzx(self) -> I32x4 {
291 I32x4([self[3], self[1], self[2], self[0]])
292 }
293
294 /// Constructs a new vector from the first, third, third, and first
295 /// lanes in this vector, respectively.
296 #[inline]
297 pub fn xzzx(self) -> I32x4 {
298 I32x4([self[0], self[2], self[2], self[0]])
299 }
300
301 /// Constructs a new vector from the second, third, third, and first
302 /// lanes in this vector, respectively.
303 #[inline]
304 pub fn yzzx(self) -> I32x4 {
305 I32x4([self[1], self[2], self[2], self[0]])
306 }
307
308 /// Constructs a new vector from the third, third, third, and first
309 /// lanes in this vector, respectively.
310 #[inline]
311 pub fn zzzx(self) -> I32x4 {
312 I32x4([self[2], self[2], self[2], self[0]])
313 }
314
315 /// Constructs a new vector from the fourth, third, third, and first
316 /// lanes in this vector, respectively.
317 #[inline]
318 pub fn wzzx(self) -> I32x4 {
319 I32x4([self[3], self[2], self[2], self[0]])
320 }
321
322 /// Constructs a new vector from the first, fourth, third, and first
323 /// lanes in this vector, respectively.
324 #[inline]
325 pub fn xwzx(self) -> I32x4 {
326 I32x4([self[0], self[3], self[2], self[0]])
327 }
328
329 /// Constructs a new vector from the second, fourth, third, and first
330 /// lanes in this vector, respectively.
331 #[inline]
332 pub fn ywzx(self) -> I32x4 {
333 I32x4([self[1], self[3], self[2], self[0]])
334 }
335
336 /// Constructs a new vector from the third, fourth, third, and first
337 /// lanes in this vector, respectively.
338 #[inline]
339 pub fn zwzx(self) -> I32x4 {
340 I32x4([self[2], self[3], self[2], self[0]])
341 }
342
343 /// Constructs a new vector from the fourth, fourth, third, and first
344 /// lanes in this vector, respectively.
345 #[inline]
346 pub fn wwzx(self) -> I32x4 {
347 I32x4([self[3], self[3], self[2], self[0]])
348 }
349
350 /// Constructs a new vector from the first, first, fourth, and first
351 /// lanes in this vector, respectively.
352 #[inline]
353 pub fn xxwx(self) -> I32x4 {
354 I32x4([self[0], self[0], self[3], self[0]])
355 }
356
357 /// Constructs a new vector from the second, first, fourth, and first
358 /// lanes in this vector, respectively.
359 #[inline]
360 pub fn yxwx(self) -> I32x4 {
361 I32x4([self[1], self[0], self[3], self[0]])
362 }
363
364 /// Constructs a new vector from the third, first, fourth, and first
365 /// lanes in this vector, respectively.
366 #[inline]
367 pub fn zxwx(self) -> I32x4 {
368 I32x4([self[2], self[0], self[3], self[0]])
369 }
370
371 /// Constructs a new vector from the fourth, first, fourth, and first
372 /// lanes in this vector, respectively.
373 #[inline]
374 pub fn wxwx(self) -> I32x4 {
375 I32x4([self[3], self[0], self[3], self[0]])
376 }
377
378 /// Constructs a new vector from the first, second, fourth, and first
379 /// lanes in this vector, respectively.
380 #[inline]
381 pub fn xywx(self) -> I32x4 {
382 I32x4([self[0], self[1], self[3], self[0]])
383 }
384
385 /// Constructs a new vector from the second, second, fourth, and first
386 /// lanes in this vector, respectively.
387 #[inline]
388 pub fn yywx(self) -> I32x4 {
389 I32x4([self[1], self[1], self[3], self[0]])
390 }
391
392 /// Constructs a new vector from the third, second, fourth, and first
393 /// lanes in this vector, respectively.
394 #[inline]
395 pub fn zywx(self) -> I32x4 {
396 I32x4([self[2], self[1], self[3], self[0]])
397 }
398
399 /// Constructs a new vector from the fourth, second, fourth, and first
400 /// lanes in this vector, respectively.
401 #[inline]
402 pub fn wywx(self) -> I32x4 {
403 I32x4([self[3], self[1], self[3], self[0]])
404 }
405
406 /// Constructs a new vector from the first, third, fourth, and first
407 /// lanes in this vector, respectively.
408 #[inline]
409 pub fn xzwx(self) -> I32x4 {
410 I32x4([self[0], self[2], self[3], self[0]])
411 }
412
413 /// Constructs a new vector from the second, third, fourth, and first
414 /// lanes in this vector, respectively.
415 #[inline]
416 pub fn yzwx(self) -> I32x4 {
417 I32x4([self[1], self[2], self[3], self[0]])
418 }
419
420 /// Constructs a new vector from the third, third, fourth, and first
421 /// lanes in this vector, respectively.
422 #[inline]
423 pub fn zzwx(self) -> I32x4 {
424 I32x4([self[2], self[2], self[3], self[0]])
425 }
426
427 /// Constructs a new vector from the fourth, third, fourth, and first
428 /// lanes in this vector, respectively.
429 #[inline]
430 pub fn wzwx(self) -> I32x4 {
431 I32x4([self[3], self[2], self[3], self[0]])
432 }
433
434 /// Constructs a new vector from the first, fourth, fourth, and first
435 /// lanes in this vector, respectively.
436 #[inline]
437 pub fn xwwx(self) -> I32x4 {
438 I32x4([self[0], self[3], self[3], self[0]])
439 }
440
441 /// Constructs a new vector from the second, fourth, fourth, and first
442 /// lanes in this vector, respectively.
443 #[inline]
444 pub fn ywwx(self) -> I32x4 {
445 I32x4([self[1], self[3], self[3], self[0]])
446 }
447
448 /// Constructs a new vector from the third, fourth, fourth, and first
449 /// lanes in this vector, respectively.
450 #[inline]
451 pub fn zwwx(self) -> I32x4 {
452 I32x4([self[2], self[3], self[3], self[0]])
453 }
454
455 /// Constructs a new vector from the fourth, fourth, fourth, and first
456 /// lanes in this vector, respectively.
457 #[inline]
458 pub fn wwwx(self) -> I32x4 {
459 I32x4([self[3], self[3], self[3], self[0]])
460 }
461
462 /// Constructs a new vector from the first, first, first, and second
463 /// lanes in this vector, respectively.
464 #[inline]
465 pub fn xxxy(self) -> I32x4 {
466 I32x4([self[0], self[0], self[0], self[1]])
467 }
468
469 /// Constructs a new vector from the second, first, first, and second
470 /// lanes in this vector, respectively.
471 #[inline]
472 pub fn yxxy(self) -> I32x4 {
473 I32x4([self[1], self[0], self[0], self[1]])
474 }
475
476 /// Constructs a new vector from the third, first, first, and second
477 /// lanes in this vector, respectively.
478 #[inline]
479 pub fn zxxy(self) -> I32x4 {
480 I32x4([self[2], self[0], self[0], self[1]])
481 }
482
483 /// Constructs a new vector from the fourth, first, first, and second
484 /// lanes in this vector, respectively.
485 #[inline]
486 pub fn wxxy(self) -> I32x4 {
487 I32x4([self[3], self[0], self[0], self[1]])
488 }
489
490 /// Constructs a new vector from the first, second, first, and second
491 /// lanes in this vector, respectively.
492 #[inline]
493 pub fn xyxy(self) -> I32x4 {
494 I32x4([self[0], self[1], self[0], self[1]])
495 }
496
497 /// Constructs a new vector from the second, second, first, and second
498 /// lanes in this vector, respectively.
499 #[inline]
500 pub fn yyxy(self) -> I32x4 {
501 I32x4([self[1], self[1], self[0], self[1]])
502 }
503
504 /// Constructs a new vector from the third, second, first, and second
505 /// lanes in this vector, respectively.
506 #[inline]
507 pub fn zyxy(self) -> I32x4 {
508 I32x4([self[2], self[1], self[0], self[1]])
509 }
510
511 /// Constructs a new vector from the fourth, second, first, and second
512 /// lanes in this vector, respectively.
513 #[inline]
514 pub fn wyxy(self) -> I32x4 {
515 I32x4([self[3], self[1], self[0], self[1]])
516 }
517
518 /// Constructs a new vector from the first, third, first, and second
519 /// lanes in this vector, respectively.
520 #[inline]
521 pub fn xzxy(self) -> I32x4 {
522 I32x4([self[0], self[2], self[0], self[1]])
523 }
524
525 /// Constructs a new vector from the second, third, first, and second
526 /// lanes in this vector, respectively.
527 #[inline]
528 pub fn yzxy(self) -> I32x4 {
529 I32x4([self[1], self[2], self[0], self[1]])
530 }
531
532 /// Constructs a new vector from the third, third, first, and second
533 /// lanes in this vector, respectively.
534 #[inline]
535 pub fn zzxy(self) -> I32x4 {
536 I32x4([self[2], self[2], self[0], self[1]])
537 }
538
539 /// Constructs a new vector from the fourth, third, first, and second
540 /// lanes in this vector, respectively.
541 #[inline]
542 pub fn wzxy(self) -> I32x4 {
543 I32x4([self[3], self[2], self[0], self[1]])
544 }
545
546 /// Constructs a new vector from the first, fourth, first, and second
547 /// lanes in this vector, respectively.
548 #[inline]
549 pub fn xwxy(self) -> I32x4 {
550 I32x4([self[0], self[3], self[0], self[1]])
551 }
552
553 /// Constructs a new vector from the second, fourth, first, and second
554 /// lanes in this vector, respectively.
555 #[inline]
556 pub fn ywxy(self) -> I32x4 {
557 I32x4([self[1], self[3], self[0], self[1]])
558 }
559
560 /// Constructs a new vector from the third, fourth, first, and second
561 /// lanes in this vector, respectively.
562 #[inline]
563 pub fn zwxy(self) -> I32x4 {
564 I32x4([self[2], self[3], self[0], self[1]])
565 }
566
567 /// Constructs a new vector from the fourth, fourth, first, and second
568 /// lanes in this vector, respectively.
569 #[inline]
570 pub fn wwxy(self) -> I32x4 {
571 I32x4([self[3], self[3], self[0], self[1]])
572 }
573
574 /// Constructs a new vector from the first, first, second, and second
575 /// lanes in this vector, respectively.
576 #[inline]
577 pub fn xxyy(self) -> I32x4 {
578 I32x4([self[0], self[0], self[1], self[1]])
579 }
580
581 /// Constructs a new vector from the second, first, second, and second
582 /// lanes in this vector, respectively.
583 #[inline]
584 pub fn yxyy(self) -> I32x4 {
585 I32x4([self[1], self[0], self[1], self[1]])
586 }
587
588 /// Constructs a new vector from the third, first, second, and second
589 /// lanes in this vector, respectively.
590 #[inline]
591 pub fn zxyy(self) -> I32x4 {
592 I32x4([self[2], self[0], self[1], self[1]])
593 }
594
595 /// Constructs a new vector from the fourth, first, second, and second
596 /// lanes in this vector, respectively.
597 #[inline]
598 pub fn wxyy(self) -> I32x4 {
599 I32x4([self[3], self[0], self[1], self[1]])
600 }
601
602 /// Constructs a new vector from the first, second, second, and second
603 /// lanes in this vector, respectively.
604 #[inline]
605 pub fn xyyy(self) -> I32x4 {
606 I32x4([self[0], self[1], self[1], self[1]])
607 }
608
609 /// Constructs a new vector from the second, second, second, and second
610 /// lanes in this vector, respectively.
611 #[inline]
612 pub fn yyyy(self) -> I32x4 {
613 I32x4([self[1], self[1], self[1], self[1]])
614 }
615
616 /// Constructs a new vector from the third, second, second, and second
617 /// lanes in this vector, respectively.
618 #[inline]
619 pub fn zyyy(self) -> I32x4 {
620 I32x4([self[2], self[1], self[1], self[1]])
621 }
622
623 /// Constructs a new vector from the fourth, second, second, and second
624 /// lanes in this vector, respectively.
625 #[inline]
626 pub fn wyyy(self) -> I32x4 {
627 I32x4([self[3], self[1], self[1], self[1]])
628 }
629
630 /// Constructs a new vector from the first, third, second, and second
631 /// lanes in this vector, respectively.
632 #[inline]
633 pub fn xzyy(self) -> I32x4 {
634 I32x4([self[0], self[2], self[1], self[1]])
635 }
636
637 /// Constructs a new vector from the second, third, second, and second
638 /// lanes in this vector, respectively.
639 #[inline]
640 pub fn yzyy(self) -> I32x4 {
641 I32x4([self[1], self[2], self[1], self[1]])
642 }
643
644 /// Constructs a new vector from the third, third, second, and second
645 /// lanes in this vector, respectively.
646 #[inline]
647 pub fn zzyy(self) -> I32x4 {
648 I32x4([self[2], self[2], self[1], self[1]])
649 }
650
651 /// Constructs a new vector from the fourth, third, second, and second
652 /// lanes in this vector, respectively.
653 #[inline]
654 pub fn wzyy(self) -> I32x4 {
655 I32x4([self[3], self[2], self[1], self[1]])
656 }
657
658 /// Constructs a new vector from the first, fourth, second, and second
659 /// lanes in this vector, respectively.
660 #[inline]
661 pub fn xwyy(self) -> I32x4 {
662 I32x4([self[0], self[3], self[1], self[1]])
663 }
664
665 /// Constructs a new vector from the second, fourth, second, and second
666 /// lanes in this vector, respectively.
667 #[inline]
668 pub fn ywyy(self) -> I32x4 {
669 I32x4([self[1], self[3], self[1], self[1]])
670 }
671
672 /// Constructs a new vector from the third, fourth, second, and second
673 /// lanes in this vector, respectively.
674 #[inline]
675 pub fn zwyy(self) -> I32x4 {
676 I32x4([self[2], self[3], self[1], self[1]])
677 }
678
679 /// Constructs a new vector from the fourth, fourth, second, and second
680 /// lanes in this vector, respectively.
681 #[inline]
682 pub fn wwyy(self) -> I32x4 {
683 I32x4([self[3], self[3], self[1], self[1]])
684 }
685
686 /// Constructs a new vector from the first, first, third, and second
687 /// lanes in this vector, respectively.
688 #[inline]
689 pub fn xxzy(self) -> I32x4 {
690 I32x4([self[0], self[0], self[2], self[1]])
691 }
692
693 /// Constructs a new vector from the second, first, third, and second
694 /// lanes in this vector, respectively.
695 #[inline]
696 pub fn yxzy(self) -> I32x4 {
697 I32x4([self[1], self[0], self[2], self[1]])
698 }
699
700 /// Constructs a new vector from the third, first, third, and second
701 /// lanes in this vector, respectively.
702 #[inline]
703 pub fn zxzy(self) -> I32x4 {
704 I32x4([self[2], self[0], self[2], self[1]])
705 }
706
707 /// Constructs a new vector from the fourth, first, third, and second
708 /// lanes in this vector, respectively.
709 #[inline]
710 pub fn wxzy(self) -> I32x4 {
711 I32x4([self[3], self[0], self[2], self[1]])
712 }
713
714 /// Constructs a new vector from the first, second, third, and second
715 /// lanes in this vector, respectively.
716 #[inline]
717 pub fn xyzy(self) -> I32x4 {
718 I32x4([self[0], self[1], self[2], self[1]])
719 }
720
721 /// Constructs a new vector from the second, second, third, and second
722 /// lanes in this vector, respectively.
723 #[inline]
724 pub fn yyzy(self) -> I32x4 {
725 I32x4([self[1], self[1], self[2], self[1]])
726 }
727
728 /// Constructs a new vector from the third, second, third, and second
729 /// lanes in this vector, respectively.
730 #[inline]
731 pub fn zyzy(self) -> I32x4 {
732 I32x4([self[2], self[1], self[2], self[1]])
733 }
734
735 /// Constructs a new vector from the fourth, second, third, and second
736 /// lanes in this vector, respectively.
737 #[inline]
738 pub fn wyzy(self) -> I32x4 {
739 I32x4([self[3], self[1], self[2], self[1]])
740 }
741
742 /// Constructs a new vector from the first, third, third, and second
743 /// lanes in this vector, respectively.
744 #[inline]
745 pub fn xzzy(self) -> I32x4 {
746 I32x4([self[0], self[2], self[2], self[1]])
747 }
748
749 /// Constructs a new vector from the second, third, third, and second
750 /// lanes in this vector, respectively.
751 #[inline]
752 pub fn yzzy(self) -> I32x4 {
753 I32x4([self[1], self[2], self[2], self[1]])
754 }
755
756 /// Constructs a new vector from the third, third, third, and second
757 /// lanes in this vector, respectively.
758 #[inline]
759 pub fn zzzy(self) -> I32x4 {
760 I32x4([self[2], self[2], self[2], self[1]])
761 }
762
763 /// Constructs a new vector from the fourth, third, third, and second
764 /// lanes in this vector, respectively.
765 #[inline]
766 pub fn wzzy(self) -> I32x4 {
767 I32x4([self[3], self[2], self[2], self[1]])
768 }
769
770 /// Constructs a new vector from the first, fourth, third, and second
771 /// lanes in this vector, respectively.
772 #[inline]
773 pub fn xwzy(self) -> I32x4 {
774 I32x4([self[0], self[3], self[2], self[1]])
775 }
776
777 /// Constructs a new vector from the second, fourth, third, and second
778 /// lanes in this vector, respectively.
779 #[inline]
780 pub fn ywzy(self) -> I32x4 {
781 I32x4([self[1], self[3], self[2], self[1]])
782 }
783
784 /// Constructs a new vector from the third, fourth, third, and second
785 /// lanes in this vector, respectively.
786 #[inline]
787 pub fn zwzy(self) -> I32x4 {
788 I32x4([self[2], self[3], self[2], self[1]])
789 }
790
791 /// Constructs a new vector from the fourth, fourth, third, and second
792 /// lanes in this vector, respectively.
793 #[inline]
794 pub fn wwzy(self) -> I32x4 {
795 I32x4([self[3], self[3], self[2], self[1]])
796 }
797
798 /// Constructs a new vector from the first, first, fourth, and second
799 /// lanes in this vector, respectively.
800 #[inline]
801 pub fn xxwy(self) -> I32x4 {
802 I32x4([self[0], self[0], self[3], self[1]])
803 }
804
805 /// Constructs a new vector from the second, first, fourth, and second
806 /// lanes in this vector, respectively.
807 #[inline]
808 pub fn yxwy(self) -> I32x4 {
809 I32x4([self[1], self[0], self[3], self[1]])
810 }
811
812 /// Constructs a new vector from the third, first, fourth, and second
813 /// lanes in this vector, respectively.
814 #[inline]
815 pub fn zxwy(self) -> I32x4 {
816 I32x4([self[2], self[0], self[3], self[1]])
817 }
818
819 /// Constructs a new vector from the fourth, first, fourth, and second
820 /// lanes in this vector, respectively.
821 #[inline]
822 pub fn wxwy(self) -> I32x4 {
823 I32x4([self[3], self[0], self[3], self[1]])
824 }
825
826 /// Constructs a new vector from the first, second, fourth, and second
827 /// lanes in this vector, respectively.
828 #[inline]
829 pub fn xywy(self) -> I32x4 {
830 I32x4([self[0], self[1], self[3], self[1]])
831 }
832
833 /// Constructs a new vector from the second, second, fourth, and second
834 /// lanes in this vector, respectively.
835 #[inline]
836 pub fn yywy(self) -> I32x4 {
837 I32x4([self[1], self[1], self[3], self[1]])
838 }
839
840 /// Constructs a new vector from the third, second, fourth, and second
841 /// lanes in this vector, respectively.
842 #[inline]
843 pub fn zywy(self) -> I32x4 {
844 I32x4([self[2], self[1], self[3], self[1]])
845 }
846
847 /// Constructs a new vector from the fourth, second, fourth, and second
848 /// lanes in this vector, respectively.
849 #[inline]
850 pub fn wywy(self) -> I32x4 {
851 I32x4([self[3], self[1], self[3], self[1]])
852 }
853
854 /// Constructs a new vector from the first, third, fourth, and second
855 /// lanes in this vector, respectively.
856 #[inline]
857 pub fn xzwy(self) -> I32x4 {
858 I32x4([self[0], self[2], self[3], self[1]])
859 }
860
861 /// Constructs a new vector from the second, third, fourth, and second
862 /// lanes in this vector, respectively.
863 #[inline]
864 pub fn yzwy(self) -> I32x4 {
865 I32x4([self[1], self[2], self[3], self[1]])
866 }
867
868 /// Constructs a new vector from the third, third, fourth, and second
869 /// lanes in this vector, respectively.
870 #[inline]
871 pub fn zzwy(self) -> I32x4 {
872 I32x4([self[2], self[2], self[3], self[1]])
873 }
874
875 /// Constructs a new vector from the fourth, third, fourth, and second
876 /// lanes in this vector, respectively.
877 #[inline]
878 pub fn wzwy(self) -> I32x4 {
879 I32x4([self[3], self[2], self[3], self[1]])
880 }
881
882 /// Constructs a new vector from the first, fourth, fourth, and second
883 /// lanes in this vector, respectively.
884 #[inline]
885 pub fn xwwy(self) -> I32x4 {
886 I32x4([self[0], self[3], self[3], self[1]])
887 }
888
889 /// Constructs a new vector from the second, fourth, fourth, and second
890 /// lanes in this vector, respectively.
891 #[inline]
892 pub fn ywwy(self) -> I32x4 {
893 I32x4([self[1], self[3], self[3], self[1]])
894 }
895
896 /// Constructs a new vector from the third, fourth, fourth, and second
897 /// lanes in this vector, respectively.
898 #[inline]
899 pub fn zwwy(self) -> I32x4 {
900 I32x4([self[2], self[3], self[3], self[1]])
901 }
902
903 /// Constructs a new vector from the fourth, fourth, fourth, and second
904 /// lanes in this vector, respectively.
905 #[inline]
906 pub fn wwwy(self) -> I32x4 {
907 I32x4([self[3], self[3], self[3], self[1]])
908 }
909
910 /// Constructs a new vector from the first, first, first, and third
911 /// lanes in this vector, respectively.
912 #[inline]
913 pub fn xxxz(self) -> I32x4 {
914 I32x4([self[0], self[0], self[0], self[2]])
915 }
916
917 /// Constructs a new vector from the second, first, first, and third
918 /// lanes in this vector, respectively.
919 #[inline]
920 pub fn yxxz(self) -> I32x4 {
921 I32x4([self[1], self[0], self[0], self[2]])
922 }
923
924 /// Constructs a new vector from the third, first, first, and third
925 /// lanes in this vector, respectively.
926 #[inline]
927 pub fn zxxz(self) -> I32x4 {
928 I32x4([self[2], self[0], self[0], self[2]])
929 }
930
931 /// Constructs a new vector from the fourth, first, first, and third
932 /// lanes in this vector, respectively.
933 #[inline]
934 pub fn wxxz(self) -> I32x4 {
935 I32x4([self[3], self[0], self[0], self[2]])
936 }
937
938 /// Constructs a new vector from the first, second, first, and third
939 /// lanes in this vector, respectively.
940 #[inline]
941 pub fn xyxz(self) -> I32x4 {
942 I32x4([self[0], self[1], self[0], self[2]])
943 }
944
945 /// Constructs a new vector from the second, second, first, and third
946 /// lanes in this vector, respectively.
947 #[inline]
948 pub fn yyxz(self) -> I32x4 {
949 I32x4([self[1], self[1], self[0], self[2]])
950 }
951
952 /// Constructs a new vector from the third, second, first, and third
953 /// lanes in this vector, respectively.
954 #[inline]
955 pub fn zyxz(self) -> I32x4 {
956 I32x4([self[2], self[1], self[0], self[2]])
957 }
958
959 /// Constructs a new vector from the fourth, second, first, and third
960 /// lanes in this vector, respectively.
961 #[inline]
962 pub fn wyxz(self) -> I32x4 {
963 I32x4([self[3], self[1], self[0], self[2]])
964 }
965
966 /// Constructs a new vector from the first, third, first, and third
967 /// lanes in this vector, respectively.
968 #[inline]
969 pub fn xzxz(self) -> I32x4 {
970 I32x4([self[0], self[2], self[0], self[2]])
971 }
972
973 /// Constructs a new vector from the second, third, first, and third
974 /// lanes in this vector, respectively.
975 #[inline]
976 pub fn yzxz(self) -> I32x4 {
977 I32x4([self[1], self[2], self[0], self[2]])
978 }
979
980 /// Constructs a new vector from the third, third, first, and third
981 /// lanes in this vector, respectively.
982 #[inline]
983 pub fn zzxz(self) -> I32x4 {
984 I32x4([self[2], self[2], self[0], self[2]])
985 }
986
987 /// Constructs a new vector from the fourth, third, first, and third
988 /// lanes in this vector, respectively.
989 #[inline]
990 pub fn wzxz(self) -> I32x4 {
991 I32x4([self[3], self[2], self[0], self[2]])
992 }
993
994 /// Constructs a new vector from the first, fourth, first, and third
995 /// lanes in this vector, respectively.
996 #[inline]
997 pub fn xwxz(self) -> I32x4 {
998 I32x4([self[0], self[3], self[0], self[2]])
999 }
1000
1001 /// Constructs a new vector from the second, fourth, first, and third
1002 /// lanes in this vector, respectively.
1003 #[inline]
1004 pub fn ywxz(self) -> I32x4 {
1005 I32x4([self[1], self[3], self[0], self[2]])
1006 }
1007
1008 /// Constructs a new vector from the third, fourth, first, and third
1009 /// lanes in this vector, respectively.
1010 #[inline]
1011 pub fn zwxz(self) -> I32x4 {
1012 I32x4([self[2], self[3], self[0], self[2]])
1013 }
1014
1015 /// Constructs a new vector from the fourth, fourth, first, and third
1016 /// lanes in this vector, respectively.
1017 #[inline]
1018 pub fn wwxz(self) -> I32x4 {
1019 I32x4([self[3], self[3], self[0], self[2]])
1020 }
1021
1022 /// Constructs a new vector from the first, first, second, and third
1023 /// lanes in this vector, respectively.
1024 #[inline]
1025 pub fn xxyz(self) -> I32x4 {
1026 I32x4([self[0], self[0], self[1], self[2]])
1027 }
1028
1029 /// Constructs a new vector from the second, first, second, and third
1030 /// lanes in this vector, respectively.
1031 #[inline]
1032 pub fn yxyz(self) -> I32x4 {
1033 I32x4([self[1], self[0], self[1], self[2]])
1034 }
1035
1036 /// Constructs a new vector from the third, first, second, and third
1037 /// lanes in this vector, respectively.
1038 #[inline]
1039 pub fn zxyz(self) -> I32x4 {
1040 I32x4([self[2], self[0], self[1], self[2]])
1041 }
1042
1043 /// Constructs a new vector from the fourth, first, second, and third
1044 /// lanes in this vector, respectively.
1045 #[inline]
1046 pub fn wxyz(self) -> I32x4 {
1047 I32x4([self[3], self[0], self[1], self[2]])
1048 }
1049
1050 /// Constructs a new vector from the first, second, second, and third
1051 /// lanes in this vector, respectively.
1052 #[inline]
1053 pub fn xyyz(self) -> I32x4 {
1054 I32x4([self[0], self[1], self[1], self[2]])
1055 }
1056
1057 /// Constructs a new vector from the second, second, second, and third
1058 /// lanes in this vector, respectively.
1059 #[inline]
1060 pub fn yyyz(self) -> I32x4 {
1061 I32x4([self[1], self[1], self[1], self[2]])
1062 }
1063
1064 /// Constructs a new vector from the third, second, second, and third
1065 /// lanes in this vector, respectively.
1066 #[inline]
1067 pub fn zyyz(self) -> I32x4 {
1068 I32x4([self[2], self[1], self[1], self[2]])
1069 }
1070
1071 /// Constructs a new vector from the fourth, second, second, and third
1072 /// lanes in this vector, respectively.
1073 #[inline]
1074 pub fn wyyz(self) -> I32x4 {
1075 I32x4([self[3], self[1], self[1], self[2]])
1076 }
1077
1078 /// Constructs a new vector from the first, third, second, and third
1079 /// lanes in this vector, respectively.
1080 #[inline]
1081 pub fn xzyz(self) -> I32x4 {
1082 I32x4([self[0], self[2], self[1], self[2]])
1083 }
1084
1085 /// Constructs a new vector from the second, third, second, and third
1086 /// lanes in this vector, respectively.
1087 #[inline]
1088 pub fn yzyz(self) -> I32x4 {
1089 I32x4([self[1], self[2], self[1], self[2]])
1090 }
1091
1092 /// Constructs a new vector from the third, third, second, and third
1093 /// lanes in this vector, respectively.
1094 #[inline]
1095 pub fn zzyz(self) -> I32x4 {
1096 I32x4([self[2], self[2], self[1], self[2]])
1097 }
1098
1099 /// Constructs a new vector from the fourth, third, second, and third
1100 /// lanes in this vector, respectively.
1101 #[inline]
1102 pub fn wzyz(self) -> I32x4 {
1103 I32x4([self[3], self[2], self[1], self[2]])
1104 }
1105
1106 /// Constructs a new vector from the first, fourth, second, and third
1107 /// lanes in this vector, respectively.
1108 #[inline]
1109 pub fn xwyz(self) -> I32x4 {
1110 I32x4([self[0], self[3], self[1], self[2]])
1111 }
1112
1113 /// Constructs a new vector from the second, fourth, second, and third
1114 /// lanes in this vector, respectively.
1115 #[inline]
1116 pub fn ywyz(self) -> I32x4 {
1117 I32x4([self[1], self[3], self[1], self[2]])
1118 }
1119
1120 /// Constructs a new vector from the third, fourth, second, and third
1121 /// lanes in this vector, respectively.
1122 #[inline]
1123 pub fn zwyz(self) -> I32x4 {
1124 I32x4([self[2], self[3], self[1], self[2]])
1125 }
1126
1127 /// Constructs a new vector from the fourth, fourth, second, and third
1128 /// lanes in this vector, respectively.
1129 #[inline]
1130 pub fn wwyz(self) -> I32x4 {
1131 I32x4([self[3], self[3], self[1], self[2]])
1132 }
1133
1134 /// Constructs a new vector from the first, first, third, and third
1135 /// lanes in this vector, respectively.
1136 #[inline]
1137 pub fn xxzz(self) -> I32x4 {
1138 I32x4([self[0], self[0], self[2], self[2]])
1139 }
1140
1141 /// Constructs a new vector from the second, first, third, and third
1142 /// lanes in this vector, respectively.
1143 #[inline]
1144 pub fn yxzz(self) -> I32x4 {
1145 I32x4([self[1], self[0], self[2], self[2]])
1146 }
1147
1148 /// Constructs a new vector from the third, first, third, and third
1149 /// lanes in this vector, respectively.
1150 #[inline]
1151 pub fn zxzz(self) -> I32x4 {
1152 I32x4([self[2], self[0], self[2], self[2]])
1153 }
1154
1155 /// Constructs a new vector from the fourth, first, third, and third
1156 /// lanes in this vector, respectively.
1157 #[inline]
1158 pub fn wxzz(self) -> I32x4 {
1159 I32x4([self[3], self[0], self[2], self[2]])
1160 }
1161
1162 /// Constructs a new vector from the first, second, third, and third
1163 /// lanes in this vector, respectively.
1164 #[inline]
1165 pub fn xyzz(self) -> I32x4 {
1166 I32x4([self[0], self[1], self[2], self[2]])
1167 }
1168
1169 /// Constructs a new vector from the second, second, third, and third
1170 /// lanes in this vector, respectively.
1171 #[inline]
1172 pub fn yyzz(self) -> I32x4 {
1173 I32x4([self[1], self[1], self[2], self[2]])
1174 }
1175
1176 /// Constructs a new vector from the third, second, third, and third
1177 /// lanes in this vector, respectively.
1178 #[inline]
1179 pub fn zyzz(self) -> I32x4 {
1180 I32x4([self[2], self[1], self[2], self[2]])
1181 }
1182
1183 /// Constructs a new vector from the fourth, second, third, and third
1184 /// lanes in this vector, respectively.
1185 #[inline]
1186 pub fn wyzz(self) -> I32x4 {
1187 I32x4([self[3], self[1], self[2], self[2]])
1188 }
1189
1190 /// Constructs a new vector from the first, third, third, and third
1191 /// lanes in this vector, respectively.
1192 #[inline]
1193 pub fn xzzz(self) -> I32x4 {
1194 I32x4([self[0], self[2], self[2], self[2]])
1195 }
1196
1197 /// Constructs a new vector from the second, third, third, and third
1198 /// lanes in this vector, respectively.
1199 #[inline]
1200 pub fn yzzz(self) -> I32x4 {
1201 I32x4([self[1], self[2], self[2], self[2]])
1202 }
1203
1204 /// Constructs a new vector from the third, third, third, and third
1205 /// lanes in this vector, respectively.
1206 #[inline]
1207 pub fn zzzz(self) -> I32x4 {
1208 I32x4([self[2], self[2], self[2], self[2]])
1209 }
1210
1211 /// Constructs a new vector from the fourth, third, third, and third
1212 /// lanes in this vector, respectively.
1213 #[inline]
1214 pub fn wzzz(self) -> I32x4 {
1215 I32x4([self[3], self[2], self[2], self[2]])
1216 }
1217
1218 /// Constructs a new vector from the first, fourth, third, and third
1219 /// lanes in this vector, respectively.
1220 #[inline]
1221 pub fn xwzz(self) -> I32x4 {
1222 I32x4([self[0], self[3], self[2], self[2]])
1223 }
1224
1225 /// Constructs a new vector from the second, fourth, third, and third
1226 /// lanes in this vector, respectively.
1227 #[inline]
1228 pub fn ywzz(self) -> I32x4 {
1229 I32x4([self[1], self[3], self[2], self[2]])
1230 }
1231
1232 /// Constructs a new vector from the third, fourth, third, and third
1233 /// lanes in this vector, respectively.
1234 #[inline]
1235 pub fn zwzz(self) -> I32x4 {
1236 I32x4([self[2], self[3], self[2], self[2]])
1237 }
1238
1239 /// Constructs a new vector from the fourth, fourth, third, and third
1240 /// lanes in this vector, respectively.
1241 #[inline]
1242 pub fn wwzz(self) -> I32x4 {
1243 I32x4([self[3], self[3], self[2], self[2]])
1244 }
1245
1246 /// Constructs a new vector from the first, first, fourth, and third
1247 /// lanes in this vector, respectively.
1248 #[inline]
1249 pub fn xxwz(self) -> I32x4 {
1250 I32x4([self[0], self[0], self[3], self[2]])
1251 }
1252
1253 /// Constructs a new vector from the second, first, fourth, and third
1254 /// lanes in this vector, respectively.
1255 #[inline]
1256 pub fn yxwz(self) -> I32x4 {
1257 I32x4([self[1], self[0], self[3], self[2]])
1258 }
1259
1260 /// Constructs a new vector from the third, first, fourth, and third
1261 /// lanes in this vector, respectively.
1262 #[inline]
1263 pub fn zxwz(self) -> I32x4 {
1264 I32x4([self[2], self[0], self[3], self[2]])
1265 }
1266
1267 /// Constructs a new vector from the fourth, first, fourth, and third
1268 /// lanes in this vector, respectively.
1269 #[inline]
1270 pub fn wxwz(self) -> I32x4 {
1271 I32x4([self[3], self[0], self[3], self[2]])
1272 }
1273
1274 /// Constructs a new vector from the first, second, fourth, and third
1275 /// lanes in this vector, respectively.
1276 #[inline]
1277 pub fn xywz(self) -> I32x4 {
1278 I32x4([self[0], self[1], self[3], self[2]])
1279 }
1280
1281 /// Constructs a new vector from the second, second, fourth, and third
1282 /// lanes in this vector, respectively.
1283 #[inline]
1284 pub fn yywz(self) -> I32x4 {
1285 I32x4([self[1], self[1], self[3], self[2]])
1286 }
1287
1288 /// Constructs a new vector from the third, second, fourth, and third
1289 /// lanes in this vector, respectively.
1290 #[inline]
1291 pub fn zywz(self) -> I32x4 {
1292 I32x4([self[2], self[1], self[3], self[2]])
1293 }
1294
1295 /// Constructs a new vector from the fourth, second, fourth, and third
1296 /// lanes in this vector, respectively.
1297 #[inline]
1298 pub fn wywz(self) -> I32x4 {
1299 I32x4([self[3], self[1], self[3], self[2]])
1300 }
1301
1302 /// Constructs a new vector from the first, third, fourth, and third
1303 /// lanes in this vector, respectively.
1304 #[inline]
1305 pub fn xzwz(self) -> I32x4 {
1306 I32x4([self[0], self[2], self[3], self[2]])
1307 }
1308
1309 /// Constructs a new vector from the second, third, fourth, and third
1310 /// lanes in this vector, respectively.
1311 #[inline]
1312 pub fn yzwz(self) -> I32x4 {
1313 I32x4([self[1], self[2], self[3], self[2]])
1314 }
1315
1316 /// Constructs a new vector from the third, third, fourth, and third
1317 /// lanes in this vector, respectively.
1318 #[inline]
1319 pub fn zzwz(self) -> I32x4 {
1320 I32x4([self[2], self[2], self[3], self[2]])
1321 }
1322
1323 /// Constructs a new vector from the fourth, third, fourth, and third
1324 /// lanes in this vector, respectively.
1325 #[inline]
1326 pub fn wzwz(self) -> I32x4 {
1327 I32x4([self[3], self[2], self[3], self[2]])
1328 }
1329
1330 /// Constructs a new vector from the first, fourth, fourth, and third
1331 /// lanes in this vector, respectively.
1332 #[inline]
1333 pub fn xwwz(self) -> I32x4 {
1334 I32x4([self[0], self[3], self[3], self[2]])
1335 }
1336
1337 /// Constructs a new vector from the second, fourth, fourth, and third
1338 /// lanes in this vector, respectively.
1339 #[inline]
1340 pub fn ywwz(self) -> I32x4 {
1341 I32x4([self[1], self[3], self[3], self[2]])
1342 }
1343
1344 /// Constructs a new vector from the third, fourth, fourth, and third
1345 /// lanes in this vector, respectively.
1346 #[inline]
1347 pub fn zwwz(self) -> I32x4 {
1348 I32x4([self[2], self[3], self[3], self[2]])
1349 }
1350
1351 /// Constructs a new vector from the fourth, fourth, fourth, and third
1352 /// lanes in this vector, respectively.
1353 #[inline]
1354 pub fn wwwz(self) -> I32x4 {
1355 I32x4([self[3], self[3], self[3], self[2]])
1356 }
1357
1358 /// Constructs a new vector from the first, first, first, and fourth
1359 /// lanes in this vector, respectively.
1360 #[inline]
1361 pub fn xxxw(self) -> I32x4 {
1362 I32x4([self[0], self[0], self[0], self[3]])
1363 }
1364
1365 /// Constructs a new vector from the second, first, first, and fourth
1366 /// lanes in this vector, respectively.
1367 #[inline]
1368 pub fn yxxw(self) -> I32x4 {
1369 I32x4([self[1], self[0], self[0], self[3]])
1370 }
1371
1372 /// Constructs a new vector from the third, first, first, and fourth
1373 /// lanes in this vector, respectively.
1374 #[inline]
1375 pub fn zxxw(self) -> I32x4 {
1376 I32x4([self[2], self[0], self[0], self[3]])
1377 }
1378
1379 /// Constructs a new vector from the fourth, first, first, and fourth
1380 /// lanes in this vector, respectively.
1381 #[inline]
1382 pub fn wxxw(self) -> I32x4 {
1383 I32x4([self[3], self[0], self[0], self[3]])
1384 }
1385
1386 /// Constructs a new vector from the first, second, first, and fourth
1387 /// lanes in this vector, respectively.
1388 #[inline]
1389 pub fn xyxw(self) -> I32x4 {
1390 I32x4([self[0], self[1], self[0], self[3]])
1391 }
1392
1393 /// Constructs a new vector from the second, second, first, and fourth
1394 /// lanes in this vector, respectively.
1395 #[inline]
1396 pub fn yyxw(self) -> I32x4 {
1397 I32x4([self[1], self[1], self[0], self[3]])
1398 }
1399
1400 /// Constructs a new vector from the third, second, first, and fourth
1401 /// lanes in this vector, respectively.
1402 #[inline]
1403 pub fn zyxw(self) -> I32x4 {
1404 I32x4([self[2], self[1], self[0], self[3]])
1405 }
1406
1407 /// Constructs a new vector from the fourth, second, first, and fourth
1408 /// lanes in this vector, respectively.
1409 #[inline]
1410 pub fn wyxw(self) -> I32x4 {
1411 I32x4([self[3], self[1], self[0], self[3]])
1412 }
1413
1414 /// Constructs a new vector from the first, third, first, and fourth
1415 /// lanes in this vector, respectively.
1416 #[inline]
1417 pub fn xzxw(self) -> I32x4 {
1418 I32x4([self[0], self[2], self[0], self[3]])
1419 }
1420
1421 /// Constructs a new vector from the second, third, first, and fourth
1422 /// lanes in this vector, respectively.
1423 #[inline]
1424 pub fn yzxw(self) -> I32x4 {
1425 I32x4([self[1], self[2], self[0], self[3]])
1426 }
1427
1428 /// Constructs a new vector from the third, third, first, and fourth
1429 /// lanes in this vector, respectively.
1430 #[inline]
1431 pub fn zzxw(self) -> I32x4 {
1432 I32x4([self[2], self[2], self[0], self[3]])
1433 }
1434
1435 /// Constructs a new vector from the fourth, third, first, and fourth
1436 /// lanes in this vector, respectively.
1437 #[inline]
1438 pub fn wzxw(self) -> I32x4 {
1439 I32x4([self[3], self[2], self[0], self[3]])
1440 }
1441
1442 /// Constructs a new vector from the first, fourth, first, and fourth
1443 /// lanes in this vector, respectively.
1444 #[inline]
1445 pub fn xwxw(self) -> I32x4 {
1446 I32x4([self[0], self[3], self[0], self[3]])
1447 }
1448
1449 /// Constructs a new vector from the second, fourth, first, and fourth
1450 /// lanes in this vector, respectively.
1451 #[inline]
1452 pub fn ywxw(self) -> I32x4 {
1453 I32x4([self[1], self[3], self[0], self[3]])
1454 }
1455
1456 /// Constructs a new vector from the third, fourth, first, and fourth
1457 /// lanes in this vector, respectively.
1458 #[inline]
1459 pub fn zwxw(self) -> I32x4 {
1460 I32x4([self[2], self[3], self[0], self[3]])
1461 }
1462
1463 /// Constructs a new vector from the fourth, fourth, first, and fourth
1464 /// lanes in this vector, respectively.
1465 #[inline]
1466 pub fn wwxw(self) -> I32x4 {
1467 I32x4([self[3], self[3], self[0], self[3]])
1468 }
1469
1470 /// Constructs a new vector from the first, first, second, and fourth
1471 /// lanes in this vector, respectively.
1472 #[inline]
1473 pub fn xxyw(self) -> I32x4 {
1474 I32x4([self[0], self[0], self[1], self[3]])
1475 }
1476
1477 /// Constructs a new vector from the second, first, second, and fourth
1478 /// lanes in this vector, respectively.
1479 #[inline]
1480 pub fn yxyw(self) -> I32x4 {
1481 I32x4([self[1], self[0], self[1], self[3]])
1482 }
1483
1484 /// Constructs a new vector from the third, first, second, and fourth
1485 /// lanes in this vector, respectively.
1486 #[inline]
1487 pub fn zxyw(self) -> I32x4 {
1488 I32x4([self[2], self[0], self[1], self[3]])
1489 }
1490
1491 /// Constructs a new vector from the fourth, first, second, and fourth
1492 /// lanes in this vector, respectively.
1493 #[inline]
1494 pub fn wxyw(self) -> I32x4 {
1495 I32x4([self[3], self[0], self[1], self[3]])
1496 }
1497
1498 /// Constructs a new vector from the first, second, second, and fourth
1499 /// lanes in this vector, respectively.
1500 #[inline]
1501 pub fn xyyw(self) -> I32x4 {
1502 I32x4([self[0], self[1], self[1], self[3]])
1503 }
1504
1505 /// Constructs a new vector from the second, second, second, and fourth
1506 /// lanes in this vector, respectively.
1507 #[inline]
1508 pub fn yyyw(self) -> I32x4 {
1509 I32x4([self[1], self[1], self[1], self[3]])
1510 }
1511
1512 /// Constructs a new vector from the third, second, second, and fourth
1513 /// lanes in this vector, respectively.
1514 #[inline]
1515 pub fn zyyw(self) -> I32x4 {
1516 I32x4([self[2], self[1], self[1], self[3]])
1517 }
1518
1519 /// Constructs a new vector from the fourth, second, second, and fourth
1520 /// lanes in this vector, respectively.
1521 #[inline]
1522 pub fn wyyw(self) -> I32x4 {
1523 I32x4([self[3], self[1], self[1], self[3]])
1524 }
1525
1526 /// Constructs a new vector from the first, third, second, and fourth
1527 /// lanes in this vector, respectively.
1528 #[inline]
1529 pub fn xzyw(self) -> I32x4 {
1530 I32x4([self[0], self[2], self[1], self[3]])
1531 }
1532
1533 /// Constructs a new vector from the second, third, second, and fourth
1534 /// lanes in this vector, respectively.
1535 #[inline]
1536 pub fn yzyw(self) -> I32x4 {
1537 I32x4([self[1], self[2], self[1], self[3]])
1538 }
1539
1540 /// Constructs a new vector from the third, third, second, and fourth
1541 /// lanes in this vector, respectively.
1542 #[inline]
1543 pub fn zzyw(self) -> I32x4 {
1544 I32x4([self[2], self[2], self[1], self[3]])
1545 }
1546
1547 /// Constructs a new vector from the fourth, third, second, and fourth
1548 /// lanes in this vector, respectively.
1549 #[inline]
1550 pub fn wzyw(self) -> I32x4 {
1551 I32x4([self[3], self[2], self[1], self[3]])
1552 }
1553
1554 /// Constructs a new vector from the first, fourth, second, and fourth
1555 /// lanes in this vector, respectively.
1556 #[inline]
1557 pub fn xwyw(self) -> I32x4 {
1558 I32x4([self[0], self[3], self[1], self[3]])
1559 }
1560
1561 /// Constructs a new vector from the second, fourth, second, and fourth
1562 /// lanes in this vector, respectively.
1563 #[inline]
1564 pub fn ywyw(self) -> I32x4 {
1565 I32x4([self[1], self[3], self[1], self[3]])
1566 }
1567
1568 /// Constructs a new vector from the third, fourth, second, and fourth
1569 /// lanes in this vector, respectively.
1570 #[inline]
1571 pub fn zwyw(self) -> I32x4 {
1572 I32x4([self[2], self[3], self[1], self[3]])
1573 }
1574
1575 /// Constructs a new vector from the fourth, fourth, second, and fourth
1576 /// lanes in this vector, respectively.
1577 #[inline]
1578 pub fn wwyw(self) -> I32x4 {
1579 I32x4([self[3], self[3], self[1], self[3]])
1580 }
1581
1582 /// Constructs a new vector from the first, first, third, and fourth
1583 /// lanes in this vector, respectively.
1584 #[inline]
1585 pub fn xxzw(self) -> I32x4 {
1586 I32x4([self[0], self[0], self[2], self[3]])
1587 }
1588
1589 /// Constructs a new vector from the second, first, third, and fourth
1590 /// lanes in this vector, respectively.
1591 #[inline]
1592 pub fn yxzw(self) -> I32x4 {
1593 I32x4([self[1], self[0], self[2], self[3]])
1594 }
1595
1596 /// Constructs a new vector from the third, first, third, and fourth
1597 /// lanes in this vector, respectively.
1598 #[inline]
1599 pub fn zxzw(self) -> I32x4 {
1600 I32x4([self[2], self[0], self[2], self[3]])
1601 }
1602
1603 /// Constructs a new vector from the fourth, first, third, and fourth
1604 /// lanes in this vector, respectively.
1605 #[inline]
1606 pub fn wxzw(self) -> I32x4 {
1607 I32x4([self[3], self[0], self[2], self[3]])
1608 }
1609
1610 /// Constructs a new vector from the first, second, third, and fourth
1611 /// lanes in this vector, respectively.
1612 #[inline]
1613 pub fn xyzw(self) -> I32x4 {
1614 I32x4([self[0], self[1], self[2], self[3]])
1615 }
1616
1617 /// Constructs a new vector from the second, second, third, and fourth
1618 /// lanes in this vector, respectively.
1619 #[inline]
1620 pub fn yyzw(self) -> I32x4 {
1621 I32x4([self[1], self[1], self[2], self[3]])
1622 }
1623
1624 /// Constructs a new vector from the third, second, third, and fourth
1625 /// lanes in this vector, respectively.
1626 #[inline]
1627 pub fn zyzw(self) -> I32x4 {
1628 I32x4([self[2], self[1], self[2], self[3]])
1629 }
1630
1631 /// Constructs a new vector from the fourth, second, third, and fourth
1632 /// lanes in this vector, respectively.
1633 #[inline]
1634 pub fn wyzw(self) -> I32x4 {
1635 I32x4([self[3], self[1], self[2], self[3]])
1636 }
1637
1638 /// Constructs a new vector from the first, third, third, and fourth
1639 /// lanes in this vector, respectively.
1640 #[inline]
1641 pub fn xzzw(self) -> I32x4 {
1642 I32x4([self[0], self[2], self[2], self[3]])
1643 }
1644
1645 /// Constructs a new vector from the second, third, third, and fourth
1646 /// lanes in this vector, respectively.
1647 #[inline]
1648 pub fn yzzw(self) -> I32x4 {
1649 I32x4([self[1], self[2], self[2], self[3]])
1650 }
1651
1652 /// Constructs a new vector from the third, third, third, and fourth
1653 /// lanes in this vector, respectively.
1654 #[inline]
1655 pub fn zzzw(self) -> I32x4 {
1656 I32x4([self[2], self[2], self[2], self[3]])
1657 }
1658
1659 /// Constructs a new vector from the fourth, third, third, and fourth
1660 /// lanes in this vector, respectively.
1661 #[inline]
1662 pub fn wzzw(self) -> I32x4 {
1663 I32x4([self[3], self[2], self[2], self[3]])
1664 }
1665
1666 /// Constructs a new vector from the first, fourth, third, and fourth
1667 /// lanes in this vector, respectively.
1668 #[inline]
1669 pub fn xwzw(self) -> I32x4 {
1670 I32x4([self[0], self[3], self[2], self[3]])
1671 }
1672
1673 /// Constructs a new vector from the second, fourth, third, and fourth
1674 /// lanes in this vector, respectively.
1675 #[inline]
1676 pub fn ywzw(self) -> I32x4 {
1677 I32x4([self[1], self[3], self[2], self[3]])
1678 }
1679
1680 /// Constructs a new vector from the third, fourth, third, and fourth
1681 /// lanes in this vector, respectively.
1682 #[inline]
1683 pub fn zwzw(self) -> I32x4 {
1684 I32x4([self[2], self[3], self[2], self[3]])
1685 }
1686
1687 /// Constructs a new vector from the fourth, fourth, third, and fourth
1688 /// lanes in this vector, respectively.
1689 #[inline]
1690 pub fn wwzw(self) -> I32x4 {
1691 I32x4([self[3], self[3], self[2], self[3]])
1692 }
1693
1694 /// Constructs a new vector from the first, first, fourth, and fourth
1695 /// lanes in this vector, respectively.
1696 #[inline]
1697 pub fn xxww(self) -> I32x4 {
1698 I32x4([self[0], self[0], self[3], self[3]])
1699 }
1700
1701 /// Constructs a new vector from the second, first, fourth, and fourth
1702 /// lanes in this vector, respectively.
1703 #[inline]
1704 pub fn yxww(self) -> I32x4 {
1705 I32x4([self[1], self[0], self[3], self[3]])
1706 }
1707
1708 /// Constructs a new vector from the third, first, fourth, and fourth
1709 /// lanes in this vector, respectively.
1710 #[inline]
1711 pub fn zxww(self) -> I32x4 {
1712 I32x4([self[2], self[0], self[3], self[3]])
1713 }
1714
1715 /// Constructs a new vector from the fourth, first, fourth, and fourth
1716 /// lanes in this vector, respectively.
1717 #[inline]
1718 pub fn wxww(self) -> I32x4 {
1719 I32x4([self[3], self[0], self[3], self[3]])
1720 }
1721
1722 /// Constructs a new vector from the first, second, fourth, and fourth
1723 /// lanes in this vector, respectively.
1724 #[inline]
1725 pub fn xyww(self) -> I32x4 {
1726 I32x4([self[0], self[1], self[3], self[3]])
1727 }
1728
1729 /// Constructs a new vector from the second, second, fourth, and fourth
1730 /// lanes in this vector, respectively.
1731 #[inline]
1732 pub fn yyww(self) -> I32x4 {
1733 I32x4([self[1], self[1], self[3], self[3]])
1734 }
1735
1736 /// Constructs a new vector from the third, second, fourth, and fourth
1737 /// lanes in this vector, respectively.
1738 #[inline]
1739 pub fn zyww(self) -> I32x4 {
1740 I32x4([self[2], self[1], self[3], self[3]])
1741 }
1742
1743 /// Constructs a new vector from the fourth, second, fourth, and fourth
1744 /// lanes in this vector, respectively.
1745 #[inline]
1746 pub fn wyww(self) -> I32x4 {
1747 I32x4([self[3], self[1], self[3], self[3]])
1748 }
1749
1750 /// Constructs a new vector from the first, third, fourth, and fourth
1751 /// lanes in this vector, respectively.
1752 #[inline]
1753 pub fn xzww(self) -> I32x4 {
1754 I32x4([self[0], self[2], self[3], self[3]])
1755 }
1756
1757 /// Constructs a new vector from the second, third, fourth, and fourth
1758 /// lanes in this vector, respectively.
1759 #[inline]
1760 pub fn yzww(self) -> I32x4 {
1761 I32x4([self[1], self[2], self[3], self[3]])
1762 }
1763
1764 /// Constructs a new vector from the third, third, fourth, and fourth
1765 /// lanes in this vector, respectively.
1766 #[inline]
1767 pub fn zzww(self) -> I32x4 {
1768 I32x4([self[2], self[2], self[3], self[3]])
1769 }
1770
1771 /// Constructs a new vector from the fourth, third, fourth, and fourth
1772 /// lanes in this vector, respectively.
1773 #[inline]
1774 pub fn wzww(self) -> I32x4 {
1775 I32x4([self[3], self[2], self[3], self[3]])
1776 }
1777
1778 /// Constructs a new vector from the first, fourth, fourth, and fourth
1779 /// lanes in this vector, respectively.
1780 #[inline]
1781 pub fn xwww(self) -> I32x4 {
1782 I32x4([self[0], self[3], self[3], self[3]])
1783 }
1784
1785 /// Constructs a new vector from the second, fourth, fourth, and fourth
1786 /// lanes in this vector, respectively.
1787 #[inline]
1788 pub fn ywww(self) -> I32x4 {
1789 I32x4([self[1], self[3], self[3], self[3]])
1790 }
1791
1792 /// Constructs a new vector from the third, fourth, fourth, and fourth
1793 /// lanes in this vector, respectively.
1794 #[inline]
1795 pub fn zwww(self) -> I32x4 {
1796 I32x4([self[2], self[3], self[3], self[3]])
1797 }
1798
1799 /// Constructs a new vector from the fourth, fourth, fourth, and fourth
1800 /// lanes in this vector, respectively.
1801 #[inline]
1802 pub fn wwww(self) -> I32x4 {
1803 I32x4([self[3], self[3], self[3], self[3]])
1804 }
1805}
1806