mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-21 06:45:39 -06:00
.upptst
git-svn-id: svn://ultimatepp.org/upp/trunk@14703 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
1ad1faf973
commit
2d0ac02f7e
3 changed files with 186 additions and 1 deletions
164
upptst/SIMD2/Etalon.log
Normal file
164
upptst/SIMD2/Etalon.log
Normal 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
|
||||
|
|
@ -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";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ uses
|
|||
Core;
|
||||
|
||||
file
|
||||
Etalon.log,
|
||||
SIMD2.cpp;
|
||||
|
||||
mainconfig
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue