@@ -358,7 +358,6 @@ private static void Shuffle3(
358358 {
359359 ref byte vmaskBase = ref MemoryMarshal . GetReference ( ShuffleMaskPad4Nx16 ) ;
360360 Vector128 < byte > vmask = Unsafe . As < byte , Vector128 < byte > > ( ref vmaskBase ) ;
361- Vector128 < byte > vfill = Vector128 . Create ( 0xff000000ff000000ul ) . AsByte ( ) ;
362361 ref byte vmaskoBase = ref MemoryMarshal . GetReference ( ShuffleMaskSlice4Nx16 ) ;
363362 Vector128 < byte > vmasko = Unsafe . As < byte , Vector128 < byte > > ( ref vmaskoBase ) ;
364363 Vector128 < byte > vmaske = Ssse3 . AlignRight ( vmasko , vmasko , 12 ) ;
@@ -398,8 +397,12 @@ private static void Shuffle3(
398397 v3 = Ssse3 . Shuffle ( v3 , vmasko ) ;
399398
400399 v0 = Ssse3 . AlignRight ( v1 , v0 , 4 ) ;
401- v1 = Sse2 . Or ( Sse2 . ShiftRightLogical128BitLane ( v1 , 4 ) , Sse2 . ShiftLeftLogical128BitLane ( v2 , 4 ) ) ;
402- v2 = Ssse3 . AlignRight ( v3 , v2 , 12 ) ;
400+ v3 = Ssse3 . AlignRight ( v3 , v2 , 12 ) ;
401+
402+ v1 = Sse2 . ShiftLeftLogical128BitLane ( v1 , 4 ) ;
403+ v2 = Sse2 . ShiftRightLogical128BitLane ( v2 , 4 ) ;
404+
405+ v1 = Ssse3 . AlignRight ( v2 , v1 , 8 ) ;
403406
404407 ref Vector128 < byte > vd = ref Unsafe . Add ( ref destBase , i ) ;
405408
@@ -493,8 +496,12 @@ private static void Shuffle4Slice3(
493496 v3 = Ssse3 . Shuffle ( Ssse3 . Shuffle ( v3 , vshuffle ) , vmasko ) ;
494497
495498 v0 = Ssse3 . AlignRight ( v1 , v0 , 4 ) ;
496- v1 = Sse2 . Or ( Sse2 . ShiftRightLogical128BitLane ( v1 , 4 ) , Sse2 . ShiftLeftLogical128BitLane ( v2 , 4 ) ) ;
497- v2 = Ssse3 . AlignRight ( v3 , v2 , 12 ) ;
499+ v3 = Ssse3 . AlignRight ( v3 , v2 , 12 ) ;
500+
501+ v1 = Sse2 . ShiftLeftLogical128BitLane ( v1 , 4 ) ;
502+ v2 = Sse2 . ShiftRightLogical128BitLane ( v2 , 4 ) ;
503+
504+ v1 = Ssse3 . AlignRight ( v2 , v1 , 8 ) ;
498505
499506 ref Vector128 < byte > vd = ref Unsafe . Add ( ref destBase , j ) ;
500507
0 commit comments