From 2d0ac02f7edc5401c1997df8e2459285064d2b83 Mon Sep 17 00:00:00 2001 From: cxl Date: Mon, 27 Jul 2020 15:35:52 +0000 Subject: [PATCH] .upptst git-svn-id: svn://ultimatepp.org/upp/trunk@14703 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- upptst/SIMD2/Etalon.log | 164 ++++++++++++++++++++++++++++++++++++++++ upptst/SIMD2/SIMD2.cpp | 22 +++++- upptst/SIMD2/SIMD2.upp | 1 + 3 files changed, 186 insertions(+), 1 deletion(-) create mode 100644 upptst/SIMD2/Etalon.log diff --git a/upptst/SIMD2/Etalon.log b/upptst/SIMD2/Etalon.log new file mode 100644 index 000000000..d063abc91 --- /dev/null +++ b/upptst/SIMD2/Etalon.log @@ -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 diff --git a/upptst/SIMD2/SIMD2.cpp b/upptst/SIMD2/SIMD2.cpp index 026e7df54..f959a2635 100644 --- a/upptst/SIMD2/SIMD2.cpp +++ b/upptst/SIMD2/SIMD2.cpp @@ -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"; } diff --git a/upptst/SIMD2/SIMD2.upp b/upptst/SIMD2/SIMD2.upp index 010d4f543..1feb10964 100644 --- a/upptst/SIMD2/SIMD2.upp +++ b/upptst/SIMD2/SIMD2.upp @@ -2,6 +2,7 @@ uses Core; file + Etalon.log, SIMD2.cpp; mainconfig