Test "Scalable Vector Extension (SVE) support." on arm64

Change-Id: I3abaca932985a06b06887b962e769f2eac96c738
This commit is contained in:
Shiratori, Takehiro
2019-02-20 20:57:26 +09:00
committed by Masamichi Takagi
parent 6810506c3d
commit 7da5fede8b
57 changed files with 6921 additions and 0 deletions

97
test/sve/README Normal file
View File

@ -0,0 +1,97 @@
/* README COPYRIGHT FUJITSU LIMITED 2019 */
SVEレジスタ拡張テストセットREADME
(1) テストの実行方法
以下の手順でテストを実行する
1. $HOME/.mck_test_configを用意する
当該ファイルは、McKernelをビルドした際に生成されるmck_test_config.sample
ファイルを$HOMEにコピーし、適宜編集する
2. 必要に応じて、run.shのSVEGDB環境変数に利用するGDBのパスを記載する
GDBの置き換えが必要な理由は「(4) 備考」を参照
3. make testを実行する
(2) テスト項目詳細
TEST001 プロセス起動時のSVEレジスタを読み出す
TEST002 forkによる子プロセスへの引き継ぎ確認
TEST003 pthread_createによる子スレッドへの引き継ぎ確認
TEST004 execveを挟んだ場合のレジスタクリア確認
TEST005 シグナルハンドラ前後のレジスタ維持確認
TEST006 他コアへのマイグレート前後のレジスタ維持確認
TEST007 子プロセスで書き込んだ内容が親プロセスからptraceでGETREGSET出来るか
TEST008 親プロセスからptraceでSETREGSETした内容が子プロセスに反映されるか
TEST009 GETREGSETへのパラメタチェック(子項目7つ)
TEST010 SETREGSETへのパラメタチェック(子項目9つ)
TEST011 sigaltstackを使用した場合のシグナルハンドラ前後のレジスタ維持確認
TEST012 プロセスがSVE使用時、NT_PRFPREG(既存の浮動小数点レジスタ)の
GETREGSETを実行して値が取得出来るか
TEST013 プロセスがSVE使用時、NT_PRFPREG(既存の浮動小数点レジスタ)の
SETREGSETを実行して値が設定出来るか
TEST014 テスト番号8の子プロセス停止をbrk命令に変更したもの
TEST015 コンテキストスイッチおよび外部シグナルによる停止/再開時のレジスタ維持確認
TEST016 prctl(PR_SVE_GET_VL)でVLを取得し、期待通りか確認する
TEST017 prctl(PR_SVE_SET_VL)でVLを設定し、期待通りか確認する
TEST018 廃止(過去に存在したフラグのテスト)
TEST019 prctl(PR_SVE_SET_VL)へのパラメタチェック
TEST020 prctlでVLと同時に継承フラグを付与時、fork()によってVLが子プロセスに継承されることを確認する
TEST021 prctlでVLと同時に継承フラグを付与時、pthread_create()によってVLが子スレッドに継承されることを確認する
TEST022 prctlでVLと同時に継承フラグを付与時、execve()によってVLが実行先のa.outに継承されることを確認する
TEST023 シグナルハンドラ前後のVL設定維持確認
TEST024 他コアへのマイグレート前後のVL設定維持確認
TEST025 ptrace(GETREGSET + NT_ARM_SVE)を用いてVLを取得し、期待通りか確認する
TEST026 ptrace(SETREGSET + NT_ARM_SVE)を用いてVLを設定し、期待通りか確認する
TEST027 prctlでVLと同時に継承フラグを付与しない場合でも、fork()によってVLが子プロセスに継承されることを確認する
TEST028 prctlでVLと同時に継承フラグを付与しない場合でも、pthread_create()によってVLが子スレッドに継承されることを確認する
TEST029 prctlでVLと同時に継承フラグを付与しない場合、execve()によってVLが実行先のa.outに継承されず、
デフォルトVLが使われることを確認する
TEST030 SVE使用時、ptrace(SETREGSET + NT_ARM_SVE + SVE_PT_REGS_FPSIMD)で
FPSIMD(以前のバージョンのレジスタを表現する)構造体を用いてレジスタを設定し、期待通りか確認する
TEST031 SVE使用時、ptrace(SETREGSET + NT_ARM_SVE + SVE_PT_REGS_FPSIMD)で
SVEレジスタ構造体を用いてレジスタを設定し、期待通りか確認する
TEST032 prctlでVLと同時にONEXECフラグを付与時、ただちには反映されず、
fork()を行ってもVLが子プロセスに継承されない事を確認する
TEST033 prctlでVLと同時にONEXECフラグを付与時、ただちには反映されず、
pthread_create()を行ってもVLが子スレッドに継承されない事を確認する
TEST034 prctlでVLと同時にONEXECフラグを付与時、ただちには反映されず、最初のexecve()を行ったときにVLが反映される事を確認する
TEST035 SVE使用時、ptrace(SETREGSET + NT_ARM_SVE + SVE_PT_REGS_FPSIMD)で
既存のSVEレジスタ退避領域を上書きしたとき、下位128bitにのみ設定が反映されることを確認する
TEST036 シグナルハンドラ内でVL変更及び変更後のSVEレジスタを使用した場合、SIGSEGVとなる事を確認する
TEST037 prctlでINHERITフラグ、ONEXECフラグの順に設定したとき、下記の動作になることを確認する
現在のVLINHERIT指定VL、継承するVLONEXEC指定VL、execve継承回数初回のみ
TEST038 prctlでONEXECフラグ、INHERITフラグの順に設定したとき、下記の動作になることを確認する
現在のVLINHERIT指定VL、継承するVLINHERIT指定VL、execve継承回数設定変更まで有効
TEST039 prctlでONEXECフラグとINHERITフラグを同時に設定したとき、下記の動作になることを確認する
現在のVL変更しない、継承するVL指定VL、execve継承回数設定変更まで有効
TEST040 SVEレジスタ使用時にSIGSEGVを発生させ、corefileを生成する
生成されたcorefileがGDBで解析が可能で、SVEレジスタの情報が閲覧出来る事を確認する
TEST041 SVEレジスタ対応版のGDBをMcKernel上で動作させ、SVEレジスタの情報がinfo registerで読み出せる事を確認する
(3) 実行結果ログ
result.logファイル内に実行時のログを記載する。
実行に利用したIHK/McKernelは、IA版における下記の版数相当のものである。
IHK
commit d6fcbee8cb91f9ec4b49f97c918e696ac0335aaf
Author: Shiratori, Takehiro <fj0300es@aa.jp.fujitsu.com>
Date: Tue Oct 16 16:25:33 2018 +0900
McKernel
commit 6f9fef2b13447c74c36d15cf5ebd186f8395ccca
Author: Ken Sato <ken.sato.ty@hitachi-solutions.com>
Date: Tue Sep 25 10:05:41 2018 +0900
(4) 備考
TEST040について、RHEL8-betaに含まれるGDBパッケージではSVEのcorefileを解析することは出来ない。
これは、libbfd側にSVEのcorefile解析の制御が含まれていないことが原因となっている。
下記URLのパッチファイルを適用することで解析が可能となる。
TEST040はパッチを適用したlibbfdを利用してテストを行った結果をログに記載している。
https://sourceware.org/ml/binutils/2018-06/msg00314.html
以上。

View File

@ -0,0 +1,51 @@
z0 {d = {f = {0x0, 0x0}, u = {0x1111111111111111, 0x2222222222222222}, s = {0x1111111111111111, 0x2222222222222222}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0x11111111, 0x11111111, 0x22222222, 0x22222222}, s = {0x11111111, 0x11111111, 0x22222222, 0x22222222}}, h = {u = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222}, s = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22}, s = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22}}}
z1 {d = {f = {0x0, 0x7fffffffffffffff}, u = {0x3333333333333333, 0x4444444444444444}, s = {0x3333333333333333, 0x4444444444444444}}, s = {f = {0x0, 0x0, 0x311, 0x311}, u = {0x33333333, 0x33333333, 0x44444444, 0x44444444}, s = {0x33333333, 0x33333333, 0x44444444, 0x44444444}}, h = {u = {0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}, s = {0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}}, b = {u = {0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}, s = {0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}}}
z2 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0x5555555555555555, 0x6666666666666666}, s = {0x5555555555555555, 0x6666666666666666}}, s = {f = {0x55500000, 0x55500000, 0xffffffff, 0xffffffff}, u = {0x55555555, 0x55555555, 0x66666666, 0x66666666}, s = {0x55555555, 0x55555555, 0x66666666, 0x66666666}}, h = {u = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666}, s = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666}}, b = {u = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66}, s = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66}}}
z3 {d = {f = {0x7fffffffffffffff, 0x0}, u = {0x7777777777777777, 0x8888888888888888}, s = {0x7777777777777777, 0x8888888888888888}}, s = {f = {0xffffffff, 0xffffffff, 0x0, 0x0}, u = {0x77777777, 0x77777777, 0x88888888, 0x88888888}, s = {0x77777777, 0x77777777, 0x88888888, 0x88888888}}, h = {u = {0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}, s = {0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}}, b = {u = {0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}, s = {0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}}}
z4 {d = {f = {0x0, 0x0}, u = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa}, s = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa}, s = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa}}, h = {u = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa}, s = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa}}, b = {u = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa}, s = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa}}}
z5 {d = {f = {0x0, 0x8000000000000000}, u = {0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}, s = {0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}}, s = {f = {0x0, 0x0, 0xf99999a0, 0xf99999a0}, u = {0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}, s = {0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}}, h = {u = {0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}, s = {0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}}, b = {u = {0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}, s = {0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}}}
z6 {d = {f = {0x8000000000000000, 0x8000000000000000}, u = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee}, s = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee}, s = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee}}, h = {u = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee}, s = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee}}, b = {u = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee}, s = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee}}}
z7 {d = {f = {0x8000000000000000, 0x0}, u = {0xffffffffffffffff, 0x1111111122222222}, s = {0xffffffffffffffff, 0x1111111122222222}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0xffffffff, 0xffffffff, 0x22222222, 0x11111111}, s = {0xffffffff, 0xffffffff, 0x22222222, 0x11111111}}, h = {u = {0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}, s = {0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}}, b = {u = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}, s = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}}}
z8 {d = {f = {0x0, 0x0}, u = {0x2222222233333333, 0x3333333344444444}, s = {0x2222222233333333, 0x3333333344444444}}, s = {f = {0x0, 0x0, 0x311, 0x0}, u = {0x33333333, 0x22222222, 0x44444444, 0x33333333}, s = {0x33333333, 0x22222222, 0x44444444, 0x33333333}}, h = {u = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333}, s = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333}}, b = {u = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33}, s = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33}}}
z9 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0x4444444455555555, 0x5555555566666666}, s = {0x4444444455555555, 0x5555555566666666}}, s = {f = {0x55500000, 0x311, 0xffffffff, 0x55500000}, u = {0x55555555, 0x44444444, 0x66666666, 0x55555555}, s = {0x55555555, 0x44444444, 0x66666666, 0x55555555}}, h = {u = {0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}, s = {0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}}, b = {u = {0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}, s = {0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}}}
z10 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0x6666666677777777, 0x7777777788888888}, s = {0x6666666677777777, 0x7777777788888888}}, s = {f = {0xffffffff, 0xffffffff, 0x0, 0xffffffff}, u = {0x77777777, 0x66666666, 0x88888888, 0x77777777}, s = {0x77777777, 0x66666666, 0x88888888, 0x77777777}}, h = {u = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777}, s = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777}}, b = {u = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77}, s = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77}}}
z11 {d = {f = {0x0, 0x0}, u = {0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}, s = {0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}, s = {0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}}, h = {u = {0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}, s = {0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}}, b = {u = {0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}, s = {0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}}}
z12 {d = {f = {0x0, 0x8000000000000000}, u = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd}, s = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd}}, s = {f = {0xf99999a0, 0x0, 0x0, 0xf99999a0}, u = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc}, s = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc}}, h = {u = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc}, s = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc}}, b = {u = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc}, s = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc}}}
z13 {d = {f = {0x8000000000000000, 0x8000000000000000}, u = {0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}, s = {0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}, s = {0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}}, h = {u = {0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}, s = {0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}}, b = {u = {0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}, s = {0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}}}
z14 {d = {f = {0x8000000000000000, 0x0}, u = {0xffffffff11111111, 0x1111222233334444}, s = {0xffffffff11111111, 0x1111222233334444}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0x11111111, 0xffffffff, 0x33334444, 0x11112222}, s = {0x11111111, 0xffffffff, 0x33334444, 0x11112222}}, h = {u = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111}, s = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11}, s = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11}}}
z15 {d = {f = {0x7fffffffffffffff, 0x0}, u = {0x5555666677778888, 0x9999aaaabbbbcccc}, s = {0x5555666677778888, 0x9999aaaabbbbcccc}}, s = {f = {0xffffffff, 0x66600000, 0x0, 0x0}, u = {0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}, s = {0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}}, h = {u = {0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}, s = {0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}}, b = {u = {0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}, s = {0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}}}
z16 {d = {f = {0x8000000000000000, 0x8000000000000000}, u = {0xddddeeeeffff1111, 0xffffeeeeddddcccc}, s = {0xddddeeeeffff1111, 0xffffeeeeddddcccc}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee}, s = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee}}, h = {u = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff}, s = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff}}, b = {u = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff}, s = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff}}}
z17 {d = {f = {0x0, 0x7fffffffffffffff}, u = {0xbbbbaaaa99998888, 0x7777666655554444}, s = {0xbbbbaaaa99998888, 0x7777666655554444}}, s = {f = {0x0, 0x0, 0x44400000, 0xffffffff}, u = {0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}, s = {0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}}, h = {u = {0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}, s = {0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}}, b = {u = {0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}, s = {0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}}}
z18 {d = {f = {0x0, 0x0}, u = {0x333322221111ffff, 0x1122334455667788}, s = {0x333322221111ffff, 0x1122334455667788}}, s = {f = {0x0, 0x0, 0x78800000, 0x0}, u = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344}, s = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344}}, h = {u = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122}, s = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122}}, b = {u = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11}, s = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11}}}
z19 {d = {f = {0x0, 0x8000000000000000}, u = {0x99aabbccddeeff11, 0xffeeddccbbaa9988}, s = {0x99aabbccddeeff11, 0xffeeddccbbaa9988}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}, s = {0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}}, h = {u = {0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}, s = {0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}}, b = {u = {0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}, s = {0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}}}
z20 {d = {f = {0x7fffffffffffffff, 0x0}, u = {0x77665544332211ff, 0x123456789abcdef1}, s = {0x77665544332211ff, 0x123456789abcdef1}}, s = {f = {0x0, 0xffffffff, 0x0, 0x0}, u = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678}, s = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678}}, h = {u = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234}, s = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234}}, b = {u = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12}, s = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12}}}
z21 {d = {f = {0x8000000000000000, 0x8000000000000000}, u = {0xfedcba987654321f, 0xcafecafecafecafe}, s = {0xfedcba987654321f, 0xcafecafecafecafe}}, s = {f = {0xffffffff, 0x0, 0xff809a81, 0xff809a81}, u = {0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe}, s = {0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe}}, h = {u = {0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe}, s = {0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe}}, b = {u = {0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca}, s = {0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca}}}
z22 {d = {f = {0x0, 0x0}, u = {0x1111111111111111, 0x2222222222222222}, s = {0x1111111111111111, 0x2222222222222222}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0x11111111, 0x11111111, 0x22222222, 0x22222222}, s = {0x11111111, 0x11111111, 0x22222222, 0x22222222}}, h = {u = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222}, s = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22}, s = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22}}}
z23 {d = {f = {0x0, 0x7fffffffffffffff}, u = {0x3333333333333333, 0x4444444444444444}, s = {0x3333333333333333, 0x4444444444444444}}, s = {f = {0x0, 0x0, 0x311, 0x311}, u = {0x33333333, 0x33333333, 0x44444444, 0x44444444}, s = {0x33333333, 0x33333333, 0x44444444, 0x44444444}}, h = {u = {0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}, s = {0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}}, b = {u = {0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}, s = {0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}}}
z24 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0x5555555555555555, 0x6666666666666666}, s = {0x5555555555555555, 0x6666666666666666}}, s = {f = {0x55500000, 0x55500000, 0xffffffff, 0xffffffff}, u = {0x55555555, 0x55555555, 0x66666666, 0x66666666}, s = {0x55555555, 0x55555555, 0x66666666, 0x66666666}}, h = {u = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666}, s = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666}}, b = {u = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66}, s = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66}}}
z25 {d = {f = {0x7fffffffffffffff, 0x0}, u = {0x7777777777777777, 0x8888888888888888}, s = {0x7777777777777777, 0x8888888888888888}}, s = {f = {0xffffffff, 0xffffffff, 0x0, 0x0}, u = {0x77777777, 0x77777777, 0x88888888, 0x88888888}, s = {0x77777777, 0x77777777, 0x88888888, 0x88888888}}, h = {u = {0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}, s = {0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}}, b = {u = {0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}, s = {0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}}}
z26 {d = {f = {0x0, 0x0}, u = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa}, s = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa}, s = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa}}, h = {u = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa}, s = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa}}, b = {u = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa}, s = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa}}}
z27 {d = {f = {0x0, 0x8000000000000000}, u = {0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}, s = {0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}}, s = {f = {0x0, 0x0, 0xf99999a0, 0xf99999a0}, u = {0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}, s = {0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}}, h = {u = {0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}, s = {0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}}, b = {u = {0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}, s = {0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}}}
z28 {d = {f = {0x8000000000000000, 0x8000000000000000}, u = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee}, s = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee}, s = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee}}, h = {u = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee}, s = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee}}, b = {u = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee}, s = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee}}}
z29 {d = {f = {0x8000000000000000, 0x0}, u = {0xffffffffffffffff, 0x1111111122222222}, s = {0xffffffffffffffff, 0x1111111122222222}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0xffffffff, 0xffffffff, 0x22222222, 0x11111111}, s = {0xffffffff, 0xffffffff, 0x22222222, 0x11111111}}, h = {u = {0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}, s = {0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}}, b = {u = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}, s = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}}}
z30 {d = {f = {0x0, 0x0}, u = {0x2222222233333333, 0x3333333344444444}, s = {0x2222222233333333, 0x3333333344444444}}, s = {f = {0x0, 0x0, 0x311, 0x0}, u = {0x33333333, 0x22222222, 0x44444444, 0x33333333}, s = {0x33333333, 0x22222222, 0x44444444, 0x33333333}}, h = {u = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333}, s = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333}}, b = {u = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33}, s = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33}}}
z31 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0x4444444455555555, 0x5555555566666666}, s = {0x4444444455555555, 0x5555555566666666}}, s = {f = {0x55500000, 0x311, 0xffffffff, 0x55500000}, u = {0x55555555, 0x44444444, 0x66666666, 0x55555555}, s = {0x55555555, 0x44444444, 0x66666666, 0x55555555}}, h = {u = {0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}, s = {0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}}, b = {u = {0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}, s = {0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}}}
p0 {0x11, 0x11}
p1 {0x22, 0x22}
p2 {0x33, 0x33}
p3 {0x44, 0x44}
p4 {0x55, 0x55}
p5 {0x66, 0x66}
p6 {0x77, 0x77}
p7 {0x88, 0x88}
p8 {0x99, 0x99}
p9 {0xaa, 0xaa}
p10 {0xbb, 0xbb}
p11 {0xcc, 0xcc}
p12 {0xdd, 0xdd}
p13 {0xee, 0xee}
p14 {0xff, 0xff}
p15 {0x22, 0x22}
vg 0x2 2
fpsr 0x0 0
fpcr 0x0 0

View File

@ -0,0 +1,51 @@
z0 {d = {f = {0x0, 0x0, 0x0, 0x7fffffffffffffff}, u = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}, s = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x311}, u = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}, s = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}}, h = {u = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}, s = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}, s = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}}}
z1 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0}, u = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}, s = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}}, s = {f = {0x55500000, 0x55500000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0, 0x0}, u = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}, s = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}}, h = {u = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}, s = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}}, b = {u = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}, s = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}}}
z2 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000}, u = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}, s = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0xf99999a0}, u = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}, s = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}}, h = {u = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}, s = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}}, b = {u = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}, s = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}}}
z3 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0}, u = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}, s = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}, s = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}}, h = {u = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}, s = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}}, b = {u = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}, s = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}}}
z4 {d = {f = {0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}, s = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}}, s = {f = {0x0, 0x0, 0x311, 0x0, 0x55500000, 0x311, 0xffffffff, 0x55500000}, u = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}, s = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}}, h = {u = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}, s = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}}, b = {u = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}, s = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}}}
z5 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0}, u = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}, s = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}}, s = {f = {0xffffffff, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0}, u = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}, s = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}}, h = {u = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}, s = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}}, b = {u = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}, s = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}}}
z6 {d = {f = {0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000}, u = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}, s = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}}, s = {f = {0xf99999a0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0}, u = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}, s = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}}, h = {u = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}, s = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}}, b = {u = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}, s = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}}}
z7 {d = {f = {0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0}, u = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}, s = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x66600000, 0x0, 0x0}, u = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}, s = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}}, h = {u = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}, s = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}, s = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}}}
z8 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff}, u = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}, s = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44400000, 0xffffffff}, u = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}, s = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}}, h = {u = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}, s = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}}, b = {u = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}, s = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}}}
z9 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000}, u = {0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}, s = {0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}}, s = {f = {0x0, 0x0, 0x78800000, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}, s = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}}, h = {u = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}, s = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}}, b = {u = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}, s = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}}}
z10 {d = {f = {0x7fffffffffffffff, 0x0, 0x8000000000000000, 0x8000000000000000}, u = {0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe}, s = {0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe}}, s = {f = {0x0, 0xffffffff, 0x0, 0x0, 0xffffffff, 0x0, 0xff809a81, 0xff809a81}, u = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe}, s = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe}}, h = {u = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe}, s = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe}}, b = {u = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca}, s = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca}}}
z11 {d = {f = {0x0, 0x0, 0x0, 0x7fffffffffffffff}, u = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}, s = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x311}, u = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}, s = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}}, h = {u = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}, s = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}, s = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}}}
z12 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0}, u = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}, s = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}}, s = {f = {0x55500000, 0x55500000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0, 0x0}, u = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}, s = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}}, h = {u = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}, s = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}}, b = {u = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}, s = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}}}
z13 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000}, u = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}, s = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0xf99999a0}, u = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}, s = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}}, h = {u = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}, s = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}}, b = {u = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}, s = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}}}
z14 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0}, u = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}, s = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}, s = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}}, h = {u = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}, s = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}}, b = {u = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}, s = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}}}
z15 {d = {f = {0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}, s = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}}, s = {f = {0x0, 0x0, 0x311, 0x0, 0x55500000, 0x311, 0xffffffff, 0x55500000}, u = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}, s = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}}, h = {u = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}, s = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}}, b = {u = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}, s = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}}}
z16 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0}, u = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}, s = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}}, s = {f = {0xffffffff, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0}, u = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}, s = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}}, h = {u = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}, s = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}}, b = {u = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}, s = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}}}
z17 {d = {f = {0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000}, u = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}, s = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}}, s = {f = {0xf99999a0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0}, u = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}, s = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}}, h = {u = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}, s = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}}, b = {u = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}, s = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}}}
z18 {d = {f = {0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0}, u = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}, s = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x66600000, 0x0, 0x0}, u = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}, s = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}}, h = {u = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}, s = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}, s = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}}}
z19 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff}, u = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}, s = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44400000, 0xffffffff}, u = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}, s = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}}, h = {u = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}, s = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}}, b = {u = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}, s = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}}}
z20 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000}, u = {0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}, s = {0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}}, s = {f = {0x0, 0x0, 0x78800000, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}, s = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}}, h = {u = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}, s = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}}, b = {u = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}, s = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}}}
z21 {d = {f = {0x7fffffffffffffff, 0x0, 0x8000000000000000, 0x8000000000000000}, u = {0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe}, s = {0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe}}, s = {f = {0x0, 0xffffffff, 0x0, 0x0, 0xffffffff, 0x0, 0xff809a81, 0xff809a81}, u = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe}, s = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe}}, h = {u = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe}, s = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe}}, b = {u = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca}, s = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca}}}
z22 {d = {f = {0x0, 0x0, 0x0, 0x7fffffffffffffff}, u = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}, s = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x311}, u = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}, s = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}}, h = {u = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}, s = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}, s = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}}}
z23 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0}, u = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}, s = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}}, s = {f = {0x55500000, 0x55500000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0, 0x0}, u = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}, s = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}}, h = {u = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}, s = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}}, b = {u = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}, s = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}}}
z24 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000}, u = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}, s = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0xf99999a0}, u = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}, s = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}}, h = {u = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}, s = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}}, b = {u = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}, s = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}}}
z25 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0}, u = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}, s = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}, s = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}}, h = {u = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}, s = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}}, b = {u = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}, s = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}}}
z26 {d = {f = {0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}, s = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}}, s = {f = {0x0, 0x0, 0x311, 0x0, 0x55500000, 0x311, 0xffffffff, 0x55500000}, u = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}, s = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}}, h = {u = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}, s = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}}, b = {u = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}, s = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}}}
z27 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0}, u = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}, s = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}}, s = {f = {0xffffffff, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0}, u = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}, s = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}}, h = {u = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}, s = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}}, b = {u = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}, s = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}}}
z28 {d = {f = {0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000}, u = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}, s = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}}, s = {f = {0xf99999a0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0}, u = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}, s = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}}, h = {u = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}, s = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}}, b = {u = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}, s = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}}}
z29 {d = {f = {0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0}, u = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}, s = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x66600000, 0x0, 0x0}, u = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}, s = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}}, h = {u = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}, s = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}, s = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}}}
z30 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff}, u = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}, s = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44400000, 0xffffffff}, u = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}, s = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}}, h = {u = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}, s = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}}, b = {u = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}, s = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}}}
z31 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000}, u = {0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}, s = {0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}}, s = {f = {0x0, 0x0, 0x78800000, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}, s = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}}, h = {u = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}, s = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}}, b = {u = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}, s = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}}}
p0 {0x11, 0x11, 0x22, 0x22}
p1 {0x33, 0x33, 0x44, 0x44}
p2 {0x55, 0x55, 0x66, 0x66}
p3 {0x77, 0x77, 0x88, 0x88}
p4 {0x99, 0x99, 0xaa, 0xaa}
p5 {0xbb, 0xbb, 0xcc, 0xcc}
p6 {0xdd, 0xdd, 0xee, 0xee}
p7 {0xff, 0xff, 0x22, 0x22}
p8 {0x33, 0x33, 0x44, 0x44}
p9 {0x55, 0x55, 0x66, 0x66}
p10 {0x77, 0x77, 0x88, 0x88}
p11 {0xaa, 0xaa, 0xbb, 0xbb}
p12 {0xcc, 0xcc, 0xdd, 0xdd}
p13 {0xee, 0xee, 0xff, 0xff}
p14 {0x11, 0x11, 0x44, 0x44}
p15 {0x88, 0x88, 0xcc, 0xcc}
vg 0x4 4
fpsr 0x0 0
fpcr 0x0 0

View File

