5150 references to Vector512
System.Collections (31)
System\Collections\BitArray.cs (31)
139for (; i <= (uint)values.Length - Vector512<byte>.Count; i += (uint)Vector512<byte>.Count) 141Vector512<byte> vector = Vector512.LoadUnsafe(ref value, i); 142Vector512<byte> isFalse = Vector512.Equals(vector, Vector512<byte>.Zero); 349if (Vector512.IsHardwareAccelerated && (uint)count >= Vector512<int>.Count) 351for (; i < (uint)count - (Vector512<int>.Count - 1u); i += (uint)Vector512<int>.Count) 353Vector512<int> result = Vector512.LoadUnsafe(ref left, i) & Vector512.LoadUnsafe(ref right, i); 422if (Vector512.IsHardwareAccelerated && (uint)count >= Vector512<int>.Count) 424for (; i < (uint)count - (Vector512<int>.Count - 1u); i += (uint)Vector512<int>.Count) 426Vector512<int> result = Vector512.LoadUnsafe(ref left, i) | Vector512.LoadUnsafe(ref right, i); 496if (Vector512.IsHardwareAccelerated && (uint)count >= Vector512<int>.Count) 498for (; i < (uint)count - (Vector512<int>.Count - 1u); i += (uint)Vector512<int>.Count) 500Vector512<int> result = Vector512.LoadUnsafe(ref left, i) ^ Vector512.LoadUnsafe(ref right, i); 561if (Vector512.IsHardwareAccelerated && (uint)count >= Vector512<int>.Count) 563for (; i < (uint)count - (Vector512<int>.Count - 1u); i += (uint)Vector512<int>.Count) 565Vector512<int> result = ~Vector512.LoadUnsafe(ref value, i); 840if (Avx512F.IsSupported && (uint)m_length >= Vector512<byte>.Count) 845Vector512<byte> shuffleMask = Vector512.Create(lowerShuffleMask_CopyToBoolArray256, upperShuffleMask_CopyToBoolArray256); 846Vector512<byte> bitMask = Vector512.Create(0x80402010_08040201).AsByte(); 847Vector512<byte> ones = Vector512.Create((byte)1); 851for (; (i + Vector512<byte>.Count) <= (uint)m_length; i += (uint)Vector512<byte>.Count) 854Vector512<ulong> scalar = Vector512.Create(bits); 855Vector512<byte> shuffled = Avx512BW.Shuffle(scalar.AsByte(), shuffleMask); 856Vector512<byte> extracted = Avx512F.And(shuffled, bitMask); 860Vector512<byte> normalized = Avx512BW.Min(extracted, ones);
System.Linq (16)
System\Linq\Max.cs (3)
21public static Vector512<T> Compare(Vector512<T> left, Vector512<T> right) => Vector512.Max(left, right);
System\Linq\MaxMin.cs (10)
19public static abstract Vector512<T> Compare(Vector512<T> left, Vector512<T> right); 75else if (!Vector512.IsHardwareAccelerated || !Vector512<T>.IsSupported || span.Length < Vector512<T>.Count) 102ref T lastVectorStart = ref Unsafe.Add(ref current, span.Length - Vector512<T>.Count); 104Vector512<T> best = Vector512.LoadUnsafe(ref current); 105current = ref Unsafe.Add(ref current, Vector512<T>.Count); 110current = ref Unsafe.Add(ref current, Vector512<T>.Count); 115for (int i = 1; i < Vector512<T>.Count; i++)
System\Linq\Min.cs (3)
21public static Vector512<T> Compare(Vector512<T> left, Vector512<T> right) => Vector512.Min(left, right);
System.Numerics.Tensors (1588)
System\Numerics\Tensors\netcore\Common\TensorPrimitives.IAggregationOperator.cs (104)
20static abstract T Invoke(Vector512<T> x); 35public Vector512<T> Invoke(Vector512<T> x) => TOperator.Invoke(x); 72if (Vector512.IsHardwareAccelerated && Vector512<T>.IsSupported && TTransformOperator.Vectorizable) 76if (remainder >= (uint)Vector512<T>.Count) 515Vector512<T> vresult = Vector512.Create(TAggregationOperator.IdentityValue); 519Vector512<T> beg = transform.Invoke(Vector512.LoadUnsafe(ref xRef)); 520Vector512<T> end = transform.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)Vector512<T>.Count)); 524if (remainder > (uint)(Vector512<T>.Count * 8)) 550misalignment = ((uint)sizeof(Vector512<T>) - ((nuint)xPtr % (uint)sizeof(Vector512<T>))) / (uint)sizeof(T); 554Debug.Assert(((nuint)xPtr % (uint)sizeof(Vector512<T>)) == 0); 564misalignment = (uint)Vector512<T>.Count; 569Vector512<T> vector1; 570Vector512<T> vector2; 571Vector512<T> vector3; 572Vector512<T> vector4; 576while (remainder >= (uint)(Vector512<T>.Count * 8)) 580vector1 = transform.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 0))); 581vector2 = transform.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 1))); 582vector3 = transform.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 2))); 583vector4 = transform.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 3))); 592vector1 = transform.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 4))); 593vector2 = transform.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 5))); 594vector3 = transform.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 6))); 595vector4 = transform.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 7))); 605xPtr += (uint)(Vector512<T>.Count * 8); 607remainder -= (uint)(Vector512<T>.Count * 8); 628(nuint blocks, nuint trailing) = Math.DivRem(remainder, (nuint)Vector512<T>.Count); 636Vector512<T> vector = transform.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 7))); 643Vector512<T> vector = transform.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 6))); 650Vector512<T> vector = transform.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 5))); 657Vector512<T> vector = transform.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 4))); 664Vector512<T> vector = transform.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 3))); 671Vector512<T> vector = transform.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 2))); 678Vector512<T> vector = transform.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 1))); 1191if (Vector512.IsHardwareAccelerated && Vector512<T>.IsSupported && TBinaryOperator.Vectorizable) 1195if (remainder >= (uint)Vector512<T>.Count) 1686Vector512<T> vresult = Vector512.Create(TAggregationOperator.IdentityValue); 1690Vector512<T> beg = TBinaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef), 1692Vector512<T> end = TBinaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)Vector512<T>.Count), 1693Vector512.LoadUnsafe(ref yRef, remainder - (uint)Vector512<T>.Count)); 1697if (remainder > (uint)(Vector512<T>.Count * 8)) 1725misalignment = ((uint)sizeof(Vector512<T>) - ((nuint)xPtr % (uint)sizeof(Vector512<T>))) / (uint)sizeof(T); 1730Debug.Assert(((nuint)xPtr % (uint)sizeof(Vector512<T>)) == 0); 1740misalignment = (uint)Vector512<T>.Count; 1748Vector512<T> vector1; 1749Vector512<T> vector2; 1750Vector512<T> vector3; 1751Vector512<T> vector4; 1755while (remainder >= (uint)(Vector512<T>.Count * 8)) 1759vector1 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 0)), 1760Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 0))); 1761vector2 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 1)), 1762Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 1))); 1763vector3 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 2)), 1764Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 2))); 1765vector4 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 3)), 1766Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 3))); 1775vector1 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 4)), 1776Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 4))); 1777vector2 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 5)), 1778Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 5))); 1779vector3 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 6)), 1780Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 6))); 1781vector4 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 7)), 1782Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 7))); 1792xPtr += (uint)(Vector512<T>.Count * 8); 1793yPtr += (uint)(Vector512<T>.Count * 8); 1795remainder -= (uint)(Vector512<T>.Count * 8); 1817(nuint blocks, nuint trailing) = Math.DivRem(remainder, (nuint)Vector512<T>.Count); 1825Vector512<T> vector = TBinaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 7)), 1826Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 7))); 1833Vector512<T> vector = TBinaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 6)), 1834Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 6))); 1841Vector512<T> vector = TBinaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 5)), 1842Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 5))); 1849Vector512<T> vector = TBinaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 4)), 1850Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 4))); 1857Vector512<T> vector = TBinaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 3)), 1858Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 3))); 1865Vector512<T> vector = TBinaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 2)), 1866Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 2))); 1873Vector512<T> vector = TBinaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 1)), 1874Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 1))); 2463private static Vector512<T> CreateAlignmentMaskVector512<T>(int count) 2571private static Vector512<T> CreateRemainderMaskVector512<T>(int count)
System\Numerics\Tensors\netcore\Common\TensorPrimitives.IBinaryOperator.cs (190)
20static abstract Vector512<T> Invoke(Vector512<T> x, Vector512<T> y); 85if (Vector512.IsHardwareAccelerated && Vector512<T>.IsSupported && TBinaryOperator.Vectorizable) 87if (remainder >= (uint)Vector512<T>.Count) 644Vector512<T> beg = TBinaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef), 646Vector512<T> end = TBinaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)Vector512<T>.Count), 647Vector512.LoadUnsafe(ref yRef, remainder - (uint)Vector512<T>.Count)); 649if (remainder > (uint)(Vector512<T>.Count * 8)) 676nuint misalignment = ((uint)sizeof(Vector512<T>) - ((nuint)dPtr % (uint)sizeof(Vector512<T>))) / (uint)sizeof(T); 682Debug.Assert(((nuint)dPtr % (uint)sizeof(Vector512<T>)) == 0); 687Vector512<T> vector1; 688Vector512<T> vector2; 689Vector512<T> vector3; 690Vector512<T> vector4; 697while (remainder >= (uint)(Vector512<T>.Count * 8)) 701vector1 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 0)), 702Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 0))); 703vector2 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 1)), 704Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 1))); 705vector3 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 2)), 706Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 2))); 707vector4 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 3)), 708Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 3))); 710vector1.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 0)); 711vector2.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 1)); 712vector3.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 2)); 713vector4.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 3)); 717vector1 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 4)), 718Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 4))); 719vector2 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 5)), 720Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 5))); 721vector3 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 6)), 722Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 6))); 723vector4 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 7)), 724Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 7))); 726vector1.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 4)); 727vector2.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 5)); 728vector3.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 6)); 729vector4.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 7)); 734xPtr += (uint)(Vector512<T>.Count * 8); 735yPtr += (uint)(Vector512<T>.Count * 8); 736dPtr += (uint)(Vector512<T>.Count * 8); 738remainder -= (uint)(Vector512<T>.Count * 8); 743while (remainder >= (uint)(Vector512<T>.Count * 8)) 747vector1 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 0)), 748Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 0))); 749vector2 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 1)), 750Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 1))); 751vector3 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 2)), 752Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 2))); 753vector4 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 3)), 754Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 3))); 756vector1.Store(dPtr + (uint)(Vector512<T>.Count * 0)); 757vector2.Store(dPtr + (uint)(Vector512<T>.Count * 1)); 758vector3.Store(dPtr + (uint)(Vector512<T>.Count * 2)); 759vector4.Store(dPtr + (uint)(Vector512<T>.Count * 3)); 763vector1 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 4)), 764Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 4))); 765vector2 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 5)), 766Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 5))); 767vector3 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 6)), 768Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 6))); 769vector4 = TBinaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 7)), 770Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 7))); 772vector1.Store(dPtr + (uint)(Vector512<T>.Count * 4)); 773vector2.Store(dPtr + (uint)(Vector512<T>.Count * 5)); 774vector3.Store(dPtr + (uint)(Vector512<T>.Count * 6)); 775vector4.Store(dPtr + (uint)(Vector512<T>.Count * 7)); 780xPtr += (uint)(Vector512<T>.Count * 8); 781yPtr += (uint)(Vector512<T>.Count * 8); 782dPtr += (uint)(Vector512<T>.Count * 8); 784remainder -= (uint)(Vector512<T>.Count * 8); 804remainder = (remainder + (uint)(Vector512<T>.Count - 1)) & (nuint)(-Vector512<T>.Count); 806switch (remainder / (uint)Vector512<T>.Count) 810Vector512<T> vector = TBinaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 8)), 811Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 8))); 812vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 8)); 818Vector512<T> vector = TBinaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 7)), 819Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 7))); 820vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 7)); 826Vector512<T> vector = TBinaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 6)), 827Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 6))); 828vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 6)); 834Vector512<T> vector = TBinaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 5)), 835Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 5))); 836vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 5)); 842Vector512<T> vector = TBinaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 4)), 843Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 4))); 844vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 4)); 850Vector512<T> vector = TBinaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 3)), 851Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 3))); 852vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 3)); 858Vector512<T> vector = TBinaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 2)), 859Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 2))); 860vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 2)); 867end.StoreUnsafe(ref dRef, endIndex - (uint)Vector512<T>.Count); 1417if (Vector512.IsHardwareAccelerated && Vector512<T>.IsSupported && TTransformOperator.Vectorizable && TBinaryOperator.Vectorizable) 1419if (remainder >= (uint)Vector512<T>.Count) 1968Vector512<T> yVec = Vector512.Create(y); 1970Vector512<T> beg = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.LoadUnsafe(ref xRef)), 1972Vector512<T> end = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)Vector512<T>.Count)), 1975if (remainder > (uint)(Vector512<T>.Count * 8)) 2000nuint misalignment = ((uint)sizeof(Vector512<T>) - ((nuint)dPtr % (uint)sizeof(Vector512<T>))) / (uint)sizeof(T); 2005Debug.Assert(((nuint)dPtr % (uint)sizeof(Vector512<T>)) == 0); 2010Vector512<T> vector1; 2011Vector512<T> vector2; 2012Vector512<T> vector3; 2013Vector512<T> vector4; 2020while (remainder >= (uint)(Vector512<T>.Count * 8)) 2024vector1 = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 0))), 2026vector2 = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 1))), 2028vector3 = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 2))), 2030vector4 = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 3))), 2033vector1.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 0)); 2034vector2.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 1)); 2035vector3.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 2)); 2036vector4.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 3)); 2040vector1 = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 4))), 2042vector2 = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 5))), 2044vector3 = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 6))), 2046vector4 = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 7))), 2049vector1.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 4)); 2050vector2.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 5)); 2051vector3.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 6)); 2052vector4.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 7)); 2057xPtr += (uint)(Vector512<T>.Count * 8); 2058dPtr += (uint)(Vector512<T>.Count * 8); 2060remainder -= (uint)(Vector512<T>.Count * 8); 2065while (remainder >= (uint)(Vector512<T>.Count * 8)) 2069vector1 = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 0))), 2071vector2 = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 1))), 2073vector3 = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 2))), 2075vector4 = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 3))), 2078vector1.Store(dPtr + (uint)(Vector512<T>.Count * 0)); 2079vector2.Store(dPtr + (uint)(Vector512<T>.Count * 1)); 2080vector3.Store(dPtr + (uint)(Vector512<T>.Count * 2)); 2081vector4.Store(dPtr + (uint)(Vector512<T>.Count * 3)); 2085vector1 = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 4))), 2087vector2 = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 5))), 2089vector3 = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 6))), 2091vector4 = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 7))), 2094vector1.Store(dPtr + (uint)(Vector512<T>.Count * 4)); 2095vector2.Store(dPtr + (uint)(Vector512<T>.Count * 5)); 2096vector3.Store(dPtr + (uint)(Vector512<T>.Count * 6)); 2097vector4.Store(dPtr + (uint)(Vector512<T>.Count * 7)); 2102xPtr += (uint)(Vector512<T>.Count * 8); 2103dPtr += (uint)(Vector512<T>.Count * 8); 2105remainder -= (uint)(Vector512<T>.Count * 8); 2124remainder = (remainder + (uint)(Vector512<T>.Count - 1)) & (nuint)(-Vector512<T>.Count); 2126switch (remainder / (uint)Vector512<T>.Count) 2130Vector512<T> vector = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 8))), 2132vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 8)); 2138Vector512<T> vector = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 7))), 2140vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 7)); 2146Vector512<T> vector = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 6))), 2148vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 6)); 2154Vector512<T> vector = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 5))), 2156vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 5)); 2162Vector512<T> vector = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 4))), 2164vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 4)); 2170Vector512<T> vector = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 3))), 2172vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 3)); 2178Vector512<T> vector = TBinaryOperator.Invoke(TTransformOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 2))), 2180vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 2)); 2187end.StoreUnsafe(ref dRef, endIndex - (uint)Vector512<T>.Count); 2730private static T HorizontalAggregate<T, TAggregate>(Vector512<T> x) where TAggregate : struct, IBinaryOperator<T> => 2775public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y) => TOperator.Invoke(y, x);
System\Numerics\Tensors\netcore\Common\TensorPrimitives.IBooleanUnaryOperator.cs (47)
22static abstract Vector512<T> Invoke(Vector512<T> x); 31static abstract bool ShouldEarlyExit(Vector512<T> result); 43public static bool ShouldEarlyExit(Vector512<T> result) => Vector512.AnyWhereAllBitsSet(result); 78public static bool ShouldEarlyExit(Vector512<T> result) => 79typeof(T) == typeof(float) ? Vector512.EqualsAny(result.AsUInt32(), Vector512<uint>.Zero) : 80typeof(T) == typeof(double) ? Vector512.EqualsAny(result.AsUInt64(), Vector512<ulong>.Zero) : 81Vector512.EqualsAny(result, Vector512<T>.Zero); 101if (Vector512.IsHardwareAccelerated && TOperator.Vectorizable && Vector512<T>.IsSupported) 103oneVectorFromEnd = x.Length - Vector512<T>.Count; 114i += Vector512<T>.Count; 120TAnyAll.ShouldEarlyExit(TOperator.Invoke(Vector512.LoadUnsafe(ref xRef, (uint)(x.Length - Vector512<T>.Count))))) 235if (Vector512.IsHardwareAccelerated && TOperator.Vectorizable && Vector512<T>.IsSupported) 237int vectorFromEnd = x.Length - Vector512<T>.Count; 244i += Vector512<T>.Count; 251i = x.Length - Vector512<T>.Count; 259Vector512<byte> v = TOperator.Invoke(Vector512.LoadUnsafe(ref xRef, (uint)i)).AsByte(); 261(v & Vector512<byte>.One).StoreUnsafe(ref Unsafe.As<bool, byte>(ref destinationRef), (uint)i); 343if (Vector512.IsHardwareAccelerated && TOperator.Vectorizable && Vector512<T>.IsSupported) 345int vectorsFromEnd = x.Length - (Vector512<T>.Count * sizeof(T)); 352i += Vector512<T>.Count * sizeof(T); 359i = x.Length - (Vector512<T>.Count * sizeof(T)); 367Vector512<byte> v = 370TOperator.Invoke(Vector512.LoadUnsafe(ref xRef, (uint)(i + Vector512<T>.Count))).AsUInt16()); 372(v & Vector512<byte>.One).StoreUnsafe(ref Unsafe.As<bool, byte>(ref destinationRef), (uint)i); 460if (Vector512.IsHardwareAccelerated && TOperator.Vectorizable && Vector512<T>.IsSupported) 462int vectorsFromEnd = x.Length - (Vector512<T>.Count * sizeof(T)); 469i += Vector512<T>.Count * sizeof(T); 476i = x.Length - (Vector512<T>.Count * sizeof(T)); 484Vector512<byte> v = 488TOperator.Invoke(Vector512.LoadUnsafe(ref xRef, (uint)(i + Vector512<T>.Count))).AsUInt32()), 490TOperator.Invoke(Vector512.LoadUnsafe(ref xRef, (uint)(i + (2 * Vector512<T>.Count)))).AsUInt32(), 491TOperator.Invoke(Vector512.LoadUnsafe(ref xRef, (uint)(i + (3 * Vector512<T>.Count)))).AsUInt32())); 493(v & Vector512<byte>.One).StoreUnsafe(ref Unsafe.As<bool, byte>(ref destinationRef), (uint)i); 587if (Vector512.IsHardwareAccelerated && TOperator.Vectorizable && Vector512<T>.IsSupported) 591int vectorsFromEnd = x.Length - (Vector512<T>.Count * sizeof(T)); 598i += Vector512<T>.Count * sizeof(T); 605i = x.Length - (Vector512<T>.Count * sizeof(T)); 613Vector512<byte> v = 618TOperator.Invoke(Vector512.LoadUnsafe(ref xRef, (uint)(i + Vector512<T>.Count))).AsUInt64()), 620TOperator.Invoke(Vector512.LoadUnsafe(ref xRef, (uint)(i + (2 * Vector512<T>.Count)))).AsUInt64(), 621TOperator.Invoke(Vector512.LoadUnsafe(ref xRef, (uint)(i + (3 * Vector512<T>.Count)))).AsUInt64())), 624TOperator.Invoke(Vector512.LoadUnsafe(ref xRef, (uint)(i + (4 * Vector512<T>.Count)))).AsUInt64(), 625TOperator.Invoke(Vector512.LoadUnsafe(ref xRef, (uint)(i + (5 * Vector512<T>.Count)))).AsUInt64()), 627TOperator.Invoke(Vector512.LoadUnsafe(ref xRef, (uint)(i + (6 * Vector512<T>.Count)))).AsUInt64(), 628TOperator.Invoke(Vector512.LoadUnsafe(ref xRef, (uint)(i + (7 * Vector512<T>.Count)))).AsUInt64()))); 630(v & Vector512<byte>.One).StoreUnsafe(ref Unsafe.As<bool, byte>(ref destinationRef), (uint)i);
System\Numerics\Tensors\netcore\Common\TensorPrimitives.IIndexOfOperator.cs (6)
17static abstract void Invoke(ref Vector512<T> result, Vector512<T> current, ref Vector512<T> resultIndex, Vector512<T> currentIndex); 115private static int IndexOfFinalAggregate<T, TIndexOfOperator>(Vector512<T> result, Vector512<T> resultIndex)
System\Numerics\Tensors\netcore\Common\TensorPrimitives.IStatefulUnaryOperator.cs (80)
20Vector512<T> Invoke(Vector512<T> x); 51if (Vector512.IsHardwareAccelerated && Vector512<T>.IsSupported && TStatefulUnaryOperator.Vectorizable) 53if (remainder >= (uint)Vector512<T>.Count) 547Vector512<T> beg = op.Invoke(Vector512.LoadUnsafe(ref xRef)); 548Vector512<T> end = op.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)Vector512<T>.Count)); 550if (remainder > (uint)(Vector512<T>.Count * 8)) 575nuint misalignment = ((uint)sizeof(Vector512<T>) - ((nuint)dPtr % (uint)sizeof(Vector512<T>))) / (uint)sizeof(T); 580Debug.Assert(((nuint)dPtr % (uint)sizeof(Vector512<T>)) == 0); 585Vector512<T> vector1; 586Vector512<T> vector2; 587Vector512<T> vector3; 588Vector512<T> vector4; 595while (remainder >= (uint)(Vector512<T>.Count * 8)) 599vector1 = op.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 0))); 600vector2 = op.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 1))); 601vector3 = op.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 2))); 602vector4 = op.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 3))); 604vector1.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 0)); 605vector2.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 1)); 606vector3.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 2)); 607vector4.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 3)); 611vector1 = op.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 4))); 612vector2 = op.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 5))); 613vector3 = op.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 6))); 614vector4 = op.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 7))); 616vector1.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 4)); 617vector2.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 5)); 618vector3.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 6)); 619vector4.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 7)); 624xPtr += (uint)(Vector512<T>.Count * 8); 625dPtr += (uint)(Vector512<T>.Count * 8); 627remainder -= (uint)(Vector512<T>.Count * 8); 632while (remainder >= (uint)(Vector512<T>.Count * 8)) 636vector1 = op.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 0))); 637vector2 = op.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 1))); 638vector3 = op.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 2))); 639vector4 = op.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 3))); 641vector1.Store(dPtr + (uint)(Vector512<T>.Count * 0)); 642vector2.Store(dPtr + (uint)(Vector512<T>.Count * 1)); 643vector3.Store(dPtr + (uint)(Vector512<T>.Count * 2)); 644vector4.Store(dPtr + (uint)(Vector512<T>.Count * 3)); 648vector1 = op.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 4))); 649vector2 = op.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 5))); 650vector3 = op.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 6))); 651vector4 = op.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 7))); 653vector1.Store(dPtr + (uint)(Vector512<T>.Count * 4)); 654vector2.Store(dPtr + (uint)(Vector512<T>.Count * 5)); 655vector3.Store(dPtr + (uint)(Vector512<T>.Count * 6)); 656vector4.Store(dPtr + (uint)(Vector512<T>.Count * 7)); 661xPtr += (uint)(Vector512<T>.Count * 8); 662dPtr += (uint)(Vector512<T>.Count * 8); 664remainder -= (uint)(Vector512<T>.Count * 8); 683remainder = (remainder + (uint)(Vector512<T>.Count - 1)) & (nuint)(-Vector512<T>.Count); 685switch (remainder / (uint)Vector512<T>.Count) 689Vector512<T> vector = op.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 8))); 690vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 8)); 696Vector512<T> vector = op.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 7))); 697vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 7)); 703Vector512<T> vector = op.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 6))); 704vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 6)); 710Vector512<T> vector = op.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 5))); 711vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 5)); 717Vector512<T> vector = op.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 4))); 718vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 4)); 724Vector512<T> vector = op.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 3))); 725vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 3)); 731Vector512<T> vector = op.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 2))); 732vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 2)); 739end.StoreUnsafe(ref dRef, endIndex - (uint)Vector512<T>.Count);
System\Numerics\Tensors\netcore\Common\TensorPrimitives.ITernaryOperator.cs (323)
19static abstract Vector512<T> Invoke(Vector512<T> x, Vector512<T> y, Vector512<T> z); 28public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y, Vector512<T> z) => TOperator.Invoke(x, z, y); 70if (Vector512.IsHardwareAccelerated && Vector512<T>.IsSupported) 72if (remainder >= (uint)Vector512<T>.Count) 692Vector512<T> beg = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef), 695Vector512<T> end = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)Vector512<T>.Count), 696Vector512.LoadUnsafe(ref yRef, remainder - (uint)Vector512<T>.Count), 697Vector512.LoadUnsafe(ref zRef, remainder - (uint)Vector512<T>.Count)); 699if (remainder > (uint)(Vector512<T>.Count * 8)) 728nuint misalignment = ((uint)sizeof(Vector512<T>) - ((nuint)dPtr % (uint)sizeof(Vector512<T>))) / (uint)sizeof(T); 735Debug.Assert(((nuint)dPtr % (uint)sizeof(Vector512<T>)) == 0); 740Vector512<T> vector1; 741Vector512<T> vector2; 742Vector512<T> vector3; 743Vector512<T> vector4; 750while (remainder >= (uint)(Vector512<T>.Count * 8)) 754vector1 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 0)), 755Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 0)), 756Vector512.Load(zPtr + (uint)(Vector512<T>.Count * 0))); 757vector2 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 1)), 758Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 1)), 759Vector512.Load(zPtr + (uint)(Vector512<T>.Count * 1))); 760vector3 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 2)), 761Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 2)), 762Vector512.Load(zPtr + (uint)(Vector512<T>.Count * 2))); 763vector4 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 3)), 764Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 3)), 765Vector512.Load(zPtr + (uint)(Vector512<T>.Count * 3))); 767vector1.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 0)); 768vector2.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 1)); 769vector3.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 2)); 770vector4.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 3)); 774vector1 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 4)), 775Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 4)), 776Vector512.Load(zPtr + (uint)(Vector512<T>.Count * 4))); 777vector2 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 5)), 778Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 5)), 779Vector512.Load(zPtr + (uint)(Vector512<T>.Count * 5))); 780vector3 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 6)), 781Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 6)), 782Vector512.Load(zPtr + (uint)(Vector512<T>.Count * 6))); 783vector4 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 7)), 784Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 7)), 785Vector512.Load(zPtr + (uint)(Vector512<T>.Count * 7))); 787vector1.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 4)); 788vector2.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 5)); 789vector3.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 6)); 790vector4.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 7)); 795xPtr += (uint)(Vector512<T>.Count * 8); 796yPtr += (uint)(Vector512<T>.Count * 8); 797zPtr += (uint)(Vector512<T>.Count * 8); 798dPtr += (uint)(Vector512<T>.Count * 8); 800remainder -= (uint)(Vector512<T>.Count * 8); 805while (remainder >= (uint)(Vector512<T>.Count * 8)) 809vector1 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 0)), 810Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 0)), 811Vector512.Load(zPtr + (uint)(Vector512<T>.Count * 0))); 812vector2 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 1)), 813Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 1)), 814Vector512.Load(zPtr + (uint)(Vector512<T>.Count * 1))); 815vector3 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 2)), 816Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 2)), 817Vector512.Load(zPtr + (uint)(Vector512<T>.Count * 2))); 818vector4 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 3)), 819Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 3)), 820Vector512.Load(zPtr + (uint)(Vector512<T>.Count * 3))); 822vector1.Store(dPtr + (uint)(Vector512<T>.Count * 0)); 823vector2.Store(dPtr + (uint)(Vector512<T>.Count * 1)); 824vector3.Store(dPtr + (uint)(Vector512<T>.Count * 2)); 825vector4.Store(dPtr + (uint)(Vector512<T>.Count * 3)); 829vector1 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 4)), 830Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 4)), 831Vector512.Load(zPtr + (uint)(Vector512<T>.Count * 4))); 832vector2 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 5)), 833Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 5)), 834Vector512.Load(zPtr + (uint)(Vector512<T>.Count * 5))); 835vector3 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 6)), 836Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 6)), 837Vector512.Load(zPtr + (uint)(Vector512<T>.Count * 6))); 838vector4 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 7)), 839Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 7)), 840Vector512.Load(zPtr + (uint)(Vector512<T>.Count * 7))); 842vector1.Store(dPtr + (uint)(Vector512<T>.Count * 4)); 843vector2.Store(dPtr + (uint)(Vector512<T>.Count * 5)); 844vector3.Store(dPtr + (uint)(Vector512<T>.Count * 6)); 845vector4.Store(dPtr + (uint)(Vector512<T>.Count * 7)); 850xPtr += (uint)(Vector512<T>.Count * 8); 851yPtr += (uint)(Vector512<T>.Count * 8); 852zPtr += (uint)(Vector512<T>.Count * 8); 853dPtr += (uint)(Vector512<T>.Count * 8); 855remainder -= (uint)(Vector512<T>.Count * 8); 876remainder = (remainder + (uint)(Vector512<T>.Count - 1)) & (nuint)(-Vector512<T>.Count); 878switch (remainder / (uint)Vector512<T>.Count) 882Vector512<T> vector = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 8)), 883Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 8)), 884Vector512.LoadUnsafe(ref zRef, remainder - (uint)(Vector512<T>.Count * 8))); 885vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 8)); 891Vector512<T> vector = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 7)), 892Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 7)), 893Vector512.LoadUnsafe(ref zRef, remainder - (uint)(Vector512<T>.Count * 7))); 894vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 7)); 900Vector512<T> vector = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 6)), 901Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 6)), 902Vector512.LoadUnsafe(ref zRef, remainder - (uint)(Vector512<T>.Count * 6))); 903vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 6)); 909Vector512<T> vector = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 5)), 910Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 5)), 911Vector512.LoadUnsafe(ref zRef, remainder - (uint)(Vector512<T>.Count * 5))); 912vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 5)); 918Vector512<T> vector = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 4)), 919Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 4)), 920Vector512.LoadUnsafe(ref zRef, remainder - (uint)(Vector512<T>.Count * 4))); 921vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 4)); 927Vector512<T> vector = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 3)), 928Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 3)), 929Vector512.LoadUnsafe(ref zRef, remainder - (uint)(Vector512<T>.Count * 3))); 930vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 3)); 936Vector512<T> vector = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 2)), 937Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 2)), 938Vector512.LoadUnsafe(ref zRef, remainder - (uint)(Vector512<T>.Count * 2))); 939vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 2)); 946end.StoreUnsafe(ref dRef, endIndex - (uint)Vector512<T>.Count); 1545if (Vector512.IsHardwareAccelerated && Vector512<T>.IsSupported) 1547if (remainder >= (uint)Vector512<T>.Count) 2159Vector512<T> zVec = Vector512.Create(z); 2161Vector512<T> beg = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef), 2164Vector512<T> end = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)Vector512<T>.Count), 2165Vector512.LoadUnsafe(ref yRef, remainder - (uint)Vector512<T>.Count), 2168if (remainder > (uint)(Vector512<T>.Count * 8)) 2195nuint misalignment = ((uint)sizeof(Vector512<T>) - ((nuint)dPtr % (uint)sizeof(Vector512<T>))) / (uint)sizeof(T); 2201Debug.Assert(((nuint)dPtr % (uint)sizeof(Vector512<T>)) == 0); 2206Vector512<T> vector1; 2207Vector512<T> vector2; 2208Vector512<T> vector3; 2209Vector512<T> vector4; 2216while (remainder >= (uint)(Vector512<T>.Count * 8)) 2220vector1 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 0)), 2221Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 0)), 2223vector2 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 1)), 2224Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 1)), 2226vector3 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 2)), 2227Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 2)), 2229vector4 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 3)), 2230Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 3)), 2233vector1.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 0)); 2234vector2.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 1)); 2235vector3.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 2)); 2236vector4.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 3)); 2240vector1 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 4)), 2241Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 4)), 2243vector2 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 5)), 2244Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 5)), 2246vector3 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 6)), 2247Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 6)), 2249vector4 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 7)), 2250Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 7)), 2253vector1.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 4)); 2254vector2.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 5)); 2255vector3.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 6)); 2256vector4.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 7)); 2261xPtr += (uint)(Vector512<T>.Count * 8); 2262yPtr += (uint)(Vector512<T>.Count * 8); 2263dPtr += (uint)(Vector512<T>.Count * 8); 2265remainder -= (uint)(Vector512<T>.Count * 8); 2270while (remainder >= (uint)(Vector512<T>.Count * 8)) 2274vector1 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 0)), 2275Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 0)), 2277vector2 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 1)), 2278Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 1)), 2280vector3 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 2)), 2281Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 2)), 2283vector4 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 3)), 2284Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 3)), 2287vector1.Store(dPtr + (uint)(Vector512<T>.Count * 0)); 2288vector2.Store(dPtr + (uint)(Vector512<T>.Count * 1)); 2289vector3.Store(dPtr + (uint)(Vector512<T>.Count * 2)); 2290vector4.Store(dPtr + (uint)(Vector512<T>.Count * 3)); 2294vector1 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 4)), 2295Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 4)), 2297vector2 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 5)), 2298Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 5)), 2300vector3 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 6)), 2301Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 6)), 2303vector4 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 7)), 2304Vector512.Load(yPtr + (uint)(Vector512<T>.Count * 7)), 2307vector1.Store(dPtr + (uint)(Vector512<T>.Count * 4)); 2308vector2.Store(dPtr + (uint)(Vector512<T>.Count * 5)); 2309vector3.Store(dPtr + (uint)(Vector512<T>.Count * 6)); 2310vector4.Store(dPtr + (uint)(Vector512<T>.Count * 7)); 2315xPtr += (uint)(Vector512<T>.Count * 8); 2316yPtr += (uint)(Vector512<T>.Count * 8); 2317dPtr += (uint)(Vector512<T>.Count * 8); 2319remainder -= (uint)(Vector512<T>.Count * 8); 2339remainder = (remainder + (uint)(Vector512<T>.Count - 1)) & (nuint)(-Vector512<T>.Count); 2341switch (remainder / (uint)Vector512<T>.Count) 2345Vector512<T> vector = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 8)), 2346Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 8)), 2348vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 8)); 2354Vector512<T> vector = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 7)), 2355Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 7)), 2357vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 7)); 2363Vector512<T> vector = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 6)), 2364Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 6)), 2366vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 6)); 2372Vector512<T> vector = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 5)), 2373Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 5)), 2375vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 5)); 2381Vector512<T> vector = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 4)), 2382Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 4)), 2384vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 4)); 2390Vector512<T> vector = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 3)), 2391Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 3)), 2393vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 3)); 2399Vector512<T> vector = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 2)), 2400Vector512.LoadUnsafe(ref yRef, remainder - (uint)(Vector512<T>.Count * 2)), 2402vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 2)); 2409end.StoreUnsafe(ref dRef, endIndex - (uint)Vector512<T>.Count); 3031if (Vector512.IsHardwareAccelerated && Vector512<T>.IsSupported) 3033if (remainder >= (uint)Vector512<T>.Count) 3635Vector512<T> yVec = Vector512.Create(y); 3636Vector512<T> zVec = Vector512.Create(z); 3638Vector512<T> beg = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef), 3641Vector512<T> end = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)Vector512<T>.Count), 3645if (remainder > (uint)(Vector512<T>.Count * 8)) 3670nuint misalignment = ((uint)sizeof(Vector512<T>) - ((nuint)dPtr % (uint)sizeof(Vector512<T>))) / (uint)sizeof(T); 3675Debug.Assert(((nuint)dPtr % (uint)sizeof(Vector512<T>)) == 0); 3680Vector512<T> vector1; 3681Vector512<T> vector2; 3682Vector512<T> vector3; 3683Vector512<T> vector4; 3690while (remainder >= (uint)(Vector512<T>.Count * 8)) 3694vector1 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 0)), 3697vector2 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 1)), 3700vector3 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 2)), 3703vector4 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 3)), 3707vector1.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 0)); 3708vector2.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 1)); 3709vector3.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 2)); 3710vector4.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 3)); 3714vector1 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 4)), 3717vector2 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 5)), 3720vector3 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 6)), 3723vector4 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 7)), 3727vector1.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 4)); 3728vector2.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 5)); 3729vector3.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 6)); 3730vector4.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<T>.Count * 7)); 3735xPtr += (uint)(Vector512<T>.Count * 8); 3736dPtr += (uint)(Vector512<T>.Count * 8); 3738remainder -= (uint)(Vector512<T>.Count * 8); 3743while (remainder >= (uint)(Vector512<T>.Count * 8)) 3747vector1 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 0)), 3750vector2 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 1)), 3753vector3 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 2)), 3756vector4 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 3)), 3760vector1.Store(dPtr + (uint)(Vector512<T>.Count * 0)); 3761vector2.Store(dPtr + (uint)(Vector512<T>.Count * 1)); 3762vector3.Store(dPtr + (uint)(Vector512<T>.Count * 2)); 3763vector4.Store(dPtr + (uint)(Vector512<T>.Count * 3)); 3767vector1 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 4)), 3770vector2 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 5)), 3773vector3 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 6)), 3776vector4 = TTernaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<T>.Count * 7)), 3780vector1.Store(dPtr + (uint)(Vector512<T>.Count * 4)); 3781vector2.Store(dPtr + (uint)(Vector512<T>.Count * 5)); 3782vector3.Store(dPtr + (uint)(Vector512<T>.Count * 6)); 3783vector4.Store(dPtr + (uint)(Vector512<T>.Count * 7)); 3788xPtr += (uint)(Vector512<T>.Count * 8); 3789dPtr += (uint)(Vector512<T>.Count * 8); 3791remainder -= (uint)(Vector512<T>.Count * 8); 3810remainder = (remainder + (uint)(Vector512<T>.Count - 1)) & (nuint)(-Vector512<T>.Count); 3812switch (remainder / (uint)Vector512<T>.Count) 3816Vector512<T> vector = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 8)), 3819vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 8)); 3825Vector512<T> vector = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 7)), 3828vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 7)); 3834Vector512<T> vector = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 6)), 3837vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 6)); 3843Vector512<T> vector = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 5)), 3846vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 5)); 3852Vector512<T> vector = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 4)), 3855vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 4)); 3861Vector512<T> vector = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 3)), 3864vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 3)); 3870Vector512<T> vector = TTernaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<T>.Count * 2)), 3873vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<T>.Count * 2)); 3880end.StoreUnsafe(ref dRef, endIndex - (uint)Vector512<T>.Count);
System\Numerics\Tensors\netcore\Common\TensorPrimitives.IUnaryInputBinaryOutput.cs (40)
20static abstract (Vector512<T> First, Vector512<T> Second) Invoke(Vector512<T> x); 30static abstract (Vector512<T> First, Vector512<T> Second) Invoke(Vector512<T> x, Vector512<T> y); 41public static (Vector512<T> First, Vector512<T> Second) Invoke(Vector512<T> x, Vector512<T> y) => TOperator.Invoke(y, x); 71if (Vector512.IsHardwareAccelerated && Vector512<T>.IsSupported && TUnaryOperator.Vectorizable) 73oneVectorFromEnd = x.Length - Vector512<T>.Count; 79(Vector512<T> first, Vector512<T> second) = TUnaryOperator.Invoke(Vector512.LoadUnsafe(ref sourceRef, (uint)i)); 83i += Vector512<T>.Count; 90i = x.Length - Vector512<T>.Count; 92(Vector512<T> first, Vector512<T> second) = TUnaryOperator.Invoke(Vector512.LoadUnsafe(ref sourceRef, (uint)i)); 206if (Vector512.IsHardwareAccelerated && Vector512<T>.IsSupported && TOperator.Vectorizable) 208oneVectorFromEnd = x.Length - Vector512<T>.Count; 214(Vector512<T> first, Vector512<T> second) = TOperator.Invoke(Vector512.LoadUnsafe(ref xRef, (uint)i), Vector512.LoadUnsafe(ref yRef, (uint)i)); 218i += Vector512<T>.Count; 225Vector512<T> mask = Vector512.Equals(CreateRemainderMaskVector512<T>(x.Length - i), Vector512<T>.Zero); 227i = x.Length - Vector512<T>.Count; 229Vector512<T> first = Vector512.ConditionalSelect(mask, 233Vector512<T> second = Vector512.ConditionalSelect(mask, 387if (Vector512.IsHardwareAccelerated && Vector512<T>.IsSupported && TOperator.Vectorizable) 389oneVectorFromEnd = x.Length - Vector512<T>.Count; 392Vector512<T> yVec = Vector512.Create(y); 397(Vector512<T> first, Vector512<T> second) = TOperator.Invoke(Vector512.LoadUnsafe(ref xRef, (uint)i), yVec); 401i += Vector512<T>.Count; 408Vector512<T> mask = Vector512.Equals(CreateRemainderMaskVector512<T>(x.Length - i), Vector512<T>.Zero); 410i = x.Length - Vector512<T>.Count; 412Vector512<T> first = Vector512.ConditionalSelect(mask, 416Vector512<T> second = Vector512.ConditionalSelect(mask,
System\Numerics\Tensors\netcore\Common\TensorPrimitives.IUnaryOneToFourOperator.cs (24)
21static abstract (Vector512<TOutput>, Vector512<TOutput>, Vector512<TOutput>, Vector512<TOutput>) Invoke(Vector512<TInput> x); 46Debug.Assert(Vector512<TInput>.IsSupported); 47Debug.Assert(Vector512<TOutput>.IsSupported); 49oneVectorFromEnd = x.Length - Vector512<TInput>.Count; 55(Vector512<TOutput>, Vector512<TOutput>, Vector512<TOutput>, Vector512<TOutput>) results = TUnaryOperator.Invoke(Vector512.LoadUnsafe(ref sourceRef, (uint)i)); 57results.Item2.StoreUnsafe(ref destinationRef, (uint)(i + Vector512<TOutput>.Count)); 58results.Item3.StoreUnsafe(ref destinationRef, (uint)(i + (Vector512<TOutput>.Count * 2))); 59results.Item4.StoreUnsafe(ref destinationRef, (uint)(i + (Vector512<TOutput>.Count * 3))); 61i += Vector512<TInput>.Count; 68i = x.Length - Vector512<TInput>.Count; 70(Vector512<TOutput>, Vector512<TOutput>, Vector512<TOutput>, Vector512<TOutput>) results = TUnaryOperator.Invoke(Vector512.LoadUnsafe(ref sourceRef, (uint)i)); 72results.Item2.StoreUnsafe(ref destinationRef, (uint)(i + Vector512<TOutput>.Count)); 73results.Item3.StoreUnsafe(ref destinationRef, (uint)(i + (Vector512<TOutput>.Count * 2))); 74results.Item4.StoreUnsafe(ref destinationRef, (uint)(i + (Vector512<TOutput>.Count * 3)));
System\Numerics\Tensors\netcore\Common\TensorPrimitives.IUnaryOneToTwoOperator.cs (14)
21static abstract (Vector512<TOutput> Lower, Vector512<TOutput> Upper) Invoke(Vector512<TInput> x); 46Debug.Assert(Vector512<TInput>.IsSupported); 47Debug.Assert(Vector512<TOutput>.IsSupported); 49oneVectorFromEnd = x.Length - Vector512<TInput>.Count; 55(Vector512<TOutput> lower, Vector512<TOutput> upper) = TUnaryOperator.Invoke(Vector512.LoadUnsafe(ref sourceRef, (uint)i)); 57upper.StoreUnsafe(ref destinationRef, (uint)(i + Vector512<TOutput>.Count)); 59i += Vector512<TInput>.Count; 66i = x.Length - Vector512<TInput>.Count; 68(Vector512<TOutput> lower, Vector512<TOutput> upper) = TUnaryOperator.Invoke(Vector512.LoadUnsafe(ref sourceRef, (uint)i)); 70upper.StoreUnsafe(ref destinationRef, (uint)(i + Vector512<TOutput>.Count));
System\Numerics\Tensors\netcore\Common\TensorPrimitives.IUnaryOperator.cs (83)
37static abstract Vector512<TOutput> Invoke(Vector512<TInput> x); 47public static Vector512<T> Invoke(Vector512<T> x) => x; 91if (Vector512.IsHardwareAccelerated && Vector512<TInput>.IsSupported && Vector512<TOutput>.IsSupported && TUnaryOperator.Vectorizable && sizeof(TInput) == sizeof(TOutput)) 93if (remainder >= (uint)Vector512<TInput>.Count) 587Vector512<TOutput> beg = TUnaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef)); 588Vector512<TOutput> end = TUnaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)Vector512<TInput>.Count)); 590if (remainder > (uint)(Vector512<TInput>.Count * 8)) 615nuint misalignment = ((uint)sizeof(Vector512<TInput>) - ((nuint)dPtr % (uint)sizeof(Vector512<TInput>))) / (uint)sizeof(TInput); 620Debug.Assert(((nuint)dPtr % (uint)sizeof(Vector512<TInput>)) == 0); 625Vector512<TOutput> vector1; 626Vector512<TOutput> vector2; 627Vector512<TOutput> vector3; 628Vector512<TOutput> vector4; 635while (remainder >= (uint)(Vector512<TInput>.Count * 8)) 639vector1 = TUnaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<TInput>.Count * 0))); 640vector2 = TUnaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<TInput>.Count * 1))); 641vector3 = TUnaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<TInput>.Count * 2))); 642vector4 = TUnaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<TInput>.Count * 3))); 644vector1.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<TOutput>.Count * 0)); 645vector2.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<TOutput>.Count * 1)); 646vector3.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<TOutput>.Count * 2)); 647vector4.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<TOutput>.Count * 3)); 651vector1 = TUnaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<TInput>.Count * 4))); 652vector2 = TUnaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<TInput>.Count * 5))); 653vector3 = TUnaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<TInput>.Count * 6))); 654vector4 = TUnaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<TInput>.Count * 7))); 656vector1.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<TOutput>.Count * 4)); 657vector2.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<TOutput>.Count * 5)); 658vector3.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<TOutput>.Count * 6)); 659vector4.StoreAlignedNonTemporal(dPtr + (uint)(Vector512<TOutput>.Count * 7)); 664xPtr += (uint)(Vector512<TInput>.Count * 8); 665dPtr += (uint)(Vector512<TInput>.Count * 8); 667remainder -= (uint)(Vector512<TInput>.Count * 8); 672while (remainder >= (uint)(Vector512<TInput>.Count * 8)) 676vector1 = TUnaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<TInput>.Count * 0))); 677vector2 = TUnaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<TInput>.Count * 1))); 678vector3 = TUnaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<TInput>.Count * 2))); 679vector4 = TUnaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<TInput>.Count * 3))); 681vector1.Store(dPtr + (uint)(Vector512<TOutput>.Count * 0)); 682vector2.Store(dPtr + (uint)(Vector512<TOutput>.Count * 1)); 683vector3.Store(dPtr + (uint)(Vector512<TOutput>.Count * 2)); 684vector4.Store(dPtr + (uint)(Vector512<TOutput>.Count * 3)); 688vector1 = TUnaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<TInput>.Count * 4))); 689vector2 = TUnaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<TInput>.Count * 5))); 690vector3 = TUnaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<TInput>.Count * 6))); 691vector4 = TUnaryOperator.Invoke(Vector512.Load(xPtr + (uint)(Vector512<TInput>.Count * 7))); 693vector1.Store(dPtr + (uint)(Vector512<TOutput>.Count * 4)); 694vector2.Store(dPtr + (uint)(Vector512<TOutput>.Count * 5)); 695vector3.Store(dPtr + (uint)(Vector512<TOutput>.Count * 6)); 696vector4.Store(dPtr + (uint)(Vector512<TOutput>.Count * 7)); 701xPtr += (uint)(Vector512<TInput>.Count * 8); 702dPtr += (uint)(Vector512<TOutput>.Count * 8); 704remainder -= (uint)(Vector512<TInput>.Count * 8); 723remainder = (remainder + (uint)(Vector512<TInput>.Count - 1)) & (nuint)(-Vector512<TInput>.Count); 725switch (remainder / (uint)Vector512<TInput>.Count) 729Vector512<TOutput> vector = TUnaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<TInput>.Count * 8))); 730vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<TOutput>.Count * 8)); 736Vector512<TOutput> vector = TUnaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<TInput>.Count * 7))); 737vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<TOutput>.Count * 7)); 743Vector512<TOutput> vector = TUnaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<TInput>.Count * 6))); 744vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<TOutput>.Count * 6)); 750Vector512<TOutput> vector = TUnaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<TInput>.Count * 5))); 751vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<TOutput>.Count * 5)); 757Vector512<TOutput> vector = TUnaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<TInput>.Count * 4))); 758vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<TOutput>.Count * 4)); 764Vector512<TOutput> vector = TUnaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<TInput>.Count * 3))); 765vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<TOutput>.Count * 3)); 771Vector512<TOutput> vector = TUnaryOperator.Invoke(Vector512.LoadUnsafe(ref xRef, remainder - (uint)(Vector512<TInput>.Count * 2))); 772vector.StoreUnsafe(ref dRef, remainder - (uint)(Vector512<TOutput>.Count * 2)); 779end.StoreUnsafe(ref dRef, endIndex - (uint)Vector512<TOutput>.Count);
System\Numerics\Tensors\netcore\Common\TensorPrimitives.IUnaryTwoToOneOperator.cs (10)
21static abstract Vector512<TOutput> Invoke(Vector512<TInput> lower, Vector512<TInput> upper); 46Debug.Assert(Vector512<TInput>.IsSupported); 47Debug.Assert(Vector512<TOutput>.IsSupported); 49twoVectorsFromEnd = x.Length - (Vector512<TInput>.Count * 2); 57Vector512.LoadUnsafe(ref xRef, (uint)(i + Vector512<TInput>.Count))).StoreUnsafe(ref destinationRef, (uint)i); 59i += Vector512<TInput>.Count * 2; 66i = x.Length - (Vector512<TInput>.Count * 2); 70Vector512.LoadUnsafe(ref xRef, (uint)(i + Vector512<TInput>.Count))).StoreUnsafe(ref destinationRef, (uint)i);
System\Numerics\Tensors\netcore\TensorPrimitives.Abs.cs (6)
85public static Vector512<T> Invoke(Vector512<T> x) 96Vector512<T> abs = Vector512.ConditionalSelect(Vector512.LessThan(x, Vector512<T>.Zero), -x, x); 97if (Vector512.LessThan(abs, Vector512<T>.Zero) != Vector512<T>.Zero)
System\Numerics\Tensors\netcore\TensorPrimitives.Acos.cs (2)
36public static Vector512<T> Invoke(Vector512<T> x) => throw new NotSupportedException();
System\Numerics\Tensors\netcore\TensorPrimitives.Acosh.cs (2)
36public static Vector512<T> Invoke(Vector512<T> x) => throw new NotSupportedException();
System\Numerics\Tensors\netcore\TensorPrimitives.AcosPi.cs (2)
36public static Vector512<T> Invoke(Vector512<T> x) => AcosOperator<T>.Invoke(x) / Vector512.Create(T.Pi);
System\Numerics\Tensors\netcore\TensorPrimitives.Add.cs (4)
56public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y) => x + y; 60public static T Invoke(Vector512<T> x) => Vector512.Sum(x);
System\Numerics\Tensors\netcore\TensorPrimitives.AddMultiply.cs (4)
80public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y, Vector512<T> z) => (x + y) * z;
System\Numerics\Tensors\netcore\TensorPrimitives.Asin.cs (2)
36public static Vector512<T> Invoke(Vector512<T> x) => throw new NotSupportedException();
System\Numerics\Tensors\netcore\TensorPrimitives.Asinh.cs (2)
36public static Vector512<T> Invoke(Vector512<T> x) => throw new NotSupportedException();
System\Numerics\Tensors\netcore\TensorPrimitives.AsinPi.cs (2)
36public static Vector512<T> Invoke(Vector512<T> x) => AsinOperator<T>.Invoke(x) / Vector512.Create(T.Pi);
System\Numerics\Tensors\netcore\TensorPrimitives.Atan.cs (2)
36public static Vector512<T> Invoke(Vector512<T> x) => throw new NotSupportedException();
System\Numerics\Tensors\netcore\TensorPrimitives.Atan2.cs (3)
77public static Vector512<T> Invoke(Vector512<T> y, Vector512<T> x) => throw new NotSupportedException();
System\Numerics\Tensors\netcore\TensorPrimitives.Atan2Pi.cs (3)
77public static Vector512<T> Invoke(Vector512<T> y, Vector512<T> x) => Atan2Operator<T>.Invoke(y, x) / Vector512.Create(T.Pi);
System\Numerics\Tensors\netcore\TensorPrimitives.Atanh.cs (2)
36public static Vector512<T> Invoke(Vector512<T> x) => throw new NotSupportedException();
System\Numerics\Tensors\netcore\TensorPrimitives.AtanPi.cs (2)
36public static Vector512<T> Invoke(Vector512<T> x) => AtanOperator<T>.Invoke(x) / Vector512.Create(T.Pi);
System\Numerics\Tensors\netcore\TensorPrimitives.BitDecrement.cs (2)
33public static Vector512<T> Invoke(Vector512<T> x) => throw new NotSupportedException();
System\Numerics\Tensors\netcore\TensorPrimitives.BitIncrement.cs (2)
33public static Vector512<T> Invoke(Vector512<T> x) => throw new NotSupportedException();
System\Numerics\Tensors\netcore\TensorPrimitives.BitwiseAnd.cs (3)
49public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y) => x & y;
System\Numerics\Tensors\netcore\TensorPrimitives.BitwiseOr.cs (3)
49public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y) => x | y;
System\Numerics\Tensors\netcore\TensorPrimitives.Cbrt.cs (2)
59public static Vector512<T> Invoke(Vector512<T> x)
System\Numerics\Tensors\netcore\TensorPrimitives.Ceiling.cs (2)
57public static Vector512<T> Invoke(Vector512<T> x)
System\Numerics\Tensors\netcore\TensorPrimitives.Clamp.cs (12)
180public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> min, Vector512<T> max) => Vector512.Clamp(x, min, max); 228public static Vector512<T> Invoke(Vector512<T> min, Vector512<T> max, Vector512<T> x) => Vector512.Clamp(x, min, max); 277public static Vector512<T> Invoke(Vector512<T> max, Vector512<T> x, Vector512<T> min) => Vector512.Clamp(x, min, max);
System\Numerics\Tensors\netcore\TensorPrimitives.ConvertChecked.cs (2)
40public static Vector512<TTo> Invoke(Vector512<TFrom> x) => throw new NotSupportedException();
System\Numerics\Tensors\netcore\TensorPrimitives.ConvertHelpers.cs (77)
172public static Vector512<float> Invoke(Vector512<int> x) => Vector512.ConvertToSingle(x); 183public static Vector512<float> Invoke(Vector512<uint> x) => Vector512.ConvertToSingle(x); 194public static Vector512<double> Invoke(Vector512<ulong> x) => Vector512.ConvertToDouble(x); 205public static Vector512<double> Invoke(Vector512<long> x) => Vector512.ConvertToDouble(x); 216public static (Vector512<double> Lower, Vector512<double> Upper) Invoke(Vector512<float> x) => Vector512.Widen(x); 227public static Vector512<float> Invoke(Vector512<double> lower, Vector512<double> upper) => Vector512.Narrow(lower, upper); 238public static (Vector512<ushort> Lower, Vector512<ushort> Upper) Invoke(Vector512<byte> x) => Vector512.Widen(x); 267public static (Vector512<uint>, Vector512<uint>, Vector512<uint>, Vector512<uint>) Invoke(Vector512<byte> x) 269(Vector512<ushort> Lower, Vector512<ushort> Upper) ushorts = Vector512.Widen(x); 270(Vector512<uint> Lower, Vector512<uint> Upper) uintsLower = Vector512.Widen(ushorts.Lower); 271(Vector512<uint> Lower, Vector512<uint> Upper) uintsUpper = Vector512.Widen(ushorts.Upper); 308public static (Vector512<float>, Vector512<float>, Vector512<float>, Vector512<float>) Invoke(Vector512<byte> x) 328public static (Vector512<short> Lower, Vector512<short> Upper) Invoke(Vector512<sbyte> x) => Vector512.Widen(x); 339public static (Vector512<uint> Lower, Vector512<uint> Upper) Invoke(Vector512<ushort> x) => Vector512.Widen(x); 350public static (Vector512<int> Lower, Vector512<int> Upper) Invoke(Vector512<short> x) => Vector512.Widen(x); 361public static (Vector512<ulong> Lower, Vector512<ulong> Upper) Invoke(Vector512<uint> x) => Vector512.Widen(x); 372public static (Vector512<long> Lower, Vector512<long> Upper) Invoke(Vector512<int> x) => Vector512.Widen(x); 498public static (Vector512<float> Lower, Vector512<float> Upper) Invoke(Vector512<short> x) 500(Vector512<int> lowerInt32, Vector512<int> upperInt32) = Vector512.Widen(x); 505static Vector512<float> HalfAsWidenedUInt32ToSingle(Vector512<uint> value) 508Vector512<uint> sign = value & Vector512.Create(SingleSignMask); 511Vector512<uint> bitValueInProcess = value; 514Vector512<uint> offsetExponent = bitValueInProcess & Vector512.Create(HalfExponentMask); 517Vector512<uint> subnormalMask = Vector512.Equals(offsetExponent, Vector512<uint>.Zero); 520Vector512<uint> infinityOrNaNMask = Vector512.Equals(offsetExponent, Vector512.Create(HalfExponentMask)); 523Vector512<uint> maskedExponentLowerBound = subnormalMask & Vector512.Create(ExponentLowerBound); 526Vector512<uint> offsetMaskedExponentLowerBound = Vector512.Create(ExponentOffset) | maskedExponentLowerBound; 532offsetMaskedExponentLowerBound = Vector512.ConditionalSelect(Vector512.Equals(infinityOrNaNMask, Vector512<uint>.Zero), 543Vector512<uint> absoluteValue = (bitValueInProcess.AsSingle() - maskedExponentLowerBound.AsSingle()).AsUInt32(); 703public static Vector512<ushort> Invoke(Vector512<float> lower, Vector512<float> upper) 709static Vector512<uint> SingleToHalfAsWidenedUInt32(Vector512<float> value) 711Vector512<uint> bitValue = value.AsUInt32(); 714Vector512<uint> sign = Vector512.ShiftRightLogical(bitValue & Vector512.Create(SingleSignMask), 16); 717Vector512<uint> realMask = Vector512.Equals(value, value).AsUInt32(); 726Vector512<uint> exponentOffset0 = Vector512.Max(value, Vector512.Create(MinExp).AsSingle()).AsUInt32(); 739Vector512<uint> maskedHalfExponentForNaN = ~realMask & Vector512.Create(ExponentMask); 745Vector512<uint> newExponent = Vector512.ShiftRightLogical(bitValue, 13); 757Vector512<uint> signAndMaskedExponent = maskedHalfExponentForNaN | sign;
System\Numerics\Tensors\netcore\TensorPrimitives.ConvertSaturating.cs (2)
40public static Vector512<TTo> Invoke(Vector512<TFrom> x) => throw new NotSupportedException();
System\Numerics\Tensors\netcore\TensorPrimitives.ConvertToInteger.cs (2)
74public static Vector512<TTo> Invoke(Vector512<TFrom> x)
System\Numerics\Tensors\netcore\TensorPrimitives.ConvertToIntegerNative.cs (2)
74public static Vector512<TTo> Invoke(Vector512<TFrom> x)
System\Numerics\Tensors\netcore\TensorPrimitives.ConvertTruncating.cs (28)
111public static Vector512<int> Invoke(Vector512<float> x) => Vector512.ConvertToInt32(x); 122public static Vector512<uint> Invoke(Vector512<float> x) => Vector512.ConvertToUInt32(x); 133public static Vector512<ulong> Invoke(Vector512<double> x) => Vector512.ConvertToUInt64(x); 144public static Vector512<long> Invoke(Vector512<double> x) => Vector512.ConvertToInt64(x); 155public static Vector512<byte> Invoke(Vector512<ushort> lower, Vector512<ushort> upper) => Vector512.Narrow(lower, upper); 166public static Vector512<sbyte> Invoke(Vector512<short> lower, Vector512<short> upper) => Vector512.Narrow(lower, upper); 177public static Vector512<ushort> Invoke(Vector512<uint> lower, Vector512<uint> upper) => Vector512.Narrow(lower, upper); 188public static Vector512<short> Invoke(Vector512<int> lower, Vector512<int> upper) => Vector512.Narrow(lower, upper); 199public static Vector512<uint> Invoke(Vector512<ulong> lower, Vector512<ulong> upper) => Vector512.Narrow(lower, upper); 210public static Vector512<int> Invoke(Vector512<long> lower, Vector512<long> upper) => Vector512.Narrow(lower, upper); 221public static Vector512<TTo> Invoke(Vector512<TFrom> x) => throw new NotSupportedException();
System\Numerics\Tensors\netcore\TensorPrimitives.CopySign.cs (3)
112public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y)
System\Numerics\Tensors\netcore\TensorPrimitives.Cos.cs (2)
118public static Vector512<T> Invoke(Vector512<T> x)
System\Numerics\Tensors\netcore\TensorPrimitives.Cosh.cs (8)
115public static Vector512<T> Invoke(Vector512<T> t) 119Vector512<float> x = t.AsSingle(); 121Vector512<float> y = Vector512.Abs(x); 122Vector512<float> z = ExpOperator<float>.Invoke(y - Vector512.Create((float)Single_LOGV)); 128Vector512<double> x = t.AsDouble(); 130Vector512<double> y = Vector512.Abs(x); 131Vector512<double> z = ExpOperator<double>.Invoke(y - Vector512.Create(Double_LOGV));
System\Numerics\Tensors\netcore\TensorPrimitives.CosineSimilarity.cs (17)
52if (Vector512.IsHardwareAccelerated && Vector512<T>.IsSupported && x.Length >= Vector512<T>.Count) 57Vector512<T> dotProductVector = Vector512<T>.Zero; 58Vector512<T> xSumOfSquaresVector = Vector512<T>.Zero; 59Vector512<T> ySumOfSquaresVector = Vector512<T>.Zero; 62int oneVectorFromEnd = x.Length - Vector512<T>.Count; 66Vector512<T> xVec = Vector512.LoadUnsafe(ref xRef, (uint)i); 67Vector512<T> yVec = Vector512.LoadUnsafe(ref yRef, (uint)i); 73i += Vector512<T>.Count; 80Vector512<T> xVec = Vector512.LoadUnsafe(ref xRef, (uint)(x.Length - Vector512<T>.Count)); 81Vector512<T> yVec = Vector512.LoadUnsafe(ref yRef, (uint)(x.Length - Vector512<T>.Count)); 83Vector512<T> remainderMask = CreateRemainderMaskVector512<T>(x.Length - i);
System\Numerics\Tensors\netcore\TensorPrimitives.CosPi.cs (3)
87public static Vector512<T> Invoke(Vector512<T> x) 89Vector512<T> xpi = x * Vector512.Create(T.Pi);
System\Numerics\Tensors\netcore\TensorPrimitives.Decrement.cs (3)
32public static Vector512<T> Invoke(Vector512<T> x) => x - Vector512<T>.One;
System\Numerics\Tensors\netcore\TensorPrimitives.DegreesToRadians.cs (2)
66public static Vector512<T> Invoke(Vector512<T> x)
System\Numerics\Tensors\netcore\TensorPrimitives.Distance.cs (4)
68public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y) 70Vector512<T> tmp = x - y;
System\Numerics\Tensors\netcore\TensorPrimitives.Divide.cs (3)
77public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y) => x / y;
System\Numerics\Tensors\netcore\TensorPrimitives.DivRem.cs (5)
96public static (Vector512<T>, Vector512<T>) Invoke(Vector512<T> x, Vector512<T> y) 98Vector512<T> quotient = x / y;
System\Numerics\Tensors\netcore\TensorPrimitives.Exp.cs (2)
92public static Vector512<T> Invoke(Vector512<T> x)
System\Numerics\Tensors\netcore\TensorPrimitives.Exp10.cs (2)
39public static Vector512<T> Invoke(Vector512<T> x) => ExpOperator<T>.Invoke(x * Vector512.Create(T.CreateTruncating(NaturalLog10)));
System\Numerics\Tensors\netcore\TensorPrimitives.Exp10M1.cs (3)
37public static Vector512<T> Invoke(Vector512<T> x) => Exp10Operator<T>.Invoke(x) - Vector512<T>.One;
System\Numerics\Tensors\netcore\TensorPrimitives.Exp2.cs (2)
39public static Vector512<T> Invoke(Vector512<T> x) => ExpOperator<T>.Invoke(x * Vector512.Create(T.CreateTruncating(NaturalLog2)));
System\Numerics\Tensors\netcore\TensorPrimitives.Exp2M1.cs (3)
37public static Vector512<T> Invoke(Vector512<T> x) => Exp2Operator<T>.Invoke(x) - Vector512<T>.One;
System\Numerics\Tensors\netcore\TensorPrimitives.ExpM1.cs (3)
37public static Vector512<T> Invoke(Vector512<T> x) => ExpOperator<T>.Invoke(x) - Vector512<T>.One;
System\Numerics\Tensors\netcore\TensorPrimitives.FloatHelpers.cs (10)
16private static Vector512<float> ApplyScalar<TOperator>(Vector512<float> floats) where TOperator : IUnaryOperator<float, float> => 25private static Vector512<double> ApplyScalar<TOperator>(Vector512<double> doubles) where TOperator : IUnaryOperator<double, double> => 54private static (Vector512<float> First, Vector512<float> Second) Apply2xScalar<TOperator>(Vector512<float> floats) 90private static (Vector512<double> First, Vector512<double> Second) Apply2xScalar<TOperator>(Vector512<double> doubles)
System\Numerics\Tensors\netcore\TensorPrimitives.Floor.cs (2)
57public static Vector512<T> Invoke(Vector512<T> x)
System\Numerics\Tensors\netcore\TensorPrimitives.FusedMultiplyAdd.cs (4)
179public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y, Vector512<T> z)
System\Numerics\Tensors\netcore\TensorPrimitives.HammingDistance.cs (11)
79if (Vector512.IsHardwareAccelerated && Vector512<T>.IsSupported && x.Length >= Vector512<T>.Count) 84int oneVectorFromEnd = x.Length - Vector512<T>.Count; 88Vector512<T> xVec = Vector512.LoadUnsafe(ref xRef, (uint)i); 89Vector512<T> yVec = Vector512.LoadUnsafe(ref yRef, (uint)i); 93i += Vector512<T>.Count; 100Vector512<T> xVec = Vector512.LoadUnsafe(ref xRef, (uint)(x.Length - Vector512<T>.Count)); 101Vector512<T> yVec = Vector512.LoadUnsafe(ref yRef, (uint)(x.Length - Vector512<T>.Count)); 103Vector512<T> remainderMask = CreateRemainderMaskVector512<T>(x.Length - i);
System\Numerics\Tensors\netcore\TensorPrimitives.Hypot.cs (3)
70public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y)
System\Numerics\Tensors\netcore\TensorPrimitives.Ieee754Remainder.cs (3)
65public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y) => throw new NotSupportedException();
System\Numerics\Tensors\netcore\TensorPrimitives.ILogB.cs (5)
42public static Vector512<int> Invoke(Vector512<T> x) => throw new NotSupportedException(); 53public static Vector512<int> Invoke(Vector512<double> lower, Vector512<double> upper) => throw new NotSupportedException();
System\Numerics\Tensors\netcore\TensorPrimitives.Increment.cs (3)
32public static Vector512<T> Invoke(Vector512<T> x) => x + Vector512<T>.One;
System\Numerics\Tensors\netcore\TensorPrimitives.IndexOfMax.cs (39)
87public static void Invoke(ref Vector512<T> result, Vector512<T> current, ref Vector512<T> resultIndex, Vector512<T> currentIndex) 89Vector512<T> useResult = Vector512.GreaterThan(result, current); 90Vector512<T> equalMask = Vector512.Equals(result, current); 92if (equalMask != Vector512<T>.Zero) 94Vector512<T> lessThanIndexMask = IndexLessThan(resultIndex, currentIndex); 98Vector512<T> currentNegative = IsNegative(current); 99Vector512<T> sameSign = Vector512.Equals(IsNegative(result).AsInt32(), currentNegative.AsInt32()).As<int, T>(); 148if (Vector512.IsHardwareAccelerated && Vector512<T>.IsSupported && x.Length >= Vector512<T>.Count) 153static Vector512<T> CreateVector512T(int i) => 160Vector512<T> resultIndex = 162sizeof(T) == sizeof(long) ? Vector512<long>.Indices.As<long, T>() : 163sizeof(T) == sizeof(int) ? Vector512<int>.Indices.As<int, T>() : 164sizeof(T) == sizeof(short) ? Vector512<short>.Indices.As<short, T>() : 165Vector512<byte>.Indices.As<byte, T>(); 172Vector512<T> currentIndex = resultIndex; 173Vector512<T> increment = CreateVector512T(Vector512<T>.Count); 177Vector512<T> result = Vector512.LoadUnsafe(ref xRef); 178Vector512<T> current; 180Vector512<T> nanMask; 184if (nanMask != Vector512<T>.Zero) 190int oneVectorFromEnd = x.Length - Vector512<T>.Count; 191int i = Vector512<T>.Count; 203if (nanMask != Vector512<T>.Zero) 211i += Vector512<T>.Count; 217current = Vector512.LoadUnsafe(ref xRef, (uint)(x.Length - Vector512<T>.Count)); 223if (nanMask != Vector512<T>.Zero) 449private static int IndexOfFirstMatch<T>(Vector512<T> mask) => 460private static unsafe Vector512<T> IndexLessThan<T>(Vector512<T> indices1, Vector512<T> indices2) => 504private static unsafe Vector512<T> ElementWiseSelect<T>(Vector512<T> mask, Vector512<T> left, Vector512<T> right)
System\Numerics\Tensors\netcore\TensorPrimitives.IndexOfMaxMagnitude.cs (11)
86public static void Invoke(ref Vector512<T> result, Vector512<T> current, ref Vector512<T> resultIndex, Vector512<T> currentIndex) 88Vector512<T> resultMag = Vector512.Abs(result), currentMag = Vector512.Abs(current); 89Vector512<T> useResult = Vector512.GreaterThan(resultMag, currentMag); 90Vector512<T> equalMask = Vector512.Equals(resultMag, currentMag); 92if (equalMask != Vector512<T>.Zero) 94Vector512<T> lessThanIndexMask = IndexLessThan(resultIndex, currentIndex); 98Vector512<T> currentNegative = IsNegative(current); 99Vector512<T> sameSign = Vector512.Equals(IsNegative(result).AsInt32(), currentNegative.AsInt32()).As<int, T>();
System\Numerics\Tensors\netcore\TensorPrimitives.IndexOfMin.cs (10)
84public static void Invoke(ref Vector512<T> result, Vector512<T> current, ref Vector512<T> resultIndex, Vector512<T> currentIndex) 86Vector512<T> useResult = Vector512.LessThan(result, current); 87Vector512<T> equalMask = Vector512.Equals(result, current); 89if (equalMask != Vector512<T>.Zero) 91Vector512<T> lessThanIndexMask = IndexLessThan(resultIndex, currentIndex); 95Vector512<T> resultNegative = IsNegative(result); 96Vector512<T> sameSign = Vector512.Equals(resultNegative.AsInt32(), IsNegative(current).AsInt32()).As<int, T>();
System\Numerics\Tensors\netcore\TensorPrimitives.IndexOfMinMagnitude.cs (11)
86public static void Invoke(ref Vector512<T> result, Vector512<T> current, ref Vector512<T> resultIndex, Vector512<T> currentIndex) 88Vector512<T> resultMag = Vector512.Abs(result), currentMag = Vector512.Abs(current); 89Vector512<T> useResult = Vector512.LessThan(resultMag, currentMag); 90Vector512<T> equalMask = Vector512.Equals(resultMag, currentMag); 92if (equalMask != Vector512<T>.Zero) 94Vector512<T> lessThanIndexMask = IndexLessThan(resultIndex, currentIndex); 98Vector512<T> resultNegative = IsNegative(result); 99Vector512<T> sameSign = Vector512.Equals(resultNegative.AsInt32(), IsNegative(current).AsInt32()).As<int, T>();
System\Numerics\Tensors\netcore\TensorPrimitives.IsCanonical.cs (3)
74public static Vector512<T> Invoke(Vector512<T> x) => Vector512<T>.AllBitsSet;
System\Numerics\Tensors\netcore\TensorPrimitives.IsComplexNumber.cs (2)
75public static Vector512<T> Invoke(Vector512<T> x) => throw new NotSupportedException();
System\Numerics\Tensors\netcore\TensorPrimitives.IsEvenInteger.cs (2)
59public static Vector512<T> Invoke(Vector512<T> x) => Vector512.IsEvenInteger(x);
System\Numerics\Tensors\netcore\TensorPrimitives.IsFinite.cs (2)
77public static Vector512<T> Invoke(Vector512<T> x) => Vector512.IsFinite(x);
System\Numerics\Tensors\netcore\TensorPrimitives.IsImaginaryNumber.cs (2)
75public static Vector512<T> Invoke(Vector512<T> x) => throw new NotSupportedException();
System\Numerics\Tensors\netcore\TensorPrimitives.IsInfinity.cs (2)
64public static Vector512<T> Invoke(Vector512<T> x) => Vector512.IsInfinity(x);
System\Numerics\Tensors\netcore\TensorPrimitives.IsInteger.cs (2)
74public static Vector512<T> Invoke(Vector512<T> x) => Vector512.IsInteger(x);
System\Numerics\Tensors\netcore\TensorPrimitives.IsNaN.cs (2)
74public static Vector512<T> Invoke(Vector512<T> x) => IsNaN<T>(x);
System\Numerics\Tensors\netcore\TensorPrimitives.IsNegative.cs (2)
77public static Vector512<T> Invoke(Vector512<T> x) => IsNegative<T>(x);
System\Numerics\Tensors\netcore\TensorPrimitives.IsNegativeInfinity.cs (2)
64public static Vector512<T> Invoke(Vector512<T> x) => Vector512.IsNegativeInfinity(x);
System\Numerics\Tensors\netcore\TensorPrimitives.IsNormal.cs (2)
60public static Vector512<T> Invoke(Vector512<T> x) => Vector512.IsNormal(x);
System\Numerics\Tensors\netcore\TensorPrimitives.IsOddInteger.cs (2)
59public static Vector512<T> Invoke(Vector512<T> x) => Vector512.IsOddInteger(x);
System\Numerics\Tensors\netcore\TensorPrimitives.IsPositive.cs (2)
55public static Vector512<T> Invoke(Vector512<T> x) => IsPositive<T>(x);
System\Numerics\Tensors\netcore\TensorPrimitives.IsPositiveInfinity.cs (2)
64public static Vector512<T> Invoke(Vector512<T> x) => Vector512.IsPositiveInfinity(x);
System\Numerics\Tensors\netcore\TensorPrimitives.IsPow2.cs (5)
65public static Vector512<T> Invoke(Vector512<T> x) => 66Vector512.Equals(x & (x - Vector512<T>.One), Vector512<T>.Zero) & 67Vector512.GreaterThan(x, Vector512<T>.Zero);
System\Numerics\Tensors\netcore\TensorPrimitives.IsRealNumber.cs (2)
74public static Vector512<T> Invoke(Vector512<T> x) => ~IsNaN(x);
System\Numerics\Tensors\netcore\TensorPrimitives.IsSubnormal.cs (2)
64public static Vector512<T> Invoke(Vector512<T> x) => Vector512.IsSubnormal(x);
System\Numerics\Tensors\netcore\TensorPrimitives.IsZero.cs (3)
55public static Vector512<T> Invoke(Vector512<T> x) => Vector512.Equals(x, Vector512<T>.Zero);
System\Numerics\Tensors\netcore\TensorPrimitives.LeadingZeroCount.cs (11)
135public static Vector512<T> Invoke(Vector512<T> x) 144Vector512<byte> lookupVectorA = 153Vector512<byte> lookupVectorB = Vector512.Create((byte)1); 154Vector512<byte> bit7ZeroMask = Avx512BW.CompareLessThan(x.AsByte(), Vector512.Create((byte)128)); 162Vector512<uint> lowHalf = Vector512.Create((uint)0x0000FFFF); 163Vector512<uint> x_bot16 = Avx512F.Or(Avx512F.ShiftLeftLogical(x.AsUInt32(), 16), lowHalf); 164Vector512<uint> x_top16 = Avx512F.Or(x.AsUInt32(), lowHalf); 165Vector512<uint> lz_bot16 = Avx512CD.LeadingZeroCount(x_bot16); 166Vector512<uint> lz_top16 = Avx512CD.LeadingZeroCount(x_top16); 167Vector512<uint> lz_top16_shift = Avx512F.ShiftLeftLogical(lz_top16, 16);
System\Numerics\Tensors\netcore\TensorPrimitives.Lerp.cs (4)
114public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y, Vector512<T> amount)
System\Numerics\Tensors\netcore\TensorPrimitives.Log.cs (5)
134public static Vector512<T> Invoke(Vector512<T> x) 168public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y) => LogOperator<T>.Invoke(x) / LogOperator<T>.Invoke(y);
System\Numerics\Tensors\netcore\TensorPrimitives.Log10.cs (2)
43public static Vector512<T> Invoke(Vector512<T> x) => LogOperator<T>.Invoke(x) / Vector512.Create(T.CreateTruncating(NaturalLog10));
System\Numerics\Tensors\netcore\TensorPrimitives.Log10P1.cs (3)
42public static Vector512<T> Invoke(Vector512<T> x) => Log10Operator<T>.Invoke(x + Vector512<T>.One);
System\Numerics\Tensors\netcore\TensorPrimitives.Log2.cs (2)
94public static Vector512<T> Invoke(Vector512<T> x)
System\Numerics\Tensors\netcore\TensorPrimitives.Log2P1.cs (3)
42public static Vector512<T> Invoke(Vector512<T> x) => Log2Operator<T>.Invoke(x + Vector512<T>.One);
System\Numerics\Tensors\netcore\TensorPrimitives.LogP1.cs (3)
42public static Vector512<T> Invoke(Vector512<T> x) => LogOperator<T>.Invoke(x + Vector512<T>.One);
System\Numerics\Tensors\netcore\TensorPrimitives.Max.cs (22)
124public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y) 142public static T Invoke(Vector512<T> x) => HorizontalAggregate<T, MaxOperator<T>>(x); 177private static Vector512<T> IsNaN<T>(Vector512<T> vector) 252private static Vector512<T> IsNegative<T>(Vector512<T> vector) 342private static Vector512<T> IsPositive<T>(Vector512<T> vector) 388if (Vector512.IsHardwareAccelerated && Vector512<T>.IsSupported && x.Length >= Vector512<T>.Count) 394Vector512<T> result = Vector512.LoadUnsafe(ref xRef, 0); 395Vector512<T> current; 397Vector512<T> nanMask; 402if (nanMask != Vector512<T>.Zero) 408int oneVectorFromEnd = x.Length - Vector512<T>.Count; 409int i = Vector512<T>.Count; 421if (nanMask != Vector512<T>.Zero) 428i += Vector512<T>.Count; 434current = Vector512.LoadUnsafe(ref xRef, (uint)(x.Length - Vector512<T>.Count)); 440if (nanMask != Vector512<T>.Zero)
System\Numerics\Tensors\netcore\TensorPrimitives.MaxMagnitude.cs (4)
118public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y) 140public static T Invoke(Vector512<T> x) => HorizontalAggregate<T, MaxMagnitudeOperator<T>>(x);
System\Numerics\Tensors\netcore\TensorPrimitives.MaxMagnitudeNumber.cs (4)
175public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y) 218public static T Invoke(Vector512<T> x) => HorizontalAggregate<T, MaxMagnitudeNumberOperator<T>>(x);
System\Numerics\Tensors\netcore\TensorPrimitives.MaxNumber.cs (4)
125public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y) 145public static T Invoke(Vector512<T> x) => HorizontalAggregate<T, MaxNumberOperator<T>>(x);
System\Numerics\Tensors\netcore\TensorPrimitives.Min.cs (4)
122public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y) 140public static T Invoke(Vector512<T> x) => HorizontalAggregate<T, MinOperator<T>>(x);
System\Numerics\Tensors\netcore\TensorPrimitives.MinMagnitude.cs (4)
130public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y) 153public static T Invoke(Vector512<T> x) => HorizontalAggregate<T, MinMagnitudeOperator<T>>(x);
System\Numerics\Tensors\netcore\TensorPrimitives.MinMagnitudeNumber.cs (4)
173public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y) 215public static T Invoke(Vector512<T> x) => HorizontalAggregate<T, MinMagnitudeNumberOperator<T>>(x);
System\Numerics\Tensors\netcore\TensorPrimitives.MinNumber.cs (4)
125public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y) 145public static T Invoke(Vector512<T> x) => HorizontalAggregate<T, MinNumberOperator<T>>(x);
System\Numerics\Tensors\netcore\TensorPrimitives.Multiply.cs (4)
57public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y) => x * y; 61public static T Invoke(Vector512<T> x) => HorizontalAggregate<T, MultiplyOperator<T>>(x);
System\Numerics\Tensors\netcore\TensorPrimitives.MultiplyAdd.cs (4)
81public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y, Vector512<T> z) => (x * y) + z;
System\Numerics\Tensors\netcore\TensorPrimitives.MultiplyAddEstimate.cs (4)
180public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y, Vector512<T> z)
System\Numerics\Tensors\netcore\TensorPrimitives.Negate.cs (2)
34public static Vector512<T> Invoke(Vector512<T> x) => -x;
System\Numerics\Tensors\netcore\TensorPrimitives.OnesComplement.cs (2)
31public static Vector512<T> Invoke(Vector512<T> x) => ~x;
System\Numerics\Tensors\netcore\TensorPrimitives.PopCount.cs (16)
184public static Vector512<T> Invoke(Vector512<T> x) 188Vector512<byte> c1 = Vector512.Create((byte)0x55); 189Vector512<byte> c2 = Vector512.Create((byte)0x33); 190Vector512<byte> c3 = Vector512.Create((byte)0x0F); 196Vector512<byte> tmp = x.AsByte(); 204Vector512<ushort> c1 = Vector512.Create((ushort)0x5555); 205Vector512<ushort> c2 = Vector512.Create((ushort)0x3333); 206Vector512<ushort> c3 = Vector512.Create((ushort)0x0F0F); 207Vector512<ushort> c4 = Vector512.Create((ushort)0x0101); 209Vector512<ushort> tmp = x.AsUInt16(); 218Vector512<uint> c1 = Vector512.Create(0x55555555u); 219Vector512<uint> c2 = Vector512.Create(0x33333333u); 220Vector512<uint> c3 = Vector512.Create(0x0F0F0F0Fu); 221Vector512<uint> c4 = Vector512.Create(0x01010101u); 223Vector512<uint> tmp = x.AsUInt32();
System\Numerics\Tensors\netcore\TensorPrimitives.Pow.cs (3)
92public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y)
System\Numerics\Tensors\netcore\TensorPrimitives.RadiansToDegrees.cs (2)
66public static Vector512<T> Invoke(Vector512<T> x)
System\Numerics\Tensors\netcore\TensorPrimitives.Reciprocal.cs (12)
78public static Vector512<T> Invoke(Vector512<T> x) => Vector512<T>.One / x; 87public static Vector512<T> Invoke(Vector512<T> x) => Vector512<T>.One / Vector512.Sqrt(x); 142public static Vector512<T> Invoke(Vector512<T> x) 152return Vector512<T>.One / x; 208public static Vector512<T> Invoke(Vector512<T> x) 218return Vector512<T>.One / Vector512.Sqrt(x);
System\Numerics\Tensors\netcore\TensorPrimitives.Remainder.cs (3)
86public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y) =>
System\Numerics\Tensors\netcore\TensorPrimitives.RootN.cs (2)
61public Vector512<T> Invoke(Vector512<T> x)
System\Numerics\Tensors\netcore\TensorPrimitives.Rotate.cs (4)
50public Vector512<T> Invoke(Vector512<T> x) => (x << _amount) | (x >>> ((sizeof(T) * 8) - _amount)); 63public Vector512<T> Invoke(Vector512<T> x) => (x >>> _amount) | (x << ((sizeof(T) * 8) - _amount));
System\Numerics\Tensors\netcore\TensorPrimitives.Round.cs (9)
217public static Vector512<T> Invoke(Vector512<T> x) 280public static Vector512<T> Invoke(Vector512<T> x) 336public Vector512<T> Invoke(Vector512<T> x) 338Vector512<T> limit = Vector512.Create(typeof(T) == typeof(float) ? T.CreateTruncating(Single_RoundLimit) : T.CreateTruncating(Double_RoundLimit)); 358public Vector512<T> Invoke(Vector512<T> x) => throw new NotSupportedException();
System\Numerics\Tensors\netcore\TensorPrimitives.ScaleB.cs (2)
36public Vector512<T> Invoke(Vector512<T> x) => x * Vector512.Create(_pow2n);
System\Numerics\Tensors\netcore\TensorPrimitives.ShiftLeft.cs (6)
65public Vector512<T> Invoke(Vector512<T> x) => x << _amount; 78public Vector512<T> Invoke(Vector512<T> x) => x >> _amount; 91public Vector512<T> Invoke(Vector512<T> x) => x >>> _amount;
System\Numerics\Tensors\netcore\TensorPrimitives.Sigmoid.cs (2)
43public static Vector512<T> Invoke(Vector512<T> x) => Vector512.Create(T.One) / (Vector512.Create(T.One) + ExpOperator<T>.Invoke(-x));
System\Numerics\Tensors\netcore\TensorPrimitives.Sign.cs (11)
91public static Vector512<int> Invoke(Vector512<T> x) 95return Vector512.ConditionalSelect(Vector512.Equals(x, Vector512<T>.Zero).AsInt32(), 96Vector512<int>.Zero, 97Vector512<int>.One); 101Vector512<int> value = x.AsInt32(); 106if (Vector512.EqualsAny(IsNaN(x).AsInt32(), Vector512<int>.AllBitsSet)) 111return Vector512.ConditionalSelect(Vector512.LessThan(x, Vector512<T>.Zero).AsInt32(), 113Vector512.ConditionalSelect(Vector512.GreaterThan(x, Vector512<T>.Zero).AsInt32(), 114Vector512<int>.One, 115Vector512<int>.Zero));
System\Numerics\Tensors\netcore\TensorPrimitives.Sin.cs (2)
108public static Vector512<T> Invoke(Vector512<T> x)
System\Numerics\Tensors\netcore\TensorPrimitives.SinCos.cs (3)
37public static (Vector512<T> First, Vector512<T> Second) Invoke(Vector512<T> x) => throw new NotSupportedException();
System\Numerics\Tensors\netcore\TensorPrimitives.SinCosPi.cs (3)
37public static (Vector512<T> First, Vector512<T> Second) Invoke(Vector512<T> x) => throw new NotSupportedException();
System\Numerics\Tensors\netcore\TensorPrimitives.Sinh.cs (12)
105public static Vector512<T> Invoke(Vector512<T> t) 109Vector512<float> x = t.AsSingle(); 111Vector512<float> y = Vector512.Abs(x); 112Vector512<float> z = ExpOperator<float>.Invoke(y - Vector512.Create((float)Single_LOGV)); 113Vector512<float> result = Vector512.Create((float)Single_HALFV) * (z - (Vector512.Create((float)Single_INVV2) / z)); 114Vector512<uint> sign = x.AsUInt32() & Vector512.Create(~(uint)int.MaxValue); 120Vector512<double> x = t.AsDouble(); 122Vector512<double> y = Vector512.Abs(x); 123Vector512<double> z = ExpOperator<double>.Invoke(y - Vector512.Create(Double_LOGV)); 124Vector512<double> result = Vector512.Create(Double_HALFV) * (z - (Vector512.Create(Double_INVV2) / z)); 125Vector512<ulong> sign = x.AsUInt64() & Vector512.Create(~(ulong)long.MaxValue);
System\Numerics\Tensors\netcore\TensorPrimitives.SinPi.cs (3)
87public static Vector512<T> Invoke(Vector512<T> x) 89Vector512<T> xpi = x * Vector512.Create(T.Pi);
System\Numerics\Tensors\netcore\TensorPrimitives.Sqrt.cs (2)
32public static Vector512<T> Invoke(Vector512<T> x) => Vector512.Sqrt(x);
System\Numerics\Tensors\netcore\TensorPrimitives.StdDev.cs (3)
61public Vector512<T> Invoke(Vector512<T> x) 63Vector512<T> diff = x - Vector512.Create(_subtrahend);
System\Numerics\Tensors\netcore\TensorPrimitives.Subtract.cs (3)
73public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y) => x - y;
System\Numerics\Tensors\netcore\TensorPrimitives.Sum.cs (2)
78public static Vector512<T> Invoke(Vector512<T> x) => x * x;
System\Numerics\Tensors\netcore\TensorPrimitives.Tan.cs (48)
87public static Vector512<T> Invoke(Vector512<T> x) 191public static Vector512<float> Invoke(Vector512<float> x) 193Vector512<float> uxMasked = Vector512.Abs(x); 199Vector512<float> dn = MultiplyAddEstimateOperator<float>.Invoke(uxMasked, Vector512.Create(2 / float.Pi), Vector512.Create(AlmHuge)); 200Vector512<uint> odd = dn.AsUInt32() << 31; 203Vector512<float> f = uxMasked; 209Vector512<float> f2 = f * f; 210Vector512<float> f4 = f2 * f2; 211Vector512<float> f8 = f4 * f4; 212Vector512<float> f12 = f8 * f4; 213Vector512<float> a1 = MultiplyAddEstimateOperator<float>.Invoke(Vector512.Create(C2), f2, Vector512.Create(C1)); 214Vector512<float> a2 = MultiplyAddEstimateOperator<float>.Invoke(Vector512.Create(C4), f2, Vector512.Create(C3)); 215Vector512<float> a3 = MultiplyAddEstimateOperator<float>.Invoke(Vector512.Create(C6), f2, Vector512.Create(C5)); 216Vector512<float> b1 = MultiplyAddEstimateOperator<float>.Invoke(a2, f4, a1); 217Vector512<float> b2 = MultiplyAddEstimateOperator<float>.Invoke(f8, a3, f12 * Vector512.Create(C7)); 218Vector512<float> poly = MultiplyAddEstimateOperator<float>.Invoke(f * f2, b1 + b2, f); 220Vector512<float> result = (poly.AsUInt32() ^ (x.AsUInt32() & Vector512.Create(~SignMask))).AsSingle(); 221return Vector512.ConditionalSelect(Vector512.Equals(odd, Vector512<uint>.Zero).AsSingle(), 348public static Vector512<double> Invoke(Vector512<double> x) 350Vector512<double> uxMasked = Vector512.Abs(x); 357Vector512<double> dn = MultiplyAddEstimateOperator<double>.Invoke(uxMasked, Vector512.Create(2 / double.Pi), Vector512.Create(AlmHuge)); 358Vector512<ulong> odd = dn.AsUInt64() << 63; 362Vector512<double> f = uxMasked; 368Vector512<double> g = f * f; 369Vector512<double> g2 = g * g; 370Vector512<double> g3 = g * g2; 371Vector512<double> g5 = g3 * g2; 372Vector512<double> g7 = g5 * g2; 373Vector512<double> g9 = g7 * g2; 374Vector512<double> g11 = g9 * g2; 375Vector512<double> g13 = g11 * g2; 376Vector512<double> a1 = MultiplyAddEstimateOperator<double>.Invoke(Vector512.Create(C3), g, Vector512.Create(C1)); 377Vector512<double> a2 = MultiplyAddEstimateOperator<double>.Invoke(Vector512.Create(C7), g, Vector512.Create(C5)); 378Vector512<double> a3 = MultiplyAddEstimateOperator<double>.Invoke(Vector512.Create(C11), g, Vector512.Create(C9)); 379Vector512<double> a4 = MultiplyAddEstimateOperator<double>.Invoke(Vector512.Create(C15), g, Vector512.Create(C13)); 380Vector512<double> a5 = MultiplyAddEstimateOperator<double>.Invoke(Vector512.Create(C19), g, Vector512.Create(C17)); 381Vector512<double> a6 = MultiplyAddEstimateOperator<double>.Invoke(Vector512.Create(C23), g, Vector512.Create(C21)); 382Vector512<double> a7 = MultiplyAddEstimateOperator<double>.Invoke(Vector512.Create(C27), g, Vector512.Create(C25)); 383Vector512<double> b1 = MultiplyAddEstimateOperator<double>.Invoke(g, a1, g3 * a2); 384Vector512<double> b2 = MultiplyAddEstimateOperator<double>.Invoke(g5, a3, g7 * a4); 385Vector512<double> b3 = MultiplyAddEstimateOperator<double>.Invoke(g9, a5, g11 * a6); 386Vector512<double> q = MultiplyAddEstimateOperator<double>.Invoke(g13, a7, b1 + b2 + b3); 387Vector512<double> poly = MultiplyAddEstimateOperator<double>.Invoke(f, q, f); 389Vector512<double> result = (poly.AsUInt64() ^ (x.AsUInt64() & Vector512.Create(~SignMask))).AsDouble(); 390return Vector512.ConditionalSelect(Vector512.Equals(odd, Vector512<ulong>.Zero).AsDouble(),
System\Numerics\Tensors\netcore\TensorPrimitives.Tanh.cs (10)
107public static Vector512<T> Invoke(Vector512<T> t) 111Vector512<float> x = t.AsSingle(); 113Vector512<float> y = Vector512.Abs(x); 114Vector512<float> z = ExpM1Operator<float>.Invoke(Vector512.Create(-2f) * y); 115Vector512<uint> sign = x.AsUInt32() & Vector512.Create(~(uint)int.MaxValue); 120Vector512<double> x = t.AsDouble(); 122Vector512<double> y = Vector512.Abs(x); 123Vector512<double> z = ExpM1Operator<double>.Invoke(Vector512.Create(-2d) * y); 124Vector512<ulong> sign = x.AsUInt64() & Vector512.Create(~(ulong)long.MaxValue);
System\Numerics\Tensors\netcore\TensorPrimitives.TanPi.cs (2)
39public static Vector512<T> Invoke(Vector512<T> x) => throw new NotSupportedException();
System\Numerics\Tensors\netcore\TensorPrimitives.TrailingZeroCount.cs (3)
60public static Vector512<T> Invoke(Vector512<T> x) 64return PopCountOperator<T>.Invoke(~x & (x - Vector512<T>.One));
System\Numerics\Tensors\netcore\TensorPrimitives.Truncate.cs (2)
103public static Vector512<T> Invoke(Vector512<T> x)
System\Numerics\Tensors\netcore\TensorPrimitives.Xor.cs (3)
49public static Vector512<T> Invoke(Vector512<T> x, Vector512<T> y) => x ^ y;
System.Private.CoreLib (3511)
src\libraries\System.Private.CoreLib\src\System\Buffers\Text\Base64Helper\Base64DecoderHelper.cs (13)
664Vector512<sbyte> vbmiLookup0 = Vector512.Create(decoder.VbmiLookup0).AsSByte(); 665Vector512<sbyte> vbmiLookup1 = Vector512.Create(decoder.VbmiLookup1).AsSByte(); 666Vector512<byte> vbmiPackedLanesControl = Vector512.Create( 672Vector512<sbyte> mergeConstant0 = Vector512.Create(0x01400140).AsSByte(); 673Vector512<short> mergeConstant1 = Vector512.Create(0x00011000).AsInt16(); 679if (!decoder.TryLoadVector512(src, srcStart, sourceLength, out Vector512<sbyte> str)) 688Vector512<sbyte> origIndex = Avx512Vbmi.PermuteVar64x8x2(vbmiLookup0, str, vbmiLookup1); 689Vector512<sbyte> errorVec = (origIndex.AsInt32() | str.AsInt32()).AsSByte(); 697Vector512<short> multiAdd1 = Avx512BW.MultiplyAddAdjacent(origIndex.AsByte(), mergeConstant0); 699Vector512<int> multiAdd2 = Avx512BW.MultiplyAddAdjacent(multiAdd1, mergeConstant1); 704AssertWrite<Vector512<sbyte>>(dest, destStart, destLength); 1347public unsafe bool TryLoadVector512(byte* src, byte* srcStart, int sourceLength, out Vector512<sbyte> str) 1349AssertRead<Vector512<sbyte>>(src, srcStart, sourceLength);
src\libraries\System.Private.CoreLib\src\System\Buffers\Text\Base64Helper\Base64EncoderHelper.cs (13)
152Vector512<sbyte> shuffleVecVbmi = Vector512.Create( 157Vector512<sbyte> vbmiLookup = Vector512.Create(encoder.EncodingMap).AsSByte(); 159Vector512<ushort> maskAC = Vector512.Create((uint)0x0fc0fc00).AsUInt16(); 160Vector512<uint> maskBB = Vector512.Create((uint)0x3f003f00); 161Vector512<ushort> shiftAC = Vector512.Create((uint)0x0006000a).AsUInt16(); 162Vector512<ushort> shiftBB = Vector512.Create((uint)0x00080004).AsUInt16(); 170Vector512<sbyte> str = Vector512.Load(src).AsSByte(); 181Vector512<ushort> temp1 = (str.AsUInt16() & maskAC); 184Vector512<ushort> temp2 = Avx512BW.ShiftRightLogicalVariable(temp1, shiftAC).AsUInt16(); 187Vector512<ushort> temp3 = Avx512BW.ShiftLeftLogicalVariable(str.AsUInt16(), shiftBB).AsUInt16(); 203AssertRead<Vector512<sbyte>>(src, srcStart, sourceLength); 730public unsafe void StoreVector512ToDestination(byte* dest, byte* destStart, int destLength, Vector512<byte> str) 732AssertWrite<Vector512<sbyte>>(dest, destStart, destLength);
src\libraries\System.Private.CoreLib\src\System\Buffers\Text\Base64Helper\Base64Helper.cs (2)
190unsafe void StoreVector512ToDestination(T* dest, T* destStart, int destLength, Vector512<byte> str); 238unsafe bool TryLoadVector512(T* src, T* srcStart, int sourceLength, out Vector512<sbyte> str);
src\libraries\System.Private.CoreLib\src\System\Buffers\Text\Base64Url\Base64UrlDecoder.cs (5)
570public unsafe bool TryLoadVector512(byte* src, byte* srcStart, int sourceLength, out Vector512<sbyte> str) => 663public unsafe bool TryLoadVector512(ushort* src, ushort* srcStart, int sourceLength, out Vector512<sbyte> str) 665AssertRead<Vector512<ushort>>(src, srcStart, sourceLength); 666Vector512<ushort> utf16VectorLower = Vector512.Load(src); 667Vector512<ushort> utf16VectorUpper = Vector512.Load(src + 32);
src\libraries\System.Private.CoreLib\src\System\Buffers\Text\Base64Url\Base64UrlEncoder.cs (6)
288public unsafe void StoreVector512ToDestination(byte* dest, byte* destStart, int destLength, Vector512<byte> str) => 382public unsafe void StoreVector512ToDestination(ushort* dest, ushort* destStart, int destLength, Vector512<byte> str) 384AssertWrite<Vector512<ushort>>(dest, destStart, destLength); 385(Vector512<ushort> utf16LowVector, Vector512<ushort> utf16HighVector) = Vector512.Widen(str); 387utf16HighVector.Store(dest + Vector512<ushort>.Count);
src\libraries\System.Private.CoreLib\src\System\Globalization\Ordinal.cs (2)
166if (Vector512.IsHardwareAccelerated && length >= Vector512<ushort>.Count) 168return EqualsIgnoreCase_Vector<Vector512<ushort>>(ref charA, ref charB, length);
src\libraries\System.Private.CoreLib\src\System\Numerics\Vector.cs (8)
382if (sizeof(Vector<double>) == sizeof(Vector512<double>)) 405if (sizeof(Vector<double>) == sizeof(Vector512<double>)) 513if (sizeof(Vector<float>) == sizeof(Vector512<float>)) 680if (sizeof(Vector<T>) == sizeof(Vector512<T>)) 1337if (sizeof(Vector<T>) == sizeof(Vector512<T>)) 1583if (sizeof(Vector<T>) == sizeof(Vector512<T>)) 2675if (sizeof(Vector<uint>) == sizeof(Vector512<uint>)) 2701if (sizeof(Vector<ulong>) == sizeof(Vector512<ulong>))
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\Vector256.cs (17)
755return VectorMath.CosSingle<Vector256<float>, Vector256<int>, Vector512<double>, Vector512<long>>(vector); 1660return VectorMath.ExpSingle<Vector256<float>, Vector256<uint>, Vector512<double>, Vector512<ulong>>(vector); 1912return VectorMath.HypotSingle<Vector256<float>, Vector512<double>>(x, y); 3674return VectorMath.SinSingle<Vector256<float>, Vector256<int>, Vector512<double>, Vector512<long>>(vector); 3718return VectorMath.SinCosSingle<Vector256<float>, Vector256<int>, Vector512<double>, Vector512<long>>(vector); 3860/// <summary>Converts the given vector to a new <see cref="Vector512{T}" /> with the lower 256-bits set to the value of the given vector and the upper 256-bits initialized to zero.</summary> 3863/// <returns>A new <see cref="Vector512{T}" /> with the lower 256-bits set to the value of <paramref name="vector" /> and the upper 256-bits initialized to zero.</returns> 3866public static Vector512<T> ToVector512<T>(this Vector256<T> vector) 3870Vector512<T> result = default; 3875/// <summary>Converts the given vector to a new <see cref="Vector512{T}" /> with the lower 256-bits set to the value of the given vector and the upper 256-bits left uninitialized.</summary> 3878/// <returns>A new <see cref="Vector512{T}" /> with the lower 256-bits set to the value of <paramref name="vector" /> and the upper 256-bits left uninitialized.</returns> 3881public static unsafe Vector512<T> ToVector512Unsafe<T>(this Vector256<T> vector) 3888Unsafe.SkipInit(out Vector512<T> result);
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\Vector512.cs (848)
63public static Vector512<T> Abs<T>(Vector512<T> vector) 89public static Vector512<T> Add<T>(Vector512<T> left, Vector512<T> right) => left + right; 94public static bool All<T>(Vector512<T> vector, T value) => vector == Create(value); 99public static bool AllWhereAllBitsSet<T>(Vector512<T> vector) 123public static Vector512<T> AndNot<T>(Vector512<T> left, Vector512<T> right) => left & ~right; 128public static bool Any<T>(Vector512<T> vector, T value) => EqualsAny(vector, Create(value)); 133public static bool AnyWhereAllBitsSet<T>(Vector512<T> vector) 157public static Vector512<TTo> As<TFrom, TTo>(this Vector512<TFrom> vector) 165return Unsafe.BitCast<Vector512<TFrom>, Vector512<TTo>>(vector); 169/// <summary>Reinterprets a <see cref="Vector512{T}" /> as a new <see langword="Vector512&lt;Byte&gt;" />.</summary> 175public static Vector512<byte> AsByte<T>(this Vector512<T> vector) => vector.As<T, byte>(); 177/// <summary>Reinterprets a <see cref="Vector512{T}" /> as a new <see langword="Vector512&lt;Double&gt;" />.</summary> 183public static Vector512<double> AsDouble<T>(this Vector512<T> vector) => vector.As<T, double>(); 185/// <summary>Reinterprets a <see cref="Vector512{T}" /> as a new <see langword="Vector512&lt;Int16&gt;" />.</summary> 191public static Vector512<short> AsInt16<T>(this Vector512<T> vector) => vector.As<T, short>(); 193/// <summary>Reinterprets a <see cref="Vector512{T}" /> as a new <see langword="Vector512&lt;Int32&gt;" />.</summary> 199public static Vector512<int> AsInt32<T>(this Vector512<T> vector) => vector.As<T, int>(); 201/// <summary>Reinterprets a <see cref="Vector512{T}" /> as a new <see langword="Vector512&lt;Int64&gt;" />.</summary> 207public static Vector512<long> AsInt64<T>(this Vector512<T> vector) => vector.As<T, long>(); 209/// <summary>Reinterprets a <see cref="Vector512{T}" /> as a new <see langword="Vector512&lt;IntPtr&gt;" />.</summary> 215public static Vector512<nint> AsNInt<T>(this Vector512<T> vector) => vector.As<T, nint>(); 217/// <summary>Reinterprets a <see cref="Vector512{T}" /> as a new <see langword="Vector512&lt;UIntPtr&gt;" />.</summary> 224public static Vector512<nuint> AsNUInt<T>(this Vector512<T> vector) => vector.As<T, nuint>(); 226/// <summary>Reinterprets a <see cref="Vector512{T}" /> as a new <see langword="Vector512&lt;SByte&gt;" />.</summary> 233public static Vector512<sbyte> AsSByte<T>(this Vector512<T> vector) => vector.As<T, sbyte>(); 235/// <summary>Reinterprets a <see cref="Vector512{T}" /> as a new <see langword="Vector512&lt;Single&gt;" />.</summary> 241public static Vector512<float> AsSingle<T>(this Vector512<T> vector) => vector.As<T, float>(); 243/// <summary>Reinterprets a <see cref="Vector512{T}" /> as a new <see langword="Vector512&lt;UInt16&gt;" />.</summary> 250public static Vector512<ushort> AsUInt16<T>(this Vector512<T> vector) => vector.As<T, ushort>(); 252/// <summary>Reinterprets a <see cref="Vector512{T}" /> as a new <see langword="Vector512&lt;UInt32&gt;" />.</summary> 259public static Vector512<uint> AsUInt32<T>(this Vector512<T> vector) => vector.As<T, uint>(); 261/// <summary>Reinterprets a <see cref="Vector512{T}" /> as a new <see langword="Vector512&lt;UInt64&gt;" />.</summary> 268public static Vector512<ulong> AsUInt64<T>(this Vector512<T> vector) => vector.As<T, ulong>(); 270/// <summary>Reinterprets a <see cref="Vector{T}" /> as a new <see cref="Vector512{T}" />.</summary> 273/// <returns><paramref name="value" /> reinterpreted as a new <see cref="Vector512{T}" />.</returns> 277public static Vector512<T> AsVector512<T>(this Vector<T> value) 279Debug.Assert(Vector512<T>.Count >= Vector<T>.Count); 282Vector512<T> result = default; 283Unsafe.WriteUnaligned(ref Unsafe.As<Vector512<T>, byte>(ref result), value); 287/// <summary>Reinterprets a <see cref="Vector512{T}" /> as a new <see cref="Vector{T}" />.</summary> 294public static Vector<T> AsVector<T>(this Vector512<T> value) 296Debug.Assert(Vector512<T>.Count >= Vector<T>.Count); 299ref byte address = ref Unsafe.As<Vector512<T>, byte>(ref value); 310public static Vector512<T> BitwiseAnd<T>(Vector512<T> left, Vector512<T> right) => left & right; 319public static Vector512<T> BitwiseOr<T>(Vector512<T> left, Vector512<T> right) => left | right; 326internal static Vector512<T> Ceiling<T>(Vector512<T> vector) 355public static Vector512<float> Ceiling(Vector512<float> vector) => Ceiling<float>(vector); 362public static Vector512<double> Ceiling(Vector512<double> vector) => Ceiling<double>(vector); 366public static Vector512<T> Clamp<T>(Vector512<T> value, Vector512<T> min, Vector512<T> max) 374public static Vector512<T> ClampNative<T>(Vector512<T> value, Vector512<T> min, Vector512<T> max) 390public static Vector512<T> ConditionalSelect<T>(Vector512<T> condition, Vector512<T> left, Vector512<T> right) => (left & condition) | AndNot(right, condition); 397public static Vector512<double> ConvertToDouble(Vector512<long> vector) 411public static Vector512<double> ConvertToDouble(Vector512<ulong> vector) 424public static Vector512<int> ConvertToInt32(Vector512<float> vector) 437public static Vector512<int> ConvertToInt32Native(Vector512<float> vector) 450public static Vector512<long> ConvertToInt64(Vector512<double> vector) 463public static Vector512<long> ConvertToInt64Native(Vector512<double> vector) 476public static Vector512<float> ConvertToSingle(Vector512<int> vector) 490public static Vector512<float> ConvertToSingle(Vector512<uint> vector) 504public static Vector512<uint> ConvertToUInt32(Vector512<float> vector) 518public static Vector512<uint> ConvertToUInt32Native(Vector512<float> vector) 532public static Vector512<ulong> ConvertToUInt64(Vector512<double> vector) 546public static Vector512<ulong> ConvertToUInt64Native(Vector512<double> vector) 557public static Vector512<T> CopySign<T>(Vector512<T> value, Vector512<T> sign) 569return VectorMath.CopySign<Vector512<T>, T>(value, sign); 580/// <summary>Copies a <see cref="Vector512{T}" /> to a given array.</summary> 584/// <exception cref="ArgumentException">The length of <paramref name="destination" /> is less than <see cref="Vector512{T}.Count" />.</exception> 587public static void CopyTo<T>(this Vector512<T> vector, T[] destination) 591if (destination.Length < Vector512<T>.Count) 599/// <summary>Copies a <see cref="Vector512{T}" /> to a given array starting at the specified index.</summary> 604/// <exception cref="ArgumentException">The length of <paramref name="destination" /> is less than <see cref="Vector512{T}.Count" />.</exception> 608public static void CopyTo<T>(this Vector512<T> vector, T[] destination, int startIndex) 617if ((destination.Length - startIndex) < Vector512<T>.Count) 625/// <summary>Copies a <see cref="Vector512{T}" /> to a given span.</summary> 629/// <exception cref="ArgumentException">The length of <paramref name="destination" /> is less than <see cref="Vector512{T}.Count" />.</exception> 631public static void CopyTo<T>(this Vector512<T> vector, Span<T> destination) 633if ((uint)destination.Length < (uint)Vector512<T>.Count) 643public static Vector512<double> Cos(Vector512<double> vector) 647return VectorMath.CosDouble<Vector512<double>, Vector512<long>>(vector); 660public static Vector512<float> Cos(Vector512<float> vector) 664return VectorMath.CosSingle<Vector512<float>, Vector512<int>, Vector512<double>, Vector512<long>>(vector); 678public static int Count<T>(Vector512<T> vector, T value) => BitOperations.PopCount(Equals(vector, Create(value)).ExtractMostSignificantBits()); 683public static int CountWhereAllBitsSet<T>(Vector512<T> vector) 699/// <summary>Creates a new <see cref="Vector512{T}" /> instance with all elements initialized to the specified value.</summary> 702/// <returns>A new <see cref="Vector512{T}" /> with all elements initialized to <paramref name="value" />.</returns> 705public static Vector512<T> Create<T>(T value) 716public static Vector512<byte> Create(byte value) => Create<byte>(value); 723public static Vector512<double> Create(double value) => Create<double>(value); 730public static Vector512<short> Create(short value) => Create<short>(value); 737public static Vector512<int> Create(int value) => Create<int>(value); 744public static Vector512<long> Create(long value) => Create<long>(value); 750public static Vector512<nint> Create(nint value) => Create<nint>(value); 757public static Vector512<nuint> Create(nuint value) => Create<nuint>(value); 765public static Vector512<sbyte> Create(sbyte value) => Create<sbyte>(value); 772public static Vector512<float> Create(float value) => Create<float>(value); 780public static Vector512<ushort> Create(ushort value) => Create<ushort>(value); 788public static Vector512<uint> Create(uint value) => Create<uint>(value); 796public static Vector512<ulong> Create(ulong value) => Create<ulong>(value); 798/// <summary>Creates a new <see cref="Vector512{T}" /> from a given array.</summary> 801/// <returns>A new <see cref="Vector512{T}" /> with its elements set to the first <see cref="Vector512{T}.Count" /> elements from <paramref name="values" />.</returns> 802/// <exception cref="ArgumentOutOfRangeException">The length of <paramref name="values" /> is less than <see cref="Vector512{T}.Count" />.</exception> 805public static Vector512<T> Create<T>(T[] values) 809if (values.Length < Vector512<T>.Count) 814return Unsafe.ReadUnaligned<Vector512<T>>(ref Unsafe.As<T, byte>(ref values[0])); 817/// <summary>Creates a new <see cref="Vector512{T}" /> from a given array.</summary> 821/// <returns>A new <see cref="Vector512{T}" /> with its elements set to the first <see cref="Vector256{T}.Count" /> elements from <paramref name="values" />.</returns> 822/// <exception cref="ArgumentOutOfRangeException">The length of <paramref name="values" />, starting from <paramref name="index" />, is less than <see cref="Vector512{T}.Count" />.</exception> 825public static Vector512<T> Create<T>(T[] values, int index) 829if ((index < 0) || ((values.Length - index) < Vector512<T>.Count)) 834return Unsafe.ReadUnaligned<Vector512<T>>(ref Unsafe.As<T, byte>(ref values[index])); 837/// <summary>Creates a new <see cref="Vector512{T}" /> from a given readonly span.</summary> 840/// <returns>A new <see cref="Vector512{T}" /> with its elements set to the first <see cref="Vector512{T}.Count" /> elements from <paramref name="values" />.</returns> 841/// <exception cref="ArgumentOutOfRangeException">The length of <paramref name="values" /> is less than <see cref="Vector512{T}.Count" />.</exception> 844public static Vector512<T> Create<T>(ReadOnlySpan<T> values) 846if (values.Length < Vector512<T>.Count) 851return Unsafe.ReadUnaligned<Vector512<T>>(ref Unsafe.As<T, byte>(ref MemoryMarshal.GetReference(values))); 923public static Vector512<byte> Create(byte e0, byte e1, byte e2, byte e3, byte e4, byte e5, byte e6, byte e7, byte e8, byte e9, byte e10, byte e11, byte e12, byte e13, byte e14, byte e15, 947public static Vector512<double> Create(double e0, double e1, double e2, double e3, double e4, double e5, double e6, double e7) 992public static Vector512<short> Create(short e0, short e1, short e2, short e3, short e4, short e5, short e6, short e7, short e8, short e9, short e10, short e11, short e12, short e13, short e14, short e15, 1022public static Vector512<int> Create(int e0, int e1, int e2, int e3, int e4, int e5, int e6, int e7, int e8, int e9, int e10, int e11, int e12, int e13, int e14, int e15) 1043public static Vector512<long> Create(long e0, long e1, long e2, long e3, long e4, long e5, long e6, long e7) 1121public static Vector512<sbyte> Create(sbyte e0, sbyte e1, sbyte e2, sbyte e3, sbyte e4, sbyte e5, sbyte e6, sbyte e7, sbyte e8, sbyte e9, sbyte e10, sbyte e11, sbyte e12, sbyte e13, sbyte e14, sbyte e15, 1153public static Vector512<float> Create(float e0, float e1, float e2, float e3, float e4, float e5, float e6, float e7, float e8, float e9, float e10, float e11, float e12, float e13, float e14, float e15) 1199public static Vector512<ushort> Create(ushort e0, ushort e1, ushort e2, ushort e3, ushort e4, ushort e5, ushort e6, ushort e7, ushort e8, ushort e9, ushort e10, ushort e11, ushort e12, ushort e13, ushort e14, ushort e15, 1230public static Vector512<uint> Create(uint e0, uint e1, uint e2, uint e3, uint e4, uint e5, uint e6, uint e7, uint e8, uint e9, uint e10, uint e11, uint e12, uint e13, uint e14, uint e15) 1252public static Vector512<ulong> Create(ulong e0, ulong e1, ulong e2, ulong e3, ulong e4, ulong e5, ulong e6, ulong e7) 1260/// <summary>Creates a new <see cref="Vector512{T}" /> instance with all 64-bit parts initialized to a specified value.</summary> 1266public static Vector512<T> Create<T>(Vector64<T> value) => Create(Vector128.Create(value, value)); 1268/// <summary>Creates a new <see cref="Vector512{T}" /> instance with all 128-bit parts initialized to a specified value.</summary> 1274public static Vector512<T> Create<T>(Vector128<T> value) => Create(Vector256.Create(value, value)); 1276/// <summary>Creates a new <see cref="Vector512{T}" /> instance with the lower and upper 256-bits initialized to a specified value.</summary> 1282public static Vector512<T> Create<T>(Vector256<T> value) => Create(value, value); 1284/// <summary>Creates a new <see cref="Vector512{T}" /> instance from two <see cref="Vector256{T}" /> instances.</summary> 1288/// <returns>A new <see cref="Vector512{T}" /> initialized from <paramref name="lower" /> and <paramref name="upper" />.</returns> 1291public static Vector512<T> Create<T>(Vector256<T> lower, Vector256<T> upper) 1294Unsafe.SkipInit(out Vector512<T> result); 1306public static Vector512<byte> Create(Vector256<byte> lower, Vector256<byte> upper) => Create<byte>(lower, upper); 1313public static Vector512<double> Create(Vector256<double> lower, Vector256<double> upper) => Create<double>(lower, upper); 1319public static Vector512<short> Create(Vector256<short> lower, Vector256<short> upper) => Create<short>(lower, upper); 1326public static Vector512<int> Create(Vector256<int> lower, Vector256<int> upper) => Create<int>(lower, upper); 1332public static Vector512<long> Create(Vector256<long> lower, Vector256<long> upper) => Create<long>(lower, upper); 1338public static Vector512<nint> Create(Vector256<nint> lower, Vector256<nint> upper) => Create<nint>(lower, upper); 1345public static Vector512<nuint> Create(Vector256<nuint> lower, Vector256<nuint> upper) => Create<nuint>(lower, upper); 1352public static Vector512<sbyte> Create(Vector256<sbyte> lower, Vector256<sbyte> upper) => Create<sbyte>(lower, upper); 1359public static Vector512<float> Create(Vector256<float> lower, Vector256<float> upper) => Create<float>(lower, upper); 1366public static Vector512<ushort> Create(Vector256<ushort> lower, Vector256<ushort> upper) => Create<ushort>(lower, upper); 1374public static Vector512<uint> Create(Vector256<uint> lower, Vector256<uint> upper) => Create<uint>(lower, upper); 1381public static Vector512<ulong> Create(Vector256<ulong> lower, Vector256<ulong> upper) => Create<ulong>(lower, upper); 1383/// <summary>Creates a new <see cref="Vector512{T}" /> instance with the first element initialized to the specified value and the remaining elements initialized to zero.</summary> 1386/// <returns>A new <see cref="Vector512{T}" /> instance with the first element initialized to <paramref name="value" /> and the remaining elements initialized to zero.</returns> 1389public static Vector512<T> CreateScalar<T>(T value) => Vector256.CreateScalar(value).ToVector512(); 1395public static Vector512<byte> CreateScalar(byte value) => CreateScalar<byte>(value); 1401public static Vector512<double> CreateScalar(double value) => CreateScalar<double>(value); 1407public static Vector512<short> CreateScalar(short value) => CreateScalar<short>(value); 1413public static Vector512<int> CreateScalar(int value) => CreateScalar<int>(value); 1419public static Vector512<long> CreateScalar(long value) => CreateScalar<long>(value); 1425public static Vector512<nint> CreateScalar(nint value) => CreateScalar<nint>(value); 1432public static Vector512<nuint> CreateScalar(nuint value) => CreateScalar<nuint>(value); 1439public static Vector512<sbyte> CreateScalar(sbyte value) => CreateScalar<sbyte>(value); 1445public static Vector512<float> CreateScalar(float value) => CreateScalar<float>(value); 1452public static Vector512<ushort> CreateScalar(ushort value) => CreateScalar<ushort>(value); 1459public static Vector512<uint> CreateScalar(uint value) => CreateScalar<uint>(value); 1466public static Vector512<ulong> CreateScalar(ulong value) => CreateScalar<ulong>(value); 1468/// <summary>Creates a new <see cref="Vector512{T}" /> instance with the first element initialized to the specified value and the remaining elements left uninitialized.</summary> 1471/// <returns>A new <see cref="Vector512{T}" /> instance with the first element initialized to <paramref name="value" /> and the remaining elements left uninitialized.</returns> 1475public static Vector512<T> CreateScalarUnsafe<T>(T value) 1481Unsafe.SkipInit(out Vector512<T> result); 1491public static Vector512<byte> CreateScalarUnsafe(byte value) => CreateScalarUnsafe<byte>(value); 1497public static Vector512<double> CreateScalarUnsafe(double value) => CreateScalarUnsafe<double>(value); 1503public static Vector512<short> CreateScalarUnsafe(short value) => CreateScalarUnsafe<short>(value); 1509public static Vector512<int> CreateScalarUnsafe(int value) => CreateScalarUnsafe<int>(value); 1515public static Vector512<long> CreateScalarUnsafe(long value) => CreateScalarUnsafe<long>(value); 1521public static Vector512<nint> CreateScalarUnsafe(nint value) => CreateScalarUnsafe<nint>(value); 1528public static Vector512<nuint> CreateScalarUnsafe(nuint value) => CreateScalarUnsafe<nuint>(value); 1535public static Vector512<sbyte> CreateScalarUnsafe(sbyte value) => CreateScalarUnsafe<sbyte>(value); 1541public static Vector512<float> CreateScalarUnsafe(float value) => CreateScalarUnsafe<float>(value); 1548public static Vector512<ushort> CreateScalarUnsafe(ushort value) => CreateScalarUnsafe<ushort>(value); 1555public static Vector512<uint> CreateScalarUnsafe(uint value) => CreateScalarUnsafe<uint>(value); 1562public static Vector512<ulong> CreateScalarUnsafe(ulong value) => CreateScalarUnsafe<ulong>(value); 1564/// <summary>Creates a new <see cref="Vector512{T}" /> instance where the elements begin at a specified value and which are spaced apart according to another specified value.</summary> 1568/// <returns>A new <see cref="Vector512{T}" /> instance with the first element initialized to <paramref name="start" /> and each subsequent element initialized to the value of the previous element plus <paramref name="step" />.</returns> 1571public static Vector512<T> CreateSequence<T>(T start, T step) => (Vector512<T>.Indices * step) + Create(start); 1576public static Vector512<double> DegreesToRadians(Vector512<double> degrees) 1580return VectorMath.DegreesToRadians<Vector512<double>, double>(degrees); 1594public static Vector512<float> DegreesToRadians(Vector512<float> degrees) 1598return VectorMath.DegreesToRadians<Vector512<float>, float>(degrees); 1617public static Vector512<T> Divide<T>(Vector512<T> left, Vector512<T> right) => left / right; 1625public static Vector512<T> Divide<T>(Vector512<T> left, T right) => left / right; 1635public static T Dot<T>(Vector512<T> left, Vector512<T> right) => Sum(left * right); 1645public static Vector512<T> Equals<T>(Vector512<T> left, Vector512<T> right) 1660public static bool EqualsAll<T>(Vector512<T> left, Vector512<T> right) => left == right; 1670public static bool EqualsAny<T>(Vector512<T> left, Vector512<T> right) 1678public static Vector512<double> Exp(Vector512<double> vector) 1682return VectorMath.ExpDouble<Vector512<double>, Vector512<ulong>>(vector); 1695public static Vector512<float> Exp(Vector512<float> vector) 1699return VectorMath.ExpSingle<Vector512<float>, Vector512<uint>, Vector512<double>, Vector512<ulong>>(vector); 1718public static ulong ExtractMostSignificantBits<T>(this Vector512<T> vector) 1730internal static Vector512<T> Floor<T>(Vector512<T> vector) 1759public static Vector512<float> Floor(Vector512<float> vector) => Floor<float>(vector); 1766public static Vector512<double> Floor(Vector512<double> vector) => Floor<double>(vector); 1771public static Vector512<double> FusedMultiplyAdd(Vector512<double> left, Vector512<double> right, Vector512<double> addend) 1782public static Vector512<float> FusedMultiplyAdd(Vector512<float> left, Vector512<float> right, Vector512<float> addend) 1799public static T GetElement<T>(this Vector512<T> vector, int index) 1801if ((uint)(index) >= (uint)(Vector512<T>.Count)) 1815public static Vector256<T> GetLower<T>(this Vector512<T> vector) 1827public static Vector256<T> GetUpper<T>(this Vector512<T> vector) 1841public static Vector512<T> GreaterThan<T>(Vector512<T> left, Vector512<T> right) 1857public static bool GreaterThanAll<T>(Vector512<T> left, Vector512<T> right) 1871public static bool GreaterThanAny<T>(Vector512<T> left, Vector512<T> right) 1885public static Vector512<T> GreaterThanOrEqual<T>(Vector512<T> left, Vector512<T> right) 1901public static bool GreaterThanOrEqualAll<T>(Vector512<T> left, Vector512<T> right) 1915public static bool GreaterThanOrEqualAny<T>(Vector512<T> left, Vector512<T> right) 1923public static Vector512<double> Hypot(Vector512<double> x, Vector512<double> y) 1927return VectorMath.HypotDouble<Vector512<double>, Vector512<ulong>>(x, y); 1940public static Vector512<float> Hypot(Vector512<float> x, Vector512<float> y) 1944return VectorMath.HypotSingle<Vector512<float>, Vector512<double>>(x, y); 1958public static int IndexOf<T>(Vector512<T> vector, T value) 1967public static int IndexOfWhereAllBitsSet<T>(Vector512<T> vector) 1986public static Vector512<T> IsEvenInteger<T>(Vector512<T> vector) 1990return VectorMath.IsEvenIntegerSingle<Vector512<float>, Vector512<uint>>(vector.AsSingle()).As<float, T>(); 1994return VectorMath.IsEvenIntegerDouble<Vector512<double>, Vector512<ulong>>(vector.AsDouble()).As<double, T>(); 1996return IsZero(vector & Vector512<T>.One); 2002public static Vector512<T> IsFinite<T>(Vector512<T> vector) 2012return Vector512<T>.AllBitsSet; 2018public static Vector512<T> IsInfinity<T>(Vector512<T> vector) 2024return Vector512<T>.Zero; 2030public static Vector512<T> IsInteger<T>(Vector512<T> vector) 2036return Vector512<T>.AllBitsSet; 2042public static Vector512<T> IsNaN<T>(Vector512<T> vector) 2048return Vector512<T>.Zero; 2054public static Vector512<T> IsNegative<T>(Vector512<T> vector) 2062return Vector512<T>.Zero; 2066return LessThan(vector.AsInt32(), Vector512<int>.Zero).As<int, T>(); 2070return LessThan(vector.AsInt64(), Vector512<long>.Zero).As<long, T>(); 2074return LessThan(vector, Vector512<T>.Zero); 2081public static Vector512<T> IsNegativeInfinity<T>(Vector512<T> vector) 2091return Vector512<T>.Zero; 2097public static Vector512<T> IsNormal<T>(Vector512<T> vector) 2113public static Vector512<T> IsOddInteger<T>(Vector512<T> vector) 2117return VectorMath.IsOddIntegerSingle<Vector512<float>, Vector512<uint>>(vector.AsSingle()).As<float, T>(); 2121return VectorMath.IsOddIntegerDouble<Vector512<double>, Vector512<ulong>>(vector.AsDouble()).As<double, T>(); 2123return ~IsZero(vector & Vector512<T>.One); 2129public static Vector512<T> IsPositive<T>(Vector512<T> vector) 2137return Vector512<T>.AllBitsSet; 2141return GreaterThanOrEqual(vector.AsInt32(), Vector512<int>.Zero).As<int, T>(); 2145return GreaterThanOrEqual(vector.AsInt64(), Vector512<long>.Zero).As<long, T>(); 2149return GreaterThanOrEqual(vector, Vector512<T>.Zero); 2156public static Vector512<T> IsPositiveInfinity<T>(Vector512<T> vector) 2166return Vector512<T>.Zero; 2172public static Vector512<T> IsSubnormal<T>(Vector512<T> vector) 2176return LessThan(Abs(vector).AsUInt32() - Vector512<uint>.One, Create<uint>(float.MaxTrailingSignificand)).As<uint, T>(); 2180return LessThan(Abs(vector).AsUInt64() - Vector512<ulong>.One, Create<ulong>(double.MaxTrailingSignificand)).As<ulong, T>(); 2182return Vector512<T>.Zero; 2188public static Vector512<T> IsZero<T>(Vector512<T> vector) => Equals(vector, Vector512<T>.Zero); 2193public static int LastIndexOf<T>(Vector512<T> vector, T value) => 63 - BitOperations.LeadingZeroCount(Equals(vector, Create(value)).ExtractMostSignificantBits()); 2198public static int LastIndexOfWhereAllBitsSet<T>(Vector512<T> vector) 2217public static Vector512<double> Lerp(Vector512<double> x, Vector512<double> y, Vector512<double> amount) 2221return VectorMath.Lerp<Vector512<double>, double>(x, y, amount); 2235public static Vector512<float> Lerp(Vector512<float> x, Vector512<float> y, Vector512<float> amount) 2239return VectorMath.Lerp<Vector512<float>, float>(x, y, amount); 2258public static Vector512<T> LessThan<T>(Vector512<T> left, Vector512<T> right) 2274public static bool LessThanAll<T>(Vector512<T> left, Vector512<T> right) 2288public static bool LessThanAny<T>(Vector512<T> left, Vector512<T> right) 2302public static Vector512<T> LessThanOrEqual<T>(Vector512<T> left, Vector512<T> right) 2318public static bool LessThanOrEqualAll<T>(Vector512<T> left, Vector512<T> right) 2332public static bool LessThanOrEqualAny<T>(Vector512<T> left, Vector512<T> right) 2345public static Vector512<T> Load<T>(T* source) => LoadUnsafe(ref *source); 2355public static Vector512<T> LoadAligned<T>(T* source) 2364return *(Vector512<T>*)(source); 2375public static Vector512<T> LoadAlignedNonTemporal<T>(T* source) => LoadAligned(source); 2384public static Vector512<T> LoadUnsafe<T>(ref readonly T source) 2388return Unsafe.ReadUnaligned<Vector512<T>>(in address); 2400public static Vector512<T> LoadUnsafe<T>(ref readonly T source, nuint elementOffset) 2404return Unsafe.ReadUnaligned<Vector512<T>>(in address); 2410internal static Vector512<ushort> LoadUnsafe(ref char source) => LoadUnsafe(ref Unsafe.As<char, ushort>(ref source)); 2416internal static Vector512<ushort> LoadUnsafe(ref char source, nuint elementOffset) => LoadUnsafe(ref Unsafe.As<char, ushort>(ref source), elementOffset); 2420public static Vector512<double> Log(Vector512<double> vector) 2424return VectorMath.LogDouble<Vector512<double>, Vector512<long>, Vector512<ulong>>(vector); 2437public static Vector512<float> Log(Vector512<float> vector) 2441return VectorMath.LogSingle<Vector512<float>, Vector512<int>, Vector512<uint>>(vector); 2454public static Vector512<double> Log2(Vector512<double> vector) 2458return VectorMath.Log2Double<Vector512<double>, Vector512<long>, Vector512<ulong>>(vector); 2471public static Vector512<float> Log2(Vector512<float> vector) 2475return VectorMath.Log2Single<Vector512<float>, Vector512<int>, Vector512<uint>>(vector); 2489public static Vector512<T> Max<T>(Vector512<T> left, Vector512<T> right) 2493return VectorMath.Max<Vector512<T>, T>(left, right); 2507public static Vector512<T> MaxMagnitude<T>(Vector512<T> left, Vector512<T> right) 2511return VectorMath.MaxMagnitude<Vector512<T>, T>(left, right); 2525public static Vector512<T> MaxMagnitudeNumber<T>(Vector512<T> left, Vector512<T> right) 2529return VectorMath.MaxMagnitudeNumber<Vector512<T>, T>(left, right); 2543public static Vector512<T> MaxNative<T>(Vector512<T> left, Vector512<T> right) 2561public static Vector512<T> MaxNumber<T>(Vector512<T> left, Vector512<T> right) 2565return VectorMath.MaxNumber<Vector512<T>, T>(left, right); 2579public static Vector512<T> Min<T>(Vector512<T> left, Vector512<T> right) 2583return VectorMath.Min<Vector512<T>, T>(left, right); 2597public static Vector512<T> MinMagnitude<T>(Vector512<T> left, Vector512<T> right) 2601return VectorMath.MinMagnitude<Vector512<T>, T>(left, right); 2615public static Vector512<T> MinMagnitudeNumber<T>(Vector512<T> left, Vector512<T> right) 2619return VectorMath.MinMagnitudeNumber<Vector512<T>, T>(left, right); 2633public static Vector512<T> MinNative<T>(Vector512<T> left, Vector512<T> right) 2651public static Vector512<T> MinNumber<T>(Vector512<T> left, Vector512<T> right) 2655return VectorMath.MinNumber<Vector512<T>, T>(left, right); 2673public static Vector512<T> Multiply<T>(Vector512<T> left, Vector512<T> right) => left * right; 2682public static Vector512<T> Multiply<T>(Vector512<T> left, T right) => left * right; 2691public static Vector512<T> Multiply<T>(T left, Vector512<T> right) => right * left; 2695internal static Vector512<T> MultiplyAddEstimate<T>(Vector512<T> left, Vector512<T> right, Vector512<T> addend) 2706public static Vector512<double> MultiplyAddEstimate(Vector512<double> left, Vector512<double> right, Vector512<double> addend) 2716public static Vector512<float> MultiplyAddEstimate(Vector512<float> left, Vector512<float> right, Vector512<float> addend) 2730public static Vector512<float> Narrow(Vector512<double> lower, Vector512<double> upper) 2745public static Vector512<sbyte> Narrow(Vector512<short> lower, Vector512<short> upper) 2759public static Vector512<short> Narrow(Vector512<int> lower, Vector512<int> upper) 2773public static Vector512<int> Narrow(Vector512<long> lower, Vector512<long> upper) 2788public static Vector512<byte> Narrow(Vector512<ushort> lower, Vector512<ushort> upper) 2803public static Vector512<ushort> Narrow(Vector512<uint> lower, Vector512<uint> upper) 2818public static Vector512<uint> Narrow(Vector512<ulong> lower, Vector512<ulong> upper) 2832public static Vector512<T> Negate<T>(Vector512<T> vector) => -vector; 2837public static bool None<T>(Vector512<T> vector, T value) => !EqualsAny(vector, Create(value)); 2842public static bool NoneWhereAllBitsSet<T>(Vector512<T> vector) 2864public static Vector512<T> OnesComplement<T>(Vector512<T> vector) => ~vector; 2869public static Vector512<double> RadiansToDegrees(Vector512<double> radians) 2873return VectorMath.RadiansToDegrees<Vector512<double>, double>(radians); 2887public static Vector512<float> RadiansToDegrees(Vector512<float> radians) 2891return VectorMath.RadiansToDegrees<Vector512<float>, float>(radians); 2904internal static Vector512<T> Round<T>(Vector512<T> vector) 2930public static Vector512<double> Round(Vector512<double> vector) => Round<double>(vector); 2934public static Vector512<float> Round(Vector512<float> vector) => Round<float>(vector); 2938public static Vector512<double> Round(Vector512<double> vector, MidpointRounding mode) => VectorMath.RoundDouble(vector, mode); 2942public static Vector512<float> Round(Vector512<float> vector, MidpointRounding mode) => VectorMath.RoundSingle(vector, mode); 2949internal static Vector512<T> ShiftLeft<T>(Vector512<T> vector, int shiftCount) => vector << shiftCount; 2956public static Vector512<byte> ShiftLeft(Vector512<byte> vector, int shiftCount) => vector << shiftCount; 2963public static Vector512<short> ShiftLeft(Vector512<short> vector, int shiftCount) => vector << shiftCount; 2970public static Vector512<int> ShiftLeft(Vector512<int> vector, int shiftCount) => vector << shiftCount; 2977public static Vector512<long> ShiftLeft(Vector512<long> vector, int shiftCount) => vector << shiftCount; 2984public static Vector512<nint> ShiftLeft(Vector512<nint> vector, int shiftCount) => vector << shiftCount; 2992public static Vector512<nuint> ShiftLeft(Vector512<nuint> vector, int shiftCount) => vector << shiftCount; 3000public static Vector512<sbyte> ShiftLeft(Vector512<sbyte> vector, int shiftCount) => vector << shiftCount; 3008public static Vector512<ushort> ShiftLeft(Vector512<ushort> vector, int shiftCount) => vector << shiftCount; 3016public static Vector512<uint> ShiftLeft(Vector512<uint> vector, int shiftCount) => vector << shiftCount; 3019internal static Vector512<uint> ShiftLeft(Vector512<uint> vector, Vector512<uint> shiftCount) 3033public static Vector512<ulong> ShiftLeft(Vector512<ulong> vector, int shiftCount) => vector << shiftCount; 3036internal static Vector512<ulong> ShiftLeft(Vector512<ulong> vector, Vector512<ulong> shiftCount) 3049internal static Vector512<T> ShiftRightArithmetic<T>(Vector512<T> vector, int shiftCount) => vector >> shiftCount; 3056public static Vector512<short> ShiftRightArithmetic(Vector512<short> vector, int shiftCount) => vector >> shiftCount; 3063public static Vector512<int> ShiftRightArithmetic(Vector512<int> vector, int shiftCount) => vector >> shiftCount; 3070public static Vector512<long> ShiftRightArithmetic(Vector512<long> vector, int shiftCount) => vector >> shiftCount; 3077public static Vector512<nint> ShiftRightArithmetic(Vector512<nint> vector, int shiftCount) => vector >> shiftCount; 3085public static Vector512<sbyte> ShiftRightArithmetic(Vector512<sbyte> vector, int shiftCount) => vector >> shiftCount; 3092internal static Vector512<T> ShiftRightLogical<T>(Vector512<T> vector, int shiftCount) => vector >>> shiftCount; 3099public static Vector512<byte> ShiftRightLogical(Vector512<byte> vector, int shiftCount) => vector >>> shiftCount; 3106public static Vector512<short> ShiftRightLogical(Vector512<short> vector, int shiftCount) => vector >>> shiftCount; 3113public static Vector512<int> ShiftRightLogical(Vector512<int> vector, int shiftCount) => vector >>> shiftCount; 3120public static Vector512<long> ShiftRightLogical(Vector512<long> vector, int shiftCount) => vector >>> shiftCount; 3127public static Vector512<nint> ShiftRightLogical(Vector512<nint> vector, int shiftCount) => vector >>> shiftCount; 3135public static Vector512<nuint> ShiftRightLogical(Vector512<nuint> vector, int shiftCount) => vector >>> shiftCount; 3143public static Vector512<sbyte> ShiftRightLogical(Vector512<sbyte> vector, int shiftCount) => vector >>> shiftCount; 3151public static Vector512<ushort> ShiftRightLogical(Vector512<ushort> vector, int shiftCount) => vector >>> shiftCount; 3159public static Vector512<uint> ShiftRightLogical(Vector512<uint> vector, int shiftCount) => vector >>> shiftCount; 3167public static Vector512<ulong> ShiftRightLogical(Vector512<ulong> vector, int shiftCount) => vector >>> shiftCount; 3175internal static Vector512<byte> ShuffleNativeFallback(Vector512<byte> vector, Vector512<byte> indices) 3181internal static Vector512<sbyte> ShuffleNativeFallback(Vector512<sbyte> vector, Vector512<sbyte> indices) 3187internal static Vector512<short> ShuffleNativeFallback(Vector512<short> vector, Vector512<short> indices) 3193internal static Vector512<ushort> ShuffleNativeFallback(Vector512<ushort> vector, Vector512<ushort> indices) 3199internal static Vector512<int> ShuffleNativeFallback(Vector512<int> vector, Vector512<int> indices) 3205internal static Vector512<uint> ShuffleNativeFallback(Vector512<uint> vector, Vector512<uint> indices) 3211internal static Vector512<float> ShuffleNativeFallback(Vector512<float> vector, Vector512<int> indices) 3217internal static Vector512<long> ShuffleNativeFallback(Vector512<long> vector, Vector512<long> indices) 3223internal static Vector512<ulong> ShuffleNativeFallback(Vector512<ulong> vector, Vector512<ulong> indices) 3229internal static Vector512<double> ShuffleNativeFallback(Vector512<double> vector, Vector512<long> indices) 3240public static Vector512<byte> Shuffle(Vector512<byte> vector, Vector512<byte> indices) 3242Unsafe.SkipInit(out Vector512<byte> result); 3244for (int index = 0; index < Vector512<byte>.Count; index++) 3249if (selectedIndex < Vector512<byte>.Count) 3265public static Vector512<sbyte> Shuffle(Vector512<sbyte> vector, Vector512<sbyte> indices) 3267Unsafe.SkipInit(out Vector512<sbyte> result); 3269for (int index = 0; index < Vector512<sbyte>.Count; index++) 3274if (selectedIndex < Vector512<sbyte>.Count) 3295public static Vector512<byte> ShuffleNative(Vector512<byte> vector, Vector512<byte> indices) 3316public static Vector512<sbyte> ShuffleNative(Vector512<sbyte> vector, Vector512<sbyte> indices) 3330public static Vector512<short> Shuffle(Vector512<short> vector, Vector512<short> indices) 3332Unsafe.SkipInit(out Vector512<short> result); 3334for (int index = 0; index < Vector512<short>.Count; index++) 3339if (selectedIndex < Vector512<short>.Count) 3355public static Vector512<ushort> Shuffle(Vector512<ushort> vector, Vector512<ushort> indices) 3357Unsafe.SkipInit(out Vector512<ushort> result); 3359for (int index = 0; index < Vector512<ushort>.Count; index++) 3364if (selectedIndex < Vector512<ushort>.Count) 3384public static Vector512<short> ShuffleNative(Vector512<short> vector, Vector512<short> indices) 3404public static Vector512<ushort> ShuffleNative(Vector512<ushort> vector, Vector512<ushort> indices) 3418public static Vector512<int> Shuffle(Vector512<int> vector, Vector512<int> indices) 3420Unsafe.SkipInit(out Vector512<int> result); 3422for (int index = 0; index < Vector512<int>.Count; index++) 3427if (selectedIndex < Vector512<int>.Count) 3443public static Vector512<uint> Shuffle(Vector512<uint> vector, Vector512<uint> indices) 3445Unsafe.SkipInit(out Vector512<uint> result); 3447for (int index = 0; index < Vector512<uint>.Count; index++) 3452if (selectedIndex < Vector512<uint>.Count) 3467public static Vector512<float> Shuffle(Vector512<float> vector, Vector512<int> indices) 3469Unsafe.SkipInit(out Vector512<float> result); 3471for (int index = 0; index < Vector512<float>.Count; index++) 3476if (selectedIndex < Vector512<float>.Count) 3496public static Vector512<int> ShuffleNative(Vector512<int> vector, Vector512<int> indices) 3516public static Vector512<uint> ShuffleNative(Vector512<uint> vector, Vector512<uint> indices) 3535public static Vector512<float> ShuffleNative(Vector512<float> vector, Vector512<int> indices) 3549public static Vector512<long> Shuffle(Vector512<long> vector, Vector512<long> indices) 3551Unsafe.SkipInit(out Vector512<long> result); 3553for (int index = 0; index < Vector512<long>.Count; index++) 3558if (selectedIndex < (uint)Vector512<long>.Count) 3574public static Vector512<ulong> Shuffle(Vector512<ulong> vector, Vector512<ulong> indices) 3576Unsafe.SkipInit(out Vector512<ulong> result); 3578for (int index = 0; index < Vector512<ulong>.Count; index++) 3583if (selectedIndex < (uint)Vector512<ulong>.Count) 3598public static Vector512<double> Shuffle(Vector512<double> vector, Vector512<long> indices) 3600Unsafe.SkipInit(out Vector512<double> result); 3602for (int index = 0; index < Vector512<double>.Count; index++) 3607if (selectedIndex < (uint)Vector512<double>.Count) 3627public static Vector512<long> ShuffleNative(Vector512<long> vector, Vector512<long> indices) 3647public static Vector512<ulong> ShuffleNative(Vector512<ulong> vector, Vector512<ulong> indices) 3666public static Vector512<double> ShuffleNative(Vector512<double> vector, Vector512<long> indices) 3677public static Vector512<double> Sin(Vector512<double> vector) 3681return VectorMath.SinDouble<Vector512<double>, Vector512<long>>(vector); 3694public static Vector512<float> Sin(Vector512<float> vector) 3698return VectorMath.SinSingle<Vector512<float>, Vector512<int>, Vector512<double>, Vector512<long>>(vector); 3711public static (Vector512<double> Sin, Vector512<double> Cos) SinCos(Vector512<double> vector) 3715return VectorMath.SinCosDouble<Vector512<double>, Vector512<long>>(vector); 3731public static (Vector512<float> Sin, Vector512<float> Cos) SinCos(Vector512<float> vector) 3735return VectorMath.SinCosSingle<Vector512<float>, Vector512<int>, Vector512<double>, Vector512<long>>(vector); 3756public static Vector512<T> Sqrt<T>(Vector512<T> vector) 3771public static void Store<T>(this Vector512<T> source, T* destination) => source.StoreUnsafe(ref *destination); 3781public static void StoreAligned<T>(this Vector512<T> source, T* destination) 3790*(Vector512<T>*)(destination) = source; 3801public static void StoreAlignedNonTemporal<T>(this Vector512<T> source, T* destination) => source.StoreAligned(destination); 3810public static void StoreUnsafe<T>(this Vector512<T> source, ref T destination) 3826public static void StoreUnsafe<T>(this Vector512<T> source, ref T destination, nuint elementOffset) 3840public static Vector512<T> Subtract<T>(Vector512<T> left, Vector512<T> right) => left - right; 3849public static T Sum<T>(Vector512<T> vector) 3866public static T ToScalar<T>(this Vector512<T> vector) 3874internal static Vector512<T> Truncate<T>(Vector512<T> vector) 3900public static Vector512<double> Truncate(Vector512<double> vector) => Truncate<double>(vector); 3904public static Vector512<float> Truncate(Vector512<float> vector) => Truncate<float>(vector); 3910/// <returns><c>true</c> if <paramref name="vector" /> was successfully copied to <paramref name="destination" />; otherwise, <c>false</c> if the length of <paramref name="destination" /> is less than <see cref="Vector512{T}.Count" />.</returns> 3912public static bool TryCopyTo<T>(this Vector512<T> vector, Span<T> destination) 3914if ((uint)destination.Length < (uint)Vector512<T>.Count) 3923/// <summary>Widens a <see langword="Vector512&lt;Byte&gt;" /> into two <see cref="Vector512{UInt16} " />.</summary> 3928public static (Vector512<ushort> Lower, Vector512<ushort> Upper) Widen(Vector512<byte> source) => (WidenLower(source), WidenUpper(source)); 3930/// <summary>Widens a <see langword="Vector512&lt;Int16&gt;" /> into two <see cref="Vector512{Int32} " />.</summary> 3934public static (Vector512<int> Lower, Vector512<int> Upper) Widen(Vector512<short> source) => (WidenLower(source), WidenUpper(source)); 3936/// <summary>Widens a <see langword="Vector512&lt;Int32&gt;" /> into two <see cref="Vector512{Int64} " />.</summary> 3940public static (Vector512<long> Lower, Vector512<long> Upper) Widen(Vector512<int> source) => (WidenLower(source), WidenUpper(source)); 3942/// <summary>Widens a <see langword="Vector512&lt;SByte&gt;" /> into two <see cref="Vector512{Int16} " />.</summary> 3947public static (Vector512<short> Lower, Vector512<short> Upper) Widen(Vector512<sbyte> source) => (WidenLower(source), WidenUpper(source)); 3949/// <summary>Widens a <see langword="Vector512&lt;Single&gt;" /> into two <see cref="Vector512{Double} " />.</summary> 3953public static (Vector512<double> Lower, Vector512<double> Upper) Widen(Vector512<float> source) => (WidenLower(source), WidenUpper(source)); 3955/// <summary>Widens a <see langword="Vector512&lt;UInt16&gt;" /> into two <see cref="Vector512{UInt32} " />.</summary> 3960public static (Vector512<uint> Lower, Vector512<uint> Upper) Widen(Vector512<ushort> source) => (WidenLower(source), WidenUpper(source)); 3962/// <summary>Widens a <see langword="Vector512&lt;UInt32&gt;" /> into two <see cref="Vector512{UInt64} " />.</summary> 3967public static (Vector512<ulong> Lower, Vector512<ulong> Upper) Widen(Vector512<uint> source) => (WidenLower(source), WidenUpper(source)); 3969/// <summary>Widens the lower half of a <see langword="Vector512&lt;Byte&gt;" /> into a <see cref="Vector512{UInt16} " />.</summary> 3975public static Vector512<ushort> WidenLower(Vector512<byte> source) 3985/// <summary>Widens the lower half of a <see langword="Vector512&lt;Int16&gt;" /> into a <see cref="Vector512{Int32} " />.</summary> 3990public static Vector512<int> WidenLower(Vector512<short> source) 4000/// <summary>Widens the lower half of a <see langword="Vector512&lt;Int32&gt;" /> into a <see cref="Vector512{Int64} " />.</summary> 4005public static Vector512<long> WidenLower(Vector512<int> source) 4015/// <summary>Widens the lower half of a <see langword="Vector512&lt;SByte&gt;" /> into a <see cref="Vector512{Int16} " />.</summary> 4021public static Vector512<short> WidenLower(Vector512<sbyte> source) 4030/// <summary>Widens the lower half of a <see langword="Vector512&lt;Single&gt;" /> into a <see cref="Vector512{Double} " />.</summary> 4035public static Vector512<double> WidenLower(Vector512<float> source) 4045/// <summary>Widens the lower half of a <see langword="Vector512&lt;UInt16&gt;" /> into a <see cref="Vector512{UInt32} " />.</summary> 4051public static Vector512<uint> WidenLower(Vector512<ushort> source) 4061/// <summary>Widens the lower half of a <see langword="Vector512&lt;UInt32&gt;" /> into a <see cref="Vector512{UInt64} " />.</summary> 4067public static Vector512<ulong> WidenLower(Vector512<uint> source) 4077/// <summary>Widens the upper half of a <see langword="Vector512&lt;Byte&gt;" /> into a <see cref="Vector512{UInt16} " />.</summary> 4083public static Vector512<ushort> WidenUpper(Vector512<byte> source) 4093/// <summary>Widens the upper half of a <see langword="Vector512&lt;Int16&gt;" /> into a <see cref="Vector512{Int32} " />.</summary> 4098public static Vector512<int> WidenUpper(Vector512<short> source) 4108/// <summary>Widens the upper half of a <see langword="Vector512&lt;Int32&gt;" /> into a <see cref="Vector512{Int64} " />.</summary> 4113public static Vector512<long> WidenUpper(Vector512<int> source) 4123/// <summary>Widens the upper half of a <see langword="Vector512&lt;SByte&gt;" /> into a <see cref="Vector512{Int16} " />.</summary> 4129public static Vector512<short> WidenUpper(Vector512<sbyte> source) 4139/// <summary>Widens the upper half of a <see langword="Vector512&lt;Single&gt;" /> into a <see cref="Vector512{Double} " />.</summary> 4144public static Vector512<double> WidenUpper(Vector512<float> source) 4154/// <summary>Widens the upper half of a <see langword="Vector512&lt;UInt16&gt;" /> into a <see cref="Vector512{UInt32} " />.</summary> 4160public static Vector512<uint> WidenUpper(Vector512<ushort> source) 4170/// <summary>Widens the upper half of a <see langword="Vector512&lt;UInt32&gt;" /> into a <see cref="Vector512{UInt64} " />.</summary> 4176public static Vector512<ulong> WidenUpper(Vector512<uint> source) 4186/// <summary>Creates a new <see cref="Vector512{T}" /> with the element at the specified index set to the specified value and the remaining elements set to the same value as that in the given vector.</summary> 4191/// <returns>A <see cref="Vector512{T}" /> with the value of the element at <paramref name="index" /> set to <paramref name="value" /> and the remaining elements set to the same value as that in <paramref name="vector" />.</returns> 4195public static Vector512<T> WithElement<T>(this Vector512<T> vector, int index, T value) 4197if ((uint)(index) >= (uint)(Vector512<T>.Count)) 4202Vector512<T> result = vector; 4207/// <summary>Creates a new <see cref="Vector512{T}" /> with the lower 256-bits set to the specified value and the upper 256-bits set to the same value as that in the given vector.</summary> 4211/// <returns>A new <see cref="Vector512{T}" /> with the lower 256-bits set to <paramref name="value" /> and the upper 256-bits set to the same value as that in <paramref name="vector" />.</returns> 4215public static Vector512<T> WithLower<T>(this Vector512<T> vector, Vector256<T> value) 4219Vector512<T> result = vector; 4224/// <summary>Creates a new <see cref="Vector512{T}" /> with the upper 256-bits set to the specified value and the lower 256-bits set to the same value as that in the given vector.</summary> 4228/// <returns>A new <see cref="Vector512{T}" /> with the upper 256-bits set to <paramref name="value" /> and the lower 256-bits set to the same value as that in <paramref name="vector" />.</returns> 4232public static Vector512<T> WithUpper<T>(this Vector512<T> vector, Vector256<T> value) 4236Vector512<T> result = vector; 4248public static Vector512<T> Xor<T>(Vector512<T> left, Vector512<T> right) => left ^ right; 4251internal static T GetElementUnsafe<T>(in this Vector512<T> vector, int index) 4253Debug.Assert((index >= 0) && (index < Vector512<T>.Count)); 4254ref T address = ref Unsafe.As<Vector512<T>, T>(ref Unsafe.AsRef(in vector)); 4259internal static void SetElementUnsafe<T>(in this Vector512<T> vector, int index, T value) 4261Debug.Assert((index >= 0) && (index < Vector512<T>.Count)); 4262ref T address = ref Unsafe.As<Vector512<T>, T>(ref Unsafe.AsRef(in vector)); 4266internal static void SetLowerUnsafe<T>(in this Vector512<T> vector, Vector256<T> value) => Unsafe.AsRef(in vector._lower) = value; 4268internal static void SetUpperUnsafe<T>(in this Vector512<T> vector, Vector256<T> value) => Unsafe.AsRef(in vector._upper) = value;
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\Vector512_1.cs (365)
31public readonly unsafe struct Vector512<T> : ISimdVector<Vector512<T>, T> 36/// <summary>Gets a new <see cref="Vector512{T}" /> with all bits set to 1.</summary> 38public static Vector512<T> AllBitsSet 44/// <summary>Gets the number of <typeparamref name="T" /> that are in a <see cref="Vector512{T}" />.</summary> 56/// <summary>Gets a new <see cref="Vector512{T}" /> with the elements set to their index.</summary> 58public static Vector512<T> Indices 65Unsafe.SkipInit(out Vector512<T> result); 99/// <summary>Gets a new <see cref="Vector512{T}" /> with all elements initialized to one.</summary> 101public static Vector512<T> One 107/// <summary>Gets a new <see cref="Vector512{T}" /> with all elements initialized to zero.</summary> 109public static Vector512<T> Zero 135public static Vector512<T> operator +(Vector512<T> left, Vector512<T> right) 150public static Vector512<T> operator &(Vector512<T> left, Vector512<T> right) 165public static Vector512<T> operator |(Vector512<T> left, Vector512<T> right) 180public static Vector512<T> operator /(Vector512<T> left, Vector512<T> right) 194public static Vector512<T> operator /(Vector512<T> left, T right) 209public static bool operator ==(Vector512<T> left, Vector512<T> right) 222public static Vector512<T> operator ^(Vector512<T> left, Vector512<T> right) 236public static bool operator !=(Vector512<T> left, Vector512<T> right) => !(left == right); 244public static Vector512<T> operator <<(Vector512<T> value, int shiftCount) 259public static Vector512<T> operator *(Vector512<T> left, Vector512<T> right) 274public static Vector512<T> operator *(Vector512<T> left, T right) 288public static Vector512<T> operator *(T left, Vector512<T> right) => right * left; 296public static Vector512<T> operator ~(Vector512<T> vector) 310public static Vector512<T> operator >>(Vector512<T> value, int shiftCount) 325public static Vector512<T> operator -(Vector512<T> left, Vector512<T> right) 339public static Vector512<T> operator -(Vector512<T> vector) 360public static Vector512<T> operator +(Vector512<T> value) 372public static Vector512<T> operator >>>(Vector512<T> value, int shiftCount) 382/// <returns><c>true</c> if <paramref name="obj" /> is a <see cref="Vector512{T}" /> and is equal to the current instance; otherwise, <c>false</c>.</returns> 383public override bool Equals([NotNullWhen(true)] object? obj) => (obj is Vector512<T> other) && Equals(other); 385/// <summary>Determines whether the specified <see cref="Vector512{T}" /> is equal to the current instance.</summary> 386/// <param name="other">The <see cref="Vector512{T}" /> to compare with the current instance.</param> 390public bool Equals(Vector512<T> other) 399Vector512<T> result = Vector512.Equals(this, other) | ~(Vector512.Equals(this, this) | Vector512.Equals(other, other)); 400return result.AsInt32() == Vector512<int>.AllBitsSet; 461static int ISimdVector<Vector512<T>, T>.Alignment => Vector512.Alignment; 464static int ISimdVector<Vector512<T>, T>.ElementCount => Vector512<T>.Count; 467static bool ISimdVector<Vector512<T>, T>.IsHardwareAccelerated 475static Vector512<T> ISimdVector<Vector512<T>, T>.Abs(Vector512<T> vector) => Vector512.Abs(vector); 479static Vector512<T> ISimdVector<Vector512<T>, T>.Add(Vector512<T> left, Vector512<T> right) => left + right; 483static bool ISimdVector<Vector512<T>, T>.All(Vector512<T> vector, T value) => Vector512.All(vector, value); 487static bool ISimdVector<Vector512<T>, T>.AllWhereAllBitsSet(Vector512<T> vector) => Vector512.AllWhereAllBitsSet(vector); 491static Vector512<T> ISimdVector<Vector512<T>, T>.AndNot(Vector512<T> left, Vector512<T> right) => Vector512.AndNot(left, right); 495static bool ISimdVector<Vector512<T>, T>.Any(Vector512<T> vector, T value) => Vector512.Any(vector, value); 499static bool ISimdVector<Vector512<T>, T>.AnyWhereAllBitsSet(Vector512<T> vector) => Vector512.AnyWhereAllBitsSet(vector); 503static Vector512<T> ISimdVector<Vector512<T>, T>.BitwiseAnd(Vector512<T> left, Vector512<T> right) => left & right; 507static Vector512<T> ISimdVector<Vector512<T>, T>.BitwiseOr(Vector512<T> left, Vector512<T> right) => left | right; 511static Vector512<T> ISimdVector<Vector512<T>, T>.Ceiling(Vector512<T> vector) => Vector512.Ceiling(vector); 515static Vector512<T> ISimdVector<Vector512<T>, T>.Clamp(Vector512<T> value, Vector512<T> min, Vector512<T> max) => Vector512.Clamp(value, min, max); 519static Vector512<T> ISimdVector<Vector512<T>, T>.ClampNative(Vector512<T> value, Vector512<T> min, Vector512<T> max) => Vector512.ClampNative(value, min, max); 523static Vector512<T> ISimdVector<Vector512<T>, T>.ConditionalSelect(Vector512<T> condition, Vector512<T> left, Vector512<T> right) => Vector512.ConditionalSelect(condition, left, right); 527static Vector512<T> ISimdVector<Vector512<T>, T>.CopySign(Vector512<T> value, Vector512<T> sign) => Vector512.CopySign(value, sign); 530static void ISimdVector<Vector512<T>, T>.CopyTo(Vector512<T> vector, T[] destination) => vector.CopyTo(destination); 533static void ISimdVector<Vector512<T>, T>.CopyTo(Vector512<T> vector, T[] destination, int startIndex) => vector.CopyTo(destination, startIndex); 536static void ISimdVector<Vector512<T>, T>.CopyTo(Vector512<T> vector, Span<T> destination) => vector.CopyTo(destination); 540static int ISimdVector<Vector512<T>, T>.Count(Vector512<T> vector, T value) => Vector512.Count(vector, value); 544static int ISimdVector<Vector512<T>, T>.CountWhereAllBitsSet(Vector512<T> vector) => Vector512.CountWhereAllBitsSet(vector); 548static Vector512<T> ISimdVector<Vector512<T>, T>.Create(T value) => Vector512.Create(value); 551static Vector512<T> ISimdVector<Vector512<T>, T>.Create(T[] values) => Vector512.Create(values); 554static Vector512<T> ISimdVector<Vector512<T>, T>.Create(T[] values, int index) => Vector512.Create(values, index); 557static Vector512<T> ISimdVector<Vector512<T>, T>.Create(ReadOnlySpan<T> values) => Vector512.Create(values); 561static Vector512<T> ISimdVector<Vector512<T>, T>.CreateScalar(T value) => Vector512.CreateScalar(value); 565static Vector512<T> ISimdVector<Vector512<T>, T>.CreateScalarUnsafe(T value) => Vector512.CreateScalarUnsafe(value); 569static Vector512<T> ISimdVector<Vector512<T>, T>.Divide(Vector512<T> left, Vector512<T> right) => left / right; 573static Vector512<T> ISimdVector<Vector512<T>, T>.Divide(Vector512<T> left, T right) => left / right; 577static T ISimdVector<Vector512<T>, T>.Dot(Vector512<T> left, Vector512<T> right) => Vector512.Dot(left, right); 581static Vector512<T> ISimdVector<Vector512<T>, T>.Equals(Vector512<T> left, Vector512<T> right) => Vector512.Equals(left, right); 585static bool ISimdVector<Vector512<T>, T>.EqualsAll(Vector512<T> left, Vector512<T> right) => left == right; 589static bool ISimdVector<Vector512<T>, T>.EqualsAny(Vector512<T> left, Vector512<T> right) => Vector512.EqualsAny(left, right); 593static Vector512<T> ISimdVector<Vector512<T>, T>.Floor(Vector512<T> vector) => Vector512.Floor(vector); 597static T ISimdVector<Vector512<T>, T>.GetElement(Vector512<T> vector, int index) => vector.GetElement(index); 601static Vector512<T> ISimdVector<Vector512<T>, T>.GreaterThan(Vector512<T> left, Vector512<T> right) => Vector512.GreaterThan(left, right); 605static bool ISimdVector<Vector512<T>, T>.GreaterThanAll(Vector512<T> left, Vector512<T> right) => Vector512.GreaterThanAll(left, right); 609static bool ISimdVector<Vector512<T>, T>.GreaterThanAny(Vector512<T> left, Vector512<T> right) => Vector512.GreaterThanAny(left, right); 613static Vector512<T> ISimdVector<Vector512<T>, T>.GreaterThanOrEqual(Vector512<T> left, Vector512<T> right) => Vector512.GreaterThanOrEqual(left, right); 617static bool ISimdVector<Vector512<T>, T>.GreaterThanOrEqualAll(Vector512<T> left, Vector512<T> right) => Vector512.GreaterThanOrEqualAll(left, right); 621static bool ISimdVector<Vector512<T>, T>.GreaterThanOrEqualAny(Vector512<T> left, Vector512<T> right) => Vector512.GreaterThanOrEqualAny(left, right); 625static int ISimdVector<Vector512<T>, T>.IndexOf(Vector512<T> vector, T value) => Vector512.IndexOf(vector, value); 629static int ISimdVector<Vector512<T>, T>.IndexOfWhereAllBitsSet(Vector512<T> vector) => Vector512.IndexOfWhereAllBitsSet(vector); 633static Vector512<T> ISimdVector<Vector512<T>, T>.IsEvenInteger(Vector512<T> vector) => Vector512.IsEvenInteger(vector); 637static Vector512<T> ISimdVector<Vector512<T>, T>.IsFinite(Vector512<T> vector) => Vector512.IsFinite(vector); 641static Vector512<T> ISimdVector<Vector512<T>, T>.IsInfinity(Vector512<T> vector) => Vector512.IsInfinity(vector); 645static Vector512<T> ISimdVector<Vector512<T>, T>.IsInteger(Vector512<T> vector) => Vector512.IsInteger(vector); 649static Vector512<T> ISimdVector<Vector512<T>, T>.IsNaN(Vector512<T> vector) => Vector512.IsNaN(vector); 653static Vector512<T> ISimdVector<Vector512<T>, T>.IsNegative(Vector512<T> vector) => Vector512.IsNegative(vector); 657static Vector512<T> ISimdVector<Vector512<T>, T>.IsNegativeInfinity(Vector512<T> vector) => Vector512.IsNegativeInfinity(vector); 661static Vector512<T> ISimdVector<Vector512<T>, T>.IsNormal(Vector512<T> vector) => Vector512.IsNormal(vector); 665static Vector512<T> ISimdVector<Vector512<T>, T>.IsOddInteger(Vector512<T> vector) => Vector512.IsOddInteger(vector); 669static Vector512<T> ISimdVector<Vector512<T>, T>.IsPositive(Vector512<T> vector) => Vector512.IsPositive(vector); 673static Vector512<T> ISimdVector<Vector512<T>, T>.IsPositiveInfinity(Vector512<T> vector) => Vector512.IsPositiveInfinity(vector); 677static Vector512<T> ISimdVector<Vector512<T>, T>.IsSubnormal(Vector512<T> vector) => Vector512.IsSubnormal(vector); 680static Vector512<T> ISimdVector<Vector512<T>, T>.IsZero(Vector512<T> vector) => Vector512.IsZero(vector); 684static int ISimdVector<Vector512<T>, T>.LastIndexOf(Vector512<T> vector, T value) => Vector512.LastIndexOf(vector, value); 688static int ISimdVector<Vector512<T>, T>.LastIndexOfWhereAllBitsSet(Vector512<T> vector) => Vector512.LastIndexOfWhereAllBitsSet(vector); 692static Vector512<T> ISimdVector<Vector512<T>, T>.LessThan(Vector512<T> left, Vector512<T> right) => Vector512.LessThan(left, right); 696static bool ISimdVector<Vector512<T>, T>.LessThanAll(Vector512<T> left, Vector512<T> right) => Vector512.LessThanAll(left, right); 700static bool ISimdVector<Vector512<T>, T>.LessThanAny(Vector512<T> left, Vector512<T> right) => Vector512.LessThanAny(left, right); 704static Vector512<T> ISimdVector<Vector512<T>, T>.LessThanOrEqual(Vector512<T> left, Vector512<T> right) => Vector512.LessThanOrEqual(left, right); 708static bool ISimdVector<Vector512<T>, T>.LessThanOrEqualAll(Vector512<T> left, Vector512<T> right) => Vector512.LessThanOrEqualAll(left, right); 712static bool ISimdVector<Vector512<T>, T>.LessThanOrEqualAny(Vector512<T> left, Vector512<T> right) => Vector512.LessThanOrEqualAny(left, right); 716static Vector512<T> ISimdVector<Vector512<T>, T>.Load(T* source) => Vector512.Load(source); 720static Vector512<T> ISimdVector<Vector512<T>, T>.LoadAligned(T* source) => Vector512.LoadAligned(source); 724static Vector512<T> ISimdVector<Vector512<T>, T>.LoadAlignedNonTemporal(T* source) => Vector512.LoadAlignedNonTemporal(source); 728static Vector512<T> ISimdVector<Vector512<T>, T>.LoadUnsafe(ref readonly T source) => Vector512.LoadUnsafe(in source); 732static Vector512<T> ISimdVector<Vector512<T>, T>.LoadUnsafe(ref readonly T source, nuint elementOffset) => Vector512.LoadUnsafe(in source, elementOffset); 736static Vector512<T> ISimdVector<Vector512<T>, T>.Max(Vector512<T> left, Vector512<T> right) => Vector512.Max(left, right); 740static Vector512<T> ISimdVector<Vector512<T>, T>.MaxMagnitude(Vector512<T> left, Vector512<T> right) => Vector512.MaxMagnitude(left, right); 744static Vector512<T> ISimdVector<Vector512<T>, T>.MaxMagnitudeNumber(Vector512<T> left, Vector512<T> right) => Vector512.MaxMagnitudeNumber(left, right); 748static Vector512<T> ISimdVector<Vector512<T>, T>.MaxNative(Vector512<T> left, Vector512<T> right) => Vector512.MaxNative(left, right); 752static Vector512<T> ISimdVector<Vector512<T>, T>.MaxNumber(Vector512<T> left, Vector512<T> right) => Vector512.MaxNumber(left, right); 756static Vector512<T> ISimdVector<Vector512<T>, T>.Min(Vector512<T> left, Vector512<T> right) => Vector512.Min(left, right); 760static Vector512<T> ISimdVector<Vector512<T>, T>.MinMagnitude(Vector512<T> left, Vector512<T> right) => Vector512.MinMagnitude(left, right); 764static Vector512<T> ISimdVector<Vector512<T>, T>.MinMagnitudeNumber(Vector512<T> left, Vector512<T> right) => Vector512.MinMagnitudeNumber(left, right); 768static Vector512<T> ISimdVector<Vector512<T>, T>.MinNative(Vector512<T> left, Vector512<T> right) => Vector512.MinNative(left, right); 772static Vector512<T> ISimdVector<Vector512<T>, T>.MinNumber(Vector512<T> left, Vector512<T> right) => Vector512.MinNumber(left, right); 776static Vector512<T> ISimdVector<Vector512<T>, T>.Multiply(Vector512<T> left, Vector512<T> right) => left * right; 780static Vector512<T> ISimdVector<Vector512<T>, T>.Multiply(Vector512<T> left, T right) => left * right; 784static Vector512<T> ISimdVector<Vector512<T>, T>.MultiplyAddEstimate(Vector512<T> left, Vector512<T> right, Vector512<T> addend) => Vector512.MultiplyAddEstimate(left, right, addend); 788static Vector512<T> ISimdVector<Vector512<T>, T>.Negate(Vector512<T> vector) => -vector; 792static bool ISimdVector<Vector512<T>, T>.None(Vector512<T> vector, T value) => Vector512.None(vector, value); 796static bool ISimdVector<Vector512<T>, T>.NoneWhereAllBitsSet(Vector512<T> vector) => Vector512.NoneWhereAllBitsSet(vector); 800static Vector512<T> ISimdVector<Vector512<T>, T>.OnesComplement(Vector512<T> vector) => ~vector; 804static Vector512<T> ISimdVector<Vector512<T>, T>.Round(Vector512<T> vector) => Vector512.Round(vector); 808static Vector512<T> ISimdVector<Vector512<T>, T>.ShiftLeft(Vector512<T> vector, int shiftCount) => vector << shiftCount; 812static Vector512<T> ISimdVector<Vector512<T>, T>.ShiftRightArithmetic(Vector512<T> vector, int shiftCount) => vector >> shiftCount; 816static Vector512<T> ISimdVector<Vector512<T>, T>.ShiftRightLogical(Vector512<T> vector, int shiftCount) => vector >>> shiftCount; 820static Vector512<T> ISimdVector<Vector512<T>, T>.Sqrt(Vector512<T> vector) => Vector512.Sqrt(vector); 824static void ISimdVector<Vector512<T>, T>.Store(Vector512<T> source, T* destination) => source.Store(destination); 828static void ISimdVector<Vector512<T>, T>.StoreAligned(Vector512<T> source, T* destination) => source.StoreAligned(destination); 832static void ISimdVector<Vector512<T>, T>.StoreAlignedNonTemporal(Vector512<T> source, T* destination) => source.StoreAlignedNonTemporal(destination); 836static void ISimdVector<Vector512<T>, T>.StoreUnsafe(Vector512<T> vector, ref T destination) => vector.StoreUnsafe(ref destination); 840static void ISimdVector<Vector512<T>, T>.StoreUnsafe(Vector512<T> vector, ref T destination, nuint elementOffset) => vector.StoreUnsafe(ref destination, elementOffset); 844static Vector512<T> ISimdVector<Vector512<T>, T>.Subtract(Vector512<T> left, Vector512<T> right) => left - right; 848static T ISimdVector<Vector512<T>, T>.Sum(Vector512<T> vector) => Vector512.Sum(vector); 852static T ISimdVector<Vector512<T>, T>.ToScalar(Vector512<T> vector) => vector.ToScalar(); 856static Vector512<T> ISimdVector<Vector512<T>, T>.Truncate(Vector512<T> vector) => Vector512.Truncate(vector); 859static bool ISimdVector<Vector512<T>, T>.TryCopyTo(Vector512<T> vector, Span<T> destination) => vector.TryCopyTo(destination); 863static Vector512<T> ISimdVector<Vector512<T>, T>.WithElement(Vector512<T> vector, int index, T value) => vector.WithElement(index, value); 867static Vector512<T> ISimdVector<Vector512<T>, T>.Xor(Vector512<T> left, Vector512<T> right) => left ^ right;
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\Vector512DebugView_1.cs (14)
10private readonly Vector512<T> _value; 12public Vector512DebugView(Vector512<T> value) 21var items = new byte[Vector512<byte>.Count]; 31var items = new double[Vector512<double>.Count]; 41var items = new short[Vector512<short>.Count]; 51var items = new int[Vector512<int>.Count]; 61var items = new long[Vector512<long>.Count]; 71var items = new nint[Vector512<nint>.Count]; 81var items = new nuint[Vector512<nuint>.Count]; 91var items = new sbyte[Vector512<sbyte>.Count]; 101var items = new float[Vector512<float>.Count]; 111var items = new ushort[Vector512<ushort>.Count]; 121var items = new uint[Vector512<uint>.Count]; 131var items = new ulong[Vector512<ulong>.Count];
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\VectorMath.cs (27)
2376else if (typeof(TVectorInt64) == typeof(Vector512<long>)) 2378result = (TVectorDouble)(object)Vector512.ConvertToDouble((Vector512<long>)(object)vector); 2411else if (typeof(TVectorInt32) == typeof(Vector512<int>)) 2413result = (TVectorSingle)(object)Vector512.ConvertToSingle((Vector512<int>)(object)vector); 2535else if (typeof(TVector) == typeof(Vector512<double>)) 2569else if (typeof(TVector) == typeof(Vector512<float>)) 2616else if (typeof(TVectorDouble) == typeof(Vector512<double>)) 2622result = (TVectorSingle)(object)Avx512F.ConvertToVector256Single((Vector512<double>)(object)vector); 2626Vector512<double> value = (Vector512<double>)(object)vector; 2665else if (typeof(TVectorDouble) == typeof(Vector512<double>)) 2667Debug.Assert(typeof(TVectorSingle) == typeof(Vector512<float>)); 2668result = (TVectorSingle)(object)Vector512.Narrow((Vector512<double>)(object)lower, (Vector512<double>)(object)upper); 2712else if (typeof(TVectorUInt32) == typeof(Vector512<uint>)) 2715(Vector512<uint>)(object)vector, 2716(Vector512<uint>)(object)shiftAmount 2761else if (typeof(TVectorUInt64) == typeof(Vector512<ulong>)) 2764(Vector512<ulong>)(object)vector, 2765(Vector512<ulong>)(object)shiftAmount 2939Debug.Assert(typeof(TVectorDouble) == typeof(Vector512<double>)); 2990else if (typeof(TVectorSingle) == typeof(Vector512<float>)) 2992Debug.Assert(typeof(TVectorDouble) == typeof(Vector512<double>)); 2993result = (TVectorDouble)(object)Vector512.WidenLower((Vector512<float>)(object)vector); 3030else if (typeof(TVectorSingle) == typeof(Vector512<float>)) 3032Debug.Assert(typeof(TVectorDouble) == typeof(Vector512<double>)); 3033result = (TVectorDouble)(object)Vector512.WidenUpper((Vector512<float>)(object)vector);
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\X86\Avx10v1.cs (133)
2775public static Vector512<int> DetectConflicts(Vector512<int> value) => DetectConflicts(value); 2781public static Vector512<uint> DetectConflicts(Vector512<uint> value) => DetectConflicts(value); 2787public static Vector512<long> DetectConflicts(Vector512<long> value) => DetectConflicts(value); 2793public static Vector512<ulong> DetectConflicts(Vector512<ulong> value) => DetectConflicts(value); 2799public static Vector512<int> LeadingZeroCount(Vector512<int> value) => LeadingZeroCount(value); 2805public static Vector512<uint> LeadingZeroCount(Vector512<uint> value) => LeadingZeroCount(value); 2811public static Vector512<long> LeadingZeroCount(Vector512<long> value) => LeadingZeroCount(value); 2817public static Vector512<ulong> LeadingZeroCount(Vector512<ulong> value) => LeadingZeroCount(value); 2823public static Vector512<float> And(Vector512<float> left, Vector512<float> right) => And(left, right); 2829public static Vector512<double> And(Vector512<double> left, Vector512<double> right) => And(left, right); 2835public static Vector512<float> AndNot(Vector512<float> left, Vector512<float> right) => AndNot(left, right); 2841public static Vector512<double> AndNot(Vector512<double> left, Vector512<double> right) => AndNot(left, right); 2847public static Vector512<int> BroadcastPairScalarToVector512(Vector128<int> value) => BroadcastPairScalarToVector512(value); 2853public static Vector512<uint> BroadcastPairScalarToVector512(Vector128<uint> value) => BroadcastPairScalarToVector512(value); 2859public static Vector512<float> BroadcastPairScalarToVector512(Vector128<float> value) => BroadcastPairScalarToVector512(value); 2865public static unsafe Vector512<long> BroadcastVector128ToVector512(long* address) => BroadcastVector128ToVector512(address); 2871public static unsafe Vector512<ulong> BroadcastVector128ToVector512(ulong* address) => BroadcastVector128ToVector512(address); 2877public static unsafe Vector512<double> BroadcastVector128ToVector512(double* address) => BroadcastVector128ToVector512(address); 2883public static unsafe Vector512<int> BroadcastVector256ToVector512(int* address) => BroadcastVector256ToVector512(address); 2889public static unsafe Vector512<uint> BroadcastVector256ToVector512(uint* address) => BroadcastVector256ToVector512(address); 2895public static unsafe Vector512<float> BroadcastVector256ToVector512(float* address) => BroadcastVector256ToVector512(address); 2901public static Vector256<float> ConvertToVector256Single(Vector512<long> value) => ConvertToVector256Single(value); 2907public static Vector256<float> ConvertToVector256Single(Vector512<ulong> value) => ConvertToVector256Single(value); 2913public static Vector256<float> ConvertToVector256Single(Vector512<long> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector256Single(value, mode); 2919public static Vector256<float> ConvertToVector256Single(Vector512<ulong> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector256Single(value, mode); 2925public static Vector512<double> ConvertToVector512Double(Vector512<long> value) => ConvertToVector512Double(value); 2931public static Vector512<double> ConvertToVector512Double(Vector512<ulong> value) => ConvertToVector512Double(value); 2937public static Vector512<double> ConvertToVector512Double(Vector512<long> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512Double(value, mode); 2943public static Vector512<double> ConvertToVector512Double(Vector512<ulong> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512Double(value, mode); 2949public static Vector512<long> ConvertToVector512Int64(Vector256<float> value) => ConvertToVector512Int64(value); 2955public static Vector512<long> ConvertToVector512Int64(Vector512<double> value) => ConvertToVector512Int64(value); 2961public static Vector512<long> ConvertToVector512Int64(Vector256<float> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512Int64(value, mode); 2967public static Vector512<long> ConvertToVector512Int64(Vector512<double> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512Int64(value, mode); 2973public static Vector512<long> ConvertToVector512Int64WithTruncation(Vector256<float> value) => ConvertToVector512Int64WithTruncation(value); 2979public static Vector512<long> ConvertToVector512Int64WithTruncation(Vector512<double> value) => ConvertToVector512Int64WithTruncation(value); 2985public static Vector512<ulong> ConvertToVector512UInt64(Vector256<float> value) => ConvertToVector512UInt64(value); 2991public static Vector512<ulong> ConvertToVector512UInt64(Vector512<double> value) => ConvertToVector512UInt64(value); 2997public static Vector512<ulong> ConvertToVector512UInt64(Vector256<float> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512UInt64(value, mode); 3003public static Vector512<ulong> ConvertToVector512UInt64(Vector512<double> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512UInt64(value, mode); 3009public static Vector512<ulong> ConvertToVector512UInt64WithTruncation(Vector256<float> value) => ConvertToVector512UInt64WithTruncation(value); 3015public static Vector512<ulong> ConvertToVector512UInt64WithTruncation(Vector512<double> value) => ConvertToVector512UInt64WithTruncation(value); 3021public static new Vector128<long> ExtractVector128(Vector512<long> value, [ConstantExpected] byte index) => ExtractVector128(value, index); 3027public static new Vector128<ulong> ExtractVector128(Vector512<ulong> value, [ConstantExpected] byte index) => ExtractVector128(value, index); 3033public static new Vector128<double> ExtractVector128(Vector512<double> value, [ConstantExpected] byte index) => ExtractVector128(value, index); 3039public static new Vector256<int> ExtractVector256(Vector512<int> value, [ConstantExpected] byte index) => ExtractVector256(value, index); 3045public static new Vector256<uint> ExtractVector256(Vector512<uint> value, [ConstantExpected] byte index) => ExtractVector256(value, index); 3051public static new Vector256<float> ExtractVector256(Vector512<float> value, [ConstantExpected] byte index) => ExtractVector256(value, index); 3057public static new Vector512<long> InsertVector128(Vector512<long> value, Vector128<long> data, [ConstantExpected] byte index) => InsertVector128(value, data, index); 3063public static new Vector512<ulong> InsertVector128(Vector512<ulong> value, Vector128<ulong> data, [ConstantExpected] byte index) => InsertVector128(value, data, index); 3069public static new Vector512<double> InsertVector128(Vector512<double> value, Vector128<double> data, [ConstantExpected] byte index) => InsertVector128(value, data, index); 3075public static new Vector512<int> InsertVector256(Vector512<int> value, Vector256<int> data, [ConstantExpected] byte index) => InsertVector256(value, data, index); 3081public static new Vector512<uint> InsertVector256(Vector512<uint> value, Vector256<uint> data, [ConstantExpected] byte index) => InsertVector256(value, data, index); 3087public static new Vector512<float> InsertVector256(Vector512<float> value, Vector256<float> data, [ConstantExpected] byte index) => InsertVector256(value, data, index); 3093public static Vector512<long> MultiplyLow(Vector512<long> left, Vector512<long> right) => MultiplyLow(left, right); 3099public static Vector512<ulong> MultiplyLow(Vector512<ulong> left, Vector512<ulong> right) => MultiplyLow(left, right); 3105public static Vector512<byte> MultiShift(Vector512<byte> control, Vector512<ulong> value) => MultiShift(control, value); 3110public static Vector512<sbyte> MultiShift(Vector512<sbyte> control, Vector512<long> value) => MultiShift(control, value); 3116public static Vector512<float> Or(Vector512<float> left, Vector512<float> right) => Or(left, right); 3122public static Vector512<double> Or(Vector512<double> left, Vector512<double> right) => Or(left, right); 3128public static Vector512<float> Range(Vector512<float> left, Vector512<float> right, [ConstantExpected(Max = (byte)(0x0F))] byte control) => Range(left, right, control); 3134public static Vector512<double> Range(Vector512<double> left, Vector512<double> right, [ConstantExpected(Max = (byte)(0x0F))] byte control) => Range(left, right, control); 3140public static Vector512<float> Reduce(Vector512<float> value, [ConstantExpected] byte control) => Reduce(value, control); 3146public static Vector512<double> Reduce(Vector512<double> value, [ConstantExpected] byte control) => Reduce(value, control); 3152public static Vector512<float> Xor(Vector512<float> left, Vector512<float> right) => Xor(left, right); 3158public static Vector512<double> Xor(Vector512<double> left, Vector512<double> right) => Xor(left, right); 3164public static Vector512<sbyte> PermuteVar64x8(Vector512<sbyte> left, Vector512<sbyte> control) => PermuteVar64x8(left, control); 3170public static Vector512<byte> PermuteVar64x8(Vector512<byte> left, Vector512<byte> control) => PermuteVar64x8(left, control); 3177public static Vector512<byte> PermuteVar64x8x2(Vector512<byte> lower, Vector512<byte> indices, Vector512<byte> upper) => PermuteVar64x8x2(lower, indices, upper); 3184public static Vector512<sbyte> PermuteVar64x8x2(Vector512<sbyte> lower, Vector512<sbyte> indices, Vector512<sbyte> upper) => PermuteVar64x8x2(lower, indices, upper);
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\X86\Avx10v2.cs (21)
292public static Vector512<double> MinMax(Vector512<double> left, Vector512<double> right, [ConstantExpected] byte control) => MinMax(left, right, control); 297public static Vector512<float> MinMax(Vector512<float> left, Vector512<float> right, [ConstantExpected] byte control) => MinMax(left, right, control); 302public static Vector512<int> ConvertToSByteWithSaturationAndZeroExtendToInt32(Vector512<float> value) => ConvertToSByteWithSaturationAndZeroExtendToInt32(value); 307public static Vector512<int> ConvertToSByteWithSaturationAndZeroExtendToInt32(Vector512<float> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToSByteWithSaturationAndZeroExtendToInt32(value, mode); 312public static Vector512<int> ConvertToByteWithSaturationAndZeroExtendToInt32(Vector512<float> value) => ConvertToByteWithSaturationAndZeroExtendToInt32(value); 317public static Vector512<int> ConvertToByteWithSaturationAndZeroExtendToInt32(Vector512<float> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToByteWithSaturationAndZeroExtendToInt32(value, mode); 322public static Vector512<int> ConvertToSByteWithTruncatedSaturationAndZeroExtendToInt32(Vector512<float> value) => ConvertToSByteWithTruncatedSaturationAndZeroExtendToInt32(value); 327public static Vector512<int> ConvertToByteWithTruncatedSaturationAndZeroExtendToInt32(Vector512<float> value) => ConvertToByteWithTruncatedSaturationAndZeroExtendToInt32(value); 332public static Vector512<ushort> MultipleSumAbsoluteDifferences(Vector512<byte> left, Vector512<byte> right, [ConstantExpected] byte mask) => MultipleSumAbsoluteDifferences(left, right, mask);
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\X86\Avx512BW.cs (332)
411public static Vector512<byte> Abs(Vector512<sbyte> value) => Abs(value); 416public static Vector512<ushort> Abs(Vector512<short> value) => Abs(value); 422public static Vector512<sbyte> Add(Vector512<sbyte> left, Vector512<sbyte> right) => Add(left, right); 427public static Vector512<byte> Add(Vector512<byte> left, Vector512<byte> right) => Add(left, right); 432public static Vector512<short> Add(Vector512<short> left, Vector512<short> right) => Add(left, right); 437public static Vector512<ushort> Add(Vector512<ushort> left, Vector512<ushort> right) => Add(left, right); 443public static Vector512<sbyte> AddSaturate(Vector512<sbyte> left, Vector512<sbyte> right) => AddSaturate(left, right); 448public static Vector512<byte> AddSaturate(Vector512<byte> left, Vector512<byte> right) => AddSaturate(left, right); 453public static Vector512<short> AddSaturate(Vector512<short> left, Vector512<short> right) => AddSaturate(left, right); 458public static Vector512<ushort> AddSaturate(Vector512<ushort> left, Vector512<ushort> right) => AddSaturate(left, right); 464public static Vector512<sbyte> AlignRight(Vector512<sbyte> left, Vector512<sbyte> right, [ConstantExpected] byte mask) => AlignRight(left, right, mask); 469public static Vector512<byte> AlignRight(Vector512<byte> left, Vector512<byte> right, [ConstantExpected] byte mask) => AlignRight(left, right, mask); 475public static Vector512<byte> Average(Vector512<byte> left, Vector512<byte> right) => Average(left, right); 480public static Vector512<ushort> Average(Vector512<ushort> left, Vector512<ushort> right) => Average(left, right); 486public static Vector512<byte> BlendVariable(Vector512<byte> left, Vector512<byte> right, Vector512<byte> mask) => BlendVariable(left, right, mask); 491public static Vector512<short> BlendVariable(Vector512<short> left, Vector512<short> right, Vector512<short> mask) => BlendVariable(left, right, mask); 496public static Vector512<sbyte> BlendVariable(Vector512<sbyte> left, Vector512<sbyte> right, Vector512<sbyte> mask) => BlendVariable(left, right, mask); 501public static Vector512<ushort> BlendVariable(Vector512<ushort> left, Vector512<ushort> right, Vector512<ushort> mask) => BlendVariable(left, right, mask); 507public static Vector512<byte> BroadcastScalarToVector512(Vector128<byte> value) => BroadcastScalarToVector512(value); 512public static Vector512<sbyte> BroadcastScalarToVector512(Vector128<sbyte> value) => BroadcastScalarToVector512(value); 517public static Vector512<short> BroadcastScalarToVector512(Vector128<short> value) => BroadcastScalarToVector512(value); 522public static Vector512<ushort> BroadcastScalarToVector512(Vector128<ushort> value) => BroadcastScalarToVector512(value); 528public static Vector512<byte> CompareEqual(Vector512<byte> left, Vector512<byte> right) => CompareEqual(left, right); 533public static Vector512<byte> CompareGreaterThan(Vector512<byte> left, Vector512<byte> right) => CompareGreaterThan(left, right); 538public static Vector512<byte> CompareGreaterThanOrEqual(Vector512<byte> left, Vector512<byte> right) => CompareGreaterThanOrEqual(left, right); 543public static Vector512<byte> CompareLessThan(Vector512<byte> left, Vector512<byte> right) => CompareLessThan(left, right); 548public static Vector512<byte> CompareLessThanOrEqual(Vector512<byte> left, Vector512<byte> right) => CompareLessThanOrEqual(left, right); 553public static Vector512<byte> CompareNotEqual(Vector512<byte> left, Vector512<byte> right) => CompareNotEqual(left, right); 559public static Vector512<short> CompareEqual(Vector512<short> left, Vector512<short> right) => CompareEqual(left, right); 564public static Vector512<short> CompareGreaterThan(Vector512<short> left, Vector512<short> right) => CompareGreaterThan(left, right); 569public static Vector512<short> CompareGreaterThanOrEqual(Vector512<short> left, Vector512<short> right) => CompareGreaterThanOrEqual(left, right); 574public static Vector512<short> CompareLessThan(Vector512<short> left, Vector512<short> right) => CompareLessThan(left, right); 579public static Vector512<short> CompareLessThanOrEqual(Vector512<short> left, Vector512<short> right) => CompareLessThanOrEqual(left, right); 584public static Vector512<short> CompareNotEqual(Vector512<short> left, Vector512<short> right) => CompareNotEqual(left, right); 590public static Vector512<sbyte> CompareEqual(Vector512<sbyte> left, Vector512<sbyte> right) => CompareEqual(left, right); 595public static Vector512<sbyte> CompareGreaterThan(Vector512<sbyte> left, Vector512<sbyte> right) => CompareGreaterThan(left, right); 600public static Vector512<sbyte> CompareGreaterThanOrEqual(Vector512<sbyte> left, Vector512<sbyte> right) => CompareGreaterThanOrEqual(left, right); 605public static Vector512<sbyte> CompareLessThan(Vector512<sbyte> left, Vector512<sbyte> right) => CompareLessThan(left, right); 610public static Vector512<sbyte> CompareLessThanOrEqual(Vector512<sbyte> left, Vector512<sbyte> right) => CompareLessThanOrEqual(left, right); 615public static Vector512<sbyte> CompareNotEqual(Vector512<sbyte> left, Vector512<sbyte> right) => CompareNotEqual(left, right); 621public static Vector512<ushort> CompareEqual(Vector512<ushort> left, Vector512<ushort> right) => CompareEqual(left, right); 626public static Vector512<ushort> CompareGreaterThan(Vector512<ushort> left, Vector512<ushort> right) => CompareGreaterThan(left, right); 631public static Vector512<ushort> CompareGreaterThanOrEqual(Vector512<ushort> left, Vector512<ushort> right) => CompareGreaterThanOrEqual(left, right); 636public static Vector512<ushort> CompareLessThan(Vector512<ushort> left, Vector512<ushort> right) => CompareLessThan(left, right); 641public static Vector512<ushort> CompareLessThanOrEqual(Vector512<ushort> left, Vector512<ushort> right) => CompareLessThanOrEqual(left, right); 646public static Vector512<ushort> CompareNotEqual(Vector512<ushort> left, Vector512<ushort> right) => CompareNotEqual(left, right); 652public static Vector256<byte> ConvertToVector256Byte(Vector512<short> value) => ConvertToVector256Byte(value); 657public static Vector256<byte> ConvertToVector256Byte(Vector512<ushort> value) => ConvertToVector256Byte(value); 662public static Vector256<byte> ConvertToVector256ByteWithSaturation(Vector512<ushort> value) => ConvertToVector256ByteWithSaturation(value); 668public static Vector256<sbyte> ConvertToVector256SByte(Vector512<short> value) => ConvertToVector256SByte(value); 673public static Vector256<sbyte> ConvertToVector256SByte(Vector512<ushort> value) => ConvertToVector256SByte(value); 678public static Vector256<sbyte> ConvertToVector256SByteWithSaturation(Vector512<short> value) => ConvertToVector256SByteWithSaturation(value); 684public static Vector512<short> ConvertToVector512Int16(Vector256<sbyte> value) => ConvertToVector512Int16(value); 689public static Vector512<short> ConvertToVector512Int16(Vector256<byte> value) => ConvertToVector512Int16(value); 694public static Vector512<ushort> ConvertToVector512UInt16(Vector256<sbyte> value) => ConvertToVector512UInt16(value); 699public static Vector512<ushort> ConvertToVector512UInt16(Vector256<byte> value) => ConvertToVector512UInt16(value); 705public static new unsafe Vector512<sbyte> LoadVector512(sbyte* address) => LoadVector512(address); 710public static new unsafe Vector512<byte> LoadVector512(byte* address) => LoadVector512(address); 715public static new unsafe Vector512<short> LoadVector512(short* address) => LoadVector512(address); 720public static new unsafe Vector512<ushort> LoadVector512(ushort* address) => LoadVector512(address); 726public static Vector512<sbyte> Max(Vector512<sbyte> left, Vector512<sbyte> right) => Max(left, right); 731public static Vector512<byte> Max(Vector512<byte> left, Vector512<byte> right) => Max(left, right); 736public static Vector512<short> Max(Vector512<short> left, Vector512<short> right) => Max(left, right); 741public static Vector512<ushort> Max(Vector512<ushort> left, Vector512<ushort> right) => Max(left, right); 747public static Vector512<sbyte> Min(Vector512<sbyte> left, Vector512<sbyte> right) => Min(left, right); 752public static Vector512<byte> Min(Vector512<byte> left, Vector512<byte> right) => Min(left, right); 757public static Vector512<short> Min(Vector512<short> left, Vector512<short> right) => Min(left, right); 762public static Vector512<ushort> Min(Vector512<ushort> left, Vector512<ushort> right) => Min(left, right); 768public static Vector512<int> MultiplyAddAdjacent(Vector512<short> left, Vector512<short> right) => MultiplyAddAdjacent(left, right); 773public static Vector512<short> MultiplyAddAdjacent(Vector512<byte> left, Vector512<sbyte> right) => MultiplyAddAdjacent(left, right); 779public static Vector512<short> MultiplyHigh(Vector512<short> left, Vector512<short> right) => MultiplyHigh(left, right); 784public static Vector512<ushort> MultiplyHigh(Vector512<ushort> left, Vector512<ushort> right) => MultiplyHigh(left, right); 790public static Vector512<short> MultiplyHighRoundScale(Vector512<short> left, Vector512<short> right) => MultiplyHighRoundScale(left, right); 796public static Vector512<short> MultiplyLow(Vector512<short> left, Vector512<short> right) => MultiplyLow(left, right); 801public static Vector512<ushort> MultiplyLow(Vector512<ushort> left, Vector512<ushort> right) => MultiplyLow(left, right); 807public static Vector512<sbyte> PackSignedSaturate(Vector512<short> left, Vector512<short> right) => PackSignedSaturate(left, right); 812public static Vector512<short> PackSignedSaturate(Vector512<int> left, Vector512<int> right) => PackSignedSaturate(left, right); 818public static Vector512<byte> PackUnsignedSaturate(Vector512<short> left, Vector512<short> right) => PackUnsignedSaturate(left, right); 823public static Vector512<ushort> PackUnsignedSaturate(Vector512<int> left, Vector512<int> right) => PackUnsignedSaturate(left, right); 829public static Vector512<short> PermuteVar32x16(Vector512<short> left, Vector512<short> control) => PermuteVar32x16(left, control); 834public static Vector512<ushort> PermuteVar32x16(Vector512<ushort> left, Vector512<ushort> control) => PermuteVar32x16(left, control); 841public static Vector512<short> PermuteVar32x16x2(Vector512<short> lower, Vector512<short> indices, Vector512<short> upper) => PermuteVar32x16x2(lower, indices, upper); 847public static Vector512<ushort> PermuteVar32x16x2(Vector512<ushort> lower, Vector512<ushort> indices, Vector512<ushort> upper) => PermuteVar32x16x2(lower, indices, upper); 853public static Vector512<short> ShiftLeftLogical(Vector512<short> value, Vector128<short> count) => ShiftLeftLogical(value, count); 858public static Vector512<ushort> ShiftLeftLogical(Vector512<ushort> value, Vector128<ushort> count) => ShiftLeftLogical(value, count); 864public static Vector512<short> ShiftLeftLogical(Vector512<short> value, [ConstantExpected] byte count) => ShiftLeftLogical(value, count); 869public static Vector512<ushort> ShiftLeftLogical(Vector512<ushort> value, [ConstantExpected] byte count) => ShiftLeftLogical(value, count); 875public static Vector512<sbyte> ShiftLeftLogical128BitLane(Vector512<sbyte> value, [ConstantExpected] byte numBytes) => ShiftLeftLogical128BitLane(value, numBytes); 880public static Vector512<byte> ShiftLeftLogical128BitLane(Vector512<byte> value, [ConstantExpected] byte numBytes) => ShiftLeftLogical128BitLane(value, numBytes); 886public static Vector512<short> ShiftLeftLogicalVariable(Vector512<short> value, Vector512<ushort> count) => ShiftLeftLogicalVariable(value, count); 891public static Vector512<ushort> ShiftLeftLogicalVariable(Vector512<ushort> value, Vector512<ushort> count) => ShiftLeftLogicalVariable(value, count); 897public static Vector512<short> ShiftRightArithmetic(Vector512<short> value, Vector128<short> count) => ShiftRightArithmetic(value, count); 903public static Vector512<short> ShiftRightArithmetic(Vector512<short> value, [ConstantExpected] byte count) => ShiftRightArithmetic(value, count); 909public static Vector512<short> ShiftRightArithmeticVariable(Vector512<short> value, Vector512<ushort> count) => ShiftRightArithmeticVariable(value, count); 915public static Vector512<short> ShiftRightLogical(Vector512<short> value, Vector128<short> count) => ShiftRightLogical(value, count); 920public static Vector512<ushort> ShiftRightLogical(Vector512<ushort> value, Vector128<ushort> count) => ShiftRightLogical(value, count); 926public static Vector512<short> ShiftRightLogical(Vector512<short> value, [ConstantExpected] byte count) => ShiftRightLogical(value, count); 931public static Vector512<ushort> ShiftRightLogical(Vector512<ushort> value, [ConstantExpected] byte count) => ShiftRightLogical(value, count); 937public static Vector512<sbyte> ShiftRightLogical128BitLane(Vector512<sbyte> value, [ConstantExpected] byte numBytes) => ShiftRightLogical128BitLane(value, numBytes); 942public static Vector512<byte> ShiftRightLogical128BitLane(Vector512<byte> value, [ConstantExpected] byte numBytes) => ShiftRightLogical128BitLane(value, numBytes); 948public static Vector512<short> ShiftRightLogicalVariable(Vector512<short> value, Vector512<ushort> count) => ShiftRightLogicalVariable(value, count); 953public static Vector512<ushort> ShiftRightLogicalVariable(Vector512<ushort> value, Vector512<ushort> count) => ShiftRightLogicalVariable(value, count); 959public static Vector512<sbyte> Shuffle(Vector512<sbyte> value, Vector512<sbyte> mask) => Shuffle(value, mask); 964public static Vector512<byte> Shuffle(Vector512<byte> value, Vector512<byte> mask) => Shuffle(value, mask); 970public static Vector512<short> ShuffleHigh(Vector512<short> value, [ConstantExpected] byte control) => ShuffleHigh(value, control); 975public static Vector512<ushort> ShuffleHigh(Vector512<ushort> value, [ConstantExpected] byte control) => ShuffleHigh(value, control); 981public static Vector512<short> ShuffleLow(Vector512<short> value, [ConstantExpected] byte control) => ShuffleLow(value, control); 986public static Vector512<ushort> ShuffleLow(Vector512<ushort> value, [ConstantExpected] byte control) => ShuffleLow(value, control); 992public static new unsafe void Store(sbyte* address, Vector512<sbyte> source) => Store(address, source); 997public static new unsafe void Store(byte* address, Vector512<byte> source) => Store(address, source); 1002public static new unsafe void Store(short* address, Vector512<short> source) => Store(address, source); 1007public static new unsafe void Store(ushort* address, Vector512<ushort> source) => Store(address, source); 1013public static Vector512<sbyte> Subtract(Vector512<sbyte> left, Vector512<sbyte> right) => Subtract(left, right); 1018public static Vector512<byte> Subtract(Vector512<byte> left, Vector512<byte> right) => Subtract(left, right); 1023public static Vector512<short> Subtract(Vector512<short> left, Vector512<short> right) => Subtract(left, right); 1028public static Vector512<ushort> Subtract(Vector512<ushort> left, Vector512<ushort> right) => Subtract(left, right); 1034public static Vector512<sbyte> SubtractSaturate(Vector512<sbyte> left, Vector512<sbyte> right) => SubtractSaturate(left, right); 1039public static Vector512<short> SubtractSaturate(Vector512<short> left, Vector512<short> right) => SubtractSaturate(left, right); 1044public static Vector512<byte> SubtractSaturate(Vector512<byte> left, Vector512<byte> right) => SubtractSaturate(left, right); 1049public static Vector512<ushort> SubtractSaturate(Vector512<ushort> left, Vector512<ushort> right) => SubtractSaturate(left, right); 1055public static Vector512<ushort> SumAbsoluteDifferences(Vector512<byte> left, Vector512<byte> right) => SumAbsoluteDifferences(left, right); 1061public static Vector512<ushort> SumAbsoluteDifferencesInBlock32(Vector512<byte> left, Vector512<byte> right, [ConstantExpected] byte control) => SumAbsoluteDifferencesInBlock32(left, right, control); 1067public static Vector512<sbyte> UnpackHigh(Vector512<sbyte> left, Vector512<sbyte> right) => UnpackHigh(left, right); 1072public static Vector512<byte> UnpackHigh(Vector512<byte> left, Vector512<byte> right) => UnpackHigh(left, right); 1077public static Vector512<short> UnpackHigh(Vector512<short> left, Vector512<short> right) => UnpackHigh(left, right); 1082public static Vector512<ushort> UnpackHigh(Vector512<ushort> left, Vector512<ushort> right) => UnpackHigh(left, right); 1088public static Vector512<sbyte> UnpackLow(Vector512<sbyte> left, Vector512<sbyte> right) => UnpackLow(left, right); 1093public static Vector512<byte> UnpackLow(Vector512<byte> left, Vector512<byte> right) => UnpackLow(left, right); 1098public static Vector512<short> UnpackLow(Vector512<short> left, Vector512<short> right) => UnpackLow(left, right); 1103public static Vector512<ushort> UnpackLow(Vector512<ushort> left, Vector512<ushort> right) => UnpackLow(left, right);
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\X86\Avx512CD.cs (16)
131public static Vector512<int> DetectConflicts(Vector512<int> value) => DetectConflicts(value); 136public static Vector512<uint> DetectConflicts(Vector512<uint> value) => DetectConflicts(value); 141public static Vector512<long> DetectConflicts(Vector512<long> value) => DetectConflicts(value); 146public static Vector512<ulong> DetectConflicts(Vector512<ulong> value) => DetectConflicts(value); 152public static Vector512<int> LeadingZeroCount(Vector512<int> value) => LeadingZeroCount(value); 157public static Vector512<uint> LeadingZeroCount(Vector512<uint> value) => LeadingZeroCount(value); 162public static Vector512<long> LeadingZeroCount(Vector512<long> value) => LeadingZeroCount(value); 167public static Vector512<ulong> LeadingZeroCount(Vector512<ulong> value) => LeadingZeroCount(value);
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\X86\Avx512DQ.cs (97)
261public static Vector512<float> And(Vector512<float> left, Vector512<float> right) => And(left, right); 266public static Vector512<double> And(Vector512<double> left, Vector512<double> right) => And(left, right); 272public static Vector512<float> AndNot(Vector512<float> left, Vector512<float> right) => AndNot(left, right); 277public static Vector512<double> AndNot(Vector512<double> left, Vector512<double> right) => AndNot(left, right); 283public static Vector512<int> BroadcastPairScalarToVector512(Vector128<int> value) => BroadcastPairScalarToVector512(value); 288public static Vector512<uint> BroadcastPairScalarToVector512(Vector128<uint> value) => BroadcastPairScalarToVector512(value); 293public static Vector512<float> BroadcastPairScalarToVector512(Vector128<float> value) => BroadcastPairScalarToVector512(value); 299public static unsafe Vector512<long> BroadcastVector128ToVector512(long* address) => BroadcastVector128ToVector512(address); 304public static unsafe Vector512<ulong> BroadcastVector128ToVector512(ulong* address) => BroadcastVector128ToVector512(address); 309public static unsafe Vector512<double> BroadcastVector128ToVector512(double* address) => BroadcastVector128ToVector512(address); 315public static unsafe Vector512<int> BroadcastVector256ToVector512(int* address) => BroadcastVector256ToVector512(address); 320public static unsafe Vector512<uint> BroadcastVector256ToVector512(uint* address) => BroadcastVector256ToVector512(address); 325public static unsafe Vector512<float> BroadcastVector256ToVector512(float* address) => BroadcastVector256ToVector512(address); 331public static Vector256<float> ConvertToVector256Single(Vector512<long> value) => ConvertToVector256Single(value); 336public static Vector256<float> ConvertToVector256Single(Vector512<ulong> value) => ConvertToVector256Single(value); 341public static Vector256<float> ConvertToVector256Single(Vector512<long> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector256Single(value, mode); 346public static Vector256<float> ConvertToVector256Single(Vector512<ulong> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector256Single(value, mode); 352public static Vector512<double> ConvertToVector512Double(Vector512<long> value) => ConvertToVector512Double(value); 357public static Vector512<double> ConvertToVector512Double(Vector512<ulong> value) => ConvertToVector512Double(value); 362public static Vector512<double> ConvertToVector512Double(Vector512<long> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512Double(value, mode); 367public static Vector512<double> ConvertToVector512Double(Vector512<ulong> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512Double(value, mode); 373public static Vector512<long> ConvertToVector512Int64(Vector256<float> value) => ConvertToVector512Int64(value); 378public static Vector512<long> ConvertToVector512Int64(Vector512<double> value) => ConvertToVector512Int64(value); 383public static Vector512<long> ConvertToVector512Int64(Vector256<float> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512Int64(value, mode); 388public static Vector512<long> ConvertToVector512Int64(Vector512<double> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512Int64(value, mode); 394public static Vector512<long> ConvertToVector512Int64WithTruncation(Vector256<float> value) => ConvertToVector512Int64WithTruncation(value); 399public static Vector512<long> ConvertToVector512Int64WithTruncation(Vector512<double> value) => ConvertToVector512Int64WithTruncation(value); 404public static Vector512<ulong> ConvertToVector512UInt64(Vector256<float> value) => ConvertToVector512UInt64(value); 409public static Vector512<ulong> ConvertToVector512UInt64(Vector512<double> value) => ConvertToVector512UInt64(value); 414public static Vector512<ulong> ConvertToVector512UInt64(Vector256<float> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512UInt64(value, mode); 419public static Vector512<ulong> ConvertToVector512UInt64(Vector512<double> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512UInt64(value, mode); 424public static Vector512<ulong> ConvertToVector512UInt64WithTruncation(Vector256<float> value) => ConvertToVector512UInt64WithTruncation(value); 429public static Vector512<ulong> ConvertToVector512UInt64WithTruncation(Vector512<double> value) => ConvertToVector512UInt64WithTruncation(value); 435public static new Vector128<long> ExtractVector128(Vector512<long> value, [ConstantExpected] byte index) => ExtractVector128(value, index); 440public static new Vector128<ulong> ExtractVector128(Vector512<ulong> value, [ConstantExpected] byte index) => ExtractVector128(value, index); 445public static new Vector128<double> ExtractVector128(Vector512<double> value, [ConstantExpected] byte index) => ExtractVector128(value, index); 451public static new Vector256<int> ExtractVector256(Vector512<int> value, [ConstantExpected] byte index) => ExtractVector256(value, index); 456public static new Vector256<uint> ExtractVector256(Vector512<uint> value, [ConstantExpected] byte index) => ExtractVector256(value, index); 461public static new Vector256<float> ExtractVector256(Vector512<float> value, [ConstantExpected] byte index) => ExtractVector256(value, index); 467public static new Vector512<long> InsertVector128(Vector512<long> value, Vector128<long> data, [ConstantExpected] byte index) => InsertVector128(value, data, index); 472public static new Vector512<ulong> InsertVector128(Vector512<ulong> value, Vector128<ulong> data, [ConstantExpected] byte index) => InsertVector128(value, data, index); 477public static new Vector512<double> InsertVector128(Vector512<double> value, Vector128<double> data, [ConstantExpected] byte index) => InsertVector128(value, data, index); 483public static new Vector512<int> InsertVector256(Vector512<int> value, Vector256<int> data, [ConstantExpected] byte index) => InsertVector256(value, data, index); 488public static new Vector512<uint> InsertVector256(Vector512<uint> value, Vector256<uint> data, [ConstantExpected] byte index) => InsertVector256(value, data, index); 493public static new Vector512<float> InsertVector256(Vector512<float> value, Vector256<float> data, [ConstantExpected] byte index) => InsertVector256(value, data, index); 499public static Vector512<long> MultiplyLow(Vector512<long> left, Vector512<long> right) => MultiplyLow(left, right); 504public static Vector512<ulong> MultiplyLow(Vector512<ulong> left, Vector512<ulong> right) => MultiplyLow(left, right); 510public static Vector512<float> Or(Vector512<float> left, Vector512<float> right) => Or(left, right); 515public static Vector512<double> Or(Vector512<double> left, Vector512<double> right) => Or(left, right); 521public static Vector512<float> Range(Vector512<float> left, Vector512<float> right, [ConstantExpected(Max = (byte)(0x0F))] byte control) => Range(left, right, control); 526public static Vector512<double> Range(Vector512<double> left, Vector512<double> right, [ConstantExpected(Max = (byte)(0x0F))] byte control) => Range(left, right, control); 543public static Vector512<float> Reduce(Vector512<float> value, [ConstantExpected] byte control) => Reduce(value, control); 548public static Vector512<double> Reduce(Vector512<double> value, [ConstantExpected] byte control) => Reduce(value, control); 577public static Vector512<float> Xor(Vector512<float> left, Vector512<float> right) => Xor(left, right); 582public static Vector512<double> Xor(Vector512<double> left, Vector512<double> right) => Xor(left, right);
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\X86\Avx512F.cs (1039)
1368public static Vector512<uint> Abs(Vector512<int> value) => Abs(value); 1373public static Vector512<ulong> Abs(Vector512<long> value) => Abs(value); 1379public static Vector512<int> Add(Vector512<int> left, Vector512<int> right) => Add(left, right); 1384public static Vector512<uint> Add(Vector512<uint> left, Vector512<uint> right) => Add(left, right); 1389public static Vector512<long> Add(Vector512<long> left, Vector512<long> right) => Add(left, right); 1394public static Vector512<ulong> Add(Vector512<ulong> left, Vector512<ulong> right) => Add(left, right); 1399public static Vector512<double> Add(Vector512<double> left, Vector512<double> right) => Add(left, right); 1404public static Vector512<double> Add(Vector512<double> left, Vector512<double> right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => Add(left, right, mode); 1409public static Vector512<float> Add(Vector512<float> left, Vector512<float> right) => Add(left, right); 1414public static Vector512<float> Add(Vector512<float> left, Vector512<float> right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => Add(left, right, mode); 1429public static Vector512<int> AlignRight32(Vector512<int> left, Vector512<int> right, [ConstantExpected] byte mask) => AlignRight32(left, right, mask); 1434public static Vector512<uint> AlignRight32(Vector512<uint> left, Vector512<uint> right, [ConstantExpected] byte mask) => AlignRight32(left, right, mask); 1440public static Vector512<long> AlignRight64(Vector512<long> left, Vector512<long> right, [ConstantExpected] byte mask) => AlignRight64(left, right, mask); 1445public static Vector512<ulong> AlignRight64(Vector512<ulong> left, Vector512<ulong> right, [ConstantExpected] byte mask) => AlignRight64(left, right, mask); 1451public static Vector512<byte> And(Vector512<byte> left, Vector512<byte> right) => And(left, right); 1456public static Vector512<sbyte> And(Vector512<sbyte> left, Vector512<sbyte> right) => And(left, right); 1461public static Vector512<short> And(Vector512<short> left, Vector512<short> right) => And(left, right); 1466public static Vector512<ushort> And(Vector512<ushort> left, Vector512<ushort> right) => And(left, right); 1471public static Vector512<int> And(Vector512<int> left, Vector512<int> right) => And(left, right); 1476public static Vector512<uint> And(Vector512<uint> left, Vector512<uint> right) => And(left, right); 1481public static Vector512<long> And(Vector512<long> left, Vector512<long> right) => And(left, right); 1486public static Vector512<ulong> And(Vector512<ulong> left, Vector512<ulong> right) => And(left, right); 1492public static Vector512<byte> AndNot(Vector512<byte> left, Vector512<byte> right) => AndNot(left, right); 1497public static Vector512<sbyte> AndNot(Vector512<sbyte> left, Vector512<sbyte> right) => AndNot(left, right); 1502public static Vector512<short> AndNot(Vector512<short> left, Vector512<short> right) => AndNot(left, right); 1507public static Vector512<ushort> AndNot(Vector512<ushort> left, Vector512<ushort> right) => AndNot(left, right); 1512public static Vector512<int> AndNot(Vector512<int> left, Vector512<int> right) => AndNot(left, right); 1517public static Vector512<uint> AndNot(Vector512<uint> left, Vector512<uint> right) => AndNot(left, right); 1522public static Vector512<long> AndNot(Vector512<long> left, Vector512<long> right) => AndNot(left, right); 1527public static Vector512<ulong> AndNot(Vector512<ulong> left, Vector512<ulong> right) => AndNot(left, right); 1533public static Vector512<double> BlendVariable(Vector512<double> left, Vector512<double> right, Vector512<double> mask) => BlendVariable(left, right, mask); 1538public static Vector512<int> BlendVariable(Vector512<int> left, Vector512<int> right, Vector512<int> mask) => BlendVariable(left, right, mask); 1543public static Vector512<long> BlendVariable(Vector512<long> left, Vector512<long> right, Vector512<long> mask) => BlendVariable(left, right, mask); 1548public static Vector512<float> BlendVariable(Vector512<float> left, Vector512<float> right, Vector512<float> mask) => BlendVariable(left, right, mask); 1553public static Vector512<uint> BlendVariable(Vector512<uint> left, Vector512<uint> right, Vector512<uint> mask) => BlendVariable(left, right, mask); 1558public static Vector512<ulong> BlendVariable(Vector512<ulong> left, Vector512<ulong> right, Vector512<ulong> mask) => BlendVariable(left, right, mask); 1564public static Vector512<int> BroadcastScalarToVector512(Vector128<int> value) => BroadcastScalarToVector512(value); 1569public static Vector512<uint> BroadcastScalarToVector512(Vector128<uint> value) => BroadcastScalarToVector512(value); 1574public static Vector512<long> BroadcastScalarToVector512(Vector128<long> value) => BroadcastScalarToVector512(value); 1579public static Vector512<ulong> BroadcastScalarToVector512(Vector128<ulong> value) => BroadcastScalarToVector512(value); 1584public static Vector512<float> BroadcastScalarToVector512(Vector128<float> value) => BroadcastScalarToVector512(value); 1589public static Vector512<double> BroadcastScalarToVector512(Vector128<double> value) => BroadcastScalarToVector512(value); 1595public static unsafe Vector512<int> BroadcastVector128ToVector512(int* address) => BroadcastVector128ToVector512(address); 1600public static unsafe Vector512<uint> BroadcastVector128ToVector512(uint* address) => BroadcastVector128ToVector512(address); 1605public static unsafe Vector512<float> BroadcastVector128ToVector512(float* address) => BroadcastVector128ToVector512(address); 1611public static unsafe Vector512<long> BroadcastVector256ToVector512(long* address) => BroadcastVector256ToVector512(address); 1616public static unsafe Vector512<ulong> BroadcastVector256ToVector512(ulong* address) => BroadcastVector256ToVector512(address); 1621public static unsafe Vector512<double> BroadcastVector256ToVector512(double* address) => BroadcastVector256ToVector512(address); 1627public static Vector512<double> Compare(Vector512<double> left, Vector512<double> right, [ConstantExpected(Max = FloatComparisonMode.UnorderedTrueSignaling)] FloatComparisonMode mode) => Compare(left, right, mode); 1633public static Vector512<double> CompareEqual(Vector512<double> left, Vector512<double> right) => CompareEqual(left, right); 1639public static Vector512<double> CompareGreaterThan(Vector512<double> left, Vector512<double> right) => CompareGreaterThan(left, right); 1645public static Vector512<double> CompareGreaterThanOrEqual(Vector512<double> left, Vector512<double> right) => CompareGreaterThanOrEqual(left, right); 1651public static Vector512<double> CompareLessThan(Vector512<double> left, Vector512<double> right) => CompareLessThan(left, right); 1657public static Vector512<double> CompareLessThanOrEqual(Vector512<double> left, Vector512<double> right) => CompareLessThanOrEqual(left, right); 1663public static Vector512<double> CompareNotEqual(Vector512<double> left, Vector512<double> right) => CompareNotEqual(left, right); 1669public static Vector512<double> CompareNotGreaterThan(Vector512<double> left, Vector512<double> right) => CompareNotGreaterThan(left, right); 1675public static Vector512<double> CompareNotGreaterThanOrEqual(Vector512<double> left, Vector512<double> right) => CompareNotGreaterThanOrEqual(left, right); 1681public static Vector512<double> CompareNotLessThan(Vector512<double> left, Vector512<double> right) => CompareNotLessThan(left, right); 1687public static Vector512<double> CompareNotLessThanOrEqual(Vector512<double> left, Vector512<double> right) => CompareNotLessThanOrEqual(left, right); 1693public static Vector512<double> CompareOrdered(Vector512<double> left, Vector512<double> right) => CompareOrdered(left, right); 1699public static Vector512<double> CompareUnordered(Vector512<double> left, Vector512<double> right) => CompareUnordered(left, right); 1705public static Vector512<float> Compare(Vector512<float> left, Vector512<float> right, [ConstantExpected(Max = FloatComparisonMode.UnorderedTrueSignaling)] FloatComparisonMode mode) => Compare(left, right, mode); 1711public static Vector512<float> CompareEqual(Vector512<float> left, Vector512<float> right) => CompareEqual(left, right); 1717public static Vector512<float> CompareGreaterThan(Vector512<float> left, Vector512<float> right) => CompareGreaterThan(left, right); 1723public static Vector512<float> CompareGreaterThanOrEqual(Vector512<float> left, Vector512<float> right) => CompareGreaterThanOrEqual(left, right); 1729public static Vector512<float> CompareLessThan(Vector512<float> left, Vector512<float> right) => CompareLessThan(left, right); 1735public static Vector512<float> CompareLessThanOrEqual(Vector512<float> left, Vector512<float> right) => CompareLessThanOrEqual(left, right); 1741public static Vector512<float> CompareNotEqual(Vector512<float> left, Vector512<float> right) => CompareNotEqual(left, right); 1747public static Vector512<float> CompareNotGreaterThan(Vector512<float> left, Vector512<float> right) => CompareNotGreaterThan(left, right); 1753public static Vector512<float> CompareNotGreaterThanOrEqual(Vector512<float> left, Vector512<float> right) => CompareNotGreaterThanOrEqual(left, right); 1759public static Vector512<float> CompareNotLessThan(Vector512<float> left, Vector512<float> right) => CompareNotLessThan(left, right); 1765public static Vector512<float> CompareNotLessThanOrEqual(Vector512<float> left, Vector512<float> right) => CompareNotLessThanOrEqual(left, right); 1771public static Vector512<float> CompareOrdered(Vector512<float> left, Vector512<float> right) => CompareOrdered(left, right); 1777public static Vector512<float> CompareUnordered(Vector512<float> left, Vector512<float> right) => CompareUnordered(left, right); 1783public static Vector512<int> CompareEqual(Vector512<int> left, Vector512<int> right) => CompareEqual(left, right); 1788public static Vector512<int> CompareGreaterThan(Vector512<int> left, Vector512<int> right) => CompareGreaterThan(left, right); 1793public static Vector512<int> CompareGreaterThanOrEqual(Vector512<int> left, Vector512<int> right) => CompareGreaterThanOrEqual(left, right); 1798public static Vector512<int> CompareLessThan(Vector512<int> left, Vector512<int> right) => CompareLessThan(left, right); 1803public static Vector512<int> CompareLessThanOrEqual(Vector512<int> left, Vector512<int> right) => CompareLessThanOrEqual(left, right); 1808public static Vector512<int> CompareNotEqual(Vector512<int> left, Vector512<int> right) => CompareNotEqual(left, right); 1814public static Vector512<long> CompareEqual(Vector512<long> left, Vector512<long> right) => CompareEqual(left, right); 1819public static Vector512<long> CompareGreaterThan(Vector512<long> left, Vector512<long> right) => CompareGreaterThan(left, right); 1824public static Vector512<long> CompareGreaterThanOrEqual(Vector512<long> left, Vector512<long> right) => CompareGreaterThanOrEqual(left, right); 1829public static Vector512<long> CompareLessThan(Vector512<long> left, Vector512<long> right) => CompareLessThan(left, right); 1834public static Vector512<long> CompareLessThanOrEqual(Vector512<long> left, Vector512<long> right) => CompareLessThanOrEqual(left, right); 1839public static Vector512<long> CompareNotEqual(Vector512<long> left, Vector512<long> right) => CompareNotEqual(left, right); 1845public static Vector512<uint> CompareEqual(Vector512<uint> left, Vector512<uint> right) => CompareEqual(left, right); 1850public static Vector512<uint> CompareGreaterThan(Vector512<uint> left, Vector512<uint> right) => CompareGreaterThan(left, right); 1855public static Vector512<uint> CompareGreaterThanOrEqual(Vector512<uint> left, Vector512<uint> right) => CompareGreaterThanOrEqual(left, right); 1860public static Vector512<uint> CompareLessThan(Vector512<uint> left, Vector512<uint> right) => CompareLessThan(left, right); 1865public static Vector512<uint> CompareLessThanOrEqual(Vector512<uint> left, Vector512<uint> right) => CompareLessThanOrEqual(left, right); 1870public static Vector512<uint> CompareNotEqual(Vector512<uint> left, Vector512<uint> right) => CompareNotEqual(left, right); 1876public static Vector512<ulong> CompareEqual(Vector512<ulong> left, Vector512<ulong> right) => CompareEqual(left, right); 1881public static Vector512<ulong> CompareGreaterThan(Vector512<ulong> left, Vector512<ulong> right) => CompareGreaterThan(left, right); 1886public static Vector512<ulong> CompareGreaterThanOrEqual(Vector512<ulong> left, Vector512<ulong> right) => CompareGreaterThanOrEqual(left, right); 1891public static Vector512<ulong> CompareLessThan(Vector512<ulong> left, Vector512<ulong> right) => CompareLessThan(left, right); 1896public static Vector512<ulong> CompareLessThanOrEqual(Vector512<ulong> left, Vector512<ulong> right) => CompareLessThanOrEqual(left, right); 1901public static Vector512<ulong> CompareNotEqual(Vector512<ulong> left, Vector512<ulong> right) => CompareNotEqual(left, right); 1974public static Vector128<byte> ConvertToVector128Byte(Vector512<int> value) => ConvertToVector128Byte(value); 1979public static Vector128<byte> ConvertToVector128Byte(Vector512<long> value) => ConvertToVector128Byte(value); 1984public static Vector128<byte> ConvertToVector128Byte(Vector512<uint> value) => ConvertToVector128Byte(value); 1989public static Vector128<byte> ConvertToVector128Byte(Vector512<ulong> value) => ConvertToVector128Byte(value); 1994public static Vector128<byte> ConvertToVector128ByteWithSaturation(Vector512<uint> value) => ConvertToVector128ByteWithSaturation(value); 1999public static Vector128<byte> ConvertToVector128ByteWithSaturation(Vector512<ulong> value) => ConvertToVector128ByteWithSaturation(value); 2005public static Vector128<short> ConvertToVector128Int16(Vector512<long> value) => ConvertToVector128Int16(value); 2010public static Vector128<short> ConvertToVector128Int16(Vector512<ulong> value) => ConvertToVector128Int16(value); 2015public static Vector128<short> ConvertToVector128Int16WithSaturation(Vector512<long> value) => ConvertToVector128Int16WithSaturation(value); 2021public static Vector128<sbyte> ConvertToVector128SByte(Vector512<int> value) => ConvertToVector128SByte(value); 2026public static Vector128<sbyte> ConvertToVector128SByte(Vector512<long> value) => ConvertToVector128SByte(value); 2031public static Vector128<sbyte> ConvertToVector128SByte(Vector512<uint> value) => ConvertToVector128SByte(value); 2036public static Vector128<sbyte> ConvertToVector128SByte(Vector512<ulong> value) => ConvertToVector128SByte(value); 2041public static Vector128<sbyte> ConvertToVector128SByteWithSaturation(Vector512<int> value) => ConvertToVector128SByteWithSaturation(value); 2046public static Vector128<sbyte> ConvertToVector128SByteWithSaturation(Vector512<long> value) => ConvertToVector128SByteWithSaturation(value); 2052public static Vector128<ushort> ConvertToVector128UInt16(Vector512<long> value) => ConvertToVector128UInt16(value); 2057public static Vector128<ushort> ConvertToVector128UInt16(Vector512<ulong> value) => ConvertToVector128UInt16(value); 2062public static Vector128<ushort> ConvertToVector128UInt16WithSaturation(Vector512<ulong> value) => ConvertToVector128UInt16WithSaturation(value); 2068public static Vector256<short> ConvertToVector256Int16(Vector512<int> value) => ConvertToVector256Int16(value); 2073public static Vector256<short> ConvertToVector256Int16(Vector512<uint> value) => ConvertToVector256Int16(value); 2078public static Vector256<short> ConvertToVector256Int16WithSaturation(Vector512<int> value) => ConvertToVector256Int16WithSaturation(value); 2084public static Vector256<int> ConvertToVector256Int32(Vector512<double> value) => ConvertToVector256Int32(value); 2089public static Vector256<int> ConvertToVector256Int32(Vector512<double> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector256Int32(value, mode); 2094public static Vector256<int> ConvertToVector256Int32(Vector512<long> value) => ConvertToVector256Int32(value); 2099public static Vector256<int> ConvertToVector256Int32(Vector512<ulong> value) => ConvertToVector256Int32(value); 2104public static Vector256<int> ConvertToVector256Int32WithSaturation(Vector512<long> value) => ConvertToVector256Int32WithSaturation(value); 2109public static Vector256<int> ConvertToVector256Int32WithTruncation(Vector512<double> value) => ConvertToVector256Int32WithTruncation(value); 2116public static Vector256<float> ConvertToVector256Single(Vector512<double> value) => ConvertToVector256Single(value); 2121public static Vector256<float> ConvertToVector256Single(Vector512<double> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector256Single(value, mode); 2127public static Vector256<ushort> ConvertToVector256UInt16(Vector512<int> value) => ConvertToVector256UInt16(value); 2132public static Vector256<ushort> ConvertToVector256UInt16(Vector512<uint> value) => ConvertToVector256UInt16(value); 2137public static Vector256<ushort> ConvertToVector256UInt16WithSaturation(Vector512<uint> value) => ConvertToVector256UInt16WithSaturation(value); 2143public static Vector256<uint> ConvertToVector256UInt32(Vector512<double> value) => ConvertToVector256UInt32(value); 2148public static Vector256<uint> ConvertToVector256UInt32(Vector512<double> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector256UInt32(value, mode); 2153public static Vector256<uint> ConvertToVector256UInt32(Vector512<long> value) => ConvertToVector256UInt32(value); 2158public static Vector256<uint> ConvertToVector256UInt32(Vector512<ulong> value) => ConvertToVector256UInt32(value); 2163public static Vector256<uint> ConvertToVector256UInt32WithSaturation(Vector512<ulong> value) => ConvertToVector256UInt32WithSaturation(value); 2168public static Vector256<uint> ConvertToVector256UInt32WithTruncation(Vector512<double> value) => ConvertToVector256UInt32WithTruncation(value); 2174public static Vector512<double> ConvertToVector512Double(Vector256<int> value) => ConvertToVector512Double(value); 2179public static Vector512<double> ConvertToVector512Double(Vector256<float> value) => ConvertToVector512Double(value); 2184public static Vector512<double> ConvertToVector512Double(Vector256<uint> value) => ConvertToVector512Double(value); 2189public static Vector512<int> ConvertToVector512Int32(Vector128<sbyte> value) => ConvertToVector512Int32(value); 2194public static Vector512<int> ConvertToVector512Int32(Vector128<byte> value) => ConvertToVector512Int32(value); 2199public static Vector512<int> ConvertToVector512Int32(Vector256<short> value) => ConvertToVector512Int32(value); 2204public static Vector512<int> ConvertToVector512Int32(Vector256<ushort> value) => ConvertToVector512Int32(value); 2209public static Vector512<int> ConvertToVector512Int32(Vector512<float> value) => ConvertToVector512Int32(value); 2214public static Vector512<int> ConvertToVector512Int32(Vector512<float> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512Int32(value, mode); 2219public static Vector512<int> ConvertToVector512Int32WithTruncation(Vector512<float> value) => ConvertToVector512Int32WithTruncation(value); 2224public static Vector512<long> ConvertToVector512Int64(Vector128<sbyte> value) => ConvertToVector512Int64(value); 2229public static Vector512<long> ConvertToVector512Int64(Vector128<byte> value) => ConvertToVector512Int64(value); 2234public static Vector512<long> ConvertToVector512Int64(Vector128<short> value) => ConvertToVector512Int64(value); 2239public static Vector512<long> ConvertToVector512Int64(Vector128<ushort> value) => ConvertToVector512Int64(value); 2244public static Vector512<long> ConvertToVector512Int64(Vector256<int> value) => ConvertToVector512Int64(value); 2249public static Vector512<long> ConvertToVector512Int64(Vector256<uint> value) => ConvertToVector512Int64(value); 2254public static Vector512<float> ConvertToVector512Single(Vector512<int> value) => ConvertToVector512Single(value); 2259public static Vector512<float> ConvertToVector512Single(Vector512<int> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512Single(value, mode); 2264public static Vector512<float> ConvertToVector512Single(Vector512<uint> value) => ConvertToVector512Single(value); 2269public static Vector512<float> ConvertToVector512Single(Vector512<uint> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512Single(value, mode); 2274public static Vector512<uint> ConvertToVector512UInt32(Vector128<sbyte> value) => ConvertToVector512UInt32(value); 2279public static Vector512<uint> ConvertToVector512UInt32(Vector128<byte> value) => ConvertToVector512UInt32(value); 2284public static Vector512<uint> ConvertToVector512UInt32(Vector256<short> value) => ConvertToVector512UInt32(value); 2289public static Vector512<uint> ConvertToVector512UInt32(Vector256<ushort> value) => ConvertToVector512UInt32(value); 2294public static Vector512<uint> ConvertToVector512UInt32(Vector512<float> value) => ConvertToVector512UInt32(value); 2299public static Vector512<uint> ConvertToVector512UInt32(Vector512<float> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => ConvertToVector512UInt32(value, mode); 2304public static Vector512<uint> ConvertToVector512UInt32WithTruncation(Vector512<float> value) => ConvertToVector512UInt32WithTruncation(value); 2309public static Vector512<ulong> ConvertToVector512UInt64(Vector128<sbyte> value) => ConvertToVector512UInt64(value); 2314public static Vector512<ulong> ConvertToVector512UInt64(Vector128<byte> value) => ConvertToVector512UInt64(value); 2319public static Vector512<ulong> ConvertToVector512UInt64(Vector128<short> value) => ConvertToVector512UInt64(value); 2324public static Vector512<ulong> ConvertToVector512UInt64(Vector128<ushort> value) => ConvertToVector512UInt64(value); 2329public static Vector512<ulong> ConvertToVector512UInt64(Vector256<int> value) => ConvertToVector512UInt64(value); 2334public static Vector512<ulong> ConvertToVector512UInt64(Vector256<uint> value) => ConvertToVector512UInt64(value); 2340public static Vector512<float> Divide(Vector512<float> left, Vector512<float> right) => Divide(left, right); 2345public static Vector512<double> Divide(Vector512<double> left, Vector512<double> right) => Divide(left, right); 2350public static Vector512<float> Divide(Vector512<float> left, Vector512<float> right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => Divide(left, right, mode); 2355public static Vector512<double> Divide(Vector512<double> left, Vector512<double> right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => Divide(left, right, mode); 2370public static Vector512<float> DuplicateEvenIndexed(Vector512<float> value) => DuplicateEvenIndexed(value); 2375public static Vector512<double> DuplicateEvenIndexed(Vector512<double> value) => DuplicateEvenIndexed(value); 2380public static Vector512<float> DuplicateOddIndexed(Vector512<float> value) => DuplicateOddIndexed(value); 2386public static Vector128<sbyte> ExtractVector128(Vector512<sbyte> value, [ConstantExpected] byte index) => ExtractVector128(value, index); 2391public static Vector128<byte> ExtractVector128(Vector512<byte> value, [ConstantExpected] byte index) => ExtractVector128(value, index); 2396public static Vector128<short> ExtractVector128(Vector512<short> value, [ConstantExpected] byte index) => ExtractVector128(value, index); 2401public static Vector128<ushort> ExtractVector128(Vector512<ushort> value, [ConstantExpected] byte index) => ExtractVector128(value, index); 2406public static Vector128<int> ExtractVector128(Vector512<int> value, [ConstantExpected] byte index) => ExtractVector128(value, index); 2411public static Vector128<uint> ExtractVector128(Vector512<uint> value, [ConstantExpected] byte index) => ExtractVector128(value, index); 2416public static Vector128<long> ExtractVector128(Vector512<long> value, [ConstantExpected] byte index) => ExtractVector128(value, index); 2421public static Vector128<ulong> ExtractVector128(Vector512<ulong> value, [ConstantExpected] byte index) => ExtractVector128(value, index); 2426public static Vector128<float> ExtractVector128(Vector512<float> value, [ConstantExpected] byte index) => ExtractVector128(value, index); 2431public static Vector128<double> ExtractVector128(Vector512<double> value, [ConstantExpected] byte index) => ExtractVector128(value, index); 2437public static Vector256<sbyte> ExtractVector256(Vector512<sbyte> value, [ConstantExpected] byte index) => ExtractVector256(value, index); 2442public static Vector256<byte> ExtractVector256(Vector512<byte> value, [ConstantExpected] byte index) => ExtractVector256(value, index); 2447public static Vector256<short> ExtractVector256(Vector512<short> value, [ConstantExpected] byte index) => ExtractVector256(value, index); 2452public static Vector256<ushort> ExtractVector256(Vector512<ushort> value, [ConstantExpected] byte index) => ExtractVector256(value, index); 2457public static Vector256<int> ExtractVector256(Vector512<int> value, [ConstantExpected] byte index) => ExtractVector256(value, index); 2462public static Vector256<uint> ExtractVector256(Vector512<uint> value, [ConstantExpected] byte index) => ExtractVector256(value, index); 2467public static Vector256<long> ExtractVector256(Vector512<long> value, [ConstantExpected] byte index) => ExtractVector256(value, index); 2472public static Vector256<ulong> ExtractVector256(Vector512<ulong> value, [ConstantExpected] byte index) => ExtractVector256(value, index); 2477public static Vector256<float> ExtractVector256(Vector512<float> value, [ConstantExpected] byte index) => ExtractVector256(value, index); 2482public static Vector256<double> ExtractVector256(Vector512<double> value, [ConstantExpected] byte index) => ExtractVector256(value, index); 2488public static Vector512<float> Fixup(Vector512<float> left, Vector512<float> right, Vector512<int> table, [ConstantExpected] byte control) => Fixup(left, right, table, control); 2493public static Vector512<double> Fixup(Vector512<double> left, Vector512<double> right, Vector512<long> table, [ConstantExpected] byte control) => Fixup(left, right, table, control); 2510public static Vector512<float> FusedMultiplyAdd(Vector512<float> a, Vector512<float> b, Vector512<float> c) => FusedMultiplyAdd(a, b, c); 2515public static Vector512<float> FusedMultiplyAdd(Vector512<float> a, Vector512<float> b, Vector512<float> c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => FusedMultiplyAdd(a, b, c, mode); 2520public static Vector512<double> FusedMultiplyAdd(Vector512<double> a, Vector512<double> b, Vector512<double> c) => FusedMultiplyAdd(a, b, c); 2525public static Vector512<double> FusedMultiplyAdd(Vector512<double> a, Vector512<double> b, Vector512<double> c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => FusedMultiplyAdd(a, b, c, mode); 2541public static Vector512<float> FusedMultiplyAddSubtract(Vector512<float> a, Vector512<float> b, Vector512<float> c) => FusedMultiplyAddSubtract(a, b, c); 2546public static Vector512<float> FusedMultiplyAddSubtract(Vector512<float> a, Vector512<float> b, Vector512<float> c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => FusedMultiplyAddSubtract(a, b, c, mode); 2551public static Vector512<double> FusedMultiplyAddSubtract(Vector512<double> a, Vector512<double> b, Vector512<double> c) => FusedMultiplyAddSubtract(a, b, c); 2556public static Vector512<double> FusedMultiplyAddSubtract(Vector512<double> a, Vector512<double> b, Vector512<double> c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => FusedMultiplyAddSubtract(a, b, c, mode); 2562public static Vector512<float> FusedMultiplySubtract(Vector512<float> a, Vector512<float> b, Vector512<float> c) => FusedMultiplySubtract(a, b, c); 2567public static Vector512<float> FusedMultiplySubtract(Vector512<float> a, Vector512<float> b, Vector512<float> c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => FusedMultiplySubtract(a, b, c, mode); 2572public static Vector512<double> FusedMultiplySubtract(Vector512<double> a, Vector512<double> b, Vector512<double> c) => FusedMultiplySubtract(a, b, c); 2577public static Vector512<double> FusedMultiplySubtract(Vector512<double> a, Vector512<double> b, Vector512<double> c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => FusedMultiplySubtract(a, b, c, mode); 2593public static Vector512<float> FusedMultiplySubtractAdd(Vector512<float> a, Vector512<float> b, Vector512<float> c) => FusedMultiplySubtractAdd(a, b, c); 2598public static Vector512<float> FusedMultiplySubtractAdd(Vector512<float> a, Vector512<float> b, Vector512<float> c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => FusedMultiplySubtractAdd(a, b, c, mode); 2603public static Vector512<double> FusedMultiplySubtractAdd(Vector512<double> a, Vector512<double> b, Vector512<double> c) => FusedMultiplySubtractAdd(a, b, c); 2608public static Vector512<double> FusedMultiplySubtractAdd(Vector512<double> a, Vector512<double> b, Vector512<double> c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => FusedMultiplySubtractAdd(a, b, c, mode); 2614public static Vector512<float> FusedMultiplyAddNegated(Vector512<float> a, Vector512<float> b, Vector512<float> c) => FusedMultiplyAddNegated(a, b, c); 2619public static Vector512<float> FusedMultiplyAddNegated(Vector512<float> a, Vector512<float> b, Vector512<float> c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => FusedMultiplyAddNegated(a, b, c, mode); 2624public static Vector512<double> FusedMultiplyAddNegated(Vector512<double> a, Vector512<double> b, Vector512<double> c) => FusedMultiplyAddNegated(a, b, c); 2629public static Vector512<double> FusedMultiplyAddNegated(Vector512<double> a, Vector512<double> b, Vector512<double> c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => FusedMultiplyAddNegated(a, b, c, mode); 2645public static Vector512<float> FusedMultiplySubtractNegated(Vector512<float> a, Vector512<float> b, Vector512<float> c) => FusedMultiplySubtractNegated(a, b, c); 2650public static Vector512<float> FusedMultiplySubtractNegated(Vector512<float> a, Vector512<float> b, Vector512<float> c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => FusedMultiplySubtractNegated(a, b, c, mode); 2655public static Vector512<double> FusedMultiplySubtractNegated(Vector512<double> a, Vector512<double> b, Vector512<double> c) => FusedMultiplySubtractNegated(a, b, c); 2660public static Vector512<double> FusedMultiplySubtractNegated(Vector512<double> a, Vector512<double> b, Vector512<double> c, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => FusedMultiplySubtractNegated(a, b, c, mode); 2676public static Vector512<float> GetExponent(Vector512<float> value) => GetExponent(value); 2681public static Vector512<double> GetExponent(Vector512<double> value) => GetExponent(value); 2710public static Vector512<float> GetMantissa(Vector512<float> value, [ConstantExpected(Max = (byte)(0x0F))] byte control) => GetMantissa(value, control); 2715public static Vector512<double> GetMantissa(Vector512<double> value, [ConstantExpected(Max = (byte)(0x0F))] byte control) => GetMantissa(value, control); 2744public static Vector512<sbyte> InsertVector128(Vector512<sbyte> value, Vector128<sbyte> data, [ConstantExpected] byte index) => InsertVector128(value, data, index); 2749public static Vector512<byte> InsertVector128(Vector512<byte> value, Vector128<byte> data, [ConstantExpected] byte index) => InsertVector128(value, data, index); 2754public static Vector512<short> InsertVector128(Vector512<short> value, Vector128<short> data, [ConstantExpected] byte index) => InsertVector128(value, data, index); 2759public static Vector512<ushort> InsertVector128(Vector512<ushort> value, Vector128<ushort> data, [ConstantExpected] byte index) => InsertVector128(value, data, index); 2764public static Vector512<int> InsertVector128(Vector512<int> value, Vector128<int> data, [ConstantExpected] byte index) => InsertVector128(value, data, index); 2769public static Vector512<uint> InsertVector128(Vector512<uint> value, Vector128<uint> data, [ConstantExpected] byte index) => InsertVector128(value, data, index); 2774public static Vector512<long> InsertVector128(Vector512<long> value, Vector128<long> data, [ConstantExpected] byte index) => InsertVector128(value, data, index); 2779public static Vector512<ulong> InsertVector128(Vector512<ulong> value, Vector128<ulong> data, [ConstantExpected] byte index) => InsertVector128(value, data, index); 2784public static Vector512<float> InsertVector128(Vector512<float> value, Vector128<float> data, [ConstantExpected] byte index) => InsertVector128(value, data, index); 2789public static Vector512<double> InsertVector128(Vector512<double> value, Vector128<double> data, [ConstantExpected] byte index) => InsertVector128(value, data, index); 2795public static Vector512<sbyte> InsertVector256(Vector512<sbyte> value, Vector256<sbyte> data, [ConstantExpected] byte index) => InsertVector256(value, data, index); 2800public static Vector512<byte> InsertVector256(Vector512<byte> value, Vector256<byte> data, [ConstantExpected] byte index) => InsertVector256(value, data, index); 2805public static Vector512<short> InsertVector256(Vector512<short> value, Vector256<short> data, [ConstantExpected] byte index) => InsertVector256(value, data, index); 2810public static Vector512<ushort> InsertVector256(Vector512<ushort> value, Vector256<ushort> data, [ConstantExpected] byte index) => InsertVector256(value, data, index); 2815public static Vector512<int> InsertVector256(Vector512<int> value, Vector256<int> data, [ConstantExpected] byte index) => InsertVector256(value, data, index); 2820public static Vector512<uint> InsertVector256(Vector512<uint> value, Vector256<uint> data, [ConstantExpected] byte index) => InsertVector256(value, data, index); 2825public static Vector512<long> InsertVector256(Vector512<long> value, Vector256<long> data, [ConstantExpected] byte index) => InsertVector256(value, data, index); 2830public static Vector512<ulong> InsertVector256(Vector512<ulong> value, Vector256<ulong> data, [ConstantExpected] byte index) => InsertVector256(value, data, index); 2835public static Vector512<float> InsertVector256(Vector512<float> value, Vector256<float> data, [ConstantExpected] byte index) => InsertVector256(value, data, index); 2840public static Vector512<double> InsertVector256(Vector512<double> value, Vector256<double> data, [ConstantExpected] byte index) => InsertVector256(value, data, index); 2846public static unsafe Vector512<byte> LoadAlignedVector512(byte* address) => LoadAlignedVector512(address); 2851public static unsafe Vector512<sbyte> LoadAlignedVector512(sbyte* address) => LoadAlignedVector512(address); 2856public static unsafe Vector512<short> LoadAlignedVector512(short* address) => LoadAlignedVector512(address); 2861public static unsafe Vector512<ushort> LoadAlignedVector512(ushort* address) => LoadAlignedVector512(address); 2866public static unsafe Vector512<int> LoadAlignedVector512(int* address) => LoadAlignedVector512(address); 2871public static unsafe Vector512<uint> LoadAlignedVector512(uint* address) => LoadAlignedVector512(address); 2876public static unsafe Vector512<long> LoadAlignedVector512(long* address) => LoadAlignedVector512(address); 2881public static unsafe Vector512<ulong> LoadAlignedVector512(ulong* address) => LoadAlignedVector512(address); 2886public static unsafe Vector512<float> LoadAlignedVector512(float* address) => LoadAlignedVector512(address); 2891public static unsafe Vector512<double> LoadAlignedVector512(double* address) => LoadAlignedVector512(address); 2897public static unsafe Vector512<sbyte> LoadAlignedVector512NonTemporal(sbyte* address) => LoadAlignedVector512NonTemporal(address); 2902public static unsafe Vector512<byte> LoadAlignedVector512NonTemporal(byte* address) => LoadAlignedVector512NonTemporal(address); 2907public static unsafe Vector512<short> LoadAlignedVector512NonTemporal(short* address) => LoadAlignedVector512NonTemporal(address); 2912public static unsafe Vector512<ushort> LoadAlignedVector512NonTemporal(ushort* address) => LoadAlignedVector512NonTemporal(address); 2917public static unsafe Vector512<int> LoadAlignedVector512NonTemporal(int* address) => LoadAlignedVector512NonTemporal(address); 2922public static unsafe Vector512<uint> LoadAlignedVector512NonTemporal(uint* address) => LoadAlignedVector512NonTemporal(address); 2927public static unsafe Vector512<long> LoadAlignedVector512NonTemporal(long* address) => LoadAlignedVector512NonTemporal(address); 2932public static unsafe Vector512<ulong> LoadAlignedVector512NonTemporal(ulong* address) => LoadAlignedVector512NonTemporal(address); 2938public static unsafe Vector512<sbyte> LoadVector512(sbyte* address) => LoadVector512(address); 2943public static unsafe Vector512<byte> LoadVector512(byte* address) => LoadVector512(address); 2948public static unsafe Vector512<short> LoadVector512(short* address) => LoadVector512(address); 2953public static unsafe Vector512<ushort> LoadVector512(ushort* address) => LoadVector512(address); 2958public static unsafe Vector512<int> LoadVector512(int* address) => LoadVector512(address); 2963public static unsafe Vector512<uint> LoadVector512(uint* address) => LoadVector512(address); 2968public static unsafe Vector512<long> LoadVector512(long* address) => LoadVector512(address); 2973public static unsafe Vector512<ulong> LoadVector512(ulong* address) => LoadVector512(address); 2978public static unsafe Vector512<float> LoadVector512(float* address) => LoadVector512(address); 2983public static unsafe Vector512<double> LoadVector512(double* address) => LoadVector512(address); 2989public static Vector512<int> Max(Vector512<int> left, Vector512<int> right) => Max(left, right); 2994public static Vector512<uint> Max(Vector512<uint> left, Vector512<uint> right) => Max(left, right); 2999public static Vector512<long> Max(Vector512<long> left, Vector512<long> right) => Max(left, right); 3004public static Vector512<ulong> Max(Vector512<ulong> left, Vector512<ulong> right) => Max(left, right); 3009public static Vector512<float> Max(Vector512<float> left, Vector512<float> right) => Max(left, right); 3014public static Vector512<double> Max(Vector512<double> left, Vector512<double> right) => Max(left, right); 3020public static Vector512<int> Min(Vector512<int> left, Vector512<int> right) => Min(left, right); 3025public static Vector512<uint> Min(Vector512<uint> left, Vector512<uint> right) => Min(left, right); 3030public static Vector512<long> Min(Vector512<long> left, Vector512<long> right) => Min(left, right); 3035public static Vector512<ulong> Min(Vector512<ulong> left, Vector512<ulong> right) => Min(left, right); 3040public static Vector512<float> Min(Vector512<float> left, Vector512<float> right) => Min(left, right); 3045public static Vector512<double> Min(Vector512<double> left, Vector512<double> right) => Min(left, right); 3051public static Vector512<long> Multiply(Vector512<int> left, Vector512<int> right) => Multiply(left, right); 3056public static Vector512<ulong> Multiply(Vector512<uint> left, Vector512<uint> right) => Multiply(left, right); 3061public static Vector512<float> Multiply(Vector512<float> left, Vector512<float> right) => Multiply(left, right); 3066public static Vector512<double> Multiply(Vector512<double> left, Vector512<double> right) => Multiply(left, right); 3071public static Vector512<float> Multiply(Vector512<float> left, Vector512<float> right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => Multiply(left, right, mode); 3076public static Vector512<double> Multiply(Vector512<double> left, Vector512<double> right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => Multiply(left, right, mode); 3091public static Vector512<int> MultiplyLow(Vector512<int> left, Vector512<int> right) => MultiplyLow(left, right); 3096public static Vector512<uint> MultiplyLow(Vector512<uint> left, Vector512<uint> right) => MultiplyLow(left, right); 3102public static Vector512<byte> Or(Vector512<byte> left, Vector512<byte> right) => Or(left, right); 3107public static Vector512<sbyte> Or(Vector512<sbyte> left, Vector512<sbyte> right) => Or(left, right); 3112public static Vector512<short> Or(Vector512<short> left, Vector512<short> right) => Or(left, right); 3117public static Vector512<ushort> Or(Vector512<ushort> left, Vector512<ushort> right) => Or(left, right); 3122public static Vector512<int> Or(Vector512<int> left, Vector512<int> right) => Or(left, right); 3127public static Vector512<uint> Or(Vector512<uint> left, Vector512<uint> right) => Or(left, right); 3132public static Vector512<long> Or(Vector512<long> left, Vector512<long> right) => Or(left, right); 3137public static Vector512<ulong> Or(Vector512<ulong> left, Vector512<ulong> right) => Or(left, right); 3143public static Vector512<double> Permute2x64(Vector512<double> value, [ConstantExpected] byte control) => Permute2x64(value, control); 3149public static Vector512<float> Permute4x32(Vector512<float> value, [ConstantExpected] byte control) => Permute4x32(value, control); 3155public static Vector512<long> Permute4x64(Vector512<long> value, [ConstantExpected] byte control) => Permute4x64(value, control); 3160public static Vector512<ulong> Permute4x64(Vector512<ulong> value, [ConstantExpected] byte control) => Permute4x64(value, control); 3165public static Vector512<double> Permute4x64(Vector512<double> value, [ConstantExpected] byte control) => Permute4x64(value, control); 3171public static Vector512<double> PermuteVar2x64(Vector512<double> left, Vector512<long> control) => PermuteVar2x64(left, control); 3177public static Vector512<float> PermuteVar4x32(Vector512<float> left, Vector512<int> control) => PermuteVar4x32(left, control); 3183public static Vector512<long> PermuteVar8x64(Vector512<long> value, Vector512<long> control) => PermuteVar8x64(value, control); 3188public static Vector512<ulong> PermuteVar8x64(Vector512<ulong> value, Vector512<ulong> control) => PermuteVar8x64(value, control); 3193public static Vector512<double> PermuteVar8x64(Vector512<double> value, Vector512<long> control) => PermuteVar8x64(value, control); 3200public static Vector512<long> PermuteVar8x64x2(Vector512<long> lower, Vector512<long> indices, Vector512<long> upper) => PermuteVar8x64x2(lower, indices, upper); 3206public static Vector512<ulong> PermuteVar8x64x2(Vector512<ulong> lower, Vector512<ulong> indices, Vector512<ulong> upper) => PermuteVar8x64x2(lower, indices, upper); 3212public static Vector512<double> PermuteVar8x64x2(Vector512<double> lower, Vector512<long> indices, Vector512<double> upper) => PermuteVar8x64x2(lower, indices, upper); 3218public static Vector512<int> PermuteVar16x32(Vector512<int> left, Vector512<int> control) => PermuteVar16x32(left, control); 3223public static Vector512<uint> PermuteVar16x32(Vector512<uint> left, Vector512<uint> control) => PermuteVar16x32(left, control); 3228public static Vector512<float> PermuteVar16x32(Vector512<float> left, Vector512<int> control) => PermuteVar16x32(left, control); 3235public static Vector512<int> PermuteVar16x32x2(Vector512<int> lower, Vector512<int> indices, Vector512<int> upper) => PermuteVar16x32x2(lower, indices, upper); 3241public static Vector512<uint> PermuteVar16x32x2(Vector512<uint> lower, Vector512<uint> indices, Vector512<uint> upper) => PermuteVar16x32x2(lower, indices, upper); 3247public static Vector512<float> PermuteVar16x32x2(Vector512<float> lower, Vector512<int> indices, Vector512<float> upper) => PermuteVar16x32x2(lower, indices, upper); 3253public static Vector512<float> Reciprocal14(Vector512<float> value) => Reciprocal14(value); 3258public static Vector512<double> Reciprocal14(Vector512<double> value) => Reciprocal14(value); 3287public static Vector512<float> ReciprocalSqrt14(Vector512<float> value) => ReciprocalSqrt14(value); 3292public static Vector512<double> ReciprocalSqrt14(Vector512<double> value) => ReciprocalSqrt14(value); 3321public static Vector512<int> RotateLeft(Vector512<int> value, [ConstantExpected] byte count) => RotateLeft(value, count); 3326public static Vector512<uint> RotateLeft(Vector512<uint> value, [ConstantExpected] byte count) => RotateLeft(value, count); 3331public static Vector512<long> RotateLeft(Vector512<long> value, [ConstantExpected] byte count) => RotateLeft(value, count); 3336public static Vector512<ulong> RotateLeft(Vector512<ulong> value, [ConstantExpected] byte count) => RotateLeft(value, count); 3342public static Vector512<int> RotateLeftVariable(Vector512<int> value, Vector512<uint> count) => RotateLeftVariable(value, count); 3347public static Vector512<uint> RotateLeftVariable(Vector512<uint> value, Vector512<uint> count) => RotateLeftVariable(value, count); 3352public static Vector512<long> RotateLeftVariable(Vector512<long> value, Vector512<ulong> count) => RotateLeftVariable(value, count); 3357public static Vector512<ulong> RotateLeftVariable(Vector512<ulong> value, Vector512<ulong> count) => RotateLeftVariable(value, count); 3363public static Vector512<int> RotateRight(Vector512<int> value, [ConstantExpected] byte count) => RotateRight(value, count); 3368public static Vector512<uint> RotateRight(Vector512<uint> value, [ConstantExpected] byte count) => RotateRight(value, count); 3373public static Vector512<long> RotateRight(Vector512<long> value, [ConstantExpected] byte count) => RotateRight(value, count); 3378public static Vector512<ulong> RotateRight(Vector512<ulong> value, [ConstantExpected] byte count) => RotateRight(value, count); 3384public static Vector512<int> RotateRightVariable(Vector512<int> value, Vector512<uint> count) => RotateRightVariable(value, count); 3389public static Vector512<uint> RotateRightVariable(Vector512<uint> value, Vector512<uint> count) => RotateRightVariable(value, count); 3394public static Vector512<long> RotateRightVariable(Vector512<long> value, Vector512<ulong> count) => RotateRightVariable(value, count); 3399public static Vector512<ulong> RotateRightVariable(Vector512<ulong> value, Vector512<ulong> count) => RotateRightVariable(value, count); 3405public static Vector512<float> RoundScale(Vector512<float> value, [ConstantExpected] byte control) => RoundScale(value, control); 3410public static Vector512<double> RoundScale(Vector512<double> value, [ConstantExpected] byte control) => RoundScale(value, control); 3439public static Vector512<float> Scale(Vector512<float> left, Vector512<float> right) => Scale(left, right); 3444public static Vector512<double> Scale(Vector512<double> left, Vector512<double> right) => Scale(left, right); 3449public static Vector512<float> Scale(Vector512<float> left, Vector512<float> right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => Scale(left, right, mode); 3454public static Vector512<double> Scale(Vector512<double> left, Vector512<double> right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => Scale(left, right, mode); 3481public static Vector512<int> ShiftLeftLogical(Vector512<int> value, Vector128<int> count) => ShiftLeftLogical(value, count); 3486public static Vector512<uint> ShiftLeftLogical(Vector512<uint> value, Vector128<uint> count) => ShiftLeftLogical(value, count); 3491public static Vector512<long> ShiftLeftLogical(Vector512<long> value, Vector128<long> count) => ShiftLeftLogical(value, count); 3496public static Vector512<ulong> ShiftLeftLogical(Vector512<ulong> value, Vector128<ulong> count) => ShiftLeftLogical(value, count); 3502public static Vector512<int> ShiftLeftLogical(Vector512<int> value, [ConstantExpected] byte count) => ShiftLeftLogical(value, count); 3507public static Vector512<uint> ShiftLeftLogical(Vector512<uint> value, [ConstantExpected] byte count) => ShiftLeftLogical(value, count); 3512public static Vector512<long> ShiftLeftLogical(Vector512<long> value, [ConstantExpected] byte count) => ShiftLeftLogical(value, count); 3517public static Vector512<ulong> ShiftLeftLogical(Vector512<ulong> value, [ConstantExpected] byte count) => ShiftLeftLogical(value, count); 3523public static Vector512<int> ShiftLeftLogicalVariable(Vector512<int> value, Vector512<uint> count) => ShiftLeftLogicalVariable(value, count); 3528public static Vector512<uint> ShiftLeftLogicalVariable(Vector512<uint> value, Vector512<uint> count) => ShiftLeftLogicalVariable(value, count); 3533public static Vector512<long> ShiftLeftLogicalVariable(Vector512<long> value, Vector512<ulong> count) => ShiftLeftLogicalVariable(value, count); 3538public static Vector512<ulong> ShiftLeftLogicalVariable(Vector512<ulong> value, Vector512<ulong> count) => ShiftLeftLogicalVariable(value, count); 3544public static Vector512<int> ShiftRightArithmetic(Vector512<int> value, Vector128<int> count) => ShiftRightArithmetic(value, count); 3549public static Vector512<long> ShiftRightArithmetic(Vector512<long> value, Vector128<long> count) => ShiftRightArithmetic(value, count); 3555public static Vector512<int> ShiftRightArithmetic(Vector512<int> value, [ConstantExpected] byte count) => ShiftRightArithmetic(value, count); 3560public static Vector512<long> ShiftRightArithmetic(Vector512<long> value, [ConstantExpected] byte count) => ShiftRightArithmetic(value, count); 3566public static Vector512<int> ShiftRightArithmeticVariable(Vector512<int> value, Vector512<uint> count) => ShiftRightArithmeticVariable(value, count); 3571public static Vector512<long> ShiftRightArithmeticVariable(Vector512<long> value, Vector512<ulong> count) => ShiftRightArithmeticVariable(value, count); 3577public static Vector512<int> ShiftRightLogical(Vector512<int> value, Vector128<int> count) => ShiftRightLogical(value, count); 3582public static Vector512<uint> ShiftRightLogical(Vector512<uint> value, Vector128<uint> count) => ShiftRightLogical(value, count); 3587public static Vector512<long> ShiftRightLogical(Vector512<long> value, Vector128<long> count) => ShiftRightLogical(value, count); 3592public static Vector512<ulong> ShiftRightLogical(Vector512<ulong> value, Vector128<ulong> count) => ShiftRightLogical(value, count); 3598public static Vector512<int> ShiftRightLogical(Vector512<int> value, [ConstantExpected] byte count) => ShiftRightLogical(value, count); 3603public static Vector512<uint> ShiftRightLogical(Vector512<uint> value, [ConstantExpected] byte count) => ShiftRightLogical(value, count); 3608public static Vector512<long> ShiftRightLogical(Vector512<long> value, [ConstantExpected] byte count) => ShiftRightLogical(value, count); 3613public static Vector512<ulong> ShiftRightLogical(Vector512<ulong> value, [ConstantExpected] byte count) => ShiftRightLogical(value, count); 3619public static Vector512<int> ShiftRightLogicalVariable(Vector512<int> value, Vector512<uint> count) => ShiftRightLogicalVariable(value, count); 3624public static Vector512<uint> ShiftRightLogicalVariable(Vector512<uint> value, Vector512<uint> count) => ShiftRightLogicalVariable(value, count); 3629public static Vector512<long> ShiftRightLogicalVariable(Vector512<long> value, Vector512<ulong> count) => ShiftRightLogicalVariable(value, count); 3634public static Vector512<ulong> ShiftRightLogicalVariable(Vector512<ulong> value, Vector512<ulong> count) => ShiftRightLogicalVariable(value, count); 3640public static Vector512<int> Shuffle(Vector512<int> value, [ConstantExpected] byte control) => Shuffle(value, control); 3645public static Vector512<uint> Shuffle(Vector512<uint> value, [ConstantExpected] byte control) => Shuffle(value, control); 3650public static Vector512<float> Shuffle(Vector512<float> value, Vector512<float> right, [ConstantExpected] byte control) => Shuffle(value, right, control); 3655public static Vector512<double> Shuffle(Vector512<double> value, Vector512<double> right, [ConstantExpected] byte control) => Shuffle(value, right, control); 3661public static Vector512<double> Shuffle4x128(Vector512<double> left, Vector512<double> right, [ConstantExpected] byte control) => Shuffle4x128(left, right, control); 3666public static Vector512<int> Shuffle4x128(Vector512<int> left, Vector512<int> right, [ConstantExpected] byte control) => Shuffle4x128(left, right, control); 3671public static Vector512<long> Shuffle4x128(Vector512<long> left, Vector512<long> right, [ConstantExpected] byte control) => Shuffle4x128(left, right, control); 3676public static Vector512<float> Shuffle4x128(Vector512<float> left, Vector512<float> right, [ConstantExpected] byte control) => Shuffle4x128(left, right, control); 3681public static Vector512<uint> Shuffle4x128(Vector512<uint> left, Vector512<uint> right, [ConstantExpected] byte control) => Shuffle4x128(left, right, control); 3686public static Vector512<ulong> Shuffle4x128(Vector512<ulong> left, Vector512<ulong> right, [ConstantExpected] byte control) => Shuffle4x128(left, right, control); 3692public static Vector512<float> Sqrt(Vector512<float> value) => Sqrt(value); 3697public static Vector512<double> Sqrt(Vector512<double> value) => Sqrt(value); 3702public static Vector512<float> Sqrt(Vector512<float> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => Sqrt(value, mode); 3707public static Vector512<double> Sqrt(Vector512<double> value, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => Sqrt(value, mode); 3723public static unsafe void Store(sbyte* address, Vector512<sbyte> source) => Store(address, source); 3728public static unsafe void Store(byte* address, Vector512<byte> source) => Store(address, source); 3733public static unsafe void Store(short* address, Vector512<short> source) => Store(address, source); 3738public static unsafe void Store(ushort* address, Vector512<ushort> source) => Store(address, source); 3743public static unsafe void Store(int* address, Vector512<int> source) => Store(address, source); 3748public static unsafe void Store(uint* address, Vector512<uint> source) => Store(address, source); 3753public static unsafe void Store(long* address, Vector512<long> source) => Store(address, source); 3758public static unsafe void Store(ulong* address, Vector512<ulong> source) => Store(address, source); 3763public static unsafe void Store(float* address, Vector512<float> source) => Store(address, source); 3768public static unsafe void Store(double* address, Vector512<double> source) => Store(address, source); 3774public static unsafe void StoreAligned(byte* address, Vector512<byte> source) => StoreAligned(address, source); 3779public static unsafe void StoreAligned(sbyte* address, Vector512<sbyte> source) => StoreAligned(address, source); 3784public static unsafe void StoreAligned(short* address, Vector512<short> source) => StoreAligned(address, source); 3789public static unsafe void StoreAligned(ushort* address, Vector512<ushort> source) => StoreAligned(address, source); 3794public static unsafe void StoreAligned(int* address, Vector512<int> source) => StoreAligned(address, source); 3799public static unsafe void StoreAligned(uint* address, Vector512<uint> source) => StoreAligned(address, source); 3804public static unsafe void StoreAligned(long* address, Vector512<long> source) => StoreAligned(address, source); 3809public static unsafe void StoreAligned(ulong* address, Vector512<ulong> source) => StoreAligned(address, source); 3814public static unsafe void StoreAligned(float* address, Vector512<float> source) => StoreAligned(address, source); 3819public static unsafe void StoreAligned(double* address, Vector512<double> source) => StoreAligned(address, source); 3825public static unsafe void StoreAlignedNonTemporal(sbyte* address, Vector512<sbyte> source) => StoreAlignedNonTemporal(address, source); 3830public static unsafe void StoreAlignedNonTemporal(byte* address, Vector512<byte> source) => StoreAlignedNonTemporal(address, source); 3835public static unsafe void StoreAlignedNonTemporal(short* address, Vector512<short> source) => StoreAlignedNonTemporal(address, source); 3840public static unsafe void StoreAlignedNonTemporal(ushort* address, Vector512<ushort> source) => StoreAlignedNonTemporal(address, source); 3845public static unsafe void StoreAlignedNonTemporal(int* address, Vector512<int> source) => StoreAlignedNonTemporal(address, source); 3850public static unsafe void StoreAlignedNonTemporal(uint* address, Vector512<uint> source) => StoreAlignedNonTemporal(address, source); 3855public static unsafe void StoreAlignedNonTemporal(long* address, Vector512<long> source) => StoreAlignedNonTemporal(address, source); 3860public static unsafe void StoreAlignedNonTemporal(ulong* address, Vector512<ulong> source) => StoreAlignedNonTemporal(address, source); 3865public static unsafe void StoreAlignedNonTemporal(float* address, Vector512<float> source) => StoreAlignedNonTemporal(address, source); 3870public static unsafe void StoreAlignedNonTemporal(double* address, Vector512<double> source) => StoreAlignedNonTemporal(address, source); 3876public static Vector512<int> Subtract(Vector512<int> left, Vector512<int> right) => Subtract(left, right); 3881public static Vector512<uint> Subtract(Vector512<uint> left, Vector512<uint> right) => Subtract(left, right); 3886public static Vector512<long> Subtract(Vector512<long> left, Vector512<long> right) => Subtract(left, right); 3891public static Vector512<ulong> Subtract(Vector512<ulong> left, Vector512<ulong> right) => Subtract(left, right); 3896public static Vector512<float> Subtract(Vector512<float> left, Vector512<float> right) => Subtract(left, right); 3901public static Vector512<double> Subtract(Vector512<double> left, Vector512<double> right) => Subtract(left, right); 3906public static Vector512<float> Subtract(Vector512<float> left, Vector512<float> right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => Subtract(left, right, mode); 3911public static Vector512<double> Subtract(Vector512<double> left, Vector512<double> right, [ConstantExpected(Max = FloatRoundingMode.ToZero)] FloatRoundingMode mode) => Subtract(left, right, mode); 3928public static Vector512<sbyte> TernaryLogic(Vector512<sbyte> a, Vector512<sbyte> b, Vector512<sbyte> c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); 3934public static Vector512<byte> TernaryLogic(Vector512<byte> a, Vector512<byte> b, Vector512<byte> c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); 3940public static Vector512<short> TernaryLogic(Vector512<short> a, Vector512<short> b, Vector512<short> c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); 3946public static Vector512<ushort> TernaryLogic(Vector512<ushort> a, Vector512<ushort> b, Vector512<ushort> c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); 3951public static Vector512<int> TernaryLogic(Vector512<int> a, Vector512<int> b, Vector512<int> c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); 3956public static Vector512<uint> TernaryLogic(Vector512<uint> a, Vector512<uint> b, Vector512<uint> c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); 3961public static Vector512<long> TernaryLogic(Vector512<long> a, Vector512<long> b, Vector512<long> c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); 3966public static Vector512<ulong> TernaryLogic(Vector512<ulong> a, Vector512<ulong> b, Vector512<ulong> c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); 3972public static Vector512<float> TernaryLogic(Vector512<float> a, Vector512<float> b, Vector512<float> c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); 3978public static Vector512<double> TernaryLogic(Vector512<double> a, Vector512<double> b, Vector512<double> c, [ConstantExpected] byte control) => TernaryLogic(a, b, c, control); 3984public static Vector512<int> UnpackHigh(Vector512<int> left, Vector512<int> right) => UnpackHigh(left, right); 3989public static Vector512<uint> UnpackHigh(Vector512<uint> left, Vector512<uint> right) => UnpackHigh(left, right); 3994public static Vector512<long> UnpackHigh(Vector512<long> left, Vector512<long> right) => UnpackHigh(left, right); 3999public static Vector512<ulong> UnpackHigh(Vector512<ulong> left, Vector512<ulong> right) => UnpackHigh(left, right); 4004public static Vector512<float> UnpackHigh(Vector512<float> left, Vector512<float> right) => UnpackHigh(left, right); 4009public static Vector512<double> UnpackHigh(Vector512<double> left, Vector512<double> right) => UnpackHigh(left, right); 4015public static Vector512<int> UnpackLow(Vector512<int> left, Vector512<int> right) => UnpackLow(left, right); 4020public static Vector512<uint> UnpackLow(Vector512<uint> left, Vector512<uint> right) => UnpackLow(left, right); 4025public static Vector512<long> UnpackLow(Vector512<long> left, Vector512<long> right) => UnpackLow(left, right); 4030public static Vector512<ulong> UnpackLow(Vector512<ulong> left, Vector512<ulong> right) => UnpackLow(left, right); 4035public static Vector512<float> UnpackLow(Vector512<float> left, Vector512<float> right) => UnpackLow(left, right); 4040public static Vector512<double> UnpackLow(Vector512<double> left, Vector512<double> right) => UnpackLow(left, right); 4046public static Vector512<byte> Xor(Vector512<byte> left, Vector512<byte> right) => Xor(left, right); 4051public static Vector512<sbyte> Xor(Vector512<sbyte> left, Vector512<sbyte> right) => Xor(left, right); 4056public static Vector512<short> Xor(Vector512<short> left, Vector512<short> right) => Xor(left, right); 4061public static Vector512<ushort> Xor(Vector512<ushort> left, Vector512<ushort> right) => Xor(left, right); 4066public static Vector512<int> Xor(Vector512<int> left, Vector512<int> right) => Xor(left, right); 4071public static Vector512<uint> Xor(Vector512<uint> left, Vector512<uint> right) => Xor(left, right); 4076public static Vector512<long> Xor(Vector512<long> left, Vector512<long> right) => Xor(left, right); 4081public static Vector512<ulong> Xor(Vector512<ulong> left, Vector512<ulong> right) => Xor(left, right);
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\X86\Avx512Vbmi.cs (20)
121public static Vector512<byte> MultiShift(Vector512<byte> control, Vector512<ulong> value) => MultiShift(control, value); 126public static Vector512<sbyte> MultiShift(Vector512<sbyte> control, Vector512<long> value) => MultiShift(control, value); 132public static Vector512<sbyte> PermuteVar64x8(Vector512<sbyte> left, Vector512<sbyte> control) => PermuteVar64x8(left, control); 137public static Vector512<byte> PermuteVar64x8(Vector512<byte> left, Vector512<byte> control) => PermuteVar64x8(left, control); 144public static Vector512<byte> PermuteVar64x8x2(Vector512<byte> lower, Vector512<byte> indices, Vector512<byte> upper) => PermuteVar64x8x2(lower, indices, upper); 150public static Vector512<sbyte> PermuteVar64x8x2(Vector512<sbyte> lower, Vector512<sbyte> indices, Vector512<sbyte> upper) => PermuteVar64x8x2(lower, indices, upper);
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\X86\Gfni.cs (9)
82public static Vector512<byte> GaloisFieldAffineTransformInverse(Vector512<byte> x, Vector512<byte> a, [ConstantExpected] byte b) => GaloisFieldAffineTransformInverse(x, a, b); 89public static Vector512<byte> GaloisFieldAffineTransform(Vector512<byte> x, Vector512<byte> a, [ConstantExpected] byte b) => GaloisFieldAffineTransform(x, a, b); 96public static Vector512<byte> GaloisFieldMultiply(Vector512<byte> left, Vector512<byte> right) => GaloisFieldMultiply(left, right);
src\libraries\System.Private.CoreLib\src\System\Runtime\Intrinsics\X86\Pclmulqdq.Wide.cs (6)
47public static Vector512<long> CarrylessMultiply(Vector512<long> left, Vector512<long> right, [ConstantExpected] byte control) => CarrylessMultiply(left, right, control); 52public static Vector512<ulong> CarrylessMultiply(Vector512<ulong> left, Vector512<ulong> right, [ConstantExpected] byte control) => CarrylessMultiply(left, right, control);
src\libraries\System.Private.CoreLib\src\System\SearchValues\ProbabilisticMap.cs (33)
108private static Vector512<byte> ContainsMask64CharsAvx512(Vector512<byte> charMap, ref char searchSpace0, ref char searchSpace1) 110Vector512<ushort> source0 = Vector512.LoadUnsafe(ref searchSpace0); 111Vector512<ushort> source1 = Vector512.LoadUnsafe(ref searchSpace1); 113Vector512<byte> sourceLower = Avx512Vbmi.PermuteVar64x8x2(source0.AsByte(), Vector512.CreateSequence<byte>(0, 2), source1.AsByte()); 114Vector512<byte> sourceUpper = Avx512Vbmi.PermuteVar64x8x2(source0.AsByte(), Vector512.CreateSequence<byte>(1, 2), source1.AsByte()); 116Vector512<byte> resultLower = IsCharBitNotSetAvx512(charMap, sourceLower); 117Vector512<byte> resultUpper = IsCharBitNotSetAvx512(charMap, sourceUpper); 124private static Vector512<byte> IsCharBitNotSetAvx512(Vector512<byte> charMap, Vector512<byte> values) 130Vector512<byte> shifted = (values.AsInt32() >>> VectorizedIndexShift).AsByte(); 132Vector512<byte> bitPositions = Avx512Vbmi.PermuteVar64x8(Vector512.Create(0x8040201008040201).AsByte(), shifted); 136Vector512<byte> bitMask = Avx512Vbmi.PermuteVar64x8(charMap, values); 138return Vector512.Equals(bitMask & bitPositions, Vector512<byte>.Zero); 426Vector512<byte> charMap512 = Vector512.Create(charMap256); 435Vector512<byte> result = ContainsMask64CharsAvx512(charMap512, ref cur, ref Unsafe.Add(ref cur, Vector512<ushort>.Count)); 437if (result != Vector512<byte>.Zero) 465Vector512<byte> result = ContainsMask64CharsAvx512(charMap512, ref searchSpace, ref Unsafe.Subtract(ref searchSpaceEnd, Vector512<ushort>.Count)); 467if (result != Vector512<byte>.Zero) 601Vector512<byte> charMap512 = Vector512.Create(charMap256); 613Vector512<byte> result = ContainsMask64CharsAvx512(charMap512, ref cur, ref Unsafe.Add(ref cur, Vector512<ushort>.Count)); 615if (result != Vector512<byte>.Zero) 642Vector512<byte> result = ContainsMask64CharsAvx512(charMap512, ref searchSpace, ref Unsafe.Subtract(ref cur, Vector512<ushort>.Count)); 644if (result != Vector512<byte>.Zero) 851if (index >= Vector512<ushort>.Count) 855index += searchSpaceLength - (2 * Vector512<ushort>.Count); 955if (index >= Vector512<ushort>.Count) 959index += searchSpaceLength - (2 * Vector512<ushort>.Count);
src\libraries\System.Private.CoreLib\src\System\SearchValues\Strings\AsciiStringSearchValuesTeddyBase.cs (23)
114private readonly Vector512<byte> 311Vector512<byte> n0Low = _n0Low, n0High = _n0High; 312Vector512<byte> n1Low = _n1Low, n1High = _n1High; 313Vector512<byte> prev0 = Vector512<byte>.AllBitsSet; 317Vector512<byte> input = TStartCaseSensitivity.TransformInput(LoadAndPack64AsciiChars(ref searchSpace)); 319(Vector512<byte> result, prev0) = ProcessInputN2(input, prev0, n0Low, n0High, n1Low, n1High); 321if (result != Vector512<byte>.Zero) 338prev0 = Vector512<byte>.AllBitsSet; 491Vector512<byte> n0Low = _n0Low, n0High = _n0High; 492Vector512<byte> n1Low = _n1Low, n1High = _n1High; 493Vector512<byte> n2Low = _n2Low, n2High = _n2High; 494Vector512<byte> prev0 = Vector512<byte>.AllBitsSet; 495Vector512<byte> prev1 = Vector512<byte>.AllBitsSet; 499Vector512<byte> input = TStartCaseSensitivity.TransformInput(LoadAndPack64AsciiChars(ref searchSpace)); 501(Vector512<byte> result, prev0, prev1) = ProcessInputN3(input, prev0, prev1, n0Low, n0High, n1Low, n1High, n2Low, n2High); 503if (result != Vector512<byte>.Zero) 520prev0 = Vector512<byte>.AllBitsSet; 521prev1 = Vector512<byte>.AllBitsSet; 628private bool TryFindMatch(ReadOnlySpan<char> span, ref char searchSpace, Vector512<byte> result, int matchStartOffset, out int offsetFromStart) 632ulong resultMask = (~Vector512.Equals(result, Vector512<byte>.Zero)).ExtractMostSignificantBits();
src\libraries\System.Private.CoreLib\src\System\SearchValues\Strings\Helpers\StringSearchValuesHelper.cs (14)
232static abstract Vector512<byte> TransformInput(Vector512<byte> input); 249public static Vector512<byte> TransformInput(Vector512<byte> input) => input; 297public static Vector512<byte> TransformInput(Vector512<byte> input) => input & Vector512.Create(unchecked((byte)~0x20)); 363public static Vector512<byte> TransformInput(Vector512<byte> input) 365Vector512<byte> subtraction = Vector512.Create((byte)(128 + 'a')); 366Vector512<byte> comparison = Vector512.Create((byte)(128 + 26)); 367Vector512<byte> caseConversion = Vector512.Create((byte)0x20); 369Vector512<byte> matches = Vector512.LessThan((input - subtraction).AsSByte(), comparison.AsSByte()).AsByte(); 412public static Vector512<byte> TransformInput(Vector512<byte> input) => throw new UnreachableException();
src\libraries\System.Private.CoreLib\src\System\SearchValues\Strings\Helpers\TeddyBucketizer.cs (4)
15public static (Vector512<byte> Low, Vector512<byte> High) GenerateNonBucketizedFingerprint(ReadOnlySpan<string> values, int offset) 48public static (Vector512<byte> Low, Vector512<byte> High) GenerateBucketizedFingerprint(string[][] valueBuckets, int offset)
src\libraries\System.Private.CoreLib\src\System\SearchValues\Strings\Helpers\TeddyHelper.cs (55)
70public static (Vector512<byte> Result, Vector512<byte> Prev0) ProcessInputN2( 71Vector512<byte> input, 72Vector512<byte> prev0, 73Vector512<byte> n0Low, Vector512<byte> n0High, 74Vector512<byte> n1Low, Vector512<byte> n1High) 78(Vector512<byte> low, Vector512<byte> high) = GetNibbles(input); 80Vector512<byte> match0 = Shuffle(n0Low, n0High, low, high); 81Vector512<byte> result1 = Shuffle(n1Low, n1High, low, high); 83Vector512<byte> result0 = RightShift1(prev0, match0); 85Vector512<byte> result = result0 & result1; 187public static (Vector512<byte> Result, Vector512<byte> Prev0, Vector512<byte> Prev1) ProcessInputN3( 188Vector512<byte> input, 189Vector512<byte> prev0, Vector512<byte> prev1, 190Vector512<byte> n0Low, Vector512<byte> n0High, 191Vector512<byte> n1Low, Vector512<byte> n1High, 192Vector512<byte> n2Low, Vector512<byte> n2High) 196(Vector512<byte> low, Vector512<byte> high) = GetNibbles(input); 198Vector512<byte> match0 = Shuffle(n0Low, n0High, low, high); 199Vector512<byte> match1 = Shuffle(n1Low, n1High, low, high); 200Vector512<byte> result2 = Shuffle(n2Low, n2High, low, high); 202Vector512<byte> result0 = RightShift2(prev0, match0); 203Vector512<byte> result1 = RightShift1(prev1, match1); 205Vector512<byte> result = result0 & result1 & result2; 254public static Vector512<byte> LoadAndPack64AsciiChars(ref char source) 256Vector512<ushort> source0 = Vector512.LoadUnsafe(ref source); 257Vector512<ushort> source1 = Vector512.LoadUnsafe(ref source, (nuint)Vector512<ushort>.Count); 259Vector512<byte> packed = Avx512BW.PackUnsignedSaturate(source0.AsInt16(), source1.AsInt16()); 293private static (Vector512<byte> Low, Vector512<byte> High) GetNibbles(Vector512<byte> input) 297Vector512<byte> low = input; 299Vector512<byte> high = input >>> 4; 321private static Vector512<byte> Shuffle(Vector512<byte> maskLow, Vector512<byte> maskHigh, Vector512<byte> low, Vector512<byte> high) 418private static Vector512<byte> RightShift1(Vector512<byte> left, Vector512<byte> right) 431private static Vector512<byte> RightShift2(Vector512<byte> left, Vector512<byte> right)
src\libraries\System.Private.CoreLib\src\System\SearchValues\Strings\SingleStringSearchValuesThreeChars.cs (23)
91if (Vector512.IsHardwareAccelerated && searchSpaceMinusValueTailLength - Vector512<ushort>.Count >= 0) 93Vector512<ushort> ch1 = Vector512.Create(_ch1); 94Vector512<ushort> ch2 = Vector512.Create(_ch2); 95Vector512<ushort> ch3 = Vector512.Create(_ch3); 97ref char lastSearchSpace = ref Unsafe.Add(ref searchSpace, searchSpaceMinusValueTailLength - Vector512<ushort>.Count); 101ValidateReadPosition(ref searchSpaceStart, searchSpaceLength, ref searchSpace, Vector512<ushort>.Count); 102ValidateReadPosition(ref searchSpaceStart, searchSpaceLength, ref searchSpace, Vector512<ushort>.Count + (int)(_ch2ByteOffset / 2)); 103ValidateReadPosition(ref searchSpaceStart, searchSpaceLength, ref searchSpace, Vector512<ushort>.Count + (int)(_ch3ByteOffset / 2)); 106Vector512<byte> result = GetComparisonResult(ref searchSpace, ch2ByteOffset, ch3ByteOffset, ch1, ch2, ch3); 108if (result != Vector512<byte>.Zero) 115searchSpace = ref Unsafe.Add(ref searchSpace, Vector512<ushort>.Count); 119if (Unsafe.AreSame(ref searchSpace, ref Unsafe.Add(ref lastSearchSpace, Vector512<ushort>.Count))) 304private static Vector512<byte> GetComparisonResult(ref char searchSpace, nuint ch2ByteOffset, nuint ch3ByteOffset, Vector512<ushort> ch1, Vector512<ushort> ch2, Vector512<ushort> ch3) 310Vector512<ushort> cmpCh1 = Vector512.Equals(ch1, Vector512.LoadUnsafe(ref searchSpace)); 311Vector512<ushort> cmpCh2 = Vector512.Equals(ch2, Vector512.LoadUnsafe(ref Unsafe.As<char, byte>(ref searchSpace), ch2ByteOffset).AsUInt16()); 312Vector512<ushort> cmpCh3 = Vector512.Equals(ch3, Vector512.LoadUnsafe(ref Unsafe.As<char, byte>(ref searchSpace), ch3ByteOffset).AsUInt16()); 317Vector512<ushort> caseConversion = Vector512.Create(CaseConversionMask); 319Vector512<ushort> cmpCh1 = Vector512.Equals(ch1, Vector512.LoadUnsafe(ref searchSpace) & caseConversion); 320Vector512<ushort> cmpCh2 = Vector512.Equals(ch2, Vector512.LoadUnsafe(ref Unsafe.As<char, byte>(ref searchSpace), ch2ByteOffset).AsUInt16() & caseConversion); 321Vector512<ushort> cmpCh3 = Vector512.Equals(ch3, Vector512.LoadUnsafe(ref Unsafe.As<char, byte>(ref searchSpace), ch3ByteOffset).AsUInt16() & caseConversion);
src\libraries\System.Private.CoreLib\src\System\SpanHelpers.Byte.cs (38)
66if (Vector512.IsHardwareAccelerated && searchSpaceMinusValueTailLength - Vector512<byte>.Count >= 0) 75Vector512<byte> ch1 = Vector512.Create(value); 76Vector512<byte> ch2 = Vector512.Create(ch2Val); 79searchSpaceMinusValueTailLength - (nint)Vector512<byte>.Count; 85Debug.Assert(offset + ch1ch2Distance + Vector512<byte>.Count <= searchSpaceLength); 87Vector512<byte> cmpCh2 = Vector512.Equals(ch2, Vector512.LoadUnsafe(ref searchSpace, (nuint)(offset + ch1ch2Distance))); 88Vector512<byte> cmpCh1 = Vector512.Equals(ch1, Vector512.LoadUnsafe(ref searchSpace, (nuint)offset)); 89Vector512<byte> cmpAnd = (cmpCh1 & cmpCh2).AsByte(); 92if (cmpAnd != Vector512<byte>.Zero) 98offset += Vector512<byte>.Count; 299if (Vector512.IsHardwareAccelerated && searchSpaceMinusValueTailLength >= Vector512<byte>.Count) 301offset = searchSpaceMinusValueTailLength - Vector512<byte>.Count; 310Vector512<byte> ch1 = Vector512.Create(value); 311Vector512<byte> ch2 = Vector512.Create(ch2Val); 314Vector512<byte> cmpCh1 = Vector512.Equals(ch1, Vector512.LoadUnsafe(ref searchSpace, (nuint)offset)); 315Vector512<byte> cmpCh2 = Vector512.Equals(ch2, Vector512.LoadUnsafe(ref searchSpace, (nuint)(offset + ch1ch2Distance))); 316Vector512<byte> cmpAnd = (cmpCh1 & cmpCh2).AsByte(); 319if (cmpAnd != Vector512<byte>.Zero) 338offset -= Vector512<byte>.Count; 339if (offset == -Vector512<byte>.Count) 546if ((((nuint)(uint)searchSpace + offset) & (nuint)(Vector512<byte>.Count - 1)) != 0) 572Vector512<byte> search = Vector512.Load(searchSpace + offset); 573ulong matches = Vector512.Equals(Vector512<byte>.Zero, search).ExtractMostSignificantBits(); 579offset += (nuint)Vector512<byte>.Count; 823if (Vector512.IsHardwareAccelerated && length >= (nuint)Vector512<byte>.Count) 826nuint lengthToExamine = length - (nuint)Vector512<byte>.Count; 838offset += (nuint)Vector512<byte>.Count; 978if (Vector512.IsHardwareAccelerated && (lengthToExamine >= (nuint)Vector512<byte>.Count)) 980lengthToExamine -= (nuint)Vector512<byte>.Count; 992offset += (nuint)Vector512<byte>.Count; 1290=> (nuint)(uint)((length - (int)offset) & ~(Vector512<byte>.Count - 1)); 1306if (Vector512.IsHardwareAccelerated && remainder >= Vector512<byte>.Count * 2) 1308nint lastOffset = remainder - Vector512<byte>.Count; 1312Vector512<byte> tempFirst = Vector512.LoadUnsafe(ref buf, (nuint)offset); 1313Vector512<byte> tempLast = Vector512.LoadUnsafe(ref buf, (nuint)lastOffset); 1338offset += Vector512<byte>.Count; 1339lastOffset -= Vector512<byte>.Count; 1342remainder = lastOffset + Vector512<byte>.Count - offset;
src\libraries\System.Private.CoreLib\src\System\SpanHelpers.Char.cs (36)
71if (Vector512.IsHardwareAccelerated && searchSpaceMinusValueTailLength - Vector512<ushort>.Count >= 0) 80Vector512<ushort> ch1 = Vector512.Create((ushort)valueHead); 81Vector512<ushort> ch2 = Vector512.Create(ch2Val); 84searchSpaceMinusValueTailLength - (nint)Vector512<ushort>.Count; 89Debug.Assert(offset + ch1ch2Distance + Vector512<ushort>.Count <= searchSpaceLength); 91Vector512<ushort> cmpCh2 = Vector512.Equals(ch2, Vector512.LoadUnsafe(ref searchSpace, (nuint)(offset + ch1ch2Distance))); 92Vector512<ushort> cmpCh1 = Vector512.Equals(ch1, Vector512.LoadUnsafe(ref searchSpace, (nuint)offset)); 93Vector512<byte> cmpAnd = (cmpCh1 & cmpCh2).AsByte(); 96if (cmpAnd != Vector512<byte>.Zero) 102offset += Vector512<ushort>.Count; 313if (Vector512.IsHardwareAccelerated && searchSpaceMinusValueTailLength >= Vector512<ushort>.Count) 315offset = searchSpaceMinusValueTailLength - Vector512<ushort>.Count; 324Vector512<ushort> ch1 = Vector512.Create((ushort)valueHead); 325Vector512<ushort> ch2 = Vector512.Create((ushort)ch2Val); 330Vector512<ushort> cmpCh1 = Vector512.Equals(ch1, Vector512.LoadUnsafe(ref searchSpace, (nuint)offset)); 331Vector512<ushort> cmpCh2 = Vector512.Equals(ch2, Vector512.LoadUnsafe(ref searchSpace, (nuint)(offset + ch1ch2Distance))); 332Vector512<byte> cmpAnd = (cmpCh1 & cmpCh2).AsByte(); 335if (cmpAnd != Vector512<byte>.Zero) 355offset -= Vector512<ushort>.Count; 356if (offset == -Vector512<ushort>.Count) 613if (((nint)(searchSpace + (nint)offset) & (nint)(Vector512<byte>.Count - 1)) != 0) 646Debug.Assert(lengthToExamine >= Vector512<ushort>.Count); 648Vector512<ushort> search = *(Vector512<ushort>*)(searchSpace + (nuint)offset); 654if (!Vector512.EqualsAny(search, Vector512<ushort>.Zero)) 657offset += Vector512<ushort>.Count; 658lengthToExamine -= Vector512<ushort>.Count; 667ulong matches = Vector512.Equals(search, Vector512<ushort>.Zero).ExtractMostSignificantBits(); 878=> (length - offset) & ~(Vector512<ushort>.Count - 1); 894if (Vector512.IsHardwareAccelerated && remainder >= Vector512<ushort>.Count * 2) 896nint lastOffset = remainder - Vector512<ushort>.Count; 902Vector512<ushort> tempFirst = Vector512.LoadUnsafe(ref first); 903Vector512<ushort> tempLast = Vector512.LoadUnsafe(ref last); 922offset += Vector512<ushort>.Count; 923lastOffset -= Vector512<ushort>.Count; 926remainder = (lastOffset + Vector512<ushort>.Count - offset);
src\libraries\System.Private.CoreLib\src\System\SpanHelpers.cs (14)
95if (Vector512.IsHardwareAccelerated && remainder >= Vector512<int>.Count * 2) 97nint lastOffset = remainder - Vector512<int>.Count; 101Vector512<int> tempFirst = Vector512.LoadUnsafe(ref buf, (nuint)offset); 102Vector512<int> tempLast = Vector512.LoadUnsafe(ref buf, (nuint)lastOffset); 119offset += Vector512<int>.Count; 120lastOffset -= Vector512<int>.Count; 123remainder = lastOffset + Vector512<int>.Count - offset; 200if (Vector512.IsHardwareAccelerated && remainder >= Vector512<long>.Count * 2) 202nint lastOffset = remainder - Vector512<long>.Count; 206Vector512<long> tempFirst = Vector512.LoadUnsafe(ref buf, (nuint)offset); 207Vector512<long> tempLast = Vector512.LoadUnsafe(ref buf, (nuint)lastOffset); 224offset += Vector512<long>.Count; 225lastOffset -= Vector512<long>.Count; 228remainder = lastOffset + Vector512<long>.Count - offset;
src\libraries\System.Private.CoreLib\src\System\SpanHelpers.Packed.cs (104)
149if (Avx512BW.IsSupported && Vector512.IsHardwareAccelerated && length > Vector512<short>.Count) 152Vector512<byte> packedValue = Vector512.Create((byte)value); 154if (length > 2 * Vector512<short>.Count) 160ref short twoVectorsAwayFromEnd = ref Unsafe.Add(ref searchSpace, length - (2 * Vector512<short>.Count)); 164Vector512<short> source0 = Vector512.LoadUnsafe(ref currentSearchSpace); 165Vector512<short> source1 = Vector512.LoadUnsafe(ref currentSearchSpace, (nuint)Vector512<short>.Count); 166Vector512<byte> packedSource = PackSources(source0, source1); 173currentSearchSpace = ref Unsafe.Add(ref currentSearchSpace, 2 * Vector512<short>.Count); 181ref short oneVectorAwayFromEnd = ref Unsafe.Add(ref searchSpace, length - Vector512<short>.Count); 187Vector512<short> source0 = Vector512.LoadUnsafe(ref firstVector); 188Vector512<short> source1 = Vector512.LoadUnsafe(ref oneVectorAwayFromEnd); 189Vector512<byte> packedSource = PackSources(source0, source1); 348if (Avx512BW.IsSupported && Vector512.IsHardwareAccelerated && length > Vector512<short>.Count) 351Vector512<byte> packedValue = Vector512.Create((byte)value); 353if (length > 2 * Vector512<short>.Count) 359ref short twoVectorsAwayFromEnd = ref Unsafe.Add(ref searchSpace, length - (2 * Vector512<short>.Count)); 363Vector512<short> source0 = Vector512.LoadUnsafe(ref currentSearchSpace); 364Vector512<short> source1 = Vector512.LoadUnsafe(ref currentSearchSpace, (nuint)Vector512<short>.Count); 365Vector512<byte> packedSource = TTransform.TransformInput(PackSources(source0, source1)); 372currentSearchSpace = ref Unsafe.Add(ref currentSearchSpace, 2 * Vector512<short>.Count); 380ref short oneVectorAwayFromEnd = ref Unsafe.Add(ref searchSpace, length - Vector512<short>.Count); 386Vector512<short> source0 = Vector512.LoadUnsafe(ref firstVector); 387Vector512<short> source1 = Vector512.LoadUnsafe(ref oneVectorAwayFromEnd); 388Vector512<byte> packedSource = TTransform.TransformInput(PackSources(source0, source1)); 557if (Avx512BW.IsSupported && Vector512.IsHardwareAccelerated && length > Vector512<short>.Count) 560Vector512<byte> packedValue0 = Vector512.Create((byte)value0); 561Vector512<byte> packedValue1 = Vector512.Create((byte)value1); 563if (length > 2 * Vector512<short>.Count) 569ref short twoVectorsAwayFromEnd = ref Unsafe.Add(ref searchSpace, length - (2 * Vector512<short>.Count)); 573Vector512<short> source0 = Vector512.LoadUnsafe(ref currentSearchSpace); 574Vector512<short> source1 = Vector512.LoadUnsafe(ref currentSearchSpace, (nuint)Vector512<short>.Count); 575Vector512<byte> packedSource = TTransform.TransformInput(PackSources(source0, source1)); 576Vector512<byte> result = NegateIfNeeded<TNegator>(Vector512.Equals(packedValue0, packedSource) | Vector512.Equals(packedValue1, packedSource)); 578if (result != Vector512<byte>.Zero) 583currentSearchSpace = ref Unsafe.Add(ref currentSearchSpace, 2 * Vector512<short>.Count); 591ref short oneVectorAwayFromEnd = ref Unsafe.Add(ref searchSpace, length - Vector512<short>.Count); 597Vector512<short> source0 = Vector512.LoadUnsafe(ref firstVector); 598Vector512<short> source1 = Vector512.LoadUnsafe(ref oneVectorAwayFromEnd); 599Vector512<byte> packedSource = TTransform.TransformInput(PackSources(source0, source1)); 600Vector512<byte> result = NegateIfNeeded<TNegator>(Vector512.Equals(packedValue0, packedSource) | Vector512.Equals(packedValue1, packedSource)); 602if (result != Vector512<byte>.Zero) 772if (Avx512BW.IsSupported && Vector512.IsHardwareAccelerated && length > Vector512<short>.Count) 775Vector512<byte> packedValue0 = Vector512.Create((byte)value0); 776Vector512<byte> packedValue1 = Vector512.Create((byte)value1); 777Vector512<byte> packedValue2 = Vector512.Create((byte)value2); 779if (length > 2 * Vector512<short>.Count) 785ref short twoVectorsAwayFromEnd = ref Unsafe.Add(ref searchSpace, length - (2 * Vector512<short>.Count)); 789Vector512<short> source0 = Vector512.LoadUnsafe(ref currentSearchSpace); 790Vector512<short> source1 = Vector512.LoadUnsafe(ref currentSearchSpace, (nuint)Vector512<short>.Count); 791Vector512<byte> packedSource = PackSources(source0, source1); 792Vector512<byte> result = NegateIfNeeded<TNegator>(Vector512.Equals(packedValue0, packedSource) | Vector512.Equals(packedValue1, packedSource) | Vector512.Equals(packedValue2, packedSource)); 794if (result != Vector512<byte>.Zero) 799currentSearchSpace = ref Unsafe.Add(ref currentSearchSpace, 2 * Vector512<short>.Count); 807ref short oneVectorAwayFromEnd = ref Unsafe.Add(ref searchSpace, length - Vector512<short>.Count); 813Vector512<short> source0 = Vector512.LoadUnsafe(ref firstVector); 814Vector512<short> source1 = Vector512.LoadUnsafe(ref oneVectorAwayFromEnd); 815Vector512<byte> packedSource = PackSources(source0, source1); 816Vector512<byte> result = NegateIfNeeded<TNegator>(Vector512.Equals(packedValue0, packedSource) | Vector512.Equals(packedValue1, packedSource) | Vector512.Equals(packedValue2, packedSource)); 818if (result != Vector512<byte>.Zero) 972if (Avx512BW.IsSupported && Vector512.IsHardwareAccelerated && length > Vector512<short>.Count) 975Vector512<byte> lowVector = Vector512.Create((byte)lowInclusive); 976Vector512<byte> rangeVector = Vector512.Create((byte)rangeInclusive); 978if (length > 2 * Vector512<short>.Count) 984ref short twoVectorsAwayFromEnd = ref Unsafe.Add(ref searchSpace, length - (2 * Vector512<short>.Count)); 988Vector512<short> source0 = Vector512.LoadUnsafe(ref currentSearchSpace); 989Vector512<short> source1 = Vector512.LoadUnsafe(ref currentSearchSpace, (nuint)Vector512<short>.Count); 990Vector512<byte> packedSource = PackSources(source0, source1) - lowVector; 997currentSearchSpace = ref Unsafe.Add(ref currentSearchSpace, 2 * Vector512<short>.Count); 1005ref short oneVectorAwayFromEnd = ref Unsafe.Add(ref searchSpace, length - Vector512<short>.Count); 1011Vector512<short> source0 = Vector512.LoadUnsafe(ref firstVector); 1012Vector512<short> source1 = Vector512.LoadUnsafe(ref oneVectorAwayFromEnd); 1013Vector512<byte> packedSource = PackSources(source0, source1) - lowVector; 1143private static Vector512<byte> PackSources(Vector512<short> source0, Vector512<short> source1) 1193private static Vector512<byte> NegateIfNeeded<TNegator>(Vector512<byte> result) 1198private static bool HasMatch<TNegator>(Vector512<byte> left, Vector512<byte> right) 1206private static Vector512<byte> GetMatchMask<TNegator>(Vector512<byte> left, Vector512<byte> right) 1214private static bool HasMatchInRange<TNegator>(Vector512<byte> left, Vector512<byte> right) 1222private static Vector512<byte> GetMatchInRangeMask<TNegator>(Vector512<byte> left, Vector512<byte> right) 1248private static int ComputeFirstIndex(ref short searchSpace, ref short current, Vector512<byte> equals) 1286private static int ComputeFirstIndexOverlapped(ref short searchSpace, ref short current0, ref short current1, Vector512<byte> equals) 1290if (offsetInVector >= Vector512<short>.Count) 1294offsetInVector -= Vector512<short>.Count; 1313internal static Vector512<byte> FixUpPackedVector512Result(Vector512<byte> result) 1326static abstract Vector512<byte> TransformInput(Vector512<byte> input); 1334public static Vector512<byte> TransformInput(Vector512<byte> input) => input; 1342public static Vector512<byte> TransformInput(Vector512<byte> input) => input | Vector512.Create((byte)0x20);
src\libraries\System.Private.CoreLib\src\System\SpanHelpers.T.cs (99)
99vector = Unsafe.As<T, Vector512<byte>>(ref tmp).AsVector(); 1387else if (Vector512.IsHardwareAccelerated && length >= Vector512<T>.Count) 1389Vector512<T> current, values = Vector512.Create(value); 1391ref T oneVectorAwayFromEnd = ref Unsafe.Add(ref searchSpace, (uint)(length - Vector512<T>.Count)); 1403currentSearchSpace = ref Unsafe.Add(ref currentSearchSpace, Vector512<T>.Count); 1408if ((uint)length % Vector512<T>.Count != 0) 1578else if (Vector512.IsHardwareAccelerated && length >= Vector512<TValue>.Count) 1580Vector512<TValue> current, values = Vector512.Create(value); 1582ref TValue oneVectorAwayFromEnd = ref Unsafe.Add(ref searchSpace, length - Vector512<TValue>.Count); 1594currentSearchSpace = ref Unsafe.Add(ref currentSearchSpace, Vector512<TValue>.Count); 1599if ((uint)length % Vector512<TValue>.Count != 0) 1803else if (Vector512.IsHardwareAccelerated && length >= Vector512<TValue>.Count) 1805Vector512<TValue> equals, current, values0 = Vector512.Create(value0), values1 = Vector512.Create(value1); 1807ref TValue oneVectorAwayFromEnd = ref Unsafe.Add(ref searchSpace, length - Vector512<TValue>.Count); 1814if (equals == Vector512<TValue>.Zero) 1816currentSearchSpace = ref Unsafe.Add(ref currentSearchSpace, Vector512<TValue>.Count); 1825if ((uint)length % Vector512<TValue>.Count != 0) 1829if (equals != Vector512<TValue>.Zero) 2010else if (Vector512.IsHardwareAccelerated && length >= Vector512<TValue>.Count) 2012Vector512<TValue> equals, current, values0 = Vector512.Create(value0), values1 = Vector512.Create(value1), values2 = Vector512.Create(value2); 2014ref TValue oneVectorAwayFromEnd = ref Unsafe.Add(ref searchSpace, length - Vector512<TValue>.Count); 2021if (equals == Vector512<TValue>.Zero) 2023currentSearchSpace = ref Unsafe.Add(ref currentSearchSpace, Vector512<TValue>.Count); 2032if ((uint)length % Vector512<TValue>.Count != 0) 2036if (equals != Vector512<TValue>.Zero) 2166else if (Vector512.IsHardwareAccelerated && length >= Vector512<TValue>.Count) 2168Vector512<TValue> equals, current, values0 = Vector512.Create(value0), values1 = Vector512.Create(value1), values2 = Vector512.Create(value2), values3 = Vector512.Create(value3); 2170ref TValue oneVectorAwayFromEnd = ref Unsafe.Add(ref searchSpace, length - Vector512<TValue>.Count); 2178if (equals == Vector512<TValue>.Zero) 2180currentSearchSpace = ref Unsafe.Add(ref currentSearchSpace, Vector512<TValue>.Count); 2189if ((uint)length % Vector512<TValue>.Count != 0) 2194if (equals != Vector512<TValue>.Zero) 2329else if (Vector512.IsHardwareAccelerated && length >= Vector512<TValue>.Count) 2331Vector512<TValue> equals, current, values0 = Vector512.Create(value0), values1 = Vector512.Create(value1), 2334ref TValue oneVectorAwayFromEnd = ref Unsafe.Add(ref searchSpace, (uint)(length - Vector512<TValue>.Count)); 2342if (equals == Vector512<TValue>.Zero) 2344currentSearchSpace = ref Unsafe.Add(ref currentSearchSpace, Vector512<TValue>.Count); 2353if ((uint)length % Vector512<TValue>.Count != 0) 2358if (equals != Vector512<TValue>.Zero) 2511else if (Vector512.IsHardwareAccelerated && length >= Vector512<TValue>.Count) 2513return SimdImpl<Vector512<TValue>>(ref searchSpace, value, length); 2650else if (Vector512.IsHardwareAccelerated && length >= Vector512<TValue>.Count) 2652Vector512<TValue> equals, current, values0 = Vector512.Create(value0), values1 = Vector512.Create(value1); 2653nint offset = length - Vector512<TValue>.Count; 2661if (equals == Vector512<TValue>.Zero) 2663offset -= Vector512<TValue>.Count; 2675if (equals != Vector512<TValue>.Zero) 2835else if (Vector512.IsHardwareAccelerated && length >= Vector512<TValue>.Count) 2837Vector512<TValue> equals, current, values0 = Vector512.Create(value0), values1 = Vector512.Create(value1), values2 = Vector512.Create(value2); 2838nint offset = length - Vector512<TValue>.Count; 2846if (equals == Vector512<TValue>.Zero) 2848offset -= Vector512<TValue>.Count; 2860if (equals != Vector512<TValue>.Zero) 2985else if (Vector512.IsHardwareAccelerated && length >= Vector512<TValue>.Count) 2987Vector512<TValue> equals, current, values0 = Vector512.Create(value0), values1 = Vector512.Create(value1), values2 = Vector512.Create(value2), values3 = Vector512.Create(value3); 2988nint offset = length - Vector512<TValue>.Count; 2996if (equals == Vector512<TValue>.Zero) 2998offset -= Vector512<TValue>.Count; 3010if (equals != Vector512<TValue>.Zero) 3145else if (!Vector512.IsHardwareAccelerated || length < (uint)Vector512<T>.Count) 3170Debug.Assert(Vector512.IsHardwareAccelerated && Vector512<T>.IsSupported, "Vector512 is not HW-accelerated or not supported"); 3172nuint lastVectorIndex = length - (uint)Vector512<T>.Count; 3173Vector512<T> oldValues = Vector512.Create(oldValue); 3174Vector512<T> newValues = Vector512.Create(newValue); 3175Vector512<T> original, mask, result; 3184idx += (uint)Vector512<T>.Count; 3243else if (Vector512.IsHardwareAccelerated && length >= Vector512<TValue>.Count) 3245Vector512<TValue> equals, current, values0 = Vector512.Create(value0), values1 = Vector512.Create(value1), 3247nint offset = length - Vector512<TValue>.Count; 3255if (equals == Vector512<TValue>.Zero) 3257offset -= Vector512<TValue>.Count; 3270if (equals != Vector512<TValue>.Zero) 3361private static unsafe int ComputeFirstIndex<T>(ref T searchSpace, ref T current, Vector512<T> equals) where T : struct 3385private static int ComputeLastIndex<T>(nint offset, Vector512<T> equals) where T : struct 3397static abstract Vector512<T> NegateIfNeeded(Vector512<T> equals); 3415public static Vector512<T> NegateIfNeeded(Vector512<T> equals) => equals; 3439public static Vector512<T> NegateIfNeeded(Vector512<T> equals) => ~equals; 3561else if (!Vector512.IsHardwareAccelerated || length < (uint)Vector512<T>.Count) 3592Vector512<T> lowVector = Vector512.Create(lowInclusive); 3593Vector512<T> rangeVector = Vector512.Create(highInclusive - lowInclusive); 3594Vector512<T> inRangeVector; 3597ref T oneVectorAwayFromEnd = ref Unsafe.Add(ref searchSpace, (uint)(length - Vector512<T>.Count)); 3603if (inRangeVector != Vector512<T>.Zero) 3614if (inRangeVector != Vector512<T>.Zero) 3706else if (!Vector512.IsHardwareAccelerated || length < Vector512<T>.Count) 3735Vector512<T> lowVector = Vector512.Create(lowInclusive); 3736Vector512<T> rangeVector = Vector512.Create(highInclusive - lowInclusive); 3737Vector512<T> inRangeVector; 3739nint offset = length - Vector512<T>.Count; 3745if (inRangeVector != Vector512<T>.Zero) 3750offset -= Vector512<T>.Count; 3755if (inRangeVector != Vector512<T>.Zero) 3804if (Vector512.IsHardwareAccelerated && length >= Vector512<T>.Count) 3806Vector512<T> targetVector = Vector512.Create(value); 3807ref T oneVectorAwayFromEnd = ref Unsafe.Subtract(ref end, Vector512<T>.Count); 3811current = ref Unsafe.Add(ref current, Vector512<T>.Count);
src\libraries\System.Private.CoreLib\src\System\String.Manipulation.cs (14)
1300if (Vector512.IsHardwareAccelerated && length >= (uint)Vector512<ushort>.Count) 1302nuint adjust = (length - remainingLength) & ((uint)Vector512<ushort>.Count - 1); 2043if (Vector512.IsHardwareAccelerated && lengthToExamine >= (uint)Vector512<ushort>.Count*2) 2045Vector512<ushort> v1 = Vector512.Create((ushort)c); 2046Vector512<ushort> v2 = Vector512.Create((ushort)c2); 2047Vector512<ushort> v3 = Vector512.Create((ushort)c3); 2051Vector512<ushort> vector = Vector512.LoadUnsafe(ref source, offset); 2052Vector512<ushort> v1Eq = Vector512.Equals(vector, v1); 2053Vector512<ushort> v2Eq = Vector512.Equals(vector, v2); 2054Vector512<ushort> v3Eq = Vector512.Equals(vector, v3); 2055Vector512<byte> cmp = (v1Eq | v2Eq | v3Eq).AsByte(); 2057if (cmp != Vector512<byte>.Zero) 2069offset += (nuint)Vector512<ushort>.Count; 2070} while (offset <= lengthToExamine - (nuint)Vector512<ushort>.Count);
src\libraries\System.Private.CoreLib\src\System\Text\Ascii.Equality.cs (38)
65else if (Vector512.IsHardwareAccelerated && length >= (uint)Vector512<TLeft>.Count) 71Debug.Assert(Vector512<TLeft>.Count == Vector512<TRight>.Count 72|| (typeof(TLoader) == typeof(WideningLoader) && Vector512<TLeft>.Count == Vector512<TRight>.Count * 2)); 73ref TRight oneVectorAwayFromRightEnd = ref Unsafe.Add(ref currentRightSearchSpace, length - (uint)Vector512<TLeft>.Count); 83currentRightSearchSpace = ref Unsafe.Add(ref currentRightSearchSpace, Vector512<TLeft>.Count); 84currentLeftSearchSpace = ref Unsafe.Add(ref currentLeftSearchSpace, Vector512<TLeft>.Count); 89if (length % (uint)Vector512<TLeft>.Count != 0) 91ref TLeft oneVectorAwayFromLeftEnd = ref Unsafe.Add(ref left, length - (uint)Vector512<TLeft>.Count); 235else if (Vector512.IsHardwareAccelerated && length >= (uint)Vector512<TRight>.Count) 240ref TRight oneVectorAwayFromRightEnd = ref Unsafe.Add(ref currentRightSearchSpace, length - (uint)Vector512<TRight>.Count); 242Vector512<TRight> leftValues; 243Vector512<TRight> rightValues; 245Vector512<TRight> loweringMask = Vector512.Create(TRight.CreateTruncating(0x20)); 246Vector512<TRight> vecA = Vector512.Create(TRight.CreateTruncating('a')); 247Vector512<TRight> vecZMinusA = Vector512.Create(TRight.CreateTruncating(('z' - 'a'))); 259Vector512<TRight> notEquals = ~Vector512.Equals(leftValues, rightValues); 261if (notEquals != Vector512<TRight>.Zero) 274currentRightSearchSpace = ref Unsafe.Add(ref currentRightSearchSpace, (uint)Vector512<TRight>.Count); 280if (length % (uint)Vector512<TRight>.Count != 0) 290Vector512<TRight> notEquals = ~Vector512.Equals(leftValues, rightValues); 292if (notEquals != Vector512<TRight>.Zero) 464static abstract Vector512<TRight> Load512(ref TLeft ptr); 473public static nuint Count512 => (uint)Vector512<T>.Count; 476public static Vector512<T> Load512(ref T ptr) => Vector512.LoadUnsafe(ref ptr); 496Vector512<T> leftValues = Vector512.LoadUnsafe(ref left); 497Vector512<T> rightValues = Vector512.LoadUnsafe(ref right); 546public static Vector512<ushort> Load512(ref byte ptr) 581Debug.Assert(Vector512<byte>.Count == Vector512<ushort>.Count * 2); 583Vector512<byte> leftNotWidened = Vector512.LoadUnsafe(ref utf8); 589(Vector512<ushort> leftLower, Vector512<ushort> leftUpper) = Vector512.Widen(leftNotWidened); 590Vector512<ushort> right = Vector512.LoadUnsafe(ref utf16); 591Vector512<ushort> rightNext = Vector512.LoadUnsafe(ref utf16, (uint)Vector512<ushort>.Count); 594if (((leftLower ^ right) | (leftUpper ^ rightNext)) != Vector512<ushort>.Zero)
src\libraries\System.Private.CoreLib\src\System\Text\Ascii.Utility.cs (22)
143if (Vector512.IsHardwareAccelerated && bufferLength >= 2 * (uint)Vector512<byte>.Count) 763if (Vector512.IsHardwareAccelerated && bufferLength >= 2 * (uint)Vector512<ushort>.Count) 1373if (Vector512.IsHardwareAccelerated && elementCount >= 2 * (uint)Vector512<byte>.Count) 1589internal static bool VectorContainsNonAsciiChar(Vector512<ushort> utf16Vector) 1592Vector512<ushort> zeroIsAscii = utf16Vector & Vector512.Create(asciiMask); 1594return zeroIsAscii != Vector512<ushort>.Zero; 1650private static bool AllCharsInVectorAreAscii<T>(Vector512<T> vector) 1661return (vector.AsUInt16() & Vector512.Create((ushort)0xFF80)) == Vector512<ushort>.Zero; 1699internal static Vector512<byte> ExtractAsciiVector(Vector512<ushort> vectorFirst, Vector512<ushort> vectorSecond) 1962Vector512<ushort> utf16VectorFirst = Vector512.LoadUnsafe(ref utf16Buffer); 1973Vector512<byte> asciiVector = ExtractAsciiVector(utf16VectorFirst, utf16VectorFirst); 2019Vector512<ushort> utf16VectorSecond = Vector512.LoadUnsafe(ref utf16Buffer, currentOffsetInElements + Vector512.Size / sizeof(short)); 2020Vector512<ushort> combinedVector = utf16VectorFirst | utf16VectorSecond; 2075if (Vector512.IsHardwareAccelerated && (elementCount - currentOffset) >= (uint)Vector512<byte>.Count) 2077WidenAsciiToUtf1_Vector<Vector512<byte>, Vector512<ushort>>(pAsciiBuffer, pUtf16Buffer, ref currentOffset, elementCount); 2254else if (typeof(TVectorByte) == typeof(Vector512<byte>)) 2256(Vector512<ushort> Lower512, Vector512<ushort> Upper512) = Vector512.Widen((Vector512<byte>)(object)vector);
src\libraries\System.Private.CoreLib\src\System\ThrowHelper.cs (1)
841if (!Vector512<T>.IsSupported)
System.Runtime.Intrinsics (1)
artifacts\obj\System.Runtime.Intrinsics\Debug\net10.0\System.Runtime.Intrinsics.Forwards.cs (1)
19[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Runtime.Intrinsics.Vector512<>))]
System.Runtime.Numerics (3)
System\Numerics\NumericsHelpers.cs (3)
129while (Vector512.IsHardwareAccelerated && d.Length - offset >= Vector512<uint>.Count) 131Vector512<uint> complement = ~Vector512.LoadUnsafe(ref start, (nuint)offset); 133offset += Vector512<uint>.Count;