Beispiel #1
0
 void GetInfo_throws_if_invalid_value(MemorySize memorySize)
 {
     Assert.Throws <ArgumentOutOfRangeException>(() => memorySize.GetInfo());
     Assert.Throws <ArgumentOutOfRangeException>(() => memorySize.GetSize());
     Assert.Throws <ArgumentOutOfRangeException>(() => memorySize.GetElementSize());
     Assert.Throws <ArgumentOutOfRangeException>(() => memorySize.GetElementType());
     Assert.Throws <ArgumentOutOfRangeException>(() => memorySize.IsSigned());
     Assert.Throws <ArgumentOutOfRangeException>(() => memorySize.IsPacked());
     Assert.Throws <ArgumentOutOfRangeException>(() => memorySize.GetElementCount());
     memorySize.IsBroadcast();            // Does not throw
 }
Beispiel #2
0
        void VerifyMemorySizeProperties(MemorySize memorySize, int size, int elementSize, MemorySize elementType, int elementCount, MemorySizeFlags flags)
        {
            var info = memorySize.GetInfo();

            Assert.Equal(memorySize, info.MemorySize);
            Assert.Equal(size, info.Size);
            Assert.Equal(elementSize, info.ElementSize);
            Assert.Equal(elementType, info.ElementType);
            Assert.Equal((flags & MemorySizeFlags.Signed) != 0, info.IsSigned);
            Assert.Equal((flags & MemorySizeFlags.Broadcast) != 0, info.IsBroadcast);
            Assert.Equal((flags & MemorySizeFlags.Packed) != 0, info.IsPacked);
            Assert.Equal(elementCount, info.ElementCount);

            Assert.Equal(size, memorySize.GetSize());
            Assert.Equal(elementSize, memorySize.GetElementSize());
            Assert.Equal(elementType, memorySize.GetElementType());
            Assert.Equal((flags & MemorySizeFlags.Signed) != 0, memorySize.IsSigned());
            Assert.Equal((flags & MemorySizeFlags.Packed) != 0, memorySize.IsPacked());
            Assert.Equal((flags & MemorySizeFlags.Broadcast) != 0, memorySize.IsBroadcast());
            Assert.Equal(elementCount, memorySize.GetElementCount());
        }
Beispiel #3
0
 /// <summary>
 /// Gets the number of elements in the packed data type or 1 if it's not packed data (<see cref="IsPacked"/>)
 /// </summary>
 /// <param name="memorySize">Memory size</param>
 /// <returns></returns>
 public static int GetElementCount(this MemorySize memorySize) => memorySize.GetInfo().ElementCount;
Beispiel #4
0
 /// <summary>
 /// <see langword="true"/> if this is a packed data type, eg. <see cref="MemorySize.Packed128_Float32"/>
 /// </summary>
 /// <param name="memorySize">Memory size</param>
 /// <returns></returns>
 public static bool IsPacked(this MemorySize memorySize) => memorySize.GetInfo().IsPacked;
Beispiel #5
0
 /// <summary>
 /// Gets the element type info if it's packed data or <paramref name="memorySize"/> if it's not packed data
 /// </summary>
 /// <param name="memorySize">Memory size</param>
 /// <returns></returns>
 public static MemorySizeInfo GetElementTypeInfo(this MemorySize memorySize) => memorySize.GetInfo().ElementType.GetInfo();
Beispiel #6
0
 /// <summary>
 /// Gets the size in bytes of the memory location or 0 if it's not accessed by the instruction or unknown or variable sized
 /// </summary>
 /// <param name="memorySize">Memory size</param>
 /// <returns></returns>
 public static int GetSize(this MemorySize memorySize) => memorySize.GetInfo().Size;
 void Verify_FirstBroadcastMemorySize_value(MemorySize memorySize)
 {
     Assert.Equal(memorySize.IsBroadcast(), memorySize.GetInfo().IsBroadcast);
 }