@ -0,0 +1,51 @@
z0 {d = {f = {0x0, 0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0}, u = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444, 0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}, s = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444, 0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x311, 0x55500000, 0x55500000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0, 0x0}, u = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444, 0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}, s = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444, 0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}}, h = {u = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444, 0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}, s = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444, 0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}, s = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}}}
z1 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0}, u = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc, 0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}, s = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc, 0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc, 0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}, s = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc, 0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}}, h = {u = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc, 0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}, s = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc, 0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}}, b = {u = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}, s = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}}}
z2 {d = {f = {0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0}, u = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666, 0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}, s = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666, 0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}}, s = {f = {0x0, 0x0, 0x311, 0x0, 0x55500000, 0x311, 0xffffffff, 0x55500000, 0xffffffff, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0}, u = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555, 0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}, s = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555, 0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}}, h = {u = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555, 0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}, s = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555, 0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}}, b = {u = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}, s = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}}}
z3 {d = {f = {0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0}, u = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff, 0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}, s = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff, 0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}}, s = {f = {0xf99999a0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x66600000, 0x0, 0x0}, u = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee, 0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}, s = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee, 0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}}, h = {u = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee, 0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}, s = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee, 0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}}, b = {u = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee, 0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}, s = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee, 0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}}}
z4 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0, 0x0, 0x0, 0x8000000000000000}, u = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444, 0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}, s = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444, 0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44400000, 0xffffffff, 0x0, 0x0, 0x78800000, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666, 0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}, s = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666, 0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}}, h = {u = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777, 0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}, s = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777, 0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}}, b = {u = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77, 0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}, s = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77, 0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}}}
z5 {d = {f = {0x7fffffffffffffff, 0x0, 0x8000000000000000, 0x8000000000000000, 0x0, 0x0, 0x0, 0x7fffffffffffffff}, u = {0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe, 0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}, s = {0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe, 0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}}, s = {f = {0x0, 0xffffffff, 0x0, 0x0, 0xffffffff, 0x0, 0xff809a81, 0xff809a81, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x311}, u = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe, 0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}, s = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe, 0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}}, h = {u = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe, 0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}, s = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe, 0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}}, b = {u = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}, s = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}}}
z6 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x8000000000000000}, u = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888, 0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}, s = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888, 0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}}, s = {f = {0x55500000, 0x55500000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0xf99999a0}, u = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888, 0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}, s = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888, 0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}}, h = {u = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888, 0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}, s = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888, 0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}}, b = {u = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}, s = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}}}
z7 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0, 0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222, 0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}, s = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222, 0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x0, 0x55500000, 0x311, 0xffffffff, 0x55500000}, u = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111, 0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}, s = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111, 0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}}, h = {u = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111, 0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}, s = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111, 0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}}, b = {u = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11, 0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}, s = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11, 0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}}}
z8 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0, 0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000}, u = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb, 0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}, s = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb, 0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}}, s = {f = {0xffffffff, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0}, u = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa, 0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}, s = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa, 0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}}, h = {u = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa, 0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}, s = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa, 0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}}, b = {u = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}, s = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}}}
z9 {d = {f = {0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0, 0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff}, u = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc, 0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}, s = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc, 0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x66600000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44400000, 0xffffffff}, u = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa, 0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}, s = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa, 0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}}, h = {u = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999, 0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}, s = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999, 0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99, 0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}, s = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99, 0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}}}
z10 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000, 0x7fffffffffffffff, 0x0, 0x8000000000000000, 0x8000000000000000}, u = {0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988, 0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe}, s = {0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988, 0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe}}, s = {f = {0x0, 0x0, 0x78800000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x0, 0x0, 0xffffffff, 0x0, 0xff809a81, 0xff809a81}, u = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc, 0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe}, s = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc, 0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe}}, h = {u = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee, 0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe}, s = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee, 0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe}}, b = {u = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca}, s = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca}}}
z11 {d = {f = {0x0, 0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0}, u = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444, 0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}, s = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444, 0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x311, 0x55500000, 0x55500000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0, 0x0}, u = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444, 0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}, s = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444, 0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}}, h = {u = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444, 0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}, s = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444, 0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}, s = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}}}
z12 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0}, u = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc, 0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}, s = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc, 0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc, 0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}, s = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc, 0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}}, h = {u = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc, 0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}, s = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc, 0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}}, b = {u = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}, s = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}}}
z13 {d = {f = {0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0}, u = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666, 0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}, s = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666, 0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}}, s = {f = {0x0, 0x0, 0x311, 0x0, 0x55500000, 0x311, 0xffffffff, 0x55500000, 0xffffffff, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0}, u = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555, 0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}, s = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555, 0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}}, h = {u = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555, 0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}, s = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555, 0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}}, b = {u = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}, s = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}}}
z14 {d = {f = {0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0}, u = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff, 0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}, s = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff, 0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}}, s = {f = {0xf99999a0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x66600000, 0x0, 0x0}, u = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee, 0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}, s = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee, 0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}}, h = {u = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee, 0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}, s = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee, 0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}}, b = {u = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee, 0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}, s = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee, 0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}}}
z15 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0, 0x0, 0x0, 0x8000000000000000}, u = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444, 0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}, s = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444, 0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44400000, 0xffffffff, 0x0, 0x0, 0x78800000, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666, 0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}, s = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666, 0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}}, h = {u = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777, 0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}, s = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777, 0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}}, b = {u = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77, 0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}, s = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77, 0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}}}
z16 {d = {f = {0x7fffffffffffffff, 0x0, 0x8000000000000000, 0x8000000000000000, 0x0, 0x0, 0x0, 0x7fffffffffffffff}, u = {0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe, 0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}, s = {0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe, 0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}}, s = {f = {0x0, 0xffffffff, 0x0, 0x0, 0xffffffff, 0x0, 0xff809a81, 0xff809a81, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x311}, u = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe, 0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}, s = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe, 0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}}, h = {u = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe, 0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}, s = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe, 0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}}, b = {u = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}, s = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}}}
z17 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x8000000000000000}, u = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888, 0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}, s = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888, 0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}}, s = {f = {0x55500000, 0x55500000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0xf99999a0}, u = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888, 0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}, s = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888, 0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}}, h = {u = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888, 0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}, s = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888, 0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}}, b = {u = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}, s = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}}}
z18 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0, 0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222, 0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}, s = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222, 0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x0, 0x55500000, 0x311, 0xffffffff, 0x55500000}, u = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111, 0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}, s = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111, 0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}}, h = {u = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111, 0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}, s = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111, 0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}}, b = {u = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11, 0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}, s = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11, 0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}}}
z19 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0, 0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000}, u = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb, 0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}, s = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb, 0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}}, s = {f = {0xffffffff, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0}, u = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa, 0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}, s = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa, 0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}}, h = {u = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa, 0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}, s = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa, 0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}}, b = {u = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}, s = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}}}
z20 {d = {f = {0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0, 0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff}, u = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc, 0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}, s = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc, 0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x66600000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44400000, 0xffffffff}, u = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa, 0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}, s = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa, 0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}}, h = {u = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999, 0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}, s = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999, 0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99, 0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}, s = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99, 0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}}}
z21 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000, 0x7fffffffffffffff, 0x0, 0x8000000000000000, 0x8000000000000000}, u = {0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988, 0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe}, s = {0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988, 0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe}}, s = {f = {0x0, 0x0, 0x78800000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x0, 0x0, 0xffffffff, 0x0, 0xff809a81, 0xff809a81}, u = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc, 0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe}, s = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc, 0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe}}, h = {u = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee, 0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe}, s = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee, 0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe}}, b = {u = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca}, s = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca}}}
z22 {d = {f = {0x0, 0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0}, u = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444, 0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}, s = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444, 0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x311, 0x55500000, 0x55500000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0, 0x0}, u = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444, 0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}, s = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444, 0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}}, h = {u = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444, 0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}, s = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444, 0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}, s = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}}}
z23 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0}, u = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc, 0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}, s = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc, 0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc, 0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}, s = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc, 0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}}, h = {u = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc, 0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}, s = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc, 0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}}, b = {u = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}, s = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}}}
z24 {d = {f = {0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0}, u = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666, 0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}, s = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666, 0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}}, s = {f = {0x0, 0x0, 0x311, 0x0, 0x55500000, 0x311, 0xffffffff, 0x55500000, 0xffffffff, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0}, u = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555, 0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}, s = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555, 0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}}, h = {u = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555, 0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}, s = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555, 0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}}, b = {u = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}, s = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}}}
z25 {d = {f = {0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0}, u = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff, 0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}, s = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff, 0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}}, s = {f = {0xf99999a0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x66600000, 0x0, 0x0}, u = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee, 0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}, s = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee, 0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}}, h = {u = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee, 0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}, s = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee, 0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}}, b = {u = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee, 0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}, s = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee, 0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}}}
z26 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0, 0x0, 0x0, 0x8000000000000000}, u = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444, 0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}, s = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444, 0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44400000, 0xffffffff, 0x0, 0x0, 0x78800000, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666, 0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}, s = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666, 0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}}, h = {u = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777, 0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}, s = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777, 0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}}, b = {u = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77, 0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}, s = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77, 0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}}}
z27 {d = {f = {0x7fffffffffffffff, 0x0, 0x8000000000000000, 0x8000000000000000, 0x0, 0x0, 0x0, 0x7fffffffffffffff}, u = {0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe, 0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}, s = {0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe, 0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}}, s = {f = {0x0, 0xffffffff, 0x0, 0x0, 0xffffffff, 0x0, 0xff809a81, 0xff809a81, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x311}, u = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe, 0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}, s = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe, 0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}}, h = {u = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe, 0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}, s = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe, 0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}}, b = {u = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}, s = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}}}
z28 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x8000000000000000}, u = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888, 0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}, s = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888, 0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}}, s = {f = {0x55500000, 0x55500000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0xf99999a0}, u = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888, 0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}, s = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888, 0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}}, h = {u = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888, 0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}, s = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888, 0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}}, b = {u = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}, s = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}}}
z29 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0, 0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222, 0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}, s = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222, 0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x0, 0x55500000, 0x311, 0xffffffff, 0x55500000}, u = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111, 0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}, s = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111, 0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}}, h = {u = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111, 0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}, s = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111, 0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}}, b = {u = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11, 0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}, s = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11, 0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}}}
z30 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0, 0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000}, u = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb, 0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}, s = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb, 0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}}, s = {f = {0xffffffff, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0}, u = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa, 0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}, s = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa, 0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}}, h = {u = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa, 0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}, s = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa, 0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}}, b = {u = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}, s = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}}}
z31 {d = {f = {0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0, 0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff}, u = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc, 0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}, s = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc, 0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x66600000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44400000, 0xffffffff}, u = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa, 0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}, s = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa, 0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}}, h = {u = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999, 0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}, s = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999, 0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99, 0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}, s = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99, 0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}}}
p0 {0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x44, 0x44}
p1 {0x55, 0x55, 0x66, 0x66, 0x77, 0x77, 0x88, 0x88}
p2 {0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0xcc, 0xcc}
p3 {0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x22, 0x22}
p4 {0x33, 0x33, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66}
p5 {0x77, 0x77, 0x88, 0x88, 0xaa, 0xaa, 0xbb, 0xbb}
p6 {0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff}
p7 {0x11, 0x11, 0x44, 0x44, 0x88, 0x88, 0xcc, 0xcc}
p8 {0x11, 0x11, 0xcc, 0xcc, 0x88, 0x88, 0x44, 0x44}
p9 {0xff, 0xff, 0x88, 0x77, 0x11, 0xff, 0x88, 0x99}
p10 {0xff, 0x11, 0xf1, 0xde, 0x1f, 0x32, 0xfe, 0xca}
p11 {0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x44, 0x44}
p12 {0x55, 0x55, 0x66, 0x66, 0x77, 0x77, 0x88, 0x88}
p13 {0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0xcc, 0xcc}
p14 {0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x22, 0x22}
p15 {0x33, 0x33, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66}
vg 0x8 8
fpsr 0x44443333 1145320243
fpcr 0x0 0

View File

@ -0,0 +1,51 @@
z0 {d = {f = {0x0, 0x0}, u = {0x1111111111111111, 0x2222222222222222}, s = {0x1111111111111111, 0x2222222222222222}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0x11111111, 0x11111111, 0x22222222, 0x22222222}, s = {0x11111111, 0x11111111, 0x22222222, 0x22222222}}, h = {u = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222}, s = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22}, s = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22}}}
z1 {d = {f = {0x0, 0x7fffffffffffffff}, u = {0x3333333333333333, 0x4444444444444444}, s = {0x3333333333333333, 0x4444444444444444}}, s = {f = {0x0, 0x0, 0x311, 0x311}, u = {0x33333333, 0x33333333, 0x44444444, 0x44444444}, s = {0x33333333, 0x33333333, 0x44444444, 0x44444444}}, h = {u = {0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}, s = {0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}}, b = {u = {0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}, s = {0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}}}
z2 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0x5555555555555555, 0x6666666666666666}, s = {0x5555555555555555, 0x6666666666666666}}, s = {f = {0x55500000, 0x55500000, 0xffffffff, 0xffffffff}, u = {0x55555555, 0x55555555, 0x66666666, 0x66666666}, s = {0x55555555, 0x55555555, 0x66666666, 0x66666666}}, h = {u = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666}, s = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666}}, b = {u = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66}, s = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66}}}
z3 {d = {f = {0x7fffffffffffffff, 0x0}, u = {0x7777777777777777, 0x8888888888888888}, s = {0x7777777777777777, 0x8888888888888888}}, s = {f = {0xffffffff, 0xffffffff, 0x0, 0x0}, u = {0x77777777, 0x77777777, 0x88888888, 0x88888888}, s = {0x77777777, 0x77777777, 0x88888888, 0x88888888}}, h = {u = {0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}, s = {0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}}, b = {u = {0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}, s = {0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}}}
z4 {d = {f = {0x0, 0x0}, u = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa}, s = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa}, s = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa}}, h = {u = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa}, s = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa}}, b = {u = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa}, s = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa}}}
z5 {d = {f = {0x0, 0x8000000000000000}, u = {0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}, s = {0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}}, s = {f = {0x0, 0x0, 0xf99999a0, 0xf99999a0}, u = {0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}, s = {0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}}, h = {u = {0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}, s = {0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}}, b = {u = {0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}, s = {0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}}}
z6 {d = {f = {0x8000000000000000, 0x8000000000000000}, u = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee}, s = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee}, s = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee}}, h = {u = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee}, s = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee}}, b = {u = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee}, s = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee}}}
z7 {d = {f = {0x8000000000000000, 0x0}, u = {0xffffffffffffffff, 0x1111111122222222}, s = {0xffffffffffffffff, 0x1111111122222222}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0xffffffff, 0xffffffff, 0x22222222, 0x11111111}, s = {0xffffffff, 0xffffffff, 0x22222222, 0x11111111}}, h = {u = {0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}, s = {0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}}, b = {u = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}, s = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}}}
z8 {d = {f = {0x0, 0x0}, u = {0x2222222233333333, 0x3333333344444444}, s = {0x2222222233333333, 0x3333333344444444}}, s = {f = {0x0, 0x0, 0x311, 0x0}, u = {0x33333333, 0x22222222, 0x44444444, 0x33333333}, s = {0x33333333, 0x22222222, 0x44444444, 0x33333333}}, h = {u = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333}, s = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333}}, b = {u = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33}, s = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33}}}
z9 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0x4444444455555555, 0x5555555566666666}, s = {0x4444444455555555, 0x5555555566666666}}, s = {f = {0x55500000, 0x311, 0xffffffff, 0x55500000}, u = {0x55555555, 0x44444444, 0x66666666, 0x55555555}, s = {0x55555555, 0x44444444, 0x66666666, 0x55555555}}, h = {u = {0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}, s = {0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}}, b = {u = {0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}, s = {0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}}}
z10 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0x6666666677777777, 0x7777777788888888}, s = {0x6666666677777777, 0x7777777788888888}}, s = {f = {0xffffffff, 0xffffffff, 0x0, 0xffffffff}, u = {0x77777777, 0x66666666, 0x88888888, 0x77777777}, s = {0x77777777, 0x66666666, 0x88888888, 0x77777777}}, h = {u = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777}, s = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777}}, b = {u = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77}, s = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77}}}
z11 {d = {f = {0x0, 0x0}, u = {0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}, s = {0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}, s = {0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}}, h = {u = {0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}, s = {0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}}, b = {u = {0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}, s = {0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}}}
z12 {d = {f = {0x0, 0x8000000000000000}, u = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd}, s = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd}}, s = {f = {0xf99999a0, 0x0, 0x0, 0xf99999a0}, u = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc}, s = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc}}, h = {u = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc}, s = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc}}, b = {u = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc}, s = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc}}}
z13 {d = {f = {0x8000000000000000, 0x8000000000000000}, u = {0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}, s = {0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}, s = {0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}}, h = {u = {0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}, s = {0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}}, b = {u = {0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}, s = {0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}}}
z14 {d = {f = {0x8000000000000000, 0x0}, u = {0xffffffff11111111, 0x1111222233334444}, s = {0xffffffff11111111, 0x1111222233334444}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0x11111111, 0xffffffff, 0x33334444, 0x11112222}, s = {0x11111111, 0xffffffff, 0x33334444, 0x11112222}}, h = {u = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111}, s = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11}, s = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11}}}
z15 {d = {f = {0x7fffffffffffffff, 0x0}, u = {0x5555666677778888, 0x9999aaaabbbbcccc}, s = {0x5555666677778888, 0x9999aaaabbbbcccc}}, s = {f = {0xffffffff, 0x66600000, 0x0, 0x0}, u = {0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}, s = {0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}}, h = {u = {0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}, s = {0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}}, b = {u = {0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}, s = {0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}}}
z16 {d = {f = {0x8000000000000000, 0x8000000000000000}, u = {0xddddeeeeffff1111, 0xffffeeeeddddcccc}, s = {0xddddeeeeffff1111, 0xffffeeeeddddcccc}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee}, s = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee}}, h = {u = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff}, s = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff}}, b = {u = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff}, s = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff}}}
z17 {d = {f = {0x0, 0x7fffffffffffffff}, u = {0xbbbbaaaa99998888, 0x7777666655554444}, s = {0xbbbbaaaa99998888, 0x7777666655554444}}, s = {f = {0x0, 0x0, 0x44400000, 0xffffffff}, u = {0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}, s = {0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}}, h = {u = {0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}, s = {0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}}, b = {u = {0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}, s = {0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}}}
z18 {d = {f = {0x0, 0x0}, u = {0x333322221111ffff, 0x1122334455667788}, s = {0x333322221111ffff, 0x1122334455667788}}, s = {f = {0x0, 0x0, 0x78800000, 0x0}, u = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344}, s = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344}}, h = {u = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122}, s = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122}}, b = {u = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11}, s = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11}}}
z19 {d = {f = {0x0, 0x8000000000000000}, u = {0x99aabbccddeeff11, 0xffeeddccbbaa9988}, s = {0x99aabbccddeeff11, 0xffeeddccbbaa9988}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}, s = {0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}}, h = {u = {0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}, s = {0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}}, b = {u = {0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}, s = {0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}}}
z20 {d = {f = {0x7fffffffffffffff, 0x0}, u = {0x77665544332211ff, 0x123456789abcdef1}, s = {0x77665544332211ff, 0x123456789abcdef1}}, s = {f = {0x0, 0xffffffff, 0x0, 0x0}, u = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678}, s = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678}}, h = {u = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234}, s = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234}}, b = {u = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12}, s = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12}}}
z21 {d = {f = {0x8000000000000000, 0x8000000000000000}, u = {0xfedcba987654321f, 0xcafecafecafecafe}, s = {0xfedcba987654321f, 0xcafecafecafecafe}}, s = {f = {0xffffffff, 0x0, 0xff809a81, 0xff809a81}, u = {0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe}, s = {0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe}}, h = {u = {0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe}, s = {0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe}}, b = {u = {0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca}, s = {0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca}}}
z22 {d = {f = {0x0, 0x0}, u = {0x1111111111111111, 0x2222222222222222}, s = {0x1111111111111111, 0x2222222222222222}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0x11111111, 0x11111111, 0x22222222, 0x22222222}, s = {0x11111111, 0x11111111, 0x22222222, 0x22222222}}, h = {u = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222}, s = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22}, s = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22}}}
z23 {d = {f = {0x0, 0x7fffffffffffffff}, u = {0x3333333333333333, 0x4444444444444444}, s = {0x3333333333333333, 0x4444444444444444}}, s = {f = {0x0, 0x0, 0x311, 0x311}, u = {0x33333333, 0x33333333, 0x44444444, 0x44444444}, s = {0x33333333, 0x33333333, 0x44444444, 0x44444444}}, h = {u = {0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}, s = {0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}}, b = {u = {0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}, s = {0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}}}
z24 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0x5555555555555555, 0x6666666666666666}, s = {0x5555555555555555, 0x6666666666666666}}, s = {f = {0x55500000, 0x55500000, 0xffffffff, 0xffffffff}, u = {0x55555555, 0x55555555, 0x66666666, 0x66666666}, s = {0x55555555, 0x55555555, 0x66666666, 0x66666666}}, h = {u = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666}, s = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666}}, b = {u = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66}, s = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66}}}
z25 {d = {f = {0x7fffffffffffffff, 0x0}, u = {0x7777777777777777, 0x8888888888888888}, s = {0x7777777777777777, 0x8888888888888888}}, s = {f = {0xffffffff, 0xffffffff, 0x0, 0x0}, u = {0x77777777, 0x77777777, 0x88888888, 0x88888888}, s = {0x77777777, 0x77777777, 0x88888888, 0x88888888}}, h = {u = {0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}, s = {0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}}, b = {u = {0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}, s = {0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}}}
z26 {d = {f = {0x0, 0x0}, u = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa}, s = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa}, s = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa}}, h = {u = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa}, s = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa}}, b = {u = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa}, s = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa}}}
z27 {d = {f = {0x0, 0x8000000000000000}, u = {0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}, s = {0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}}, s = {f = {0x0, 0x0, 0xf99999a0, 0xf99999a0}, u = {0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}, s = {0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}}, h = {u = {0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}, s = {0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}}, b = {u = {0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}, s = {0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}}}
z28 {d = {f = {0x8000000000000000, 0x8000000000000000}, u = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee}, s = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee}, s = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee}}, h = {u = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee}, s = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee}}, b = {u = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee}, s = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee}}}
z29 {d = {f = {0x8000000000000000, 0x0}, u = {0xffffffffffffffff, 0x1111111122222222}, s = {0xffffffffffffffff, 0x1111111122222222}}, s = {f = {0x0, 0x0, 0x0, 0x0}, u = {0xffffffff, 0xffffffff, 0x22222222, 0x11111111}, s = {0xffffffff, 0xffffffff, 0x22222222, 0x11111111}}, h = {u = {0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}, s = {0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}}, b = {u = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}, s = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}}}
z30 {d = {f = {0x0, 0x0}, u = {0x2222222233333333, 0x3333333344444444}, s = {0x2222222233333333, 0x3333333344444444}}, s = {f = {0x0, 0x0, 0x311, 0x0}, u = {0x33333333, 0x22222222, 0x44444444, 0x33333333}, s = {0x33333333, 0x22222222, 0x44444444, 0x33333333}}, h = {u = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333}, s = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333}}, b = {u = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33}, s = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33}}}
z31 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0x4444444455555555, 0x5555555566666666}, s = {0x4444444455555555, 0x5555555566666666}}, s = {f = {0x55500000, 0x311, 0xffffffff, 0x55500000}, u = {0x55555555, 0x44444444, 0x66666666, 0x55555555}, s = {0x55555555, 0x44444444, 0x66666666, 0x55555555}}, h = {u = {0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}, s = {0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}}, b = {u = {0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}, s = {0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}}}
p0 {0x11, 0x11}
p1 {0x22, 0x22}
p2 {0x33, 0x33}
p3 {0x44, 0x44}
p4 {0x55, 0x55}
p5 {0x66, 0x66}
p6 {0x77, 0x77}
p7 {0x88, 0x88}
p8 {0x99, 0x99}
p9 {0xaa, 0xaa}
p10 {0xbb, 0xbb}
p11 {0xcc, 0xcc}
p12 {0xdd, 0xdd}
p13 {0xee, 0xee}
p14 {0xff, 0xff}
p15 {0x22, 0x22}
vg 0x2 2
fpsr 0x0 0
fpcr 0x0 0

View File

@ -0,0 +1,51 @@
z0 {d = {f = {0x0, 0x0, 0x0, 0x7fffffffffffffff}, u = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}, s = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x311}, u = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}, s = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}}, h = {u = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}, s = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}, s = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}}}
z1 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0}, u = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}, s = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}}, s = {f = {0x55500000, 0x55500000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0, 0x0}, u = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}, s = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}}, h = {u = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}, s = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}}, b = {u = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}, s = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}}}
z2 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000}, u = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}, s = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0xf99999a0}, u = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}, s = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}}, h = {u = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}, s = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}}, b = {u = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}, s = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}}}
z3 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0}, u = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}, s = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}, s = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}}, h = {u = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}, s = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}}, b = {u = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}, s = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}}}
z4 {d = {f = {0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}, s = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}}, s = {f = {0x0, 0x0, 0x311, 0x0, 0x55500000, 0x311, 0xffffffff, 0x55500000}, u = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}, s = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}}, h = {u = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}, s = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}}, b = {u = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}, s = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}}}
z5 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0}, u = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}, s = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}}, s = {f = {0xffffffff, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0}, u = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}, s = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}}, h = {u = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}, s = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}}, b = {u = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}, s = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}}}
z6 {d = {f = {0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000}, u = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}, s = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}}, s = {f = {0xf99999a0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0}, u = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}, s = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}}, h = {u = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}, s = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}}, b = {u = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}, s = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}}}
z7 {d = {f = {0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0}, u = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}, s = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x66600000, 0x0, 0x0}, u = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}, s = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}}, h = {u = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}, s = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}, s = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}}}
z8 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff}, u = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}, s = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44400000, 0xffffffff}, u = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}, s = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}}, h = {u = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}, s = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}}, b = {u = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}, s = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}}}
z9 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000}, u = {0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}, s = {0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}}, s = {f = {0x0, 0x0, 0x78800000, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}, s = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}}, h = {u = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}, s = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}}, b = {u = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}, s = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}}}
z10 {d = {f = {0x7fffffffffffffff, 0x0, 0x8000000000000000, 0x8000000000000000}, u = {0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe}, s = {0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe}}, s = {f = {0x0, 0xffffffff, 0x0, 0x0, 0xffffffff, 0x0, 0xff809a81, 0xff809a81}, u = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe}, s = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe}}, h = {u = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe}, s = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe}}, b = {u = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca}, s = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca}}}
z11 {d = {f = {0x0, 0x0, 0x0, 0x7fffffffffffffff}, u = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}, s = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x311}, u = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}, s = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}}, h = {u = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}, s = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}, s = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}}}
z12 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0}, u = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}, s = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}}, s = {f = {0x55500000, 0x55500000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0, 0x0}, u = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}, s = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}}, h = {u = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}, s = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}}, b = {u = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}, s = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}}}
z13 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000}, u = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}, s = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0xf99999a0}, u = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}, s = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}}, h = {u = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}, s = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}}, b = {u = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}, s = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}}}
z14 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0}, u = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}, s = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}, s = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}}, h = {u = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}, s = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}}, b = {u = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}, s = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}}}
z15 {d = {f = {0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}, s = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}}, s = {f = {0x0, 0x0, 0x311, 0x0, 0x55500000, 0x311, 0xffffffff, 0x55500000}, u = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}, s = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}}, h = {u = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}, s = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}}, b = {u = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}, s = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}}}
z16 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0}, u = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}, s = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}}, s = {f = {0xffffffff, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0}, u = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}, s = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}}, h = {u = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}, s = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}}, b = {u = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}, s = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}}}
z17 {d = {f = {0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000}, u = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}, s = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}}, s = {f = {0xf99999a0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0}, u = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}, s = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}}, h = {u = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}, s = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}}, b = {u = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}, s = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}}}
z18 {d = {f = {0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0}, u = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}, s = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x66600000, 0x0, 0x0}, u = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}, s = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}}, h = {u = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}, s = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}, s = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}}}
z19 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff}, u = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}, s = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44400000, 0xffffffff}, u = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}, s = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}}, h = {u = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}, s = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}}, b = {u = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}, s = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}}}
z20 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000}, u = {0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}, s = {0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}}, s = {f = {0x0, 0x0, 0x78800000, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}, s = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}}, h = {u = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}, s = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}}, b = {u = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}, s = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}}}
z21 {d = {f = {0x7fffffffffffffff, 0x0, 0x8000000000000000, 0x8000000000000000}, u = {0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe}, s = {0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe}}, s = {f = {0x0, 0xffffffff, 0x0, 0x0, 0xffffffff, 0x0, 0xff809a81, 0xff809a81}, u = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe}, s = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe}}, h = {u = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe}, s = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe}}, b = {u = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca}, s = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca}}}
z22 {d = {f = {0x0, 0x0, 0x0, 0x7fffffffffffffff}, u = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}, s = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x311}, u = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}, s = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}}, h = {u = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}, s = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}, s = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}}}
z23 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0}, u = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}, s = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}}, s = {f = {0x55500000, 0x55500000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0, 0x0}, u = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}, s = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}}, h = {u = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}, s = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}}, b = {u = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}, s = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}}}
z24 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000}, u = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}, s = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0xf99999a0}, u = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}, s = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}}, h = {u = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}, s = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}}, b = {u = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}, s = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}}}
z25 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0}, u = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}, s = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}, s = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}}, h = {u = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}, s = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}}, b = {u = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}, s = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}}}
z26 {d = {f = {0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}, s = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}}, s = {f = {0x0, 0x0, 0x311, 0x0, 0x55500000, 0x311, 0xffffffff, 0x55500000}, u = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}, s = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}}, h = {u = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}, s = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}}, b = {u = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}, s = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}}}
z27 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0}, u = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}, s = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}}, s = {f = {0xffffffff, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0}, u = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}, s = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}}, h = {u = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}, s = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}}, b = {u = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}, s = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}}}
z28 {d = {f = {0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000}, u = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}, s = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}}, s = {f = {0xf99999a0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0}, u = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}, s = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}}, h = {u = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}, s = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}}, b = {u = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}, s = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}}}
z29 {d = {f = {0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0}, u = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}, s = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x66600000, 0x0, 0x0}, u = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}, s = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}}, h = {u = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}, s = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}, s = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}}}
z30 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff}, u = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}, s = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44400000, 0xffffffff}, u = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}, s = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}}, h = {u = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}, s = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}}, b = {u = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}, s = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}}}
z31 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000}, u = {0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}, s = {0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}}, s = {f = {0x0, 0x0, 0x78800000, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}, s = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}}, h = {u = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}, s = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}}, b = {u = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}, s = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}}}
p0 {0x11, 0x11, 0x22, 0x22}
p1 {0x33, 0x33, 0x44, 0x44}
p2 {0x55, 0x55, 0x66, 0x66}
p3 {0x77, 0x77, 0x88, 0x88}
p4 {0x99, 0x99, 0xaa, 0xaa}
p5 {0xbb, 0xbb, 0xcc, 0xcc}
p6 {0xdd, 0xdd, 0xee, 0xee}
p7 {0xff, 0xff, 0x22, 0x22}
p8 {0x33, 0x33, 0x44, 0x44}
p9 {0x55, 0x55, 0x66, 0x66}
p10 {0x77, 0x77, 0x88, 0x88}
p11 {0xaa, 0xaa, 0xbb, 0xbb}
p12 {0xcc, 0xcc, 0xdd, 0xdd}
p13 {0xee, 0xee, 0xff, 0xff}
p14 {0x11, 0x11, 0x44, 0x44}
p15 {0x88, 0x88, 0xcc, 0xcc}
vg 0x4 4
fpsr 0x0 0
fpcr 0x0 0

View File

@ -0,0 +1,51 @@
z0 {d = {f = {0x0, 0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0}, u = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444, 0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}, s = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444, 0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x311, 0x55500000, 0x55500000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0, 0x0}, u = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444, 0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}, s = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444, 0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}}, h = {u = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444, 0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}, s = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444, 0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}, s = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}}}
z1 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0}, u = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc, 0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}, s = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc, 0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc, 0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}, s = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc, 0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}}, h = {u = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc, 0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}, s = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc, 0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}}, b = {u = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}, s = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}}}
z2 {d = {f = {0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0}, u = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666, 0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}, s = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666, 0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}}, s = {f = {0x0, 0x0, 0x311, 0x0, 0x55500000, 0x311, 0xffffffff, 0x55500000, 0xffffffff, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0}, u = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555, 0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}, s = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555, 0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}}, h = {u = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555, 0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}, s = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555, 0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}}, b = {u = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}, s = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}}}
z3 {d = {f = {0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0}, u = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff, 0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}, s = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff, 0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}}, s = {f = {0xf99999a0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x66600000, 0x0, 0x0}, u = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee, 0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}, s = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee, 0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}}, h = {u = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee, 0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}, s = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee, 0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}}, b = {u = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee, 0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}, s = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee, 0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}}}
z4 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0, 0x0, 0x0, 0x8000000000000000}, u = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444, 0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}, s = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444, 0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44400000, 0xffffffff, 0x0, 0x0, 0x78800000, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666, 0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}, s = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666, 0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}}, h = {u = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777, 0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}, s = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777, 0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}}, b = {u = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77, 0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}, s = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77, 0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}}}
z5 {d = {f = {0x7fffffffffffffff, 0x0, 0x8000000000000000, 0x8000000000000000, 0x0, 0x0, 0x0, 0x7fffffffffffffff}, u = {0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe, 0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}, s = {0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe, 0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}}, s = {f = {0x0, 0xffffffff, 0x0, 0x0, 0xffffffff, 0x0, 0xff809a81, 0xff809a81, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x311}, u = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe, 0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}, s = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe, 0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}}, h = {u = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe, 0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}, s = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe, 0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}}, b = {u = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}, s = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}}}
z6 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x8000000000000000}, u = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888, 0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}, s = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888, 0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}}, s = {f = {0x55500000, 0x55500000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0xf99999a0}, u = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888, 0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}, s = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888, 0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}}, h = {u = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888, 0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}, s = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888, 0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}}, b = {u = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}, s = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}}}
z7 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0, 0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222, 0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}, s = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222, 0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x0, 0x55500000, 0x311, 0xffffffff, 0x55500000}, u = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111, 0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}, s = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111, 0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}}, h = {u = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111, 0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}, s = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111, 0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}}, b = {u = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11, 0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}, s = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11, 0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}}}
z8 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0, 0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000}, u = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb, 0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}, s = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb, 0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}}, s = {f = {0xffffffff, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0}, u = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa, 0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}, s = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa, 0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}}, h = {u = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa, 0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}, s = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa, 0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}}, b = {u = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}, s = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}}}
z9 {d = {f = {0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0, 0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff}, u = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc, 0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}, s = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc, 0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x66600000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44400000, 0xffffffff}, u = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa, 0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}, s = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa, 0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}}, h = {u = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999, 0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}, s = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999, 0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99, 0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}, s = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99, 0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}}}
z10 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000, 0x7fffffffffffffff, 0x0, 0x8000000000000000, 0x8000000000000000}, u = {0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988, 0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe}, s = {0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988, 0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe}}, s = {f = {0x0, 0x0, 0x78800000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x0, 0x0, 0xffffffff, 0x0, 0xff809a81, 0xff809a81}, u = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc, 0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe}, s = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc, 0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe}}, h = {u = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee, 0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe}, s = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee, 0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe}}, b = {u = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca}, s = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca}}}
z11 {d = {f = {0x0, 0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0}, u = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444, 0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}, s = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444, 0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x311, 0x55500000, 0x55500000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0, 0x0}, u = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444, 0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}, s = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444, 0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}}, h = {u = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444, 0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}, s = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444, 0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}, s = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}}}
z12 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0}, u = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc, 0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}, s = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc, 0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc, 0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}, s = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc, 0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}}, h = {u = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc, 0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}, s = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc, 0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}}, b = {u = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}, s = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}}}
z13 {d = {f = {0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0}, u = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666, 0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}, s = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666, 0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}}, s = {f = {0x0, 0x0, 0x311, 0x0, 0x55500000, 0x311, 0xffffffff, 0x55500000, 0xffffffff, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0}, u = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555, 0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}, s = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555, 0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}}, h = {u = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555, 0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}, s = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555, 0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}}, b = {u = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}, s = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}}}
z14 {d = {f = {0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0}, u = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff, 0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}, s = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff, 0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}}, s = {f = {0xf99999a0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x66600000, 0x0, 0x0}, u = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee, 0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}, s = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee, 0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}}, h = {u = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee, 0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}, s = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee, 0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}}, b = {u = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee, 0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}, s = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee, 0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}}}
z15 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0, 0x0, 0x0, 0x8000000000000000}, u = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444, 0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}, s = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444, 0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44400000, 0xffffffff, 0x0, 0x0, 0x78800000, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666, 0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}, s = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666, 0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}}, h = {u = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777, 0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}, s = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777, 0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}}, b = {u = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77, 0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}, s = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77, 0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}}}
z16 {d = {f = {0x7fffffffffffffff, 0x0, 0x8000000000000000, 0x8000000000000000, 0x0, 0x0, 0x0, 0x7fffffffffffffff}, u = {0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe, 0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}, s = {0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe, 0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}}, s = {f = {0x0, 0xffffffff, 0x0, 0x0, 0xffffffff, 0x0, 0xff809a81, 0xff809a81, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x311}, u = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe, 0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}, s = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe, 0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}}, h = {u = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe, 0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}, s = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe, 0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}}, b = {u = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}, s = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}}}
z17 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x8000000000000000}, u = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888, 0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}, s = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888, 0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}}, s = {f = {0x55500000, 0x55500000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0xf99999a0}, u = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888, 0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}, s = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888, 0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}}, h = {u = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888, 0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}, s = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888, 0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}}, b = {u = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}, s = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}}}
z18 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0, 0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222, 0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}, s = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222, 0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x0, 0x55500000, 0x311, 0xffffffff, 0x55500000}, u = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111, 0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}, s = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111, 0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}}, h = {u = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111, 0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}, s = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111, 0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}}, b = {u = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11, 0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}, s = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11, 0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}}}
z19 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0, 0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000}, u = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb, 0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}, s = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb, 0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}}, s = {f = {0xffffffff, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0}, u = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa, 0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}, s = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa, 0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}}, h = {u = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa, 0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}, s = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa, 0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}}, b = {u = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}, s = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}}}
z20 {d = {f = {0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0, 0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff}, u = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc, 0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}, s = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc, 0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x66600000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44400000, 0xffffffff}, u = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa, 0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}, s = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa, 0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}}, h = {u = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999, 0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}, s = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999, 0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99, 0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}, s = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99, 0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}}}
z21 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000, 0x7fffffffffffffff, 0x0, 0x8000000000000000, 0x8000000000000000}, u = {0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988, 0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe}, s = {0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988, 0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe}}, s = {f = {0x0, 0x0, 0x78800000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x0, 0x0, 0xffffffff, 0x0, 0xff809a81, 0xff809a81}, u = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc, 0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe}, s = {0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc, 0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe}}, h = {u = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee, 0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe}, s = {0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee, 0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe}}, b = {u = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca}, s = {0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff, 0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca}}}
z22 {d = {f = {0x0, 0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0}, u = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444, 0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}, s = {0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444, 0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x311, 0x55500000, 0x55500000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0, 0x0}, u = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444, 0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}, s = {0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444, 0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888}}, h = {u = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444, 0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}, s = {0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444, 0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}, s = {0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}}}
z23 {d = {f = {0x0, 0x0, 0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0}, u = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc, 0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}, s = {0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc, 0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc, 0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}, s = {0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc, 0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111}}, h = {u = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc, 0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}, s = {0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc, 0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111}}, b = {u = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}, s = {0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11}}}
z24 {d = {f = {0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0}, u = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666, 0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}, s = {0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666, 0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb}}, s = {f = {0x0, 0x0, 0x311, 0x0, 0x55500000, 0x311, 0xffffffff, 0x55500000, 0xffffffff, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0}, u = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555, 0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}, s = {0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555, 0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa}}, h = {u = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555, 0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}, s = {0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555, 0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa}}, b = {u = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}, s = {0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa}}}
z25 {d = {f = {0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0}, u = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff, 0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}, s = {0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff, 0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc}}, s = {f = {0xf99999a0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x66600000, 0x0, 0x0}, u = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee, 0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}, s = {0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee, 0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa}}, h = {u = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee, 0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}, s = {0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee, 0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999}}, b = {u = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee, 0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}, s = {0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee, 0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99}}}
z26 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0, 0x0, 0x0, 0x8000000000000000}, u = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444, 0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}, s = {0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444, 0x333322221111ffff, 0x1122334455667788, 0x99aabbccddeeff11, 0xffeeddccbbaa9988}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44400000, 0xffffffff, 0x0, 0x0, 0x78800000, 0x0, 0x0, 0x0, 0x0, 0x0}, u = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666, 0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}, s = {0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666, 0x1111ffff, 0x33332222, 0x55667788, 0x11223344, 0xddeeff11, 0x99aabbcc, 0xbbaa9988, 0xffeeddcc}}, h = {u = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777, 0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}, s = {0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777, 0xffff, 0x1111, 0x2222, 0x3333, 0x7788, 0x5566, 0x3344, 0x1122, 0xff11, 0xddee, 0xbbcc, 0x99aa, 0x9988, 0xbbaa, 0xddcc, 0xffee}}, b = {u = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77, 0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}, s = {0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77, 0xff, 0xff, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0x11, 0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa, 0x99, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff}}}
z27 {d = {f = {0x7fffffffffffffff, 0x0, 0x8000000000000000, 0x8000000000000000, 0x0, 0x0, 0x0, 0x7fffffffffffffff}, u = {0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe, 0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}, s = {0x77665544332211ff, 0x123456789abcdef1, 0xfedcba987654321f, 0xcafecafecafecafe, 0x1111111111111111, 0x2222222222222222, 0x3333333333333333, 0x4444444444444444}}, s = {f = {0x0, 0xffffffff, 0x0, 0x0, 0xffffffff, 0x0, 0xff809a81, 0xff809a81, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x311}, u = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe, 0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}, s = {0x332211ff, 0x77665544, 0x9abcdef1, 0x12345678, 0x7654321f, 0xfedcba98, 0xcafecafe, 0xcafecafe, 0x11111111, 0x11111111, 0x22222222, 0x22222222, 0x33333333, 0x33333333, 0x44444444, 0x44444444}}, h = {u = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe, 0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}, s = {0x11ff, 0x3322, 0x5544, 0x7766, 0xdef1, 0x9abc, 0x5678, 0x1234, 0x321f, 0x7654, 0xba98, 0xfedc, 0xcafe, 0xcafe, 0xcafe, 0xcafe, 0x1111, 0x1111, 0x1111, 0x1111, 0x2222, 0x2222, 0x2222, 0x2222, 0x3333, 0x3333, 0x3333, 0x3333, 0x4444, 0x4444, 0x4444, 0x4444}}, b = {u = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}, s = {0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0xf1, 0xde, 0xbc, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x1f, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0xfe, 0xca, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}}}
z28 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x8000000000000000}, u = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888, 0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}, s = {0x5555555555555555, 0x6666666666666666, 0x7777777777777777, 0x8888888888888888, 0x9999999999999999, 0xaaaaaaaaaaaaaaaa, 0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc}}, s = {f = {0x55500000, 0x55500000, 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0xf99999a0}, u = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888, 0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}, s = {0x55555555, 0x55555555, 0x66666666, 0x66666666, 0x77777777, 0x77777777, 0x88888888, 0x88888888, 0x99999999, 0x99999999, 0xaaaaaaaa, 0xaaaaaaaa, 0xbbbbbbbb, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc}}, h = {u = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888, 0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}, s = {0x5555, 0x5555, 0x5555, 0x5555, 0x6666, 0x6666, 0x6666, 0x6666, 0x7777, 0x7777, 0x7777, 0x7777, 0x8888, 0x8888, 0x8888, 0x8888, 0x9999, 0x9999, 0x9999, 0x9999, 0xaaaa, 0xaaaa, 0xaaaa, 0xaaaa, 0xbbbb, 0xbbbb, 0xbbbb, 0xbbbb, 0xcccc, 0xcccc, 0xcccc, 0xcccc}}, b = {u = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}, s = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x77, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc}}}
z29 {d = {f = {0x8000000000000000, 0x8000000000000000, 0x8000000000000000, 0x0, 0x0, 0x0, 0x7fffffffffffffff, 0x7fffffffffffffff}, u = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222, 0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}, s = {0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee, 0xffffffffffffffff, 0x1111111122222222, 0x2222222233333333, 0x3333333344444444, 0x4444444455555555, 0x5555555566666666}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x311, 0x0, 0x55500000, 0x311, 0xffffffff, 0x55500000}, u = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111, 0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}, s = {0xdddddddd, 0xdddddddd, 0xeeeeeeee, 0xeeeeeeee, 0xffffffff, 0xffffffff, 0x22222222, 0x11111111, 0x33333333, 0x22222222, 0x44444444, 0x33333333, 0x55555555, 0x44444444, 0x66666666, 0x55555555}}, h = {u = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111, 0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}, s = {0xdddd, 0xdddd, 0xdddd, 0xdddd, 0xeeee, 0xeeee, 0xeeee, 0xeeee, 0xffff, 0xffff, 0xffff, 0xffff, 0x2222, 0x2222, 0x1111, 0x1111, 0x3333, 0x3333, 0x2222, 0x2222, 0x4444, 0x4444, 0x3333, 0x3333, 0x5555, 0x5555, 0x4444, 0x4444, 0x6666, 0x6666, 0x5555, 0x5555}}, b = {u = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11, 0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}, s = {0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x22, 0x22, 0x22, 0x22, 0x11, 0x11, 0x11, 0x11, 0x33, 0x33, 0x33, 0x33, 0x22, 0x22, 0x22, 0x22, 0x44, 0x44, 0x44, 0x44, 0x33, 0x33, 0x33, 0x33, 0x55, 0x55, 0x55, 0x55, 0x44, 0x44, 0x44, 0x44, 0x66, 0x66, 0x66, 0x66, 0x55, 0x55, 0x55, 0x55}}}
z30 {d = {f = {0x7fffffffffffffff, 0x7fffffffffffffff, 0x0, 0x0, 0x0, 0x8000000000000000, 0x8000000000000000, 0x8000000000000000}, u = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb, 0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}, s = {0x6666666677777777, 0x7777777788888888, 0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb, 0xbbbbbbbbcccccccc, 0xccccccccdddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeffffffff}}, s = {f = {0xffffffff, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0xf99999a0, 0x0, 0x0, 0x0, 0x0}, u = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa, 0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}, s = {0x77777777, 0x66666666, 0x88888888, 0x77777777, 0xaaaaaaaa, 0x99999999, 0xbbbbbbbb, 0xaaaaaaaa, 0xcccccccc, 0xbbbbbbbb, 0xdddddddd, 0xcccccccc, 0xeeeeeeee, 0xdddddddd, 0xffffffff, 0xeeeeeeee}}, h = {u = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa, 0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}, s = {0x7777, 0x7777, 0x6666, 0x6666, 0x8888, 0x8888, 0x7777, 0x7777, 0xaaaa, 0xaaaa, 0x9999, 0x9999, 0xbbbb, 0xbbbb, 0xaaaa, 0xaaaa, 0xcccc, 0xcccc, 0xbbbb, 0xbbbb, 0xdddd, 0xdddd, 0xcccc, 0xcccc, 0xeeee, 0xeeee, 0xdddd, 0xdddd, 0xffff, 0xffff, 0xeeee, 0xeeee}}, b = {u = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}, s = {0x77, 0x77, 0x77, 0x77, 0x66, 0x66, 0x66, 0x66, 0x88, 0x88, 0x88, 0x88, 0x77, 0x77, 0x77, 0x77, 0xaa, 0xaa, 0xaa, 0xaa, 0x99, 0x99, 0x99, 0x99, 0xbb, 0xbb, 0xbb, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xcc, 0xcc, 0xcc, 0xcc, 0xbb, 0xbb, 0xbb, 0xbb, 0xdd, 0xdd, 0xdd, 0xdd, 0xcc, 0xcc, 0xcc, 0xcc, 0xee, 0xee, 0xee, 0xee, 0xdd, 0xdd, 0xdd, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xee, 0xee, 0xee, 0xee}}}
z31 {d = {f = {0x8000000000000000, 0x0, 0x7fffffffffffffff, 0x0, 0x8000000000000000, 0x8000000000000000, 0x0, 0x7fffffffffffffff}, u = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc, 0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}, s = {0xffffffff11111111, 0x1111222233334444, 0x5555666677778888, 0x9999aaaabbbbcccc, 0xddddeeeeffff1111, 0xffffeeeeddddcccc, 0xbbbbaaaa99998888, 0x7777666655554444}}, s = {f = {0x0, 0x0, 0x0, 0x0, 0xffffffff, 0x66600000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44400000, 0xffffffff}, u = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa, 0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}, s = {0x11111111, 0xffffffff, 0x33334444, 0x11112222, 0x77778888, 0x55556666, 0xbbbbcccc, 0x9999aaaa, 0xffff1111, 0xddddeeee, 0xddddcccc, 0xffffeeee, 0x99998888, 0xbbbbaaaa, 0x55554444, 0x77776666}}, h = {u = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999, 0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}, s = {0x1111, 0x1111, 0xffff, 0xffff, 0x4444, 0x3333, 0x2222, 0x1111, 0x8888, 0x7777, 0x6666, 0x5555, 0xcccc, 0xbbbb, 0xaaaa, 0x9999, 0x1111, 0xffff, 0xeeee, 0xdddd, 0xcccc, 0xdddd, 0xeeee, 0xffff, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0x4444, 0x5555, 0x6666, 0x7777}}, b = {u = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99, 0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}, s = {0x11, 0x11, 0x11, 0x11, 0xff, 0xff, 0xff, 0xff, 0x44, 0x44, 0x33, 0x33, 0x22, 0x22, 0x11, 0x11, 0x88, 0x88, 0x77, 0x77, 0x66, 0x66, 0x55, 0x55, 0xcc, 0xcc, 0xbb, 0xbb, 0xaa, 0xaa, 0x99, 0x99, 0x11, 0x11, 0xff, 0xff, 0xee, 0xee, 0xdd, 0xdd, 0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x88, 0x88, 0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77}}}
p0 {0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x44, 0x44}
p1 {0x55, 0x55, 0x66, 0x66, 0x77, 0x77, 0x88, 0x88}
p2 {0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0xcc, 0xcc}
p3 {0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x22, 0x22}
p4 {0x33, 0x33, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66}
p5 {0x77, 0x77, 0x88, 0x88, 0xaa, 0xaa, 0xbb, 0xbb}
p6 {0xcc, 0xcc, 0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff}
p7 {0x11, 0x11, 0x44, 0x44, 0x88, 0x88, 0xcc, 0xcc}
p8 {0x11, 0x11, 0xcc, 0xcc, 0x88, 0x88, 0x44, 0x44}
p9 {0xff, 0xff, 0x88, 0x77, 0x11, 0xff, 0x88, 0x99}
p10 {0xff, 0x11, 0xf1, 0xde, 0x1f, 0x32, 0xfe, 0xca}
p11 {0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x44, 0x44}
p12 {0x55, 0x55, 0x66, 0x66, 0x77, 0x77, 0x88, 0x88}
p13 {0x99, 0x99, 0xaa, 0xaa, 0xbb, 0xbb, 0xcc, 0xcc}
p14 {0xdd, 0xdd, 0xee, 0xee, 0xff, 0xff, 0x22, 0x22}
p15 {0x33, 0x33, 0x44, 0x44, 0x55, 0x55, 0x66, 0x66}
vg 0x8 8
fpsr 0x0 0
fpcr 0x0 0

80
test/sve/inf/TEST040.inf Normal file
View File

@ -0,0 +1,80 @@
# TEST040.inf COPYRIGHT FUJITSU LIMITED 2019
# set logging filename
set logging file ./TEST040.log
# log overwrite
set logging overwrite on
# log redirect
set logging redirect on
# set logging on
set logging on
# disable the "Type <return> to continue, or q <return> to quit"
set height 0
# show Z registers
i r z0
i r z1
i r z2
i r z3
i r z4
i r z5
i r z6
i r z7
i r z8
i r z9
i r z10
i r z11
i r z12
i r z13
i r z14
i r z15
i r z16
i r z17
i r z18
i r z19
i r z20
i r z21
i r z22
i r z23
i r z24
i r z25
i r z26
i r z27
i r z28
i r z29
i r z30
i r z31
# show P registers
i r p0
i r p1
i r p2
i r p3
i r p4
i r p5
i r p6
i r p7
i r p8
i r p9
i r p10
i r p11
i r p12
i r p13
i r p14
i r p15
# show vg(VL)
i r vg
# show fpsr/fpcr
i r fpsr
i r fpcr
# set logging on
set logging off
quit

86
test/sve/inf/TEST041.inf Normal file
View File

@ -0,0 +1,86 @@
# TEST041.inf COPYRIGHT FUJITSU LIMITED 2019
# set logging filename
set logging file ./TEST041.log
# log overwrite
set logging overwrite on
# log redirect
set logging redirect on
# disable the "Type <return> to continue, or q <return> to quit"
set height 0
# set breakpoint
b 040.c:23
# run
r 40
# set logging on
set logging on
# show Z registers
i r z0
i r z1
i r z2
i r z3
i r z4
i r z5
i r z6
i r z7
i r z8
i r z9
i r z10
i r z11
i r z12
i r z13
i r z14
i r z15
i r z16
i r z17
i r z18
i r z19
i r z20
i r z21
i r z22
i r z23
i r z24
i r z25
i r z26
i r z27
i r z28
i r z29
i r z30
i r z31
# show P registers
i r p0
i r p1
i r p2
i r p3
i r p4
i r p5
i r p6
i r p7
i r p8
i r p9
i r p10
i r p11
i r p12
i r p13
i r p14
i r p15
# show vg(VL)
i r vg
# show fpsr/fpcr
i r fpsr
i r fpcr
# set logging on
set logging off
quit

219
test/sve/result.log Normal file
View File

@ -0,0 +1,219 @@
as -mcpu=all src/sve_asm.S -o obj/sve_asm.o
cc -g -O0 -Wall -I. -Isrc -o obj/sve.o -c src/sve.c \
-DTEST_NUMBER=obj/sve.o
cc -g -O0 -Wall -I. -Isrc -o obj/025.o -c src/025.c \
-DTEST_NUMBER=025
cc -g -O0 -Wall -I. -Isrc -o obj/021.o -c src/021.c \
-DTEST_NUMBER=021
cc -g -O0 -Wall -I. -Isrc -o obj/016.o -c src/016.c \
-DTEST_NUMBER=016
cc -g -O0 -Wall -I. -Isrc -o obj/012.o -c src/012.c \
-DTEST_NUMBER=012
cc -g -O0 -Wall -I. -Isrc -o obj/009.o -c src/009.c \
-DTEST_NUMBER=009
cc -g -O0 -Wall -I. -Isrc -o obj/033.o -c src/033.c \
-DTEST_NUMBER=033
cc -g -O0 -Wall -I. -Isrc -o obj/024.o -c src/024.c \
-DTEST_NUMBER=024
cc -g -O0 -Wall -I. -Isrc -o obj/010.o -c src/010.c \
-DTEST_NUMBER=010
cc -g -O0 -Wall -I. -Isrc -o obj/001.o -c src/001.c \
-DTEST_NUMBER=001
cc -g -O0 -Wall -I. -Isrc -o obj/036.o -c src/036.c \
-DTEST_NUMBER=036
cc -g -O0 -Wall -I. -Isrc -o obj/022.o -c src/022.c \
-DTEST_NUMBER=022
cc -g -O0 -Wall -I. -Isrc -o obj/038.o -c src/038.c \
-DTEST_NUMBER=038
cc -g -O0 -Wall -I. -Isrc -o obj/028.o -c src/028.c \
-DTEST_NUMBER=028
cc -g -O0 -Wall -I. -Isrc -o obj/015.o -c src/015.c \
-DTEST_NUMBER=015
cc -g -O0 -Wall -I. -Isrc -o obj/039.o -c src/039.c \
-DTEST_NUMBER=039
cc -g -O0 -Wall -I. -Isrc -o obj/029.o -c src/029.c \
-DTEST_NUMBER=029
cc -g -O0 -Wall -I. -Isrc -o obj/002.o -c src/002.c \
-DTEST_NUMBER=002
cc -g -O0 -Wall -I. -Isrc -o obj/007.o -c src/007.c \
-DTEST_NUMBER=007
cc -g -O0 -Wall -I. -Isrc -o obj/020.o -c src/020.c \
-DTEST_NUMBER=020
cc -g -O0 -Wall -I. -Isrc -o obj/014.o -c src/014.c \
-DTEST_NUMBER=014
cc -g -O0 -Wall -I. -Isrc -o obj/013.o -c src/013.c \
-DTEST_NUMBER=013
cc -g -O0 -Wall -I. -Isrc -o obj/031.o -c src/031.c \
-DTEST_NUMBER=031
cc -g -O0 -Wall -I. -Isrc -o obj/008.o -c src/008.c \
-DTEST_NUMBER=008
cc -g -O0 -Wall -I. -Isrc -o obj/017.o -c src/017.c \
-DTEST_NUMBER=017
cc -g -O0 -Wall -I. -Isrc -o obj/037.o -c src/037.c \
-DTEST_NUMBER=037
cc -g -O0 -Wall -I. -Isrc -o obj/main.o -c src/main.c \
-DTEST_NUMBER=obj/main.o
cc -g -O0 -Wall -I. -Isrc -o obj/035.o -c src/035.c \
-DTEST_NUMBER=035
cc -g -O0 -Wall -I. -Isrc -o obj/023.o -c src/023.c \
-DTEST_NUMBER=023
cc -g -O0 -Wall -I. -Isrc -o obj/032.o -c src/032.c \
-DTEST_NUMBER=032
cc -g -O0 -Wall -I. -Isrc -o obj/018.o -c src/018.c \
-DTEST_NUMBER=018
cc -g -O0 -Wall -I. -Isrc -o obj/011.o -c src/011.c \
-DTEST_NUMBER=011
cc -g -O0 -Wall -I. -Isrc -o obj/026.o -c src/026.c \
-DTEST_NUMBER=026
cc -g -O0 -Wall -I. -Isrc -o obj/006.o -c src/006.c \
-DTEST_NUMBER=006
cc -g -O0 -Wall -I. -Isrc -o obj/common.o -c src/common.c \
-DTEST_NUMBER=obj/common.o
cc -g -O0 -Wall -I. -Isrc -o obj/003.o -c src/003.c \
-DTEST_NUMBER=003
cc -g -O0 -Wall -I. -Isrc -o obj/030.o -c src/030.c \
-DTEST_NUMBER=030
cc -g -O0 -Wall -I. -Isrc -o obj/027.o -c src/027.c \
-DTEST_NUMBER=027
cc -g -O0 -Wall -I. -Isrc -o obj/004.o -c src/004.c \
-DTEST_NUMBER=004
cc -g -O0 -Wall -I. -Isrc -o obj/019.o -c src/019.c \
-DTEST_NUMBER=019
cc -g -O0 -Wall -I. -Isrc -o obj/040.o -c src/040.c \
-DTEST_NUMBER=040
cc -g -O0 -Wall -I. -Isrc -o obj/034.o -c src/034.c \
-DTEST_NUMBER=034
cc -g -O0 -Wall -I. -Isrc -o obj/005.o -c src/005.c \
-DTEST_NUMBER=005
cc -g -O0 -Wall obj/sve_asm.o obj/sve.o obj/025.o obj/021.o obj/016.o obj/012.o obj/009.o obj/033.o obj/024.o obj/010.o obj/001.o obj/036.o obj/022.o obj/038.o obj/028.o obj/015.o obj/039.o obj/029.o obj/002.o obj/007.o obj/020.o obj/014.o obj/013.o obj/031.o obj/008.o obj/017.o obj/037.o obj/main.o obj/035.o obj/023.o obj/032.o obj/018.o obj/011.o obj/026.o obj/006.o obj/common.o obj/003.o obj/030.o obj/027.o obj/004.o obj/019.o obj/040.o obj/034.o obj/005.o -lpthread -o sve_test
./run.sh
Default VL is 64 byte test.
mcstop+release.sh ... done
mcreboot.sh -c 12-23 -m 3G@4 -q 60 ... done
TEST001: OK.
TEST002: OK.
TEST003: OK.
TEST004: OK.
TEST005: OK.
TEST006: OK.
TEST007: OK.
TEST008: OK.
TEST009: OK.
TEST010: OK.
TEST011: OK.
TEST012: OK.
TEST013: OK.
TEST014: OK.
TEST015: OK.
TEST016: OK.
TEST017: OK.
TEST019: OK.
TEST020: OK.
TEST021: OK.
TEST022: OK.
TEST023: OK.
TEST024: OK.
TEST025: OK.
TEST026: OK.
TEST027: OK.
TEST028: OK.
TEST029: OK.
TEST030: OK.
TEST031: OK.
TEST032: OK.
TEST033: OK.
TEST034: OK.
TEST035: OK.
TEST036: OK.
TEST037: OK.
TEST038: OK.
TEST039: OK.
TEST040: OK.
TEST041: OK.
Default VL is 32 byte test.
mcstop+release.sh ... done
mcreboot.sh -c 12-23 -m 3G@4 -q 60 ... done
TEST001: OK.
TEST002: OK.
TEST003: OK.
TEST004: OK.
TEST005: OK.
TEST006: OK.
TEST007: OK.
TEST008: OK.
TEST009: OK.
TEST010: OK.
TEST011: OK.
TEST012: OK.
TEST013: OK.
TEST014: OK.
TEST015: OK.
TEST016: OK.
TEST017: OK.
TEST019: OK.
TEST020: OK.
TEST021: OK.
TEST022: OK.
TEST023: OK.
TEST024: OK.
TEST025: OK.
TEST026: OK.
TEST027: OK.
TEST028: OK.
TEST029: OK.
TEST030: OK.
TEST031: OK.
TEST032: OK.
TEST033: OK.
TEST034: OK.
TEST035: OK.
TEST036: OK.
TEST037: OK.
TEST038: OK.
TEST039: OK.
TEST040: OK.
TEST041: OK.
Default VL is 16 byte test.
mcstop+release.sh ... done
mcreboot.sh -c 12-23 -m 3G@4 -q 60 ... done
TEST001: OK.
TEST002: OK.
TEST003: OK.
TEST004: OK.
TEST005: OK.
TEST006: OK.
TEST007: OK.
TEST008: OK.
TEST009: OK.
TEST010: OK.
TEST011: OK.
TEST012: OK.
TEST013: OK.
TEST014: OK.
TEST015: OK.
TEST016: OK.
TEST017: OK.
TEST019: OK.
TEST020: OK.
TEST021: OK.
TEST022: OK.
TEST023: OK.
TEST024: OK.
TEST025: OK.
TEST026: OK.
TEST027: OK.
TEST028: OK.
TEST029: OK.
TEST030: OK.
TEST031: OK.
TEST032: OK.
TEST033: OK.
TEST034: OK.
TEST035: OK.
TEST036: OK.
TEST037: OK.
TEST038: OK.
TEST039: OK.
TEST040: OK.
TEST041: OK.
mcstop+release.sh ... done

120
test/sve/run.sh Executable file
View File

@ -0,0 +1,120 @@
#!/bin/sh
## run.sh COPYRIGHT FUJITSU LIMITED 2019 ##
USELTP=0
USEOSTEST=0
MCREBOOT=0
MCSTOP=0
SVEGDB="gdb"
. ../common.sh
vl_set="64 32 16"
default_vl_procfs="/proc/sys/abi/sve_default_vector_length"
core_pattern="/proc/sys/kernel/core_pattern"
ret=0
if [ -e ${default_vl_procfs} ]; then
orig_vl=`cat ${default_vl_procfs}`
else
echo "${default_vl_procfs} not found."
exit -1
fi
orig_corep=`cat ${core_pattern}`
echo "core.host" > ${core_pattern}
for vl in ${vl_set}
do
echo "Default VL is ${vl} byte test."
echo ${vl} > ${default_vl_procfs}
mcstop
mcreboot
sleep 1
# TEST001-014
for tp_num in `seq 1 14`
do
print_num=`printf %03d ${tp_num}`
result=`${MCEXEC} ./sve_test ${tp_num} 2>&1`
if [ $? == 0 ]; then
echo "TEST${print_num}: OK."
else
echo "${result}"
echo "TEST${print_num}: NG."
ret=-1
fi
done
# TEST015
stdbuf -i 0 -o 0 -e 0 ${MCEXEC} ./sve_test 15 > ./TEST015.log 2>&1 &
sleep 1
kill -STOP `pidof mcexec`
sleep 1
kill -CONT `pidof mcexec`
sleep 1
kill -KILL `pidof mcexec`
cat ./TEST015.log | grep -q -e "failed" -e "NG."
if [ $? == 1 ]; then
echo "TEST015: OK."
else
cat ./TEST015.log
echo "TEST015: NG."
ret=-1
fi
rm -f ./TEST015.log
# TEST016-039
for tp_num in `seq 16 39`
do
# TEST018 is abolition
if [ ${tp_num} == 18 ]; then
continue
fi
print_num=`printf %03d ${tp_num}`
result=`${MCEXEC} ./sve_test ${tp_num} 2>&1`
if [ $? == 0 ]; then
echo "TEST${print_num}: OK."
else
echo "${result}"
echo "TEST${print_num}: NG."
ret=-1
fi
done
# TEST040
${MCEXEC} ./sve_test 40 > /dev/null 2>&1
${SVEGDB} -x ./inf/TEST040.inf ./sve_test ./core > /dev/null 2>&1
diff ./exp/TEST040_vl${vl}.exp.log ./TEST040.log > /dev/null 2>&1
if [ $? == 0 ]; then
echo "TEST040: OK."
rm -f ./core
rm -f ./core.host.*
else
cat ./TEST040.log
echo "TEST040: NG."
ret=-1
fi
rm -f ./TEST040.log
# TEST041
${MCEXEC} ${SVEGDB} -x ./inf/TEST041.inf ./sve_test > /dev/null 2>&1
diff ./exp/TEST041_vl${vl}.exp.log ./TEST041.log > /dev/null 2>&1
if [ $? == 0 ]; then
echo "TEST041: OK."
else
cat ./TEST041.log
echo "TEST041: NG."
ret=-1
fi
rm -f ./TEST041.log
done
mcstop
echo ${orig_corep} > ${core_pattern}
echo ${orig_vl} > ${default_vl_procfs}
exit ${ret}

29
test/sve/src/001.c Normal file
View File

@ -0,0 +1,29 @@
/* 001.c COPYRIGHT FUJITSU LIMITED 2016-2019 */
/* Process starts immediately after registers check. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "common.h"
TEST_FUNC(TEST_NUMBER, unused1, vq, unused2, unused3)
{
int ret = 0;
struct fpsimd_sve_state(vq) exp_buf;
struct fpsimd_sve_state(vq) rd_buf;
unsigned int fpscr[2] = { 0, 0 };
print_test_overview(tp_num);
read_sve(&rd_buf, vq, fpscr);
memset(&exp_buf, 0, sizeof(exp_buf));
if (sve_compare(&exp_buf, &rd_buf, vq)) {
printf("RESULT: NG.\n");
ret = -1;
}
else {
printf("RESULT: OK.\n");
}
return ret;
}

75
test/sve/src/002.c Normal file
View File

@ -0,0 +1,75 @@
/* 002.c COPYRIGHT FUJITSU LIMITED 2016-2019 */
/* Use fork() takeover registers check. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
#include "common.h"
TEST_FUNC(TEST_NUMBER, unused1, vq, unused2, unused3)
{
struct fpsimd_sve_state(vq) rd_buf;
struct fpsimd_sve_state(vq) wr_buf;
unsigned int fpscr[2] = { 0, 0 };
pid_t cpid = 0;
int ret = -1;
print_test_overview(tp_num);
memset(&rd_buf, 0, sizeof(rd_buf));
memset(&wr_buf, 0, sizeof(wr_buf));
gen_test_sve(&wr_buf, vq);
write_sve(&wr_buf, vq, fpscr);
read_sve(&rd_buf, vq, fpscr);
if (sve_compare(&wr_buf, &rd_buf, vq)) {
printf("parent-process register compare failed.\n");
goto out;
}
cpid = fork();
switch (cpid) {
case -1:
/* error */
printf("ERROR: fork()=%d, errno=%d\n", cpid, errno);
goto out;
case 0: {
/* child process */
struct fpsimd_sve_state(vq) c_rd_buf;
struct fpsimd_sve_state(vq) c_cmp_buf;
memset(&c_rd_buf, 0, sizeof(struct fpsimd_sve_state(vq)));
read_sve(&c_rd_buf, vq, fpscr);
memset(&c_cmp_buf, 0, sizeof(struct fpsimd_sve_state(vq)));
gen_test_sve_low_128(&c_cmp_buf, vq, vq);
if (sve_compare(&c_cmp_buf, &c_rd_buf, vq)) {
printf("child-process register compare failed.\n");
exit(-1);
}
exit(0);
break;
}
default:
/* parent process */
/* wait child */
if (wait_child_exit(cpid)) {
goto out;
}
break;
}
/* success. */
ret = 0;
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

91
test/sve/src/003.c Normal file
View File

@ -0,0 +1,91 @@
/* 003.c COPYRIGHT FUJITSU LIMITED 2016-2019 */
/* Use pthread_create() takeover registers check. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include "common.h"
static void *child_function(void *arg)
{
void *ret = (void *)-1;
unsigned int vl = sve_get_vl();
unsigned int vq = sve_vq_from_vl(vl);
void *rd_buf = calloc(1, (vl * 35) + 15);
void *cmp_buf = NULL, *align_cmp_buf = NULL;
void *align_rd_buf = (void *)(((unsigned long)(rd_buf + 15)) & ~15UL);
unsigned int fpscr[2] = { 0, 0 };
if (!rd_buf) {
printf("calloc() failed.\n");
goto out;
}
read_sve(align_rd_buf, vq, fpscr);
cmp_buf = calloc(1, (vl * 35) + 15);
if (!cmp_buf) {
printf("calloc() failed.\n");
goto rd_free_out;
}
align_cmp_buf = (void *)(((unsigned long)(rd_buf + 15)) & ~15UL);
gen_test_sve_low_128(align_cmp_buf, vq, vq);
if (sve_compare(align_cmp_buf, align_rd_buf, vq)) {
printf("child-thread register compare failed.\n");
goto cmp_free_out;
}
/* success */
ret = NULL;
cmp_free_out:
free(cmp_buf);
rd_free_out:
free(rd_buf);
out:
pthread_exit(ret);
return NULL;
}
TEST_FUNC(TEST_NUMBER, unused1, vq, unused2, unused3)
{
void *ret;
struct fpsimd_sve_state(vq) rd_buf;
struct fpsimd_sve_state(vq) wr_buf;
unsigned int fpscr[2] = { 0, 0 };
pthread_t thread;
print_test_overview(tp_num);
memset(&rd_buf, 0, sizeof(rd_buf));
memset(&wr_buf, 0, sizeof(wr_buf));
gen_test_sve(&wr_buf, vq);
write_sve(&wr_buf, vq, fpscr);
read_sve(&rd_buf, vq, fpscr);
if (sve_compare(&wr_buf, &rd_buf, vq)) {
printf("parent-thread register compare failed.\n");
printf("RESULT: NG.\n");
return -1;
}
if (pthread_create(&thread, NULL, child_function, NULL)) {
printf("pthread_create: error.\n");
printf("RESULT: NG.\n");
return -1;
}
if (pthread_join(thread, &ret)) {
printf("pthread_join: error.\n");
printf("RESULT: NG.\n");
return -1;
}
if (ret == NULL) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return 0;
}

49
test/sve/src/004.c Normal file
View File

@ -0,0 +1,49 @@
/* 004.c COPYRIGHT FUJITSU LIMITED 2016-2019 */
/* Use execve() takeover registers check. (execve target is #1 testcase) */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "common.h"
extern char **environ;
TEST_FUNC(TEST_NUMBER, unused1, vq, unused2, tp_argv)
{
char *self = (char *)tp_argv[0];
struct fpsimd_sve_state(vq) rd_buf;
struct fpsimd_sve_state(vq) wr_buf;
unsigned int fpscr[2] = { 0, 0 };
char *const execve_args[] = {
"", "1", NULL
};
int ret = -1;
print_test_overview(tp_num);
memset(&rd_buf, 0, sizeof(rd_buf));
memset(&wr_buf, 0, sizeof(wr_buf));
gen_test_sve(&wr_buf, vq);
write_sve(&wr_buf, vq, fpscr);
read_sve(&rd_buf, vq, fpscr);
if (sve_compare(&wr_buf, &rd_buf, vq)) {
printf("Dirty SVE-register before executing execve(), NG.\n");
goto out;
}
printf("Dirty SVE-register before executing execve(), OK.\n");
printf("=== look at the contents of the "
"register since run execve. ===\n");
ret = execve(self, execve_args, environ);
if (ret == -1) {
perror("execve()");
} else {
ret = -1;
printf("Why return execve() ???\n");
}
out:
printf("RESULT: NG.\n");
return ret;
}

76
test/sve/src/005.c Normal file
View File

@ -0,0 +1,76 @@
/* 005.c COPYRIGHT FUJITSU LIMITED 2016-2019 */
/* Preservation register check signalhsndler before and after. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <errno.h>
#include "common.h"
static void sig_handler(int sig)
{
unsigned int vl = sve_get_vl();
unsigned int vq = sve_vq_from_vl(vl);
void *wr_buf = calloc(1, (vl * 35) + 15);
void *align_wr_buf = (void *)(((unsigned long)(wr_buf + 15)) & ~15UL);
unsigned int fpscr[2] = { 0, 0 };
if (!wr_buf) {
printf("calloc() failed.\n");
goto out;
}
/* set dirty */
gen_test_sve_dirty(align_wr_buf, vq);
write_sve(align_wr_buf, vq, fpscr);
free(wr_buf);
out:
return;
}
TEST_FUNC(TEST_NUMBER, unused1, vq, unused2, unused3)
{
struct fpsimd_sve_state(vq) rd_buf;
struct fpsimd_sve_state(vq) wr_buf;
unsigned int fpscr[2] = { 0, 0 };
int ret = -1;
print_test_overview(tp_num);
memset(&rd_buf, 0, sizeof(rd_buf));
memset(&wr_buf, 0, sizeof(wr_buf));
if (signal(SIGUSR1, sig_handler) == SIG_ERR) {
printf("Set signal handler failed.\n");
goto out;
}
/* before sighandler */
gen_test_sve(&wr_buf, vq);
write_sve(&wr_buf, vq, fpscr);
if (raise(SIGUSR1)) {
perror("raise(SIGUSR1)");
goto out;
}
/* after sighandler */
read_sve(&rd_buf, vq, fpscr);
/* compare */
if (sve_compare(&wr_buf, &rd_buf, vq)) {
printf("compare failed.\n");
goto out;
}
/* success. */
ret = 0;
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

217
test/sve/src/006.c Normal file
View File

@ -0,0 +1,217 @@
/* 006.c COPYRIGHT FUJITSU LIMITED 2016-2019 */
/* Preservation register check migrate cpus before and after. */
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <string.h>
#include <unistd.h>
#include <sched.h>
#include <sys/syscall.h>
#include <sys/types.h>
#include <sys/ptrace.h>
#include "common.h"
static unsigned long inst_addr;
static int child_func(unsigned int vq, int *c2p)
{
int ret = -1;
unsigned int before_id, after_id;
struct fpsimd_sve_state(vq) before_buf;
struct fpsimd_sve_state(vq) after_buf;
unsigned int fpscr[2] = { 0, 0 };
/* send PTRACE_TRACEME */
if (ptrace(PTRACE_TRACEME, 0, NULL, NULL)) {
perror("ptrace(PTRACE_TRACEME)");
goto out;
}
/* clear buffer */
memset(&before_buf, 0, sizeof(before_buf));
memset(&after_buf, 0, sizeof(after_buf));
/* get running core number and notify parent */
before_id = sched_getcpu();
printf("[child] before migrate. (cpuid=%d)\n", before_id);
write(c2p[1], &before_id, sizeof(before_id));
/* write, read and show register */
gen_test_sve(&before_buf, vq);
write_sve(&before_buf, vq, fpscr);
/* stop mine, brk instruction */
asm volatile(
"adr x10, 1f\n"
"str x10, [%0]\n"
"nop\n"
"nop\n"
"1:\n"
"brk #0\n"
"nop\n"
: /* nothing */
: "r"(&inst_addr)
: "x10"
);
/* get after migrate running core number and notify parent */
after_id = sched_getcpu();
printf("[child] after migrate. (cpuid=%d)\n", after_id);
/* migrate check */
if (before_id == after_id) {
printf("not migrate process.\n");
goto out;
}
/* read and show register */
read_sve(&after_buf, vq, fpscr);
/* compare */
if (sve_compare(&before_buf, &after_buf, vq)) {
printf("child-process compare failed.\n");
goto out;
}
/* success */
ret = 0;
out:
return ret;
}
static int parent_func(pid_t cpid, int *c2p)
{
int ret = -1;
int i = 0;
cpu_set_t *cpusetp_child;
size_t size;
unsigned int c_before_id;
unsigned int migrate_cpu = -1;
unsigned int parent_cpu;
/* wait child stop */
if (wait_child_stop(cpid)) {
goto out;
}
/* read child process running core number */
read(c2p[0], &c_before_id, sizeof(c_before_id));
/* getaffinity mask allocate */
size = CPU_ALLOC_SIZE(SMP_MAX_CPUS);
cpusetp_child = CPU_ALLOC(SMP_MAX_CPUS);
if (!cpusetp_child) {
printf("(child process) alloc failed.\n");
goto cont;
}
CPU_ZERO_S(size, cpusetp_child);
/* get child affinity */
if (sched_getaffinity(cpid, size, cpusetp_child)) {
perror("sched_getaffinity()");
goto cont;
}
/* calc migrate core number */
parent_cpu = sched_getcpu();
for (i = 0; i < SMP_MAX_CPUS; i++) {
if (CPU_ISSET(i, cpusetp_child)) {
if ((i != parent_cpu) && (i != c_before_id)) {
migrate_cpu = i;
break;
}
}
}
/* migrate core number check */
if (migrate_cpu < 0) {
printf("Bad target to migrate child process.\n");
goto cont;
}
/* set affinity */
CPU_ZERO_S(size, cpusetp_child);
CPU_SET_S(migrate_cpu, size, cpusetp_child);
if (sched_setaffinity(cpid, size, cpusetp_child)) {
perror("sched_setaffinity()");
goto out;
}
CPU_FREE(cpusetp_child);
/* success */
ret = 0;
cont:
/* rewrite child brk instruction */
if (rewrite_brk_inst(cpid, &inst_addr)) {
/* Through */
}
/* child continue */
if (ptrace(PTRACE_CONT, cpid, NULL, NULL)) {
perror("ptrace(PTRACE_CONT)");
ret = -1;
}
out:
return ret;
}
TEST_FUNC(TEST_NUMBER, unused1, vq, unused2, unused3)
{
pid_t cpid = 0;
int func_ret = -1;
int ret = -1;
int c2p[2] = { -1, -1 };
print_test_overview(tp_num);
/* allocation pipe */
if (pipe(c2p)) {
printf("pipe() Failed.\n");
goto out;
}
/* create child process */
cpid = fork();
switch (cpid) {
case -1:
/* fork() error */
perror("fork()");
goto close_out;
case 0:
/* child process */
exit(child_func(vq, c2p));
break;
default:
/* parent process */
func_ret = parent_func(cpid, c2p);
/* wait child */
if (wait_child_exit(cpid)) {
goto close_out;
}
/* parent_func check */
if (func_ret) {
goto close_out;
}
break;
}
/* success. */
ret = 0;
close_out:
/* close pipe */
close(c2p[0]);
close(c2p[1]);
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

164
test/sve/src/007.c Normal file
View File

@ -0,0 +1,164 @@
/* 007.c COPYRIGHT FUJITSU LIMITED 2016-2019 */
/* ptrace(GETREGSET + NT_ARM_SVE) check. */
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <errno.h>
#include <string.h>
#include <sys/ptrace.h>
#include <sys/uio.h>
#include <sys/types.h>
#include <unistd.h>
#include "common.h"
static unsigned long inst_addr;
static int child_func(unsigned int vq)
{
int ret = -1;
struct fpsimd_sve_state(vq) wr_buf;
unsigned int fpscr[2] = { 0, 0 };
/* clear work area */
memset(&wr_buf, 0, sizeof(wr_buf));
/* send PTRACE_TRACEME */
if (ptrace(PTRACE_TRACEME, 0, NULL, NULL)) {
perror("ptrace(PTRACE_TRACEME)");
goto out;
}
/* pre write register */
gen_test_sve(&wr_buf, vq);
write_sve(&wr_buf, vq, fpscr);
/* stop mine, brk instruction */
asm volatile(
"adr x10, 1f\n"
"str x10, [%0]\n"
"nop\n"
"nop\n"
"1:\n"
"brk #0\n"
"nop\n"
: /* nothing */
: "r"(&inst_addr)
: "x10"
);
/* success */
ret = 0;
out:
return ret;
}
static int parent_func(pid_t cpid, unsigned int vq)
{
int ret = -1;
struct fpsimd_sve_state(vq) cmp_buf;
struct user_fpsimd_sve_state(vq) rd_buf;
struct iovec iov;
memset(&cmp_buf, 0, sizeof(cmp_buf));
memset(&rd_buf, 0, sizeof(rd_buf));
memset(&iov, 0, sizeof(iov));
/* wait child stop */
if (wait_child_stop(cpid)) {
goto out;
}
/* gen cmp value */
gen_test_sve(&cmp_buf, vq);
/* PTRACE_GETREGSET */
iov.iov_len = sizeof(rd_buf);
iov.iov_base = &rd_buf;
if (ptrace(PTRACE_GETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_GETREGSET)");
goto cont;
}
/* check Header */
printf("size = 0x%x\n", rd_buf.header.size);
printf("max_size = 0x%x\n", rd_buf.header.max_size);
printf("vl = 0x%x\n", rd_buf.header.vl);
printf("max_vl = 0x%x\n", rd_buf.header.max_vl);
printf("flags = 0x%x\n", rd_buf.header.flags);
if (header_compare(&rd_buf.header)) {
printf("child-process header compare failed.\n");
goto cont;
}
/* compare regs */
if (sve_compare(&cmp_buf, &rd_buf.regs, vq)) {
printf("child-process compare failed.\n");
goto cont;
}
/* success */
ret = 0;
cont:
/* rewrite child brk instruction */
if (rewrite_brk_inst(cpid, &inst_addr)) {
/* Through */
}
/* child continue */
if (ptrace(PTRACE_CONT, cpid, NULL, NULL)) {
perror("ptrace(PTRACE_CONT)");
ret = -1;
}
out:
return ret;
}
TEST_FUNC(TEST_NUMBER, unused1, vq, unused2, unused3)
{
pid_t cpid = 0;
int func_ret = 0;
int ret = -1;
print_test_overview(tp_num);
/* create child process */
cpid = fork();
switch (cpid) {
case -1:
/* fork() error. */
perror("fork()");
goto out;
case 0:
/* child process */
func_ret = child_func(vq);
/* child exit */
exit(func_ret);
break;
default:
/* parent process */
func_ret = parent_func(cpid, vq);
/* wait child */
if (wait_child_exit(cpid)) {
goto out;
}
/* parent_func check */
if (func_ret) {
goto out;
}
break;
}
/* sccess. */
ret = 0;
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

167
test/sve/src/008.c Normal file
View File

@ -0,0 +1,167 @@
/* 008.c COPYRIGHT FUJITSU LIMITED 2016-2019 */
/* ptrace(SETREGSET + NT_ARM_SVE) check. */
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <errno.h>
#include <string.h>
#include <sys/ptrace.h>
#include <sys/uio.h>
#include <sys/types.h>
#include <unistd.h>
#include "common.h"
static unsigned long inst_addr;
static int child_func(unsigned int vq)
{
int ret = -1;
struct fpsimd_sve_state(vq) cmp_buf;
struct fpsimd_sve_state(vq) rd_buf;
unsigned int fpscr[2] = { 0, 0 };
memset(&cmp_buf, 0, sizeof(struct fpsimd_sve_state(vq)));
memset(&rd_buf, 0, sizeof(struct fpsimd_sve_state(vq)));
/* send PTRACE_TRACEME */
if (ptrace(PTRACE_TRACEME, 0, NULL, NULL)) {
perror("ptrace(PTRACE_TRACEME)");
goto out;
}
/* gen and read register */
gen_test_sve(&cmp_buf, vq);
read_sve(&rd_buf, vq, fpscr);
/* stop mine, brk instruction */
asm volatile(
"adr x10, 1f\n"
"str x10, [%0]\n"
"nop\n"
"nop\n"
"1:\n"
"brk #0\n"
"nop\n"
: /* nothing */
: "r"(&inst_addr)
: "x10"
);
/* read register */
read_sve(&rd_buf, vq, fpscr);
/* compare */
if (sve_compare(&cmp_buf, &rd_buf, vq)) {
printf("child-process compare failed.\n");
}
/* success */
ret = 0;
out:
return ret;
}
static int parent_func(pid_t cpid, unsigned int vq)
{
int ret = -1;
struct user_fpsimd_sve_state(vq) wr_buf;
struct iovec iov;
memset(&wr_buf, 0, sizeof(wr_buf));
memset(&iov, 0, sizeof(iov));
/* wait child stop */
if (wait_child_stop(cpid)) {
goto out;
}
/* PTRACE_GETREGSET */
iov.iov_len = sizeof(wr_buf);
iov.iov_base = &wr_buf;
if (ptrace(PTRACE_GETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_GETREGSET)");
goto cont;
}
/* header compare */
if (header_compare(&wr_buf.header)) {
printf("ptrace(PTRACE_GETREGSET) header compare failed.\n");
goto cont;
}
/* gen register */
gen_test_sve(&wr_buf.regs, vq);
/* PTRACE_SETREGSET */
iov.iov_len = sizeof(wr_buf);
iov.iov_base = &wr_buf;
if (ptrace(PTRACE_SETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_SETREGSET)");
goto cont;
}
/* success */
ret = 0;
cont:
/* rewrite child brk instruction */
if (rewrite_brk_inst(cpid, &inst_addr)) {
/* Through */
}
/* child continue */
if (ptrace(PTRACE_CONT, cpid, NULL, NULL)) {
perror("ptrace(PTRACE_CONT)");
ret = -1;
}
out:
return ret;
}
TEST_FUNC(TEST_NUMBER, unused1, vq, unused2, unused3)
{
pid_t cpid = 0;
int func_ret = 0;
int ret = -1;
print_test_overview(tp_num);
/* create child process */
cpid = fork();
switch (cpid) {
case -1:
/* fork() error. */
perror("fork()");
goto out;
case 0:
/* child process */
func_ret = child_func(vq);
/* child exit */
exit(func_ret);
break;
default:
/* parent process */
func_ret = parent_func(cpid, vq);
/* wait child */
if (wait_child_exit(cpid)) {
goto out;
}
/* parent_func check */
if (func_ret) {
goto out;
}
break;
}
/* sccess. */
ret = 0;
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

293
test/sve/src/009.c Normal file
View File

@ -0,0 +1,293 @@
/* 009.c COPYRIGHT FUJITSU LIMITED 2016-2019 */
/* ptrace(GETREGSET + NT_ARM_SVE) parameters pattern check. */
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <errno.h>
#include <string.h>
#include <sys/ptrace.h>
#include <sys/uio.h>
#include <sys/types.h>
#include <unistd.h>
#include "common.h"
static unsigned long inst_addr;
static int child_func(unsigned int vq)
{
int ret = -1;
struct fpsimd_sve_state(vq) wr_buf;
struct fpsimd_sve_state(vq) rd_buf;
unsigned int fpscr[2] = { 0, 0 };
/* clear work area */
memset(&wr_buf, 0, sizeof(wr_buf));
memset(&rd_buf, 0, sizeof(rd_buf));
/* send PTRACE_TRACEME */
if (ptrace(PTRACE_TRACEME, 0, NULL, NULL)) {
perror("ptrace(PTRACE_TRACEME)");
goto out;
}
/* pre write register */
gen_test_sve(&wr_buf, vq);
write_sve(&wr_buf, vq, fpscr);
/* stop mine, brk instruction */
asm volatile(
"adr x10, 1f\n"
"str x10, [%0]\n"
"nop\n"
"nop\n"
"1:\n"
"brk #0\n"
"nop\n"
: /* nothing */
: "r"(&inst_addr)
: "x10"
);
/* success */
ret = 0;
out:
return ret;
}
static int parent_func(pid_t cpid, unsigned int vq)
{
int ret = -1;
struct iovec iov;
char *l_rd_buf = NULL;
struct fpsimd_sve_state(vq) cmp_buf;
struct user_fpsimd_sve_state(vq) rd_buf;
size_t align_half_regsz =
(sizeof(cmp_buf) / 2 + 15) & ~15UL;
memset(&cmp_buf, 0, sizeof(cmp_buf));
memset(&rd_buf, 0, sizeof(rd_buf));
memset(&iov, 0, sizeof(iov));
/* wait child stop */
if (wait_child_stop(cpid)) {
goto out;
}
printf("PTRACE_GETREGSET parameter check\n");
/* case 1: iov_base is NULL */
printf("check 1: iov_base == NULL\n");
iov.iov_len = sizeof(rd_buf);
iov.iov_base = NULL;
if (!ptrace(PTRACE_GETREGSET, cpid, NT_ARM_SVE, &iov)) {
printf("why sccess ptrace(PTRACE_GETREGSET) ???\n");
goto cont;
}
if (errno != EFAULT) {
printf("errno(%d) is not expectation value\n", errno);
printf("expectation value is EFAULT(%d)\n", EFAULT);
goto cont;
}
errno = 0;
/* case 2: iov_len is zero */
printf("check 2: iov_len == 0\n");
iov.iov_len = 0;
iov.iov_base = &rd_buf;
if (ptrace(PTRACE_GETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_GETREGSET)");
goto cont;
}
if (rd_buf.header.vl != 0 ||
rd_buf.header.max_vl != 0 ||
rd_buf.header.flags != 0) {
printf("why iov_len over area getting ???\n");
goto cont;
}
/* case 3: iov_len is less than sizeof(struct user_sve_header) */
printf("check 3: iov_len < sizeof(struct user_sve_header)\n");
memset(&rd_buf, 0, sizeof(rd_buf));
iov.iov_len = sizeof(rd_buf.header.vl);
iov.iov_base = &rd_buf;
if (!ptrace(PTRACE_GETREGSET, cpid, NT_ARM_SVE, &iov)) {
printf("why sccess ptrace(PTRACE_GETREGSET) ???\n");
goto cont;
}
if (errno != EINVAL) {
printf("errno(%d) is not expectation value\n", errno);
printf("expectation value is EINVAL(%d)\n", EINVAL);
goto cont;
}
errno = 0;
/* case 4: iov_len is just sizeof(struct user_sve_header) */
printf("check 4: iov_len == sizeof(struct user_sve_header)\n");
memset(&rd_buf, 0, sizeof(rd_buf));
iov.iov_len = sizeof(struct user_sve_header);
iov.iov_base = &rd_buf;
if (ptrace(PTRACE_GETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_GETREGSET)");
goto cont;
}
if ((vq * 16) != rd_buf.header.vl) {
printf("mismatch vl (exp(%d), value(%d))\n",
vq * 16, rd_buf.header.vl);
goto cont;
}
if (rd_buf.header.max_vl == 0 || rd_buf.header.flags == 0) {
printf("why iov_len over area not getting ???\n");
goto cont;
}
/* compare */
if (sve_compare(&cmp_buf, &rd_buf.regs, vq)) {
printf("parent-process compare failed.\n");
goto cont;
}
/* case 5:
* iov_len is sizeof(struct user_sve_header) +
* sizeof(struct fpsimd_sve_state(vq)) / 2
*/
printf("check 5: iov_len header + "
"(registerarea size / 2) (16 byte align)\n");
gen_test_sve(&cmp_buf, vq);
memset((char *)&cmp_buf + align_half_regsz, 0,
sizeof(cmp_buf) - align_half_regsz);
memset(&rd_buf, 0, sizeof(rd_buf));
iov.iov_len = sizeof(struct user_sve_header) + align_half_regsz;
iov.iov_base = &rd_buf;
if (ptrace(PTRACE_GETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_GETREGSET)");
goto cont;
}
/* compare */
if (sve_compare(&cmp_buf, &rd_buf.regs, vq)) {
printf("parent-process compare failed.\n");
goto cont;
}
/* case 6: iov_len larger than struct user_sve_regs */
printf("check 6: iov_len larger than struct user_sve_regs\n");
memset(&cmp_buf, 0, sizeof(cmp_buf));
memset(&rd_buf, 0, sizeof(rd_buf));
iov.iov_len = ((sizeof(rd_buf) * 2 + 15) & ~15UL);
iov.iov_base = &rd_buf;
if (ptrace(PTRACE_GETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_GETREGSET)");
goto cont;
}
gen_test_sve(&cmp_buf, vq);
/* compare */
if (sve_compare(&cmp_buf, &rd_buf.regs, vq)) {
printf("parent-process compare failed.\n");
goto cont;
}
/* case 7: iov_len larger than MAX_SIZE */
printf("check 7: iov_len larger than MAX_SIZE\n");
memset(&cmp_buf, 0, sizeof(cmp_buf));
gen_test_sve(&cmp_buf, vq);
iov.iov_len = ((SVE_PT_SIZE(SVE_VQ_MAX,
SVE_PT_REGS_SVE) + 15) / 16 * 16) + 16;
l_rd_buf = calloc(1, iov.iov_len);
if (!l_rd_buf) {
printf("calloc() failed.\n");
goto cont;
}
iov.iov_base = l_rd_buf;
if (ptrace(PTRACE_GETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_GETREGSET)");
free(iov.iov_base);
goto free_cont;
}
/* compare */
iov.iov_base = l_rd_buf;
if (sve_compare(&cmp_buf,
l_rd_buf + sizeof(struct user_sve_header), vq)) {
printf("parent-process compare failed.\n");
free(iov.iov_base);
goto free_cont;
}
/* success */
ret = 0;
free_cont:
free(iov.iov_base);
cont:
/* rewrite child brk instruction */
if (rewrite_brk_inst(cpid, &inst_addr)) {
/* Through */
}
/* child continue */
if (ptrace(PTRACE_CONT, cpid, NULL, NULL)) {
perror("ptrace(PTRACE_CONT)");
ret = -1;
}
out:
return ret;
}
TEST_FUNC(TEST_NUMBER, unused1, vq, unused2, unused3)
{
pid_t cpid = 0;
int func_ret = 0;
int ret = -1;
print_test_overview(tp_num);
/* create child process */
cpid = fork();
switch (cpid) {
case -1:
/* fork() error. */
perror("fork()");
goto out;
case 0:
/* child process */
func_ret = child_func(vq);
/* child exit */
exit(func_ret);
break;
default:
/* parent process */
func_ret = parent_func(cpid, vq);
/* wait child */
if (wait_child_exit(cpid)) {
goto out;
}
/* parent_func check */
if (func_ret) {
goto out;
}
break;
}
/* sccess. */
ret = 0;
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

528
test/sve/src/010.c Normal file
View File

@ -0,0 +1,528 @@
/* 010.c COPYRIGHT FUJITSU LIMITED 2016-2019 */
/* ptrace(SETREGSET + NT_ARM_SVE) parameters pattern check. */
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <errno.h>
#include <string.h>
#include <sys/ptrace.h>
#include <sys/uio.h>
#include <sys/types.h>
#include <unistd.h>
#include "common.h"
static unsigned long inst_addr;
static int child_func(unsigned int vq)
{
int ret = -1;
struct fpsimd_sve_state(vq) cmp_buf;
struct fpsimd_sve_state(vq) zero_buf;
struct fpsimd_sve_state(vq) rd_buf;
unsigned int fpscr[2] = { 0, 0 };
size_t align_half_regsz =
(sizeof(cmp_buf) / 2 + 15) & ~15UL;
memset(&cmp_buf, 0, sizeof(cmp_buf));
memset(&zero_buf, 0, sizeof(cmp_buf));
memset(&rd_buf, 0, sizeof(cmp_buf));
/* send PTRACE_TRACEME */
if (ptrace(PTRACE_TRACEME, 0, NULL, NULL)) {
perror("ptrace(PTRACE_TRACEME)");
goto out;
}
/* gen and read register */
gen_test_sve(&cmp_buf, vq);
read_sve(&rd_buf, vq, fpscr);
/* stop mine, brk instruction */
asm volatile(
"adr x10, 1f\n"
"str x10, [%0]\n"
"nop\n"
"nop\n"
"1:\n"
"brk #0\n"
"nop\n"
: /* nothing */
: "r"(&inst_addr)
: "x10"
);
/* case 7: read register */
read_sve(&rd_buf, vq, fpscr);
/* compare */
if (sve_compare(&cmp_buf, &rd_buf, vq)) {
printf("child-process compare failed.\n");
goto out;
}
/* clear sve */
fpscr[0] = 0;
fpscr[1] = 0;
write_sve(&zero_buf, vq, fpscr);
/* stop mine, brk instruction */
asm volatile(
"adr x10, 2f\n"
"str x10, [%0]\n"
"nop\n"
"nop\n"
"2:\n"
"brk #0\n"
"nop\n"
: /* nothing */
: "r"(&inst_addr)
: "x10"
);
/* case 8: read register */
read_sve(&rd_buf, vq, fpscr);
/* compare */
if (sve_compare(&cmp_buf, &rd_buf, vq)) {
printf("child-process compare failed.\n");
goto out;
}
/* clear sve */
fpscr[0] = 0;
fpscr[1] = 0;
write_sve(&zero_buf, vq, fpscr);
/* stop mine, brk instruction */
asm volatile(
"adr x10, 3f\n"
"str x10, [%0]\n"
"nop\n"
"nop\n"
"3:\n"
"brk #0\n"
"nop\n"
: /* nothing */
: "r"(&inst_addr)
: "x10"
);
/* case 9: read register */
read_sve(&rd_buf, vq, fpscr);
/* create expected value */
memset((char *)&cmp_buf + align_half_regsz, 0,
sizeof(cmp_buf) - align_half_regsz);
/* compare */
if (sve_compare(&cmp_buf, &rd_buf, vq)) {
printf("child-process compare failed.\n");
goto out;
}
/* clear sve */
fpscr[0] = 0;
fpscr[1] = 0;
write_sve(&zero_buf, vq, fpscr);
/* stop mine, brk instruction */
asm volatile(
"adr x10, 4f\n"
"str x10, [%0]\n"
"nop\n"
"nop\n"
"4:\n"
"brk #0\n"
"nop\n"
: /* nothing */
: "r"(&inst_addr)
: "x10"
);
/* case 10: read register */
read_sve(&rd_buf, vq, fpscr);
/* compare */
if (sve_compare(&zero_buf, &rd_buf, vq)) {
printf("child-process compare failed.\n");
goto out;
}
/* clear sve */
fpscr[0] = 0;
fpscr[1] = 0;
write_sve(&zero_buf, vq, fpscr);
/* stop mine, brk instruction */
asm volatile(
"adr x10, 5f\n"
"str x10, [%0]\n"
"nop\n"
"nop\n"
"5:\n"
"brk #0\n"
"nop\n"
: /* nothing */
: "r"(&inst_addr)
: "x10"
);
/* success */
ret = 0;
out:
return ret;
}
static int parent_func(pid_t cpid, unsigned int vq)
{
int ret = -1;
struct user_fpsimd_sve_state(vq) wr_buf;
struct fpsimd_sve_state(vq) tmp_buf;
char *l_wr_buf = NULL;
struct iovec iov;
struct user_sve_header header, work_header;
size_t align_half_regsz =
(sizeof(tmp_buf) / 2 + 15) & ~15UL;
memset(&wr_buf, 0, sizeof(wr_buf));
memset(&l_wr_buf, 0, sizeof(l_wr_buf));
memset(&iov, 0, sizeof(iov));
memset(&header, 0, sizeof(header));
memset(&work_header, 0, sizeof(work_header));
/* wait child stop */
if (wait_child_stop(cpid)) {
goto out;
}
/* get header value */
iov.iov_len = sizeof(header);
iov.iov_base = &header;
if (ptrace(PTRACE_GETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_GETREGSET)");
goto cont;
}
/* header compare */
if (header_compare(&header)) {
printf("header compare failed.\n");
goto cont;
}
printf("PTRACE_SETREGSET parameter check\n");
/* case 1: iov_base is NULL */
printf("check 1: iov_base == NULL\n");
iov.iov_len = sizeof(wr_buf);
iov.iov_base = NULL;
if (!ptrace(PTRACE_SETREGSET, cpid, NT_ARM_SVE, &iov)) {
printf("why sccess ptrace(PTRACE_SETREGSET) ???\n");
goto cont;
}
if (errno != EFAULT) {
printf("errno(%d) is not expectation value\n", errno);
printf("expectation value is EFAULT(%d)\n", EFAULT);
goto cont;
}
errno = 0;
/* case 2: iov_len is zero */
printf("check 2: iov_len == 0\n");
iov.iov_len = 0;
iov.iov_base = &wr_buf;
if (!ptrace(PTRACE_SETREGSET, cpid, NT_ARM_SVE, &iov)) {
printf("why sccess ptrace(PTRACE_SETREGSET) ???\n");
goto cont;
}
if (errno != EINVAL) {
printf("errno(%d) is not expectation value\n", errno);
printf("expectation value is EINVAL(%d)\n", EINVAL);
goto cont;
}
errno = 0;
/* case 3: header.vl invalid */
printf("check 3: header.vl invalid\n");
wr_buf.header = header;
wr_buf.header.vl = 0xffff; /* invalid */
iov.iov_len = sizeof(wr_buf);
iov.iov_base = &wr_buf;
if (!ptrace(PTRACE_SETREGSET, cpid, NT_ARM_SVE, &iov)) {
printf("why sccess ptrace(PTRACE_SETREGSET) ???\n");
goto cont;
}
if (errno != EINVAL) {
printf("errno(%d) is not expectation value\n", errno);
printf("expectation value is EINVAL(%d)\n", EINVAL);
goto cont;
}
errno = 0;
/* case 4: header.max_vl invalid */
printf("check 4: header.max_vl invalid\n");
wr_buf.header = header;
wr_buf.header.max_vl = 0xffff; /* invalid */
iov.iov_len = sizeof(wr_buf);
iov.iov_base = &wr_buf;
if (ptrace(PTRACE_SETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_SETREGSET)");
goto cont;
}
/* get header value */
iov.iov_len = sizeof(work_header);
iov.iov_base = &work_header;
if (ptrace(PTRACE_GETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_GETREGSET)");
goto cont;
}
if (work_header.max_vl != header.max_vl) {
printf("setting invalid max_vl\n");
goto cont;
}
/* case 5: header.flags invalid part 1 */
printf("check 5: header.flags invalid part 1\n");
wr_buf.header = header;
wr_buf.header.flags = 0xffff; /* invalid */
iov.iov_len = sizeof(wr_buf);
iov.iov_base = &wr_buf;
if (!ptrace(PTRACE_SETREGSET, cpid, NT_ARM_SVE, &iov)) {
printf("why sccess ptrace(PTRACE_SETREGSET) ???\n");
goto cont;
}
if (errno != EINVAL) {
printf("errno(%d) is not expectation value\n", errno);
printf("expectation value is EINVAL(%d)\n", EINVAL);
goto cont;
}
errno = 0;
/* case 6: header.flags invalid part 2 */
printf("check 6: header.flags invalid part 2\n");
wr_buf.header = header;
wr_buf.header.flags = SVE_PT_INVALID_FLAGS; /* invalid */
iov.iov_len = sizeof(wr_buf);
iov.iov_base = &wr_buf;
if (!ptrace(PTRACE_SETREGSET, cpid, NT_ARM_SVE, &iov)) {
printf("why sccess ptrace(PTRACE_SETREGSET) ???\n");
goto cont;
}
if (errno != EINVAL) {
printf("errno(%d) is not expectation value\n", errno);
printf("expectation value is EINVAL(%d)\n", EINVAL);
goto cont;
}
errno = 0;
/* case 7: iov_len larger than struct user_sve_regs */
printf("check 7: iov_len larger than struct user_sve_regs\n");
wr_buf.header = header;
/* gen register */
gen_test_sve(&wr_buf.regs, vq);
/* PTRACE_SETREGSET */
iov.iov_len = ((sizeof(wr_buf) * 2 + 15) & ~15UL);
iov.iov_base = &wr_buf;
if (ptrace(PTRACE_SETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_SETREGSET)");
goto cont;
}
/* rewrite child brk instruction */
if (rewrite_brk_inst(cpid, &inst_addr)) {
/* Through */
}
/* child continue */
if (ptrace(PTRACE_CONT, cpid, NULL, NULL)) {
perror("ptrace(PTRACE_CONT)");
goto cont;
}
/* wait child stop */
if (wait_child_stop(cpid)) {
goto out;
}
/* case 8: iov_len larger than MAX_SIZE */
printf("check 8: iov_len larger than MAX_SIZE\n");
iov.iov_len = ((SVE_PT_SIZE(SVE_VQ_MAX,
SVE_PT_REGS_SVE) + 15) / 16 * 16) + 16;
l_wr_buf = calloc(1, iov.iov_len);
if (!l_wr_buf) {
printf("calloc() failed.\n");
goto cont;
}
memcpy(l_wr_buf, &header, sizeof(header));
gen_test_sve(l_wr_buf + sizeof(struct user_sve_header), vq);
/* PTRACE_SETREGSET */
iov.iov_base = l_wr_buf;
if (ptrace(PTRACE_SETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_SETREGSET)");
free(l_wr_buf);
goto cont;
}
free(l_wr_buf);
/* rewrite child brk instruction */
if (rewrite_brk_inst(cpid, &inst_addr)) {
/* Through */
}
/* child continue */
if (ptrace(PTRACE_CONT, cpid, NULL, NULL)) {
perror("ptrace(PTRACE_CONT)");
goto cont;
}
/* wait child stop */
if (wait_child_stop(cpid)) {
goto out;
}
/* case 9:
* iov_len is sizeof(struct user_sve_header) +
* sizeof(struct fpsimd_sve_state(vq)) / 2
*/
printf("check 9: iov_len header + "
"(registerarea size / 2) (16 byte align)\n");
memset(&wr_buf, 0, sizeof(wr_buf));
/* gen register */
wr_buf.header = header;
gen_test_sve(&wr_buf.regs, vq);
/* PTRACE_SETREGSET */
iov.iov_len = sizeof(struct user_sve_header) + align_half_regsz;
iov.iov_base = &wr_buf;
if (ptrace(PTRACE_SETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_SETREGSET)");
goto cont;
}
/* rewrite child brk instruction */
if (rewrite_brk_inst(cpid, &inst_addr)) {
/* Through */
}
/* child continue */
if (ptrace(PTRACE_CONT, cpid, NULL, NULL)) {
perror("ptrace(PTRACE_CONT)");
goto cont;
}
/* wait child stop */
if (wait_child_stop(cpid)) {
goto out;
}
/* case 10: iov_len is sizeof(struct user_sve_header) */
printf("check 10: iov_len is sizeof(struct user_sve_header)\n");
memset(&wr_buf, 0, sizeof(wr_buf));
/* gen register */
wr_buf.header = header;
gen_test_sve(&wr_buf.regs, vq);
/* PTRACE_SETREGSET */
iov.iov_len = sizeof(struct user_sve_header);
iov.iov_base = &wr_buf;
if (ptrace(PTRACE_SETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_SETREGSET)");
goto cont;
}
/* rewrite child brk instruction */
if (rewrite_brk_inst(cpid, &inst_addr)) {
/* Through */
}
/* child continue */
if (ptrace(PTRACE_CONT, cpid, NULL, NULL)) {
perror("ptrace(PTRACE_CONT)");
goto cont;
}
/* wait child stop */
if (wait_child_stop(cpid)) {
goto out;
}
/* success */
ret = 0;
cont:
/* rewrite child brk instruction */
if (rewrite_brk_inst(cpid, &inst_addr)) {
/* Through */
}
/* child continue */
if (ptrace(PTRACE_CONT, cpid, NULL, NULL)) {
perror("ptrace(PTRACE_CONT)");
ret = -1;
}
out:
return ret;
}
TEST_FUNC(TEST_NUMBER, unused1, vq, unused2, unused3)
{
pid_t cpid = 0;
int func_ret = 0;
int ret = -1;
print_test_overview(tp_num);
/* create child process */
cpid = fork();
switch (cpid) {
case -1:
/* fork() error. */
perror("fork()");
goto out;
case 0:
/* child process */
func_ret = child_func(vq);
/* child exit */
exit(func_ret);
break;
default:
/* parent process */
func_ret = parent_func(cpid, vq);
/* wait child */
if (wait_child_exit(cpid)) {
goto out;
}
/* parent_func check */
if (func_ret) {
goto out;
}
break;
}
/* sccess. */
ret = 0;
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

112
test/sve/src/011.c Normal file
View File

@ -0,0 +1,112 @@
/* 011.c COPYRIGHT FUJITSU LIMITED 2016-2019 */
/* Preservation check signalhsndler(use sigaltstack) before and after. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <errno.h>
#include "common.h"
static unsigned long used_stack_addr;
static void sig_handler(int sig)
{
unsigned int vl = sve_get_vl();
unsigned int vq = sve_vq_from_vl(vl);
void *wr_buf = calloc(1, (vl * 35) + 15);
void *align_wr_buf = (void *)(((unsigned long)(wr_buf + 15)) & ~15UL);
unsigned int fpscr[2] = { 0, 0 };
if (!wr_buf) {
printf("calloc() failed.\n");
return;
}
/* stack addr set */
used_stack_addr = (unsigned long)&vl;
/* set dirty */
gen_test_sve_dirty(align_wr_buf, vq);
write_sve(align_wr_buf, vq, fpscr);
free(wr_buf);
}
#define ALTSTACK_SIZE 16384 /* recommendation size */
TEST_FUNC(TEST_NUMBER, unused1, vq, unused2, unused3)
{
struct fpsimd_sve_state(vq) rd_buf;
struct fpsimd_sve_state(vq) wr_buf;
stack_t ss;
unsigned int fpscr[2] = { 0, 0 };
int ret = -1;
void *sstack = calloc(1, ALTSTACK_SIZE);
void *cmp_ss = calloc(1, ALTSTACK_SIZE);
struct sigaction act;
print_test_overview(tp_num);
memset(&rd_buf, 0, sizeof(rd_buf));
memset(&wr_buf, 0, sizeof(wr_buf));
if (!sstack || !cmp_ss) {
printf("calloc() failed.\n");
goto end;
}
memset(&ss, 0, sizeof(ss));
ss.ss_sp = sstack;
ss.ss_size = ALTSTACK_SIZE;
ss.ss_flags = 0;
if (sigaltstack(&ss, NULL)) {
perror("sigaltstack");
goto out;
}
memset(&act, 0, sizeof(act));
act.sa_flags = SA_ONSTACK | SA_RESETHAND;
act.sa_handler = sig_handler;
if (sigaction(SIGUSR1, &act, NULL)) {
perror("sigaction()");
goto out;
}
/* before sighandler */
gen_test_sve(&wr_buf, vq);
write_sve(&wr_buf, vq, fpscr);
if (raise(SIGUSR1)) {
perror("raise(SIGUSR1)");
goto out;
}
if ((unsigned long)ss.ss_sp > used_stack_addr ||
used_stack_addr >= (unsigned long)ss.ss_sp + ss.ss_size) {
printf("altstack area unused.\n");
goto out;
}
/* after sighandler */
read_sve(&rd_buf, vq, fpscr);
/* compare */
if (sve_compare(&wr_buf, &rd_buf, vq)) {
printf("compare failed.\n");
goto out;
}
/* success. */
ret = 0;
out:
free(sstack);
free(cmp_ss);
end:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

163
test/sve/src/012.c Normal file
View File

@ -0,0 +1,163 @@
/* 012.c COPYRIGHT FUJITSU LIMITED 2016-2019 */
/* When SVE is enable, ptrace(GETREGSET + NT_PRFPREG) check. */
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <errno.h>
#include <string.h>
#include <sys/ptrace.h>
#include <sys/uio.h>
#include <sys/types.h>
#include <unistd.h>
#include <linux/elf.h>
#include "common.h"
static unsigned long inst_addr;
static int child_func(unsigned int vq)
{
int ret = -1;
struct fpsimd_sve_state(vq) wr_buf;
unsigned int fpscr[2] = { 0, 0 };
/* clear work area */
memset(&wr_buf, 0, sizeof(wr_buf));
/* send PTRACE_TRACEME */
if (ptrace(PTRACE_TRACEME, 0, NULL, NULL)) {
perror("ptrace(PTRACE_TRACEME)");
goto out;
}
/* pre write register */
gen_test_sve(&wr_buf, vq);
write_sve(&wr_buf, vq, fpscr);
/* stop mine, brk instruction */
asm volatile(
"adr x10, 1f\n"
"str x10, [%0]\n"
"nop\n"
"nop\n"
"1:\n"
"brk #0\n"
"nop\n"
: /* nothing */
: "r"(&inst_addr)
: "x10"
);
/* success */
ret = 0;
out:
return ret;
}
static int parent_func(pid_t cpid, unsigned int vq)
{
int ret = -1;
struct iovec iov;
struct user_fpsimd_state rd_fregs;
struct user_fpsimd_state cmp_fregs;
struct user_sve_header header;
memset(&header, 0, sizeof(header));
memset(&cmp_fregs, 0, sizeof(cmp_fregs));
memset(&rd_fregs, 0, sizeof(rd_fregs));
memset(&iov, 0, sizeof(iov));
/* wait child stop */
if (wait_child_stop(cpid)) {
goto out;
}
/* PTRACE_GETREGSET(get vl) */
iov.iov_len = sizeof(header);
iov.iov_base = &header;
if (ptrace(PTRACE_GETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_GETREGSET)");
goto cont;
}
/* gen cmp value */
gen_test_fpsimd(&cmp_fregs, sve_vq_from_vl(header.vl));
/* PTRACE_GETREGSET */
iov.iov_len = sizeof(rd_fregs);
iov.iov_base = &rd_fregs;
if (ptrace(PTRACE_GETREGSET, cpid, NT_PRFPREG, &iov)) {
perror("ptrace(PTRACE_GETREGSET)");
goto cont;
}
/* compare */
if (fpsimd_compare(&cmp_fregs, &rd_fregs, sizeof(cmp_fregs))) {
printf("parent-process compare failed.\n");
goto cont;
}
/* success */
ret = 0;
cont:
/* rewrite child brk instruction */
if (rewrite_brk_inst(cpid, &inst_addr)) {
/* Through */
}
/* child continue */
if (ptrace(PTRACE_CONT, cpid, NULL, NULL)) {
perror("ptrace(PTRACE_CONT)");
ret = -1;
}
out:
return ret;
}
TEST_FUNC(TEST_NUMBER, unused1, vq, unused2, unused3)
{
pid_t cpid = 0;
int func_ret = 0;
int ret = -1;
print_test_overview(tp_num);
/* create child process */
cpid = fork();
switch (cpid) {
case -1:
/* fork() error. */
perror("fork()");
goto out;
case 0:
/* child process */
func_ret = child_func(vq);
/* child exit */
exit(func_ret);
break;
default:
/* parent process */
func_ret = parent_func(cpid, vq);
/* wait child */
if (wait_child_exit(cpid)) {
goto out;
}
/* parent_func check */
if (func_ret) {
goto out;
}
break;
}
/* sccess. */
ret = 0;
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

156
test/sve/src/013.c Normal file
View File

@ -0,0 +1,156 @@
/* 013.c COPYRIGHT FUJITSU LIMITED 2016-2019 */
/* When SVE is enable, ptrace(SETREGSET + NT_PRFPREG) check. */
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <errno.h>
#include <string.h>
#include <sys/ptrace.h>
#include <sys/uio.h>
#include <sys/types.h>
#include <unistd.h>
#include <linux/elf.h>
#include "common.h"
static unsigned long inst_addr;
static int child_func(unsigned int vq)
{
int ret = -1;
struct user_fpsimd_state rd_fregs;
struct user_fpsimd_state cmp_fregs;
memset(&rd_fregs, 0, sizeof(rd_fregs));
memset(&cmp_fregs, 0, sizeof(cmp_fregs));
/* send PTRACE_TRACEME */
if (ptrace(PTRACE_TRACEME, 0, NULL, NULL)) {
perror("ptrace(PTRACE_TRACEME)");
goto out;
}
/* gen register */
gen_test_fpsimd(&cmp_fregs, vq);
/* enable SVE */
sve_get_vl();
/* stop mine, brk instruction */
asm volatile(
"adr x10, 1f\n"
"str x10, [%0]\n"
"nop\n"
"nop\n"
"1:\n"
"brk #0\n"
"nop\n"
: /* nothing */
: "r"(&inst_addr)
: "x10"
);
/* read register */
read_fpsimd(&rd_fregs);
/* compare */
if (fpsimd_compare(&cmp_fregs, &rd_fregs, sizeof(cmp_fregs))) {
printf("child-process compare failed.\n");
goto out;
}
/* success */
ret = 0;
out:
return ret;
}
static int parent_func(pid_t cpid, unsigned int vq)
{
int ret = -1;
struct user_fpsimd_state wr_fregs;
struct iovec iov;
memset(&wr_fregs, 0, sizeof(wr_fregs));
memset(&iov, 0, sizeof(iov));
/* wait child stop */
if (wait_child_stop(cpid)) {
goto out;
}
/* gen register */
gen_test_fpsimd(&wr_fregs, vq);
/* PTRACE_SETREGSET */
iov.iov_len = sizeof(wr_fregs);
iov.iov_base = &wr_fregs;
if (ptrace(PTRACE_SETREGSET, cpid, NT_PRFPREG, &iov)) {
perror("ptrace(PTRACE_SETREGSET)");
goto cont;
}
/* success */
ret = 0;
cont:
/* rewrite child brk instruction */
if (rewrite_brk_inst(cpid, &inst_addr)) {
/* Through */
}
/* child continue */
if (ptrace(PTRACE_CONT, cpid, NULL, NULL)) {
perror("ptrace(PTRACE_CONT)");
ret = -1;
}
out:
return ret;
}
TEST_FUNC(TEST_NUMBER, unused1, vq, unused2, unused3)
{
pid_t cpid = 0;
int func_ret = 0;
int ret = -1;
print_test_overview(tp_num);
/* create child process */
cpid = fork();
switch (cpid) {
case -1:
/* fork() error. */
perror("fork()");
goto out;
case 0:
/* child process */
func_ret = child_func(vq);
/* child exit */
exit(func_ret);
break;
default:
/* parent process */
func_ret = parent_func(cpid, vq);
/* wait child */
if (wait_child_exit(cpid)) {
goto out;
}
/* parent_func check */
if (func_ret) {
goto out;
}
break;
}
/* sccess. */
ret = 0;
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

180
test/sve/src/014.c Normal file
View File

@ -0,0 +1,180 @@
/* 014.c COPYRIGHT FUJITSU LIMITED 2016-2019 */
/* ptrace(SETREGSET + NT_ARM_SVE) check, use brk instruction. */
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <errno.h>
#include <string.h>
#include <sys/ptrace.h>
#include <sys/uio.h>
#include <sys/types.h>
#include <unistd.h>
#include "common.h"
/* rewrite instruction addr buffer */
static unsigned long inst_addr;
static int child_func(unsigned int vq)
{
int ret = -1;
struct fpsimd_sve_state(vq) cmp_buf;
struct fpsimd_sve_state(vq) rd_buf;
unsigned int fpscr[2] = { 0, 0 };
memset(&cmp_buf, 0, sizeof(struct fpsimd_sve_state(vq)));
memset(&rd_buf, 0, sizeof(struct fpsimd_sve_state(vq)));
/* send PTRACE_TRACEME */
if (ptrace(PTRACE_TRACEME, 0, NULL, NULL)) {
perror("ptrace(PTRACE_TRACEME)");
goto out;
}
/* gen and read register */
gen_test_sve(&cmp_buf, vq);
read_sve(&rd_buf, vq, fpscr);
/* stop mine, brk instruction */
/* rewrite nop from parent process */
asm volatile(
"adr x10, 1f\n"
"str x10, [%0]\n"
"nop\n"
"nop\n"
"1:\n"
"brk #0\n"
"nop\n"
: /* nothing */
: "r"(&inst_addr)
: "x10"
);
/* read register */
read_sve(&rd_buf, vq, fpscr);
/* compare */
if (sve_compare(&cmp_buf, &rd_buf, vq)) {
printf("child-process compare failed.\n");
goto out;
}
/* success */
ret = 0;
out:
return ret;
}
static int parent_func(pid_t cpid, unsigned int vq)
{
int ret = -1;
struct user_fpsimd_sve_state(vq) wr_buf;
struct iovec iov;
unsigned long addr = 0;
memset(&wr_buf, 0, sizeof(wr_buf));
memset(&iov, 0, sizeof(iov));
/* wait child stop */
if (wait_child_stop(cpid)) {
goto out;
}
/* PTRACE_GETREGSET */
iov.iov_len = sizeof(wr_buf);
iov.iov_base = &wr_buf;
if (ptrace(PTRACE_GETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_GETREGSET)");
goto cont;
}
/* header compare */
if (header_compare(&wr_buf.header)) {
printf("ptrace(PTRACE_GETREGSET) header compare failed.\n");
goto cont;
}
/* gen register */
gen_test_sve(&wr_buf.regs, vq);
/* PTRACE_SETREGSET */
iov.iov_len = sizeof(wr_buf);
iov.iov_base = &wr_buf;
if (ptrace(PTRACE_SETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_SETREGSET)");
goto cont;
}
/* read child brk address */
addr = ptrace(PTRACE_PEEKDATA, cpid, &inst_addr, NULL);
if ((addr == -1) && errno) {
perror("ptrace(PTRACE_PEEKDATA)");
goto cont;
}
/* write nop instruction */
/* 0xd503201f equal nop instruction */
if (ptrace(PTRACE_POKETEXT, cpid, addr, 0xd503201fd503201fUL)) {
perror("ptrace(PTRACE_POKETEXT)");
goto cont;
}
/* success */
ret = 0;
cont:
/* child continue */
if (ptrace(PTRACE_CONT, cpid, NULL, NULL)) {
perror("ptrace(PTRACE_CONT)");
ret = -1;
}
out:
return ret;
}
TEST_FUNC(TEST_NUMBER, unused1, vq, unused2, unused3)
{
pid_t cpid = 0;
int func_ret = 0;
int ret = -1;
print_test_overview(tp_num);
/* create child process */
cpid = fork();
switch (cpid) {
case -1:
/* fork() error. */
perror("fork()");
goto out;
case 0:
/* child process */
func_ret = child_func(vq);
/* child exit */
exit(func_ret);
break;
default:
/* parent process */
func_ret = parent_func(cpid, vq);
/* wait child */
if (wait_child_exit(cpid)) {
goto out;
}
/* parent_func check */
if (func_ret) {
goto out;
}
break;
}
/* sccess. */
ret = 0;
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

259
test/sve/src/015.c Normal file
View File

@ -0,0 +1,259 @@
/* 015.c COPYRIGHT FUJITSU LIMITED 2016-2019 */
/* Context switch in the same core check and SIGSTOP -> SIGCONT
* restart check.(need run on background '&')
*/
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <semaphore.h>
#include <sys/mman.h>
#include <arm_neon.h>
#include <sys/types.h>
#include <unistd.h>
#include <sched.h>
#include <errno.h>
#include "common.h"
static sem_t *sync_sem1;
static sem_t *sync_sem2;
static int *parent_core;
static int *sync_flag;
#define CHILD_DONE 1
#define PARENT_DONE 2
static int *child_count;
static void child_func(unsigned int vq)
{
const unsigned int cmp_reg = vq * 2;
uint64_t a[cmp_reg], b[cmp_reg];
int i = 0;
pid_t pid = getpid();
printf("[child] pid = %d\n", pid);
for (i = 0; i < cmp_reg; i++) {
a[i] = pid + i;
}
asm volatile(
".cpu cortex-a53+fp+simd+sve\n\t"
"ldr z31, [%0]\n\t"
:
: "r"(a)
:
);
for (;;) {
asm volatile(
"add z31.d, z31.d,#1\n\t"
"str z31, [%0]\n\t"
:
: "r"(b)
:
);
for (i = 0; i < cmp_reg; i++) {
a[i] = a[i] + 1;
if (a[i] != b[i]) {
printf("[child] sve failed."
"a[%d]=%lu,b[%d]=%lu\n",
i, a[i], i, b[i]);
*child_count = -1;
return;
}
}
*sync_flag = CHILD_DONE;
while (*sync_flag != PARENT_DONE) {
cpu_pause();
}
(*child_count)++;
cpu_pause();
}
}
static void parent_func(void)
{
uint32x4_t vec_a, vec_b, vec_result;
uint32_t data1[4] __attribute__((aligned(128)));
uint32_t data2[4] __attribute__((aligned(128))) = {1, 2, 3, 4};
pid_t pid;
int i = 0;
pid = getpid();
printf("[parent] pid = %d\n", pid);
data1[0] = pid + 1;
data1[1] = pid + 2;
data1[2] = pid + 3;
data1[3] = pid + 4;
vec_a = vld1q_u32(data1);
vec_b = vld1q_u32(data2);
for (;;) {
*sync_flag = PARENT_DONE;
while (*sync_flag != CHILD_DONE) {
cpu_pause();
}
vec_result = vec_a - vec_b;
if ((vgetq_lane_u32(vec_result, 0) != pid)
|| (vgetq_lane_u32(vec_result, 1) != pid)
|| (vgetq_lane_u32(vec_result, 2) != pid)
|| (vgetq_lane_u32(vec_result, 3) != pid)) {
printf("error\n");
return;
}
printf("[parent] loop ok. (%d)\n", i);
if (*child_count != -1) {
printf("[child] loop ok. (%d)\n", *child_count);
}
else {
return;
}
i++;
cpu_pause();
}
}
TEST_FUNC(TEST_NUMBER, unused1, vq, unused3, unused4)
{
pid_t pid = 0;
print_test_overview(tp_num);
/* get shared memory */
sync_sem1 = (sem_t *)mmap(NULL, sizeof(sem_t),
PROT_READ | PROT_WRITE,
MAP_SHARED | MAP_ANONYMOUS, -1, 0);
sync_sem2 = (sem_t *)mmap(NULL, sizeof(sem_t),
PROT_READ | PROT_WRITE,
MAP_SHARED | MAP_ANONYMOUS, -1, 0);
parent_core = (int *)mmap(NULL, sizeof(int),
PROT_READ | PROT_WRITE,
MAP_SHARED | MAP_ANONYMOUS, -1, 0);
sync_flag = (int *)mmap(NULL, sizeof(int),
PROT_READ | PROT_WRITE,
MAP_SHARED | MAP_ANONYMOUS, -1, 0);
child_count = (int *)mmap(NULL, sizeof(int),
PROT_READ | PROT_WRITE,
MAP_SHARED | MAP_ANONYMOUS, -1, 0);
*parent_core = 0;
*sync_flag = 0;
*child_count = 0;
/* semaphore init */
sem_init(sync_sem1, 1, 0);
sem_init(sync_sem2, 1, 0);
/* create child process */
pid = fork();
switch (pid) {
case -1:
/* fork() error. */
perror("fork()");
return -1;
case 0: {
/* child process */
/* before migrate, get cpunum */
int old_mycore = sched_getcpu();
int new_mycore = -1;
printf("[child] running core %d\n", old_mycore);
/* sync parent */
sem_post(sync_sem1);
/* sync parent */
sem_wait(sync_sem2);
/* after migrate, get cpunum */
new_mycore = sched_getcpu();
/* corenum check. */
if (*parent_core != old_mycore) {
printf("[child] before migrate prevcore "
"%d, nowcore %d\n", old_mycore, new_mycore);
if (old_mycore == new_mycore) {
printf("TP failed, "
"not migrate child process.\n");
exit(-1);
}
} else {
printf("[child] migrate not required.\n");
}
/* loop */
child_func(vq);
/* unmap */
munmap(sync_sem1, sizeof(sem_t));
munmap(sync_sem2, sizeof(sem_t));
munmap(parent_core, sizeof(int));
munmap(sync_flag, sizeof(int));
munmap(child_count, sizeof(int));
/* child exit */
exit(-1);
break;
}
default: {
/* parent process */
cpu_set_t cpuset;
int result = -1;
/* sync child */
sem_wait(sync_sem1);
/* parent corenum get */
*parent_core = sched_getcpu();
/* child process to migrate parent core */
printf("[parent] running core %d\n", *parent_core);
printf("[parent] child process migrate/bind "
"to core %d\n", *parent_core);
CPU_ZERO(&cpuset);
CPU_SET(*parent_core, &cpuset);
result = sched_setaffinity(pid, sizeof(cpuset), &cpuset);
if (result == -1) {
printf("errno = %d\n", errno);
break;
}
/* parent core bind */
printf("[parent] parent process bind "
"to core %d\n", *parent_core);
result = sched_setaffinity(0, sizeof(cpuset), &cpuset);
if (result == -1) {
printf("errno = %d\n", errno);
break;
}
/* sync child */
sem_post(sync_sem2);
/* loop */
parent_func();
/* unmap */
munmap(sync_sem1, sizeof(sem_t));
munmap(sync_sem2, sizeof(sem_t));
munmap(parent_core, sizeof(int));
munmap(sync_flag, sizeof(int));
munmap(child_count, sizeof(int));
break;
}
}
/* never return */
printf("RESULT: NG.\n");
return 0;
}

22
test/sve/src/016.c Normal file
View File

@ -0,0 +1,22 @@
/* 016.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* prctl(PR_SVE_GET_VL) check. */
#include <stdio.h>
#include <stdlib.h>
#include "common.h"
TEST_FUNC(TEST_NUMBER, vl, unused1, unused2, unused3)
{
int ret = -1;
print_test_overview(tp_num);
ret = get_and_compare_vl(vl);
if (ret == 0) {
printf("Expected VL (0x%x) == return VL (0x%x).\n", vl, vl);
printf("RESULT: OK.\n");
} else {
printf("SVE_GET_VL compare failed.\n");
printf("RESULT: NG.\n");
}
return ret;
}

76
test/sve/src/017.c Normal file
View File

@ -0,0 +1,76 @@
/* 017.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* prctl(PR_SVE_SET_VL) check. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "common.h"
TEST_FUNC(TEST_NUMBER, vl, vq, unused1, unused2)
{
struct fpsimd_sve_state(vq) wr_buf;
struct fpsimd_sve_state(vq) rd_buf;
unsigned int fpscr[2] = { 0, 0 };
int i = 0, ret = -1;
const unsigned int set_vl_1 = gen_set_vl(vl);
const unsigned int set_vl_2 = gen_set_vl(set_vl_1);
struct {
unsigned int vl;
unsigned int flags;
void *compare;
} setting[] = {
{ set_vl_1, 0, NULL },
{ set_vl_2, 0, NULL }
};
struct fpsimd_sve_state(sve_vq_from_vl(setting[0].vl)) cmp_0;
struct fpsimd_sve_state(sve_vq_from_vl(setting[1].vl)) cmp_1;
print_test_overview(tp_num);
/* buffer initialize */
memset(&wr_buf, 0, sizeof(wr_buf));
memset(&rd_buf, 0, sizeof(rd_buf));
memset(&cmp_0, 0, sizeof(cmp_0));
memset(&cmp_1, 0, sizeof(cmp_1));
gen_test_sve_low_128(&cmp_0, vq, sve_vq_from_vl(setting[0].vl));
gen_test_sve_low_128(&cmp_1, vq, sve_vq_from_vl(setting[1].vl));
setting[0].compare = &cmp_0;
setting[1].compare = &cmp_1;
/* write SVE (default VL) */
gen_test_sve(&wr_buf, vq);
write_sve(&wr_buf, vq, fpscr);
read_sve(&rd_buf, vq, fpscr);
if (sve_compare(&wr_buf, &rd_buf, vq)) {
printf("Dirty SVE-register for default-VL, failed.\n");
goto out;
}
for (i = 0; i < ARRAY_SIZE(setting); i++) {
struct fpsimd_sve_state(sve_vq_from_vl(setting[i].vl)) work_buf;
unsigned int work_fpscr[2] = { 0, 0 };
if (set_and_compare_vl(setting[i].vl | setting[i].flags)) {
printf("SVE_SET_VL compare failed.\n");
goto out;
}
memset(&work_buf, 0, sizeof(work_buf));
read_sve(&work_buf, (sve_vq_from_vl(setting[i].vl)),
work_fpscr);
if (sve_compare(setting[i].compare, &work_buf,
sve_vq_from_vl(setting[i].vl))) {
printf("After SET_VL compare failed.\n");
goto out;
}
}
ret = 0;
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

53
test/sve/src/018.c Normal file
View File

@ -0,0 +1,53 @@
/* 018.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* prctl(PR_SVE_SET_VL, PR_SVE_SET_VL_THREAD) on multi thread. */
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <signal.h>
#include <errno.h>
#include "common.h"
static int sync;
static void *child_function(void *arg)
{
while (!sync) {
cpu_pause();
}
return NULL;
}
TEST_FUNC(TEST_NUMBER, vl, unused1, unused2, unused3)
{
int ret = -1;
pthread_t thread;
print_test_overview(tp_num);
if (pthread_create(&thread, NULL, child_function, NULL)) {
printf("pthread_create: error.\n");
goto out;
}
ret = set_and_compare_vl(vl);
if (ret != EINVAL) {
printf("SVE_SET_VL is not EINVAL error.\n");
goto join_out;
}
/* success */
ret = 0;
join_out:
sync = 1;
if (pthread_join(thread, NULL)) {
printf("pthread_join: error.\n");
ret = -1;
}
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

58
test/sve/src/019.c Normal file
View File

@ -0,0 +1,58 @@
/* 019.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* prctl(PR_SVE_SET_VL) parameters pattern check. */
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <errno.h>
#include "common.h"
TEST_FUNC(TEST_NUMBER, vl, unused1, unused2, unused3)
{
int ret = 0, func_ret = 0;
int i, j;
struct params {
unsigned int vl;
unsigned int flags;
};
struct params unsup_vl[] = { { UNSPPORT_VL, 0 } };
struct params inval_vl[] = { { INVALID_VL_1, 0 },
{ INVALID_VL_2, 0 },
{ INVALID_VL_3, 0 } };
struct params inval_fl[] = { { vl, PR_SVE_INVALID_FLAGS } };
struct {
char *pattern_string;
struct params *param;
int param_count;
} testcases[] = {
{ "unsupport VL", unsup_vl, ARRAY_SIZE(unsup_vl) },
{ "invalid VL", inval_vl, ARRAY_SIZE(inval_vl) },
{ "invalid FLAGS", inval_fl, ARRAY_SIZE(inval_fl) }
};
print_test_overview(tp_num);
for (i = 0; i < ARRAY_SIZE(testcases); i++) {
printf("check %d : %s setting.\n",
i, testcases[i].pattern_string);
for (j = 0; j < testcases[i].param_count; j++) {
func_ret = set_and_compare_vl(
testcases[i].param[j].vl |
testcases[i].param[j].flags);
if (func_ret != EINVAL) {
printf("%s (%d, %d) setting succeeded.\n",
testcases[i].pattern_string,
testcases[i].param[j].vl,
testcases[i].param[j].flags);
printf("RESULT: NG.\n");
ret = -1;
goto out;
}
}
}
printf("RESULT: OK.\n");
out:
return ret;
}

85
test/sve/src/020.c Normal file
View File

@ -0,0 +1,85 @@
/* 020.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* Use fork() VL check if setting INHERIT flags. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
#include "common.h"
TEST_FUNC(TEST_NUMBER, vl, vq, unused1, unused2)
{
struct fpsimd_sve_state(vq) rd_buf;
struct fpsimd_sve_state(vq) wr_buf;
unsigned int fpscr[2] = { 0, 0 };
pid_t cpid;
int ret = -1;
print_test_overview(tp_num);
memset(&rd_buf, 0, sizeof(rd_buf));
memset(&wr_buf, 0, sizeof(wr_buf));
gen_test_sve(&wr_buf, vq);
write_sve(&wr_buf, vq, fpscr);
read_sve(&rd_buf, vq, fpscr);
if (sve_compare(&wr_buf, &rd_buf, vq)) {
printf("parent-process Dirty SVE-register setting failed.\n");
goto out;
}
if (set_and_compare_vl(gen_set_vl(vl) | PR_SVE_VL_INHERIT)) {
printf("prctl: error.\n");
goto out;
}
cpid = fork();
switch (cpid) {
case -1:
/* error */
printf("ERROR: fork()=%d, errno=%d\n", cpid, errno);
goto out;
case 0: {
/* child process */
const int c_vq = sve_vq_from_vl(gen_set_vl(vl));
struct fpsimd_sve_state(c_vq) c_rd_buf;
struct fpsimd_sve_state(c_vq) c_cmp_buf;
memset(&c_rd_buf, 0, sizeof(c_rd_buf));
if (get_and_compare_vl(gen_set_vl(vl) | PR_SVE_VL_INHERIT)) {
printf("prctl: error.\n");
exit(-1);
}
read_sve(&c_rd_buf, sve_vq_from_vl(gen_set_vl(vl)), fpscr);
memset(&c_cmp_buf, 0, sizeof(c_cmp_buf));
gen_test_sve_low_128(&c_cmp_buf, vq,
sve_vq_from_vl(gen_set_vl(vl)));
if (sve_compare(&c_cmp_buf, &c_rd_buf,
sve_vq_from_vl(gen_set_vl(vl)))) {
printf("child-process compare failed.\n");
exit(-1);
}
exit(0);
break;
}
default:
/* parent process */
/* wait child */
if (wait_child_exit(cpid)) {
goto out;
}
break;
}
ret = 0;
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

101
test/sve/src/021.c Normal file
View File

@ -0,0 +1,101 @@
/* 021.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* Use pthread_create() VL check if setting INHERIT flags. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include "common.h"
static void *child_function(void *arg)
{
void *ret = (void *)-1;
unsigned int vl = sve_get_vl();
unsigned int vq = sve_vq_from_vl(vl);
unsigned int *dfl_vl = (unsigned int *)arg;
void *rd_buf = calloc(1, (vl * 35) + 15);
void *cmp_buf = NULL, *align_cmp_buf = NULL;
void *align_rd_buf = (void *)(((unsigned long)(rd_buf + 15)) & ~15UL);
unsigned int fpscr[2] = { 0, 0 };
if (!rd_buf) {
printf("calloc() failed.\n");
goto out;
}
if (get_and_compare_vl(gen_set_vl(*dfl_vl) | PR_SVE_VL_INHERIT)) {
printf("prctl: error.\n");
goto rd_free_out;
}
read_sve(align_rd_buf, vq, fpscr);
cmp_buf = calloc(1, (vl * 35) + 15);
if (!cmp_buf) {
printf("calloc() failed.\n");
goto rd_free_out;
}
align_cmp_buf = (void *)(((unsigned long)(rd_buf + 15)) & ~15UL);
gen_test_sve_low_128(align_cmp_buf, sve_vq_from_vl(*dfl_vl), vq);
if (sve_compare(align_cmp_buf, align_rd_buf, vq)) {
printf("child-thread register compare failed.\n");
goto cmp_free_out;
}
/* success */
ret = NULL;
cmp_free_out:
free(cmp_buf);
rd_free_out:
free(rd_buf);
out:
pthread_exit(ret);
return NULL;
}
TEST_FUNC(TEST_NUMBER, vl, vq, unused1, unused2)
{
void *pret = (void *)-1;
struct fpsimd_sve_state(vq) rd_buf;
struct fpsimd_sve_state(vq) wr_buf;
unsigned int fpscr[2] = { 0, 0 };
pthread_t thread;
int ret = -1;
print_test_overview(tp_num);
memset(&rd_buf, 0, sizeof(rd_buf));
memset(&wr_buf, 0, sizeof(wr_buf));
gen_test_sve(&wr_buf, vq);
write_sve(&wr_buf, vq, fpscr);
read_sve(&rd_buf, vq, fpscr);
if (sve_compare(&wr_buf, &rd_buf, vq)) {
printf("parent-thread compare failed.\n");
goto out;
}
if (set_and_compare_vl(gen_set_vl(vl) | PR_SVE_VL_INHERIT)) {
printf("prctl: error.\n");
goto out;
}
if (pthread_create(&thread, NULL, child_function, &vl)) {
printf("pthread_create: error.\n");
goto out;
}
if (pthread_join(thread, &pret)) {
printf("pthread_join: error.\n");
goto out;
}
out:
if (pret == NULL) {
ret = 0;
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

56
test/sve/src/022.c Normal file
View File

@ -0,0 +1,56 @@
/* 022.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* Use execve() VL check if setting INHERIT flags.
* (execve target is #1 testcase)
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "common.h"
extern char **environ;
TEST_FUNC(TEST_NUMBER, vl, vq, unused1, tp_argv)
{
char *self = (char *)tp_argv[0];
struct fpsimd_sve_state(vq) rd_buf;
struct fpsimd_sve_state(vq) wr_buf;
unsigned int fpscr[2] = { 0, 0 };
char *const execve_args[] = {
"", "1", NULL
};
int ret = -1;
print_test_overview(tp_num);
memset(&rd_buf, 0, sizeof(rd_buf));
memset(&wr_buf, 0, sizeof(wr_buf));
gen_test_sve(&wr_buf, vq);
write_sve(&wr_buf, vq, fpscr);
read_sve(&rd_buf, vq, fpscr);
if (sve_compare(&wr_buf, &rd_buf, vq)) {
printf("Dirty SVE-register before executing execve(), NG.\n");
goto out;
}
printf("Dirty SVE-register before executing execve(), OK.\n");
if (set_and_compare_vl(gen_set_vl(vl) | PR_SVE_VL_INHERIT)) {
printf("prctl: error.\n");
goto out;
}
printf("=== look at the contents of the register "
"since run execve. ===\n");
ret = execve(self, execve_args, environ);
if (ret == -1) {
perror("execve()");
} else {
ret = -1;
printf("Why return execve() ???\n");
}
out:
printf("RESULT: NG.\n");
return ret;
}

93
test/sve/src/023.c Normal file
View File

@ -0,0 +1,93 @@
/* 023.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* Preservation VL check signalhsndler before and after. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <errno.h>
#include <sys/prctl.h>
#include "common.h"
static void sig_handler(int sig)
{
unsigned int vl = sve_get_vl();
unsigned int vq = sve_vq_from_vl(vl);
void *wr_buf = calloc(1, (vl * 35) + 15);
void *align_wr_buf = (void *)(((unsigned long)(wr_buf + 15)) & ~15UL);
unsigned int fpscr[2] = { 0, 0 };
if (!wr_buf) {
printf("calloc() failed.\n");
goto out;
}
/* set dirty */
gen_test_sve_dirty(align_wr_buf, vq);
write_sve(align_wr_buf, vq, fpscr);
free(wr_buf);
out:
return;
}
TEST_FUNC(TEST_NUMBER, vl, vq, unused1, unused2)
{
const int use_vq = sve_vq_from_vl(gen_set_vl(vl));
struct fpsimd_sve_state(use_vq) rd_buf;
struct fpsimd_sve_state(use_vq) wr_buf;
unsigned int fpscr[2] = { 0, 0 };
int ret = -1;
unsigned int before_vl;
unsigned int after_vl;
print_test_overview(tp_num);
memset(&rd_buf, 0, sizeof(rd_buf));
memset(&wr_buf, 0, sizeof(wr_buf));
if (signal(SIGUSR1, sig_handler) == SIG_ERR) {
printf("Set signal handler failed.\n");
goto out;
}
if (set_and_compare_vl(gen_set_vl(vl) | PR_SVE_VL_INHERIT)) {
printf("prctl: error.\n");
goto out;
}
/* before sighandler */
gen_test_sve(&wr_buf, sve_vq_from_vl(gen_set_vl(vl)));
write_sve(&wr_buf, sve_vq_from_vl(gen_set_vl(vl)), fpscr);
before_vl = sve_get_vl();
if (raise(SIGUSR1)) {
perror("raise(SIGUSR1)");
goto out;
}
after_vl = sve_get_vl();
if (before_vl != after_vl) {
printf("before VL=%d, after VL=%d\n", before_vl, after_vl);
printf("VL compare failed.\n");
goto out;
}
/* after sighandler */
read_sve(&rd_buf, sve_vq_from_vl(after_vl), fpscr);
/* compare */
if (sve_compare(&wr_buf, &rd_buf, sve_vq_from_vl(after_vl))) {
printf("compare failed.\n");
goto out;
}
/* success. */
ret = 0;
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

235
test/sve/src/024.c Normal file
View File

@ -0,0 +1,235 @@
/* 024.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* Preservation VL check migrate cpus before and after. */
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <string.h>
#include <unistd.h>
#include <sched.h>
#include <sys/syscall.h>
#include <sys/types.h>
#include <sys/ptrace.h>
#include "common.h"
static unsigned long inst_addr;
static int child_func(unsigned int vl, unsigned int vq, int *c2p)
{
const unsigned int set_vl = gen_set_vl(vl);
const unsigned int set_vq = sve_vq_from_vl(set_vl);
int ret = -1;
unsigned int before_id, after_id;
unsigned int before_vl, after_vl;
struct fpsimd_sve_state(set_vq) before_buf;
struct fpsimd_sve_state(set_vq) after_buf;
unsigned int fpscr[2] = { 0, 0 };
/* send PTRACE_TRACEME */
if (ptrace(PTRACE_TRACEME, 0, NULL, NULL)) {
perror("ptrace(PTRACE_TRACEME)");
goto out;
}
/* clear buffer */
memset(&before_buf, 0, sizeof(before_buf));
memset(&after_buf, 0, sizeof(after_buf));
/* get running core number and notify parent */
before_id = sched_getcpu();
printf("[child] before migrate. (cpuid=%d)\n", before_id);
write(c2p[1], &before_id, sizeof(before_id));
if (set_and_compare_vl(set_vl | PR_SVE_VL_INHERIT)) {
printf("prctl: error.\n");
goto out;
}
/* write, read and show register */
gen_test_sve(&before_buf, set_vq);
write_sve(&before_buf, set_vq, fpscr);
before_vl = sve_get_vl();
/* stop mine, brk instruction */
asm volatile(
"adr x10, 1f\n"
"str x10, [%0]\n"
"nop\n"
"nop\n"
"1:\n"
"brk #0\n"
"nop\n"
: /* nothing */
: "r"(&inst_addr)
: "x10"
);
after_vl = sve_get_vl();
/* get after migrate running core number and notify parent */
after_id = sched_getcpu();
printf("[child] after migrate. (cpuid=%d)\n", after_id);
/* migrate check */
if (before_id == after_id) {
printf("not migrate process.\n");
goto out;
}
if (before_vl != after_vl) {
printf("bevore VL=%d, after VL=%d\n", before_vl, after_vl);
printf("VL compare failed.\n");
goto out;
}
/* read and show register */
read_sve(&after_buf, set_vq, fpscr);
/* compare */
if (sve_compare(&before_buf, &after_buf, set_vq)) {
printf("child-process compare failed.\n");
goto out;
}
/* success */
ret = 0;
out:
return ret;
}
static int parent_func(pid_t cpid, int *c2p)
{
int ret = -1;
int i = 0;
cpu_set_t *cpusetp_child;
size_t size;
unsigned int c_before_id;
unsigned int migrate_cpu = -1;
unsigned int parent_cpu;
/* wait child stop */
if (wait_child_stop(cpid)) {
goto out;
}
/* read child process running core number */
read(c2p[0], &c_before_id, sizeof(c_before_id));
/* getaffinity mask allocate */
size = CPU_ALLOC_SIZE(SMP_MAX_CPUS);
cpusetp_child = CPU_ALLOC(SMP_MAX_CPUS);
if (!cpusetp_child) {
printf("(child process) alloc failed.\n");
goto cont;
}
CPU_ZERO_S(size, cpusetp_child);
/* get child affinity */
if (sched_getaffinity(cpid, size, cpusetp_child)) {
perror("sched_getaffinity()");
goto cont;
}
/* calc migrate core number */
parent_cpu = sched_getcpu();
for (i = 0; i < SMP_MAX_CPUS; i++) {
if (CPU_ISSET(i, cpusetp_child)) {
if ((i != parent_cpu) && (i != c_before_id)) {
migrate_cpu = i;
break;
}
}
}
/* migrate core number check */
if (migrate_cpu < 0) {
printf("Bad target to migrate child process.\n");
goto cont;
}
/* set affinity */
CPU_ZERO_S(size, cpusetp_child);
CPU_SET_S(migrate_cpu, size, cpusetp_child);
if (sched_setaffinity(cpid, size, cpusetp_child)) {
perror("sched_setaffinity()");
goto out;
}
CPU_FREE(cpusetp_child);
/* success */
ret = 0;
cont:
/* rewrite child brk instruction */
if (rewrite_brk_inst(cpid, &inst_addr)) {
/* Through */
}
/* child continue */
if (ptrace(PTRACE_CONT, cpid, NULL, NULL)) {
perror("ptrace(PTRACE_CONT)");
ret = -1;
}
out:
return ret;
}
TEST_FUNC(TEST_NUMBER, vl, vq, unused1, unused2)
{
pid_t cpid = 0;
int func_ret = -1;
int ret = -1;
int c2p[2] = { -1, -1 };
print_test_overview(tp_num);
/* allocation pipe */
if (pipe(c2p)) {
printf("pipe() Failed.\n");
goto out;
}
/* create child process */
cpid = fork();
switch (cpid) {
case -1:
/* fork() error */
perror("fork()");
goto close_out;
case 0:
/* child process */
exit(child_func(vl, vq, c2p));
break;
default:
/* parent process */
func_ret = parent_func(cpid, c2p);
/* wait child */
if (wait_child_exit(cpid)) {
goto close_out;
}
/* parent_func check */
if (func_ret) {
goto close_out;
}
break;
}
/* success. */
ret = 0;
close_out:
/* close pipe */
close(c2p[0]);
close(c2p[1]);
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return 0;
}

170
test/sve/src/025.c Normal file
View File

@ -0,0 +1,170 @@
/* 025.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* ptrace(GETREGSET + NT_ARM_SVE) VL check. */
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <errno.h>
#include <string.h>
#include <sys/ptrace.h>
#include <sys/uio.h>
#include <sys/types.h>
#include <unistd.h>
#include "common.h"
static unsigned long inst_addr;
static int child_func(unsigned int vq)
{
int ret = -1;
struct fpsimd_sve_state(vq) wr_buf;
unsigned int fpscr[2] = { 0, 0 };
/* clear work area */
memset(&wr_buf, 0, sizeof(wr_buf));
/* send PTRACE_TRACEME */
if (ptrace(PTRACE_TRACEME, 0, NULL, NULL)) {
perror("ptrace(PTRACE_TRACEME)");
goto out;
}
/* pre write register */
gen_test_sve(&wr_buf, vq);
write_sve(&wr_buf, vq, fpscr);
/* stop mine, brk instruction */
asm volatile(
"adr x10, 1f\n"
"str x10, [%0]\n"
"nop\n"
"nop\n"
"1:\n"
"brk #0\n"
"nop\n"
: /* nothing */
: "r"(&inst_addr)
: "x10"
);
/* success */
ret = 0;
out:
return ret;
}
static int parent_func(pid_t cpid, unsigned int vq)
{
int ret = -1;
struct fpsimd_sve_state(vq) cmp_buf;
struct user_fpsimd_sve_state(vq) rd_buf;
struct iovec iov;
memset(&cmp_buf, 0, sizeof(cmp_buf));
memset(&rd_buf, 0, sizeof(rd_buf));
memset(&iov, 0, sizeof(iov));
/* wait child stop */
if (wait_child_stop(cpid)) {
goto out;
}
/* gen cmp value */
gen_test_sve(&cmp_buf, vq);
/* PTRACE_GETREGSET */
iov.iov_len = sizeof(rd_buf);
iov.iov_base = &rd_buf;
if (ptrace(PTRACE_GETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_GETREGSET)");
goto cont;
}
/* check Header */
printf("size = 0x%x\n", rd_buf.header.size);
printf("max_size = 0x%x\n", rd_buf.header.max_size);
printf("vl = 0x%x\n", rd_buf.header.vl);
printf("max_vl = 0x%x\n", rd_buf.header.max_vl);
printf("flags = 0x%x\n", rd_buf.header.flags);
if (header_compare(&rd_buf.header)) {
printf("child-process header compare failed.\n");
goto cont;
}
/* compare */
if (sve_compare(&cmp_buf, &rd_buf.regs, vq)) {
printf("child-process compare failed.\n");
goto cont;
}
/* success */
ret = 0;
cont:
/* rewrite child brk instruction */
if (rewrite_brk_inst(cpid, &inst_addr)) {
/* Through */
}
/* child continue */
if (ptrace(PTRACE_CONT, cpid, NULL, NULL)) {
perror("ptrace(PTRACE_CONT)");
ret = -1;
}
out:
return ret;
}
TEST_FUNC(TEST_NUMBER, vl, vq, unused1, unused2)
{
pid_t cpid = 0;
int func_ret = 0;
int ret = -1;
print_test_overview(tp_num);
if (set_and_compare_vl(gen_set_vl(vl) | PR_SVE_VL_INHERIT)) {
printf("prctl: error.\n");
goto out;
}
/* create child process */
cpid = fork();
switch (cpid) {
case -1:
/* fork() error. */
perror("fork()");
goto out;
case 0:
/* child process */
func_ret = child_func(sve_vq_from_vl(gen_set_vl(vl)));
/* child exit */
exit(func_ret);
break;
default:
/* parent process */
func_ret = parent_func(cpid, sve_vq_from_vl(gen_set_vl(vl)));
/* wait child */
if (wait_child_exit(cpid)) {
goto out;
}
/* parent_func check */
if (func_ret) {
goto out;
}
break;
}
/* sccess. */
ret = 0;
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

181
test/sve/src/026.c Normal file
View File

@ -0,0 +1,181 @@
/* 026.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* ptrace(SETREGSET + NT_ARM_SVE) VL check. */
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <errno.h>
#include <string.h>
#include <sys/ptrace.h>
#include <sys/uio.h>
#include <sys/types.h>
#include <unistd.h>
#include "common.h"
static unsigned long inst_addr;
static int child_func(const unsigned int vl)
{
int ret = -1;
/* before SETREGS VQ */
const unsigned int bf_vq = sve_vq_from_vl(vl);
/* after SETREGS VQ */
const unsigned int af_vq = sve_vq_from_vl(gen_set_vl(vl));
struct fpsimd_sve_state(bf_vq) bf_rd_buf;
struct fpsimd_sve_state(af_vq) cmp_buf, af_rd_buf;
unsigned int fpscr[2] = { 0, 0 };
/* struct initialize */
memset(&bf_rd_buf, 0, sizeof(bf_rd_buf));
memset(&cmp_buf, 0, sizeof(cmp_buf));
memset(&af_rd_buf, 0, sizeof(af_rd_buf));
/* send PTRACE_TRACEME */
if (ptrace(PTRACE_TRACEME, 0, NULL, NULL)) {
perror("ptrace(PTRACE_TRACEME)");
goto out;
}
/* gen and read register */
gen_test_sve(&cmp_buf, af_vq);
read_sve(&bf_rd_buf, bf_vq, fpscr);
/* stop mine, brk instruction */
asm volatile(
"adr x10, 1f\n"
"str x10, [%0]\n"
"nop\n"
"nop\n"
"1:\n"
"brk #0\n"
"nop\n"
: /* nothing */
: "r"(&inst_addr)
: "x10"
);
/* read register */
read_sve(&af_rd_buf, af_vq, fpscr);
/* compare */
if (sve_compare(&cmp_buf, &af_rd_buf, af_vq)) {
printf("child-process compare failed.\n");
goto out;
}
/* success */
ret = 0;
out:
return ret;
}
static int parent_func(pid_t cpid, const unsigned int vl)
{
int ret = -1;
/* after SETREGS VQ */
const unsigned int af_vq = sve_vq_from_vl(gen_set_vl(vl));
struct user_fpsimd_sve_state(af_vq) wr_buf;
struct iovec iov;
/* struct initialize */
memset(&wr_buf, 0, sizeof(wr_buf));
memset(&iov, 0, sizeof(iov));
/* wait child stop */
if (wait_child_stop(cpid)) {
goto out;
}
/* PTRACE_GETREGSET */
iov.iov_len = sizeof(wr_buf.header);
iov.iov_base = &wr_buf.header;
if (ptrace(PTRACE_GETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_GETREGSET)");
goto cont;
}
/* check Header */
if (header_compare(&wr_buf.header)) {
printf("header compare failed.\n");
goto cont;
}
/* set VL & flags */
wr_buf.header.vl = gen_set_vl(vl);
wr_buf.header.flags |= PR_SVE_VL_INHERIT;
/* gen register */
gen_test_sve(&wr_buf.regs, af_vq);
/* PTRACE_SETREGSET */
iov.iov_len = sizeof(wr_buf);
iov.iov_base = &wr_buf;
if (ptrace(PTRACE_SETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_SETREGSET)");
goto cont;
}
/* success */
ret = 0;
cont:
/* rewrite child brk instruction */
if (rewrite_brk_inst(cpid, &inst_addr)) {
/* Through */
}
/* child continue */
if (ptrace(PTRACE_CONT, cpid, NULL, NULL)) {
perror("ptrace(PTRACE_CONT)");
ret = -1;
}
out:
return ret;
}
TEST_FUNC(TEST_NUMBER, vl, unused1, unused2, unused3)
{
pid_t cpid = 0;
int func_ret = 0;
int ret = -1;
print_test_overview(tp_num);
/* create child process */
cpid = fork();
switch (cpid) {
case -1:
/* fork() error. */
perror("fork()");
goto out;
case 0:
/* child process */
func_ret = child_func(vl);
/* child exit */
exit(func_ret);
break;
default:
/* parent process */
func_ret = parent_func(cpid, vl);
/* wait child */
if (wait_child_exit(cpid)) {
goto out;
}
/* parent_func check */
if (func_ret) {
goto out;
}
break;
}
/* success. */
ret = 0;
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

84
test/sve/src/027.c Normal file
View File

@ -0,0 +1,84 @@
/* 027.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* Use fork() VL check if not setting INHERIT flags. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
#include "common.h"
TEST_FUNC(TEST_NUMBER, vl, vq, unused1, unused2)
{
struct fpsimd_sve_state(vq) rd_buf;
struct fpsimd_sve_state(vq) wr_buf;
unsigned int fpscr[2] = { 0, 0 };
pid_t cpid = 0;
int ret = -1;
print_test_overview(tp_num);
memset(&rd_buf, 0, sizeof(rd_buf));
memset(&wr_buf, 0, sizeof(wr_buf));
gen_test_sve(&wr_buf, vq);
write_sve(&wr_buf, vq, fpscr);
read_sve(&rd_buf, vq, fpscr);
if (sve_compare(&wr_buf, &rd_buf, vq)) {
printf("parent-process Dirty SVE-register setting failed.\n");
goto out;
}
if (set_and_compare_vl(gen_set_vl(vl))) {
printf("prctl: error.\n");
goto out;
}
cpid = fork();
switch (cpid) {
case -1:
/* error */
printf("ERROR: fork()=%d, errno=%d\n", cpid, errno);
goto out;
case 0: {
/* child process */
const int c_vq = sve_vq_from_vl(gen_set_vl(vl));
struct fpsimd_sve_state(c_vq) c_rd_buf;
struct fpsimd_sve_state(c_vq) c_cmp_buf;
memset(&c_rd_buf, 0, sizeof(c_rd_buf));
if (get_and_compare_vl(gen_set_vl(vl))) {
printf("prctl: error.\n");
exit(-1);
}
read_sve(&c_rd_buf, sve_vq_from_vl(gen_set_vl(vl)), fpscr);
memset(&c_cmp_buf, 0, sizeof(c_cmp_buf));
gen_test_sve_low_128(&c_cmp_buf, vq,
sve_vq_from_vl(gen_set_vl(vl)));
if (sve_compare(&c_cmp_buf, &c_rd_buf,
sve_vq_from_vl(gen_set_vl(vl)))) {
printf("child-process compare failed.\n");
exit(-1);
}
exit(0);
break;
}
default:
/* parent process */
if (wait_child_exit(cpid)) {
goto out;
}
break;
}
ret = 0;
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

106
test/sve/src/028.c Normal file
View File

@ -0,0 +1,106 @@
/* 028.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* Use pthread_create() VL check if not setting INHERIT flags. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include "common.h"
static void *child_function(void *arg)
{
void *ret = (void *)-1;
unsigned int vl = sve_get_vl();
unsigned int vq = sve_vq_from_vl(vl);
unsigned int *dfl_vl = (unsigned int *)arg;
void *rd_buf = calloc(1, (vl * 35) + 15);
void *cmp_buf = NULL, *align_cmp_buf = NULL;
void *align_rd_buf = (void *)(((unsigned long)(rd_buf + 15)) & ~15UL);
unsigned int fpscr[2] = { 0, 0 };
if (!rd_buf) {
printf("calloc() failed.\n");
goto out;
}
if (get_and_compare_vl(gen_set_vl(*dfl_vl))) {
printf("prctl: error.\n");
goto rd_free_out;
}
read_sve(align_rd_buf, vq, fpscr);
cmp_buf = calloc(1, (vl * 35) + 15);
if (!cmp_buf) {
printf("calloc() failed.\n");
goto rd_free_out;
}
align_cmp_buf = (void *)(((unsigned long)(rd_buf + 15)) & ~15UL);
gen_test_sve_low_128(align_cmp_buf, vq, vq);
if (sve_compare(align_cmp_buf, align_rd_buf, vq)) {
printf("child-thread register compare failed.\n");
goto cmp_free_out;
}
/* success */
ret = NULL;
cmp_free_out:
free(cmp_buf);
rd_free_out:
free(rd_buf);
out:
pthread_exit(ret);
return NULL;
}
TEST_FUNC(TEST_NUMBER, vl, vq, unused1, unused2)
{
void *pret;
struct fpsimd_sve_state(vq) rd_buf;
struct fpsimd_sve_state(vq) wr_buf;
unsigned int fpscr[2] = { 0, 0 };
pthread_t thread;
int ret = -1;
print_test_overview(tp_num);
memset(&rd_buf, 0, sizeof(rd_buf));
memset(&wr_buf, 0, sizeof(wr_buf));
gen_test_sve(&wr_buf, vq);
write_sve(&wr_buf, vq, fpscr);
read_sve(&rd_buf, vq, fpscr);
if (sve_compare(&wr_buf, &rd_buf, vq)) {
printf("parent-thread compare failed.\n");
goto out;
}
if (set_and_compare_vl(gen_set_vl(vl))) {
printf("prctl: error.\n");
goto out;
}
if (pthread_create(&thread, NULL, child_function, &vl)) {
printf("pthread_create: error.\n");
goto out;
}
if (pthread_join(thread, &pret)) {
printf("pthread_join: error.\n");
goto out;
}
if (pret != NULL) {
printf("child thread error.\n");
goto out;
}
ret = 0;
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return 0;
}

56
test/sve/src/029.c Normal file
View File

@ -0,0 +1,56 @@
/* 029.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* Use execve() VL check if not setting INHERIT flags.
* (execve target is #1 testcase)
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "common.h"
extern char **environ;
TEST_FUNC(TEST_NUMBER, vl, vq, unused1, tp_argv)
{
char *self = (char *)tp_argv[0];
struct fpsimd_sve_state(vq) rd_buf;
struct fpsimd_sve_state(vq) wr_buf;
unsigned int fpscr[2] = { 0, 0 };
char *const execve_args[] = {
"", "1", NULL
};
int ret = -1;
print_test_overview(tp_num);
memset(&rd_buf, 0, sizeof(rd_buf));
memset(&wr_buf, 0, sizeof(wr_buf));
gen_test_sve(&wr_buf, vq);
write_sve(&wr_buf, vq, fpscr);
read_sve(&rd_buf, vq, fpscr);
if (sve_compare(&wr_buf, &rd_buf, vq)) {
printf("Dirty SVE-register before executing execve(), NG.\n");
goto out;
}
printf("Dirty SVE-register before executing execve(), OK.\n");
if (set_and_compare_vl(gen_set_vl(vl))) {
printf("prctl: error.\n");
goto out;
}
printf("=== look at the contents of the "
"register since run execve. ===\n");
ret = execve(self, execve_args, environ);
if (ret == -1) {
perror("execve()");
} else {
ret = -1;
printf("Why return execve() ???\n");
}
out:
printf("RESULT: NG.\n");
return ret;
}

184
test/sve/src/030.c Normal file
View File

@ -0,0 +1,184 @@
/* 030.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* When SVE is enable, ptrace(SETREGSET + NT_ARM_SVE +
* SVE_PT_REGS_FPSIMD), regs fpsimd struct check.
*/
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <errno.h>
#include <string.h>
#include <sys/ptrace.h>
#include <sys/uio.h>
#include <sys/types.h>
#include <unistd.h>
#include "common.h"
static unsigned long inst_addr;
static int child_func(unsigned int vq)
{
int ret = -1;
struct fpsimd_sve_state(vq) cmp_buf;
struct fpsimd_sve_state(vq) rd_buf;
unsigned int fpscr[2] = { 0, 0 };
memset(&cmp_buf, 0, sizeof(cmp_buf));
memset(&rd_buf, 0, sizeof(rd_buf));
/* send PTRACE_TRACEME */
if (ptrace(PTRACE_TRACEME, 0, NULL, NULL)) {
perror("ptrace(PTRACE_TRACEME)");
goto out;
}
/* gen and read register */
gen_test_sve_low_128(&cmp_buf, vq, vq);
read_sve(&rd_buf, vq, fpscr);
/* stop mine, brk instruction */
asm volatile(
"adr x10, 1f\n"
"str x10, [%0]\n"
"nop\n"
"nop\n"
"1:\n"
"brk #0\n"
"nop\n"
: /* nothing */
: "r"(&inst_addr)
: "x10"
);
/* read register */
read_sve(&rd_buf, vq, fpscr);
/* compare */
if (sve_compare(&cmp_buf, &rd_buf, vq)) {
printf("child-process compare failed\n");
goto out;
}
/* success */
ret = 0;
out:
return ret;
}
static int parent_func(pid_t cpid, unsigned int vq)
{
int ret = -1;
struct user_sve_header *wr_buf = NULL;
struct iovec iov;
size_t buf_size = sizeof(struct user_sve_header) +
sizeof(struct user_fpsimd_state);
wr_buf = calloc(1, buf_size);
if (!wr_buf) {
printf("calloc() failed.\n");
goto out;
}
memset(&iov, 0, sizeof(iov));
/* wait child stop */
if (wait_child_stop(cpid)) {
goto out;
}
/* PTRACE_GETREGSET */
iov.iov_len = sizeof(struct user_sve_header);
iov.iov_base = wr_buf;
if (ptrace(PTRACE_GETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_GETREGSET)");
goto cont;
}
/* header compare */
if (header_compare(wr_buf)) {
printf("ptrace(PTRACE_GETREGSET) header compare failed.\n");
goto cont;
}
/* set flags FPSIMD set */
wr_buf->flags &= ~SVE_PT_REGS_SVE;
wr_buf->flags |= SVE_PT_REGS_FPSIMD;
/* gen register */
gen_test_fpsimd((struct user_fpsimd_state *)(wr_buf + 1), vq);
/* PTRACE_SETREGSET */
iov.iov_len = buf_size;
iov.iov_base = wr_buf;
if (ptrace(PTRACE_SETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_SETREGSET)");
goto cont;
}
/* success */
ret = 0;
cont:
/* rewrite child brk instruction */
if (rewrite_brk_inst(cpid, &inst_addr)) {
/* Through */
}
/* child continue */
if (ptrace(PTRACE_CONT, cpid, NULL, NULL)) {
perror("ptrace(PTRACE_CONT)");
ret = -1;
}
out:
if (wr_buf) {
free(wr_buf);
}
return ret;
}
TEST_FUNC(TEST_NUMBER, unused1, vq, unused2, unused3)
{
pid_t cpid = 0;
int func_ret = 0;
int ret = -1;
print_test_overview(tp_num);
/* create child process */
cpid = fork();
switch (cpid) {
case -1:
/* fork() error. */
perror("fork()");
goto out;
case 0:
/* child process */
func_ret = child_func(vq);
/* child exit */
exit(func_ret);
break;
default:
/* parent process */
func_ret = parent_func(cpid, vq);
/* wait child */
if (wait_child_exit(cpid)) {
goto out;
}
/* parent_func check */
if (func_ret) {
goto out;
}
break;
}
/* sccess. */
ret = 0;
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

175
test/sve/src/031.c Normal file
View File

@ -0,0 +1,175 @@
/* 031.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* When SVE is enable, ptrace(SETREGSET + NT_ARM_SVE +
* SVE_PT_REGS_FPSIMD), regs sve struct check.
*/
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <errno.h>
#include <string.h>
#include <sys/ptrace.h>
#include <sys/uio.h>
#include <sys/types.h>
#include <unistd.h>
#include "common.h"
static unsigned long inst_addr;
static int child_func(unsigned int vq)
{
int ret = -1;
struct fpsimd_sve_state(vq) cmp_buf;
struct fpsimd_sve_state(vq) rd_buf;
unsigned int fpscr[2] = { 0, 0 };
memset(&cmp_buf, 0, sizeof(cmp_buf));
memset(&rd_buf, 0, sizeof(rd_buf));
/* send PTRACE_TRACEME */
if (ptrace(PTRACE_TRACEME, 0, NULL, NULL)) {
perror("ptrace(PTRACE_TRACEME)");
goto out;
}
/* gen and read register */
gen_test_sve_low_128(&cmp_buf, VQ_128_BIT, vq);
read_sve(&rd_buf, vq, fpscr);
/* stop mine, brk instruction */
asm volatile(
"adr x10, 1f\n"
"str x10, [%0]\n"
"nop\n"
"nop\n"
"1:\n"
"brk #0\n"
"nop\n"
: /* nothing */
: "r"(&inst_addr)
: "x10"
);
/* read register */
read_sve(&rd_buf, vq, fpscr);
/* compare */
if (sve_compare(&cmp_buf, &rd_buf, vq)) {
printf("child-process compare failed.\n");
goto out;
}
/* success */
ret = 0;
out:
return ret;
}
static int parent_func(pid_t cpid, unsigned int vq)
{
int ret = -1;
struct user_fpsimd_sve_state(vq) wr_buf;
struct iovec iov;
memset(&wr_buf, 0, sizeof(wr_buf));
memset(&iov, 0, sizeof(iov));
/* wait child stop */
if (wait_child_stop(cpid)) {
goto out;
}
/* PTRACE_GETREGSET */
iov.iov_len = sizeof(wr_buf);
iov.iov_base = &wr_buf;
if (ptrace(PTRACE_GETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_GETREGSET)");
goto cont;
}
/* header compare */
if (header_compare(&wr_buf.header)) {
printf("ptrace(PTRACE_GETREGSET) header compare failed.\n");
goto cont;
}
/* set flags FPSIMD set */
wr_buf.header.flags &= ~SVE_PT_REGS_SVE;
wr_buf.header.flags |= SVE_PT_REGS_FPSIMD;
/* gen register */
gen_test_sve(&wr_buf.regs, vq);
/* PTRACE_SETREGSET */
iov.iov_len = sizeof(wr_buf);
iov.iov_base = &wr_buf;
if (ptrace(PTRACE_SETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_SETREGSET)");
goto cont;
}
/* success */
ret = 0;
cont:
/* rewrite child brk instruction */
if (rewrite_brk_inst(cpid, &inst_addr)) {
/* Through */
}
/* child continue */
if (ptrace(PTRACE_CONT, cpid, NULL, NULL)) {
perror("ptrace(PTRACE_CONT)");
ret = -1;
}
out:
return ret;
}
TEST_FUNC(TEST_NUMBER, unused1, vq, unused2, unused3)
{
pid_t cpid = 0;
int func_ret = 0;
int ret = -1;
print_test_overview(tp_num);
/* create child process */
cpid = fork();
switch (cpid) {
case -1:
/* fork() error. */
perror("fork()");
goto out;
case 0:
/* child process */
func_ret = child_func(vq);
/* child exit */
exit(func_ret);
break;
default:
/* parent process */
func_ret = parent_func(cpid, vq);
/* wait child */
if (wait_child_exit(cpid)) {
goto out;
}
/* parent_func check */
if (func_ret) {
goto out;
}
break;
}
/* sccess. */
ret = 0;
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

81
test/sve/src/032.c Normal file
View File

@ -0,0 +1,81 @@
/* 032.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* Use fork() VL check if setting ONEXEC flags. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
#include "common.h"
TEST_FUNC(TEST_NUMBER, vl, vq, unused1, unused2)
{
struct fpsimd_sve_state(vq) rd_buf;
struct fpsimd_sve_state(vq) wr_buf;
unsigned int fpscr[2] = { 0, 0 };
pid_t cpid;
int ret = -1;
print_test_overview(tp_num);
memset(&rd_buf, 0, sizeof(rd_buf));
memset(&wr_buf, 0, sizeof(wr_buf));
gen_test_sve(&wr_buf, vq);
write_sve(&wr_buf, vq, fpscr);
read_sve(&rd_buf, vq, fpscr);
if (sve_compare(&wr_buf, &rd_buf, vq)) {
printf("parent-process compare failed.\n");
goto out;
}
if (set_and_compare_vl(gen_set_vl(vl) | PR_SVE_SET_VL_ONEXEC)) {
printf("prctl: error.\n");
goto out;
}
cpid = fork();
switch (cpid) {
case -1:
/* error */
printf("ERROR: fork()=%d, errno=%d\n", cpid, errno);
goto out;
case 0: {
/* child process */
struct fpsimd_sve_state(vq) c_rd_buf;
struct fpsimd_sve_state(vq) c_cmp_buf;
memset(&c_rd_buf, 0, sizeof(c_rd_buf));
if (get_and_compare_vl(vl)) {
printf("prctl: error.\n");
exit(-1);
}
read_sve(&c_rd_buf, vq, fpscr);
memset(&c_cmp_buf, 0, sizeof(c_cmp_buf));
gen_test_sve_low_128(&c_cmp_buf, vq, vq);
if (sve_compare(&c_cmp_buf, &c_rd_buf, vq)) {
printf("child-process compare failed.\n");
exit(-1);
}
exit(0);
break;
}
default:
/* parent process */
if (wait_child_exit(cpid)) {
goto out;
}
break;
}
ret = 0;
out:
if (ret == -1) {
printf("RESULT: NG.\n");
} else {
printf("RESULT: OK.\n");
}
return ret;
}

107
test/sve/src/033.c Normal file
View File

@ -0,0 +1,107 @@
/* 033.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* Use pthread_create() VL check if setting ONEXEC flags. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include "common.h"
static void *child_function(void *arg)
{
void *ret = (void *)-1;
unsigned int vl = sve_get_vl();
unsigned int vq = sve_vq_from_vl(vl);
unsigned int *exp_vl = (unsigned int *)arg;
void *rd_buf = calloc(1, (vl * 35) + 15);
void *cmp_buf = NULL, *align_cmp_buf = NULL;
void *align_rd_buf = (void *)(((unsigned long)(rd_buf + 15)) & ~15UL);
unsigned int fpscr[2] = { 0, 0 };
if (!rd_buf) {
printf("calloc() failed.\n");
goto out;
}
if (get_and_compare_vl(*exp_vl)) {
printf("prctl: error.\n");
goto rd_free_out;
}
read_sve(align_rd_buf, vq, fpscr);
cmp_buf = calloc(1, (vl * 35) + 15);
if (!cmp_buf) {
printf("calloc() failed.\n");
goto rd_free_out;
}
align_cmp_buf = (void *)(((unsigned long)(rd_buf + 15)) & ~15UL);
gen_test_sve_low_128(align_cmp_buf, vq, vq);
if (sve_compare(align_cmp_buf, align_rd_buf, vq)) {
printf("child-thread register compare failed.\n");
goto cmp_free_out;
}
/* success */
ret = NULL;
cmp_free_out:
free(cmp_buf);
rd_free_out:
free(rd_buf);
out:
pthread_exit(ret);
return NULL;
}
TEST_FUNC(TEST_NUMBER, vl, vq, unused1, unused2)
{
void *pret = (void *)-1;
struct fpsimd_sve_state(vq) rd_buf;
struct fpsimd_sve_state(vq) wr_buf;
unsigned int fpscr[2] = { 0, 0 };
pthread_t thread;
int ret = -1;
print_test_overview(tp_num);
memset(&rd_buf, 0, sizeof(rd_buf));
memset(&wr_buf, 0, sizeof(wr_buf));
gen_test_sve(&wr_buf, vq);
write_sve(&wr_buf, vq, fpscr);
read_sve(&rd_buf, vq, fpscr);
if (sve_compare(&wr_buf, &rd_buf, vq)) {
printf("parent-thread compare failed.\n");
goto out;
}
if (set_and_compare_vl(gen_set_vl(vl) | PR_SVE_SET_VL_ONEXEC)) {
printf("prctl: error.\n");
goto out;
}
memset(&thread, 0, sizeof(thread));
if (pthread_create(&thread, NULL, child_function, &vl)) {
printf("pthread_create: error.\n");
goto out;
}
if (pthread_join(thread, &pret)) {
printf("pthread_join: error.\n");
goto out;
}
if (pret != NULL) {
printf("child thread error.\n");
goto out;
}
ret = 0;
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

71
test/sve/src/034.c Normal file
View File

@ -0,0 +1,71 @@
/* 034.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* Use execve() VL check if setting ONEXEC flags. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "common.h"
extern char **environ;
TEST_FUNC(TEST_NUMBER, vl, unused2, tp_argc, tp_argv)
{
char *self = (char *)tp_argv[0];
char arg0[FILENAME_MAX] = "";
char arg1[8] = "";
char arg2[8] = "";
char arg3[8] = "";
char *execve_args[5];
int rest = 0, ret = -1;
unsigned int exp_vl = 0;
unsigned int dfl_vl = 0;
if (tp_argc == 2) {
/* First time */
print_test_overview(tp_num);
if (set_and_compare_vl(gen_set_vl(vl) | PR_SVE_SET_VL_ONEXEC)) {
printf("prctl: error.\n");
goto out;
}
rest = 2;
dfl_vl = vl;
} else {
/* After the execve() */
rest = atoi(tp_argv[2]);
dfl_vl = atoi(tp_argv[3]);
rest--;
exp_vl = (rest == 1 ? gen_set_vl(dfl_vl) : dfl_vl);
if (get_and_compare_vl(exp_vl)) {
printf("prctl: error.\n");
goto out;
}
}
if (rest != 0) {
memcpy(arg0, self, strlen(self) + 1);
memcpy(arg1, tp_argv[1], strlen(tp_argv[1]) + 1);
sprintf(arg2, "%d", rest);
sprintf(arg3, "%d", dfl_vl);
execve_args[0] = arg0;
execve_args[1] = arg1;
execve_args[2] = arg2;
execve_args[3] = arg3;
execve_args[4] = NULL;
ret = execve(self, execve_args, environ);
if (ret == -1) {
perror("execve()");
goto out;
}
}
ret = 0;
out:
if (ret != 0) {
printf("RESULT: NG.\n");
} else {
printf("RESULT: OK.\n");
}
return ret;
}

185
test/sve/src/035.c Normal file
View File

@ -0,0 +1,185 @@
/* 035.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* Confirmation when SETREGSET + FPSIMD is set while using SVE. */
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <errno.h>
#include <string.h>
#include <sys/ptrace.h>
#include <sys/uio.h>
#include <sys/types.h>
#include <unistd.h>
#include "common.h"
static unsigned long inst_addr;
static int child_func(unsigned int vq)
{
int ret = -1;
struct fpsimd_sve_state(vq) cmp_buf;
struct fpsimd_sve_state(vq) rd_buf;
struct fpsimd_sve_state(vq) wr_buf;
unsigned int fpscr[2] = { 0, 0 };
memset(&cmp_buf, 0, sizeof(cmp_buf));
memset(&rd_buf, 0, sizeof(rd_buf));
memset(&wr_buf, 0, sizeof(wr_buf));
/* send PTRACE_TRACEME */
if (ptrace(PTRACE_TRACEME, 0, NULL, NULL)) {
perror("ptrace(PTRACE_TRACEME)");
goto out;
}
/* gen and read/write register */
gen_test_sve(&cmp_buf, vq);
gen_test_sve_low_128(&cmp_buf, VQ_128_BIT, vq);
write_sve(&wr_buf, vq, fpscr);
/* stop mine, brk instruction */
asm volatile(
"adr x10, 1f\n"
"str x10, [%0]\n"
"nop\n"
"nop\n"
"1:\n"
"brk #0\n"
"nop\n"
: /* nothing */
: "r"(&inst_addr)
: "x10"
);
/* read register */
read_sve(&rd_buf, vq, fpscr);
/* compare */
if (sve_compare(&cmp_buf, &rd_buf, vq)) {
printf("child-process compare failed.\n");
goto out;
}
/* success */
ret = 0;
out:
return ret;
}
static int parent_func(pid_t cpid)
{
int ret = -1;
struct user_sve_header *wr_buf = NULL;
struct iovec iov;
size_t buf_size = sizeof(struct user_sve_header) +
sizeof(struct user_fpsimd_state);
wr_buf = calloc(1, buf_size);
if (!wr_buf) {
printf("calloc() failed.\n");
goto out;
}
memset(&iov, 0, sizeof(iov));
/* wait child stop */
if (wait_child_stop(cpid)) {
goto out;
}
/* PTRACE_GETREGSET */
iov.iov_len = sizeof(struct user_sve_header);
iov.iov_base = wr_buf;
if (ptrace(PTRACE_GETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_GETREGSET)");
goto cont;
}
/* header compare */
if (header_compare(wr_buf)) {
printf("ptrace(PTRACE_GETREGSET) header compare failed.\n");
goto cont;
}
/* set flags FPSIMD set */
wr_buf->flags &= ~SVE_PT_REGS_SVE;
wr_buf->flags |= SVE_PT_REGS_FPSIMD;
/* gen register */
gen_test_fpsimd((struct user_fpsimd_state *)(wr_buf + 1), VQ_128_BIT);
/* PTRACE_SETREGSET */
iov.iov_len = buf_size;
iov.iov_base = wr_buf;
if (ptrace(PTRACE_SETREGSET, cpid, NT_ARM_SVE, &iov)) {
perror("ptrace(PTRACE_SETREGSET)");
goto cont;
}
/* success */
ret = 0;
cont:
/* rewrite child brk instruction */
if (rewrite_brk_inst(cpid, &inst_addr)) {
/* Through */
}
/* child continue */
if (ptrace(PTRACE_CONT, cpid, NULL, NULL)) {
perror("ptrace(PTRACE_CONT)");
ret = -1;
}
out:
if (wr_buf) {
free(wr_buf);
}
return ret;
}
TEST_FUNC(TEST_NUMBER, unused1, vq, unused2, unused3)
{
pid_t cpid = 0;
int func_ret = 0;
int ret = -1;
print_test_overview(tp_num);
/* create child process */
cpid = fork();
switch (cpid) {
case -1:
/* fork() error. */
perror("fork()");
goto out;
case 0:
/* child process */
func_ret = child_func(vq);
/* child exit */
exit(func_ret);
break;
default:
/* parent process */
func_ret = parent_func(cpid);
/* wait child */
if (wait_child_exit(cpid)) {
goto out;
}
/* parent_func check */
if (func_ret) {
goto out;
}
break;
}
/* sccess. */
ret = 0;
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return 0;
}

101
test/sve/src/036.c Normal file
View File

@ -0,0 +1,101 @@
/* 036.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* It becomes SIGSEGV when changing and using SVE-VL
* during signalhandler execution.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <errno.h>
#include <sys/prctl.h>
#include "common.h"
static int segv_flag;
static unsigned int set_vl;
static int sig_handler_ret;
static void sig_handler(int sig)
{
int ret = -1;
unsigned int fpscr[2] = { 0, 0 };
unsigned int hndlr_vl = gen_set_vl(set_vl);
void *wr_buf = calloc(1, (hndlr_vl * 35) + 15);
void *align_wr_buf = (void *)(((unsigned long)(wr_buf + 15)) & ~15UL);
if (!wr_buf) {
printf("[in sighandler] calloc failed.\n");
return;
}
/* set dirty */
if (set_and_compare_vl(hndlr_vl)) {
printf("[in sighandler] prctl: error.\n");
goto out;
}
gen_test_sve_dirty(align_wr_buf, sve_vq_from_vl(hndlr_vl));
write_sve(align_wr_buf, sve_vq_from_vl(hndlr_vl), fpscr);
ret = 0;
out:
free(wr_buf);
sig_handler_ret = ret;
}
static void segv_handler(int sig)
{
segv_flag = 1;
}
TEST_FUNC(TEST_NUMBER, vl, vq, unused1, unused2)
{
int ret = -1;
const int use_vq = sve_vq_from_vl(gen_set_vl(vl));
struct fpsimd_sve_state(use_vq) wr_buf;
unsigned int fpscr[2] = { 0, 0 };
print_test_overview(tp_num);
memset(&wr_buf, 0, sizeof(wr_buf));
if (signal(SIGUSR1, sig_handler) == SIG_ERR) {
printf("Set signal handler(SIGUSR1) failed.\n");
goto out;
}
if (signal(SIGSEGV, segv_handler) == SIG_ERR) {
printf("Set signal handler(SIGSEGV) failed.\n");
goto out;
}
set_vl = gen_set_vl(vl);
if (set_and_compare_vl(set_vl | PR_SVE_VL_INHERIT)) {
printf("prctl: error.\n");
goto out;
}
/* before sighandler */
gen_test_sve(&wr_buf, sve_vq_from_vl(set_vl));
write_sve(&wr_buf, sve_vq_from_vl(set_vl), fpscr);
if (raise(SIGUSR1)) {
perror("raise(SIGUSR1)");
goto out;
}
if (segv_flag != 1) {
printf("SIGSEGV not handling.\n");
goto out;
}
if (sig_handler_ret == 0) {
/* success. */
ret = 0;
}
out:
if (ret == 0) {
printf("RESULT: OK.\n");
} else {
printf("RESULT: NG.\n");
}
return ret;
}

86
test/sve/src/037.c Normal file
View File

@ -0,0 +1,86 @@
/* 037.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* Confirmation of execve() operation when VL is set
* in INHERIT->ONEXEC order.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "common.h"
extern char **environ;
TEST_FUNC(TEST_NUMBER, vl, unused2, tp_argc, tp_argv)
{
char *self = (char *)tp_argv[0];
char arg0[FILENAME_MAX] = "";
char arg1[8] = "";
char arg2[8] = "";
char arg3[8] = "";
char *execve_args[5];
int rest = 0, ret = -1;
unsigned int exp_vl = 0;
unsigned int dfl_vl = 0;
/* First time */
if (tp_argc == 2) {
unsigned int set_vl_1 = 0;
unsigned int set_vl_2 = 0;
print_test_overview(tp_num);
/* INHERIT setting */
set_vl_1 = gen_set_vl(vl);
if (set_and_compare_vl(set_vl_1 | PR_SVE_VL_INHERIT)) {
printf("prctl: error.\n");
goto out;
}
/* ONEXEC setting */
set_vl_2 = gen_set_vl(set_vl_1);
if (set_and_compare_vl(set_vl_2 | PR_SVE_SET_VL_ONEXEC)) {
printf("prctl: error.\n");
goto out;
}
rest = 2;
dfl_vl = vl;
/* After the execve() */
} else {
rest = atoi(tp_argv[2]);
dfl_vl = atoi(tp_argv[3]);
rest--;
exp_vl = (rest == 1 ? gen_set_vl(gen_set_vl(dfl_vl)) : dfl_vl);
if (get_and_compare_vl(exp_vl)) {
printf("prctl: error.\n");
goto out;
}
}
if (rest != 0) {
memcpy(arg0, self, strlen(self) + 1);
memcpy(arg1, tp_argv[1], strlen(tp_argv[1]) + 1);
sprintf(arg2, "%d", rest);
sprintf(arg3, "%d", dfl_vl);
execve_args[0] = arg0;
execve_args[1] = arg1;
execve_args[2] = arg2;
execve_args[3] = arg3;
execve_args[4] = NULL;
ret = execve(self, execve_args, environ);
if (ret == -1) {
perror("execve()");
goto out;
}
}
ret = 0;
out:
if (ret != 0) {
printf("RESULT: NG.\n");
} else {
printf("RESULT: OK.\n");
}
return ret;
}

86
test/sve/src/038.c Normal file
View File

@ -0,0 +1,86 @@
/* 038.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* Confirmation of execve() operation when VL is set
* in ONEXEC->INHERIT order.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "common.h"
extern char **environ;
TEST_FUNC(TEST_NUMBER, vl, unused2, tp_argc, tp_argv)
{
char *self = (char *)tp_argv[0];
char arg0[FILENAME_MAX] = "";
char arg1[8] = "";
char arg2[8] = "";
char arg3[8] = "";
char *execve_args[5];
int rest = 0, ret = -1;
unsigned int exp_vl = 0;
unsigned int dfl_vl = 0;
/* First time */
if (tp_argc == 2) {
unsigned int set_vl_1 = 0;
unsigned int set_vl_2 = 0;
print_test_overview(tp_num);
/* ONEXEC setting */
set_vl_1 = gen_set_vl(vl);
if (set_and_compare_vl(set_vl_1 | PR_SVE_SET_VL_ONEXEC)) {
printf("prctl: error.\n");
goto out;
}
/* INHERIT setting */
set_vl_2 = gen_set_vl(set_vl_1);
if (set_and_compare_vl(set_vl_2 | PR_SVE_VL_INHERIT)) {
printf("prctl: error.\n");
goto out;
}
rest = 2;
dfl_vl = vl;
/* After the execve() */
} else {
rest = atoi(tp_argv[2]);
dfl_vl = atoi(tp_argv[3]);
rest--;
exp_vl = gen_set_vl(gen_set_vl(dfl_vl));
if (get_and_compare_vl(exp_vl | PR_SVE_VL_INHERIT)) {
printf("prctl: error.\n");
goto out;
}
}
if (rest != 0) {
memcpy(arg0, self, strlen(self) + 1);
memcpy(arg1, tp_argv[1], strlen(tp_argv[1]) + 1);
sprintf(arg2, "%d", rest);
sprintf(arg3, "%d", dfl_vl);
execve_args[0] = arg0;
execve_args[1] = arg1;
execve_args[2] = arg2;
execve_args[3] = arg3;
execve_args[4] = NULL;
ret = execve(self, execve_args, environ);
if (ret == -1) {
perror("execve()");
goto out;
}
}
ret = 0;
out:
if (ret != 0) {
printf("RESULT: NG.\n");
} else {
printf("RESULT: OK.\n");
}
return ret;
}

79
test/sve/src/039.c Normal file
View File

@ -0,0 +1,79 @@
/* 039.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
/* Confirmation of execve() operation when ONEXEC
* and INHERIT are set at the same time.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "common.h"
extern char **environ;
TEST_FUNC(TEST_NUMBER, vl, unused2, tp_argc, tp_argv)
{
char *self = (char *)tp_argv[0];
char arg0[FILENAME_MAX] = "";
char arg1[8] = "";
char arg2[8] = "";
char arg3[8] = "";
char *execve_args[5];
int rest = 0, ret = -1;
unsigned int exp_vl = 0;
unsigned int dfl_vl = 0;
/* First time */
if (tp_argc == 2) {
unsigned int set_vl = 0;
print_test_overview(tp_num);
/* ONEXEC and INHERIT setting */
set_vl = gen_set_vl(vl);
if (set_and_compare_vl(set_vl |
PR_SVE_SET_VL_ONEXEC | PR_SVE_VL_INHERIT)) {
printf("prctl: error.\n");
goto out;
}
rest = 2;
dfl_vl = vl;
/* After the execve() */
} else {
rest = atoi(tp_argv[2]);
dfl_vl = atoi(tp_argv[3]);
rest--;
exp_vl = gen_set_vl(dfl_vl);
if (get_and_compare_vl(exp_vl | PR_SVE_VL_INHERIT)) {
printf("prctl: error.\n");
goto out;
}
}
if (rest != 0) {
memcpy(arg0, self, strlen(self) + 1);
memcpy(arg1, tp_argv[1], strlen(tp_argv[1]) + 1);
sprintf(arg2, "%d", rest);
sprintf(arg3, "%d", dfl_vl);
execve_args[0] = arg0;
execve_args[1] = arg1;
execve_args[2] = arg2;
execve_args[3] = arg3;
execve_args[4] = NULL;
ret = execve(self, execve_args, environ);
if (ret == -1) {
perror("execve()");
goto out;
}
}
ret = 0;
out:
if (ret != 0) {
printf("RESULT: NG.\n");
} else {
printf("RESULT: OK.\n");
}
return ret;
}

25
test/sve/src/040.c Normal file
View File

@ -0,0 +1,25 @@
/* 040.c COPYRIGHT FUJITSU LIMITED 2019 */
/* coredump SVE register output check. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "common.h"
TEST_FUNC(TEST_NUMBER, unused1, vq, unused2, unused3)
{
struct fpsimd_sve_state(vq) wr_buf;
unsigned int fpscr[2] = { 0, 0 };
unsigned int *null_p = NULL;
print_test_overview(tp_num);
memset(&wr_buf, 0, sizeof(wr_buf));
gen_test_sve(&wr_buf, vq);
write_sve(&wr_buf, vq, fpscr);
/* gen Segmentation fault. */
*null_p = 1;
return 0;
}

83
test/sve/src/common.c Normal file
View File

@ -0,0 +1,83 @@
/* common.c COPYRIGHT FUJITSU LIMITED 2017-2019 */
#include <sys/types.h>
#include <sys/wait.h>
#include <stdio.h>
#include <sys/ptrace.h>
#include <errno.h>
#include "common.h"
int wait_child_stop(pid_t cpid)
{
int status = 0;
int ret = -1;
pid_t pid = 0;
/* wait child stop */
pid = wait(&status);
if (pid == cpid) {
if (!WIFSTOPPED(status)) {
printf("child is not stopped.\n");
goto out;
}
} else {
perror("wait()");
goto out;
}
ret = 0;
out:
return ret;
}
int wait_child_exit(pid_t cpid)
{
int status = 0;
int ret = -1;
pid_t pid = 0;
pid = wait(&status);
if (pid == cpid) {
if (WIFEXITED(status)) {
if (WEXITSTATUS(status)) {
goto out;
}
} else {
printf("child-process unfinished.\n");
goto out;
}
} else if (pid == -1) {
perror("wait()");
goto out;
} else {
printf("wait() return invalid pid.\n");
goto out;
}
ret = 0;
out:
return ret;
}
int rewrite_brk_inst(pid_t cpid, void *inst_addr)
{
unsigned long addr = 0;
const unsigned long inst = ((NOP_INST << 32UL) | NOP_INST);
/* read child brk address */
addr = ptrace(PTRACE_PEEKDATA, cpid, inst_addr, NULL);
if ((addr == -1) && errno) {
perror("ptrace(PTRACE_PEEKDATA)");
return -1;
}
/* write nop instruction */
if (ptrace(PTRACE_POKETEXT, cpid, addr, inst)) {
perror("ptrace(PTRACE_POKETEXT)");
return -1;
}
return 0;
}
void print_test_overview(int tp_num)
{
printf("# %2d : %s\n", tp_num, usage_messages[tp_num]);
}

40
test/sve/src/common.h Normal file
View File

@ -0,0 +1,40 @@
/* common.h COPYRIGHT FUJITSU LIMITED 2017-2019 */
#ifndef __COMMON_H__
#define __COMMON_H__
#include "sve.h"
/* for migrate CPU */
#define SMP_MAX_CPUS 512
/* test */
#define TEST_NAME(num) test_##num
#define TEST_ARG(arg) arg
#define TEST_UI_ARG(arg) unsigned int TEST_ARG(arg)
#define TEST_I_ARG(arg) int TEST_ARG(arg)
#define TEST_CHAR_PP_ARG(arg) char **TEST_ARG(arg)
#define TEST_FUNC(num, arg1, arg2, arg3, arg4) \
int TEST_NAME(num)(int tp_num, TEST_UI_ARG(arg1), \
TEST_UI_ARG(arg2), \
TEST_I_ARG(arg3), \
TEST_CHAR_PP_ARG(arg4))
extern char *usage_messages[];
#define cpu_pause() \
({ \
__asm__ __volatile__("yield" ::: "memory"); \
})
/* instruction code */
#define NOP_INST 0xd503201fUL
#define BRK_INST 0xd4200000UL
extern int wait_child_stop(pid_t cpid);
extern int wait_child_exit(pid_t cpid);
extern int rewrite_brk_inst(pid_t cpid, void *inst_addr);
extern void print_test_overview(int tp_num);
#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
#endif /* !__COMMON_H__ */

139
test/sve/src/main.c Normal file
View File

@ -0,0 +1,139 @@
/* main.c COPYRIGHT FUJITSU LIMITED 2016-2019 */
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/prctl.h>
#include "common.h"
/* usage messages */
char *usage_messages[] = {
/* TP# 0 */ "", /* TP#0 is none */
/* TP# 1 */ "Process starts immediately after registers check.",
/* TP# 2 */ "Use fork() takeover registers check.",
/* TP# 3 */ "Use pthread_create() takeover registers check.",
/* TP# 4 */ "Use execve() takeover registers check. "
"(execve target is #1 testcase)",
/* TP# 5 */ "Preservation register check signalhsndler before and after.",
/* TP# 6 */ "Preservation register check migrate cpus before and after.",
/* TP# 7 */ "ptrace(GETREGSET + NT_ARM_SVE) check.",
/* TP# 8 */ "ptrace(SETREGSET + NT_ARM_SVE) check.",
/* TP# 9 */ "ptrace(GETREGSET + NT_ARM_SVE) parameters pattern check.",
/* TP#10 */ "ptrace(SETREGSET + NT_ARM_SVE) parameters pattern check.",
/* TP#11 */ "Preservation check signalhsndler(use sigaltstack) "
"before and after.",
/* TP#12 */ "When SVE is enable, ptrace(GETREGSET + NT_PRFPREG) check.",
/* TP#13 */ "When SVE is enable, ptrace(SETREGSET + NT_PRFPREG) check.",
/* TP#14 */ "ptrace(SETREGSET + NT_ARM_SVE) check, use brk instruction.",
/* TP#15 */ "Context switch in the same core check and SIGSTOP -> SIGCONT "
"restart check.(need run on background '&')",
/* TP#16 */ "prctl(PR_SVE_GET_VL) check.",
/* TP#17 */ "prctl(PR_SVE_SET_VL) check.",
/* TP#18 */ "prctl(PR_SVE_SET_VL, PR_SVE_SET_VL_THREAD) on multi thread.",
/* TP#19 */ "prctl(PR_SVE_SET_VL) parameters pattern check.",
/* TP#20 */ "Use fork() VL check if setting INHERIT flags.",
/* TP#21 */ "Use pthread_create() VL check if setting INHERIT flags.",
/* TP#22 */ "Use execve() VL check if setting INHERIT flags. "
"(execve target is #1 testcase)",
/* TP#23 */ "Preservation VL check signalhsndler before and after.",
/* TP#24 */ "Preservation VL check migrate cpus before and after.",
/* TP#25 */ "ptrace(GETREGSET + NT_ARM_SVE) VL check.",
/* TP#26 */ "ptrace(SETREGSET + NT_ARM_SVE) VL check.",
/* TP#27 */ "Use fork() VL check if not setting INHERIT flags.",
/* TP#28 */ "Use pthread_create() VL check if not setting INHERIT flags.",
/* TP#29 */ "Use execve() VL check if not setting INHERIT flags. "
"(execve target is #1 testcase)",
/* TP#30 */ "When SVE is enable, ptrace(SETREGSET + NT_ARM_SVE + "
"SVE_PT_REGS_FPSIMD), regs fpsimd struct check.",
/* TP#31 */ "When SVE is enable, ptrace(SETREGSET + NT_ARM_SVE + "
"SVE_PT_REGS_FPSIMD), regs sve struct check.",
/* TP#32 */ "Use fork() VL check if setting ONEXEC flags.",
/* TP#33 */ "Use pthread_create() VL check if setting ONEXEC flags.",
/* TP#34 */ "Use execve() VL check if setting ONEXEC flags.",
/* TP#35 */ "Confirmation when SETREGSET + FPSIMD is set while using SVE.",
/* TP#36 */ "It becomes SIGSEGV when changing and using SVE-VL "
"during signalhandler execution.",
/* TP#37 */ "Confirmation of execve() operation when VL is set in "
"INHERIT->ONEXEC order.",
/* TP#38 */ "Confirmation of execve() operation when VL is set in "
"ONEXEC->INHERIT order.",
/* TP#39 */ "Confirmation of execve() operation when ONEXEC and "
"INHERIT are set at the same time.",
/* TP#40 */ "Coredump SVE register output check.",
};
struct test_case {
int (*func)(int arg0, unsigned int arg1,
unsigned int arg2, int arg3, char **arg4);
};
#define TEST_CASE_DEF(number) \
extern int test_##number(int, unsigned int, unsigned int, int, char **);
#include "test_case.list"
#undef TEST_CASE_DEF
#define TEST_CASE_DEF(number) { .func = test_##number },
const struct test_case test_cases[] = {
{ .func = NULL }, /* TP#0 is none */
#include "test_case.list"
};
#undef TEST_CASE_DEF
static void usage(char *string)
{
int i = 0;
int tp_count = ARRAY_SIZE(usage_messages) - 1;
printf("%s N\n", string);
printf(" N : tp number. (1-%d)\n", tp_count);
for (i = 1; i < tp_count + 1; i++) {
printf("%6d : %s\n", i, usage_messages[i]);
}
}
int main(int argc, char *argv[])
{
int tp_num = 0, ret = -1;
unsigned int vl, vl_tmp, vq;
int usage_count = ARRAY_SIZE(usage_messages);
int tp_count = ARRAY_SIZE(test_cases);
if (usage_count != tp_count) {
printf("BUG: Usage strings and TP count are different.\n");
goto out;
}
if ((argc != 2) && (argc != 4)) {
usage(argv[0]);
goto out;
}
tp_num = atoi(argv[1]);
if (tp_num == 0 || tp_count <= tp_num) {
printf("TP number invalid.\n");
usage(argv[0]);
goto out;
}
/* get VL */
vl = sve_get_vl();
vl_tmp = PR_SVE_GET_VL_LEN(prctl(PR_SVE_GET_VL));
if (vl != vl_tmp) {
printf("Running on QEMU (Bug in RDVL instruction)\n");
vl = vl_tmp;
}
/* calc VQ */
vq = sve_vq_from_vl(vl);
printf("Vector Length = %d bytes (128 bit register * %d)\n",
vl * 8, vq);
if (test_cases[tp_num].func) {
ret = test_cases[tp_num].func(tp_num, vl, vq, argc, argv);
} else {
printf("BUG: TP function pointer is NULL.\n");
}
out:
return ret;
}

389
test/sve/src/sve.c Normal file
View File

@ -0,0 +1,389 @@
/* sve.c COPYRIGHT FUJITSU LIMITED 2016-2019 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/prctl.h>
#include <errno.h>
#include "sve.h"
#include "common.h"
static unsigned long sve_magic[] = {
0x1111111111111111, 0x2222222222222222,
0x3333333333333333, 0x4444444444444444,
0x5555555555555555, 0x6666666666666666,
0x7777777777777777, 0x8888888888888888,
0x9999999999999999, 0xaaaaaaaaaaaaaaaa,
0xbbbbbbbbbbbbbbbb, 0xcccccccccccccccc,
0xdddddddddddddddd, 0xeeeeeeeeeeeeeeee,
0xffffffffffffffff, 0x1111111122222222,
0x2222222233333333, 0x3333333344444444,
0x4444444455555555, 0x5555555566666666,
0x6666666677777777, 0x7777777788888888,
0x99999999aaaaaaaa, 0xaaaaaaaabbbbbbbb,
0xbbbbbbbbcccccccc, 0xccccccccdddddddd,
0xddddddddeeeeeeee, 0xeeeeeeeeffffffff,
0xffffffff11111111, 0x1111222233334444,
0x5555666677778888, 0x9999aaaabbbbcccc,
0xddddeeeeffff1111, 0xffffeeeeddddcccc,
0xbbbbaaaa99998888, 0x7777666655554444,
0x333322221111ffff, 0x1122334455667788,
0x99aabbccddeeff11, 0xffeeddccbbaa9988,
0x77665544332211ff, 0x123456789abcdef1,
0xfedcba987654321f, 0xcafecafecafecafe
};
unsigned int gen_set_vl(const unsigned int vl)
{
switch (vl) {
case VL_128_BIT:
return VL_256_BIT;
case VL_256_BIT:
return VL_512_BIT;
case VL_512_BIT:
return VL_128_BIT;
default:
break;
}
return -1;
}
static int compare_vl_flags(const unsigned int exp, const unsigned int target,
const unsigned int onexec_vl)
{
int ret = 0;
const unsigned int exp_vl = PR_SVE_GET_VL_LEN(exp);
unsigned int exp_flags = PR_SVE_GET_VL_FLAGS(exp);
const unsigned int target_vl = PR_SVE_GET_VL_LEN(target);
const unsigned int target_flags = PR_SVE_GET_VL_FLAGS(target);
const unsigned int rd_vl = sve_get_vl();
unsigned int exp_rdvl = 0;
/* PR_SVE_SET_VL_ONEXEC flag is set only. */
exp_flags &= ~PR_SVE_SET_VL_ONEXEC;
if (onexec_vl == 0) {
exp_rdvl = exp_vl;
}
else {
exp_rdvl = onexec_vl;
}
if (exp_vl != target_vl) {
printf("Expected VL(0x%x) != Target VL(0x%x).\n",
exp_vl, target_vl);
ret = -1;
}
if (exp_flags != target_flags) {
printf("Expected FLAGS(0x%x) != Target FLAGS(0x%x).\n",
exp_flags, target_flags);
ret = -1;
}
if (exp_rdvl != rd_vl) {
printf("Expected VL(0x%x) != VL on Register(0x%x).\n",
exp_rdvl, rd_vl);
ret = -1;
}
if (ret == -1) {
printf("Expected VALUE (0x%x), Target VALUE (0x%x).\n",
(exp & ~PR_SVE_SET_VL_ONEXEC), target);
}
return ret;
}
int get_and_compare_vl(const unsigned long exp_arg)
{
int ret = -1;
int vl_flags = 0;
vl_flags = prctl(PR_SVE_GET_VL);
if (vl_flags == -1) {
perror("prctl(PR_SVE_GET_VL)");
ret = errno;
}
else {
printf("Get VL(0x%x), FLAGS(0x%x)\n",
PR_SVE_GET_VL_LEN(vl_flags),
PR_SVE_GET_VL_FLAGS(vl_flags));
ret = compare_vl_flags(exp_arg, vl_flags, 0);
}
return ret;
}
int set_and_compare_vl(const unsigned long set_arg)
{
int ret = 0;
int vl_flags = 0;
const int onexec = ((set_arg & PR_SVE_SET_VL_ONEXEC) ? 1 : 0);
unsigned long exp_vl = PR_SVE_GET_VL_LEN(set_arg);
unsigned long exp_flags = PR_SVE_GET_VL_FLAGS(set_arg);
unsigned int onexec_vl = 0;
printf("Set VL(0x%lx), FLAGS(0x%lx)\n",
PR_SVE_GET_VL_LEN(set_arg),
PR_SVE_GET_VL_FLAGS(set_arg));
if (onexec) {
int exp_arg = 0;
exp_arg = prctl(PR_SVE_GET_VL);
if (exp_arg == -1) {
perror("prctl(PR_SVE_GET_VL)");
ret = errno;
goto out;
}
else {
onexec_vl = PR_SVE_GET_VL_LEN(exp_arg);
}
}
vl_flags = prctl(PR_SVE_SET_VL, set_arg);
if (vl_flags == -1) {
perror("prctl(PR_SVE_SET_VL)");
ret = errno;
}
else {
ret = compare_vl_flags(exp_vl | exp_flags, vl_flags, onexec_vl);
}
out:
return ret;
}
void gen_test_sve(void *buf, unsigned int vq)
{
struct fpsimd_sve_state(vq) * svereg = buf;
unsigned long *pzreg = (unsigned long *)svereg->zregs;
unsigned int sve_magic_num = ARRAY_SIZE(sve_magic);
int i = 0, j = 0;
/* zregs */
for (i = 0; i < 32; i++) {
for (j = 0; j < vq * 2; j++) {
int k = i * vq * 2;
pzreg[k + j] = sve_magic[(k + j) % sve_magic_num];
}
}
/* pregs */
for (i = 0; i < 16; i++) {
for (j = 0; j < vq; j++) {
int k = i * vq;
svereg->pregs[i][j] =
(unsigned short)
(sve_magic[(k + j) % sve_magic_num]);
}
}
/* ffr */
for (i = 0; i < vq; i++) {
svereg->ffr[i] = (unsigned short)(sve_magic[i % sve_magic_num]);
}
}
void gen_test_sve_low_128(void *buf, unsigned int bf_vq, unsigned int af_vq)
{
struct fpsimd_sve_state(bf_vq) tmp_buf;
struct fpsimd_sve_state(af_vq) * svereg = buf;
int i = 0;
memset(&tmp_buf, 0, sizeof(tmp_buf));
gen_test_sve(&tmp_buf, bf_vq);
/* zregs */
for (i = 0; i < 32; i++) {
svereg->zregs[i][0] = tmp_buf.zregs[i][0];
}
}
void gen_test_fpsimd(struct user_fpsimd_state *buf, unsigned int vq)
{
int i = 0;
struct fpsimd_sve_state(vq) svereg;
gen_test_sve(&svereg, vq);
for (i = 0; i < 32; i++) {
buf->vregs[i] = svereg.zregs[i][0];
}
}
void gen_test_sve_dirty(void *buf, unsigned int vq)
{
struct fpsimd_sve_state(vq) * svereg = buf;
memset(svereg, 0xda, sizeof(*svereg));
}
void write_sve(void *buf, unsigned int vq, unsigned int *fpscr)
{
struct fpsimd_sve_state(vq) * svereg = buf;
sve_load_state(svereg->ffr, fpscr);
}
void read_sve(void *buf, unsigned int vq, unsigned int *fpscr)
{
struct fpsimd_sve_state(vq) * svereg = buf;
sve_save_state(svereg->ffr, fpscr);
}
void show_sve(const void *buf, unsigned int vq, unsigned int *fpscr)
{
const struct fpsimd_sve_state(vq) * svereg = buf;
int i = 0, j = 0;
unsigned long *pzreg = (unsigned long *)svereg->zregs;
/* zregs */
for (i = 0; i < 32; i++) {
printf("z%2d: ", i);
for (j = 0; j < vq * 2; j++) {
int k = i * vq * 2;
if ((j != 0) && (j % 4 == 0)) {
printf("\n");
printf(" ");
}
printf("0x%016lx ", pzreg[k + j]);
}
printf("\n");
}
/* pregs */
for (i = 0; i < 16; i++) {
printf("p%2d: ", i);
for (j = 0; j < vq; j++) {
printf("0x%04x ", svereg->pregs[i][j]);
}
printf("\n");
}
/* ffr */
for (i = 0; i < vq; i++) {
printf("ffr%2d: 0x%04x\n", i, svereg->ffr[i]);
}
printf("fpsr: 0x%08x\n", fpscr[0]);
printf("fpcr: 0x%08x\n", fpscr[1]);
}
void read_and_show_sve(void *buf, unsigned int vq, unsigned int *fpscr)
{
read_sve(buf, vq, fpscr);
show_sve(buf, vq, fpscr);
}
int header_compare(const struct user_sve_header *target)
{
int ret = -1;
unsigned int vq, max_vq;
if (!sve_vl_valid(target->vl)) {
printf("VL invalid.\n");
goto out;
}
vq = sve_vq_from_vl(target->vl);
if (!sve_vl_valid(target->max_vl)) {
printf("MAX-VL invalid.\n");
goto out;
}
max_vq = sve_vq_from_vl(target->max_vl);
if (!(target->flags & SVE_PT_REGS_SVE)) {
printf("FLAGS invalid.\n");
goto out;
}
if (target->size != SVE_PT_SIZE(vq, target->flags)) {
printf("SIZE invalid.\n");
goto out;
}
if (target->max_size != SVE_PT_SIZE(max_vq, SVE_PT_REGS_SVE)) {
printf("MAX-SIZE invalid.\n");
goto out;
}
ret = 0;
out:
return ret;
}
int sve_compare(const void *expect, const void *target, unsigned int vq)
{
int i = 0, ret = 0;
const struct fpsimd_sve_state(vq) * exp = expect;
const struct fpsimd_sve_state(vq) * tgt = target;
/* compare low 64 bits of z8-z15 */
for (i = 8; i <= 15; i++) {
unsigned long e = (unsigned long)exp->zregs[i][0];
unsigned long t = (unsigned long)tgt->zregs[i][0];
if (e != t) {
printf("Compare Failed, z%2d exp 0x%016lx "
"val 0x%016lx\n", i, e, t);
ret = -1;
}
}
return ret;
}
int fpsimd_compare(const struct user_fpsimd_state *expect,
const struct user_fpsimd_state *target, size_t n)
{
int i = 0;
if (memcmp(expect, target, n)) {
const unsigned long *exp = (const unsigned long *)expect;
const unsigned long *tgt = (const unsigned long *)target;
printf("Compare Failed !!\n");
printf("[show expect values]\n");
for (i = 0; i < 64; i += 2) {
printf("q%2d: 0x%016lx 0x%016lx\n",
i / 2, exp[i], exp[i + 1]);
}
printf("fpsr: 0x%08x\n", expect->fpsr);
printf("fpcr: 0x%08x\n", expect->fpcr);
printf("[show target values]\n");
for (i = 0; i < 64; i += 2) {
printf("q%2d: 0x%016lx 0x%016lx\n",
i / 2, tgt[i], tgt[i + 1]);
}
printf("fpsr: 0x%08x\n", target->fpsr);
printf("fpcr: 0x%08x\n", target->fpcr);
return -1;
}
return 0;
}
void read_fpsimd(struct user_fpsimd_state *regs)
{
asm volatile(
"stp q0, q1, [%0, #16 * 0]\n"
"stp q2, q3, [%0, #16 * 2]\n"
"stp q4, q5, [%0, #16 * 4]\n"
"stp q6, q7, [%0, #16 * 6]\n"
"stp q8, q9, [%0, #16 * 8]\n"
"stp q10, q11, [%0, #16 * 10]\n"
"stp q12, q13, [%0, #16 * 12]\n"
"stp q14, q15, [%0, #16 * 14]\n"
"stp q16, q17, [%0, #16 * 16]\n"
"stp q18, q19, [%0, #16 * 18]\n"
"stp q20, q21, [%0, #16 * 20]\n"
"stp q22, q23, [%0, #16 * 22]\n"
"stp q24, q25, [%0, #16 * 24]\n"
"stp q26, q27, [%0, #16 * 26]\n"
"stp q28, q29, [%0, #16 * 28]\n"
"stp q30, q31, [%0, #16 * 30]\n"
"mrs x8, fpsr\n"
"str w8, [%0, #512]\n"
"mrs x8, fpcr\n"
"str w8, [%0, #516]\n"
: : "r" (regs)
: "x8", "memory"
);
}

77
test/sve/src/sve.h Normal file
View File

@ -0,0 +1,77 @@
/* sve.h COPYRIGHT FUJITSU LIMITED 2016-2019 */
#ifndef __SVE_H__
#define __SVE_H__
#include <asm/ptrace.h>
#include <asm/sigcontext.h>
#include <sys/types.h>
#include <linux/elf.h>
#define fpsimd_sve_state(vq) { \
__uint128_t zregs[32][vq]; \
unsigned short pregs[16][vq]; \
unsigned short ffr[vq]; \
}
#define user_fpsimd_sve_state(vq) { \
struct user_sve_header header; \
struct fpsimd_sve_state(vq) regs; \
}
/* assembler */
extern void sve_save_state(void *state, unsigned int *pfpsr);
extern void sve_load_state(void const *state, unsigned int const *pfpsr);
extern unsigned int sve_get_vl(void);
/* c */
extern unsigned int gen_set_vl(const unsigned int vl);
extern int get_and_compare_vl(const unsigned long exp_arg);
extern int set_and_compare_vl(const unsigned long set_arg);
extern void gen_test_sve(void *buf, unsigned int vq);
extern void gen_test_sve_low_128(void *buf, unsigned int bf_vq,
unsigned int af_vq);
extern void gen_test_fpsimd(struct user_fpsimd_state *buf, unsigned int vq);
extern void gen_test_sve_dirty(void *buf, unsigned int vq);
extern void write_sve(void *buf, unsigned int vq, unsigned int *fpscr);
extern void read_sve(void *buf, unsigned int vq, unsigned int *fpscr);
extern void show_sve(const void *buf, unsigned int vq, unsigned int *fpscr);
extern void read_and_show_sve(void *buf, unsigned int vq, unsigned int *fpscr);
extern int header_compare(const struct user_sve_header *target);
extern int sve_compare(const void *expect, const void *target, unsigned int vq);
extern int fpsimd_compare(const struct user_fpsimd_state *expect,
const struct user_fpsimd_state *target, size_t n);
extern void read_fpsimd(struct user_fpsimd_state *regs);
/* arm64 Scalable Vector Extension controls */
# define PR_SVE_INVALID_FLAGS (1 << 19) /* invalid flag */
/* sve_flags */
# define PR_SVE_GET_VL_FLAGS(ret) ((ret) & ~PR_SVE_VL_LEN_MASK)
/* vector length */
# define PR_SVE_GET_VL_LEN(ret) ((ret) & PR_SVE_VL_LEN_MASK)
/* Definitions for user_sve_header.flags: */
#define SVE_PT_INVALID_FLAGS (1 << 3) /* invalid flag */
/*
* SVE_MAX defines
*/
#define SVE_VQ_MIN 1
#define SVE_NUM_ZREGS 32
#define SVE_NUM_PREGS 16
#define VL_128_BIT 0x10 /* 16 byte */
#define VL_256_BIT 0x20 /* 32 byte */
#define VL_512_BIT 0x40 /* 64 byte */
#define VQ_128_BIT sve_vq_from_vl(VL_128_BIT)
#define VQ_256_BIT sve_vq_from_vl(VL_256_BIT)
#define VQ_512_BIT sve_vq_from_vl(VL_512_BIT)
#define UNSPPORT_VL (384 / 0x10)
#define INVALID_VL_1 (0)
#define INVALID_VL_2 (SVE_VL_MIN - 0x01)
#define INVALID_VL_3 (SVE_VL_MAX + 0x10)
#endif /* __SVE_H__ */

