497 {
499 nuint num2 = num - 1;
500 nuint num3 = 0u;
502 if (elementCount >= num)
503 {
506 num3 = (num >> 1) - (((nuint)pUtf16Buffer >> 1) & (num2 >> 1));
507 char* ptr = pUtf16Buffer + num3;
508 nuint num4 = elementCount - num;
509 while (num3 <= num4)
510 {
516 num3 += num;
517 ptr += num;
518 }
519 }
520 uint num5 = (uint)((int)elementCount - (int)num3);
521 if ((num5 & 8u) != 0)
522 {
525 num3 += 8;
526 }
527 if ((num5 & 4u) != 0)
528 {
531 num3 += 4;
532 }
533 if ((num5 & 3) == 0)
534 {
535 return;
536 }
537 pUtf16Buffer[num3] = (char)pLatin1Buffer[num3];
538 if ((num5 & 2u) != 0)
539 {
540 pUtf16Buffer[num3 + 1] = (char)pLatin1Buffer[num3 + 1];
541 if ((num5 & (true ? 1u : 0u)) != 0)
542 {
543 pUtf16Buffer[num3 + 2] = (char)pLatin1Buffer[num3 + 2];
544 }
545 }
546 }
static Vector128< T > Zero
static unsafe Vector128< sbyte > LoadVector128(sbyte *address)
static unsafe Vector128< double > LoadScalarVector128(double *address)
static unsafe void StoreScalar(double *address, Vector128< double > source)
static unsafe void Store(sbyte *address, Vector128< sbyte > source)
static unsafe void StoreAligned(sbyte *address, Vector128< sbyte > source)
static Vector128< byte > UnpackLow(Vector128< byte > left, Vector128< byte > right)
static Vector128< byte > UnpackHigh(Vector128< byte > left, Vector128< byte > right)