22//! Types representing
33#![ allow( non_camel_case_types) ]
44
5- use crate :: simd:: { LaneCount , Select , Simd , SimdCast , SimdElement , SupportedLaneCount } ;
5+ use crate :: simd:: { Select , Simd , SimdCast , SimdElement } ;
66use core:: cmp:: Ordering ;
77use core:: { fmt, mem} ;
88
@@ -41,7 +41,6 @@ mod sealed {
4141 pub trait Sealed {
4242 fn valid < const N : usize > ( values : Simd < Self , N > ) -> bool
4343 where
44- LaneCount < N > : SupportedLaneCount ,
4544 Self : SimdElement ;
4645
4746 fn eq ( self , other : Self ) -> bool ;
@@ -69,8 +68,6 @@ macro_rules! impl_element {
6968 impl Sealed for $ty {
7069 #[ inline]
7170 fn valid<const N : usize >( value: Simd <Self , N >) -> bool
72- where
73- LaneCount <N >: SupportedLaneCount ,
7471 {
7572 // We can't use `Simd` directly, because `Simd`'s functions call this function and
7673 // we will end up with an infinite loop.
@@ -124,20 +121,13 @@ impl_element! { isize, usize }
124121#[ repr( transparent) ]
125122pub struct Mask < T , const N : usize > ( Simd < T , N > )
126123where
127- T : MaskElement ,
128- LaneCount < N > : SupportedLaneCount ;
124+ T : MaskElement ;
129125
130- impl < T , const N : usize > Copy for Mask < T , N >
131- where
132- T : MaskElement ,
133- LaneCount < N > : SupportedLaneCount ,
134- {
135- }
126+ impl < T , const N : usize > Copy for Mask < T , N > where T : MaskElement { }
136127
137128impl < T , const N : usize > Clone for Mask < T , N >
138129where
139130 T : MaskElement ,
140- LaneCount < N > : SupportedLaneCount ,
141131{
142132 #[ inline]
143133 fn clone ( & self ) -> Self {
@@ -148,7 +138,6 @@ where
148138impl < T , const N : usize > Mask < T , N >
149139where
150140 T : MaskElement ,
151- LaneCount < N > : SupportedLaneCount ,
152141{
153142 /// Constructs a mask by setting all elements to the given value.
154143 #[ inline]
@@ -315,8 +304,6 @@ where
315304 ) -> U
316305 where
317306 T : MaskElement ,
318- LaneCount < M > : SupportedLaneCount ,
319- LaneCount < N > : SupportedLaneCount ,
320307 {
321308 let resized = mask. resize :: < M > ( false ) ;
322309
@@ -421,7 +408,6 @@ where
421408impl < T , const N : usize > From < [ bool ; N ] > for Mask < T , N >
422409where
423410 T : MaskElement ,
424- LaneCount < N > : SupportedLaneCount ,
425411{
426412 #[ inline]
427413 fn from ( array : [ bool ; N ] ) -> Self {
@@ -432,7 +418,6 @@ where
432418impl < T , const N : usize > From < Mask < T , N > > for [ bool ; N ]
433419where
434420 T : MaskElement ,
435- LaneCount < N > : SupportedLaneCount ,
436421{
437422 #[ inline]
438423 fn from ( vector : Mask < T , N > ) -> Self {
@@ -443,7 +428,6 @@ where
443428impl < T , const N : usize > Default for Mask < T , N >
444429where
445430 T : MaskElement ,
446- LaneCount < N > : SupportedLaneCount ,
447431{
448432 #[ inline]
449433 fn default ( ) -> Self {
@@ -454,7 +438,6 @@ where
454438impl < T , const N : usize > PartialEq for Mask < T , N >
455439where
456440 T : MaskElement + PartialEq ,
457- LaneCount < N > : SupportedLaneCount ,
458441{
459442 #[ inline]
460443 fn eq ( & self , other : & Self ) -> bool {
@@ -465,7 +448,6 @@ where
465448impl < T , const N : usize > PartialOrd for Mask < T , N >
466449where
467450 T : MaskElement + PartialOrd ,
468- LaneCount < N > : SupportedLaneCount ,
469451{
470452 #[ inline]
471453 fn partial_cmp ( & self , other : & Self ) -> Option < Ordering > {
@@ -476,7 +458,6 @@ where
476458impl < T , const N : usize > fmt:: Debug for Mask < T , N >
477459where
478460 T : MaskElement + fmt:: Debug ,
479- LaneCount < N > : SupportedLaneCount ,
480461{
481462 #[ inline]
482463 fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
@@ -489,7 +470,6 @@ where
489470impl < T , const N : usize > core:: ops:: BitAnd for Mask < T , N >
490471where
491472 T : MaskElement ,
492- LaneCount < N > : SupportedLaneCount ,
493473{
494474 type Output = Self ;
495475 #[ inline]
@@ -502,7 +482,6 @@ where
502482impl < T , const N : usize > core:: ops:: BitAnd < bool > for Mask < T , N >
503483where
504484 T : MaskElement ,
505- LaneCount < N > : SupportedLaneCount ,
506485{
507486 type Output = Self ;
508487 #[ inline]
@@ -514,7 +493,6 @@ where
514493impl < T , const N : usize > core:: ops:: BitAnd < Mask < T , N > > for bool
515494where
516495 T : MaskElement ,
517- LaneCount < N > : SupportedLaneCount ,
518496{
519497 type Output = Mask < T , N > ;
520498 #[ inline]
@@ -526,7 +504,6 @@ where
526504impl < T , const N : usize > core:: ops:: BitOr for Mask < T , N >
527505where
528506 T : MaskElement ,
529- LaneCount < N > : SupportedLaneCount ,
530507{
531508 type Output = Self ;
532509 #[ inline]
@@ -539,7 +516,6 @@ where
539516impl < T , const N : usize > core:: ops:: BitOr < bool > for Mask < T , N >
540517where
541518 T : MaskElement ,
542- LaneCount < N > : SupportedLaneCount ,
543519{
544520 type Output = Self ;
545521 #[ inline]
@@ -551,7 +527,6 @@ where
551527impl < T , const N : usize > core:: ops:: BitOr < Mask < T , N > > for bool
552528where
553529 T : MaskElement ,
554- LaneCount < N > : SupportedLaneCount ,
555530{
556531 type Output = Mask < T , N > ;
557532 #[ inline]
@@ -563,7 +538,6 @@ where
563538impl < T , const N : usize > core:: ops:: BitXor for Mask < T , N >
564539where
565540 T : MaskElement ,
566- LaneCount < N > : SupportedLaneCount ,
567541{
568542 type Output = Self ;
569543 #[ inline]
@@ -576,7 +550,6 @@ where
576550impl < T , const N : usize > core:: ops:: BitXor < bool > for Mask < T , N >
577551where
578552 T : MaskElement ,
579- LaneCount < N > : SupportedLaneCount ,
580553{
581554 type Output = Self ;
582555 #[ inline]
@@ -588,7 +561,6 @@ where
588561impl < T , const N : usize > core:: ops:: BitXor < Mask < T , N > > for bool
589562where
590563 T : MaskElement ,
591- LaneCount < N > : SupportedLaneCount ,
592564{
593565 type Output = Mask < T , N > ;
594566 #[ inline]
@@ -600,7 +572,6 @@ where
600572impl < T , const N : usize > core:: ops:: Not for Mask < T , N >
601573where
602574 T : MaskElement ,
603- LaneCount < N > : SupportedLaneCount ,
604575{
605576 type Output = Mask < T , N > ;
606577 #[ inline]
@@ -612,7 +583,6 @@ where
612583impl < T , const N : usize > core:: ops:: BitAndAssign for Mask < T , N >
613584where
614585 T : MaskElement ,
615- LaneCount < N > : SupportedLaneCount ,
616586{
617587 #[ inline]
618588 fn bitand_assign ( & mut self , rhs : Self ) {
@@ -623,7 +593,6 @@ where
623593impl < T , const N : usize > core:: ops:: BitAndAssign < bool > for Mask < T , N >
624594where
625595 T : MaskElement ,
626- LaneCount < N > : SupportedLaneCount ,
627596{
628597 #[ inline]
629598 fn bitand_assign ( & mut self , rhs : bool ) {
@@ -634,7 +603,6 @@ where
634603impl < T , const N : usize > core:: ops:: BitOrAssign for Mask < T , N >
635604where
636605 T : MaskElement ,
637- LaneCount < N > : SupportedLaneCount ,
638606{
639607 #[ inline]
640608 fn bitor_assign ( & mut self , rhs : Self ) {
@@ -645,7 +613,6 @@ where
645613impl < T , const N : usize > core:: ops:: BitOrAssign < bool > for Mask < T , N >
646614where
647615 T : MaskElement ,
648- LaneCount < N > : SupportedLaneCount ,
649616{
650617 #[ inline]
651618 fn bitor_assign ( & mut self , rhs : bool ) {
@@ -656,7 +623,6 @@ where
656623impl < T , const N : usize > core:: ops:: BitXorAssign for Mask < T , N >
657624where
658625 T : MaskElement ,
659- LaneCount < N > : SupportedLaneCount ,
660626{
661627 #[ inline]
662628 fn bitxor_assign ( & mut self , rhs : Self ) {
@@ -667,7 +633,6 @@ where
667633impl < T , const N : usize > core:: ops:: BitXorAssign < bool > for Mask < T , N >
668634where
669635 T : MaskElement ,
670- LaneCount < N > : SupportedLaneCount ,
671636{
672637 #[ inline]
673638 fn bitxor_assign ( & mut self , rhs : bool ) {
@@ -679,8 +644,6 @@ macro_rules! impl_from {
679644 { $from: ty => $( $to: ty) ,* } => {
680645 $(
681646 impl <const N : usize > From <Mask <$from, N >> for Mask <$to, N >
682- where
683- LaneCount <N >: SupportedLaneCount ,
684647 {
685648 #[ inline]
686649 fn from( value: Mask <$from, N >) -> Self {
0 commit comments