From a02fc82b7ac13c060cff218f635bfb279d38905c Mon Sep 17 00:00:00 2001 From: Jiajie Chen Date: Wed, 17 Jul 2024 13:31:02 +0800 Subject: [PATCH] Improve xvshuf figure --- docs/diagram/gen.py | 25 +- docs/diagram/xvshuf_b.svg | 2255 ++++++++++++++++++++----------------- docs/diagram/xvshuf_d.svg | 71 +- docs/diagram/xvshuf_h.svg | 623 +++++----- docs/diagram/xvshuf_w.svg | 191 ++-- 5 files changed, 1776 insertions(+), 1389 deletions(-) diff --git a/docs/diagram/gen.py b/docs/diagram/gen.py index 0e7adb21..37f0302d 100644 --- a/docs/diagram/gen.py +++ b/docs/diagram/gen.py @@ -107,7 +107,7 @@ def xvshuf(): elen = el vlen = 256 with open(f"xvshuf_{name}.svg", "w") as f: - init(f, 3, 2) + init(f, 4, 2) add_row(f) add_box( f, @@ -122,23 +122,30 @@ def xvshuf(): indices=list(range(vlen // elen // 2 - 1, -1, -1)) * 2, ) add_row(f) + add_box(f, "hi", "merged", indices=list(range(vlen // elen - 1, -1, -1))) + add_box(f, "lo", "merged", indices=list(range(vlen // elen - 1, -1, -1))) + add_row(f) add_box(f, "a" if elen > 8 else "c", "indices") add_row(f) add_box(f, "ret", "returns") - # b to a & c to a + # b to merge & c to merge for i in range(vlen // elen // 2): + add_line(f, 1, 0, i, 2, 0, i) + add_line(f, 1, 0, i + vlen // elen // 2, 2, 1, i) + for i in range(vlen // elen // 2): + add_line(f, 1, 1, i, 2, 0, i + vlen // elen // 2) + add_line(f, 1, 1, i + vlen // elen // 2, 2, 1, i + vlen // elen // 2) + + # merge to a + for i in range(vlen // elen): for j in range(vlen // elen // 2): - add_line(f, 1, 0, j, 2, 0, i) - add_line(f, 1, 1, j, 2, 0, i) - for i in range(vlen // elen // 2, vlen // elen): - for j in range(vlen // elen // 2, vlen // elen): - add_line(f, 1, 0, j, 2, 0, i) - add_line(f, 1, 1, j, 2, 0, i) + add_line(f, 2, 0, i, 3, 0, j) + add_line(f, 2, 1, i, 3, 0, j + vlen // elen // 2) # a to ret for i in range(vlen // elen): - add_line(f, 2, 0, i, 3, 0, i) + add_line(f, 3, 0, i, 4, 0, i) end(f) diff --git a/docs/diagram/xvshuf_b.svg b/docs/diagram/xvshuf_b.svg index d810738a..9dce3330 100644 --- a/docs/diagram/xvshuf_b.svg +++ b/docs/diagram/xvshuf_b.svg @@ -1,5 +1,5 @@ (1) a @@ -139,43 +139,141 @@ upper lower (2) -c -indices +hi +merged +31 +30 +29 +28 +27 +26 +25 +24 +23 +22 +21 +20 +19 +18 +17 +16 +15 +14 +13 +12 +11 +10 +9 +8 +7 +6 +5 +4 +3 +2 +1 +0 +lo +merged + +31 + +30 + +29 + +28 + +27 + +26 + +25 + +24 + +23 + +22 + +21 + +20 + +19 + +18 + +17 + +16 + +15 + +14 + +13 + +12 + +11 + +10 + +9 + +8 + +7 + +6 + +5 + +4 + +3 + +2 + +1 + +0 (3) -ret -returns +c +indices @@ -208,1060 +306,1159 @@ +(4) +ret +returns + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/diagram/xvshuf_d.svg b/docs/diagram/xvshuf_d.svg index 736a1be8..835b9838 100644 --- a/docs/diagram/xvshuf_d.svg +++ b/docs/diagram/xvshuf_d.svg @@ -1,5 +1,5 @@ (1) b @@ -27,37 +27,66 @@ upper lower (2) -a -indices +hi +merged +3 +2 +1 +0 +lo +merged + +3 + +2 + +1 + +0 (3) -ret -returns +a +indices +(4) +ret +returns + + + + - - - - - + - - - - - - - - - + + + + + + + + + + - - + + + + + + + + + + + + + diff --git a/docs/diagram/xvshuf_h.svg b/docs/diagram/xvshuf_h.svg index 95a62cb8..731a277e 100644 --- a/docs/diagram/xvshuf_h.svg +++ b/docs/diagram/xvshuf_h.svg @@ -1,5 +1,5 @@ (1) b @@ -75,27 +75,77 @@ upper lower (2) -a -indices +hi +merged +15 +14 +13 +12 +11 +10 +9 +8 +7 +6 +5 +4 +3 +2 +1 +0 +lo +merged + +15 + +14 + +13 + +12 + +11 + +10 + +9 + +8 + +7 + +6 + +5 + +4 + +3 + +2 + +1 + +0 (3) -ret -returns +a +indices @@ -112,276 +162,327 @@ +(4) +ret +returns + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/diagram/xvshuf_w.svg b/docs/diagram/xvshuf_w.svg index b10ef324..9e4999c2 100644 --- a/docs/diagram/xvshuf_w.svg +++ b/docs/diagram/xvshuf_w.svg @@ -1,5 +1,5 @@ (1) b @@ -43,19 +43,45 @@ upper lower (2) -a -indices +hi +merged +7 +6 +5 +4 +3 +2 +1 +0 +lo +merged + +7 + +6 + +5 + +4 + +3 + +2 + +1 + +0 (3) -ret -returns +a +indices @@ -64,76 +90,103 @@ +(4) +ret +returns + + + + + + + + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +