[Mono-dev] Mono.Simd: Accelerated methods analysis
Bart Masschelein
masschel at gmail.com
Wed Dec 10 15:51:58 EST 2008
> The following code is wrong "mi.GetParameters() [i].GetType()", it
> should be "mi.GetParameters() [i].ParameterType" otherwise you'll be
> querying for ParameterInfo class instead of what you want.
Thanks, that was what I was looking for, updated program below.
> The other one is minor, in that some functions might not report as
> accelerated because you're running it on an old machine without
> support.
That is exactly what this program is supposed to do: see which
functions are accelerated on a certain machine, and which not, to know
if I can expect an increase or not, or rather choose for another
option, without having to investigate this for each method seperately.
I just have to run this program ones, and keep the list at hand. As an
example, the output on my MacBookPro is added to the end.
Sorry for the lengthy mail ;-).
Bart
// Main.cs created with MonoDevelop
// User: masschel at 15:51 11/21/2008
//
// To change standard headers go to Edit->Preferences->Coding-
>Standard Headers
//
using System;
using Mono.Simd;
using System.Reflection;
namespace AcceleratedMethods
{
class MainClass
{
public static void Main(string[] args)
{
// Change to your location of Mono.Simd
string monoSimdLocation = @"/Users/masschel/local/mono/
lib/mono/2.0/Mono.Simd.dll";
Assembly assembly = Assembly.LoadFile(monoSimdLocation);
foreach(Type type in assembly.GetTypes())
{
string typeName = type.Name;
if (typeName.Length>=6 && typeName.Substring(0,6) ==
"Vector")
{
Console.WriteLine("Type {0}", type.Name);
foreach(MethodInfo mi in type.GetMethods())
{
string methodName = mi.Name;
bool ctu = methodName != "Equals"
&& methodName != "GetHashCode"
&& methodName != "ToString"
&& methodName != "GetType"
/*&& (methodName.Length>=4
&& methodName.Substring(0, 4) !=
"get_"
&& methodName.Substring(0, 4) !=
"set_")*/;
if (ctu)
{
Type[] types = new
Type[mi.GetParameters().Length];
Console.Write(" Method {0}(", mi.Name);
for(int i = 0; i <
mi.GetParameters().Length; i++)
{
types[i] = mi.GetParameters()
[i].ParameterType;
if (i+1<mi.GetParameters().Length)
Console.Write("{0}, ", types[i].Name);
else Console.Write("{0}",
types[i].Name);
}
Console.WriteLine("):{0} accelerated:
{1}", mi.ReturnParameter, SimdRuntime.IsMethodAccelerated(type,
mi.Name, types));
}
}
}
}
}
}
}
Type Vector2d
Method AndNot(Vector2d, Vector2d):Vector2d accelerated: True
Method HorizontalAdd(Vector2d, Vector2d):Vector2d accelerated: True
Method AddSub(Vector2d, Vector2d):Vector2d accelerated: True
Method HorizontalSub(Vector2d, Vector2d):Vector2d accelerated: True
Method InterleaveHigh(Vector2d, Vector2d):Vector2d accelerated: True
Method InterleaveLow(Vector2d, Vector2d):Vector2d accelerated: True
Method CompareEqual(Vector2d, Vector2d):Vector2d accelerated: True
Method CompareLessThan(Vector2d, Vector2d):Vector2d accelerated:
True
Method CompareLessEqual(Vector2d, Vector2d):Vector2d accelerated:
True
Method CompareUnordered(Vector2d, Vector2d):Vector2d accelerated:
True
Method CompareNotEqual(Vector2d, Vector2d):Vector2d accelerated:
True
Method CompareNotLessThan(Vector2d, Vector2d):Vector2d
accelerated: True
Method CompareNotLessEqual(Vector2d, Vector2d):Vector2d
accelerated: True
Method CompareOrdered(Vector2d, Vector2d):Vector2d accelerated: True
Method Duplicate(Vector2d):Vector2d accelerated: True
Method LoadAligned(Vector2d&):Vector2d accelerated: True
Method StoreAligned(Vector2d&, Vector2d):Void accelerated: True
Method LoadAligned(Vector2d*):Vector2d accelerated: True
Method StoreAligned(Vector2d*, Vector2d):Void accelerated: True
Method PrefetchTemporalAllCacheLevels(Vector2d&):Void accelerated:
True
Method PrefetchTemporal1stLevelCache(Vector2d&):Void accelerated:
True
Method PrefetchTemporal2ndLevelCache(Vector2d&):Void accelerated:
True
Method PrefetchNonTemporal(Vector2d&):Void accelerated: True
Method PrefetchTemporalAllCacheLevels(Vector2d*):Void accelerated:
True
Method PrefetchTemporal1stLevelCache(Vector2d*):Void accelerated:
True
Method PrefetchTemporal2ndLevelCache(Vector2d*):Void accelerated:
True
Method PrefetchNonTemporal(Vector2d*):Void accelerated: True
Method op_BitwiseAnd(Vector2d, Vector2d):Vector2d accelerated: True
Method op_BitwiseOr(Vector2d, Vector2d):Vector2d accelerated: True
Method op_ExclusiveOr(Vector2d, Vector2d):Vector2d accelerated: True
Method op_Addition(Vector2d, Vector2d):Vector2d accelerated: True
Method op_Subtraction(Vector2d, Vector2d):Vector2d accelerated: True
Method op_Multiply(Vector2d, Vector2d):Vector2d accelerated: True
Method op_Division(Vector2d, Vector2d):Vector2d accelerated: True
Method op_Explicit(Vector2d):Vector4f accelerated: True
Method op_Explicit(Vector2d):Vector2l accelerated: True
Method op_Explicit(Vector2d):Vector2ul accelerated: True
Method op_Explicit(Vector2d):Vector4i accelerated: True
Method op_Explicit(Vector2d):Vector4ui accelerated: True
Method op_Explicit(Vector2d):Vector8s accelerated: True
Method op_Explicit(Vector2d):Vector8us accelerated: True
Method op_Explicit(Vector2d):Vector16sb accelerated: True
Method op_Explicit(Vector2d):Vector16b accelerated: True
Type Vector2ul
Method UnpackLow(Vector2ul, Vector2ul):Vector2ul accelerated: True
Method UnpackHigh(Vector2ul, Vector2ul):Vector2ul accelerated: True
Method ExtractByteMask(Vector2ul):Int32 accelerated: True
Method CompareEqual(Vector2ul, Vector2ul):Vector2ul accelerated:
False
Method LoadAligned(Vector2ul&):Vector2ul accelerated: True
Method StoreAligned(Vector2ul&, Vector2ul):Void accelerated: True
Method LoadAligned(Vector2ul*):Vector2ul accelerated: True
Method StoreAligned(Vector2ul*, Vector2ul):Void accelerated: True
Method PrefetchTemporalAllCacheLevels(Vector2ul&):Void
accelerated: True
Method PrefetchTemporal1stLevelCache(Vector2ul&):Void accelerated:
True
Method PrefetchTemporal2ndLevelCache(Vector2ul&):Void accelerated:
True
Method PrefetchNonTemporal(Vector2ul&):Void accelerated: True
Method PrefetchTemporalAllCacheLevels(Vector2ul*):Void
accelerated: True
Method PrefetchTemporal1stLevelCache(Vector2ul*):Void accelerated:
True
Method PrefetchTemporal2ndLevelCache(Vector2ul*):Void accelerated:
True
Method PrefetchNonTemporal(Vector2ul*):Void accelerated: True
Method op_Addition(Vector2ul, Vector2ul):Vector2ul accelerated: True
Method op_Subtraction(Vector2ul, Vector2ul):Vector2ul accelerated:
True
Method op_LeftShift(Vector2ul, Int32):Vector2ul accelerated: True
Method op_RightShift(Vector2ul, Int32):Vector2ul accelerated: True
Method op_BitwiseAnd(Vector2ul, Vector2ul):Vector2ul accelerated:
True
Method op_BitwiseOr(Vector2ul, Vector2ul):Vector2ul accelerated:
True
Method op_ExclusiveOr(Vector2ul, Vector2ul):Vector2ul accelerated:
True
Method op_Explicit(Vector2ul):Vector2d accelerated: True
Method op_Explicit(Vector2ul):Vector4f accelerated: True
Method op_Explicit(Vector2ul):Vector2l accelerated: True
Method op_Explicit(Vector2ul):Vector4i accelerated: True
Method op_Explicit(Vector2ul):Vector4ui accelerated: True
Method op_Explicit(Vector2ul):Vector8s accelerated: True
Method op_Explicit(Vector2ul):Vector8us accelerated: True
Method op_Explicit(Vector2ul):Vector16sb accelerated: True
Method op_Explicit(Vector2ul):Vector16b accelerated: True
Type Vector2l
Method UnpackLow(Vector2l, Vector2l):Vector2l accelerated: True
Method UnpackHigh(Vector2l, Vector2l):Vector2l accelerated: True
Method LogicalRightShift(Vector2l, Int32):Vector2l accelerated: True
Method ExtractByteMask(Vector2l):Int64 accelerated: True
Method CompareEqual(Vector2l, Vector2l):Vector2l accelerated: False
Method CompareGreaterThan(Vector2l, Vector2l):Vector2l
accelerated: False
Method LoadAligned(Vector2l&):Vector2l accelerated: True
Method StoreAligned(Vector2l&, Vector2l):Void accelerated: True
Method LoadAligned(Vector2l*):Vector2l accelerated: True
Method StoreAligned(Vector2l*, Vector2l):Void accelerated: True
Method PrefetchTemporalAllCacheLevels(Vector2l&):Void accelerated:
True
Method PrefetchTemporal1stLevelCache(Vector2l&):Void accelerated:
True
Method PrefetchTemporal2ndLevelCache(Vector2l&):Void accelerated:
True
Method PrefetchNonTemporal(Vector2l&):Void accelerated: True
Method PrefetchTemporalAllCacheLevels(Vector2l*):Void accelerated:
True
Method PrefetchTemporal1stLevelCache(Vector2l*):Void accelerated:
True
Method PrefetchTemporal2ndLevelCache(Vector2l*):Void accelerated:
True
Method PrefetchNonTemporal(Vector2l*):Void accelerated: True
Method op_Addition(Vector2l, Vector2l):Vector2l accelerated: True
Method op_Subtraction(Vector2l, Vector2l):Vector2l accelerated: True
Method op_LeftShift(Vector2l, Int32):Vector2l accelerated: True
Method op_BitwiseAnd(Vector2l, Vector2l):Vector2l accelerated: True
Method op_BitwiseOr(Vector2l, Vector2l):Vector2l accelerated: True
Method op_ExclusiveOr(Vector2l, Vector2l):Vector2l accelerated: True
Method op_Explicit(Vector2l):Vector2d accelerated: True
Method op_Explicit(Vector2l):Vector4f accelerated: True
Method op_Explicit(Vector2l):Vector2ul accelerated: True
Method op_Explicit(Vector2l):Vector4i accelerated: True
Method op_Explicit(Vector2l):Vector4ui accelerated: True
Method op_Explicit(Vector2l):Vector8s accelerated: True
Method op_Explicit(Vector2l):Vector8us accelerated: True
Method op_Explicit(Vector2l):Vector16sb accelerated: True
Method op_Explicit(Vector2l):Vector16b accelerated: True
Type Vector4f
Method AndNot(Vector4f, Vector4f):Vector4f accelerated: True
Method Sqrt(Vector4f):Vector4f accelerated: True
Method InvSqrt(Vector4f):Vector4f accelerated: True
Method Reciprocal(Vector4f):Vector4f accelerated: True
Method HorizontalAdd(Vector4f, Vector4f):Vector4f accelerated: True
Method AddSub(Vector4f, Vector4f):Vector4f accelerated: True
Method HorizontalSub(Vector4f, Vector4f):Vector4f accelerated: True
Method InterleaveHigh(Vector4f, Vector4f):Vector4f accelerated: True
Method InterleaveLow(Vector4f, Vector4f):Vector4f accelerated: True
Method CompareEqual(Vector4f, Vector4f):Vector4f accelerated: True
Method CompareLessThan(Vector4f, Vector4f):Vector4f accelerated:
True
Method CompareLessEqual(Vector4f, Vector4f):Vector4f accelerated:
True
Method CompareUnordered(Vector4f, Vector4f):Vector4f accelerated:
True
Method CompareNotEqual(Vector4f, Vector4f):Vector4f accelerated:
True
Method CompareNotLessThan(Vector4f, Vector4f):Vector4f
accelerated: True
Method CompareNotLessEqual(Vector4f, Vector4f):Vector4f
accelerated: True
Method CompareOrdered(Vector4f, Vector4f):Vector4f accelerated: True
Method DuplicateLow(Vector4f):Vector4f accelerated: True
Method DuplicateHigh(Vector4f):Vector4f accelerated: True
Method Shuffle(Vector4f, ShuffleSel):Vector4f accelerated: True
Method LoadAligned(Vector4f&):Vector4f accelerated: True
Method StoreAligned(Vector4f&, Vector4f):Void accelerated: True
Method LoadAligned(Vector4f*):Vector4f accelerated: True
Method StoreAligned(Vector4f*, Vector4f):Void accelerated: True
Method PrefetchTemporalAllCacheLevels(Vector4f&):Void accelerated:
True
Method PrefetchTemporal1stLevelCache(Vector4f&):Void accelerated:
True
Method PrefetchTemporal2ndLevelCache(Vector4f&):Void accelerated:
True
Method PrefetchNonTemporal(Vector4f&):Void accelerated: True
Method PrefetchTemporalAllCacheLevels(Vector4f*):Void accelerated:
True
Method PrefetchTemporal1stLevelCache(Vector4f*):Void accelerated:
True
Method PrefetchTemporal2ndLevelCache(Vector4f*):Void accelerated:
True
Method PrefetchNonTemporal(Vector4f*):Void accelerated: True
Method op_BitwiseAnd(Vector4f, Vector4f):Vector4f accelerated: True
Method op_BitwiseOr(Vector4f, Vector4f):Vector4f accelerated: True
Method op_ExclusiveOr(Vector4f, Vector4f):Vector4f accelerated: True
Method op_Addition(Vector4f, Vector4f):Vector4f accelerated: True
Method op_Subtraction(Vector4f, Vector4f):Vector4f accelerated: True
Method op_Multiply(Vector4f, Vector4f):Vector4f accelerated: True
Method op_Division(Vector4f, Vector4f):Vector4f accelerated: True
Method op_Explicit(Vector4f):Vector2d accelerated: True
Method op_Explicit(Vector4f):Vector2l accelerated: True
Method op_Explicit(Vector4f):Vector2ul accelerated: True
Method op_Explicit(Vector4f):Vector4i accelerated: True
Method op_Explicit(Vector4f):Vector4ui accelerated: True
Method op_Explicit(Vector4f):Vector8s accelerated: True
Method op_Explicit(Vector4f):Vector8us accelerated: True
Method op_Explicit(Vector4f):Vector16sb accelerated: True
Method op_Explicit(Vector4f):Vector16b accelerated: True
Type Vector4ui
Method UnpackLow(Vector4ui, Vector4ui):Vector4ui accelerated: True
Method UnpackHigh(Vector4ui, Vector4ui):Vector4ui accelerated: True
Method ArithmeticRightShift(Vector4ui, Int32):Vector4ui
accelerated: True
Method ExtractByteMask(Vector4ui):Int32 accelerated: True
Method Shuffle(Vector4ui, ShuffleSel):Vector4ui accelerated: True
Method CompareEqual(Vector4ui, Vector4ui):Vector4ui accelerated:
True
Method SignedPackWithUnsignedSaturation(Vector4ui,
Vector4ui):Vector8us accelerated: False
Method SignedPackWithSignedSaturation(Vector4ui,
Vector4ui):Vector8s accelerated: True
Method LoadAligned(Vector4ui&):Vector4ui accelerated: True
Method StoreAligned(Vector4ui&, Vector4ui):Void accelerated: True
Method LoadAligned(Vector4ui*):Vector4ui accelerated: True
Method StoreAligned(Vector4ui*, Vector4ui):Void accelerated: True
Method PrefetchTemporalAllCacheLevels(Vector4ui&):Void
accelerated: True
Method PrefetchTemporal1stLevelCache(Vector4ui&):Void accelerated:
True
Method PrefetchTemporal2ndLevelCache(Vector4ui&):Void accelerated:
True
Method PrefetchNonTemporal(Vector4ui&):Void accelerated: True
Method PrefetchTemporalAllCacheLevels(Vector4ui*):Void
accelerated: True
Method PrefetchTemporal1stLevelCache(Vector4ui*):Void accelerated:
True
Method PrefetchTemporal2ndLevelCache(Vector4ui*):Void accelerated:
True
Method PrefetchNonTemporal(Vector4ui*):Void accelerated: True
Method op_Addition(Vector4ui, Vector4ui):Vector4ui accelerated: True
Method op_Subtraction(Vector4ui, Vector4ui):Vector4ui accelerated:
True
Method op_Multiply(Vector4ui, Vector4ui):Vector4ui accelerated:
False
Method op_LeftShift(Vector4ui, Int32):Vector4ui accelerated: True
Method op_RightShift(Vector4ui, Int32):Vector4ui accelerated: True
Method op_BitwiseAnd(Vector4ui, Vector4ui):Vector4ui accelerated:
True
Method op_BitwiseOr(Vector4ui, Vector4ui):Vector4ui accelerated:
True
Method op_ExclusiveOr(Vector4ui, Vector4ui):Vector4ui accelerated:
True
Method op_Explicit(Vector4ui):Vector2d accelerated: True
Method op_Explicit(Vector4ui):Vector4f accelerated: True
Method op_Explicit(Vector4ui):Vector2l accelerated: True
Method op_Explicit(Vector4ui):Vector2ul accelerated: True
Method op_Explicit(Vector4ui):Vector4i accelerated: True
Method op_Explicit(Vector4ui):Vector8s accelerated: True
Method op_Explicit(Vector4ui):Vector8us accelerated: True
Method op_Explicit(Vector4ui):Vector16sb accelerated: True
Method op_Explicit(Vector4ui):Vector16b accelerated: True
Type Vector4i
Method UnpackLow(Vector4i, Vector4i):Vector4i accelerated: True
Method UnpackHigh(Vector4i, Vector4i):Vector4i accelerated: True
Method LogicalRightShift(Vector4i, Int32):Vector4i accelerated: True
Method ExtractByteMask(Vector4i):Int32 accelerated: True
Method Shuffle(Vector4i, ShuffleSel):Vector4i accelerated: True
Method CompareEqual(Vector4i, Vector4i):Vector4i accelerated: True
Method CompareGreaterThan(Vector4i, Vector4i):Vector4i
accelerated: True
Method PackWithUnsignedSaturation(Vector4i, Vector4i):Vector8us
accelerated: False
Method PackWithSignedSaturation(Vector4i, Vector4i):Vector8s
accelerated: True
Method LoadAligned(Vector4i&):Vector4i accelerated: True
Method StoreAligned(Vector4i&, Vector4i):Void accelerated: True
Method LoadAligned(Vector4i*):Vector4i accelerated: True
Method StoreAligned(Vector4i*, Vector4i):Void accelerated: True
Method PrefetchTemporalAllCacheLevels(Vector4i&):Void accelerated:
True
Method PrefetchTemporal1stLevelCache(Vector4i&):Void accelerated:
True
Method PrefetchTemporal2ndLevelCache(Vector4i&):Void accelerated:
True
Method PrefetchNonTemporal(Vector4i&):Void accelerated: True
Method PrefetchTemporalAllCacheLevels(Vector4i*):Void accelerated:
True
Method PrefetchTemporal1stLevelCache(Vector4i*):Void accelerated:
True
Method PrefetchTemporal2ndLevelCache(Vector4i*):Void accelerated:
True
Method PrefetchNonTemporal(Vector4i*):Void accelerated: True
Method op_Addition(Vector4i, Vector4i):Vector4i accelerated: True
Method op_Subtraction(Vector4i, Vector4i):Vector4i accelerated: True
Method op_Multiply(Vector4i, Vector4i):Vector4i accelerated: False
Method op_LeftShift(Vector4i, Int32):Vector4i accelerated: True
Method op_RightShift(Vector4i, Int32):Vector4i accelerated: True
Method op_BitwiseAnd(Vector4i, Vector4i):Vector4i accelerated: True
Method op_BitwiseOr(Vector4i, Vector4i):Vector4i accelerated: True
Method op_ExclusiveOr(Vector4i, Vector4i):Vector4i accelerated: True
Method op_Explicit(Vector4i):Vector2d accelerated: True
Method op_Explicit(Vector4i):Vector4f accelerated: True
Method op_Explicit(Vector4i):Vector2l accelerated: True
Method op_Explicit(Vector4i):Vector2ul accelerated: True
Method op_Explicit(Vector4i):Vector4ui accelerated: True
Method op_Explicit(Vector4i):Vector8s accelerated: True
Method op_Explicit(Vector4i):Vector8us accelerated: True
Method op_Explicit(Vector4i):Vector16sb accelerated: True
Method op_Explicit(Vector4i):Vector16b accelerated: True
Type Vector8us
Method UnpackLow(Vector8us, Vector8us):Vector8us accelerated: True
Method UnpackHigh(Vector8us, Vector8us):Vector8us accelerated: True
Method ArithmeticRightShift(Vector8us, Int32):Vector8us
accelerated: True
Method AddWithSaturation(Vector8us, Vector8us):Vector8us
accelerated: True
Method SubtractWithSaturation(Vector8us, Vector8us):Vector8us
accelerated: True
Method Average(Vector8us, Vector8us):Vector8us accelerated: True
Method ExtractByteMask(Vector8us):Int32 accelerated: True
Method ShuffleHigh(Vector8us, ShuffleSel):Vector8us accelerated:
True
Method ShuffleLow(Vector8us, ShuffleSel):Vector8us accelerated: True
Method CompareEqual(Vector8us, Vector8us):Vector8us accelerated:
True
Method MultiplyStoreHigh(Vector8us, Vector8us):Vector8us
accelerated: True
Method SignedPackWithUnsignedSaturation(Vector8us,
Vector8us):Vector16b accelerated: True
Method SignedPackWithSignedSaturation(Vector8us,
Vector8us):Vector16sb accelerated: True
Method LoadAligned(Vector8us&):Vector8us accelerated: True
Method StoreAligned(Vector8us&, Vector8us):Void accelerated: True
Method LoadAligned(Vector8us*):Vector8us accelerated: True
Method StoreAligned(Vector8us*, Vector8us):Void accelerated: True
Method PrefetchTemporalAllCacheLevels(Vector8us&):Void
accelerated: True
Method PrefetchTemporal1stLevelCache(Vector8us&):Void accelerated:
True
Method PrefetchTemporal2ndLevelCache(Vector8us&):Void accelerated:
True
Method PrefetchNonTemporal(Vector8us&):Void accelerated: True
Method PrefetchTemporalAllCacheLevels(Vector8us*):Void
accelerated: True
Method PrefetchTemporal1stLevelCache(Vector8us*):Void accelerated:
True
Method PrefetchTemporal2ndLevelCache(Vector8us*):Void accelerated:
True
Method PrefetchNonTemporal(Vector8us*):Void accelerated: True
Method op_Addition(Vector8us, Vector8us):Vector8us accelerated: True
Method op_Subtraction(Vector8us, Vector8us):Vector8us accelerated:
True
Method op_Multiply(Vector8us, Vector8us):Vector8us accelerated: True
Method op_RightShift(Vector8us, Int32):Vector8us accelerated: True
Method op_LeftShift(Vector8us, Int32):Vector8us accelerated: True
Method op_BitwiseAnd(Vector8us, Vector8us):Vector8us accelerated:
True
Method op_BitwiseOr(Vector8us, Vector8us):Vector8us accelerated:
True
Method op_ExclusiveOr(Vector8us, Vector8us):Vector8us accelerated:
True
Method op_Explicit(Vector8us):Vector2d accelerated: True
Method op_Explicit(Vector8us):Vector4f accelerated: True
Method op_Explicit(Vector8us):Vector2l accelerated: True
Method op_Explicit(Vector8us):Vector2ul accelerated: True
Method op_Explicit(Vector8us):Vector4i accelerated: True
Method op_Explicit(Vector8us):Vector4ui accelerated: True
Method op_Explicit(Vector8us):Vector8s accelerated: True
Method op_Explicit(Vector8us):Vector16sb accelerated: True
Method op_Explicit(Vector8us):Vector16b accelerated: True
Type Vector8s
Method UnpackLow(Vector8s, Vector8s):Vector8s accelerated: True
Method UnpackHigh(Vector8s, Vector8s):Vector8s accelerated: True
Method LogicalRightShift(Vector8s, Int32):Vector8s accelerated: True
Method AddWithSaturation(Vector8s, Vector8s):Vector8s accelerated:
True
Method SubtractWithSaturation(Vector8s, Vector8s):Vector8s
accelerated: True
Method ExtractByteMask(Vector8s):Int32 accelerated: True
Method ShuffleHigh(Vector8s, ShuffleSel):Vector8s accelerated: True
Method ShuffleLow(Vector8s, ShuffleSel):Vector8s accelerated: True
Method CompareEqual(Vector8s, Vector8s):Vector8s accelerated: True
Method CompareGreaterThan(Vector8s, Vector8s):Vector8s
accelerated: True
Method MultiplyStoreHigh(Vector8s, Vector8s):Vector8s accelerated:
True
Method PackWithUnsignedSaturation(Vector8s, Vector8s):Vector16b
accelerated: True
Method PackWithSignedSaturation(Vector8s, Vector8s):Vector16sb
accelerated: True
Method LoadAligned(Vector8s&):Vector8s accelerated: True
Method StoreAligned(Vector8s&, Vector8s):Void accelerated: True
Method LoadAligned(Vector8s*):Vector8s accelerated: True
Method StoreAligned(Vector8s*, Vector8s):Void accelerated: True
Method PrefetchTemporalAllCacheLevels(Vector8s&):Void accelerated:
True
Method PrefetchTemporal1stLevelCache(Vector8s&):Void accelerated:
True
Method PrefetchTemporal2ndLevelCache(Vector8s&):Void accelerated:
True
Method PrefetchNonTemporal(Vector8s&):Void accelerated: True
Method PrefetchTemporalAllCacheLevels(Vector8s*):Void accelerated:
True
Method PrefetchTemporal1stLevelCache(Vector8s*):Void accelerated:
True
Method PrefetchTemporal2ndLevelCache(Vector8s*):Void accelerated:
True
Method PrefetchNonTemporal(Vector8s*):Void accelerated: True
Method op_Addition(Vector8s, Vector8s):Vector8s accelerated: True
Method op_Subtraction(Vector8s, Vector8s):Vector8s accelerated: True
Method op_Multiply(Vector8s, Vector8s):Vector8s accelerated: True
Method op_RightShift(Vector8s, Int32):Vector8s accelerated: True
Method op_LeftShift(Vector8s, Int32):Vector8s accelerated: True
Method op_BitwiseAnd(Vector8s, Vector8s):Vector8s accelerated: True
Method op_BitwiseOr(Vector8s, Vector8s):Vector8s accelerated: True
Method op_ExclusiveOr(Vector8s, Vector8s):Vector8s accelerated: True
Method op_Explicit(Vector8s):Vector2d accelerated: True
Method op_Explicit(Vector8s):Vector4f accelerated: True
Method op_Explicit(Vector8s):Vector2l accelerated: True
Method op_Explicit(Vector8s):Vector2ul accelerated: True
Method op_Explicit(Vector8s):Vector4i accelerated: True
Method op_Explicit(Vector8s):Vector4ui accelerated: True
Method op_Explicit(Vector8s):Vector8us accelerated: True
Method op_Explicit(Vector8s):Vector16sb accelerated: True
Method op_Explicit(Vector8s):Vector16b accelerated: True
Type Vector16b
Method UnpackLow(Vector16b, Vector16b):Vector16b accelerated: True
Method UnpackHigh(Vector16b, Vector16b):Vector16b accelerated: True
Method AddWithSaturation(Vector16b, Vector16b):Vector16b
accelerated: True
Method SubtractWithSaturation(Vector16b, Vector16b):Vector16b
accelerated: True
Method Average(Vector16b, Vector16b):Vector16b accelerated: True
Method ExtractByteMask(Vector16b):Int32 accelerated: True
Method SumOfAbsoluteDifferences(Vector16b, Vector16sb):Vector8us
accelerated: True
Method CompareEqual(Vector16b, Vector16b):Vector16b accelerated:
True
Method LoadAligned(Vector16b&):Vector16b accelerated: True
Method StoreAligned(Vector16b&, Vector16b):Void accelerated: True
Method LoadAligned(Vector16b*):Vector16b accelerated: True
Method StoreAligned(Vector16b*, Vector16b):Void accelerated: True
Method PrefetchTemporalAllCacheLevels(Vector16b&):Void
accelerated: True
Method PrefetchTemporal1stLevelCache(Vector16b&):Void accelerated:
True
Method PrefetchTemporal2ndLevelCache(Vector16b&):Void accelerated:
True
Method PrefetchNonTemporal(Vector16b&):Void accelerated: True
Method PrefetchTemporalAllCacheLevels(Vector16b*):Void
accelerated: True
Method PrefetchTemporal1stLevelCache(Vector16b*):Void accelerated:
True
Method PrefetchTemporal2ndLevelCache(Vector16b*):Void accelerated:
True
Method PrefetchNonTemporal(Vector16b*):Void accelerated: True
Method op_Addition(Vector16b, Vector16b):Vector16b accelerated: True
Method op_Subtraction(Vector16b, Vector16b):Vector16b accelerated:
True
Method op_BitwiseAnd(Vector16b, Vector16b):Vector16b accelerated:
True
Method op_BitwiseOr(Vector16b, Vector16b):Vector16b accelerated:
True
Method op_ExclusiveOr(Vector16b, Vector16b):Vector16b accelerated:
True
Method op_Explicit(Vector16b):Vector2d accelerated: True
Method op_Explicit(Vector16b):Vector4f accelerated: True
Method op_Explicit(Vector16b):Vector2l accelerated: True
Method op_Explicit(Vector16b):Vector2ul accelerated: True
Method op_Explicit(Vector16b):Vector4i accelerated: True
Method op_Explicit(Vector16b):Vector4ui accelerated: True
Method op_Explicit(Vector16b):Vector8s accelerated: True
Method op_Explicit(Vector16b):Vector8us accelerated: True
Method op_Explicit(Vector16b):Vector16sb accelerated: True
Type Vector16sb
Method UnpackLow(Vector16sb, Vector16sb):Vector16sb accelerated:
True
Method UnpackHigh(Vector16sb, Vector16sb):Vector16sb accelerated:
True
Method AddWithSaturation(Vector16sb, Vector16sb):Vector16sb
accelerated: True
Method SubtractWithSaturation(Vector16sb, Vector16sb):Vector16sb
accelerated: True
Method ExtractByteMask(Vector16sb):Int32 accelerated: True
Method CompareEqual(Vector16sb, Vector16sb):Vector16sb
accelerated: True
Method CompareGreaterThan(Vector16sb, Vector16sb):Vector16sb
accelerated: True
Method LoadAligned(Vector16sb&):Vector16sb accelerated: True
Method StoreAligned(Vector16sb&, Vector16sb):Void accelerated: True
Method LoadAligned(Vector16sb*):Vector16sb accelerated: True
Method StoreAligned(Vector16sb*, Vector16sb):Void accelerated: True
Method PrefetchTemporalAllCacheLevels(Vector16sb&):Void
accelerated: True
Method PrefetchTemporal1stLevelCache(Vector16sb&):Void
accelerated: True
Method PrefetchTemporal2ndLevelCache(Vector16sb&):Void
accelerated: True
Method PrefetchNonTemporal(Vector16sb&):Void accelerated: True
Method PrefetchTemporalAllCacheLevels(Vector16sb*):Void
accelerated: True
Method PrefetchTemporal1stLevelCache(Vector16sb*):Void
accelerated: True
Method PrefetchTemporal2ndLevelCache(Vector16sb*):Void
accelerated: True
Method PrefetchNonTemporal(Vector16sb*):Void accelerated: True
Method op_Addition(Vector16sb, Vector16sb):Vector16sb accelerated:
True
Method op_Subtraction(Vector16sb, Vector16sb):Vector16sb
accelerated: True
Method op_BitwiseAnd(Vector16sb, Vector16sb):Vector16sb
accelerated: True
Method op_BitwiseOr(Vector16sb, Vector16sb):Vector16sb
accelerated: True
Method op_ExclusiveOr(Vector16sb, Vector16sb):Vector16sb
accelerated: True
Method op_Explicit(Vector16sb):Vector2d accelerated: True
Method op_Explicit(Vector16sb):Vector4f accelerated: True
Method op_Explicit(Vector16sb):Vector2l accelerated: True
Method op_Explicit(Vector16sb):Vector2ul accelerated: True
Method op_Explicit(Vector16sb):Vector4i accelerated: True
Method op_Explicit(Vector16sb):Vector4ui accelerated: True
Method op_Explicit(Vector16sb):Vector8s accelerated: True
Method op_Explicit(Vector16sb):Vector8us accelerated: True
Method op_Explicit(Vector16sb):Vector16b accelerated: True
More information about the Mono-devel-list
mailing list