4 types derived from Sse2
System.Private.CoreLib (4)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\X86\Aes.cs (1)
12public abstract class Aes : Sse2
src\runtime\src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\X86\Pclmulqdq.cs (1)
12public abstract partial class Pclmulqdq : Sse2
src\runtime\src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\X86\Pclmulqdq.Wide.cs (1)
9public abstract partial class Pclmulqdq : Sse2
src\runtime\src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\X86\Sse3.cs (1)
12public abstract class Sse3 : Sse2
240 references to Sse2
GenerateDocumentationAndConfigFiles (2)
src\roslyn\src\Compilers\Core\Portable\Hashing\XxHashShared.cs (2)
717return Sse2.IsSupported ? 718Sse2.Multiply(source, sourceLow) :
Microsoft.AspNetCore.Razor.Utilities.Shared (2)
Utilities\Hashing\XxHashShared.cs (2)
716return Sse2.IsSupported ? 717Sse2.Multiply(source, sourceLow) :
Microsoft.AspNetCore.Server.HttpSys (5)
src\aspnetcore\src\Shared\ServerInfrastructure\StringUtilities.cs (5)
154var highNibbles = Sse2.ShiftRightLogical(Sse2.ShiftRightLogical128BitLane(lowNibbles, 2).AsInt32(), 4).AsByte(); 155var indices = Sse2.And(Sse2.Or(lowNibbles, highNibbles), Vector128.Create((byte)0xF)); 166hex = Sse2.And(hex, Vector128.Create((ushort)0xFF).AsByte());
Microsoft.AspNetCore.Server.IIS (5)
src\aspnetcore\src\Shared\ServerInfrastructure\StringUtilities.cs (5)
154var highNibbles = Sse2.ShiftRightLogical(Sse2.ShiftRightLogical128BitLane(lowNibbles, 2).AsInt32(), 4).AsByte(); 155var indices = Sse2.And(Sse2.Or(lowNibbles, highNibbles), Vector128.Create((byte)0xF)); 166hex = Sse2.And(hex, Vector128.Create((ushort)0xFF).AsByte());
Microsoft.AspNetCore.Server.Kestrel.Core (5)
src\aspnetcore\src\Shared\ServerInfrastructure\StringUtilities.cs (5)
154var highNibbles = Sse2.ShiftRightLogical(Sse2.ShiftRightLogical128BitLane(lowNibbles, 2).AsInt32(), 4).AsByte(); 155var indices = Sse2.And(Sse2.Or(lowNibbles, highNibbles), Vector128.Create((byte)0xF)); 166hex = Sse2.And(hex, Vector128.Create((ushort)0xFF).AsByte());
Microsoft.AspNetCore.Server.Kestrel.Transport.Quic (5)
src\aspnetcore\src\Shared\ServerInfrastructure\StringUtilities.cs (5)
154var highNibbles = Sse2.ShiftRightLogical(Sse2.ShiftRightLogical128BitLane(lowNibbles, 2).AsInt32(), 4).AsByte(); 155var indices = Sse2.And(Sse2.Or(lowNibbles, highNibbles), Vector128.Create((byte)0xF)); 166hex = Sse2.And(hex, Vector128.Create((ushort)0xFF).AsByte());
Microsoft.CodeAnalysis (2)
Hashing\XxHashShared.cs (2)
717return Sse2.IsSupported ? 718Sse2.Multiply(source, sourceLow) :
Microsoft.CodeAnalysis.Workspaces (2)
src\roslyn\src\Compilers\Core\Portable\Hashing\XxHashShared.cs (2)
717return Sse2.IsSupported ? 718Sse2.Multiply(source, sourceLow) :
Microsoft.ML.CpuMath (1)
SseIntrinsics.cs (1)
66internal static readonly Vector128<float> AbsMask128 = Sse2.IsSupported ?
System.IO.Hashing (10)
System\IO\Hashing\Adler32.cs (4)
279vs1 += Sse2.SumAbsoluteDifferences(bytes1, Vector128<byte>.Zero).AsUInt32(); 280vs1 += Sse2.SumAbsoluteDifferences(bytes2, Vector128<byte>.Zero).AsUInt32(); 282vs2 += Sse2.MultiplyAddAdjacent(Ssse3.MultiplyAddAdjacent(bytes1, tap1), Vector128<short>.One).AsUInt32(); 283vs2 += Sse2.MultiplyAddAdjacent(Ssse3.MultiplyAddAdjacent(bytes2, tap2), Vector128<short>.One).AsUInt32();
System\IO\Hashing\VectorHelper.cs (4)
103if (Sse2.IsSupported) 105return Sse2.ShiftRightLogical128BitLane(operand, numBytesToShift); 120if (Sse2.IsSupported) 122return Sse2.ShiftLeftLogical128BitLane(operand, 8);
System\IO\Hashing\XxHashShared.cs (2)
706else if (Sse2.IsSupported) 709return Sse2.Multiply(source, sourceLow);
System.Numerics.Tensors (1)
System\Numerics\Tensors\netcore\TensorPrimitives.LeadingZeroCount.cs (1)
52Vector128<byte> nibbleSelectMask = Sse2.CompareEqual(highNibble, Vector128<byte>.Zero);
System.Private.CoreLib (199)
src\runtime\src\libraries\System.Private.CoreLib\src\System\Buffers\Text\Base64Helper\Base64DecoderHelper.cs (1)
1321output = Sse2.MultiplyAddAdjacent(merge_ab_and_bc, mergeConstant1);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Buffers\Text\Base64Helper\Base64EncoderHelper.cs (2)
501t1 = Sse2.MultiplyHigh(t0.AsUInt16(), shiftAC); 554indices = Sse2.SubtractSaturate(str.AsByte(), const51);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\Vector128.cs (25)
465if (Sse2.IsSupported) 479lowerBits = Sse2.And(vector, Create(0x00000000_FFFFFFFFL)).AsInt32(); 480lowerBits = Sse2.Or(lowerBits, Create(0x43300000_00000000).AsInt32()); 483Vector128<long> upperBits = Sse2.ShiftRightLogical(vector, 32); // Extract the 32 most significant bits of vector 484upperBits = Sse2.Xor(upperBits, Create(0x45300000_80000000)); // Flip the msb of upperBits and blend with the bit representation of double(2^84 + 2^63) 486Vector128<double> result = Sse2.Subtract(upperBits.AsDouble(), Create(0x45300000_80100000).AsDouble()); // Compute in double precision: (upper - (2^84 + 2^63 + 2^52)) + lower 487return Sse2.Add(result, lowerBits.AsDouble()); 506if (Sse2.IsSupported) 520lowerBits = Sse2.And(vector, Create(0x00000000_FFFFFFFFUL)).AsUInt32(); 521lowerBits = Sse2.Or(lowerBits, Create(0x43300000_00000000UL).AsUInt32()); 524Vector128<ulong> upperBits = Sse2.ShiftRightLogical(vector, 32); // Extract the 32 most significant bits of vector 525upperBits = Sse2.Xor(upperBits, Create(0x45300000_00000000UL)); // Blend upperBits with the bit representation of double(2^84) 527Vector128<double> result = Sse2.Subtract(upperBits.AsDouble(), Create(0x45300000_00100000UL).AsDouble()); // Compute in double precision: (upper - (2^84 + 2^52)) + lower 528return Sse2.Add(result, lowerBits.AsDouble()); 612if (Sse2.IsSupported) 619Vector128<int> lowerBits = Sse2.And(vector, Create(0x0000FFFFU)).AsInt32(); 620Vector128<int> upperBits = Sse2.ShiftRightLogical(vector, 16).AsInt32(); 622Vector128<float> lower = Sse2.ConvertToVector128Single(lowerBits); 623Vector128<float> upper = Sse2.ConvertToVector128Single(upperBits); 4401[CompExactlyDependsOn(typeof(Sse2))] 4405if (Sse2.IsSupported) 4407return Sse2.UnpackLow(left, right); 4433[CompExactlyDependsOn(typeof(Sse2))] 4437if (Sse2.IsSupported) 4439return Sse2.UnpackHigh(left, right);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\X86\Aes.cs (1)
23public new abstract class X64 : Sse2.X64
src\runtime\src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\X86\Pclmulqdq.cs (1)
23public new abstract class X64 : Sse2.X64
src\runtime\src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\X86\Sse3.cs (1)
23public new abstract class X64 : Sse2.X64
src\runtime\src\libraries\System.Private.CoreLib\src\System\SearchValues\Any1CharPackedIgnoreCaseSearchValues.cs (2)
35[CompExactlyDependsOn(typeof(Sse2))] 40[CompExactlyDependsOn(typeof(Sse2))]
src\runtime\src\libraries\System.Private.CoreLib\src\System\SearchValues\Any1CharPackedSearchValues.cs (2)
25[CompExactlyDependsOn(typeof(Sse2))] 30[CompExactlyDependsOn(typeof(Sse2))]
src\runtime\src\libraries\System.Private.CoreLib\src\System\SearchValues\Any2CharPackedIgnoreCaseSearchValues.cs (2)
42[CompExactlyDependsOn(typeof(Sse2))] 47[CompExactlyDependsOn(typeof(Sse2))]
src\runtime\src\libraries\System.Private.CoreLib\src\System\SearchValues\Any2CharPackedSearchValues.cs (2)
25[CompExactlyDependsOn(typeof(Sse2))] 30[CompExactlyDependsOn(typeof(Sse2))]
src\runtime\src\libraries\System.Private.CoreLib\src\System\SearchValues\Any3CharPackedSearchValues.cs (2)
25[CompExactlyDependsOn(typeof(Sse2))] 30[CompExactlyDependsOn(typeof(Sse2))]
src\runtime\src\libraries\System.Private.CoreLib\src\System\SearchValues\IndexOfAnyAsciiSearcher.cs (7)
1103[CompExactlyDependsOn(typeof(Sse2))] 1389[CompExactlyDependsOn(typeof(Sse2))] 1396if (Sse2.IsSupported) 1398return Sse2.PackUnsignedSaturate(lowerMin, upperMin); 1426[CompExactlyDependsOn(typeof(Sse2))] 1431if (Sse2.IsSupported) 1433return Sse2.PackUnsignedSaturate(lower.AsInt16(), upper.AsInt16());
src\runtime\src\libraries\System.Private.CoreLib\src\System\SearchValues\ProbabilisticMap.cs (5)
222[CompExactlyDependsOn(typeof(Sse2))] 232if (Sse2.IsSupported) 234sourceLower = Sse2.PackUnsignedSaturate((source0 & Vector128.Create((ushort)255)).AsInt16(), (source1 & Vector128.Create((ushort)255)).AsInt16()); 235sourceUpper = Sse2.PackUnsignedSaturate((source0 >>> 8).AsInt16(), (source1 >>> 8).AsInt16()); 263[CompExactlyDependsOn(typeof(Sse2))]
src\runtime\src\libraries\System.Private.CoreLib\src\System\SearchValues\Strings\Helpers\TeddyHelper.cs (3)
220[CompExactlyDependsOn(typeof(Sse2))] 228if (Sse2.IsSupported) 230return Sse2.PackUnsignedSaturate(source0.AsInt16(), source1.AsInt16());
src\runtime\src\libraries\System.Private.CoreLib\src\System\SearchValues\Strings\SingleStringSearchValuesPackedThreeChars.cs (7)
45Sse2.IsSupported && 52Debug.Assert(Sse2.IsSupported || AdvSimd.Arm64.IsSupported); 185else if ((Sse2.IsSupported || AdvSimd.Arm64.IsSupported) && searchSpaceMinusValueTailLength - Vector128<byte>.Count >= 0) 251[CompExactlyDependsOn(typeof(Sse2))] 391[CompExactlyDependsOn(typeof(Sse2))] 398return Sse2.IsSupported 399? Sse2.PackUnsignedSaturate(input0.AsInt16(), input1.AsInt16())
src\runtime\src\libraries\System.Private.CoreLib\src\System\SpanHelpers.Packed.cs (21)
18public static bool PackedIndexOfIsSupported => Sse2.IsSupported; 32[CompExactlyDependsOn(typeof(Sse2))] 37[CompExactlyDependsOn(typeof(Sse2))] 42[CompExactlyDependsOn(typeof(Sse2))] 47[CompExactlyDependsOn(typeof(Sse2))] 52[CompExactlyDependsOn(typeof(Sse2))] 57[CompExactlyDependsOn(typeof(Sse2))] 62[CompExactlyDependsOn(typeof(Sse2))] 71[CompExactlyDependsOn(typeof(Sse2))] 80[CompExactlyDependsOn(typeof(Sse2))] 90[CompExactlyDependsOn(typeof(Sse2))] 100[CompExactlyDependsOn(typeof(Sse2))] 105[CompExactlyDependsOn(typeof(Sse2))] 109[CompExactlyDependsOn(typeof(Sse2))] 311[CompExactlyDependsOn(typeof(Sse2))] 514[CompExactlyDependsOn(typeof(Sse2))] 728[CompExactlyDependsOn(typeof(Sse2))] 946[CompExactlyDependsOn(typeof(Sse2))] 1166[CompExactlyDependsOn(typeof(Sse2))] 1169Debug.Assert(Sse2.IsSupported); 1174return Sse2.PackUnsignedSaturate(source0, source1).AsByte();
src\runtime\src\libraries\System.Private.CoreLib\src\System\String.Manipulation.cs (1)
2323if (Sse2.IsSupported && PackedSpanHelpers.CanUsePackedIndexOf(c) && PackedSpanHelpers.CanUsePackedIndexOf(c2) && PackedSpanHelpers.CanUsePackedIndexOf(c3))
src\runtime\src\libraries\System.Private.CoreLib\src\System\Text\Ascii.Equality.cs (2)
511else if (Sse2.IsSupported) 514return Sse2.UnpackLow(vec, Vector128<byte>.Zero).AsUInt16();
src\runtime\src\libraries\System.Private.CoreLib\src\System\Text\Ascii.Utility.cs (33)
118(Sse2.IsSupported || AdvSimd.IsSupported)) 354Debug.Assert(Sse2.IsSupported); 373Debug.Assert(Sse2.IsSupported || AdvSimd.Arm64.IsSupported, "Sse2 or AdvSimd64 required."); 396if (Sse2.IsSupported) 398currentSseMask = (uint)Sse2.MoveMask(Sse2.LoadVector128(pBuffer)); // unaligned load 452if (Sse2.IsSupported) 454Vector128<byte> firstVector = Sse2.LoadAlignedVector128(pBuffer); 455Vector128<byte> secondVector = Sse2.LoadAlignedVector128(pBuffer + SizeOfVector128); 457currentSseMask = (uint)Sse2.MoveMask(firstVector); 458secondSseMask = (uint)Sse2.MoveMask(secondVector); 502if (Sse2.IsSupported) 504currentSseMask = (uint)Sse2.MoveMask(Sse2.LoadAlignedVector128(pBuffer)); 537if (Sse2.IsSupported) 539currentSseMask = (uint)Sse2.MoveMask(Sse2.LoadVector128(pBuffer)); // unaligned load 573if (Sse2.IsSupported) 596if (Sse2.IsSupported) 741(Sse2.IsSupported || AdvSimd.IsSupported)) 974Debug.Assert(Sse2.IsSupported || AdvSimd.Arm64.IsSupported, "Should've been checked by caller."); 1121if (Sse2.IsSupported) 1129currentMask = (uint)Sse2.MoveMask(Sse2.AddSaturate(firstVector, asciiMaskForAddSaturate).AsByte()); 1274if (Sse2.X64.IsSupported) 1279Vector128<short> vecWide = Sse2.X64.ConvertScalarToVector128UInt64(value).AsInt16(); 1280Vector128<uint> vecNarrow = Sse2.PackUnsignedSaturate(vecWide, vecWide).AsUInt32(); 1281Unsafe.WriteUnaligned(ref outputBuffer, Sse2.ConvertToUInt32(vecNarrow)); 1559else if (Sse2.IsSupported) 1565return (Sse2.MoveMask(Sse2.AddSaturate(utf16Vector, asciiMaskForAddSaturate).AsByte()) & 0b_1010_1010_1010_1010) != 0; 1677if (Sse2.IsSupported) 1679return Sse2.PackUnsignedSaturate(vectorFirst.AsInt16(), vectorSecond.AsInt16());
src\runtime\src\libraries\System.Private.CoreLib\src\System\Text\Latin1Utility.cs (61)
28return (Sse2.IsSupported) 167[CompExactlyDependsOn(typeof(Sse2))] 185Debug.Assert(Sse2.IsSupported, "Should've been checked by caller."); 209firstVector = Sse2.LoadVector128((ushort*)pBuffer); // unaligned load 215currentMask = (uint)Sse2.MoveMask(Sse2.AddSaturate(firstVector, latin1MaskForAddSaturate).AsByte()); 261firstVector = Sse2.LoadAlignedVector128((ushort*)pBuffer); 262secondVector = Sse2.LoadAlignedVector128((ushort*)pBuffer + SizeOfVector128InChars); 279currentMask = (uint)Sse2.MoveMask(Sse2.AddSaturate(combinedVector, latin1MaskForAddSaturate).AsByte()); 308firstVector = Sse2.LoadAlignedVector128((ushort*)pBuffer); 324currentMask = (uint)Sse2.MoveMask(Sse2.AddSaturate(firstVector, latin1MaskForAddSaturate).AsByte()); 343firstVector = Sse2.LoadVector128((ushort*)pBuffer); // unaligned load 359currentMask = (uint)Sse2.MoveMask(Sse2.AddSaturate(firstVector, latin1MaskForAddSaturate).AsByte()); 392currentMask = (uint)Sse2.MoveMask(Sse2.AddSaturate(firstVector, latin1MaskForAddSaturate).AsByte()); 407currentMask = (uint)Sse2.MoveMask(Sse2.AddSaturate(firstVector, latin1MaskForAddSaturate).AsByte()); 549if (Sse2.IsSupported) 765[CompExactlyDependsOn(typeof(Sse2))] 780Debug.Assert(Sse2.IsSupported); 790Vector128<short> utf16VectorFirst = Sse2.LoadVector128((short*)pUtf16Buffer); // unaligned load 806if ((Sse2.MoveMask(Sse2.AddSaturate(utf16VectorFirst.AsUInt16(), latin1MaskForAddSaturate).AsByte()) & NonLatin1DataSeenMask) != 0) 814Vector128<byte> latin1Vector = Sse2.PackUnsignedSaturate(utf16VectorFirst, utf16VectorFirst); 815Sse2.StoreScalar((ulong*)pLatin1Buffer, latin1Vector.AsUInt64()); // ulong* calculated here is UNALIGNED 834utf16VectorFirst = Sse2.LoadVector128((short*)pUtf16Buffer + currentOffsetInElements); // unaligned load 848if ((Sse2.MoveMask(Sse2.AddSaturate(utf16VectorFirst.AsUInt16(), latin1MaskForAddSaturate).AsByte()) & NonLatin1DataSeenMask) != 0) 855latin1Vector = Sse2.PackUnsignedSaturate(utf16VectorFirst, utf16VectorFirst); 856Sse2.StoreScalar((ulong*)(pLatin1Buffer + currentOffsetInElements), latin1Vector.AsUInt64()); // ulong* calculated here is UNALIGNED 873utf16VectorFirst = Sse2.LoadVector128((short*)pUtf16Buffer + currentOffsetInElements); // unaligned load 874Vector128<short> utf16VectorSecond = Sse2.LoadVector128((short*)pUtf16Buffer + currentOffsetInElements + SizeOfVector128 / sizeof(short)); // unaligned load 889if ((Sse2.MoveMask(Sse2.AddSaturate(combinedVector.AsUInt16(), latin1MaskForAddSaturate).AsByte()) & NonLatin1DataSeenMask) != 0) 897latin1Vector = Sse2.PackUnsignedSaturate(utf16VectorFirst, utf16VectorSecond); 900Sse2.StoreAligned(pLatin1Buffer + currentOffsetInElements, latin1Vector); // aligned 925if ((Sse2.MoveMask(Sse2.AddSaturate(utf16VectorFirst.AsUInt16(), latin1MaskForAddSaturate).AsByte()) & NonLatin1DataSeenMask) != 0) 932latin1Vector = Sse2.PackUnsignedSaturate(utf16VectorFirst, utf16VectorFirst); 936Sse2.StoreScalar((ulong*)(pLatin1Buffer + currentOffsetInElements), latin1Vector.AsUInt64()); // ulong* calculated here is aligned 954if (Sse2.IsSupported) 964[CompExactlyDependsOn(typeof(Sse2))] 972Debug.Assert(Sse2.IsSupported); 989latin1Vector = Sse2.LoadScalarVector128((ulong*)pLatin1Buffer).AsByte(); // unaligned load 990Sse2.Store((byte*)pUtf16Buffer, Sse2.UnpackLow(latin1Vector, zeroVector)); // unaligned write 1011latin1Vector = Sse2.LoadVector128(pLatin1Buffer + currentOffset); // unaligned load 1017Vector128<byte> low = Sse2.UnpackLow(latin1Vector, zeroVector); 1018Sse2.StoreAligned((byte*)pCurrentWriteAddress, low); 1020Vector128<byte> high = Sse2.UnpackHigh(latin1Vector, zeroVector); 1021Sse2.StoreAligned((byte*)pCurrentWriteAddress + SizeOfVector128, high); 1037latin1Vector = Sse2.LoadScalarVector128((ulong*)(pLatin1Buffer + currentOffset)).AsByte(); // unaligned load 1038Sse2.Store((byte*)(pUtf16Buffer + currentOffset), Sse2.UnpackLow(latin1Vector, zeroVector)); // unaligned write 1046latin1Vector = Sse2.LoadScalarVector128((uint*)(pLatin1Buffer + currentOffset)).AsByte(); // unaligned load 1047Sse2.StoreScalar((ulong*)(pUtf16Buffer + currentOffset), Sse2.UnpackLow(latin1Vector, zeroVector).AsUInt64()); // unaligned write 1072Debug.Assert(!Sse2.IsSupported);
src\runtime\src\libraries\System.Private.CoreLib\src\System\Text\Latin1Utility.Helpers.cs (4)
53if (Sse2.X64.IsSupported) 58Vector128<short> vecWide = Sse2.X64.ConvertScalarToVector128UInt64(value).AsInt16(); 59Vector128<uint> vecNarrow = Sse2.PackUnsignedSaturate(vecWide, vecWide).AsUInt32(); 60Unsafe.WriteUnaligned(ref outputBuffer, Sse2.ConvertToUInt32(vecNarrow));
src\runtime\src\libraries\System.Private.CoreLib\src\System\Text\Unicode\Utf8Utility.Transcoding.cs (10)
984Sse2.StoreScalar((ulong*)pOutputBuffer /* unaligned */, Sse2.PackUnsignedSaturate(utf16Data, utf16Data).AsUInt64()); 1026else if (Sse2.IsSupported) 1028Unsafe.WriteUnaligned(pOutputBuffer, Sse2.ConvertToUInt32(Sse2.PackUnsignedSaturate(utf16Data, utf16Data).AsUInt32())); 1052if (Sse2.X64.IsSupported) 1054possibleNonAsciiQWord = Sse2.X64.ConvertToUInt64(utf16Data.AsUInt64()); 1074else if (Sse2.IsSupported) 1076Unsafe.WriteUnaligned(pOutputBuffer, Sse2.ConvertToUInt32(Sse2.PackUnsignedSaturate(utf16Data, utf16Data).AsUInt32()));
src\runtime\src\libraries\System.Private.CoreLib\src\System\Text\Unicode\Utf8Utility.Validation.cs (4)
153if (Sse2.IsSupported) 155uint mask = (uint)Sse2.MoveMask(Sse2.LoadVector128(pInputBuffer)); 195Debug.Assert((AdvSimd.Arm64.IsSupported && BitConverter.IsLittleEndian) || Sse2.IsSupported || PackedSimd.IsSupported);
System.Runtime.Intrinsics (1)
src\runtime\artifacts\obj\System.Runtime.Intrinsics\Release\net11.0\System.Runtime.Intrinsics.Forwards.cs (1)
53[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.Intrinsics.X86.Sse2))]