552 {
553 Vector256<sbyte> mask =
Vector256.
Create(5, 4, 6, 5, 8, 7, 9, 8, 11, 10, 12, 11, 14, 13, 15, 14, 1, 0, 2, 1, 4, 3, 5, 4, 7, 6, 8, 7, 10, 9, 11, 10);
554 Vector256<sbyte> value =
Vector256.
Create(65, 71, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -19, -16, 0, 0, 65, 71, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -19, -16, 0, 0);
561 byte* ptr = srcBytes;
562 byte* ptr2 = destBytes;
564 vector =
Avx2.
PermuteVar8x32(vector.AsInt32(),
Vector256.
Create(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0).AsInt32()).AsSByte();
565 ptr -= 4;
566 while (true)
567 {
573 vector =
Avx2.
Or(vector4.AsSByte(), vector5.AsSByte());
579 ptr += 24;
580 ptr2 += 32;
581 if (ptr > srcEnd)
582 {
583 break;
584 }
586 }
587 srcBytes = ptr + 4;
588 destBytes = ptr2;
589 }
static Vector256< byte > Create(byte value)
static Vector256< sbyte > CompareGreaterThan(Vector256< sbyte > left, Vector256< sbyte > right)
static Vector256< sbyte > SubtractSaturate(Vector256< sbyte > left, Vector256< sbyte > right)
static Vector256< sbyte > Add(Vector256< sbyte > left, Vector256< sbyte > right)
static Vector256< sbyte > And(Vector256< sbyte > left, Vector256< sbyte > right)
static Vector256< sbyte > Subtract(Vector256< sbyte > left, Vector256< sbyte > right)
static Vector256< short > MultiplyLow(Vector256< short > left, Vector256< short > right)
static Vector256< sbyte > Or(Vector256< sbyte > left, Vector256< sbyte > right)
static Vector256< short > MultiplyHigh(Vector256< short > left, Vector256< short > right)
static Vector256< sbyte > Shuffle(Vector256< sbyte > value, Vector256< sbyte > mask)
static Vector256< int > PermuteVar8x32(Vector256< int > left, Vector256< int > control)
static unsafe Vector256< sbyte > LoadVector256(sbyte *address)
static unsafe void Store(sbyte *address, Vector256< sbyte > source)