170
test/sve/src/sve_asm.S Normal file
View File

@ -0,0 +1,170 @@
/* sve_asm.S COPYRIGHT FUJITSU LIMITED 2016-2019 */
.globl load_z31
load_z31:
.cpu cortex-a53+fp+simd+sve
ldr z31, [x0]
ret
.type load_z31, @function
.size load_z31, .-load_z31
.globl store_z31
store_z31:
add z31.d, z31.d,#1
str z31, [x0]
ret
.type store_z31, @function
.size store_z31, .-store_z31
/* void sve_save_state(void *state, unsigned int *pfpsr); */
.globl sve_load_state
.align 4
sve_load_state:
/* load z register */
ldr z0, [x0,#-34,mul vl]
ldr z1, [x0,#-33,mul vl]
ldr z2, [x0,#-32,mul vl]
ldr z3, [x0,#-31,mul vl]
ldr z4, [x0,#-30,mul vl]
ldr z5, [x0,#-29,mul vl]
ldr z6, [x0,#-28,mul vl]
ldr z7, [x0,#-27,mul vl]
ldr z8, [x0,#-26,mul vl]
ldr z9, [x0,#-25,mul vl]
ldr z10, [x0,#-24,mul vl]
ldr z11, [x0,#-23,mul vl]
ldr z12, [x0,#-22,mul vl]
ldr z13, [x0,#-21,mul vl]
ldr z14, [x0,#-20,mul vl]
ldr z15, [x0,#-19,mul vl]
ldr z16, [x0,#-18,mul vl]
ldr z17, [x0,#-17,mul vl]
ldr z18, [x0,#-16,mul vl]
ldr z19, [x0,#-15,mul vl]
ldr z20, [x0,#-14,mul vl]
ldr z21, [x0,#-13,mul vl]
ldr z22, [x0,#-12,mul vl]
ldr z23, [x0,#-11,mul vl]
ldr z24, [x0,#-10,mul vl]
ldr z25, [x0,#-9,mul vl]
ldr z26, [x0,#-8,mul vl]
ldr z27, [x0,#-7,mul vl]
ldr z28, [x0,#-6,mul vl]
ldr z29, [x0,#-5,mul vl]
ldr z30, [x0,#-4,mul vl]
ldr z31, [x0,#-3,mul vl]
/* write ffr */
ldr p0, [x0]
wrffr p0.b
/* load p register */
ldr p0, [x0,#-16,mul vl]
ldr p1, [x0,#-15,mul vl]
ldr p2, [x0,#-14,mul vl]
ldr p3, [x0,#-13,mul vl]
ldr p4, [x0,#-12,mul vl]
ldr p5, [x0,#-11,mul vl]
ldr p6, [x0,#-10,mul vl]
ldr p7, [x0,#-9,mul vl]
ldr p8, [x0,#-8,mul vl]
ldr p9, [x0,#-7,mul vl]
ldr p10, [x0,#-6,mul vl]
ldr p11, [x0,#-5,mul vl]
ldr p12, [x0,#-4,mul vl]
ldr p13, [x0,#-3,mul vl]
ldr p14, [x0,#-2,mul vl]
ldr p15, [x0,#-1,mul vl]
/* write fpsr */
ldr w2, [x1]
msr fpsr, x2
/* write fpcr */
ldr w2, [x1,#4]
msr fpcr, x2
ret
.type sve_load_state, @function
.size sve_load_state, .-sve_load_state
/* void sve_load_state(void const *state, unsigned int const *pfpsr); */
.globl sve_save_state
.align 4
sve_save_state:
/* store z register */
str z0, [x0,#-34,mul vl]
str z1, [x0,#-33,mul vl]
str z2, [x0,#-32,mul vl]
str z3, [x0,#-31,mul vl]
str z4, [x0,#-30,mul vl]
str z5, [x0,#-29,mul vl]
str z6, [x0,#-28,mul vl]
str z7, [x0,#-27,mul vl]
str z8, [x0,#-26,mul vl]
str z9, [x0,#-25,mul vl]
str z10, [x0,#-24,mul vl]
str z11, [x0,#-23,mul vl]
str z12, [x0,#-22,mul vl]
str z13, [x0,#-21,mul vl]
str z14, [x0,#-20,mul vl]
str z15, [x0,#-19,mul vl]
str z16, [x0,#-18,mul vl]
str z17, [x0,#-17,mul vl]
str z18, [x0,#-16,mul vl]
str z19, [x0,#-15,mul vl]
str z20, [x0,#-14,mul vl]
str z21, [x0,#-13,mul vl]
str z22, [x0,#-12,mul vl]
str z23, [x0,#-11,mul vl]
str z24, [x0,#-10,mul vl]
str z25, [x0,#-9,mul vl]
str z26, [x0,#-8,mul vl]
str z27, [x0,#-7,mul vl]
str z28, [x0,#-6,mul vl]
str z29, [x0,#-5,mul vl]
str z30, [x0,#-4,mul vl]
str z31, [x0,#-3,mul vl]
/* store p register */
str p0, [x0,#-16,mul vl]
str p1, [x0,#-15,mul vl]
str p2, [x0,#-14,mul vl]
str p3, [x0,#-13,mul vl]
str p4, [x0,#-12,mul vl]
str p5, [x0,#-11,mul vl]
str p6, [x0,#-10,mul vl]
str p7, [x0,#-9,mul vl]
str p8, [x0,#-8,mul vl]
str p9, [x0,#-7,mul vl]
str p10, [x0,#-6,mul vl]
str p11, [x0,#-5,mul vl]
str p12, [x0,#-4,mul vl]
str p13, [x0,#-3,mul vl]
str p14, [x0,#-2,mul vl]
str p15, [x0,#-1,mul vl]
/* read ffr */
rdffr p0.b
str p0, [x0]
ldr p0, [x0,#-16,mul vl]
/* read fpsr */
mrs x2, fpsr
str w2, [x1]
/* read fpcr */
mrs x2, fpcr
str w2, [x1,#4]
ret
.type sve_save_state, @function
.size sve_save_state, .-sve_save_state
/* unsigned int sve_get_vl(void); */
.globl sve_get_vl
.align 4
sve_get_vl:
rdvl x0, #1
ret
.type sve_get_vl, @function
.size sve_get_vl, .-sve_get_vl