git-svn-id: svn://ultimatepp.org/upp/trunk@14703 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2020-07-27 15:35:52 +00:00
parent 1ad1faf973
commit 2d0ac02f7e
3 changed files with 186 additions and 1 deletions

164
upptst/SIMD2/Etalon.log Normal file
View file

@ -0,0 +1,164 @@
* C:\upp\out\upptst\MSBT19.Debug.Debug_Full\SIMD2.exe 27.07.2020 17:35:09, user: cxl
f32x4(r) = 0 0 0 0
x = 4 3 2 1
f32x4(r) = 0 0 0 1
f32x4(r) = 0 0 2 1
f32x4(r) = 4 3 2 1
x = 0 0 0 11
x = 0 0 12 11
f32x4((int)1) = 0 0 0 1
f32x4((float)2) = 0 0 0 2
f32x4((double)3) = 0 0 0 3
f32x4(11, 22, 33, 44) = 11 22 33 44
f32all(3.14159) = 3.14159 3.14159 3.14159 3.14159
a = 1 2 3 4
b = 2 2 2 2
a + b = 3 4 5 6
a - b = -1 0 1 2
a * b = 2 4 6 8
a / b = 0.5 1 1.5 2
min(a, b) = 1 2 2 2
max(a, b) = 2 2 3 4
Broadcast0(a) = 4 4 4 4
Broadcast1(a) = 3 3 3 3
Broadcast2(a) = 2 2 2 2
Broadcast3(a) = 1 1 1 1
(a == a) = -nan -nan -nan -nan
(a != a) = 0 0 0 0
(a == b) = 0 -nan 0 0
(a != b) = -nan 0 -nan -nan
(a < b) = -nan 0 0 0
(b < a) = 0 0 -nan -nan
(a > b) = 0 0 -nan -nan
(b > a) = -nan 0 0 0
AllTrue(a == a) = true
AllTrue(a != a) = false
AllTrue(a == b) = false
AllTrue(a != b) = false
AllTrue(a < b) = true
AllTrue(b < a) = false
AllTrue(a > b) = false
AllTrue(b > a) = true
==================================
x = 0 0 0 0 0 0 2 1
x = 0 0 0 0 4 3 2 1
x = 8 7 6 5 4 3 2 1
i16x8(r) = 0 0 0 0 0 0 2 1
i16x8(r) = 0 0 0 0 4 3 2 1
i16x8(r) = 8 7 6 5 4 3 2 1
i16x8(13) = 0 0 0 0 0 0 0 13
i16all(13) = 13 13 13 13 13 13 13 13
a = 1 2 3 4 5 6 7 8
b = 2 2 2 2 2 2 2 2
a + b = 3 4 5 6 7 8 9 10
a - b = -1 0 1 2 3 4 5 6
a * b = 2 4 6 8 10 12 14 16
a & b = 0 2 2 0 0 2 2 0
a | b = 3 2 3 6 7 6 7 10
a ^ b = 3 0 1 6 7 4 5 10
~a = -2 -3 -4 -5 -6 -7 -8 -9
a << 1 = 2 4 6 8 10 12 14 16
a >> 1 = 0 1 1 2 2 3 3 4
(a == a) = -1 -1 -1 -1 -1 -1 -1 -1
(a == b) = 0 -1 0 0 0 0 0 0
(a < b) = -1 0 0 0 0 0 0 0
(b < a) = 0 0 -1 -1 -1 -1 -1 -1
(a > b) = 0 0 -1 -1 -1 -1 -1 -1
(b > a) = -1 0 0 0 0 0 0 0
AllTrue(a == a) = true
AllTrue(a == b) = false
AllTrue(a < b) = true
AllTrue(b < a) = false
AllTrue(a > b) = false
AllTrue(b > a) = true
==========================================================
x = 0 0 0 1
x = 0 0 2 1
x = 4 3 2 1
i32x4(r) = 0 0 0 1
i32x4(r) = 0 0 2 1
i32x4(r) = 4 3 2 1
i32x4(13) = 0 0 0 13
i32all(13) = 13 13 13 13
a = 1 2 3 4
b = 2 2 2 2
a + b = 3 4 5 6
a - b = -1 0 1 2
a & b = 0 2 2 0
a | b = 3 2 3 6
a ^ b = 3 0 1 6
~a = -2 -3 -4 -5
a << 1 = 2 4 6 8
a >> 1 = 0 1 1 2
(a == a) = -1 -1 -1 -1
(a == b) = 0 -1 0 0
(a < b) = -1 0 0 0
(b < a) = 0 0 -1 -1
(a > b) = 0 0 -1 -1
(b > a) = -1 0 0 0
AllTrue(a == a) = true
AllTrue(a == b) = false
AllTrue(a < b) = true
AllTrue(b < a) = false
AllTrue(a > b) = false
AllTrue(b > a) = true
==========================================================
x = 0 0 0 0 . 0 0 0 0 . 0 0 0 0 . 4 3 2 1
x = 0 0 0 0 . 0 0 0 0 . 8 7 6 5 . 4 3 2 1
x = 16 15 14 13 . 12 11 10 9 . 8 7 6 5 . 4 3 2 1
i8x16(r) = 0 0 0 0 . 0 0 0 0 . 0 0 0 0 . 4 3 2 1
i8x16(r) = 0 0 0 0 . 0 0 0 0 . 8 7 6 5 . 4 3 2 1
i8x16(r) = 16 15 14 13 . 12 11 10 9 . 8 7 6 5 . 4 3 2 1
i8x16(13) = 0 0 0 0 . 0 0 0 0 . 0 0 0 0 . 0 0 0 13
i8all(13) = 13 13 13 13 . 13 13 13 13 . 13 13 13 13 . 13 13 13 13
a = 1 2 3 4 . 5 6 7 8 . 9 10 11 12 . 13 14 15 16
b = 2 2 2 2 . 2 2 2 2 . 2 2 2 2 . 2 2 2 2
a + b = 3 4 5 6 . 7 8 9 10 . 11 12 13 14 . 15 16 17 18
a - b = -1 0 1 2 . 3 4 5 6 . 7 8 9 10 . 11 12 13 14
a & b = 0 2 2 0 . 0 2 2 0 . 0 2 2 0 . 0 2 2 0
a | b = 3 2 3 6 . 7 6 7 10 . 11 10 11 14 . 15 14 15 18
a ^ b = 3 0 1 6 . 7 4 5 10 . 11 8 9 14 . 15 12 13 18
~a = -2 -3 -4 -5 . -6 -7 -8 -9 . -10 -11 -12 -13 . -14 -15 -16 -17
=========================
Unpack8L(a) = 9 10 11 12 13 14 15 16
Unpack8H(a) = 1 2 3 4 5 6 7 8
Unpack16L(h) = 5 6 7 8
Unpack16H(h) = 1 2 3 4
Pack16(Unpack8L(a), Unpack8H(a)) = 1 2 3 4 . 5 6 7 8 . 9 10 11 12 . 13 14 15 16
Pack32(Unpack16L(h)) = 0 0 0 0 5 6 7 8
=========================
a = 1 2 3 4 5 6 7 8
BroadcastLH0(a) = 4 4 4 4 8 8 8 8
BroadcastLH1(a) = 3 3 3 3 7 7 7 7
BroadcastLH2(a) = 2 2 2 2 6 6 6 6
BroadcastLH3(a) = 1 1 1 1 5 5 5 5
Hex((byte *)&i64, 16) = ef cd ab 89 67 45 23 01 ef cd ab 89 67 45 23 01
=========================
f32x4(q) = 0 0 0 4
f32x4(q) = 0 0 3 4
f32x4(q) = 1 2 3 4
x = 0 0 0 4
x = 0 0 3 4
x = 1 2 3 4
=========================
i16x8(q) = 0 0 0 0 0 0 7 8
i16x8(q) = 0 0 0 0 5 6 7 8
i16x8(q) = 1 2 3 4 5 6 7 8
x = 0 0 0 0 0 0 7 8
x = 0 0 0 0 5 6 7 8
x = 1 2 3 4 5 6 7 8
=========================
i32x4(q) = 0 0 0 4
i32x4(q) = 0 0 3 4
i32x4(q) = 1 2 3 4
x = 0 0 0 4
x = 0 0 3 4
x = 1 2 3 4
=========================
i8x16(q) = 0 0 0 0 . 0 0 0 0 . 0 0 0 0 . 13 14 15 16
i8x16(q) = 0 0 0 0 . 0 0 0 0 . 9 10 11 12 . 13 14 15 16
i8x16(q) = 1 2 3 4 . 5 6 7 8 . 9 10 11 12 . 13 14 15 16
x = 0 0 0 0 . 0 0 0 0 . 0 0 0 0 . 13 14 15 16
x = 0 0 0 0 . 0 0 0 0 . 9 10 11 12 . 13 14 15 16
x = 1 2 3 4 . 5 6 7 8 . 9 10 11 12 . 13 14 15 16

View file

@ -2,6 +2,15 @@
using namespace Upp;
String Hex(const void *ptr, int count)
{
String r;
const byte *p = (const byte *)ptr;
while(count--)
MergeWith(r, " ", FormatIntHex(*p++, 2));
return r;
}
CONSOLE_APP_MAIN
{
StdLogSetup(LOG_FILE|LOG_COUT);
@ -263,7 +272,7 @@ CONSOLE_APP_MAIN
auto i64 = i64all(I64(0x123456789abcdef));
LOGHEXDUMP(&i64, 16);
DUMP(Hex((byte *)&i64, 16));
}
{
LOG("=========================");
@ -353,4 +362,15 @@ CONSOLE_APP_MAIN
x.Load(q);
DDUMP(x);
}
auto LoadLog = [](const String& path) {
String s = LoadFile(path);
return s.Mid(max(s.FindAfter("\n"), 0));
};
String log = LoadLog(GetStdLogPath());
ASSERT(LoadLog(GetStdLogPath()) == LoadLog(GetDataFile("Etalon.log")));
Cout() << "================= OK\r\n";
}

View file

@ -2,6 +2,7 @@ uses
Core;
file
Etalon.log,
SIMD2.cpp;
mainconfig