cr.yp.to update

[email protected] 12 Dec 2006 07:44:52 -0000
Newsgroups gmane.comp.djb.announce
Message-ID <[email protected]>
 snuffle.html                                                               |   20 
 streamciphers/timings/estreambench/submissions/salsa20-12/merged/salsa20.c |    2 
 streamciphers/timings/estreambench/submissions/salsa20-12/ref/salsa20.c    |    2 
 streamciphers/timings/estreambench/submissions/salsa20-12/regs/salsa20.c   |    2 
 streamciphers/timings/estreambench/submissions/salsa20-12/sparc/salsa20.s  | 4101 ++++------
 streamciphers/timings/estreambench/submissions/salsa20-8/merged/salsa20.c  |    2 
 streamciphers/timings/estreambench/submissions/salsa20-8/ref/salsa20.c     |    2 
 streamciphers/timings/estreambench/submissions/salsa20-8/regs/salsa20.c    |    2 
 streamciphers/timings/estreambench/submissions/salsa20-8/sparc/salsa20.s   | 4101 ++++------
 streamciphers/timings/estreambench/submissions/salsa20/sparc/salsa20.s     | 4101 ++++------
 10 files changed, 6164 insertions(+), 6171 deletions(-)
diff -ru .old-crypto/snuffle.html cr.yp.to/snuffle.html
--- .old-crypto/snuffle.html	2006-12-08 11:29:49.000000000 -0500
+++ cr.yp.to/snuffle.html	2006-12-11 05:59:17.000000000 -0500
@@ -85,20 +85,20 @@
 <a href="streamciphers/timings/estreambench/submissions/salsa20/ref/Makefile">Makefile</a>,
 <a href="streamciphers/timings/estreambench/submissions/salsa20/ref/ecrypt-sync.h">ecrypt-sync.h</a>.
 <li>
-<tt>regs</tt>,
-similar to <tt>salsa20/ref</tt>
-but using separate temporary variables
-instead of a temporary array:
+<tt>regs</tt>:
 <a href="streamciphers/timings/estreambench/submissions/salsa20/regs/salsa20.c">salsa20.c</a>,
 <a href="streamciphers/timings/estreambench/submissions/salsa20/regs/Makefile">Makefile</a>,
 <a href="streamciphers/timings/estreambench/submissions/salsa20/regs/ecrypt-sync.h">ecrypt-sync.h</a>.
+Similar to <tt>salsa20/ref</tt>
+but uses separate temporary variables
+instead of a temporary array.
 <li>
-<tt>merged</tt>,
-similar to <tt>salsa20/regs</tt>
-but inlining the block-hashing function:
+<tt>merged</tt>:
 <a href="streamciphers/timings/estreambench/submissions/salsa20/merged/salsa20.c">salsa20.c</a>,
 <a href="streamciphers/timings/estreambench/submissions/salsa20/merged/Makefile">Makefile</a>,
 <a href="streamciphers/timings/estreambench/submissions/salsa20/merged/ecrypt-sync.h">ecrypt-sync.h</a>.
+Similar to <tt>salsa20/regs</tt>
+but inlines the block-hashing function.
 <li>
 <tt>x86-1</tt>,
 specific to the Pentium, Athlon, and other x86 chips:
@@ -120,6 +120,7 @@
 <a href="streamciphers/timings/estreambench/submissions/salsa20/x86-mmx/salsa20.s">salsa20.s</a>,
 <a href="streamciphers/timings/estreambench/submissions/salsa20/x86-mmx/Makefile">Makefile</a>,
 <a href="streamciphers/timings/estreambench/submissions/salsa20/x86-mmx/ecrypt-sync.h">ecrypt-sync.h</a>.
+Uses some MMX registers as substitutes for stack positions.
 <li>
 <tt>x86-xmm</tt>,
 specific to the Pentium 4 and other CPUs with SSE2 instructions:
@@ -127,6 +128,7 @@
 <a href="streamciphers/timings/estreambench/submissions/salsa20/x86-xmm/salsa20.s">salsa20.s</a>,
 <a href="streamciphers/timings/estreambench/submissions/salsa20/x86-xmm/Makefile">Makefile</a>,
 <a href="streamciphers/timings/estreambench/submissions/salsa20/x86-xmm/ecrypt-sync.h">ecrypt-sync.h</a>.
+Handles four words in parallel with one instruction.
 <li>
 <tt>amd64-1</tt>,
 specific to the Athlon 64, Core 2 Duo, and other AMD64 chips:
@@ -187,9 +189,9 @@
 <th>Machine</th>
 </tr>
 <tr><td>4.36</td><td>2.88</td><td>2.14</td><td>ppc-altivec</td><td>Motorola PowerPC G4 7410</td>
-<tr><td>7.55</td><td>4.80</td><td>3.43</td><td>salsa20-amd64</td><td>Intel Core 2 Duo 6f6</td>
+<tr><td>7.24</td><td>4.62</td><td>3.31</td><td>amd64-3</td><td>Intel Core 2 Duo 6f6</td>
+<tr><td>7.83</td><td>5.04</td><td>3.65</td><td>amd64-3</td><td>AMD Athlon 64 X2 15,75,2</td>
 <tr><td>7.90</td><td>4.83</td><td>3.33</td><td>ppc-altivec</td><td>IBM PowerPC G5 750</td>
-<tr><td>8.59</td><td>5.46</td><td>3.81</td><td>merged</td><td>AMD Athlon 64 X2 15,35,2</td>
 <tr><td>10.59</td><td>7.19</td><td>5.47</td><td>merged</td><td>HP PA-RISC 8900</td>
 <tr><td>10.73</td><td>6.92</td><td>5.01</td><td>x86-2</td><td>AMD Athlon 622</td>
 <tr><td>11.53</td><td>7.83</td><td>5.98</td><td>merged</td><td>HP 9000/785 J5000</td>
Deleted: .old-crypto/streamciphers/timings/atlas/20061206/submissions/provest-16/.tmp.index.html.1165558343.54813
New: streamciphers/timings/atlas/20061206/submissions/provest-16/index.html
New: streamciphers/timings/atlas/20061206/submissions/provest-32
New: streamciphers/timings/atlas/20061206/submissions/provest-4
New: streamciphers/timings/atlas/20061206/submissions/py
New: streamciphers/timings/atlas/20061206/submissions/py6
New: streamciphers/timings/atlas/20061206/submissions/rabbit
New: streamciphers/timings/atlas/20061206/submissions/salsa20
New: streamciphers/timings/atlas/20061206/submissions/salsa20-12
New: streamciphers/timings/atlas/20061206/submissions/salsa20-8
New: streamciphers/timings/atlas/20061206/submissions/sfinks
New: streamciphers/timings/atlas/20061206/submissions/sfinks-ae
New: streamciphers/timings/atlas/20061206/submissions/sosemanuk
New: streamciphers/timings/atlas/20061206/submissions/trivium
New: streamciphers/timings/atlas/20061206/submissions/tsc-3
New: streamciphers/timings/atlas/20061206/submissions/wg-v1-long-iv
New: streamciphers/timings/atlas/20061206/submissions/wg-v1-small-iv
New: streamciphers/timings/atlas/20061206/submissions/yamb
New: streamciphers/timings/atlas/20061206/submissions/zk-crypt
New: streamciphers/timings/estreambench/submissions/salsa20/amd64-1
New: streamciphers/timings/estreambench/submissions/salsa20/amd64-2
New: streamciphers/timings/estreambench/submissions/salsa20/amd64-3
New: streamciphers/timings/estreambench/submissions/salsa20/amd64-xmm
New: streamciphers/timings/estreambench/submissions/salsa20/ppc-altivec
New: streamciphers/timings/estreambench/submissions/salsa20/sparc/salsa20.q
diff -ru .old-crypto/streamciphers/timings/estreambench/submissions/salsa20/sparc/salsa20.s cr.yp.to/streamciphers/timings/estreambench/submissions/salsa20/sparc/salsa20.s
--- .old-crypto/streamciphers/timings/estreambench/submissions/salsa20/sparc/salsa20.s	2006-02-23 16:15:20.000000000 -0500
+++ cr.yp.to/streamciphers/timings/estreambench/submissions/salsa20/sparc/salsa20.s	2006-12-08 11:40:58.000000000 -0500
@@ -1,2412 +1,2409 @@
-# salsa20_sparc.s version 20060106
-# D. J. Bernstein
-# Public domain.
 
-# int64 x
+# qhasm: int64 x
 
-# int64 arg2
+# qhasm: int64 arg2
 
-# int64 arg3
+# qhasm: int64 arg3
 
-# int64 arg4
+# qhasm: int64 arg4
 
-# input x
+# qhasm: input x
 
-# input arg2
+# qhasm: input arg2
 
-# input arg3
+# qhasm: input arg3
 
-# input arg4
+# qhasm: input arg4
 
-# int64 i
+# qhasm: int64 i
 
-# int64 a
+# qhasm: int64 a
 
-# int64 m
+# qhasm: int64 m
 
-# int64 out
+# qhasm: int64 out
 
-# int64 bytes
+# qhasm: int64 bytes
 
-# stack64 ctarget
+# qhasm: stack64 ctarget
 
-# stack512 tmp
+# qhasm: stack512 tmp
 
-# stack64 bytes_stack
+# qhasm: stack64 bytes_stack
 
-# stack64 out_stack
+# qhasm: stack64 out_stack
 
-# stack64 m_stack
+# qhasm: stack64 m_stack
 
-# stack64 x_stack
+# qhasm: stack64 x_stack
 
-# int64 z0
+# qhasm: int64 z0
 
-# int64 z1
+# qhasm: int64 z1
 
-# int64 z2
+# qhasm: int64 z2
 
-# int64 z3
+# qhasm: int64 z3
 
-# int64 z4
+# qhasm: int64 z4
 
-# int64 z5
+# qhasm: int64 z5
 
-# int64 z6
+# qhasm: int64 z6
 
-# int64 z7
+# qhasm: int64 z7
 
-# int64 z8
+# qhasm: int64 z8
 
-# int64 z9
+# qhasm: int64 z9
 
-# int64 z10
+# qhasm: int64 z10
 
-# int64 z11
+# qhasm: int64 z11
 
-# int64 z12
+# qhasm: int64 z12
 
-# int64 z13
+# qhasm: int64 z13
 
-# int64 z14
+# qhasm: int64 z14
 
-# int64 z15
+# qhasm: int64 z15
 
-# int64 u0
+# qhasm: int64 u0
 
-# int64 u1
+# qhasm: int64 u1
 
-# int64 u2
+# qhasm: int64 u2
 
-# int64 u3
+# qhasm: int64 u3
 
-# int64 u4
+# qhasm: int64 u4
 
-# int64 u5
+# qhasm: int64 u5
 
-# int64 u6
+# qhasm: int64 u6
 
-# int64 u7
+# qhasm: int64 u7
 
-# int64 u8
+# qhasm: int64 u8
 
-# int64 u9
+# qhasm: int64 u9
 
-# int64 u10
+# qhasm: int64 u10
 
-# int64 u11
+# qhasm: int64 u11
 
-# int64 u12
+# qhasm: int64 u12
 
-# int64 u13
+# qhasm: int64 u13
 
-# int64 u14
+# qhasm: int64 u14
 
-# int64 u15
+# qhasm: int64 u15
 
-# int64 y0
+# qhasm: int64 y0
 
-# int64 y1
+# qhasm: int64 y1
 
-# int64 y2
+# qhasm: int64 y2
 
-# int64 y3
+# qhasm: int64 y3
 
-# int64 y4
+# qhasm: int64 y4
 
-# int64 y5
+# qhasm: int64 y5
 
-# int64 y6
+# qhasm: int64 y6
 
-# int64 y7
+# qhasm: int64 y7
 
-# int64 y8
+# qhasm: int64 y8
 
-# int64 y9
+# qhasm: int64 y9
 
-# int64 y10
+# qhasm: int64 y10
 
-# int64 y11
+# qhasm: int64 y11
 
-# int64 y12
+# qhasm: int64 y12
 
-# int64 y13
+# qhasm: int64 y13
 
-# int64 y14
+# qhasm: int64 y14
 
-# int64 y15
+# qhasm: int64 y15
 
-# int64 x0
+# qhasm: int64 x0
 
-# int64 x1
+# qhasm: int64 x1
 
-# int64 x2
+# qhasm: int64 x2
 
-# int64 x3
+# qhasm: int64 x3
 
-# int64 x4
+# qhasm: int64 x4
 
-# int64 x5
+# qhasm: int64 x5
 
-# int64 x6
+# qhasm: int64 x6
 
-# int64 x7
+# qhasm: int64 x7
 
-# int64 x8
+# qhasm: int64 x8
 
-# int64 x9
+# qhasm: int64 x9
 
-# int64 x10
+# qhasm: int64 x10
 
-# int64 x11
+# qhasm: int64 x11
 
-# int64 x12
+# qhasm: int64 x12
 
-# int64 x13
+# qhasm: int64 x13
 
-# int64 x14
+# qhasm: int64 x14
 
-# int64 x15
+# qhasm: int64 x15
 
-# int64 q0
+# qhasm: int64 q0
 
-# int64 q1
+# qhasm: int64 q1
 
-# int64 q2
+# qhasm: int64 q2
 
-# int64 q3
+# qhasm: int64 q3
 
-# int64 q4
+# qhasm: int64 q4
 
-# int64 q5
+# qhasm: int64 q5
 
-# int64 q6
+# qhasm: int64 q6
 
-# int64 q7
+# qhasm: int64 q7
 
-# int64 q8
+# qhasm: int64 q8
 
-# int64 q9
+# qhasm: int64 q9
 
-# int64 q10
+# qhasm: int64 q10
 
-# int64 q11
+# qhasm: int64 q11
 
-# int64 q12
+# qhasm: int64 q12
 
-# int64 q13
+# qhasm: int64 q13
 
-# int64 q14
+# qhasm: int64 q14
 
-# int64 q15
+# qhasm: int64 q15
 
-# int64 m0
+# qhasm: int64 m0
 
-# int64 m1
+# qhasm: int64 m1
 
-# int64 m2
+# qhasm: int64 m2
 
-# int64 m3
+# qhasm: int64 m3
 
-# int64 m4
+# qhasm: int64 m4
 
-# int64 m5
+# qhasm: int64 m5
 
-# int64 m6
+# qhasm: int64 m6
 
-# int64 m7
+# qhasm: int64 m7
 
-# int64 m8
+# qhasm: int64 m8
 
-# int64 m9
+# qhasm: int64 m9
 
-# int64 m10
+# qhasm: int64 m10
 
-# int64 m11
+# qhasm: int64 m11
 
-# int64 m12
+# qhasm: int64 m12
 
-# int64 m13
+# qhasm: int64 m13
 
-# int64 m14
+# qhasm: int64 m14
 
-# int64 m15
+# qhasm: int64 m15
 
-# enter ECRYPT_init
+# qhasm: enter ECRYPT_init
 .section ".text"
 .align 32
 .global ECRYPT_init
 ECRYPT_init:
 save %sp,-288,%sp
 
-# leave
+# qhasm: leave
 ret
 restore
 
-# enter ECRYPT_ivsetup
+# qhasm: enter ECRYPT_ivsetup
 .section ".text"
 .align 32
 .global ECRYPT_ivsetup
 ECRYPT_ivsetup:
 save %sp,-288,%sp
 
-#   x6 = *(uint32 *) (arg2 + 0)
-# lduw [<arg2=int64#2+0],>x6=int64#3
-# lduw [<arg2=%i1+0],>x6=%i2
-lduw [%i1+0],%i2
-
-#   x8 = 0
-# add %g0,0,>x8=int64#4
-# add %g0,0,>x8=%i3
-add %g0,0,%i3
-
-#   x7 = *(uint32 *) (arg2 + 4)
-# lduw [<arg2=int64#2+4],>x7=int64#2
-# lduw [<arg2=%i1+4],>x7=%i1
+# qhasm:   x6 = *(uint32 *) (arg2 + 0)
+# asm 1: lduw [<arg2=int64#2+0],>x6=int64#5
+# asm 2: lduw [<arg2=%i1+0],>x6=%i4
+lduw [%i1+0],%i4
+
+# qhasm:   x8 = 0
+# asm 1: add %g0,0,>x8=int64#6
+# asm 2: add %g0,0,>x8=%i5
+add %g0,0,%i5
+
+# qhasm:   x7 = *(uint32 *) (arg2 + 4)
+# asm 1: lduw [<arg2=int64#2+4],>x7=int64#2
+# asm 2: lduw [<arg2=%i1+4],>x7=%i1
 lduw [%i1+4],%i1
 
-#   x9 = 0
-# add %g0,0,>x9=int64#5
-# add %g0,0,>x9=%i4
-add %g0,0,%i4
-
-#   x += 24
-# add <x=int64#1,24,>x=int64#1
-# add <x=%i0,24,>x=%i0
+# qhasm:   x9 = 0
+# asm 1: add %g0,0,>x9=int64#7
+# asm 2: add %g0,0,>x9=%g1
+add %g0,0,%g1
+
+# qhasm:   x += 24
+# asm 1: add <x=int64#1,24,>x=int64#1
+# asm 2: add <x=%i0,24,>x=%i0
 add %i0,24,%i0
 
-#   *(swapendian int32 *) x = x6
-# stwa <x6=int64#3,[<x=int64#1] 0x88
-# stwa <x6=%i2,[<x=%i0] 0x88
-stwa %i2,[%i0] 0x88
+# qhasm:   *(swapendian int32 *) x = x6
+# asm 1: stwa <x6=int64#5,[<x=int64#1] 0x88
+# asm 2: stwa <x6=%i4,[<x=%i0] 0x88
+stwa %i4,[%i0] 0x88
 
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(swapendian int32 *) x = x7
-# stwa <x7=int64#2,[<x=int64#1] 0x88
-# stwa <x7=%i1,[<x=%i0] 0x88
+# qhasm:   *(swapendian int32 *) x = x7
+# asm 1: stwa <x7=int64#2,[<x=int64#1] 0x88
+# asm 2: stwa <x7=%i1,[<x=%i0] 0x88
 stwa %i1,[%i0] 0x88
 
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(int32 *) (x + 0) = x8
-# stw <x8=int64#4,[<x=int64#1+0]
-# stw <x8=%i3,[<x=%i0+0]
-stw %i3,[%i0+0]
-
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   *(int32 *) (x + 0) = x8
+# asm 1: stw <x8=int64#6,[<x=int64#1+0]
+# asm 2: stw <x8=%i5,[<x=%i0+0]
+stw %i5,[%i0+0]
+
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(int32 *) (x + 0) = x9
-# stw <x9=int64#5,[<x=int64#1+0]
-# stw <x9=%i4,[<x=%i0+0]
-stw %i4,[%i0+0]
+# qhasm:   *(int32 *) (x + 0) = x9
+# asm 1: stw <x9=int64#7,[<x=int64#1+0]
+# asm 2: stw <x9=%g1,[<x=%i0+0]
+stw %g1,[%i0+0]
 
-# leave
+# qhasm: leave
 ret
 restore
 
-# enter ECRYPT_keysetup
+# qhasm: enter ECRYPT_keysetup
 .section ".text"
 .align 32
 .global ECRYPT_keysetup
 ECRYPT_keysetup:
 save %sp,-288,%sp
 
-# flags arg3 - 128
-# subcc <arg3=int64#3,128,%g0
-# subcc <arg3=%i2,128,%g0
+# qhasm:                  unsigned>? arg3 - 128
+# asm 1: subcc <arg3=int64#3,128,%g0
+# asm 2: subcc <arg3=%i2,128,%g0
 subcc %i2,128,%g0
 
-# goto kbits256 if unsigned>
+# qhasm: goto kbits256 if unsigned>
 bgu,pt %xcc,._kbits256
 nop
 
-# kbits128#
+# qhasm: kbits128:
 ._kbits128:
 
-#   x1 = *(uint32 *) (arg2 + 0)
-# lduw [<arg2=int64#2+0],>x1=int64#4
-# lduw [<arg2=%i1+0],>x1=%i3
-lduw [%i1+0],%i3
-
-#   x0 = 1634760805 & 0xfffffc00
-# sethi %lm(1634760805),>x0=int64#3
-# sethi %lm(1634760805),>x0=%i2
-sethi %lm(1634760805),%i2
-
-#   x2 = *(uint32 *) (arg2 + 4)
-# lduw [<arg2=int64#2+4],>x2=int64#5
-# lduw [<arg2=%i1+4],>x2=%i4
+# qhasm:   x1 = *(uint32 *) (arg2 + 0)
+# asm 1: lduw [<arg2=int64#2+0],>x1=int64#3
+# asm 2: lduw [<arg2=%i1+0],>x1=%i2
+lduw [%i1+0],%i2
+
+# qhasm:   x0 = 1634760805 & 0xfffffc00
+# asm 1: sethi %lm(1634760805),>x0=int64#4
+# asm 2: sethi %lm(1634760805),>x0=%i3
+sethi %lm(1634760805),%i3
+
+# qhasm:   x2 = *(uint32 *) (arg2 + 4)
+# asm 1: lduw [<arg2=int64#2+4],>x2=int64#5
+# asm 2: lduw [<arg2=%i1+4],>x2=%i4
 lduw [%i1+4],%i4
 
-#   x5 = 824206446 & 0xfffffc00
-# sethi %lm(824206446),>x5=int64#8
-# sethi %lm(824206446),>x5=%g4
-sethi %lm(824206446),%g4
-
-#   x3 = *(uint32 *) (arg2 + 8)
-# lduw [<arg2=int64#2+8],>x3=int64#6
-# lduw [<arg2=%i1+8],>x3=%i5
-lduw [%i1+8],%i5
-
-#   x10 = 2036477238 & 0xfffffc00
-# sethi %lm(2036477238),>x10=int64#9
-# sethi %lm(2036477238),>x10=%g5
-sethi %lm(2036477238),%g5
-
-#   x4 = *(uint32 *) (arg2 + 12)
-# lduw [<arg2=int64#2+12],>x4=int64#7
-# lduw [<arg2=%i1+12],>x4=%g1
-lduw [%i1+12],%g1
-
-#   x15 = 1797285236 & 0xfffffc00
-# sethi %lm(1797285236),>x15=int64#13
-# sethi %lm(1797285236),>x15=%o3
-sethi %lm(1797285236),%o3
-
-#   x11 = *(uint32 *) (arg2 + 0)
-# lduw [<arg2=int64#2+0],>x11=int64#10
-# lduw [<arg2=%i1+0],>x11=%o0
-lduw [%i1+0],%o0
-
-#   x0 |= 1634760805 & 0x3ff
-# or <x0=int64#3,%lo(1634760805),>x0=int64#3
-# or <x0=%i2,%lo(1634760805),>x0=%i2
-or %i2,%lo(1634760805),%i2
-
-#   x12 = *(uint32 *) (arg2 + 4)
-# lduw [<arg2=int64#2+4],>x12=int64#11
-# lduw [<arg2=%i1+4],>x12=%o1
-lduw [%i1+4],%o1
-
-#   x5 |= 824206446 & 0x3ff
-# or <x5=int64#8,%lo(824206446),>x5=int64#8
-# or <x5=%g4,%lo(824206446),>x5=%g4
-or %g4,%lo(824206446),%g4
-
-#   x13 = *(uint32 *) (arg2 + 8)
-# lduw [<arg2=int64#2+8],>x13=int64#12
-# lduw [<arg2=%i1+8],>x13=%o2
-lduw [%i1+8],%o2
-
-#   x10 |= 2036477238 & 0x3ff
-# or <x10=int64#9,%lo(2036477238),>x10=int64#9
-# or <x10=%g5,%lo(2036477238),>x10=%g5
-or %g5,%lo(2036477238),%g5
-
-#   x14 = *(uint32 *) (arg2 + 12)
-# lduw [<arg2=int64#2+12],>x14=int64#2
-# lduw [<arg2=%i1+12],>x14=%i1
+# qhasm:   x5 = 824206446 & 0xfffffc00
+# asm 1: sethi %lm(824206446),>x5=int64#6
+# asm 2: sethi %lm(824206446),>x5=%i5
+sethi %lm(824206446),%i5
+
+# qhasm:   x3 = *(uint32 *) (arg2 + 8)
+# asm 1: lduw [<arg2=int64#2+8],>x3=int64#7
+# asm 2: lduw [<arg2=%i1+8],>x3=%g1
+lduw [%i1+8],%g1
+
+# qhasm:   x10 = 2036477238 & 0xfffffc00
+# asm 1: sethi %lm(2036477238),>x10=int64#8
+# asm 2: sethi %lm(2036477238),>x10=%g4
+sethi %lm(2036477238),%g4
+
+# qhasm:   x4 = *(uint32 *) (arg2 + 12)
+# asm 1: lduw [<arg2=int64#2+12],>x4=int64#9
+# asm 2: lduw [<arg2=%i1+12],>x4=%g5
+lduw [%i1+12],%g5
+
+# qhasm:   x15 = 1797285236 & 0xfffffc00
+# asm 1: sethi %lm(1797285236),>x15=int64#10
+# asm 2: sethi %lm(1797285236),>x15=%o0
+sethi %lm(1797285236),%o0
+
+# qhasm:   x11 = *(uint32 *) (arg2 + 0)
+# asm 1: lduw [<arg2=int64#2+0],>x11=int64#11
+# asm 2: lduw [<arg2=%i1+0],>x11=%o1
+lduw [%i1+0],%o1
+
+# qhasm:   x0 |= 1634760805 & 0x3ff
+# asm 1: or <x0=int64#4,%lo(1634760805),>x0=int64#4
+# asm 2: or <x0=%i3,%lo(1634760805),>x0=%i3
+or %i3,%lo(1634760805),%i3
+
+# qhasm:   x12 = *(uint32 *) (arg2 + 4)
+# asm 1: lduw [<arg2=int64#2+4],>x12=int64#12
+# asm 2: lduw [<arg2=%i1+4],>x12=%o2
+lduw [%i1+4],%o2
+
+# qhasm:   x5 |= 824206446 & 0x3ff
+# asm 1: or <x5=int64#6,%lo(824206446),>x5=int64#6
+# asm 2: or <x5=%i5,%lo(824206446),>x5=%i5
+or %i5,%lo(824206446),%i5
+
+# qhasm:   x13 = *(uint32 *) (arg2 + 8)
+# asm 1: lduw [<arg2=int64#2+8],>x13=int64#13
+# asm 2: lduw [<arg2=%i1+8],>x13=%o3
+lduw [%i1+8],%o3
+
+# qhasm:   x10 |= 2036477238 & 0x3ff
+# asm 1: or <x10=int64#8,%lo(2036477238),>x10=int64#8
+# asm 2: or <x10=%g4,%lo(2036477238),>x10=%g4
+or %g4,%lo(2036477238),%g4
+
+# qhasm:   x14 = *(uint32 *) (arg2 + 12)
+# asm 1: lduw [<arg2=int64#2+12],>x14=int64#2
+# asm 2: lduw [<arg2=%i1+12],>x14=%i1
 lduw [%i1+12],%i1
 
-#   x15 |= 1797285236 & 0x3ff
-# or <x15=int64#13,%lo(1797285236),>x15=int64#13
-# or <x15=%o3,%lo(1797285236),>x15=%o3
-or %o3,%lo(1797285236),%o3
+# qhasm:   x15 |= 1797285236 & 0x3ff
+# asm 1: or <x15=int64#10,%lo(1797285236),>x15=int64#10
+# asm 2: or <x15=%o0,%lo(1797285236),>x15=%o0
+or %o0,%lo(1797285236),%o0
 
-# goto storekey
+# qhasm: goto storekey
 b ._storekey
 nop
 
-# kbits256#
+# qhasm: kbits256:
 ._kbits256:
 
-#   x1 = *(uint32 *) (arg2 + 0)
-# lduw [<arg2=int64#2+0],>x1=int64#4
-# lduw [<arg2=%i1+0],>x1=%i3
-lduw [%i1+0],%i3
-
-#   x0 = 1634760805 & 0xfffffc00
-# sethi %lm(1634760805),>x0=int64#3
-# sethi %lm(1634760805),>x0=%i2
-sethi %lm(1634760805),%i2
-
-#   x2 = *(uint32 *) (arg2 + 4)
-# lduw [<arg2=int64#2+4],>x2=int64#5
-# lduw [<arg2=%i1+4],>x2=%i4
+# qhasm:   x1 = *(uint32 *) (arg2 + 0)
+# asm 1: lduw [<arg2=int64#2+0],>x1=int64#3
+# asm 2: lduw [<arg2=%i1+0],>x1=%i2
+lduw [%i1+0],%i2
+
+# qhasm:   x0 = 1634760805 & 0xfffffc00
+# asm 1: sethi %lm(1634760805),>x0=int64#4
+# asm 2: sethi %lm(1634760805),>x0=%i3
+sethi %lm(1634760805),%i3
+
+# qhasm:   x2 = *(uint32 *) (arg2 + 4)
+# asm 1: lduw [<arg2=int64#2+4],>x2=int64#5
+# asm 2: lduw [<arg2=%i1+4],>x2=%i4
 lduw [%i1+4],%i4
 
-#   x5 = 857760878 & 0xfffffc00
-# sethi %lm(857760878),>x5=int64#8
-# sethi %lm(857760878),>x5=%g4
-sethi %lm(857760878),%g4
-
-#   x3 = *(uint32 *) (arg2 + 8)
-# lduw [<arg2=int64#2+8],>x3=int64#6
-# lduw [<arg2=%i1+8],>x3=%i5
-lduw [%i1+8],%i5
-
-#   x10 = 2036477234 & 0xfffffc00
-# sethi %lm(2036477234),>x10=int64#9
-# sethi %lm(2036477234),>x10=%g5
-sethi %lm(2036477234),%g5
-
-#   x4 = *(uint32 *) (arg2 + 12)
-# lduw [<arg2=int64#2+12],>x4=int64#7
-# lduw [<arg2=%i1+12],>x4=%g1
-lduw [%i1+12],%g1
-
-#   x15 = 1797285236 & 0xfffffc00
-# sethi %lm(1797285236),>x15=int64#13
-# sethi %lm(1797285236),>x15=%o3
-sethi %lm(1797285236),%o3
-
-#   x11 = *(uint32 *) (arg2 + 16)
-# lduw [<arg2=int64#2+16],>x11=int64#10
-# lduw [<arg2=%i1+16],>x11=%o0
-lduw [%i1+16],%o0
-
-#   x0 |= 1634760805 & 0x3ff
-# or <x0=int64#3,%lo(1634760805),>x0=int64#3
-# or <x0=%i2,%lo(1634760805),>x0=%i2
-or %i2,%lo(1634760805),%i2
-
-#   x12 = *(uint32 *) (arg2 + 20)
-# lduw [<arg2=int64#2+20],>x12=int64#11
-# lduw [<arg2=%i1+20],>x12=%o1
-lduw [%i1+20],%o1
-
-#   x5 |= 857760878 & 0x3ff
-# or <x5=int64#8,%lo(857760878),>x5=int64#8
-# or <x5=%g4,%lo(857760878),>x5=%g4
-or %g4,%lo(857760878),%g4
-
-#   x13 = *(uint32 *) (arg2 + 24)
-# lduw [<arg2=int64#2+24],>x13=int64#12
-# lduw [<arg2=%i1+24],>x13=%o2
-lduw [%i1+24],%o2
-
-#   x10 |= 2036477234 & 0x3ff
-# or <x10=int64#9,%lo(2036477234),>x10=int64#9
-# or <x10=%g5,%lo(2036477234),>x10=%g5
-or %g5,%lo(2036477234),%g5
-
-#   x14 = *(uint32 *) (arg2 + 28)
-# lduw [<arg2=int64#2+28],>x14=int64#2
-# lduw [<arg2=%i1+28],>x14=%i1
+# qhasm:   x5 = 857760878 & 0xfffffc00
+# asm 1: sethi %lm(857760878),>x5=int64#6
+# asm 2: sethi %lm(857760878),>x5=%i5
+sethi %lm(857760878),%i5
+
+# qhasm:   x3 = *(uint32 *) (arg2 + 8)
+# asm 1: lduw [<arg2=int64#2+8],>x3=int64#7
+# asm 2: lduw [<arg2=%i1+8],>x3=%g1
+lduw [%i1+8],%g1
+
+# qhasm:   x10 = 2036477234 & 0xfffffc00
+# asm 1: sethi %lm(2036477234),>x10=int64#8
+# asm 2: sethi %lm(2036477234),>x10=%g4
+sethi %lm(2036477234),%g4
+
+# qhasm:   x4 = *(uint32 *) (arg2 + 12)
+# asm 1: lduw [<arg2=int64#2+12],>x4=int64#9
+# asm 2: lduw [<arg2=%i1+12],>x4=%g5
+lduw [%i1+12],%g5
+
+# qhasm:   x15 = 1797285236 & 0xfffffc00
+# asm 1: sethi %lm(1797285236),>x15=int64#10
+# asm 2: sethi %lm(1797285236),>x15=%o0
+sethi %lm(1797285236),%o0
+
+# qhasm:   x11 = *(uint32 *) (arg2 + 16)
+# asm 1: lduw [<arg2=int64#2+16],>x11=int64#11
+# asm 2: lduw [<arg2=%i1+16],>x11=%o1
+lduw [%i1+16],%o1
+
+# qhasm:   x0 |= 1634760805 & 0x3ff
+# asm 1: or <x0=int64#4,%lo(1634760805),>x0=int64#4
+# asm 2: or <x0=%i3,%lo(1634760805),>x0=%i3
+or %i3,%lo(1634760805),%i3
+
+# qhasm:   x12 = *(uint32 *) (arg2 + 20)
+# asm 1: lduw [<arg2=int64#2+20],>x12=int64#12
+# asm 2: lduw [<arg2=%i1+20],>x12=%o2
+lduw [%i1+20],%o2
+
+# qhasm:   x5 |= 857760878 & 0x3ff
+# asm 1: or <x5=int64#6,%lo(857760878),>x5=int64#6
+# asm 2: or <x5=%i5,%lo(857760878),>x5=%i5
+or %i5,%lo(857760878),%i5
+
+# qhasm:   x13 = *(uint32 *) (arg2 + 24)
+# asm 1: lduw [<arg2=int64#2+24],>x13=int64#13
+# asm 2: lduw [<arg2=%i1+24],>x13=%o3
+lduw [%i1+24],%o3
+
+# qhasm:   x10 |= 2036477234 & 0x3ff
+# asm 1: or <x10=int64#8,%lo(2036477234),>x10=int64#8
+# asm 2: or <x10=%g4,%lo(2036477234),>x10=%g4
+or %g4,%lo(2036477234),%g4
+
+# qhasm:   x14 = *(uint32 *) (arg2 + 28)
+# asm 1: lduw [<arg2=int64#2+28],>x14=int64#2
+# asm 2: lduw [<arg2=%i1+28],>x14=%i1
 lduw [%i1+28],%i1
 
-#   x15 |= 1797285236 & 0x3ff
-# or <x15=int64#13,%lo(1797285236),>x15=int64#13
-# or <x15=%o3,%lo(1797285236),>x15=%o3
-or %o3,%lo(1797285236),%o3
+# qhasm:   x15 |= 1797285236 & 0x3ff
+# asm 1: or <x15=int64#10,%lo(1797285236),>x15=int64#10
+# asm 2: or <x15=%o0,%lo(1797285236),>x15=%o0
+or %o0,%lo(1797285236),%o0
 
-# storekey#
+# qhasm: storekey:
 ._storekey:
 
-#   *(int32 *) (x + 0) = x0
-# stw <x0=int64#3,[<x=int64#1+0]
-# stw <x0=%i2,[<x=%i0+0]
-stw %i2,[%i0+0]
-
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
-add %i0,4,%i0
+# qhasm:   *(int32 *) (x + 0) = x0
+# asm 1: stw <x0=int64#4,[<x=int64#1+0]
+# asm 2: stw <x0=%i3,[<x=%i0+0]
+stw %i3,[%i0+0]
 
-#   *(swapendian int32 *) x = x1
-# stwa <x1=int64#4,[<x=int64#1] 0x88
-# stwa <x1=%i3,[<x=%i0] 0x88
-stwa %i3,[%i0] 0x88
-
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(swapendian int32 *) x = x2
-# stwa <x2=int64#5,[<x=int64#1] 0x88
-# stwa <x2=%i4,[<x=%i0] 0x88
-stwa %i4,[%i0] 0x88
+# qhasm:   *(swapendian int32 *) x = x1
+# asm 1: stwa <x1=int64#3,[<x=int64#1] 0x88
+# asm 2: stwa <x1=%i2,[<x=%i0] 0x88
+stwa %i2,[%i0] 0x88
 
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(swapendian int32 *) x = x3
-# stwa <x3=int64#6,[<x=int64#1] 0x88
-# stwa <x3=%i5,[<x=%i0] 0x88
-stwa %i5,[%i0] 0x88
-
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   *(swapendian int32 *) x = x2
+# asm 1: stwa <x2=int64#5,[<x=int64#1] 0x88
+# asm 2: stwa <x2=%i4,[<x=%i0] 0x88
+stwa %i4,[%i0] 0x88
+
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(swapendian int32 *) x = x4
-# stwa <x4=int64#7,[<x=int64#1] 0x88
-# stwa <x4=%g1,[<x=%i0] 0x88
+# qhasm:   *(swapendian int32 *) x = x3
+# asm 1: stwa <x3=int64#7,[<x=int64#1] 0x88
+# asm 2: stwa <x3=%g1,[<x=%i0] 0x88
 stwa %g1,[%i0] 0x88
 
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(int32 *) (x + 0) = x5
-# stw <x5=int64#8,[<x=int64#1+0]
-# stw <x5=%g4,[<x=%i0+0]
-stw %g4,[%i0+0]
+# qhasm:   *(swapendian int32 *) x = x4
+# asm 1: stwa <x4=int64#9,[<x=int64#1] 0x88
+# asm 2: stwa <x4=%g5,[<x=%i0] 0x88
+stwa %g5,[%i0] 0x88
+
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
+add %i0,4,%i0
 
-#   x += 20
-# add <x=int64#1,20,>x=int64#1
-# add <x=%i0,20,>x=%i0
+# qhasm:   *(int32 *) (x + 0) = x5
+# asm 1: stw <x5=int64#6,[<x=int64#1+0]
+# asm 2: stw <x5=%i5,[<x=%i0+0]
+stw %i5,[%i0+0]
+
+# qhasm:   x += 20
+# asm 1: add <x=int64#1,20,>x=int64#1
+# asm 2: add <x=%i0,20,>x=%i0
 add %i0,20,%i0
 
-#   *(int32 *) (x + 0) = x10
-# stw <x10=int64#9,[<x=int64#1+0]
-# stw <x10=%g5,[<x=%i0+0]
-stw %g5,[%i0+0]
-
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
-add %i0,4,%i0
+# qhasm:   *(int32 *) (x + 0) = x10
+# asm 1: stw <x10=int64#8,[<x=int64#1+0]
+# asm 2: stw <x10=%g4,[<x=%i0+0]
+stw %g4,[%i0+0]
 
-#   *(swapendian int32 *) x = x11
-# stwa <x11=int64#10,[<x=int64#1] 0x88
-# stwa <x11=%o0,[<x=%i0] 0x88
-stwa %o0,[%i0] 0x88
-
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(swapendian int32 *) x = x12
-# stwa <x12=int64#11,[<x=int64#1] 0x88
-# stwa <x12=%o1,[<x=%i0] 0x88
+# qhasm:   *(swapendian int32 *) x = x11
+# asm 1: stwa <x11=int64#11,[<x=int64#1] 0x88
+# asm 2: stwa <x11=%o1,[<x=%i0] 0x88
 stwa %o1,[%i0] 0x88
 
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(swapendian int32 *) x = x13
-# stwa <x13=int64#12,[<x=int64#1] 0x88
-# stwa <x13=%o2,[<x=%i0] 0x88
+# qhasm:   *(swapendian int32 *) x = x12
+# asm 1: stwa <x12=int64#12,[<x=int64#1] 0x88
+# asm 2: stwa <x12=%o2,[<x=%i0] 0x88
 stwa %o2,[%i0] 0x88
 
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
+add %i0,4,%i0
+
+# qhasm:   *(swapendian int32 *) x = x13
+# asm 1: stwa <x13=int64#13,[<x=int64#1] 0x88
+# asm 2: stwa <x13=%o3,[<x=%i0] 0x88
+stwa %o3,[%i0] 0x88
+
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(swapendian int32 *) x = x14
-# stwa <x14=int64#2,[<x=int64#1] 0x88
-# stwa <x14=%i1,[<x=%i0] 0x88
+# qhasm:   *(swapendian int32 *) x = x14
+# asm 1: stwa <x14=int64#2,[<x=int64#1] 0x88
+# asm 2: stwa <x14=%i1,[<x=%i0] 0x88
 stwa %i1,[%i0] 0x88
 
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(int32 *) (x + 0) = x15
-# stw <x15=int64#13,[<x=int64#1+0]
-# stw <x15=%o3,[<x=%i0+0]
-stw %o3,[%i0+0]
+# qhasm:   *(int32 *) (x + 0) = x15
+# asm 1: stw <x15=int64#10,[<x=int64#1+0]
+# asm 2: stw <x15=%o0,[<x=%i0+0]
+stw %o0,[%i0+0]
 
-# leave
+# qhasm: leave
 ret
 restore
 
-# enter ECRYPT_keystream_bytes
+# qhasm: enter ECRYPT_keystream_bytes
 .section ".text"
 .align 32
 .global ECRYPT_keystream_bytes
 ECRYPT_keystream_bytes:
 save %sp,-288,%sp
 
-# bytes = arg3
-# add %g0,<arg3=int64#3,>bytes=int64#6
-# add %g0,<arg3=%i2,>bytes=%i5
-add %g0,%i2,%i5
-
-# m = arg2
-# add %g0,<arg2=int64#2,>m=int64#4
-# add %g0,<arg2=%i1,>m=%i3
-add %g0,%i1,%i3
-
-# out = arg2
-# add %g0,<arg2=int64#2,>out=int64#5
-# add %g0,<arg2=%i1,>out=%i4
-add %g0,%i1,%i4
-
-# flags bytes - 0
-# subcc <bytes=int64#6,0,%g0
-# subcc <bytes=%i5,0,%g0
-subcc %i5,0,%g0
+# qhasm: bytes = arg3
+# asm 1: add %g0,<arg3=int64#3,>bytes=int64#5
+# asm 2: add %g0,<arg3=%i2,>bytes=%i4
+add %g0,%i2,%i4
+
+# qhasm: m = arg2
+# asm 1: add %g0,<arg2=int64#2,>m=int64#6
+# asm 2: add %g0,<arg2=%i1,>m=%i5
+add %g0,%i1,%i5
+
+# qhasm: out = arg2
+# asm 1: add %g0,<arg2=int64#2,>out=int64#2
+# asm 2: add %g0,<arg2=%i1,>out=%i1
+add %g0,%i1,%i1
+
+# qhasm:               unsigned>? bytes - 0
+# asm 1: subcc <bytes=int64#5,0,%g0
+# asm 2: subcc <bytes=%i4,0,%g0
+subcc %i4,0,%g0
 
-# goto done if unsigned<=
+# qhasm: goto done if !unsigned>
 bleu,pt %xcc,._done
 nop
 
-#   a = 0
-# add %g0,0,>a=int64#3
-# add %g0,0,>a=%i2
+# qhasm:   a = 0
+# asm 1: add %g0,0,>a=int64#3
+# asm 2: add %g0,0,>a=%i2
 add %g0,0,%i2
 
-#   i = bytes
-# add %g0,<bytes=int64#6,>i=int64#2
-# add %g0,<bytes=%i5,>i=%i1
-add %g0,%i5,%i1
+# qhasm:   i = bytes
+# asm 1: add %g0,<bytes=int64#5,>i=int64#4
+# asm 2: add %g0,<bytes=%i4,>i=%i3
+add %g0,%i4,%i3
 
-#   zeroloop#
+# qhasm:   zeroloop:
 ._zeroloop:
 
-#     *(int8 *) (out + 0) = a
-# stb <a=int64#3,[<out=int64#5+0]
-# stb <a=%i2,[<out=%i4+0]
-stb %i2,[%i4+0]
-
-#     out += 1
-# add <out=int64#5,1,>out=int64#5
-# add <out=%i4,1,>out=%i4
-add %i4,1,%i4
-
-#     flags i -= 1
-# subcc <i=int64#2,1,>i=int64#2
-# subcc <i=%i1,1,>i=%i1
-subcc %i1,1,%i1
+# qhasm:     *(int8 *) (out + 0) = a
+# asm 1: stb <a=int64#3,[<out=int64#2+0]
+# asm 2: stb <a=%i2,[<out=%i1+0]
+stb %i2,[%i1+0]
+
+# qhasm:     out += 1
+# asm 1: add <out=int64#2,1,>out=int64#2
+# asm 2: add <out=%i1,1,>out=%i1
+add %i1,1,%i1
+
+# qhasm:                    unsigned>? i -= 1
+# asm 1: subcc <i=int64#4,1,>i=int64#4
+# asm 2: subcc <i=%i3,1,>i=%i3
+subcc %i3,1,%i3
 
-#   goto zeroloop if unsigned>
+# qhasm:   goto zeroloop if unsigned>
 bgu,pt %xcc,._zeroloop
 nop
 
-#   out -= bytes
-# sub <out=int64#5,<bytes=int64#6,>out=int64#5
-# sub <out=%i4,<bytes=%i5,>out=%i4
-sub %i4,%i5,%i4
+# qhasm:   out -= bytes
+# asm 1: sub <out=int64#2,<bytes=int64#5,>out=int64#2
+# asm 2: sub <out=%i1,<bytes=%i4,>out=%i1
+sub %i1,%i4,%i1
 
-# goto bytesatleast1
+# qhasm: goto bytesatleast1
 b ._bytesatleast1
 nop
 
-# enter ECRYPT_decrypt_bytes
+# qhasm: enter ECRYPT_decrypt_bytes
 .section ".text"
 .align 32
 .global ECRYPT_decrypt_bytes
 ECRYPT_decrypt_bytes:
 save %sp,-288,%sp
 
-# bytes = arg4
-# add %g0,<arg4=int64#4,>bytes=int64#6
-# add %g0,<arg4=%i3,>bytes=%i5
-add %g0,%i3,%i5
-
-# m = arg2
-# add %g0,<arg2=int64#2,>m=int64#4
-# add %g0,<arg2=%i1,>m=%i3
-add %g0,%i1,%i3
-
-# out = arg3
-# add %g0,<arg3=int64#3,>out=int64#5
-# add %g0,<arg3=%i2,>out=%i4
-add %g0,%i2,%i4
-
-# flags bytes - 0
-# subcc <bytes=int64#6,0,%g0
-# subcc <bytes=%i5,0,%g0
-subcc %i5,0,%g0
+# qhasm: bytes = arg4
+# asm 1: add %g0,<arg4=int64#4,>bytes=int64#5
+# asm 2: add %g0,<arg4=%i3,>bytes=%i4
+add %g0,%i3,%i4
+
+# qhasm: m = arg2
+# asm 1: add %g0,<arg2=int64#2,>m=int64#6
+# asm 2: add %g0,<arg2=%i1,>m=%i5
+add %g0,%i1,%i5
+
+# qhasm: out = arg3
+# asm 1: add %g0,<arg3=int64#3,>out=int64#2
+# asm 2: add %g0,<arg3=%i2,>out=%i1
+add %g0,%i2,%i1
+
+# qhasm:               unsigned>? bytes - 0
+# asm 1: subcc <bytes=int64#5,0,%g0
+# asm 2: subcc <bytes=%i4,0,%g0
+subcc %i4,0,%g0
 
-# goto done if unsigned<=
+# qhasm: goto done if !unsigned>
 bleu,pt %xcc,._done
 nop
 
-# goto bytesatleast1
+# qhasm: goto bytesatleast1
 b ._bytesatleast1
 nop
 
-# enter ECRYPT_encrypt_bytes
+# qhasm: enter ECRYPT_encrypt_bytes
 .section ".text"
 .align 32
 .global ECRYPT_encrypt_bytes
 ECRYPT_encrypt_bytes:
 save %sp,-288,%sp
 
-# bytes = arg4
-# add %g0,<arg4=int64#4,>bytes=int64#6
-# add %g0,<arg4=%i3,>bytes=%i5
-add %g0,%i3,%i5
-
-# m = arg2
-# add %g0,<arg2=int64#2,>m=int64#4
-# add %g0,<arg2=%i1,>m=%i3
-add %g0,%i1,%i3
-
-# out = arg3
-# add %g0,<arg3=int64#3,>out=int64#5
-# add %g0,<arg3=%i2,>out=%i4
-add %g0,%i2,%i4
-
-# flags bytes - 0
-# subcc <bytes=int64#6,0,%g0
-# subcc <bytes=%i5,0,%g0
-subcc %i5,0,%g0
+# qhasm: bytes = arg4
+# asm 1: add %g0,<arg4=int64#4,>bytes=int64#5
+# asm 2: add %g0,<arg4=%i3,>bytes=%i4
+add %g0,%i3,%i4
+
+# qhasm: m = arg2
+# asm 1: add %g0,<arg2=int64#2,>m=int64#6
+# asm 2: add %g0,<arg2=%i1,>m=%i5
+add %g0,%i1,%i5
+
+# qhasm: out = arg3
+# asm 1: add %g0,<arg3=int64#3,>out=int64#2
+# asm 2: add %g0,<arg3=%i2,>out=%i1
+add %g0,%i2,%i1
+
+# qhasm:               unsigned>? bytes - 0
+# asm 1: subcc <bytes=int64#5,0,%g0
+# asm 2: subcc <bytes=%i4,0,%g0
+subcc %i4,0,%g0
 
-# goto done if unsigned<=
+# qhasm: goto done if !unsigned>
 bleu,pt %xcc,._done
 nop
 
-# bytesatleast1#
+# qhasm: bytesatleast1:
 ._bytesatleast1:
 
-#   flags bytes - 64
-# subcc <bytes=int64#6,64,%g0
-# subcc <bytes=%i5,64,%g0
-subcc %i5,64,%g0
+# qhasm:                           unsigned<? bytes - 64
+# asm 1: subcc <bytes=int64#5,64,%g0
+# asm 2: subcc <bytes=%i4,64,%g0
+subcc %i4,64,%g0
 
-#   goto bytesatleast64 if unsigned>=
+# qhasm:   goto bytesatleast64 if !unsigned<
 bgeu,pt %xcc,._bytesatleast64
 nop
 
-#     ctarget = out
-# stx <out=int64#5,[%fp+2023->ctarget=stack64#1]
-# stx <out=%i4,[%fp+2023->ctarget=64]
-stx %i4,[%fp+2023-64]
-
-#     out = &tmp
-# add %fp,1967->tmp=stack512#1,>out=int64#5
-# add %fp,1967->tmp=0,>out=%i4
-add %fp,1967-0,%i4
-
-#     i = 0
-# add %g0,0,>i=int64#2
-# add %g0,0,>i=%i1
-add %g0,0,%i1
+# qhasm:     ctarget = out
+# asm 1: stx <out=int64#2,[%fp+2023->ctarget=stack64#1]
+# asm 2: stx <out=%i1,[%fp+2023->ctarget=0]
+stx %i1,[%fp+2023-0]
+
+# qhasm:     out = &tmp
+# asm 1: add %fp,1967->tmp=stack512#1,>out=int64#2
+# asm 2: add %fp,1967->tmp=48,>out=%i1
+add %fp,1967-48,%i1
+
+# qhasm:     i = 0
+# asm 1: add %g0,0,>i=int64#4
+# asm 2: add %g0,0,>i=%i3
+add %g0,0,%i3
 
-#     mcopyloop#
+# qhasm:     mcopyloop:
 ._mcopyloop:
 
-#       a = *(int8 *) (m + i)
-# ldsb [<m=int64#4+<i=int64#2],>a=int64#3
-# ldsb [<m=%i3+<i=%i1],>a=%i2
-ldsb [%i3+%i1],%i2
-
-#       *(int8 *) (out + i) = a
-# stb <a=int64#3,[<out=int64#5+<i=int64#2]
-# stb <a=%i2,[<out=%i4+<i=%i1]
-stb %i2,[%i4+%i1]
-
-#       i += 1
-# add <i=int64#2,1,>i=int64#2
-# add <i=%i1,1,>i=%i1
-add %i1,1,%i1
-
-#       flags i - bytes
-# subcc <i=int64#2,<bytes=int64#6,%g0
-# subcc <i=%i1,<bytes=%i5,%g0
-subcc %i1,%i5,%g0
+# qhasm:       a = *(int8 *) (m + i)
+# asm 1: ldsb [<m=int64#6+<i=int64#4],>a=int64#3
+# asm 2: ldsb [<m=%i5+<i=%i3],>a=%i2
+ldsb [%i5+%i3],%i2
+
+# qhasm:       *(int8 *) (out + i) = a
+# asm 1: stb <a=int64#3,[<out=int64#2+<i=int64#4]
+# asm 2: stb <a=%i2,[<out=%i1+<i=%i3]
+stb %i2,[%i1+%i3]
+
+# qhasm:       i += 1
+# asm 1: add <i=int64#4,1,>i=int64#4
+# asm 2: add <i=%i3,1,>i=%i3
+add %i3,1,%i3
+
+# qhasm:                       unsigned<? i - bytes
+# asm 1: subcc <i=int64#4,<bytes=int64#5,%g0
+# asm 2: subcc <i=%i3,<bytes=%i4,%g0
+subcc %i3,%i4,%g0
 
-#     goto mcopyloop if unsigned<
+# qhasm:     goto mcopyloop if unsigned<
 blu,pt %xcc,._mcopyloop
 nop
 
-#     m = &tmp
-# add %fp,1967->tmp=stack512#1,>m=int64#4
-# add %fp,1967->tmp=0,>m=%i3
-add %fp,1967-0,%i3
+# qhasm:     m = &tmp
+# asm 1: add %fp,1967->tmp=stack512#1,>m=int64#6
+# asm 2: add %fp,1967->tmp=48,>m=%i5
+add %fp,1967-48,%i5
 
-#   bytesatleast64#
+# qhasm:   bytesatleast64:
 ._bytesatleast64:
 
-#     x0 = *(uint32 *) (x + 0)
-# lduw [<x=int64#1+0],>x0=int64#9
-# lduw [<x=%i0+0],>x0=%g5
-lduw [%i0+0],%g5
-
-#     x1 = *(uint32 *) (x + 4)
-# lduw [<x=int64#1+4],>x1=int64#10
-# lduw [<x=%i0+4],>x1=%o0
-lduw [%i0+4],%o0
-
-#     x2 = *(uint32 *) (x + 8)
-# lduw [<x=int64#1+8],>x2=int64#11
-# lduw [<x=%i0+8],>x2=%o1
-lduw [%i0+8],%o1
-
-#     x3 = *(uint32 *) (x + 12)
-# lduw [<x=int64#1+12],>x3=int64#12
-# lduw [<x=%i0+12],>x3=%o2
-lduw [%i0+12],%o2
-
-#     x4 = *(uint32 *) (x + 16)
-# lduw [<x=int64#1+16],>x4=int64#13
-# lduw [<x=%i0+16],>x4=%o3
-lduw [%i0+16],%o3
-
-#     x5 = *(uint32 *) (x + 20)
-# lduw [<x=int64#1+20],>x5=int64#14
-# lduw [<x=%i0+20],>x5=%o4
-lduw [%i0+20],%o4
-
-#     x6 = *(uint32 *) (x + 24)
-# lduw [<x=int64#1+24],>x6=int64#15
-# lduw [<x=%i0+24],>x6=%o5
-lduw [%i0+24],%o5
-
-#     x7 = *(uint32 *) (x + 28)
-# lduw [<x=int64#1+28],>x7=int64#16
-# lduw [<x=%i0+28],>x7=%o7
-lduw [%i0+28],%o7
-
-#     x8 = *(uint32 *) (x + 32)
-# lduw [<x=int64#1+32],>x8=int64#17
-# lduw [<x=%i0+32],>x8=%l0
-lduw [%i0+32],%l0
-
-#     x9 = *(uint32 *) (x + 36)
-# lduw [<x=int64#1+36],>x9=int64#18
-# lduw [<x=%i0+36],>x9=%l1
-lduw [%i0+36],%l1
-
-#     x10 = *(uint32 *) (x + 40)
-# lduw [<x=int64#1+40],>x10=int64#19
-# lduw [<x=%i0+40],>x10=%l2
-lduw [%i0+40],%l2
-
-#     x11 = *(uint32 *) (x + 44)
-# lduw [<x=int64#1+44],>x11=int64#20
-# lduw [<x=%i0+44],>x11=%l3
-lduw [%i0+44],%l3
-
-#     x12 = *(uint32 *) (x + 48)
-# lduw [<x=int64#1+48],>x12=int64#21
-# lduw [<x=%i0+48],>x12=%l4
-lduw [%i0+48],%l4
-
-#     x13 = *(uint32 *) (x + 52)
-# lduw [<x=int64#1+52],>x13=int64#22
-# lduw [<x=%i0+52],>x13=%l5
-lduw [%i0+52],%l5
-
-#     x14 = *(uint32 *) (x + 56)
-# lduw [<x=int64#1+56],>x14=int64#23
-# lduw [<x=%i0+56],>x14=%l6
-lduw [%i0+56],%l6
-
-#     x15 = *(uint32 *) (x + 60)
-# lduw [<x=int64#1+60],>x15=int64#24
-# lduw [<x=%i0+60],>x15=%l7
-lduw [%i0+60],%l7
-
-#     i = 20
-# add %g0,20,>i=int64#2
-# add %g0,20,>i=%i1
-add %g0,20,%i1
-
-#     bytes_stack = bytes
-# stx <bytes=int64#6,[%fp+2023->bytes_stack=stack64#2]
-# stx <bytes=%i5,[%fp+2023->bytes_stack=72]
-stx %i5,[%fp+2023-72]
-
-#     out_stack = out
-# stx <out=int64#5,[%fp+2023->out_stack=stack64#3]
-# stx <out=%i4,[%fp+2023->out_stack=80]
-stx %i4,[%fp+2023-80]
-
-#     m_stack = m
-# stx <m=int64#4,[%fp+2023->m_stack=stack64#4]
-# stx <m=%i3,[%fp+2023->m_stack=88]
-stx %i3,[%fp+2023-88]
-
-#     x_stack = x
-# stx <x=int64#1,[%fp+2023->x_stack=stack64#5]
-# stx <x=%i0,[%fp+2023->x_stack=96]
-stx %i0,[%fp+2023-96]
+# qhasm:     x0 = *(uint32 *) (x + 0)
+# asm 1: lduw [<x=int64#1+0],>x0=int64#3
+# asm 2: lduw [<x=%i0+0],>x0=%i2
+lduw [%i0+0],%i2
+
+# qhasm:     x1 = *(uint32 *) (x + 4)
+# asm 1: lduw [<x=int64#1+4],>x1=int64#7
+# asm 2: lduw [<x=%i0+4],>x1=%g1
+lduw [%i0+4],%g1
+
+# qhasm:     x2 = *(uint32 *) (x + 8)
+# asm 1: lduw [<x=int64#1+8],>x2=int64#8
+# asm 2: lduw [<x=%i0+8],>x2=%g4
+lduw [%i0+8],%g4
+
+# qhasm:     x3 = *(uint32 *) (x + 12)
+# asm 1: lduw [<x=int64#1+12],>x3=int64#9
+# asm 2: lduw [<x=%i0+12],>x3=%g5
+lduw [%i0+12],%g5
+
+# qhasm:     x4 = *(uint32 *) (x + 16)
+# asm 1: lduw [<x=int64#1+16],>x4=int64#10
+# asm 2: lduw [<x=%i0+16],>x4=%o0
+lduw [%i0+16],%o0
+
+# qhasm:     x5 = *(uint32 *) (x + 20)
+# asm 1: lduw [<x=int64#1+20],>x5=int64#11
+# asm 2: lduw [<x=%i0+20],>x5=%o1
+lduw [%i0+20],%o1
+
+# qhasm:     x6 = *(uint32 *) (x + 24)
+# asm 1: lduw [<x=int64#1+24],>x6=int64#12
+# asm 2: lduw [<x=%i0+24],>x6=%o2
+lduw [%i0+24],%o2
+
+# qhasm:     x7 = *(uint32 *) (x + 28)
+# asm 1: lduw [<x=int64#1+28],>x7=int64#13
+# asm 2: lduw [<x=%i0+28],>x7=%o3
+lduw [%i0+28],%o3
+
+# qhasm:     x8 = *(uint32 *) (x + 32)
+# asm 1: lduw [<x=int64#1+32],>x8=int64#14
+# asm 2: lduw [<x=%i0+32],>x8=%o4
+lduw [%i0+32],%o4
+
+# qhasm:     x9 = *(uint32 *) (x + 36)
+# asm 1: lduw [<x=int64#1+36],>x9=int64#15
+# asm 2: lduw [<x=%i0+36],>x9=%o5
+lduw [%i0+36],%o5
+
+# qhasm:     x10 = *(uint32 *) (x + 40)
+# asm 1: lduw [<x=int64#1+40],>x10=int64#16
+# asm 2: lduw [<x=%i0+40],>x10=%o7
+lduw [%i0+40],%o7
+
+# qhasm:     x11 = *(uint32 *) (x + 44)
+# asm 1: lduw [<x=int64#1+44],>x11=int64#17
+# asm 2: lduw [<x=%i0+44],>x11=%l0
+lduw [%i0+44],%l0
+
+# qhasm:     x12 = *(uint32 *) (x + 48)
+# asm 1: lduw [<x=int64#1+48],>x12=int64#18
+# asm 2: lduw [<x=%i0+48],>x12=%l1
+lduw [%i0+48],%l1
+
+# qhasm:     x13 = *(uint32 *) (x + 52)
+# asm 1: lduw [<x=int64#1+52],>x13=int64#19
+# asm 2: lduw [<x=%i0+52],>x13=%l2
+lduw [%i0+52],%l2
+
+# qhasm:     x14 = *(uint32 *) (x + 56)
+# asm 1: lduw [<x=int64#1+56],>x14=int64#20
+# asm 2: lduw [<x=%i0+56],>x14=%l3
+lduw [%i0+56],%l3
+
+# qhasm:     x15 = *(uint32 *) (x + 60)
+# asm 1: lduw [<x=int64#1+60],>x15=int64#21
+# asm 2: lduw [<x=%i0+60],>x15=%l4
+lduw [%i0+60],%l4
+
+# qhasm:     i = 20
+# asm 1: add %g0,20,>i=int64#4
+# asm 2: add %g0,20,>i=%i3
+add %g0,20,%i3
+
+# qhasm:     bytes_stack = bytes
+# asm 1: stx <bytes=int64#5,[%fp+2023->bytes_stack=stack64#2]
+# asm 2: stx <bytes=%i4,[%fp+2023->bytes_stack=8]
+stx %i4,[%fp+2023-8]
+
+# qhasm:     out_stack = out
+# asm 1: stx <out=int64#2,[%fp+2023->out_stack=stack64#3]
+# asm 2: stx <out=%i1,[%fp+2023->out_stack=16]
+stx %i1,[%fp+2023-16]
+
+# qhasm:     m_stack = m
+# asm 1: stx <m=int64#6,[%fp+2023->m_stack=stack64#4]
+# asm 2: stx <m=%i5,[%fp+2023->m_stack=24]
+stx %i5,[%fp+2023-24]
+
+# qhasm:     x_stack = x
+# asm 1: stx <x=int64#1,[%fp+2023->x_stack=stack64#5]
+# asm 2: stx <x=%i0,[%fp+2023->x_stack=32]
+stx %i0,[%fp+2023-32]
 
-#     mainloop#
+# qhasm:     mainloop:
 ._mainloop:
 
-# y4 = x0 + x12
-# add <x0=int64#9,<x12=int64#21,>y4=int64#3
-# add <x0=%g5,<x12=%l4,>y4=%i2
-add %g5,%l4,%i2
-
-# 		y9 = x5 + x1
-# add <x5=int64#14,<x1=int64#10,>y9=int64#6
-# add <x5=%o4,<x1=%o0,>y9=%i5
-add %o4,%o0,%i5
-
-# z4 = (uint32) y4 << 7
-# sll <y4=int64#3,7,>z4=int64#1
-# sll <y4=%i2,7,>z4=%i0
-sll %i2,7,%i0
-
-# 				y14 = x10 + x6
-# add <x10=int64#19,<x6=int64#15,>y14=int64#7
-# add <x10=%l2,<x6=%o5,>y14=%g1
-add %l2,%o5,%g1
-
-# y4 = (uint32) y4 >> 25
-# srl <y4=int64#3,25,>y4=int64#4
-# srl <y4=%i2,25,>y4=%i3
-srl %i2,25,%i3
-
-# 						y3 = x15 + x11
-# add <x15=int64#24,<x11=int64#20,>y3=int64#5
-# add <x15=%l7,<x11=%l3,>y3=%i4
-add %l7,%l3,%i4
-
-# 		z9 = (uint32) y9 << 7
-# sll <y9=int64#6,7,>z9=int64#3
-# sll <y9=%i5,7,>z9=%i2
-sll %i5,7,%i2
-
-# y4 |= z4
-# or  <y4=int64#4,<z4=int64#1,>y4=int64#1
-# or  <y4=%i3,<z4=%i0,>y4=%i0
-or  %i3,%i0,%i0
-
-# 		y9 = (uint32) y9 >> 25
-# srl <y9=int64#6,25,>y9=int64#6
-# srl <y9=%i5,25,>y9=%i5
+# qhasm: y4 = x0 + x12
+# asm 1: add <x0=int64#3,<x12=int64#18,>y4=int64#1
+# asm 2: add <x0=%i2,<x12=%l1,>y4=%i0
+add %i2,%l1,%i0
+
+# qhasm: 		y9 = x5 + x1
+# asm 1: add <x5=int64#11,<x1=int64#7,>y9=int64#2
+# asm 2: add <x5=%o1,<x1=%g1,>y9=%i1
+add %o1,%g1,%i1
+
+# qhasm: z4 = (uint32) y4 << 7
+# asm 1: sll <y4=int64#1,7,>z4=int64#5
+# asm 2: sll <y4=%i0,7,>z4=%i4
+sll %i0,7,%i4
+
+# qhasm: 				y14 = x10 + x6
+# asm 1: add <x10=int64#16,<x6=int64#12,>y14=int64#6
+# asm 2: add <x10=%o7,<x6=%o2,>y14=%i5
+add %o7,%o2,%i5
+
+# qhasm: y4 = (uint32) y4 >> 25
+# asm 1: srl <y4=int64#1,25,>y4=int64#1
+# asm 2: srl <y4=%i0,25,>y4=%i0
+srl %i0,25,%i0
+
+# qhasm: 						y3 = x15 + x11
+# asm 1: add <x15=int64#21,<x11=int64#17,>y3=int64#22
+# asm 2: add <x15=%l4,<x11=%l0,>y3=%l5
+add %l4,%l0,%l5
+
+# qhasm: 		z9 = (uint32) y9 << 7
+# asm 1: sll <y9=int64#2,7,>z9=int64#23
+# asm 2: sll <y9=%i1,7,>z9=%l6
+sll %i1,7,%l6
+
+# qhasm: y4 |= z4
+# asm 1: or  <y4=int64#1,<z4=int64#5,>y4=int64#1
+# asm 2: or  <y4=%i0,<z4=%i4,>y4=%i0
+or  %i0,%i4,%i0
+
+# qhasm: 		y9 = (uint32) y9 >> 25
+# asm 1: srl <y9=int64#2,25,>y9=int64#2
+# asm 2: srl <y9=%i1,25,>y9=%i1
+srl %i1,25,%i1
+
+# qhasm: x4 ^= y4
+# asm 1: xor <x4=int64#10,<y4=int64#1,>x4=int64#1
+# asm 2: xor <x4=%o0,<y4=%i0,>x4=%i0
+xor %o0,%i0,%i0
+
+# qhasm: 				z14 = (uint32) y14 << 7
+# asm 1: sll <y14=int64#6,7,>z14=int64#5
+# asm 2: sll <y14=%i5,7,>z14=%i4
+sll %i5,7,%i4
+
+# qhasm: 		y9 |= z9
+# asm 1: or  <y9=int64#2,<z9=int64#23,>y9=int64#2
+# asm 2: or  <y9=%i1,<z9=%l6,>y9=%i1
+or  %i1,%l6,%i1
+
+# qhasm: 				y14 = (uint32) y14 >> 25
+# asm 1: srl <y14=int64#6,25,>y14=int64#6
+# asm 2: srl <y14=%i5,25,>y14=%i5
 srl %i5,25,%i5
 
-# x4 ^= y4
-# xor <x4=int64#13,<y4=int64#1,>x4=int64#13
-# xor <x4=%o3,<y4=%i0,>x4=%o3
-xor %o3,%i0,%o3
-
-# 				z14 = (uint32) y14 << 7
-# sll <y14=int64#7,7,>z14=int64#4
-# sll <y14=%g1,7,>z14=%i3
-sll %g1,7,%i3
-
-# 		y9 |= z9
-# or  <y9=int64#6,<z9=int64#3,>y9=int64#3
-# or  <y9=%i5,<z9=%i2,>y9=%i2
-or  %i5,%i2,%i2
-
-# 				y14 = (uint32) y14 >> 25
-# srl <y14=int64#7,25,>y14=int64#7
-# srl <y14=%g1,25,>y14=%g1
-srl %g1,25,%g1
-
-# y8 = x4 + x0
-# add <x4=int64#13,<x0=int64#9,>y8=int64#6
-# add <x4=%o3,<x0=%g5,>y8=%i5
-add %o3,%g5,%i5
-
-# 						z3 = (uint32) y3 << 7
-# sll <y3=int64#5,7,>z3=int64#1
-# sll <y3=%i4,7,>z3=%i0
-sll %i4,7,%i0
-
-# 		x9 ^= y9
-# xor <x9=int64#18,<y9=int64#3,>x9=int64#18
-# xor <x9=%l1,<y9=%i2,>x9=%l1
-xor %l1,%i2,%l1
-
-# 						y3 = (uint32) y3 >> 25
-# srl <y3=int64#5,25,>y3=int64#5
-# srl <y3=%i4,25,>y3=%i4
-srl %i4,25,%i4
-
-# 				y14 |= z14
-# or  <y14=int64#7,<z14=int64#4,>y14=int64#4
-# or  <y14=%g1,<z14=%i3,>y14=%i3
-or  %g1,%i3,%i3
-
-# z8 = (uint32) y8 << 9
-# sll <y8=int64#6,9,>z8=int64#3
-# sll <y8=%i5,9,>z8=%i2
-sll %i5,9,%i2
-
-# 		y13 = x9 + x5
-# add <x9=int64#18,<x5=int64#14,>y13=int64#7
-# add <x9=%l1,<x5=%o4,>y13=%g1
-add %l1,%o4,%g1
-
-# y8 = (uint32) y8 >> 23
-# srl <y8=int64#6,23,>y8=int64#6
-# srl <y8=%i5,23,>y8=%i5
-srl %i5,23,%i5
-
-# 				x14 ^= y14
-# xor <x14=int64#23,<y14=int64#4,>x14=int64#23
-# xor <x14=%l6,<y14=%i3,>x14=%l6
-xor %l6,%i3,%l6
-
-# 						y3 |= z3
-# or  <y3=int64#5,<z3=int64#1,>y3=int64#1
-# or  <y3=%i4,<z3=%i0,>y3=%i0
-or  %i4,%i0,%i0
-
-# 				y2 = x14 + x10
-# add <x14=int64#23,<x10=int64#19,>y2=int64#5
-# add <x14=%l6,<x10=%l2,>y2=%i4
-add %l6,%l2,%i4
-
-# 		z13 = (uint32) y13 << 9
-# sll <y13=int64#7,9,>z13=int64#4
-# sll <y13=%g1,9,>z13=%i3
-sll %g1,9,%i3
-
-# 						x3 ^= y3
-# xor <x3=int64#12,<y3=int64#1,>x3=int64#12
-# xor <x3=%o2,<y3=%i0,>x3=%o2
-xor %o2,%i0,%o2
-
-# 		y13 = (uint32) y13 >> 23
-# srl <y13=int64#7,23,>y13=int64#7
-# srl <y13=%g1,23,>y13=%g1
-srl %g1,23,%g1
-
-# y8 |= z8
-# or  <y8=int64#6,<z8=int64#3,>y8=int64#3
-# or  <y8=%i5,<z8=%i2,>y8=%i2
-or  %i5,%i2,%i2
-
-# 				z2 = (uint32) y2 << 9
-# sll <y2=int64#5,9,>z2=int64#1
-# sll <y2=%i4,9,>z2=%i0
-sll %i4,9,%i0
-
-# 						y7 = x3 + x15
-# add <x3=int64#12,<x15=int64#24,>y7=int64#6
-# add <x3=%o2,<x15=%l7,>y7=%i5
-add %o2,%l7,%i5
-
-# 				y2 = (uint32) y2 >> 23
-# srl <y2=int64#5,23,>y2=int64#5
-# srl <y2=%i4,23,>y2=%i4
-srl %i4,23,%i4
-
-# x8 ^= y8
-# xor <x8=int64#17,<y8=int64#3,>x8=int64#17
-# xor <x8=%l0,<y8=%i2,>x8=%l0
-xor %l0,%i2,%l0
-
-# 		y13 |= z13
-# or  <y13=int64#7,<z13=int64#4,>y13=int64#4
-# or  <y13=%g1,<z13=%i3,>y13=%i3
-or  %g1,%i3,%i3
-
-# y12 = x8 + x4
-# add <x8=int64#17,<x4=int64#13,>y12=int64#7
-# add <x8=%l0,<x4=%o3,>y12=%g1
-add %l0,%o3,%g1
-
-# 						z7 = (uint32) y7 << 9
-# sll <y7=int64#6,9,>z7=int64#3
-# sll <y7=%i5,9,>z7=%i2
-sll %i5,9,%i2
-
-# 		x13 ^= y13
-# xor <x13=int64#22,<y13=int64#4,>x13=int64#22
-# xor <x13=%l5,<y13=%i3,>x13=%l5
-xor %l5,%i3,%l5
-
-# 						y7 = (uint32) y7 >> 23
-# srl <y7=int64#6,23,>y7=int64#6
-# srl <y7=%i5,23,>y7=%i5
-srl %i5,23,%i5
-
-# 				y2 |= z2
-# or  <y2=int64#5,<z2=int64#1,>y2=int64#1
-# or  <y2=%i4,<z2=%i0,>y2=%i0
-or  %i4,%i0,%i0
-
-# z12 = (uint32) y12 << 13
-# sll <y12=int64#7,13,>z12=int64#4
-# sll <y12=%g1,13,>z12=%i3
-sll %g1,13,%i3
-
-# 		y1 = x13 + x9
-# add <x13=int64#22,<x9=int64#18,>y1=int64#5
-# add <x13=%l5,<x9=%l1,>y1=%i4
-add %l5,%l1,%i4
-
-# y12 = (uint32) y12 >> 19
-# srl <y12=int64#7,19,>y12=int64#7
-# srl <y12=%g1,19,>y12=%g1
-srl %g1,19,%g1
-
-# 				x2 ^= y2
-# xor <x2=int64#11,<y2=int64#1,>x2=int64#11
-# xor <x2=%o1,<y2=%i0,>x2=%o1
-xor %o1,%i0,%o1
-
-# 						y7 |= z7
-# or  <y7=int64#6,<z7=int64#3,>y7=int64#3
-# or  <y7=%i5,<z7=%i2,>y7=%i2
-or  %i5,%i2,%i2
-
-# 				y6 = x2 + x14
-# add <x2=int64#11,<x14=int64#23,>y6=int64#6
-# add <x2=%o1,<x14=%l6,>y6=%i5
-add %o1,%l6,%i5
-
-# 		z1 = (uint32) y1 << 13
-# sll <y1=int64#5,13,>z1=int64#1
-# sll <y1=%i4,13,>z1=%i0
-sll %i4,13,%i0
-
-# 						x7 ^= y7
-# xor <x7=int64#16,<y7=int64#3,>x7=int64#16
-# xor <x7=%o7,<y7=%i2,>x7=%o7
-xor %o7,%i2,%o7
-
-# 		y1 = (uint32) y1 >> 19
-# srl <y1=int64#5,19,>y1=int64#5
-# srl <y1=%i4,19,>y1=%i4
-srl %i4,19,%i4
-
-# y12 |= z12
-# or  <y12=int64#7,<z12=int64#4,>y12=int64#4
-# or  <y12=%g1,<z12=%i3,>y12=%i3
-or  %g1,%i3,%i3
-
-# 				z6 = (uint32) y6 << 13
-# sll <y6=int64#6,13,>z6=int64#3
-# sll <y6=%i5,13,>z6=%i2
-sll %i5,13,%i2
-
-# 						y11 = x7 + x3
-# add <x7=int64#16,<x3=int64#12,>y11=int64#7
-# add <x7=%o7,<x3=%o2,>y11=%g1
-add %o7,%o2,%g1
-
-# 				y6 = (uint32) y6 >> 19
-# srl <y6=int64#6,19,>y6=int64#6
-# srl <y6=%i5,19,>y6=%i5
-srl %i5,19,%i5
-
-# x12 ^= y12
-# xor <x12=int64#21,<y12=int64#4,>x12=int64#21
-# xor <x12=%l4,<y12=%i3,>x12=%l4
-xor %l4,%i3,%l4
-
-# 		y1 |= z1
-# or  <y1=int64#5,<z1=int64#1,>y1=int64#1
-# or  <y1=%i4,<z1=%i0,>y1=%i0
-or  %i4,%i0,%i0
-
-# y0 = x12 + x8
-# add <x12=int64#21,<x8=int64#17,>y0=int64#5
-# add <x12=%l4,<x8=%l0,>y0=%i4
-add %l4,%l0,%i4
-
-# 						z11 = (uint32) y11 << 13
-# sll <y11=int64#7,13,>z11=int64#4
-# sll <y11=%g1,13,>z11=%i3
-sll %g1,13,%i3
-
-# 		x1 ^= y1
-# xor <x1=int64#10,<y1=int64#1,>x1=int64#10
-# xor <x1=%o0,<y1=%i0,>x1=%o0
-xor %o0,%i0,%o0
-
-# 						y11 = (uint32) y11 >> 19
-# srl <y11=int64#7,19,>y11=int64#7
-# srl <y11=%g1,19,>y11=%g1
-srl %g1,19,%g1
-
-# 				y6 |= z6
-# or  <y6=int64#6,<z6=int64#3,>y6=int64#3
-# or  <y6=%i5,<z6=%i2,>y6=%i2
-or  %i5,%i2,%i2
-
-# z0 = (uint32) y0 << 18
-# sll <y0=int64#5,18,>z0=int64#1
-# sll <y0=%i4,18,>z0=%i0
-sll %i4,18,%i0
-
-# 		y5 = x1 + x13
-# add <x1=int64#10,<x13=int64#22,>y5=int64#6
-# add <x1=%o0,<x13=%l5,>y5=%i5
-add %o0,%l5,%i5
-
-# y0 = (uint32) y0 >> 14
-# srl <y0=int64#5,14,>y0=int64#5
-# srl <y0=%i4,14,>y0=%i4
-srl %i4,14,%i4
-
-# 				x6 ^= y6
-# xor <x6=int64#15,<y6=int64#3,>x6=int64#15
-# xor <x6=%o5,<y6=%i2,>x6=%o5
-xor %o5,%i2,%o5
-
-# 						y11 |= z11
-# or  <y11=int64#7,<z11=int64#4,>y11=int64#4
-# or  <y11=%g1,<z11=%i3,>y11=%i3
-or  %g1,%i3,%i3
-
-# 				y10 = x6 + x2
-# add <x6=int64#15,<x2=int64#11,>y10=int64#7
-# add <x6=%o5,<x2=%o1,>y10=%g1
-add %o5,%o1,%g1
-
-# 		z5 = (uint32) y5 << 18
-# sll <y5=int64#6,18,>z5=int64#3
-# sll <y5=%i5,18,>z5=%i2
-sll %i5,18,%i2
-
-# 						x11 ^= y11
-# xor <x11=int64#20,<y11=int64#4,>x11=int64#20
-# xor <x11=%l3,<y11=%i3,>x11=%l3
-xor %l3,%i3,%l3
-
-# 		y5 = (uint32) y5 >> 14
-# srl <y5=int64#6,14,>y5=int64#6
-# srl <y5=%i5,14,>y5=%i5
-srl %i5,14,%i5
-
-# y0 |= z0
-# or  <y0=int64#5,<z0=int64#1,>y0=int64#4
-# or  <y0=%i4,<z0=%i0,>y0=%i3
-or  %i4,%i0,%i3
-
-# 				z10 = (uint32) y10 << 18
-# sll <y10=int64#7,18,>z10=int64#1
-# sll <y10=%g1,18,>z10=%i0
-sll %g1,18,%i0
-
-# 						y15 = x11 + x7
-# add <x11=int64#20,<x7=int64#16,>y15=int64#8
-# add <x11=%l3,<x7=%o7,>y15=%g4
-add %l3,%o7,%g4
-
-# 				y10 = (uint32) y10 >> 14
-# srl <y10=int64#7,14,>y10=int64#7
-# srl <y10=%g1,14,>y10=%g1
-srl %g1,14,%g1
-
-# x0 ^= y0
-# xor <x0=int64#9,<y0=int64#4,>x0=int64#9
-# xor <x0=%g5,<y0=%i3,>x0=%g5
-xor %g5,%i3,%g5
-
-# 		y5 |= z5
-# or  <y5=int64#6,<z5=int64#3,>y5=int64#5
-# or  <y5=%i5,<z5=%i2,>y5=%i4
-or  %i5,%i2,%i4
-
-# u1 = x0 + x3
-# add <x0=int64#9,<x3=int64#12,>u1=int64#4
-# add <x0=%g5,<x3=%o2,>u1=%i3
-add %g5,%o2,%i3
-
-# 						z15 = (uint32) y15 << 18
-# sll <y15=int64#8,18,>z15=int64#3
-# sll <y15=%g4,18,>z15=%i2
-sll %g4,18,%i2
-
-# 		x5 ^= y5
-# xor <x5=int64#14,<y5=int64#5,>x5=int64#14
-# xor <x5=%o4,<y5=%i4,>x5=%o4
-xor %o4,%i4,%o4
-
-# 						y15 = (uint32) y15 >> 14
-# srl <y15=int64#8,14,>y15=int64#8
-# srl <y15=%g4,14,>y15=%g4
-srl %g4,14,%g4
-
-# 				y10 |= z10
-# or  <y10=int64#7,<z10=int64#1,>y10=int64#6
-# or  <y10=%g1,<z10=%i0,>y10=%i5
-or  %g1,%i0,%i5
-
-# z1 = (uint32) u1 << 7
-# sll <u1=int64#4,7,>z1=int64#1
-# sll <u1=%i3,7,>z1=%i0
-sll %i3,7,%i0
-
-# 		u6 = x5 + x4
-# add <x5=int64#14,<x4=int64#13,>u6=int64#5
-# add <x5=%o4,<x4=%o3,>u6=%i4
-add %o4,%o3,%i4
-
-# u1 = (uint32) u1 >> 25
-# srl <u1=int64#4,25,>u1=int64#4
-# srl <u1=%i3,25,>u1=%i3
-srl %i3,25,%i3
-
-# 				x10 ^= y10
-# xor <x10=int64#19,<y10=int64#6,>x10=int64#19
-# xor <x10=%l2,<y10=%i5,>x10=%l2
-xor %l2,%i5,%l2
-
-# 						y15 |= z15
-# or  <y15=int64#8,<z15=int64#3,>y15=int64#7
-# or  <y15=%g4,<z15=%i2,>y15=%g1
-or  %g4,%i2,%g1
-
-# 				u11 = x10 + x9
-# add <x10=int64#19,<x9=int64#18,>u11=int64#6
-# add <x10=%l2,<x9=%l1,>u11=%i5
-add %l2,%l1,%i5
-
-# 		z6 = (uint32) u6 << 7
-# sll <u6=int64#5,7,>z6=int64#3
-# sll <u6=%i4,7,>z6=%i2
-sll %i4,7,%i2
-
-# 						x15 ^= y15
-# xor <x15=int64#24,<y15=int64#7,>x15=int64#24
-# xor <x15=%l7,<y15=%g1,>x15=%l7
-xor %l7,%g1,%l7
-
-# 		u6 = (uint32) u6 >> 25
-# srl <u6=int64#5,25,>u6=int64#5
-# srl <u6=%i4,25,>u6=%i4
-srl %i4,25,%i4
-
-# u1 |= z1
-# or  <u1=int64#4,<z1=int64#1,>u1=int64#4
-# or  <u1=%i3,<z1=%i0,>u1=%i3
-or  %i3,%i0,%i3
-
-# 				z11 = (uint32) u11 << 7
-# sll <u11=int64#6,7,>z11=int64#1
-# sll <u11=%i5,7,>z11=%i0
-sll %i5,7,%i0
-
-# 						u12 = x15 + x14
-# add <x15=int64#24,<x14=int64#23,>u12=int64#7
-# add <x15=%l7,<x14=%l6,>u12=%g1
-add %l7,%l6,%g1
-
-# 				u11 = (uint32) u11 >> 25
-# srl <u11=int64#6,25,>u11=int64#6
-# srl <u11=%i5,25,>u11=%i5
-srl %i5,25,%i5
+# qhasm: y8 = x4 + x0
+# asm 1: add <x4=int64#1,<x0=int64#3,>y8=int64#10
+# asm 2: add <x4=%i0,<x0=%i2,>y8=%o0
+add %i0,%i2,%o0
+
+# qhasm: 						z3 = (uint32) y3 << 7
+# asm 1: sll <y3=int64#22,7,>z3=int64#23
+# asm 2: sll <y3=%l5,7,>z3=%l6
+sll %l5,7,%l6
+
+# qhasm: 		x9 ^= y9
+# asm 1: xor <x9=int64#15,<y9=int64#2,>x9=int64#2
+# asm 2: xor <x9=%o5,<y9=%i1,>x9=%i1
+xor %o5,%i1,%i1
+
+# qhasm: 						y3 = (uint32) y3 >> 25
+# asm 1: srl <y3=int64#22,25,>y3=int64#15
+# asm 2: srl <y3=%l5,25,>y3=%o5
+srl %l5,25,%o5
+
+# qhasm: 				y14 |= z14
+# asm 1: or  <y14=int64#6,<z14=int64#5,>y14=int64#5
+# asm 2: or  <y14=%i5,<z14=%i4,>y14=%i4
+or  %i5,%i4,%i4
+
+# qhasm: z8 = (uint32) y8 << 9
+# asm 1: sll <y8=int64#10,9,>z8=int64#6
+# asm 2: sll <y8=%o0,9,>z8=%i5
+sll %o0,9,%i5
+
+# qhasm: 		y13 = x9 + x5
+# asm 1: add <x9=int64#2,<x5=int64#11,>y13=int64#22
+# asm 2: add <x9=%i1,<x5=%o1,>y13=%l5
+add %i1,%o1,%l5
+
+# qhasm: y8 = (uint32) y8 >> 23
+# asm 1: srl <y8=int64#10,23,>y8=int64#10
+# asm 2: srl <y8=%o0,23,>y8=%o0
+srl %o0,23,%o0
+
+# qhasm: 				x14 ^= y14
+# asm 1: xor <x14=int64#20,<y14=int64#5,>x14=int64#5
+# asm 2: xor <x14=%l3,<y14=%i4,>x14=%i4
+xor %l3,%i4,%i4
+
+# qhasm: 						y3 |= z3
+# asm 1: or  <y3=int64#15,<z3=int64#23,>y3=int64#15
+# asm 2: or  <y3=%o5,<z3=%l6,>y3=%o5
+or  %o5,%l6,%o5
+
+# qhasm: 				y2 = x14 + x10
+# asm 1: add <x14=int64#5,<x10=int64#16,>y2=int64#20
+# asm 2: add <x14=%i4,<x10=%o7,>y2=%l3
+add %i4,%o7,%l3
+
+# qhasm: 		z13 = (uint32) y13 << 9
+# asm 1: sll <y13=int64#22,9,>z13=int64#23
+# asm 2: sll <y13=%l5,9,>z13=%l6
+sll %l5,9,%l6
+
+# qhasm: 						x3 ^= y3
+# asm 1: xor <x3=int64#9,<y3=int64#15,>x3=int64#9
+# asm 2: xor <x3=%g5,<y3=%o5,>x3=%g5
+xor %g5,%o5,%g5
+
+# qhasm: 		y13 = (uint32) y13 >> 23
+# asm 1: srl <y13=int64#22,23,>y13=int64#15
+# asm 2: srl <y13=%l5,23,>y13=%o5
+srl %l5,23,%o5
+
+# qhasm: y8 |= z8
+# asm 1: or  <y8=int64#10,<z8=int64#6,>y8=int64#6
+# asm 2: or  <y8=%o0,<z8=%i5,>y8=%i5
+or  %o0,%i5,%i5
+
+# qhasm: 				z2 = (uint32) y2 << 9
+# asm 1: sll <y2=int64#20,9,>z2=int64#10
+# asm 2: sll <y2=%l3,9,>z2=%o0
+sll %l3,9,%o0
+
+# qhasm: 						y7 = x3 + x15
+# asm 1: add <x3=int64#9,<x15=int64#21,>y7=int64#22
+# asm 2: add <x3=%g5,<x15=%l4,>y7=%l5
+add %g5,%l4,%l5
+
+# qhasm: 				y2 = (uint32) y2 >> 23
+# asm 1: srl <y2=int64#20,23,>y2=int64#20
+# asm 2: srl <y2=%l3,23,>y2=%l3
+srl %l3,23,%l3
+
+# qhasm: x8 ^= y8
+# asm 1: xor <x8=int64#14,<y8=int64#6,>x8=int64#6
+# asm 2: xor <x8=%o4,<y8=%i5,>x8=%i5
+xor %o4,%i5,%i5
+
+# qhasm: 		y13 |= z13
+# asm 1: or  <y13=int64#15,<z13=int64#23,>y13=int64#14
+# asm 2: or  <y13=%o5,<z13=%l6,>y13=%o4
+or  %o5,%l6,%o4
+
+# qhasm: y12 = x8 + x4
+# asm 1: add <x8=int64#6,<x4=int64#1,>y12=int64#15
+# asm 2: add <x8=%i5,<x4=%i0,>y12=%o5
+add %i5,%i0,%o5
+
+# qhasm: 						z7 = (uint32) y7 << 9
+# asm 1: sll <y7=int64#22,9,>z7=int64#23
+# asm 2: sll <y7=%l5,9,>z7=%l6
+sll %l5,9,%l6
+
+# qhasm: 		x13 ^= y13
+# asm 1: xor <x13=int64#19,<y13=int64#14,>x13=int64#19
+# asm 2: xor <x13=%l2,<y13=%o4,>x13=%l2
+xor %l2,%o4,%l2
+
+# qhasm: 						y7 = (uint32) y7 >> 23
+# asm 1: srl <y7=int64#22,23,>y7=int64#14
+# asm 2: srl <y7=%l5,23,>y7=%o4
+srl %l5,23,%o4
+
+# qhasm: 				y2 |= z2
+# asm 1: or  <y2=int64#20,<z2=int64#10,>y2=int64#10
+# asm 2: or  <y2=%l3,<z2=%o0,>y2=%o0
+or  %l3,%o0,%o0
+
+# qhasm: z12 = (uint32) y12 << 13
+# asm 1: sll <y12=int64#15,13,>z12=int64#20
+# asm 2: sll <y12=%o5,13,>z12=%l3
+sll %o5,13,%l3
+
+# qhasm: 		y1 = x13 + x9
+# asm 1: add <x13=int64#19,<x9=int64#2,>y1=int64#22
+# asm 2: add <x13=%l2,<x9=%i1,>y1=%l5
+add %l2,%i1,%l5
+
+# qhasm: y12 = (uint32) y12 >> 19
+# asm 1: srl <y12=int64#15,19,>y12=int64#15
+# asm 2: srl <y12=%o5,19,>y12=%o5
+srl %o5,19,%o5
+
+# qhasm: 				x2 ^= y2
+# asm 1: xor <x2=int64#8,<y2=int64#10,>x2=int64#8
+# asm 2: xor <x2=%g4,<y2=%o0,>x2=%g4
+xor %g4,%o0,%g4
+
+# qhasm: 						y7 |= z7
+# asm 1: or  <y7=int64#14,<z7=int64#23,>y7=int64#10
+# asm 2: or  <y7=%o4,<z7=%l6,>y7=%o0
+or  %o4,%l6,%o0
+
+# qhasm: 				y6 = x2 + x14
+# asm 1: add <x2=int64#8,<x14=int64#5,>y6=int64#14
+# asm 2: add <x2=%g4,<x14=%i4,>y6=%o4
+add %g4,%i4,%o4
+
+# qhasm: 		z1 = (uint32) y1 << 13
+# asm 1: sll <y1=int64#22,13,>z1=int64#23
+# asm 2: sll <y1=%l5,13,>z1=%l6
+sll %l5,13,%l6
+
+# qhasm: 						x7 ^= y7
+# asm 1: xor <x7=int64#13,<y7=int64#10,>x7=int64#10
+# asm 2: xor <x7=%o3,<y7=%o0,>x7=%o0
+xor %o3,%o0,%o0
+
+# qhasm: 		y1 = (uint32) y1 >> 19
+# asm 1: srl <y1=int64#22,19,>y1=int64#13
+# asm 2: srl <y1=%l5,19,>y1=%o3
+srl %l5,19,%o3
+
+# qhasm: y12 |= z12
+# asm 1: or  <y12=int64#15,<z12=int64#20,>y12=int64#15
+# asm 2: or  <y12=%o5,<z12=%l3,>y12=%o5
+or  %o5,%l3,%o5
+
+# qhasm: 				z6 = (uint32) y6 << 13
+# asm 1: sll <y6=int64#14,13,>z6=int64#20
+# asm 2: sll <y6=%o4,13,>z6=%l3
+sll %o4,13,%l3
+
+# qhasm: 						y11 = x7 + x3
+# asm 1: add <x7=int64#10,<x3=int64#9,>y11=int64#22
+# asm 2: add <x7=%o0,<x3=%g5,>y11=%l5
+add %o0,%g5,%l5
+
+# qhasm: 				y6 = (uint32) y6 >> 19
+# asm 1: srl <y6=int64#14,19,>y6=int64#14
+# asm 2: srl <y6=%o4,19,>y6=%o4
+srl %o4,19,%o4
+
+# qhasm: x12 ^= y12
+# asm 1: xor <x12=int64#18,<y12=int64#15,>x12=int64#15
+# asm 2: xor <x12=%l1,<y12=%o5,>x12=%o5
+xor %l1,%o5,%o5
+
+# qhasm: 		y1 |= z1
+# asm 1: or  <y1=int64#13,<z1=int64#23,>y1=int64#13
+# asm 2: or  <y1=%o3,<z1=%l6,>y1=%o3
+or  %o3,%l6,%o3
+
+# qhasm: y0 = x12 + x8
+# asm 1: add <x12=int64#15,<x8=int64#6,>y0=int64#18
+# asm 2: add <x12=%o5,<x8=%i5,>y0=%l1
+add %o5,%i5,%l1
+
+# qhasm: 						z11 = (uint32) y11 << 13
+# asm 1: sll <y11=int64#22,13,>z11=int64#23
+# asm 2: sll <y11=%l5,13,>z11=%l6
+sll %l5,13,%l6
+
+# qhasm: 		x1 ^= y1
+# asm 1: xor <x1=int64#7,<y1=int64#13,>x1=int64#7
+# asm 2: xor <x1=%g1,<y1=%o3,>x1=%g1
+xor %g1,%o3,%g1
+
+# qhasm: 						y11 = (uint32) y11 >> 19
+# asm 1: srl <y11=int64#22,19,>y11=int64#13
+# asm 2: srl <y11=%l5,19,>y11=%o3
+srl %l5,19,%o3
+
+# qhasm: 				y6 |= z6
+# asm 1: or  <y6=int64#14,<z6=int64#20,>y6=int64#14
+# asm 2: or  <y6=%o4,<z6=%l3,>y6=%o4
+or  %o4,%l3,%o4
+
+# qhasm: z0 = (uint32) y0 << 18
+# asm 1: sll <y0=int64#18,18,>z0=int64#20
+# asm 2: sll <y0=%l1,18,>z0=%l3
+sll %l1,18,%l3
+
+# qhasm: 		y5 = x1 + x13
+# asm 1: add <x1=int64#7,<x13=int64#19,>y5=int64#22
+# asm 2: add <x1=%g1,<x13=%l2,>y5=%l5
+add %g1,%l2,%l5
+
+# qhasm: y0 = (uint32) y0 >> 14
+# asm 1: srl <y0=int64#18,14,>y0=int64#18
+# asm 2: srl <y0=%l1,14,>y0=%l1
+srl %l1,14,%l1
+
+# qhasm: 				x6 ^= y6
+# asm 1: xor <x6=int64#12,<y6=int64#14,>x6=int64#12
+# asm 2: xor <x6=%o2,<y6=%o4,>x6=%o2
+xor %o2,%o4,%o2
+
+# qhasm: 						y11 |= z11
+# asm 1: or  <y11=int64#13,<z11=int64#23,>y11=int64#13
+# asm 2: or  <y11=%o3,<z11=%l6,>y11=%o3
+or  %o3,%l6,%o3
+
+# qhasm: 				y10 = x6 + x2
+# asm 1: add <x6=int64#12,<x2=int64#8,>y10=int64#14
+# asm 2: add <x6=%o2,<x2=%g4,>y10=%o4
+add %o2,%g4,%o4
+
+# qhasm: 		z5 = (uint32) y5 << 18
+# asm 1: sll <y5=int64#22,18,>z5=int64#23
+# asm 2: sll <y5=%l5,18,>z5=%l6
+sll %l5,18,%l6
+
+# qhasm: 						x11 ^= y11
+# asm 1: xor <x11=int64#17,<y11=int64#13,>x11=int64#13
+# asm 2: xor <x11=%l0,<y11=%o3,>x11=%o3
+xor %l0,%o3,%o3
+
+# qhasm: 		y5 = (uint32) y5 >> 14
+# asm 1: srl <y5=int64#22,14,>y5=int64#17
+# asm 2: srl <y5=%l5,14,>y5=%l0
+srl %l5,14,%l0
+
+# qhasm: y0 |= z0
+# asm 1: or  <y0=int64#18,<z0=int64#20,>y0=int64#18
+# asm 2: or  <y0=%l1,<z0=%l3,>y0=%l1
+or  %l1,%l3,%l1
+
+# qhasm: 				z10 = (uint32) y10 << 18
+# asm 1: sll <y10=int64#14,18,>z10=int64#20
+# asm 2: sll <y10=%o4,18,>z10=%l3
+sll %o4,18,%l3
+
+# qhasm: 						y15 = x11 + x7
+# asm 1: add <x11=int64#13,<x7=int64#10,>y15=int64#22
+# asm 2: add <x11=%o3,<x7=%o0,>y15=%l5
+add %o3,%o0,%l5
+
+# qhasm: 				y10 = (uint32) y10 >> 14
+# asm 1: srl <y10=int64#14,14,>y10=int64#14
+# asm 2: srl <y10=%o4,14,>y10=%o4
+srl %o4,14,%o4
+
+# qhasm: x0 ^= y0
+# asm 1: xor <x0=int64#3,<y0=int64#18,>x0=int64#3
+# asm 2: xor <x0=%i2,<y0=%l1,>x0=%i2
+xor %i2,%l1,%i2
+
+# qhasm: 		y5 |= z5
+# asm 1: or  <y5=int64#17,<z5=int64#23,>y5=int64#17
+# asm 2: or  <y5=%l0,<z5=%l6,>y5=%l0
+or  %l0,%l6,%l0
+
+# qhasm: u1 = x0 + x3
+# asm 1: add <x0=int64#3,<x3=int64#9,>u1=int64#18
+# asm 2: add <x0=%i2,<x3=%g5,>u1=%l1
+add %i2,%g5,%l1
+
+# qhasm: 						z15 = (uint32) y15 << 18
+# asm 1: sll <y15=int64#22,18,>z15=int64#23
+# asm 2: sll <y15=%l5,18,>z15=%l6
+sll %l5,18,%l6
+
+# qhasm: 		x5 ^= y5
+# asm 1: xor <x5=int64#11,<y5=int64#17,>x5=int64#11
+# asm 2: xor <x5=%o1,<y5=%l0,>x5=%o1
+xor %o1,%l0,%o1
+
+# qhasm: 						y15 = (uint32) y15 >> 14
+# asm 1: srl <y15=int64#22,14,>y15=int64#17
+# asm 2: srl <y15=%l5,14,>y15=%l0
+srl %l5,14,%l0
+
+# qhasm: 				y10 |= z10
+# asm 1: or  <y10=int64#14,<z10=int64#20,>y10=int64#14
+# asm 2: or  <y10=%o4,<z10=%l3,>y10=%o4
+or  %o4,%l3,%o4
+
+# qhasm: z1 = (uint32) u1 << 7
+# asm 1: sll <u1=int64#18,7,>z1=int64#20
+# asm 2: sll <u1=%l1,7,>z1=%l3
+sll %l1,7,%l3
+
+# qhasm: 		u6 = x5 + x4
+# asm 1: add <x5=int64#11,<x4=int64#1,>u6=int64#22
+# asm 2: add <x5=%o1,<x4=%i0,>u6=%l5
+add %o1,%i0,%l5
+
+# qhasm: u1 = (uint32) u1 >> 25
+# asm 1: srl <u1=int64#18,25,>u1=int64#18
+# asm 2: srl <u1=%l1,25,>u1=%l1
+srl %l1,25,%l1
+
+# qhasm: 				x10 ^= y10
+# asm 1: xor <x10=int64#16,<y10=int64#14,>x10=int64#16
+# asm 2: xor <x10=%o7,<y10=%o4,>x10=%o7
+xor %o7,%o4,%o7
+
+# qhasm: 						y15 |= z15
+# asm 1: or  <y15=int64#17,<z15=int64#23,>y15=int64#14
+# asm 2: or  <y15=%l0,<z15=%l6,>y15=%o4
+or  %l0,%l6,%o4
+
+# qhasm: 				u11 = x10 + x9
+# asm 1: add <x10=int64#16,<x9=int64#2,>u11=int64#17
+# asm 2: add <x10=%o7,<x9=%i1,>u11=%l0
+add %o7,%i1,%l0
+
+# qhasm: 		z6 = (uint32) u6 << 7
+# asm 1: sll <u6=int64#22,7,>z6=int64#23
+# asm 2: sll <u6=%l5,7,>z6=%l6
+sll %l5,7,%l6
+
+# qhasm: 						x15 ^= y15
+# asm 1: xor <x15=int64#21,<y15=int64#14,>x15=int64#21
+# asm 2: xor <x15=%l4,<y15=%o4,>x15=%l4
+xor %l4,%o4,%l4
+
+# qhasm: 		u6 = (uint32) u6 >> 25
+# asm 1: srl <u6=int64#22,25,>u6=int64#14
+# asm 2: srl <u6=%l5,25,>u6=%o4
+srl %l5,25,%o4
+
+# qhasm: u1 |= z1
+# asm 1: or  <u1=int64#18,<z1=int64#20,>u1=int64#18
+# asm 2: or  <u1=%l1,<z1=%l3,>u1=%l1
+or  %l1,%l3,%l1
+
+# qhasm: 				z11 = (uint32) u11 << 7
+# asm 1: sll <u11=int64#17,7,>z11=int64#20
+# asm 2: sll <u11=%l0,7,>z11=%l3
+sll %l0,7,%l3
+
+# qhasm: 						u12 = x15 + x14
+# asm 1: add <x15=int64#21,<x14=int64#5,>u12=int64#22
+# asm 2: add <x15=%l4,<x14=%i4,>u12=%l5
+add %l4,%i4,%l5
+
+# qhasm: 				u11 = (uint32) u11 >> 25
+# asm 1: srl <u11=int64#17,25,>u11=int64#17
+# asm 2: srl <u11=%l0,25,>u11=%l0
+srl %l0,25,%l0
+
+# qhasm: 		u6 |= z6
+# asm 1: or  <u6=int64#14,<z6=int64#23,>u6=int64#14
+# asm 2: or  <u6=%o4,<z6=%l6,>u6=%o4
+or  %o4,%l6,%o4
+
+# qhasm: x1 ^= u1
+# asm 1: xor <x1=int64#7,<u1=int64#18,>x1=int64#7
+# asm 2: xor <x1=%g1,<u1=%l1,>x1=%g1
+xor %g1,%l1,%g1
+
+# qhasm: 						z12 = (uint32) u12 << 7
+# asm 1: sll <u12=int64#22,7,>z12=int64#18
+# asm 2: sll <u12=%l5,7,>z12=%l1
+sll %l5,7,%l1
+
+# qhasm: 		x6 ^= u6
+# asm 1: xor <x6=int64#12,<u6=int64#14,>x6=int64#12
+# asm 2: xor <x6=%o2,<u6=%o4,>x6=%o2
+xor %o2,%o4,%o2
+
+# qhasm: 						u12 = (uint32) u12 >> 25
+# asm 1: srl <u12=int64#22,25,>u12=int64#14
+# asm 2: srl <u12=%l5,25,>u12=%o4
+srl %l5,25,%o4
+
+# qhasm: 				u11 |= z11
+# asm 1: or  <u11=int64#17,<z11=int64#20,>u11=int64#17
+# asm 2: or  <u11=%l0,<z11=%l3,>u11=%l0
+or  %l0,%l3,%l0
+
+# qhasm: u2 = x1 + x0
+# asm 1: add <x1=int64#7,<x0=int64#3,>u2=int64#20
+# asm 2: add <x1=%g1,<x0=%i2,>u2=%l3
+add %g1,%i2,%l3
+
+# qhasm: 		u7 = x6 + x5
+# asm 1: add <x6=int64#12,<x5=int64#11,>u7=int64#22
+# asm 2: add <x6=%o2,<x5=%o1,>u7=%l5
+add %o2,%o1,%l5
+
+# qhasm: z2 = (uint32) u2 << 9
+# asm 1: sll <u2=int64#20,9,>z2=int64#23
+# asm 2: sll <u2=%l3,9,>z2=%l6
+sll %l3,9,%l6
+
+# qhasm: 				x11 ^= u11
+# asm 1: xor <x11=int64#13,<u11=int64#17,>x11=int64#17
+# asm 2: xor <x11=%o3,<u11=%l0,>x11=%l0
+xor %o3,%l0,%l0
+
+# qhasm: u2 = (uint32) u2 >> 23
+# asm 1: srl <u2=int64#20,23,>u2=int64#13
+# asm 2: srl <u2=%l3,23,>u2=%o3
+srl %l3,23,%o3
+
+# qhasm: 						u12 |= z12
+# asm 1: or  <u12=int64#14,<z12=int64#18,>u12=int64#14
+# asm 2: or  <u12=%o4,<z12=%l1,>u12=%o4
+or  %o4,%l1,%o4
+
+# qhasm: 		z7 = (uint32) u7 << 9
+# asm 1: sll <u7=int64#22,9,>z7=int64#20
+# asm 2: sll <u7=%l5,9,>z7=%l3
+sll %l5,9,%l3
+
+# qhasm: 				u8 = x11 + x10
+# asm 1: add <x11=int64#17,<x10=int64#16,>u8=int64#24
+# asm 2: add <x11=%l0,<x10=%o7,>u8=%l7
+add %l0,%o7,%l7
+
+# qhasm: 		u7 = (uint32) u7 >> 23
+# asm 1: srl <u7=int64#22,23,>u7=int64#22
+# asm 2: srl <u7=%l5,23,>u7=%l5
+srl %l5,23,%l5
+
+# qhasm: 						x12 ^= u12
+# asm 1: xor <x12=int64#15,<u12=int64#14,>x12=int64#18
+# asm 2: xor <x12=%o5,<u12=%o4,>x12=%l1
+xor %o5,%o4,%l1
+
+# qhasm: 				z8 = (uint32) u8 << 9
+# asm 1: sll <u8=int64#24,9,>z8=int64#14
+# asm 2: sll <u8=%l7,9,>z8=%o4
+sll %l7,9,%o4
+
+# qhasm: u2 |= z2
+# asm 1: or  <u2=int64#13,<z2=int64#23,>u2=int64#13
+# asm 2: or  <u2=%o3,<z2=%l6,>u2=%o3
+or  %o3,%l6,%o3
+
+# qhasm: 				u8 = (uint32) u8 >> 23
+# asm 1: srl <u8=int64#24,23,>u8=int64#15
+# asm 2: srl <u8=%l7,23,>u8=%o5
+srl %l7,23,%o5
+
+# qhasm: 						u13 = x12 + x15
+# asm 1: add <x12=int64#18,<x15=int64#21,>u13=int64#23
+# asm 2: add <x12=%l1,<x15=%l4,>u13=%l6
+add %l1,%l4,%l6
+
+# qhasm: 		u7 |= z7
+# asm 1: or  <u7=int64#22,<z7=int64#20,>u7=int64#20
+# asm 2: or  <u7=%l5,<z7=%l3,>u7=%l3
+or  %l5,%l3,%l3
+
+# qhasm: x2 ^= u2
+# asm 1: xor <x2=int64#8,<u2=int64#13,>x2=int64#8
+# asm 2: xor <x2=%g4,<u2=%o3,>x2=%g4
+xor %g4,%o3,%g4
+
+# qhasm: 						z13 = (uint32) u13 << 9
+# asm 1: sll <u13=int64#23,9,>z13=int64#22
+# asm 2: sll <u13=%l6,9,>z13=%l5
+sll %l6,9,%l5
+
+# qhasm: 		x7 ^= u7
+# asm 1: xor <x7=int64#10,<u7=int64#20,>x7=int64#13
+# asm 2: xor <x7=%o0,<u7=%l3,>x7=%o3
+xor %o0,%l3,%o3
+
+# qhasm: 						u13 = (uint32) u13 >> 23
+# asm 1: srl <u13=int64#23,23,>u13=int64#10
+# asm 2: srl <u13=%l6,23,>u13=%o0
+srl %l6,23,%o0
+
+# qhasm: 				u8 |= z8
+# asm 1: or  <u8=int64#15,<z8=int64#14,>u8=int64#14
+# asm 2: or  <u8=%o5,<z8=%o4,>u8=%o4
+or  %o5,%o4,%o4
+
+# qhasm: u3 = x2 + x1
+# asm 1: add <x2=int64#8,<x1=int64#7,>u3=int64#15
+# asm 2: add <x2=%g4,<x1=%g1,>u3=%o5
+add %g4,%g1,%o5
+
+# qhasm: 		u4 = x7 + x6
+# asm 1: add <x7=int64#13,<x6=int64#12,>u4=int64#20
+# asm 2: add <x7=%o3,<x6=%o2,>u4=%l3
+add %o3,%o2,%l3
+
+# qhasm: z3 = (uint32) u3 << 13
+# asm 1: sll <u3=int64#15,13,>z3=int64#23
+# asm 2: sll <u3=%o5,13,>z3=%l6
+sll %o5,13,%l6
+
+# qhasm: 				x8 ^= u8
+# asm 1: xor <x8=int64#6,<u8=int64#14,>x8=int64#14
+# asm 2: xor <x8=%i5,<u8=%o4,>x8=%o4
+xor %i5,%o4,%o4
+
+# qhasm: 		z4 = (uint32) u4 << 13
+# asm 1: sll <u4=int64#20,13,>z4=int64#6
+# asm 2: sll <u4=%l3,13,>z4=%i5
+sll %l3,13,%i5
+
+# qhasm: 						u13 |= z13
+# asm 1: or  <u13=int64#10,<z13=int64#22,>u13=int64#10
+# asm 2: or  <u13=%o0,<z13=%l5,>u13=%o0
+or  %o0,%l5,%o0
+
+# qhasm: u3 = (uint32) u3 >> 19
+# asm 1: srl <u3=int64#15,19,>u3=int64#15
+# asm 2: srl <u3=%o5,19,>u3=%o5
+srl %o5,19,%o5
+
+# qhasm: 				u9 = x8 + x11
+# asm 1: add <x8=int64#14,<x11=int64#17,>u9=int64#22
+# asm 2: add <x8=%o4,<x11=%l0,>u9=%l5
+add %o4,%l0,%l5
+
+# qhasm: 		u4 = (uint32) u4 >> 19
+# asm 1: srl <u4=int64#20,19,>u4=int64#20
+# asm 2: srl <u4=%l3,19,>u4=%l3
+srl %l3,19,%l3
+
+# qhasm: 						x13 ^= u13
+# asm 1: xor <x13=int64#19,<u13=int64#10,>x13=int64#19
+# asm 2: xor <x13=%l2,<u13=%o0,>x13=%l2
+xor %l2,%o0,%l2
+
+# qhasm: 				z9 = (uint32) u9 << 13
+# asm 1: sll <u9=int64#22,13,>z9=int64#24
+# asm 2: sll <u9=%l5,13,>z9=%l7
+sll %l5,13,%l7
+
+# qhasm: u3 |= z3
+# asm 1: or  <u3=int64#15,<z3=int64#23,>u3=int64#10
+# asm 2: or  <u3=%o5,<z3=%l6,>u3=%o0
+or  %o5,%l6,%o0
+
+# qhasm: 				u9 = (uint32) u9 >> 19
+# asm 1: srl <u9=int64#22,19,>u9=int64#15
+# asm 2: srl <u9=%l5,19,>u9=%o5
+srl %l5,19,%o5
+
+# qhasm: 						u14 = x13 + x12
+# asm 1: add <x13=int64#19,<x12=int64#18,>u14=int64#22
+# asm 2: add <x13=%l2,<x12=%l1,>u14=%l5
+add %l2,%l1,%l5
+
+# qhasm: 		u4 |= z4
+# asm 1: or  <u4=int64#20,<z4=int64#6,>u4=int64#6
+# asm 2: or  <u4=%l3,<z4=%i5,>u4=%i5
+or  %l3,%i5,%i5
+
+# qhasm: x3 ^= u3
+# asm 1: xor <x3=int64#9,<u3=int64#10,>x3=int64#9
+# asm 2: xor <x3=%g5,<u3=%o0,>x3=%g5
+xor %g5,%o0,%g5
+
+# qhasm: 						z14 = (uint32) u14 << 13
+# asm 1: sll <u14=int64#22,13,>z14=int64#20
+# asm 2: sll <u14=%l5,13,>z14=%l3
+sll %l5,13,%l3
+
+# qhasm: 		x4 ^= u4
+# asm 1: xor <x4=int64#1,<u4=int64#6,>x4=int64#10
+# asm 2: xor <x4=%i0,<u4=%i5,>x4=%o0
+xor %i0,%i5,%o0
+
+# qhasm: 						u14 = (uint32) u14 >> 19
+# asm 1: srl <u14=int64#22,19,>u14=int64#1
+# asm 2: srl <u14=%l5,19,>u14=%i0
+srl %l5,19,%i0
+
+# qhasm: 				u9 |= z9
+# asm 1: or  <u9=int64#15,<z9=int64#24,>u9=int64#6
+# asm 2: or  <u9=%o5,<z9=%l7,>u9=%i5
+or  %o5,%l7,%i5
+
+# qhasm: u0 = x3 + x2
+# asm 1: add <x3=int64#9,<x2=int64#8,>u0=int64#22
+# asm 2: add <x3=%g5,<x2=%g4,>u0=%l5
+add %g5,%g4,%l5
+
+# qhasm: 		u5 = x4 + x7
+# asm 1: add <x4=int64#10,<x7=int64#13,>u5=int64#23
+# asm 2: add <x4=%o0,<x7=%o3,>u5=%l6
+add %o0,%o3,%l6
+
+# qhasm: z0 = (uint32) u0 << 18
+# asm 1: sll <u0=int64#22,18,>z0=int64#24
+# asm 2: sll <u0=%l5,18,>z0=%l7
+sll %l5,18,%l7
+
+# qhasm: 				x9 ^= u9
+# asm 1: xor <x9=int64#2,<u9=int64#6,>x9=int64#15
+# asm 2: xor <x9=%i1,<u9=%i5,>x9=%o5
+xor %i1,%i5,%o5
+
+# qhasm: 		z5 = (uint32) u5 << 18
+# asm 1: sll <u5=int64#23,18,>z5=int64#2
+# asm 2: sll <u5=%l6,18,>z5=%i1
+sll %l6,18,%i1
+
+# qhasm: 						u14 |= z14
+# asm 1: or  <u14=int64#1,<z14=int64#20,>u14=int64#1
+# asm 2: or  <u14=%i0,<z14=%l3,>u14=%i0
+or  %i0,%l3,%i0
+
+# qhasm: u0 = (uint32) u0 >> 14
+# asm 1: srl <u0=int64#22,14,>u0=int64#6
+# asm 2: srl <u0=%l5,14,>u0=%i5
+srl %l5,14,%i5
+
+# qhasm: 				u10 = x9 + x8
+# asm 1: add <x9=int64#15,<x8=int64#14,>u10=int64#22
+# asm 2: add <x9=%o5,<x8=%o4,>u10=%l5
+add %o5,%o4,%l5
+
+# qhasm: 		u5 = (uint32) u5 >> 14
+# asm 1: srl <u5=int64#23,14,>u5=int64#23
+# asm 2: srl <u5=%l6,14,>u5=%l6
+srl %l6,14,%l6
+
+# qhasm: 						x14 ^= u14
+# asm 1: xor <x14=int64#5,<u14=int64#1,>x14=int64#20
+# asm 2: xor <x14=%i4,<u14=%i0,>x14=%l3
+xor %i4,%i0,%l3
+
+# qhasm: 				z10 = (uint32) u10 << 18
+# asm 1: sll <u10=int64#22,18,>z10=int64#1
+# asm 2: sll <u10=%l5,18,>z10=%i0
+sll %l5,18,%i0
+
+# qhasm: u0 |= z0
+# asm 1: or  <u0=int64#6,<z0=int64#24,>u0=int64#5
+# asm 2: or  <u0=%i5,<z0=%l7,>u0=%i4
+or  %i5,%l7,%i4
+
+# qhasm: 				u10 = (uint32) u10 >> 14
+# asm 1: srl <u10=int64#22,14,>u10=int64#6
+# asm 2: srl <u10=%l5,14,>u10=%i5
+srl %l5,14,%i5
+
+# qhasm: 						u15 = x14 + x13
+# asm 1: add <x14=int64#20,<x13=int64#19,>u15=int64#22
+# asm 2: add <x14=%l3,<x13=%l2,>u15=%l5
+add %l3,%l2,%l5
+
+# qhasm: 		u5 |= z5
+# asm 1: or  <u5=int64#23,<z5=int64#2,>u5=int64#2
+# asm 2: or  <u5=%l6,<z5=%i1,>u5=%i1
+or  %l6,%i1,%i1
+
+# qhasm: x0 ^= u0
+# asm 1: xor <x0=int64#3,<u0=int64#5,>x0=int64#3
+# asm 2: xor <x0=%i2,<u0=%i4,>x0=%i2
+xor %i2,%i4,%i2
 
-# 		u6 |= z6
-# or  <u6=int64#5,<z6=int64#3,>u6=int64#5
-# or  <u6=%i4,<z6=%i2,>u6=%i4
-or  %i4,%i2,%i4
-
-# x1 ^= u1
-# xor <x1=int64#10,<u1=int64#4,>x1=int64#10
-# xor <x1=%o0,<u1=%i3,>x1=%o0
-xor %o0,%i3,%o0
-
-# 						z12 = (uint32) u12 << 7
-# sll <u12=int64#7,7,>z12=int64#3
-# sll <u12=%g1,7,>z12=%i2
-sll %g1,7,%i2
-
-# 		x6 ^= u6
-# xor <x6=int64#15,<u6=int64#5,>x6=int64#15
-# xor <x6=%o5,<u6=%i4,>x6=%o5
-xor %o5,%i4,%o5
-
-# 						u12 = (uint32) u12 >> 25
-# srl <u12=int64#7,25,>u12=int64#7
-# srl <u12=%g1,25,>u12=%g1
-srl %g1,25,%g1
-
-# 				u11 |= z11
-# or  <u11=int64#6,<z11=int64#1,>u11=int64#5
-# or  <u11=%i5,<z11=%i0,>u11=%i4
-or  %i5,%i0,%i4
-
-# u2 = x1 + x0
-# add <x1=int64#10,<x0=int64#9,>u2=int64#4
-# add <x1=%o0,<x0=%g5,>u2=%i3
-add %o0,%g5,%i3
-
-# 		u7 = x6 + x5
-# add <x6=int64#15,<x5=int64#14,>u7=int64#6
-# add <x6=%o5,<x5=%o4,>u7=%i5
-add %o5,%o4,%i5
-
-# z2 = (uint32) u2 << 9
-# sll <u2=int64#4,9,>z2=int64#1
-# sll <u2=%i3,9,>z2=%i0
-sll %i3,9,%i0
-
-# 				x11 ^= u11
-# xor <x11=int64#20,<u11=int64#5,>x11=int64#20
-# xor <x11=%l3,<u11=%i4,>x11=%l3
-xor %l3,%i4,%l3
-
-# u2 = (uint32) u2 >> 23
-# srl <u2=int64#4,23,>u2=int64#5
-# srl <u2=%i3,23,>u2=%i4
-srl %i3,23,%i4
-
-# 						u12 |= z12
-# or  <u12=int64#7,<z12=int64#3,>u12=int64#4
-# or  <u12=%g1,<z12=%i2,>u12=%i3
-or  %g1,%i2,%i3
-
-# 		z7 = (uint32) u7 << 9
-# sll <u7=int64#6,9,>z7=int64#3
-# sll <u7=%i5,9,>z7=%i2
-sll %i5,9,%i2
-
-# 				u8 = x11 + x10
-# add <x11=int64#20,<x10=int64#19,>u8=int64#7
-# add <x11=%l3,<x10=%l2,>u8=%g1
-add %l3,%l2,%g1
-
-# 		u7 = (uint32) u7 >> 23
-# srl <u7=int64#6,23,>u7=int64#6
-# srl <u7=%i5,23,>u7=%i5
-srl %i5,23,%i5
-
-# 						x12 ^= u12
-# xor <x12=int64#21,<u12=int64#4,>x12=int64#21
-# xor <x12=%l4,<u12=%i3,>x12=%l4
-xor %l4,%i3,%l4
-
-# 				z8 = (uint32) u8 << 9
-# sll <u8=int64#7,9,>z8=int64#4
-# sll <u8=%g1,9,>z8=%i3
-sll %g1,9,%i3
-
-# u2 |= z2
-# or  <u2=int64#5,<z2=int64#1,>u2=int64#1
-# or  <u2=%i4,<z2=%i0,>u2=%i0
-or  %i4,%i0,%i0
-
-# 				u8 = (uint32) u8 >> 23
-# srl <u8=int64#7,23,>u8=int64#7
-# srl <u8=%g1,23,>u8=%g1
-srl %g1,23,%g1
-
-# 						u13 = x12 + x15
-# add <x12=int64#21,<x15=int64#24,>u13=int64#8
-# add <x12=%l4,<x15=%l7,>u13=%g4
-add %l4,%l7,%g4
-
-# 		u7 |= z7
-# or  <u7=int64#6,<z7=int64#3,>u7=int64#3
-# or  <u7=%i5,<z7=%i2,>u7=%i2
-or  %i5,%i2,%i2
-
-# x2 ^= u2
-# xor <x2=int64#11,<u2=int64#1,>x2=int64#11
-# xor <x2=%o1,<u2=%i0,>x2=%o1
-xor %o1,%i0,%o1
-
-# 						z13 = (uint32) u13 << 9
-# sll <u13=int64#8,9,>z13=int64#5
-# sll <u13=%g4,9,>z13=%i4
-sll %g4,9,%i4
-
-# 		x7 ^= u7
-# xor <x7=int64#16,<u7=int64#3,>x7=int64#16
-# xor <x7=%o7,<u7=%i2,>x7=%o7
-xor %o7,%i2,%o7
-
-# 						u13 = (uint32) u13 >> 23
-# srl <u13=int64#8,23,>u13=int64#8
-# srl <u13=%g4,23,>u13=%g4
-srl %g4,23,%g4
-
-# 				u8 |= z8
-# or  <u8=int64#7,<z8=int64#4,>u8=int64#3
-# or  <u8=%g1,<z8=%i3,>u8=%i2
-or  %g1,%i3,%i2
-
-# u3 = x2 + x1
-# add <x2=int64#11,<x1=int64#10,>u3=int64#4
-# add <x2=%o1,<x1=%o0,>u3=%i3
-add %o1,%o0,%i3
-
-# 		u4 = x7 + x6
-# add <x7=int64#16,<x6=int64#15,>u4=int64#6
-# add <x7=%o7,<x6=%o5,>u4=%i5
-add %o7,%o5,%i5
-
-# z3 = (uint32) u3 << 13
-# sll <u3=int64#4,13,>z3=int64#1
-# sll <u3=%i3,13,>z3=%i0
-sll %i3,13,%i0
-
-# 				x8 ^= u8
-# xor <x8=int64#17,<u8=int64#3,>x8=int64#17
-# xor <x8=%l0,<u8=%i2,>x8=%l0
-xor %l0,%i2,%l0
-
-# 		z4 = (uint32) u4 << 13
-# sll <u4=int64#6,13,>z4=int64#3
-# sll <u4=%i5,13,>z4=%i2
-sll %i5,13,%i2
-
-# 						u13 |= z13
-# or  <u13=int64#8,<z13=int64#5,>u13=int64#8
-# or  <u13=%g4,<z13=%i4,>u13=%g4
-or  %g4,%i4,%g4
-
-# u3 = (uint32) u3 >> 19
-# srl <u3=int64#4,19,>u3=int64#5
-# srl <u3=%i3,19,>u3=%i4
-srl %i3,19,%i4
-
-# 				u9 = x8 + x11
-# add <x8=int64#17,<x11=int64#20,>u9=int64#7
-# add <x8=%l0,<x11=%l3,>u9=%g1
-add %l0,%l3,%g1
-
-# 		u4 = (uint32) u4 >> 19
-# srl <u4=int64#6,19,>u4=int64#6
-# srl <u4=%i5,19,>u4=%i5
-srl %i5,19,%i5
-
-# 						x13 ^= u13
-# xor <x13=int64#22,<u13=int64#8,>x13=int64#22
-# xor <x13=%l5,<u13=%g4,>x13=%l5
-xor %l5,%g4,%l5
-
-# 				z9 = (uint32) u9 << 13
-# sll <u9=int64#7,13,>z9=int64#4
-# sll <u9=%g1,13,>z9=%i3
-sll %g1,13,%i3
-
-# u3 |= z3
-# or  <u3=int64#5,<z3=int64#1,>u3=int64#1
-# or  <u3=%i4,<z3=%i0,>u3=%i0
-or  %i4,%i0,%i0
-
-# 				u9 = (uint32) u9 >> 19
-# srl <u9=int64#7,19,>u9=int64#7
-# srl <u9=%g1,19,>u9=%g1
-srl %g1,19,%g1
-
-# 						u14 = x13 + x12
-# add <x13=int64#22,<x12=int64#21,>u14=int64#8
-# add <x13=%l5,<x12=%l4,>u14=%g4
-add %l5,%l4,%g4
-
-# 		u4 |= z4
-# or  <u4=int64#6,<z4=int64#3,>u4=int64#3
-# or  <u4=%i5,<z4=%i2,>u4=%i2
-or  %i5,%i2,%i2
-
-# x3 ^= u3
-# xor <x3=int64#12,<u3=int64#1,>x3=int64#12
-# xor <x3=%o2,<u3=%i0,>x3=%o2
-xor %o2,%i0,%o2
-
-# 						z14 = (uint32) u14 << 13
-# sll <u14=int64#8,13,>z14=int64#5
-# sll <u14=%g4,13,>z14=%i4
-sll %g4,13,%i4
-
-# 		x4 ^= u4
-# xor <x4=int64#13,<u4=int64#3,>x4=int64#13
-# xor <x4=%o3,<u4=%i2,>x4=%o3
-xor %o3,%i2,%o3
-
-# 						u14 = (uint32) u14 >> 19
-# srl <u14=int64#8,19,>u14=int64#8
-# srl <u14=%g4,19,>u14=%g4
-srl %g4,19,%g4
-
-# 				u9 |= z9
-# or  <u9=int64#7,<z9=int64#4,>u9=int64#3
-# or  <u9=%g1,<z9=%i3,>u9=%i2
-or  %g1,%i3,%i2
-
-# u0 = x3 + x2
-# add <x3=int64#12,<x2=int64#11,>u0=int64#4
-# add <x3=%o2,<x2=%o1,>u0=%i3
-add %o2,%o1,%i3
-
-# 		u5 = x4 + x7
-# add <x4=int64#13,<x7=int64#16,>u5=int64#6
-# add <x4=%o3,<x7=%o7,>u5=%i5
-add %o3,%o7,%i5
-
-# z0 = (uint32) u0 << 18
-# sll <u0=int64#4,18,>z0=int64#1
-# sll <u0=%i3,18,>z0=%i0
-sll %i3,18,%i0
-
-# 				x9 ^= u9
-# xor <x9=int64#18,<u9=int64#3,>x9=int64#18
-# xor <x9=%l1,<u9=%i2,>x9=%l1
-xor %l1,%i2,%l1
-
-# 		z5 = (uint32) u5 << 18
-# sll <u5=int64#6,18,>z5=int64#3
-# sll <u5=%i5,18,>z5=%i2
-sll %i5,18,%i2
-
-# 						u14 |= z14
-# or  <u14=int64#8,<z14=int64#5,>u14=int64#8
-# or  <u14=%g4,<z14=%i4,>u14=%g4
-or  %g4,%i4,%g4
-
-# u0 = (uint32) u0 >> 14
-# srl <u0=int64#4,14,>u0=int64#5
-# srl <u0=%i3,14,>u0=%i4
-srl %i3,14,%i4
-
-# 				u10 = x9 + x8
-# add <x9=int64#18,<x8=int64#17,>u10=int64#7
-# add <x9=%l1,<x8=%l0,>u10=%g1
-add %l1,%l0,%g1
-
-# 		u5 = (uint32) u5 >> 14
-# srl <u5=int64#6,14,>u5=int64#6
-# srl <u5=%i5,14,>u5=%i5
-srl %i5,14,%i5
-
-# 						x14 ^= u14
-# xor <x14=int64#23,<u14=int64#8,>x14=int64#23
-# xor <x14=%l6,<u14=%g4,>x14=%l6
-xor %l6,%g4,%l6
-
-# 				z10 = (uint32) u10 << 18
-# sll <u10=int64#7,18,>z10=int64#4
-# sll <u10=%g1,18,>z10=%i3
-sll %g1,18,%i3
-
-# u0 |= z0
-# or  <u0=int64#5,<z0=int64#1,>u0=int64#1
-# or  <u0=%i4,<z0=%i0,>u0=%i0
-or  %i4,%i0,%i0
-
-# 				u10 = (uint32) u10 >> 14
-# srl <u10=int64#7,14,>u10=int64#5
-# srl <u10=%g1,14,>u10=%i4
-srl %g1,14,%i4
-
-# 						u15 = x14 + x13
-# add <x14=int64#23,<x13=int64#22,>u15=int64#7
-# add <x14=%l6,<x13=%l5,>u15=%g1
-add %l6,%l5,%g1
-
-# 		u5 |= z5
-# or  <u5=int64#6,<z5=int64#3,>u5=int64#3
-# or  <u5=%i5,<z5=%i2,>u5=%i2
-or  %i5,%i2,%i2
-
-# x0 ^= u0
-# xor <x0=int64#9,<u0=int64#1,>x0=int64#9
-# xor <x0=%g5,<u0=%i0,>x0=%g5
-xor %g5,%i0,%g5
-
-# 						z15 = (uint32) u15 << 18
-# sll <u15=int64#7,18,>z15=int64#1
-# sll <u15=%g1,18,>z15=%i0
-sll %g1,18,%i0
-
-# 		x5 ^= u5
-# xor <x5=int64#14,<u5=int64#3,>x5=int64#14
-# xor <x5=%o4,<u5=%i2,>x5=%o4
-xor %o4,%i2,%o4
-
-# 						u15 = (uint32) u15 >> 14
-# srl <u15=int64#7,14,>u15=int64#6
-# srl <u15=%g1,14,>u15=%i5
-srl %g1,14,%i5
-
-# flags i -= 2
-# subcc <i=int64#2,2,>i=int64#2
-# subcc <i=%i1,2,>i=%i1
-subcc %i1,2,%i1
-
-# 				u10 |= z10
-# or  <u10=int64#5,<z10=int64#4,>u10=int64#3
-# or  <u10=%i4,<z10=%i3,>u10=%i2
-or  %i4,%i3,%i2
-
-# 						u15 |= z15
-# or  <u15=int64#6,<z15=int64#1,>u15=int64#1
-# or  <u15=%i5,<z15=%i0,>u15=%i0
+# qhasm: 						z15 = (uint32) u15 << 18
+# asm 1: sll <u15=int64#22,18,>z15=int64#5
+# asm 2: sll <u15=%l5,18,>z15=%i4
+sll %l5,18,%i4
+
+# qhasm: 		x5 ^= u5
+# asm 1: xor <x5=int64#11,<u5=int64#2,>x5=int64#11
+# asm 2: xor <x5=%o1,<u5=%i1,>x5=%o1
+xor %o1,%i1,%o1
+
+# qhasm: 						u15 = (uint32) u15 >> 14
+# asm 1: srl <u15=int64#22,14,>u15=int64#2
+# asm 2: srl <u15=%l5,14,>u15=%i1
+srl %l5,14,%i1
+
+# qhasm:                  unsigned>? i -= 2
+# asm 1: subcc <i=int64#4,2,>i=int64#4
+# asm 2: subcc <i=%i3,2,>i=%i3
+subcc %i3,2,%i3
+
+# qhasm: 				u10 |= z10
+# asm 1: or  <u10=int64#6,<z10=int64#1,>u10=int64#1
+# asm 2: or  <u10=%i5,<z10=%i0,>u10=%i0
 or  %i5,%i0,%i0
 
-# 				x10 ^= u10
-# xor <x10=int64#19,<u10=int64#3,>x10=int64#19
-# xor <x10=%l2,<u10=%i2,>x10=%l2
-xor %l2,%i2,%l2
-
-# 						x15 ^= u15
-# xor <x15=int64#24,<u15=int64#1,>x15=int64#24
-# xor <x15=%l7,<u15=%i0,>x15=%l7
-xor %l7,%i0,%l7
+# qhasm: 						u15 |= z15
+# asm 1: or  <u15=int64#2,<z15=int64#5,>u15=int64#2
+# asm 2: or  <u15=%i1,<z15=%i4,>u15=%i1
+or  %i1,%i4,%i1
+
+# qhasm: 				x10 ^= u10
+# asm 1: xor <x10=int64#16,<u10=int64#1,>x10=int64#16
+# asm 2: xor <x10=%o7,<u10=%i0,>x10=%o7
+xor %o7,%i0,%o7
+
+# qhasm: 						x15 ^= u15
+# asm 1: xor <x15=int64#21,<u15=int64#2,>x15=int64#21
+# asm 2: xor <x15=%l4,<u15=%i1,>x15=%l4
+xor %l4,%i1,%l4
 
-# goto mainloop if unsigned>
+# qhasm: goto mainloop if unsigned>
 bgu,pt %xcc,._mainloop
 nop
 
-#   x = x_stack
-# ldx [%fp+2023-<x_stack=stack64#5],>x=int64#1
-# ldx [%fp+2023-<x_stack=96],>x=%i0
-ldx [%fp+2023-96],%i0
-
-#   q0 = *(uint32 *) (x + 0)
-# lduw [<x=int64#1+0],>q0=int64#2
-# lduw [<x=%i0+0],>q0=%i1
+# qhasm:   x = x_stack
+# asm 1: ldx [%fp+2023-<x_stack=stack64#5],>x=int64#1
+# asm 2: ldx [%fp+2023-<x_stack=32],>x=%i0
+ldx [%fp+2023-32],%i0
+
+# qhasm:   q0 = *(uint32 *) (x + 0)
+# asm 1: lduw [<x=int64#1+0],>q0=int64#2
+# asm 2: lduw [<x=%i0+0],>q0=%i1
 lduw [%i0+0],%i1
 
-#   q1 = *(uint32 *) (x + 4)
-# lduw [<x=int64#1+4],>q1=int64#4
-# lduw [<x=%i0+4],>q1=%i3
+# qhasm:   q1 = *(uint32 *) (x + 4)
+# asm 1: lduw [<x=int64#1+4],>q1=int64#4
+# asm 2: lduw [<x=%i0+4],>q1=%i3
 lduw [%i0+4],%i3
 
-#   q2 = *(uint32 *) (x + 8)
-# lduw [<x=int64#1+8],>q2=int64#5
-# lduw [<x=%i0+8],>q2=%i4
+# qhasm:   q2 = *(uint32 *) (x + 8)
+# asm 1: lduw [<x=int64#1+8],>q2=int64#5
+# asm 2: lduw [<x=%i0+8],>q2=%i4
 lduw [%i0+8],%i4
 
-#   q3 = *(uint32 *) (x + 12)
-# lduw [<x=int64#1+12],>q3=int64#7
-# lduw [<x=%i0+12],>q3=%g1
-lduw [%i0+12],%g1
-
-#   x0 += q0
-# add <x0=int64#9,<q0=int64#2,>x0=int64#3
-# add <x0=%g5,<q0=%i1,>x0=%i2
-add %g5,%i1,%i2
-
-#   q4 = *(uint32 *) (x + 16)
-# lduw [<x=int64#1+16],>q4=int64#2
-# lduw [<x=%i0+16],>q4=%i1
-lduw [%i0+16],%i1
-
-#   x1 += q1
-# add <x1=int64#10,<q1=int64#4,>x1=int64#4
-# add <x1=%o0,<q1=%i3,>x1=%i3
-add %o0,%i3,%i3
-
-#   q5 = *(uint32 *) (x + 20)
-# lduw [<x=int64#1+20],>q5=int64#9
-# lduw [<x=%i0+20],>q5=%g5
-lduw [%i0+20],%g5
-
-#   x2 += q2
-# add <x2=int64#11,<q2=int64#5,>x2=int64#6
-# add <x2=%o1,<q2=%i4,>x2=%i5
-add %o1,%i4,%i5
-
-#   q6 = *(uint32 *) (x + 24)
-# lduw [<x=int64#1+24],>q6=int64#5
-# lduw [<x=%i0+24],>q6=%i4
-lduw [%i0+24],%i4
-
-#   x3 += q3
-# add <x3=int64#12,<q3=int64#7,>x3=int64#7
-# add <x3=%o2,<q3=%g1,>x3=%g1
-add %o2,%g1,%g1
-
-#   q7 = *(uint32 *) (x + 28)
-# lduw [<x=int64#1+28],>q7=int64#11
-# lduw [<x=%i0+28],>q7=%o1
-lduw [%i0+28],%o1
-
-#   x4 += q4
-# add <x4=int64#13,<q4=int64#2,>x4=int64#8
-# add <x4=%o3,<q4=%i1,>x4=%g4
-add %o3,%i1,%g4
-
-#   q8 = *(uint32 *) (x + 32)
-# lduw [<x=int64#1+32],>q8=int64#2
-# lduw [<x=%i0+32],>q8=%i1
-lduw [%i0+32],%i1
-
-#   x5 += q5
-# add <x5=int64#14,<q5=int64#9,>x5=int64#9
-# add <x5=%o4,<q5=%g5,>x5=%g5
-add %o4,%g5,%g5
-
-#   q9 = *(uint32 *) (x + 36)
-# lduw [<x=int64#1+36],>q9=int64#14
-# lduw [<x=%i0+36],>q9=%o4
-lduw [%i0+36],%o4
-
-#   x6 += q6
-# add <x6=int64#15,<q6=int64#5,>x6=int64#10
-# add <x6=%o5,<q6=%i4,>x6=%o0
-add %o5,%i4,%o0
-
-#   q10 = *(uint32 *) (x + 40)
-# lduw [<x=int64#1+40],>q10=int64#5
-# lduw [<x=%i0+40],>q10=%i4
-lduw [%i0+40],%i4
-
-#   x7 += q7
-# add <x7=int64#16,<q7=int64#11,>x7=int64#11
-# add <x7=%o7,<q7=%o1,>x7=%o1
-add %o7,%o1,%o1
-
-#   q11 = *(uint32 *) (x + 44)
-# lduw [<x=int64#1+44],>q11=int64#15
-# lduw [<x=%i0+44],>q11=%o5
-lduw [%i0+44],%o5
-
-#   x8 += q8
-# add <x8=int64#17,<q8=int64#2,>x8=int64#12
-# add <x8=%l0,<q8=%i1,>x8=%o2
-add %l0,%i1,%o2
-
-#   q8 += 1
-# add <q8=int64#2,1,>q8=int64#2
-# add <q8=%i1,1,>q8=%i1
-add %i1,1,%i1
-
-#   *(uint32 *) (x + 32) = q8
-# stw <q8=int64#2,[<x=int64#1+32]
-# stw <q8=%i1,[<x=%i0+32]
-stw %i1,[%i0+32]
-
-#   q8 = (uint64) q8 >> 32
-# srlx <q8=int64#2,32,>q8=int64#2
-# srlx <q8=%i1,32,>q8=%i1
-srlx %i1,32,%i1
-
-#   q12 = *(uint32 *) (x + 48)
-# lduw [<x=int64#1+48],>q12=int64#16
-# lduw [<x=%i0+48],>q12=%o7
-lduw [%i0+48],%o7
-
-#   x9 += q9
-# add <x9=int64#18,<q9=int64#14,>x9=int64#13
-# add <x9=%l1,<q9=%o4,>x9=%o3
-add %l1,%o4,%o3
-
-#   q9 += q8
-# add <q9=int64#14,<q8=int64#2,>q9=int64#2
-# add <q9=%o4,<q8=%i1,>q9=%i1
-add %o4,%i1,%i1
-
-#   *(uint32 *) (x + 36) = q9
-# stw <q9=int64#2,[<x=int64#1+36]
-# stw <q9=%i1,[<x=%i0+36]
-stw %i1,[%i0+36]
-
-#   q13 = *(uint32 *) (x + 52)
-# lduw [<x=int64#1+52],>q13=int64#2
-# lduw [<x=%i0+52],>q13=%i1
-lduw [%i0+52],%i1
-
-#   x10 += q10
-# add <x10=int64#19,<q10=int64#5,>x10=int64#14
-# add <x10=%l2,<q10=%i4,>x10=%o4
-add %l2,%i4,%o4
-
-#   q14 = *(uint32 *) (x + 56)
-# lduw [<x=int64#1+56],>q14=int64#5
-# lduw [<x=%i0+56],>q14=%i4
-lduw [%i0+56],%i4
-
-#   x11 += q11
-# add <x11=int64#20,<q11=int64#15,>x11=int64#15
-# add <x11=%l3,<q11=%o5,>x11=%o5
-add %l3,%o5,%o5
-
-#   q15 = *(uint32 *) (x + 60)
-# lduw [<x=int64#1+60],>q15=int64#19
-# lduw [<x=%i0+60],>q15=%l2
-lduw [%i0+60],%l2
-
-#   x12 += q12
-# add <x12=int64#21,<q12=int64#16,>x12=int64#16
-# add <x12=%l4,<q12=%o7,>x12=%o7
+# qhasm:   q3 = *(uint32 *) (x + 12)
+# asm 1: lduw [<x=int64#1+12],>q3=int64#6
+# asm 2: lduw [<x=%i0+12],>q3=%i5
+lduw [%i0+12],%i5
+
+# qhasm:   x0 += q0
+# asm 1: add <x0=int64#3,<q0=int64#2,>x0=int64#2
+# asm 2: add <x0=%i2,<q0=%i1,>x0=%i1
+add %i2,%i1,%i1
+
+# qhasm:   q4 = *(uint32 *) (x + 16)
+# asm 1: lduw [<x=int64#1+16],>q4=int64#3
+# asm 2: lduw [<x=%i0+16],>q4=%i2
+lduw [%i0+16],%i2
+
+# qhasm:   x1 += q1
+# asm 1: add <x1=int64#7,<q1=int64#4,>x1=int64#4
+# asm 2: add <x1=%g1,<q1=%i3,>x1=%i3
+add %g1,%i3,%i3
+
+# qhasm:   q5 = *(uint32 *) (x + 20)
+# asm 1: lduw [<x=int64#1+20],>q5=int64#7
+# asm 2: lduw [<x=%i0+20],>q5=%g1
+lduw [%i0+20],%g1
+
+# qhasm:   x2 += q2
+# asm 1: add <x2=int64#8,<q2=int64#5,>x2=int64#5
+# asm 2: add <x2=%g4,<q2=%i4,>x2=%i4
+add %g4,%i4,%i4
+
+# qhasm:   q6 = *(uint32 *) (x + 24)
+# asm 1: lduw [<x=int64#1+24],>q6=int64#8
+# asm 2: lduw [<x=%i0+24],>q6=%g4
+lduw [%i0+24],%g4
+
+# qhasm:   x3 += q3
+# asm 1: add <x3=int64#9,<q3=int64#6,>x3=int64#6
+# asm 2: add <x3=%g5,<q3=%i5,>x3=%i5
+add %g5,%i5,%i5
+
+# qhasm:   q7 = *(uint32 *) (x + 28)
+# asm 1: lduw [<x=int64#1+28],>q7=int64#9
+# asm 2: lduw [<x=%i0+28],>q7=%g5
+lduw [%i0+28],%g5
+
+# qhasm:   x4 += q4
+# asm 1: add <x4=int64#10,<q4=int64#3,>x4=int64#3
+# asm 2: add <x4=%o0,<q4=%i2,>x4=%i2
+add %o0,%i2,%i2
+
+# qhasm:   q8 = *(uint32 *) (x + 32)
+# asm 1: lduw [<x=int64#1+32],>q8=int64#10
+# asm 2: lduw [<x=%i0+32],>q8=%o0
+lduw [%i0+32],%o0
+
+# qhasm:   x5 += q5
+# asm 1: add <x5=int64#11,<q5=int64#7,>x5=int64#7
+# asm 2: add <x5=%o1,<q5=%g1,>x5=%g1
+add %o1,%g1,%g1
+
+# qhasm:   q9 = *(uint32 *) (x + 36)
+# asm 1: lduw [<x=int64#1+36],>q9=int64#11
+# asm 2: lduw [<x=%i0+36],>q9=%o1
+lduw [%i0+36],%o1
+
+# qhasm:   x6 += q6
+# asm 1: add <x6=int64#12,<q6=int64#8,>x6=int64#8
+# asm 2: add <x6=%o2,<q6=%g4,>x6=%g4
+add %o2,%g4,%g4
+
+# qhasm:   q10 = *(uint32 *) (x + 40)
+# asm 1: lduw [<x=int64#1+40],>q10=int64#12
+# asm 2: lduw [<x=%i0+40],>q10=%o2
+lduw [%i0+40],%o2
+
+# qhasm:   x7 += q7
+# asm 1: add <x7=int64#13,<q7=int64#9,>x7=int64#9
+# asm 2: add <x7=%o3,<q7=%g5,>x7=%g5
+add %o3,%g5,%g5
+
+# qhasm:   q11 = *(uint32 *) (x + 44)
+# asm 1: lduw [<x=int64#1+44],>q11=int64#13
+# asm 2: lduw [<x=%i0+44],>q11=%o3
+lduw [%i0+44],%o3
+
+# qhasm:   x8 += q8
+# asm 1: add <x8=int64#14,<q8=int64#10,>x8=int64#14
+# asm 2: add <x8=%o4,<q8=%o0,>x8=%o4
+add %o4,%o0,%o4
+
+# qhasm:   q8 += 1
+# asm 1: add <q8=int64#10,1,>q8=int64#10
+# asm 2: add <q8=%o0,1,>q8=%o0
+add %o0,1,%o0
+
+# qhasm:   *(uint32 *) (x + 32) = q8
+# asm 1: stw <q8=int64#10,[<x=int64#1+32]
+# asm 2: stw <q8=%o0,[<x=%i0+32]
+stw %o0,[%i0+32]
+
+# qhasm:   q8 = (uint64) q8 >> 32
+# asm 1: srlx <q8=int64#10,32,>q8=int64#10
+# asm 2: srlx <q8=%o0,32,>q8=%o0
+srlx %o0,32,%o0
+
+# qhasm:   q12 = *(uint32 *) (x + 48)
+# asm 1: lduw [<x=int64#1+48],>q12=int64#22
+# asm 2: lduw [<x=%i0+48],>q12=%l5
+lduw [%i0+48],%l5
+
+# qhasm:   x9 += q9
+# asm 1: add <x9=int64#15,<q9=int64#11,>x9=int64#15
+# asm 2: add <x9=%o5,<q9=%o1,>x9=%o5
+add %o5,%o1,%o5
+
+# qhasm:   q9 += q8
+# asm 1: add <q9=int64#11,<q8=int64#10,>q9=int64#10
+# asm 2: add <q9=%o1,<q8=%o0,>q9=%o0
+add %o1,%o0,%o0
+
+# qhasm:   *(uint32 *) (x + 36) = q9
+# asm 1: stw <q9=int64#10,[<x=int64#1+36]
+# asm 2: stw <q9=%o0,[<x=%i0+36]
+stw %o0,[%i0+36]
+
+# qhasm:   q13 = *(uint32 *) (x + 52)
+# asm 1: lduw [<x=int64#1+52],>q13=int64#10
+# asm 2: lduw [<x=%i0+52],>q13=%o0
+lduw [%i0+52],%o0
+
+# qhasm:   x10 += q10
+# asm 1: add <x10=int64#16,<q10=int64#12,>x10=int64#11
+# asm 2: add <x10=%o7,<q10=%o2,>x10=%o1
+add %o7,%o2,%o1
+
+# qhasm:   q14 = *(uint32 *) (x + 56)
+# asm 1: lduw [<x=int64#1+56],>q14=int64#12
+# asm 2: lduw [<x=%i0+56],>q14=%o2
+lduw [%i0+56],%o2
+
+# qhasm:   x11 += q11
+# asm 1: add <x11=int64#17,<q11=int64#13,>x11=int64#13
+# asm 2: add <x11=%l0,<q11=%o3,>x11=%o3
+add %l0,%o3,%o3
+
+# qhasm:   q15 = *(uint32 *) (x + 60)
+# asm 1: lduw [<x=int64#1+60],>q15=int64#16
+# asm 2: lduw [<x=%i0+60],>q15=%o7
+lduw [%i0+60],%o7
+
+# qhasm:   x12 += q12
+# asm 1: add <x12=int64#18,<q12=int64#22,>x12=int64#17
+# asm 2: add <x12=%l1,<q12=%l5,>x12=%l0
+add %l1,%l5,%l0
+
+# qhasm:   x13 += q13
+# asm 1: add <x13=int64#19,<q13=int64#10,>x13=int64#10
+# asm 2: add <x13=%l2,<q13=%o0,>x13=%o0
+add %l2,%o0,%o0
+
+# qhasm:   x14 += q14
+# asm 1: add <x14=int64#20,<q14=int64#12,>x14=int64#12
+# asm 2: add <x14=%l3,<q14=%o2,>x14=%o2
+add %l3,%o2,%o2
+
+# qhasm:   x15 += q15
+# asm 1: add <x15=int64#21,<q15=int64#16,>x15=int64#16
+# asm 2: add <x15=%l4,<q15=%o7,>x15=%o7
 add %l4,%o7,%o7
 
-#   x13 += q13
-# add <x13=int64#22,<q13=int64#2,>x13=int64#17
-# add <x13=%l5,<q13=%i1,>x13=%l0
-add %l5,%i1,%l0
-
-#   x14 += q14
-# add <x14=int64#23,<q14=int64#5,>x14=int64#18
-# add <x14=%l6,<q14=%i4,>x14=%l1
-add %l6,%i4,%l1
-
-#   x15 += q15
-# add <x15=int64#24,<q15=int64#19,>x15=int64#19
-# add <x15=%l7,<q15=%l2,>x15=%l2
-add %l7,%l2,%l2
-
-#   m = m_stack
-# ldx [%fp+2023-<m_stack=stack64#4],>m=int64#2
-# ldx [%fp+2023-<m_stack=88],>m=%i1
-ldx [%fp+2023-88],%i1
-
-#   m0 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m0=int64#5
-# lduwa [<m=%i1] 0x88,>m0=%i4
-lduwa [%i1] 0x88,%i4
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   m1 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m1=int64#20
-# lduwa [<m=%i1] 0x88,>m1=%l3
-lduwa [%i1] 0x88,%l3
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   m2 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m2=int64#21
-# lduwa [<m=%i1] 0x88,>m2=%l4
-lduwa [%i1] 0x88,%l4
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   m3 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m3=int64#22
-# lduwa [<m=%i1] 0x88,>m3=%l5
-lduwa [%i1] 0x88,%l5
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   x0 ^= m0
-# xor <x0=int64#3,<m0=int64#5,>x0=int64#3
-# xor <x0=%i2,<m0=%i4,>x0=%i2
-xor %i2,%i4,%i2
-
-#   m4 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m4=int64#23
-# lduwa [<m=%i1] 0x88,>m4=%l6
-lduwa [%i1] 0x88,%l6
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   x1 ^= m1
-# xor <x1=int64#4,<m1=int64#20,>x1=int64#5
-# xor <x1=%i3,<m1=%l3,>x1=%i4
-xor %i3,%l3,%i4
-
-#   m5 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m5=int64#4
-# lduwa [<m=%i1] 0x88,>m5=%i3
-lduwa [%i1] 0x88,%i3
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   x2 ^= m2
-# xor <x2=int64#6,<m2=int64#21,>x2=int64#6
-# xor <x2=%i5,<m2=%l4,>x2=%i5
-xor %i5,%l4,%i5
-
-#   m6 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m6=int64#20
-# lduwa [<m=%i1] 0x88,>m6=%l3
-lduwa [%i1] 0x88,%l3
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   x3 ^= m3
-# xor <x3=int64#7,<m3=int64#22,>x3=int64#7
-# xor <x3=%g1,<m3=%l5,>x3=%g1
-xor %g1,%l5,%g1
-
-#   m7 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m7=int64#21
-# lduwa [<m=%i1] 0x88,>m7=%l4
-lduwa [%i1] 0x88,%l4
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   x4 ^= m4
-# xor <x4=int64#8,<m4=int64#23,>x4=int64#8
-# xor <x4=%g4,<m4=%l6,>x4=%g4
-xor %g4,%l6,%g4
-
-#   m8 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m8=int64#22
-# lduwa [<m=%i1] 0x88,>m8=%l5
-lduwa [%i1] 0x88,%l5
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   x5 ^= m5
-# xor <x5=int64#9,<m5=int64#4,>x5=int64#9
-# xor <x5=%g5,<m5=%i3,>x5=%g5
-xor %g5,%i3,%g5
-
-#   m9 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m9=int64#4
-# lduwa [<m=%i1] 0x88,>m9=%i3
-lduwa [%i1] 0x88,%i3
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
+# qhasm:   m = m_stack
+# asm 1: ldx [%fp+2023-<m_stack=stack64#4],>m=int64#18
+# asm 2: ldx [%fp+2023-<m_stack=24],>m=%l1
+ldx [%fp+2023-24],%l1
+
+# qhasm:   m0 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m0=int64#19
+# asm 2: lduwa [<m=%l1] 0x88,>m0=%l2
+lduwa [%l1] 0x88,%l2
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   m1 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m1=int64#20
+# asm 2: lduwa [<m=%l1] 0x88,>m1=%l3
+lduwa [%l1] 0x88,%l3
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   m2 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m2=int64#21
+# asm 2: lduwa [<m=%l1] 0x88,>m2=%l4
+lduwa [%l1] 0x88,%l4
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   m3 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m3=int64#22
+# asm 2: lduwa [<m=%l1] 0x88,>m3=%l5
+lduwa [%l1] 0x88,%l5
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x0 ^= m0
+# asm 1: xor <x0=int64#2,<m0=int64#19,>x0=int64#2
+# asm 2: xor <x0=%i1,<m0=%l2,>x0=%i1
+xor %i1,%l2,%i1
+
+# qhasm:   m4 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m4=int64#19
+# asm 2: lduwa [<m=%l1] 0x88,>m4=%l2
+lduwa [%l1] 0x88,%l2
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x1 ^= m1
+# asm 1: xor <x1=int64#4,<m1=int64#20,>x1=int64#4
+# asm 2: xor <x1=%i3,<m1=%l3,>x1=%i3
+xor %i3,%l3,%i3
+
+# qhasm:   m5 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m5=int64#20
+# asm 2: lduwa [<m=%l1] 0x88,>m5=%l3
+lduwa [%l1] 0x88,%l3
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x2 ^= m2
+# asm 1: xor <x2=int64#5,<m2=int64#21,>x2=int64#5
+# asm 2: xor <x2=%i4,<m2=%l4,>x2=%i4
+xor %i4,%l4,%i4
+
+# qhasm:   m6 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m6=int64#21
+# asm 2: lduwa [<m=%l1] 0x88,>m6=%l4
+lduwa [%l1] 0x88,%l4
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x3 ^= m3
+# asm 1: xor <x3=int64#6,<m3=int64#22,>x3=int64#22
+# asm 2: xor <x3=%i5,<m3=%l5,>x3=%l5
+xor %i5,%l5,%l5
+
+# qhasm:   m7 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m7=int64#6
+# asm 2: lduwa [<m=%l1] 0x88,>m7=%i5
+lduwa [%l1] 0x88,%i5
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x4 ^= m4
+# asm 1: xor <x4=int64#3,<m4=int64#19,>x4=int64#3
+# asm 2: xor <x4=%i2,<m4=%l2,>x4=%i2
+xor %i2,%l2,%i2
+
+# qhasm:   m8 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m8=int64#19
+# asm 2: lduwa [<m=%l1] 0x88,>m8=%l2
+lduwa [%l1] 0x88,%l2
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x5 ^= m5
+# asm 1: xor <x5=int64#7,<m5=int64#20,>x5=int64#7
+# asm 2: xor <x5=%g1,<m5=%l3,>x5=%g1
+xor %g1,%l3,%g1
+
+# qhasm:   m9 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m9=int64#20
+# asm 2: lduwa [<m=%l1] 0x88,>m9=%l3
+lduwa [%l1] 0x88,%l3
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x6 ^= m6
+# asm 1: xor <x6=int64#8,<m6=int64#21,>x6=int64#8
+# asm 2: xor <x6=%g4,<m6=%l4,>x6=%g4
+xor %g4,%l4,%g4
+
+# qhasm:   m10 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m10=int64#21
+# asm 2: lduwa [<m=%l1] 0x88,>m10=%l4
+lduwa [%l1] 0x88,%l4
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x7 ^= m7
+# asm 1: xor <x7=int64#9,<m7=int64#6,>x7=int64#9
+# asm 2: xor <x7=%g5,<m7=%i5,>x7=%g5
+xor %g5,%i5,%g5
+
+# qhasm:   m11 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m11=int64#6
+# asm 2: lduwa [<m=%l1] 0x88,>m11=%i5
+lduwa [%l1] 0x88,%i5
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x8 ^= m8
+# asm 1: xor <x8=int64#14,<m8=int64#19,>x8=int64#14
+# asm 2: xor <x8=%o4,<m8=%l2,>x8=%o4
+xor %o4,%l2,%o4
+
+# qhasm:   m12 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m12=int64#19
+# asm 2: lduwa [<m=%l1] 0x88,>m12=%l2
+lduwa [%l1] 0x88,%l2
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x9 ^= m9
+# asm 1: xor <x9=int64#15,<m9=int64#20,>x9=int64#15
+# asm 2: xor <x9=%o5,<m9=%l3,>x9=%o5
+xor %o5,%l3,%o5
+
+# qhasm:   m13 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m13=int64#20
+# asm 2: lduwa [<m=%l1] 0x88,>m13=%l3
+lduwa [%l1] 0x88,%l3
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x10 ^= m10
+# asm 1: xor <x10=int64#11,<m10=int64#21,>x10=int64#11
+# asm 2: xor <x10=%o1,<m10=%l4,>x10=%o1
+xor %o1,%l4,%o1
 
-#   x6 ^= m6
-# xor <x6=int64#10,<m6=int64#20,>x6=int64#10
-# xor <x6=%o0,<m6=%l3,>x6=%o0
+# qhasm:   m14 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m14=int64#21
+# asm 2: lduwa [<m=%l1] 0x88,>m14=%l4
+lduwa [%l1] 0x88,%l4
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x11 ^= m11
+# asm 1: xor <x11=int64#13,<m11=int64#6,>x11=int64#13
+# asm 2: xor <x11=%o3,<m11=%i5,>x11=%o3
+xor %o3,%i5,%o3
+
+# qhasm:   m15 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m15=int64#23
+# asm 2: lduwa [<m=%l1] 0x88,>m15=%l6
+lduwa [%l1] 0x88,%l6
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#6
+# asm 2: add <m=%l1,4,>m=%i5
+add %l1,4,%i5
+
+# qhasm:   x12 ^= m12
+# asm 1: xor <x12=int64#17,<m12=int64#19,>x12=int64#17
+# asm 2: xor <x12=%l0,<m12=%l2,>x12=%l0
+xor %l0,%l2,%l0
+
+# qhasm:   x13 ^= m13
+# asm 1: xor <x13=int64#10,<m13=int64#20,>x13=int64#10
+# asm 2: xor <x13=%o0,<m13=%l3,>x13=%o0
 xor %o0,%l3,%o0
 
-#   m10 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m10=int64#20
-# lduwa [<m=%i1] 0x88,>m10=%l3
-lduwa [%i1] 0x88,%l3
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   x7 ^= m7
-# xor <x7=int64#11,<m7=int64#21,>x7=int64#11
-# xor <x7=%o1,<m7=%l4,>x7=%o1
-xor %o1,%l4,%o1
-
-#   m11 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m11=int64#21
-# lduwa [<m=%i1] 0x88,>m11=%l4
-lduwa [%i1] 0x88,%l4
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
+# qhasm:   x14 ^= m14
+# asm 1: xor <x14=int64#12,<m14=int64#21,>x14=int64#12
+# asm 2: xor <x14=%o2,<m14=%l4,>x14=%o2
+xor %o2,%l4,%o2
+
+# qhasm:   x15 ^= m15
+# asm 1: xor <x15=int64#16,<m15=int64#23,>x15=int64#16
+# asm 2: xor <x15=%o7,<m15=%l6,>x15=%o7
+xor %o7,%l6,%o7
+
+# qhasm:   out = out_stack
+# asm 1: ldx [%fp+2023-<out_stack=stack64#3],>out=int64#18
+# asm 2: ldx [%fp+2023-<out_stack=16],>out=%l1
+ldx [%fp+2023-16],%l1
+
+# qhasm:   *(swapendian uint32 *) out = x0
+# asm 1: stwa <x0=int64#2,[<out=int64#18] 0x88
+# asm 2: stwa <x0=%i1,[<out=%l1] 0x88
+stwa %i1,[%l1] 0x88
+
+# qhasm:   out += 4
+# asm 1: add <out=int64#18,4,>out=int64#2
+# asm 2: add <out=%l1,4,>out=%i1
+add %l1,4,%i1
+
+# qhasm:   *(swapendian uint32 *) out = x1
+# asm 1: stwa <x1=int64#4,[<out=int64#2] 0x88
+# asm 2: stwa <x1=%i3,[<out=%i1] 0x88
+stwa %i3,[%i1] 0x88
+
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
+add %i1,4,%i1
+
+# qhasm:   *(swapendian uint32 *) out = x2
+# asm 1: stwa <x2=int64#5,[<out=int64#2] 0x88
+# asm 2: stwa <x2=%i4,[<out=%i1] 0x88
+stwa %i4,[%i1] 0x88
 
-#   x8 ^= m8
-# xor <x8=int64#12,<m8=int64#22,>x8=int64#12
-# xor <x8=%o2,<m8=%l5,>x8=%o2
-xor %o2,%l5,%o2
-
-#   m12 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m12=int64#22
-# lduwa [<m=%i1] 0x88,>m12=%l5
-lduwa [%i1] 0x88,%l5
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   x9 ^= m9
-# xor <x9=int64#13,<m9=int64#4,>x9=int64#13
-# xor <x9=%o3,<m9=%i3,>x9=%o3
-xor %o3,%i3,%o3
-
-#   m13 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m13=int64#23
-# lduwa [<m=%i1] 0x88,>m13=%l6
-lduwa [%i1] 0x88,%l6
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
+# qhasm:   *(swapendian uint32 *) out = x3
+# asm 1: stwa <x3=int64#22,[<out=int64#2] 0x88
+# asm 2: stwa <x3=%l5,[<out=%i1] 0x88
+stwa %l5,[%i1] 0x88
 
-#   x10 ^= m10
-# xor <x10=int64#14,<m10=int64#20,>x10=int64#14
-# xor <x10=%o4,<m10=%l3,>x10=%o4
-xor %o4,%l3,%o4
-
-#   m14 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m14=int64#20
-# lduwa [<m=%i1] 0x88,>m14=%l3
-lduwa [%i1] 0x88,%l3
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   x11 ^= m11
-# xor <x11=int64#15,<m11=int64#21,>x11=int64#15
-# xor <x11=%o5,<m11=%l4,>x11=%o5
-xor %o5,%l4,%o5
-
-#   m15 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m15=int64#21
-# lduwa [<m=%i1] 0x88,>m15=%l4
-lduwa [%i1] 0x88,%l4
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#4
-# add <m=%i1,4,>m=%i3
-add %i1,4,%i3
-
-#   x12 ^= m12
-# xor <x12=int64#16,<m12=int64#22,>x12=int64#16
-# xor <x12=%o7,<m12=%l5,>x12=%o7
-xor %o7,%l5,%o7
-
-#   x13 ^= m13
-# xor <x13=int64#17,<m13=int64#23,>x13=int64#17
-# xor <x13=%l0,<m13=%l6,>x13=%l0
-xor %l0,%l6,%l0
-
-#   x14 ^= m14
-# xor <x14=int64#18,<m14=int64#20,>x14=int64#18
-# xor <x14=%l1,<m14=%l3,>x14=%l1
-xor %l1,%l3,%l1
-
-#   x15 ^= m15
-# xor <x15=int64#19,<m15=int64#21,>x15=int64#19
-# xor <x15=%l2,<m15=%l4,>x15=%l2
-xor %l2,%l4,%l2
-
-#   out = out_stack
-# ldx [%fp+2023-<out_stack=stack64#3],>out=int64#2
-# ldx [%fp+2023-<out_stack=80],>out=%i1
-ldx [%fp+2023-80],%i1
-
-#   *(swapendian uint32 *) out = x0
-# stwa <x0=int64#3,[<out=int64#2] 0x88
-# stwa <x0=%i2,[<out=%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x4
+# asm 1: stwa <x4=int64#3,[<out=int64#2] 0x88
+# asm 2: stwa <x4=%i2,[<out=%i1] 0x88
 stwa %i2,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
-add %i1,4,%i1
-
-#   *(swapendian uint32 *) out = x1
-# stwa <x1=int64#5,[<out=int64#2] 0x88
-# stwa <x1=%i4,[<out=%i1] 0x88
-stwa %i4,[%i1] 0x88
-
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
-add %i1,4,%i1
-
-#   *(swapendian uint32 *) out = x2
-# stwa <x2=int64#6,[<out=int64#2] 0x88
-# stwa <x2=%i5,[<out=%i1] 0x88
-stwa %i5,[%i1] 0x88
-
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x3
-# stwa <x3=int64#7,[<out=int64#2] 0x88
-# stwa <x3=%g1,[<out=%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x5
+# asm 1: stwa <x5=int64#7,[<out=int64#2] 0x88
+# asm 2: stwa <x5=%g1,[<out=%i1] 0x88
 stwa %g1,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x4
-# stwa <x4=int64#8,[<out=int64#2] 0x88
-# stwa <x4=%g4,[<out=%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x6
+# asm 1: stwa <x6=int64#8,[<out=int64#2] 0x88
+# asm 2: stwa <x6=%g4,[<out=%i1] 0x88
 stwa %g4,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x5
-# stwa <x5=int64#9,[<out=int64#2] 0x88
-# stwa <x5=%g5,[<out=%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x7
+# asm 1: stwa <x7=int64#9,[<out=int64#2] 0x88
+# asm 2: stwa <x7=%g5,[<out=%i1] 0x88
 stwa %g5,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x6
-# stwa <x6=int64#10,[<out=int64#2] 0x88
-# stwa <x6=%o0,[<out=%i1] 0x88
-stwa %o0,[%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x8
+# asm 1: stwa <x8=int64#14,[<out=int64#2] 0x88
+# asm 2: stwa <x8=%o4,[<out=%i1] 0x88
+stwa %o4,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x7
-# stwa <x7=int64#11,[<out=int64#2] 0x88
-# stwa <x7=%o1,[<out=%i1] 0x88
-stwa %o1,[%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x9
+# asm 1: stwa <x9=int64#15,[<out=int64#2] 0x88
+# asm 2: stwa <x9=%o5,[<out=%i1] 0x88
+stwa %o5,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x8
-# stwa <x8=int64#12,[<out=int64#2] 0x88
-# stwa <x8=%o2,[<out=%i1] 0x88
-stwa %o2,[%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x10
+# asm 1: stwa <x10=int64#11,[<out=int64#2] 0x88
+# asm 2: stwa <x10=%o1,[<out=%i1] 0x88
+stwa %o1,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x9
-# stwa <x9=int64#13,[<out=int64#2] 0x88
-# stwa <x9=%o3,[<out=%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x11
+# asm 1: stwa <x11=int64#13,[<out=int64#2] 0x88
+# asm 2: stwa <x11=%o3,[<out=%i1] 0x88
 stwa %o3,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x10
-# stwa <x10=int64#14,[<out=int64#2] 0x88
-# stwa <x10=%o4,[<out=%i1] 0x88
-stwa %o4,[%i1] 0x88
-
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
-add %i1,4,%i1
-
-#   *(swapendian uint32 *) out = x11
-# stwa <x11=int64#15,[<out=int64#2] 0x88
-# stwa <x11=%o5,[<out=%i1] 0x88
-stwa %o5,[%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x12
+# asm 1: stwa <x12=int64#17,[<out=int64#2] 0x88
+# asm 2: stwa <x12=%l0,[<out=%i1] 0x88
+stwa %l0,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x12
-# stwa <x12=int64#16,[<out=int64#2] 0x88
-# stwa <x12=%o7,[<out=%i1] 0x88
-stwa %o7,[%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x13
+# asm 1: stwa <x13=int64#10,[<out=int64#2] 0x88
+# asm 2: stwa <x13=%o0,[<out=%i1] 0x88
+stwa %o0,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x13
-# stwa <x13=int64#17,[<out=int64#2] 0x88
-# stwa <x13=%l0,[<out=%i1] 0x88
-stwa %l0,[%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x14
+# asm 1: stwa <x14=int64#12,[<out=int64#2] 0x88
+# asm 2: stwa <x14=%o2,[<out=%i1] 0x88
+stwa %o2,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x14
-# stwa <x14=int64#18,[<out=int64#2] 0x88
-# stwa <x14=%l1,[<out=%i1] 0x88
-stwa %l1,[%i1] 0x88
-
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
-add %i1,4,%i1
+# qhasm:   *(swapendian uint32 *) out = x15
+# asm 1: stwa <x15=int64#16,[<out=int64#2] 0x88
+# asm 2: stwa <x15=%o7,[<out=%i1] 0x88
+stwa %o7,[%i1] 0x88
 
-#   *(swapendian uint32 *) out = x15
-# stwa <x15=int64#19,[<out=int64#2] 0x88
-# stwa <x15=%l2,[<out=%i1] 0x88
-stwa %l2,[%i1] 0x88
-
-#   out += 4
-# add <out=int64#2,4,>out=int64#5
-# add <out=%i1,4,>out=%i4
-add %i1,4,%i4
-
-#   bytes = bytes_stack
-# ldx [%fp+2023-<bytes_stack=stack64#2],>bytes=int64#2
-# ldx [%fp+2023-<bytes_stack=72],>bytes=%i1
-ldx [%fp+2023-72],%i1
-
-#   flags bytes -= 64
-# subcc <bytes=int64#2,64,>bytes=int64#6
-# subcc <bytes=%i1,64,>bytes=%i5
-subcc %i1,64,%i5
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
+add %i1,4,%i1
+
+# qhasm:   bytes = bytes_stack
+# asm 1: ldx [%fp+2023-<bytes_stack=stack64#2],>bytes=int64#3
+# asm 2: ldx [%fp+2023-<bytes_stack=8],>bytes=%i2
+ldx [%fp+2023-8],%i2
+
+# qhasm:                         unsigned>? bytes -= 64
+# asm 1: subcc <bytes=int64#3,64,>bytes=int64#5
+# asm 2: subcc <bytes=%i2,64,>bytes=%i4
+subcc %i2,64,%i4
 
-#   goto bytesatleast1 if unsigned>
+# qhasm:   goto bytesatleast1 if unsigned>
 bgu,pt %xcc,._bytesatleast1
 nop
 
-#   goto done if unsigned>=
+# qhasm:   goto done if !unsigned<
 bgeu,pt %xcc,._done
 nop
 
-#     m = ctarget
-# ldx [%fp+2023-<ctarget=stack64#1],>m=int64#3
-# ldx [%fp+2023-<ctarget=64],>m=%i2
-ldx [%fp+2023-64],%i2
-
-#     bytes += 64
-# add <bytes=int64#6,64,>bytes=int64#6
-# add <bytes=%i5,64,>bytes=%i5
-add %i5,64,%i5
-
-#     out -= 64
-# sub <out=int64#5,64,>out=int64#4
-# sub <out=%i4,64,>out=%i3
-sub %i4,64,%i3
-
-#     i = 0
-# add %g0,0,>i=int64#1
-# add %g0,0,>i=%i0
-add %g0,0,%i0
+# qhasm:     m = ctarget
+# asm 1: ldx [%fp+2023-<ctarget=stack64#1],>m=int64#6
+# asm 2: ldx [%fp+2023-<ctarget=0],>m=%i5
+ldx [%fp+2023-0],%i5
+
+# qhasm:     bytes += 64
+# asm 1: add <bytes=int64#5,64,>bytes=int64#5
+# asm 2: add <bytes=%i4,64,>bytes=%i4
+add %i4,64,%i4
+
+# qhasm:     out -= 64
+# asm 1: sub <out=int64#2,64,>out=int64#2
+# asm 2: sub <out=%i1,64,>out=%i1
+sub %i1,64,%i1
+
+# qhasm:     i = 0
+# asm 1: add %g0,0,>i=int64#4
+# asm 2: add %g0,0,>i=%i3
+add %g0,0,%i3
 
-#     ccopyloop#
+# qhasm:     ccopyloop:
 ._ccopyloop:
 
-#       a = *(int8 *) (out + i)
-# ldsb [<out=int64#4+<i=int64#1],>a=int64#2
-# ldsb [<out=%i3+<i=%i0],>a=%i1
-ldsb [%i3+%i0],%i1
-
-#       *(int8 *) (m + i) = a
-# stb <a=int64#2,[<m=int64#3+<i=int64#1]
-# stb <a=%i1,[<m=%i2+<i=%i0]
-stb %i1,[%i2+%i0]
-
-#       i += 1
-# add <i=int64#1,1,>i=int64#1
-# add <i=%i0,1,>i=%i0
-add %i0,1,%i0
-
-#       flags i - bytes
-# subcc <i=int64#1,<bytes=int64#6,%g0
-# subcc <i=%i0,<bytes=%i5,%g0
-subcc %i0,%i5,%g0
+# qhasm:       a = *(int8 *) (out + i)
+# asm 1: ldsb [<out=int64#2+<i=int64#4],>a=int64#3
+# asm 2: ldsb [<out=%i1+<i=%i3],>a=%i2
+ldsb [%i1+%i3],%i2
+
+# qhasm:       *(int8 *) (m + i) = a
+# asm 1: stb <a=int64#3,[<m=int64#6+<i=int64#4]
+# asm 2: stb <a=%i2,[<m=%i5+<i=%i3]
+stb %i2,[%i5+%i3]
+
+# qhasm:       i += 1
+# asm 1: add <i=int64#4,1,>i=int64#4
+# asm 2: add <i=%i3,1,>i=%i3
+add %i3,1,%i3
+
+# qhasm:                       unsigned<? i - bytes
+# asm 1: subcc <i=int64#4,<bytes=int64#5,%g0
+# asm 2: subcc <i=%i3,<bytes=%i4,%g0
+subcc %i3,%i4,%g0
 
-#     goto ccopyloop if unsigned<
+# qhasm:     goto ccopyloop if unsigned<
 blu,pt %xcc,._ccopyloop
 nop
 
-# done#
+# qhasm: done:
 ._done:
 
-# leave
+# qhasm: leave
 ret
 restore
New: streamciphers/timings/estreambench/submissions/salsa20/x86-1
New: streamciphers/timings/estreambench/submissions/salsa20/x86-2
New: streamciphers/timings/estreambench/submissions/salsa20/x86-mmx
New: streamciphers/timings/estreambench/submissions/salsa20/x86-xmm
New: streamciphers/timings/estreambench/submissions/salsa20-12/amd64-1
New: streamciphers/timings/estreambench/submissions/salsa20-12/amd64-2
New: streamciphers/timings/estreambench/submissions/salsa20-12/amd64-3
New: streamciphers/timings/estreambench/submissions/salsa20-12/amd64-xmm
diff -ru .old-crypto/streamciphers/timings/estreambench/submissions/salsa20-12/merged/salsa20.c cr.yp.to/streamciphers/timings/estreambench/submissions/salsa20-12/merged/salsa20.c
--- .old-crypto/streamciphers/timings/estreambench/submissions/salsa20-12/merged/salsa20.c	2006-02-23 16:15:20.000000000 -0500
+++ cr.yp.to/streamciphers/timings/estreambench/submissions/salsa20-12/merged/salsa20.c	2006-12-08 11:40:58.000000000 -0500
@@ -1,5 +1,5 @@
 /*
-salsa20,12-merged.c version 20060209
+salsa20-merged.c version 20051118
 D. J. Bernstein
 Public domain.
 */
New: streamciphers/timings/estreambench/submissions/salsa20-12/ppc-altivec
diff -ru .old-crypto/streamciphers/timings/estreambench/submissions/salsa20-12/ref/salsa20.c cr.yp.to/streamciphers/timings/estreambench/submissions/salsa20-12/ref/salsa20.c
--- .old-crypto/streamciphers/timings/estreambench/submissions/salsa20-12/ref/salsa20.c	2006-02-23 16:15:20.000000000 -0500
+++ cr.yp.to/streamciphers/timings/estreambench/submissions/salsa20-12/ref/salsa20.c	2006-12-08 11:40:58.000000000 -0500
@@ -1,5 +1,5 @@
 /*
-salsa20,12-ref.c version 20060209
+salsa20-ref.c version 20051118
 D. J. Bernstein
 Public domain.
 */
diff -ru .old-crypto/streamciphers/timings/estreambench/submissions/salsa20-12/regs/salsa20.c cr.yp.to/streamciphers/timings/estreambench/submissions/salsa20-12/regs/salsa20.c
--- .old-crypto/streamciphers/timings/estreambench/submissions/salsa20-12/regs/salsa20.c	2006-02-23 16:15:20.000000000 -0500
+++ cr.yp.to/streamciphers/timings/estreambench/submissions/salsa20-12/regs/salsa20.c	2006-12-08 11:40:58.000000000 -0500
@@ -1,5 +1,5 @@
 /*
-salsa20,12-regs.c version 20060209
+salsa20-regs.c version 20051118
 D. J. Bernstein
 Public domain.
 */
New: streamciphers/timings/estreambench/submissions/salsa20-12/sparc/salsa20.q
diff -ru .old-crypto/streamciphers/timings/estreambench/submissions/salsa20-12/sparc/salsa20.s cr.yp.to/streamciphers/timings/estreambench/submissions/salsa20-12/sparc/salsa20.s
--- .old-crypto/streamciphers/timings/estreambench/submissions/salsa20-12/sparc/salsa20.s	2006-02-23 16:15:20.000000000 -0500
+++ cr.yp.to/streamciphers/timings/estreambench/submissions/salsa20-12/sparc/salsa20.s	2006-12-08 11:40:58.000000000 -0500
@@ -1,2412 +1,2409 @@
-# salsa20,12_sparc.s version 20060209
-# D. J. Bernstein
-# Public domain.
 
-# int64 x
+# qhasm: int64 x
 
-# int64 arg2
+# qhasm: int64 arg2
 
-# int64 arg3
+# qhasm: int64 arg3
 
-# int64 arg4
+# qhasm: int64 arg4
 
-# input x
+# qhasm: input x
 
-# input arg2
+# qhasm: input arg2
 
-# input arg3
+# qhasm: input arg3
 
-# input arg4
+# qhasm: input arg4
 
-# int64 i
+# qhasm: int64 i
 
-# int64 a
+# qhasm: int64 a
 
-# int64 m
+# qhasm: int64 m
 
-# int64 out
+# qhasm: int64 out
 
-# int64 bytes
+# qhasm: int64 bytes
 
-# stack64 ctarget
+# qhasm: stack64 ctarget
 
-# stack512 tmp
+# qhasm: stack512 tmp
 
-# stack64 bytes_stack
+# qhasm: stack64 bytes_stack
 
-# stack64 out_stack
+# qhasm: stack64 out_stack
 
-# stack64 m_stack
+# qhasm: stack64 m_stack
 
-# stack64 x_stack
+# qhasm: stack64 x_stack
 
-# int64 z0
+# qhasm: int64 z0
 
-# int64 z1
+# qhasm: int64 z1
 
-# int64 z2
+# qhasm: int64 z2
 
-# int64 z3
+# qhasm: int64 z3
 
-# int64 z4
+# qhasm: int64 z4
 
-# int64 z5
+# qhasm: int64 z5
 
-# int64 z6
+# qhasm: int64 z6
 
-# int64 z7
+# qhasm: int64 z7
 
-# int64 z8
+# qhasm: int64 z8
 
-# int64 z9
+# qhasm: int64 z9
 
-# int64 z10
+# qhasm: int64 z10
 
-# int64 z11
+# qhasm: int64 z11
 
-# int64 z12
+# qhasm: int64 z12
 
-# int64 z13
+# qhasm: int64 z13
 
-# int64 z14
+# qhasm: int64 z14
 
-# int64 z15
+# qhasm: int64 z15
 
-# int64 u0
+# qhasm: int64 u0
 
-# int64 u1
+# qhasm: int64 u1
 
-# int64 u2
+# qhasm: int64 u2
 
-# int64 u3
+# qhasm: int64 u3
 
-# int64 u4
+# qhasm: int64 u4
 
-# int64 u5
+# qhasm: int64 u5
 
-# int64 u6
+# qhasm: int64 u6
 
-# int64 u7
+# qhasm: int64 u7
 
-# int64 u8
+# qhasm: int64 u8
 
-# int64 u9
+# qhasm: int64 u9
 
-# int64 u10
+# qhasm: int64 u10
 
-# int64 u11
+# qhasm: int64 u11
 
-# int64 u12
+# qhasm: int64 u12
 
-# int64 u13
+# qhasm: int64 u13
 
-# int64 u14
+# qhasm: int64 u14
 
-# int64 u15
+# qhasm: int64 u15
 
-# int64 y0
+# qhasm: int64 y0
 
-# int64 y1
+# qhasm: int64 y1
 
-# int64 y2
+# qhasm: int64 y2
 
-# int64 y3
+# qhasm: int64 y3
 
-# int64 y4
+# qhasm: int64 y4
 
-# int64 y5
+# qhasm: int64 y5
 
-# int64 y6
+# qhasm: int64 y6
 
-# int64 y7
+# qhasm: int64 y7
 
-# int64 y8
+# qhasm: int64 y8
 
-# int64 y9
+# qhasm: int64 y9
 
-# int64 y10
+# qhasm: int64 y10
 
-# int64 y11
+# qhasm: int64 y11
 
-# int64 y12
+# qhasm: int64 y12
 
-# int64 y13
+# qhasm: int64 y13
 
-# int64 y14
+# qhasm: int64 y14
 
-# int64 y15
+# qhasm: int64 y15
 
-# int64 x0
+# qhasm: int64 x0
 
-# int64 x1
+# qhasm: int64 x1
 
-# int64 x2
+# qhasm: int64 x2
 
-# int64 x3
+# qhasm: int64 x3
 
-# int64 x4
+# qhasm: int64 x4
 
-# int64 x5
+# qhasm: int64 x5
 
-# int64 x6
+# qhasm: int64 x6
 
-# int64 x7
+# qhasm: int64 x7
 
-# int64 x8
+# qhasm: int64 x8
 
-# int64 x9
+# qhasm: int64 x9
 
-# int64 x10
+# qhasm: int64 x10
 
-# int64 x11
+# qhasm: int64 x11
 
-# int64 x12
+# qhasm: int64 x12
 
-# int64 x13
+# qhasm: int64 x13
 
-# int64 x14
+# qhasm: int64 x14
 
-# int64 x15
+# qhasm: int64 x15
 
-# int64 q0
+# qhasm: int64 q0
 
-# int64 q1
+# qhasm: int64 q1
 
-# int64 q2
+# qhasm: int64 q2
 
-# int64 q3
+# qhasm: int64 q3
 
-# int64 q4
+# qhasm: int64 q4
 
-# int64 q5
+# qhasm: int64 q5
 
-# int64 q6
+# qhasm: int64 q6
 
-# int64 q7
+# qhasm: int64 q7
 
-# int64 q8
+# qhasm: int64 q8
 
-# int64 q9
+# qhasm: int64 q9
 
-# int64 q10
+# qhasm: int64 q10
 
-# int64 q11
+# qhasm: int64 q11
 
-# int64 q12
+# qhasm: int64 q12
 
-# int64 q13
+# qhasm: int64 q13
 
-# int64 q14
+# qhasm: int64 q14
 
-# int64 q15
+# qhasm: int64 q15
 
-# int64 m0
+# qhasm: int64 m0
 
-# int64 m1
+# qhasm: int64 m1
 
-# int64 m2
+# qhasm: int64 m2
 
-# int64 m3
+# qhasm: int64 m3
 
-# int64 m4
+# qhasm: int64 m4
 
-# int64 m5
+# qhasm: int64 m5
 
-# int64 m6
+# qhasm: int64 m6
 
-# int64 m7
+# qhasm: int64 m7
 
-# int64 m8
+# qhasm: int64 m8
 
-# int64 m9
+# qhasm: int64 m9
 
-# int64 m10
+# qhasm: int64 m10
 
-# int64 m11
+# qhasm: int64 m11
 
-# int64 m12
+# qhasm: int64 m12
 
-# int64 m13
+# qhasm: int64 m13
 
-# int64 m14
+# qhasm: int64 m14
 
-# int64 m15
+# qhasm: int64 m15
 
-# enter ECRYPT_init
+# qhasm: enter ECRYPT_init
 .section ".text"
 .align 32
 .global ECRYPT_init
 ECRYPT_init:
 save %sp,-288,%sp
 
-# leave
+# qhasm: leave
 ret
 restore
 
-# enter ECRYPT_ivsetup
+# qhasm: enter ECRYPT_ivsetup
 .section ".text"
 .align 32
 .global ECRYPT_ivsetup
 ECRYPT_ivsetup:
 save %sp,-288,%sp
 
-#   x6 = *(uint32 *) (arg2 + 0)
-# lduw [<arg2=int64#2+0],>x6=int64#3
-# lduw [<arg2=%i1+0],>x6=%i2
-lduw [%i1+0],%i2
-
-#   x8 = 0
-# add %g0,0,>x8=int64#4
-# add %g0,0,>x8=%i3
-add %g0,0,%i3
-
-#   x7 = *(uint32 *) (arg2 + 4)
-# lduw [<arg2=int64#2+4],>x7=int64#2
-# lduw [<arg2=%i1+4],>x7=%i1
+# qhasm:   x6 = *(uint32 *) (arg2 + 0)
+# asm 1: lduw [<arg2=int64#2+0],>x6=int64#5
+# asm 2: lduw [<arg2=%i1+0],>x6=%i4
+lduw [%i1+0],%i4
+
+# qhasm:   x8 = 0
+# asm 1: add %g0,0,>x8=int64#6
+# asm 2: add %g0,0,>x8=%i5
+add %g0,0,%i5
+
+# qhasm:   x7 = *(uint32 *) (arg2 + 4)
+# asm 1: lduw [<arg2=int64#2+4],>x7=int64#2
+# asm 2: lduw [<arg2=%i1+4],>x7=%i1
 lduw [%i1+4],%i1
 
-#   x9 = 0
-# add %g0,0,>x9=int64#5
-# add %g0,0,>x9=%i4
-add %g0,0,%i4
-
-#   x += 24
-# add <x=int64#1,24,>x=int64#1
-# add <x=%i0,24,>x=%i0
+# qhasm:   x9 = 0
+# asm 1: add %g0,0,>x9=int64#7
+# asm 2: add %g0,0,>x9=%g1
+add %g0,0,%g1
+
+# qhasm:   x += 24
+# asm 1: add <x=int64#1,24,>x=int64#1
+# asm 2: add <x=%i0,24,>x=%i0
 add %i0,24,%i0
 
-#   *(swapendian int32 *) x = x6
-# stwa <x6=int64#3,[<x=int64#1] 0x88
-# stwa <x6=%i2,[<x=%i0] 0x88
-stwa %i2,[%i0] 0x88
+# qhasm:   *(swapendian int32 *) x = x6
+# asm 1: stwa <x6=int64#5,[<x=int64#1] 0x88
+# asm 2: stwa <x6=%i4,[<x=%i0] 0x88
+stwa %i4,[%i0] 0x88
 
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(swapendian int32 *) x = x7
-# stwa <x7=int64#2,[<x=int64#1] 0x88
-# stwa <x7=%i1,[<x=%i0] 0x88
+# qhasm:   *(swapendian int32 *) x = x7
+# asm 1: stwa <x7=int64#2,[<x=int64#1] 0x88
+# asm 2: stwa <x7=%i1,[<x=%i0] 0x88
 stwa %i1,[%i0] 0x88
 
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(int32 *) (x + 0) = x8
-# stw <x8=int64#4,[<x=int64#1+0]
-# stw <x8=%i3,[<x=%i0+0]
-stw %i3,[%i0+0]
-
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   *(int32 *) (x + 0) = x8
+# asm 1: stw <x8=int64#6,[<x=int64#1+0]
+# asm 2: stw <x8=%i5,[<x=%i0+0]
+stw %i5,[%i0+0]
+
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(int32 *) (x + 0) = x9
-# stw <x9=int64#5,[<x=int64#1+0]
-# stw <x9=%i4,[<x=%i0+0]
-stw %i4,[%i0+0]
+# qhasm:   *(int32 *) (x + 0) = x9
+# asm 1: stw <x9=int64#7,[<x=int64#1+0]
+# asm 2: stw <x9=%g1,[<x=%i0+0]
+stw %g1,[%i0+0]
 
-# leave
+# qhasm: leave
 ret
 restore
 
-# enter ECRYPT_keysetup
+# qhasm: enter ECRYPT_keysetup
 .section ".text"
 .align 32
 .global ECRYPT_keysetup
 ECRYPT_keysetup:
 save %sp,-288,%sp
 
-# flags arg3 - 128
-# subcc <arg3=int64#3,128,%g0
-# subcc <arg3=%i2,128,%g0
+# qhasm:                  unsigned>? arg3 - 128
+# asm 1: subcc <arg3=int64#3,128,%g0
+# asm 2: subcc <arg3=%i2,128,%g0
 subcc %i2,128,%g0
 
-# goto kbits256 if unsigned>
+# qhasm: goto kbits256 if unsigned>
 bgu,pt %xcc,._kbits256
 nop
 
-# kbits128#
+# qhasm: kbits128:
 ._kbits128:
 
-#   x1 = *(uint32 *) (arg2 + 0)
-# lduw [<arg2=int64#2+0],>x1=int64#4
-# lduw [<arg2=%i1+0],>x1=%i3
-lduw [%i1+0],%i3
-
-#   x0 = 1634760805 & 0xfffffc00
-# sethi %lm(1634760805),>x0=int64#3
-# sethi %lm(1634760805),>x0=%i2
-sethi %lm(1634760805),%i2
-
-#   x2 = *(uint32 *) (arg2 + 4)
-# lduw [<arg2=int64#2+4],>x2=int64#5
-# lduw [<arg2=%i1+4],>x2=%i4
+# qhasm:   x1 = *(uint32 *) (arg2 + 0)
+# asm 1: lduw [<arg2=int64#2+0],>x1=int64#3
+# asm 2: lduw [<arg2=%i1+0],>x1=%i2
+lduw [%i1+0],%i2
+
+# qhasm:   x0 = 1634760805 & 0xfffffc00
+# asm 1: sethi %lm(1634760805),>x0=int64#4
+# asm 2: sethi %lm(1634760805),>x0=%i3
+sethi %lm(1634760805),%i3
+
+# qhasm:   x2 = *(uint32 *) (arg2 + 4)
+# asm 1: lduw [<arg2=int64#2+4],>x2=int64#5
+# asm 2: lduw [<arg2=%i1+4],>x2=%i4
 lduw [%i1+4],%i4
 
-#   x5 = 824206446 & 0xfffffc00
-# sethi %lm(824206446),>x5=int64#8
-# sethi %lm(824206446),>x5=%g4
-sethi %lm(824206446),%g4
-
-#   x3 = *(uint32 *) (arg2 + 8)
-# lduw [<arg2=int64#2+8],>x3=int64#6
-# lduw [<arg2=%i1+8],>x3=%i5
-lduw [%i1+8],%i5
-
-#   x10 = 2036477238 & 0xfffffc00
-# sethi %lm(2036477238),>x10=int64#9
-# sethi %lm(2036477238),>x10=%g5
-sethi %lm(2036477238),%g5
-
-#   x4 = *(uint32 *) (arg2 + 12)
-# lduw [<arg2=int64#2+12],>x4=int64#7
-# lduw [<arg2=%i1+12],>x4=%g1
-lduw [%i1+12],%g1
-
-#   x15 = 1797285236 & 0xfffffc00
-# sethi %lm(1797285236),>x15=int64#13
-# sethi %lm(1797285236),>x15=%o3
-sethi %lm(1797285236),%o3
-
-#   x11 = *(uint32 *) (arg2 + 0)
-# lduw [<arg2=int64#2+0],>x11=int64#10
-# lduw [<arg2=%i1+0],>x11=%o0
-lduw [%i1+0],%o0
-
-#   x0 |= 1634760805 & 0x3ff
-# or <x0=int64#3,%lo(1634760805),>x0=int64#3
-# or <x0=%i2,%lo(1634760805),>x0=%i2
-or %i2,%lo(1634760805),%i2
-
-#   x12 = *(uint32 *) (arg2 + 4)
-# lduw [<arg2=int64#2+4],>x12=int64#11
-# lduw [<arg2=%i1+4],>x12=%o1
-lduw [%i1+4],%o1
-
-#   x5 |= 824206446 & 0x3ff
-# or <x5=int64#8,%lo(824206446),>x5=int64#8
-# or <x5=%g4,%lo(824206446),>x5=%g4
-or %g4,%lo(824206446),%g4
-
-#   x13 = *(uint32 *) (arg2 + 8)
-# lduw [<arg2=int64#2+8],>x13=int64#12
-# lduw [<arg2=%i1+8],>x13=%o2
-lduw [%i1+8],%o2
-
-#   x10 |= 2036477238 & 0x3ff
-# or <x10=int64#9,%lo(2036477238),>x10=int64#9
-# or <x10=%g5,%lo(2036477238),>x10=%g5
-or %g5,%lo(2036477238),%g5
-
-#   x14 = *(uint32 *) (arg2 + 12)
-# lduw [<arg2=int64#2+12],>x14=int64#2
-# lduw [<arg2=%i1+12],>x14=%i1
+# qhasm:   x5 = 824206446 & 0xfffffc00
+# asm 1: sethi %lm(824206446),>x5=int64#6
+# asm 2: sethi %lm(824206446),>x5=%i5
+sethi %lm(824206446),%i5
+
+# qhasm:   x3 = *(uint32 *) (arg2 + 8)
+# asm 1: lduw [<arg2=int64#2+8],>x3=int64#7
+# asm 2: lduw [<arg2=%i1+8],>x3=%g1
+lduw [%i1+8],%g1
+
+# qhasm:   x10 = 2036477238 & 0xfffffc00
+# asm 1: sethi %lm(2036477238),>x10=int64#8
+# asm 2: sethi %lm(2036477238),>x10=%g4
+sethi %lm(2036477238),%g4
+
+# qhasm:   x4 = *(uint32 *) (arg2 + 12)
+# asm 1: lduw [<arg2=int64#2+12],>x4=int64#9
+# asm 2: lduw [<arg2=%i1+12],>x4=%g5
+lduw [%i1+12],%g5
+
+# qhasm:   x15 = 1797285236 & 0xfffffc00
+# asm 1: sethi %lm(1797285236),>x15=int64#10
+# asm 2: sethi %lm(1797285236),>x15=%o0
+sethi %lm(1797285236),%o0
+
+# qhasm:   x11 = *(uint32 *) (arg2 + 0)
+# asm 1: lduw [<arg2=int64#2+0],>x11=int64#11
+# asm 2: lduw [<arg2=%i1+0],>x11=%o1
+lduw [%i1+0],%o1
+
+# qhasm:   x0 |= 1634760805 & 0x3ff
+# asm 1: or <x0=int64#4,%lo(1634760805),>x0=int64#4
+# asm 2: or <x0=%i3,%lo(1634760805),>x0=%i3
+or %i3,%lo(1634760805),%i3
+
+# qhasm:   x12 = *(uint32 *) (arg2 + 4)
+# asm 1: lduw [<arg2=int64#2+4],>x12=int64#12
+# asm 2: lduw [<arg2=%i1+4],>x12=%o2
+lduw [%i1+4],%o2
+
+# qhasm:   x5 |= 824206446 & 0x3ff
+# asm 1: or <x5=int64#6,%lo(824206446),>x5=int64#6
+# asm 2: or <x5=%i5,%lo(824206446),>x5=%i5
+or %i5,%lo(824206446),%i5
+
+# qhasm:   x13 = *(uint32 *) (arg2 + 8)
+# asm 1: lduw [<arg2=int64#2+8],>x13=int64#13
+# asm 2: lduw [<arg2=%i1+8],>x13=%o3
+lduw [%i1+8],%o3
+
+# qhasm:   x10 |= 2036477238 & 0x3ff
+# asm 1: or <x10=int64#8,%lo(2036477238),>x10=int64#8
+# asm 2: or <x10=%g4,%lo(2036477238),>x10=%g4
+or %g4,%lo(2036477238),%g4
+
+# qhasm:   x14 = *(uint32 *) (arg2 + 12)
+# asm 1: lduw [<arg2=int64#2+12],>x14=int64#2
+# asm 2: lduw [<arg2=%i1+12],>x14=%i1
 lduw [%i1+12],%i1
 
-#   x15 |= 1797285236 & 0x3ff
-# or <x15=int64#13,%lo(1797285236),>x15=int64#13
-# or <x15=%o3,%lo(1797285236),>x15=%o3
-or %o3,%lo(1797285236),%o3
+# qhasm:   x15 |= 1797285236 & 0x3ff
+# asm 1: or <x15=int64#10,%lo(1797285236),>x15=int64#10
+# asm 2: or <x15=%o0,%lo(1797285236),>x15=%o0
+or %o0,%lo(1797285236),%o0
 
-# goto storekey
+# qhasm: goto storekey
 b ._storekey
 nop
 
-# kbits256#
+# qhasm: kbits256:
 ._kbits256:
 
-#   x1 = *(uint32 *) (arg2 + 0)
-# lduw [<arg2=int64#2+0],>x1=int64#4
-# lduw [<arg2=%i1+0],>x1=%i3
-lduw [%i1+0],%i3
-
-#   x0 = 1634760805 & 0xfffffc00
-# sethi %lm(1634760805),>x0=int64#3
-# sethi %lm(1634760805),>x0=%i2
-sethi %lm(1634760805),%i2
-
-#   x2 = *(uint32 *) (arg2 + 4)
-# lduw [<arg2=int64#2+4],>x2=int64#5
-# lduw [<arg2=%i1+4],>x2=%i4
+# qhasm:   x1 = *(uint32 *) (arg2 + 0)
+# asm 1: lduw [<arg2=int64#2+0],>x1=int64#3
+# asm 2: lduw [<arg2=%i1+0],>x1=%i2
+lduw [%i1+0],%i2
+
+# qhasm:   x0 = 1634760805 & 0xfffffc00
+# asm 1: sethi %lm(1634760805),>x0=int64#4
+# asm 2: sethi %lm(1634760805),>x0=%i3
+sethi %lm(1634760805),%i3
+
+# qhasm:   x2 = *(uint32 *) (arg2 + 4)
+# asm 1: lduw [<arg2=int64#2+4],>x2=int64#5
+# asm 2: lduw [<arg2=%i1+4],>x2=%i4
 lduw [%i1+4],%i4
 
-#   x5 = 857760878 & 0xfffffc00
-# sethi %lm(857760878),>x5=int64#8
-# sethi %lm(857760878),>x5=%g4
-sethi %lm(857760878),%g4
-
-#   x3 = *(uint32 *) (arg2 + 8)
-# lduw [<arg2=int64#2+8],>x3=int64#6
-# lduw [<arg2=%i1+8],>x3=%i5
-lduw [%i1+8],%i5
-
-#   x10 = 2036477234 & 0xfffffc00
-# sethi %lm(2036477234),>x10=int64#9
-# sethi %lm(2036477234),>x10=%g5
-sethi %lm(2036477234),%g5
-
-#   x4 = *(uint32 *) (arg2 + 12)
-# lduw [<arg2=int64#2+12],>x4=int64#7
-# lduw [<arg2=%i1+12],>x4=%g1
-lduw [%i1+12],%g1
-
-#   x15 = 1797285236 & 0xfffffc00
-# sethi %lm(1797285236),>x15=int64#13
-# sethi %lm(1797285236),>x15=%o3
-sethi %lm(1797285236),%o3
-
-#   x11 = *(uint32 *) (arg2 + 16)
-# lduw [<arg2=int64#2+16],>x11=int64#10
-# lduw [<arg2=%i1+16],>x11=%o0
-lduw [%i1+16],%o0
-
-#   x0 |= 1634760805 & 0x3ff
-# or <x0=int64#3,%lo(1634760805),>x0=int64#3
-# or <x0=%i2,%lo(1634760805),>x0=%i2
-or %i2,%lo(1634760805),%i2
-
-#   x12 = *(uint32 *) (arg2 + 20)
-# lduw [<arg2=int64#2+20],>x12=int64#11
-# lduw [<arg2=%i1+20],>x12=%o1
-lduw [%i1+20],%o1
-
-#   x5 |= 857760878 & 0x3ff
-# or <x5=int64#8,%lo(857760878),>x5=int64#8
-# or <x5=%g4,%lo(857760878),>x5=%g4
-or %g4,%lo(857760878),%g4
-
-#   x13 = *(uint32 *) (arg2 + 24)
-# lduw [<arg2=int64#2+24],>x13=int64#12
-# lduw [<arg2=%i1+24],>x13=%o2
-lduw [%i1+24],%o2
-
-#   x10 |= 2036477234 & 0x3ff
-# or <x10=int64#9,%lo(2036477234),>x10=int64#9
-# or <x10=%g5,%lo(2036477234),>x10=%g5
-or %g5,%lo(2036477234),%g5
-
-#   x14 = *(uint32 *) (arg2 + 28)
-# lduw [<arg2=int64#2+28],>x14=int64#2
-# lduw [<arg2=%i1+28],>x14=%i1
+# qhasm:   x5 = 857760878 & 0xfffffc00
+# asm 1: sethi %lm(857760878),>x5=int64#6
+# asm 2: sethi %lm(857760878),>x5=%i5
+sethi %lm(857760878),%i5
+
+# qhasm:   x3 = *(uint32 *) (arg2 + 8)
+# asm 1: lduw [<arg2=int64#2+8],>x3=int64#7
+# asm 2: lduw [<arg2=%i1+8],>x3=%g1
+lduw [%i1+8],%g1
+
+# qhasm:   x10 = 2036477234 & 0xfffffc00
+# asm 1: sethi %lm(2036477234),>x10=int64#8
+# asm 2: sethi %lm(2036477234),>x10=%g4
+sethi %lm(2036477234),%g4
+
+# qhasm:   x4 = *(uint32 *) (arg2 + 12)
+# asm 1: lduw [<arg2=int64#2+12],>x4=int64#9
+# asm 2: lduw [<arg2=%i1+12],>x4=%g5
+lduw [%i1+12],%g5
+
+# qhasm:   x15 = 1797285236 & 0xfffffc00
+# asm 1: sethi %lm(1797285236),>x15=int64#10
+# asm 2: sethi %lm(1797285236),>x15=%o0
+sethi %lm(1797285236),%o0
+
+# qhasm:   x11 = *(uint32 *) (arg2 + 16)
+# asm 1: lduw [<arg2=int64#2+16],>x11=int64#11
+# asm 2: lduw [<arg2=%i1+16],>x11=%o1
+lduw [%i1+16],%o1
+
+# qhasm:   x0 |= 1634760805 & 0x3ff
+# asm 1: or <x0=int64#4,%lo(1634760805),>x0=int64#4
+# asm 2: or <x0=%i3,%lo(1634760805),>x0=%i3
+or %i3,%lo(1634760805),%i3
+
+# qhasm:   x12 = *(uint32 *) (arg2 + 20)
+# asm 1: lduw [<arg2=int64#2+20],>x12=int64#12
+# asm 2: lduw [<arg2=%i1+20],>x12=%o2
+lduw [%i1+20],%o2
+
+# qhasm:   x5 |= 857760878 & 0x3ff
+# asm 1: or <x5=int64#6,%lo(857760878),>x5=int64#6
+# asm 2: or <x5=%i5,%lo(857760878),>x5=%i5
+or %i5,%lo(857760878),%i5
+
+# qhasm:   x13 = *(uint32 *) (arg2 + 24)
+# asm 1: lduw [<arg2=int64#2+24],>x13=int64#13
+# asm 2: lduw [<arg2=%i1+24],>x13=%o3
+lduw [%i1+24],%o3
+
+# qhasm:   x10 |= 2036477234 & 0x3ff
+# asm 1: or <x10=int64#8,%lo(2036477234),>x10=int64#8
+# asm 2: or <x10=%g4,%lo(2036477234),>x10=%g4
+or %g4,%lo(2036477234),%g4
+
+# qhasm:   x14 = *(uint32 *) (arg2 + 28)
+# asm 1: lduw [<arg2=int64#2+28],>x14=int64#2
+# asm 2: lduw [<arg2=%i1+28],>x14=%i1
 lduw [%i1+28],%i1
 
-#   x15 |= 1797285236 & 0x3ff
-# or <x15=int64#13,%lo(1797285236),>x15=int64#13
-# or <x15=%o3,%lo(1797285236),>x15=%o3
-or %o3,%lo(1797285236),%o3
+# qhasm:   x15 |= 1797285236 & 0x3ff
+# asm 1: or <x15=int64#10,%lo(1797285236),>x15=int64#10
+# asm 2: or <x15=%o0,%lo(1797285236),>x15=%o0
+or %o0,%lo(1797285236),%o0
 
-# storekey#
+# qhasm: storekey:
 ._storekey:
 
-#   *(int32 *) (x + 0) = x0
-# stw <x0=int64#3,[<x=int64#1+0]
-# stw <x0=%i2,[<x=%i0+0]
-stw %i2,[%i0+0]
-
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
-add %i0,4,%i0
+# qhasm:   *(int32 *) (x + 0) = x0
+# asm 1: stw <x0=int64#4,[<x=int64#1+0]
+# asm 2: stw <x0=%i3,[<x=%i0+0]
+stw %i3,[%i0+0]
 
-#   *(swapendian int32 *) x = x1
-# stwa <x1=int64#4,[<x=int64#1] 0x88
-# stwa <x1=%i3,[<x=%i0] 0x88
-stwa %i3,[%i0] 0x88
-
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(swapendian int32 *) x = x2
-# stwa <x2=int64#5,[<x=int64#1] 0x88
-# stwa <x2=%i4,[<x=%i0] 0x88
-stwa %i4,[%i0] 0x88
+# qhasm:   *(swapendian int32 *) x = x1
+# asm 1: stwa <x1=int64#3,[<x=int64#1] 0x88
+# asm 2: stwa <x1=%i2,[<x=%i0] 0x88
+stwa %i2,[%i0] 0x88
 
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(swapendian int32 *) x = x3
-# stwa <x3=int64#6,[<x=int64#1] 0x88
-# stwa <x3=%i5,[<x=%i0] 0x88
-stwa %i5,[%i0] 0x88
-
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   *(swapendian int32 *) x = x2
+# asm 1: stwa <x2=int64#5,[<x=int64#1] 0x88
+# asm 2: stwa <x2=%i4,[<x=%i0] 0x88
+stwa %i4,[%i0] 0x88
+
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(swapendian int32 *) x = x4
-# stwa <x4=int64#7,[<x=int64#1] 0x88
-# stwa <x4=%g1,[<x=%i0] 0x88
+# qhasm:   *(swapendian int32 *) x = x3
+# asm 1: stwa <x3=int64#7,[<x=int64#1] 0x88
+# asm 2: stwa <x3=%g1,[<x=%i0] 0x88
 stwa %g1,[%i0] 0x88
 
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(int32 *) (x + 0) = x5
-# stw <x5=int64#8,[<x=int64#1+0]
-# stw <x5=%g4,[<x=%i0+0]
-stw %g4,[%i0+0]
+# qhasm:   *(swapendian int32 *) x = x4
+# asm 1: stwa <x4=int64#9,[<x=int64#1] 0x88
+# asm 2: stwa <x4=%g5,[<x=%i0] 0x88
+stwa %g5,[%i0] 0x88
+
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
+add %i0,4,%i0
 
-#   x += 20
-# add <x=int64#1,20,>x=int64#1
-# add <x=%i0,20,>x=%i0
+# qhasm:   *(int32 *) (x + 0) = x5
+# asm 1: stw <x5=int64#6,[<x=int64#1+0]
+# asm 2: stw <x5=%i5,[<x=%i0+0]
+stw %i5,[%i0+0]
+
+# qhasm:   x += 20
+# asm 1: add <x=int64#1,20,>x=int64#1
+# asm 2: add <x=%i0,20,>x=%i0
 add %i0,20,%i0
 
-#   *(int32 *) (x + 0) = x10
-# stw <x10=int64#9,[<x=int64#1+0]
-# stw <x10=%g5,[<x=%i0+0]
-stw %g5,[%i0+0]
-
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
-add %i0,4,%i0
+# qhasm:   *(int32 *) (x + 0) = x10
+# asm 1: stw <x10=int64#8,[<x=int64#1+0]
+# asm 2: stw <x10=%g4,[<x=%i0+0]
+stw %g4,[%i0+0]
 
-#   *(swapendian int32 *) x = x11
-# stwa <x11=int64#10,[<x=int64#1] 0x88
-# stwa <x11=%o0,[<x=%i0] 0x88
-stwa %o0,[%i0] 0x88
-
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(swapendian int32 *) x = x12
-# stwa <x12=int64#11,[<x=int64#1] 0x88
-# stwa <x12=%o1,[<x=%i0] 0x88
+# qhasm:   *(swapendian int32 *) x = x11
+# asm 1: stwa <x11=int64#11,[<x=int64#1] 0x88
+# asm 2: stwa <x11=%o1,[<x=%i0] 0x88
 stwa %o1,[%i0] 0x88
 
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(swapendian int32 *) x = x13
-# stwa <x13=int64#12,[<x=int64#1] 0x88
-# stwa <x13=%o2,[<x=%i0] 0x88
+# qhasm:   *(swapendian int32 *) x = x12
+# asm 1: stwa <x12=int64#12,[<x=int64#1] 0x88
+# asm 2: stwa <x12=%o2,[<x=%i0] 0x88
 stwa %o2,[%i0] 0x88
 
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
+add %i0,4,%i0
+
+# qhasm:   *(swapendian int32 *) x = x13
+# asm 1: stwa <x13=int64#13,[<x=int64#1] 0x88
+# asm 2: stwa <x13=%o3,[<x=%i0] 0x88
+stwa %o3,[%i0] 0x88
+
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(swapendian int32 *) x = x14
-# stwa <x14=int64#2,[<x=int64#1] 0x88
-# stwa <x14=%i1,[<x=%i0] 0x88
+# qhasm:   *(swapendian int32 *) x = x14
+# asm 1: stwa <x14=int64#2,[<x=int64#1] 0x88
+# asm 2: stwa <x14=%i1,[<x=%i0] 0x88
 stwa %i1,[%i0] 0x88
 
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(int32 *) (x + 0) = x15
-# stw <x15=int64#13,[<x=int64#1+0]
-# stw <x15=%o3,[<x=%i0+0]
-stw %o3,[%i0+0]
+# qhasm:   *(int32 *) (x + 0) = x15
+# asm 1: stw <x15=int64#10,[<x=int64#1+0]
+# asm 2: stw <x15=%o0,[<x=%i0+0]
+stw %o0,[%i0+0]
 
-# leave
+# qhasm: leave
 ret
 restore
 
-# enter ECRYPT_keystream_bytes
+# qhasm: enter ECRYPT_keystream_bytes
 .section ".text"
 .align 32
 .global ECRYPT_keystream_bytes
 ECRYPT_keystream_bytes:
 save %sp,-288,%sp
 
-# bytes = arg3
-# add %g0,<arg3=int64#3,>bytes=int64#6
-# add %g0,<arg3=%i2,>bytes=%i5
-add %g0,%i2,%i5
-
-# m = arg2
-# add %g0,<arg2=int64#2,>m=int64#4
-# add %g0,<arg2=%i1,>m=%i3
-add %g0,%i1,%i3
-
-# out = arg2
-# add %g0,<arg2=int64#2,>out=int64#5
-# add %g0,<arg2=%i1,>out=%i4
-add %g0,%i1,%i4
-
-# flags bytes - 0
-# subcc <bytes=int64#6,0,%g0
-# subcc <bytes=%i5,0,%g0
-subcc %i5,0,%g0
+# qhasm: bytes = arg3
+# asm 1: add %g0,<arg3=int64#3,>bytes=int64#5
+# asm 2: add %g0,<arg3=%i2,>bytes=%i4
+add %g0,%i2,%i4
+
+# qhasm: m = arg2
+# asm 1: add %g0,<arg2=int64#2,>m=int64#6
+# asm 2: add %g0,<arg2=%i1,>m=%i5
+add %g0,%i1,%i5
+
+# qhasm: out = arg2
+# asm 1: add %g0,<arg2=int64#2,>out=int64#2
+# asm 2: add %g0,<arg2=%i1,>out=%i1
+add %g0,%i1,%i1
+
+# qhasm:               unsigned>? bytes - 0
+# asm 1: subcc <bytes=int64#5,0,%g0
+# asm 2: subcc <bytes=%i4,0,%g0
+subcc %i4,0,%g0
 
-# goto done if unsigned<=
+# qhasm: goto done if !unsigned>
 bleu,pt %xcc,._done
 nop
 
-#   a = 0
-# add %g0,0,>a=int64#3
-# add %g0,0,>a=%i2
+# qhasm:   a = 0
+# asm 1: add %g0,0,>a=int64#3
+# asm 2: add %g0,0,>a=%i2
 add %g0,0,%i2
 
-#   i = bytes
-# add %g0,<bytes=int64#6,>i=int64#2
-# add %g0,<bytes=%i5,>i=%i1
-add %g0,%i5,%i1
+# qhasm:   i = bytes
+# asm 1: add %g0,<bytes=int64#5,>i=int64#4
+# asm 2: add %g0,<bytes=%i4,>i=%i3
+add %g0,%i4,%i3
 
-#   zeroloop#
+# qhasm:   zeroloop:
 ._zeroloop:
 
-#     *(int8 *) (out + 0) = a
-# stb <a=int64#3,[<out=int64#5+0]
-# stb <a=%i2,[<out=%i4+0]
-stb %i2,[%i4+0]
-
-#     out += 1
-# add <out=int64#5,1,>out=int64#5
-# add <out=%i4,1,>out=%i4
-add %i4,1,%i4
-
-#     flags i -= 1
-# subcc <i=int64#2,1,>i=int64#2
-# subcc <i=%i1,1,>i=%i1
-subcc %i1,1,%i1
+# qhasm:     *(int8 *) (out + 0) = a
+# asm 1: stb <a=int64#3,[<out=int64#2+0]
+# asm 2: stb <a=%i2,[<out=%i1+0]
+stb %i2,[%i1+0]
+
+# qhasm:     out += 1
+# asm 1: add <out=int64#2,1,>out=int64#2
+# asm 2: add <out=%i1,1,>out=%i1
+add %i1,1,%i1
+
+# qhasm:                    unsigned>? i -= 1
+# asm 1: subcc <i=int64#4,1,>i=int64#4
+# asm 2: subcc <i=%i3,1,>i=%i3
+subcc %i3,1,%i3
 
-#   goto zeroloop if unsigned>
+# qhasm:   goto zeroloop if unsigned>
 bgu,pt %xcc,._zeroloop
 nop
 
-#   out -= bytes
-# sub <out=int64#5,<bytes=int64#6,>out=int64#5
-# sub <out=%i4,<bytes=%i5,>out=%i4
-sub %i4,%i5,%i4
+# qhasm:   out -= bytes
+# asm 1: sub <out=int64#2,<bytes=int64#5,>out=int64#2
+# asm 2: sub <out=%i1,<bytes=%i4,>out=%i1
+sub %i1,%i4,%i1
 
-# goto bytesatleast1
+# qhasm: goto bytesatleast1
 b ._bytesatleast1
 nop
 
-# enter ECRYPT_decrypt_bytes
+# qhasm: enter ECRYPT_decrypt_bytes
 .section ".text"
 .align 32
 .global ECRYPT_decrypt_bytes
 ECRYPT_decrypt_bytes:
 save %sp,-288,%sp
 
-# bytes = arg4
-# add %g0,<arg4=int64#4,>bytes=int64#6
-# add %g0,<arg4=%i3,>bytes=%i5
-add %g0,%i3,%i5
-
-# m = arg2
-# add %g0,<arg2=int64#2,>m=int64#4
-# add %g0,<arg2=%i1,>m=%i3
-add %g0,%i1,%i3
-
-# out = arg3
-# add %g0,<arg3=int64#3,>out=int64#5
-# add %g0,<arg3=%i2,>out=%i4
-add %g0,%i2,%i4
-
-# flags bytes - 0
-# subcc <bytes=int64#6,0,%g0
-# subcc <bytes=%i5,0,%g0
-subcc %i5,0,%g0
+# qhasm: bytes = arg4
+# asm 1: add %g0,<arg4=int64#4,>bytes=int64#5
+# asm 2: add %g0,<arg4=%i3,>bytes=%i4
+add %g0,%i3,%i4
+
+# qhasm: m = arg2
+# asm 1: add %g0,<arg2=int64#2,>m=int64#6
+# asm 2: add %g0,<arg2=%i1,>m=%i5
+add %g0,%i1,%i5
+
+# qhasm: out = arg3
+# asm 1: add %g0,<arg3=int64#3,>out=int64#2
+# asm 2: add %g0,<arg3=%i2,>out=%i1
+add %g0,%i2,%i1
+
+# qhasm:               unsigned>? bytes - 0
+# asm 1: subcc <bytes=int64#5,0,%g0
+# asm 2: subcc <bytes=%i4,0,%g0
+subcc %i4,0,%g0
 
-# goto done if unsigned<=
+# qhasm: goto done if !unsigned>
 bleu,pt %xcc,._done
 nop
 
-# goto bytesatleast1
+# qhasm: goto bytesatleast1
 b ._bytesatleast1
 nop
 
-# enter ECRYPT_encrypt_bytes
+# qhasm: enter ECRYPT_encrypt_bytes
 .section ".text"
 .align 32
 .global ECRYPT_encrypt_bytes
 ECRYPT_encrypt_bytes:
 save %sp,-288,%sp
 
-# bytes = arg4
-# add %g0,<arg4=int64#4,>bytes=int64#6
-# add %g0,<arg4=%i3,>bytes=%i5
-add %g0,%i3,%i5
-
-# m = arg2
-# add %g0,<arg2=int64#2,>m=int64#4
-# add %g0,<arg2=%i1,>m=%i3
-add %g0,%i1,%i3
-
-# out = arg3
-# add %g0,<arg3=int64#3,>out=int64#5
-# add %g0,<arg3=%i2,>out=%i4
-add %g0,%i2,%i4
-
-# flags bytes - 0
-# subcc <bytes=int64#6,0,%g0
-# subcc <bytes=%i5,0,%g0
-subcc %i5,0,%g0
+# qhasm: bytes = arg4
+# asm 1: add %g0,<arg4=int64#4,>bytes=int64#5
+# asm 2: add %g0,<arg4=%i3,>bytes=%i4
+add %g0,%i3,%i4
+
+# qhasm: m = arg2
+# asm 1: add %g0,<arg2=int64#2,>m=int64#6
+# asm 2: add %g0,<arg2=%i1,>m=%i5
+add %g0,%i1,%i5
+
+# qhasm: out = arg3
+# asm 1: add %g0,<arg3=int64#3,>out=int64#2
+# asm 2: add %g0,<arg3=%i2,>out=%i1
+add %g0,%i2,%i1
+
+# qhasm:               unsigned>? bytes - 0
+# asm 1: subcc <bytes=int64#5,0,%g0
+# asm 2: subcc <bytes=%i4,0,%g0
+subcc %i4,0,%g0
 
-# goto done if unsigned<=
+# qhasm: goto done if !unsigned>
 bleu,pt %xcc,._done
 nop
 
-# bytesatleast1#
+# qhasm: bytesatleast1:
 ._bytesatleast1:
 
-#   flags bytes - 64
-# subcc <bytes=int64#6,64,%g0
-# subcc <bytes=%i5,64,%g0
-subcc %i5,64,%g0
+# qhasm:                           unsigned<? bytes - 64
+# asm 1: subcc <bytes=int64#5,64,%g0
+# asm 2: subcc <bytes=%i4,64,%g0
+subcc %i4,64,%g0
 
-#   goto bytesatleast64 if unsigned>=
+# qhasm:   goto bytesatleast64 if !unsigned<
 bgeu,pt %xcc,._bytesatleast64
 nop
 
-#     ctarget = out
-# stx <out=int64#5,[%fp+2023->ctarget=stack64#1]
-# stx <out=%i4,[%fp+2023->ctarget=64]
-stx %i4,[%fp+2023-64]
-
-#     out = &tmp
-# add %fp,1967->tmp=stack512#1,>out=int64#5
-# add %fp,1967->tmp=0,>out=%i4
-add %fp,1967-0,%i4
-
-#     i = 0
-# add %g0,0,>i=int64#2
-# add %g0,0,>i=%i1
-add %g0,0,%i1
+# qhasm:     ctarget = out
+# asm 1: stx <out=int64#2,[%fp+2023->ctarget=stack64#1]
+# asm 2: stx <out=%i1,[%fp+2023->ctarget=0]
+stx %i1,[%fp+2023-0]
+
+# qhasm:     out = &tmp
+# asm 1: add %fp,1967->tmp=stack512#1,>out=int64#2
+# asm 2: add %fp,1967->tmp=48,>out=%i1
+add %fp,1967-48,%i1
+
+# qhasm:     i = 0
+# asm 1: add %g0,0,>i=int64#4
+# asm 2: add %g0,0,>i=%i3
+add %g0,0,%i3
 
-#     mcopyloop#
+# qhasm:     mcopyloop:
 ._mcopyloop:
 
-#       a = *(int8 *) (m + i)
-# ldsb [<m=int64#4+<i=int64#2],>a=int64#3
-# ldsb [<m=%i3+<i=%i1],>a=%i2
-ldsb [%i3+%i1],%i2
-
-#       *(int8 *) (out + i) = a
-# stb <a=int64#3,[<out=int64#5+<i=int64#2]
-# stb <a=%i2,[<out=%i4+<i=%i1]
-stb %i2,[%i4+%i1]
-
-#       i += 1
-# add <i=int64#2,1,>i=int64#2
-# add <i=%i1,1,>i=%i1
-add %i1,1,%i1
-
-#       flags i - bytes
-# subcc <i=int64#2,<bytes=int64#6,%g0
-# subcc <i=%i1,<bytes=%i5,%g0
-subcc %i1,%i5,%g0
+# qhasm:       a = *(int8 *) (m + i)
+# asm 1: ldsb [<m=int64#6+<i=int64#4],>a=int64#3
+# asm 2: ldsb [<m=%i5+<i=%i3],>a=%i2
+ldsb [%i5+%i3],%i2
+
+# qhasm:       *(int8 *) (out + i) = a
+# asm 1: stb <a=int64#3,[<out=int64#2+<i=int64#4]
+# asm 2: stb <a=%i2,[<out=%i1+<i=%i3]
+stb %i2,[%i1+%i3]
+
+# qhasm:       i += 1
+# asm 1: add <i=int64#4,1,>i=int64#4
+# asm 2: add <i=%i3,1,>i=%i3
+add %i3,1,%i3
+
+# qhasm:                       unsigned<? i - bytes
+# asm 1: subcc <i=int64#4,<bytes=int64#5,%g0
+# asm 2: subcc <i=%i3,<bytes=%i4,%g0
+subcc %i3,%i4,%g0
 
-#     goto mcopyloop if unsigned<
+# qhasm:     goto mcopyloop if unsigned<
 blu,pt %xcc,._mcopyloop
 nop
 
-#     m = &tmp
-# add %fp,1967->tmp=stack512#1,>m=int64#4
-# add %fp,1967->tmp=0,>m=%i3
-add %fp,1967-0,%i3
+# qhasm:     m = &tmp
+# asm 1: add %fp,1967->tmp=stack512#1,>m=int64#6
+# asm 2: add %fp,1967->tmp=48,>m=%i5
+add %fp,1967-48,%i5
 
-#   bytesatleast64#
+# qhasm:   bytesatleast64:
 ._bytesatleast64:
 
-#     x0 = *(uint32 *) (x + 0)
-# lduw [<x=int64#1+0],>x0=int64#9
-# lduw [<x=%i0+0],>x0=%g5
-lduw [%i0+0],%g5
-
-#     x1 = *(uint32 *) (x + 4)
-# lduw [<x=int64#1+4],>x1=int64#10
-# lduw [<x=%i0+4],>x1=%o0
-lduw [%i0+4],%o0
-
-#     x2 = *(uint32 *) (x + 8)
-# lduw [<x=int64#1+8],>x2=int64#11
-# lduw [<x=%i0+8],>x2=%o1
-lduw [%i0+8],%o1
-
-#     x3 = *(uint32 *) (x + 12)
-# lduw [<x=int64#1+12],>x3=int64#12
-# lduw [<x=%i0+12],>x3=%o2
-lduw [%i0+12],%o2
-
-#     x4 = *(uint32 *) (x + 16)
-# lduw [<x=int64#1+16],>x4=int64#13
-# lduw [<x=%i0+16],>x4=%o3
-lduw [%i0+16],%o3
-
-#     x5 = *(uint32 *) (x + 20)
-# lduw [<x=int64#1+20],>x5=int64#14
-# lduw [<x=%i0+20],>x5=%o4
-lduw [%i0+20],%o4
-
-#     x6 = *(uint32 *) (x + 24)
-# lduw [<x=int64#1+24],>x6=int64#15
-# lduw [<x=%i0+24],>x6=%o5
-lduw [%i0+24],%o5
-
-#     x7 = *(uint32 *) (x + 28)
-# lduw [<x=int64#1+28],>x7=int64#16
-# lduw [<x=%i0+28],>x7=%o7
-lduw [%i0+28],%o7
-
-#     x8 = *(uint32 *) (x + 32)
-# lduw [<x=int64#1+32],>x8=int64#17
-# lduw [<x=%i0+32],>x8=%l0
-lduw [%i0+32],%l0
-
-#     x9 = *(uint32 *) (x + 36)
-# lduw [<x=int64#1+36],>x9=int64#18
-# lduw [<x=%i0+36],>x9=%l1
-lduw [%i0+36],%l1
-
-#     x10 = *(uint32 *) (x + 40)
-# lduw [<x=int64#1+40],>x10=int64#19
-# lduw [<x=%i0+40],>x10=%l2
-lduw [%i0+40],%l2
-
-#     x11 = *(uint32 *) (x + 44)
-# lduw [<x=int64#1+44],>x11=int64#20
-# lduw [<x=%i0+44],>x11=%l3
-lduw [%i0+44],%l3
-
-#     x12 = *(uint32 *) (x + 48)
-# lduw [<x=int64#1+48],>x12=int64#21
-# lduw [<x=%i0+48],>x12=%l4
-lduw [%i0+48],%l4
-
-#     x13 = *(uint32 *) (x + 52)
-# lduw [<x=int64#1+52],>x13=int64#22
-# lduw [<x=%i0+52],>x13=%l5
-lduw [%i0+52],%l5
-
-#     x14 = *(uint32 *) (x + 56)
-# lduw [<x=int64#1+56],>x14=int64#23
-# lduw [<x=%i0+56],>x14=%l6
-lduw [%i0+56],%l6
-
-#     x15 = *(uint32 *) (x + 60)
-# lduw [<x=int64#1+60],>x15=int64#24
-# lduw [<x=%i0+60],>x15=%l7
-lduw [%i0+60],%l7
-
-#     i = 12
-# add %g0,12,>i=int64#2
-# add %g0,12,>i=%i1
-add %g0,12,%i1
-
-#     bytes_stack = bytes
-# stx <bytes=int64#6,[%fp+2023->bytes_stack=stack64#2]
-# stx <bytes=%i5,[%fp+2023->bytes_stack=72]
-stx %i5,[%fp+2023-72]
-
-#     out_stack = out
-# stx <out=int64#5,[%fp+2023->out_stack=stack64#3]
-# stx <out=%i4,[%fp+2023->out_stack=80]
-stx %i4,[%fp+2023-80]
-
-#     m_stack = m
-# stx <m=int64#4,[%fp+2023->m_stack=stack64#4]
-# stx <m=%i3,[%fp+2023->m_stack=88]
-stx %i3,[%fp+2023-88]
-
-#     x_stack = x
-# stx <x=int64#1,[%fp+2023->x_stack=stack64#5]
-# stx <x=%i0,[%fp+2023->x_stack=96]
-stx %i0,[%fp+2023-96]
+# qhasm:     x0 = *(uint32 *) (x + 0)
+# asm 1: lduw [<x=int64#1+0],>x0=int64#3
+# asm 2: lduw [<x=%i0+0],>x0=%i2
+lduw [%i0+0],%i2
+
+# qhasm:     x1 = *(uint32 *) (x + 4)
+# asm 1: lduw [<x=int64#1+4],>x1=int64#7
+# asm 2: lduw [<x=%i0+4],>x1=%g1
+lduw [%i0+4],%g1
+
+# qhasm:     x2 = *(uint32 *) (x + 8)
+# asm 1: lduw [<x=int64#1+8],>x2=int64#8
+# asm 2: lduw [<x=%i0+8],>x2=%g4
+lduw [%i0+8],%g4
+
+# qhasm:     x3 = *(uint32 *) (x + 12)
+# asm 1: lduw [<x=int64#1+12],>x3=int64#9
+# asm 2: lduw [<x=%i0+12],>x3=%g5
+lduw [%i0+12],%g5
+
+# qhasm:     x4 = *(uint32 *) (x + 16)
+# asm 1: lduw [<x=int64#1+16],>x4=int64#10
+# asm 2: lduw [<x=%i0+16],>x4=%o0
+lduw [%i0+16],%o0
+
+# qhasm:     x5 = *(uint32 *) (x + 20)
+# asm 1: lduw [<x=int64#1+20],>x5=int64#11
+# asm 2: lduw [<x=%i0+20],>x5=%o1
+lduw [%i0+20],%o1
+
+# qhasm:     x6 = *(uint32 *) (x + 24)
+# asm 1: lduw [<x=int64#1+24],>x6=int64#12
+# asm 2: lduw [<x=%i0+24],>x6=%o2
+lduw [%i0+24],%o2
+
+# qhasm:     x7 = *(uint32 *) (x + 28)
+# asm 1: lduw [<x=int64#1+28],>x7=int64#13
+# asm 2: lduw [<x=%i0+28],>x7=%o3
+lduw [%i0+28],%o3
+
+# qhasm:     x8 = *(uint32 *) (x + 32)
+# asm 1: lduw [<x=int64#1+32],>x8=int64#14
+# asm 2: lduw [<x=%i0+32],>x8=%o4
+lduw [%i0+32],%o4
+
+# qhasm:     x9 = *(uint32 *) (x + 36)
+# asm 1: lduw [<x=int64#1+36],>x9=int64#15
+# asm 2: lduw [<x=%i0+36],>x9=%o5
+lduw [%i0+36],%o5
+
+# qhasm:     x10 = *(uint32 *) (x + 40)
+# asm 1: lduw [<x=int64#1+40],>x10=int64#16
+# asm 2: lduw [<x=%i0+40],>x10=%o7
+lduw [%i0+40],%o7
+
+# qhasm:     x11 = *(uint32 *) (x + 44)
+# asm 1: lduw [<x=int64#1+44],>x11=int64#17
+# asm 2: lduw [<x=%i0+44],>x11=%l0
+lduw [%i0+44],%l0
+
+# qhasm:     x12 = *(uint32 *) (x + 48)
+# asm 1: lduw [<x=int64#1+48],>x12=int64#18
+# asm 2: lduw [<x=%i0+48],>x12=%l1
+lduw [%i0+48],%l1
+
+# qhasm:     x13 = *(uint32 *) (x + 52)
+# asm 1: lduw [<x=int64#1+52],>x13=int64#19
+# asm 2: lduw [<x=%i0+52],>x13=%l2
+lduw [%i0+52],%l2
+
+# qhasm:     x14 = *(uint32 *) (x + 56)
+# asm 1: lduw [<x=int64#1+56],>x14=int64#20
+# asm 2: lduw [<x=%i0+56],>x14=%l3
+lduw [%i0+56],%l3
+
+# qhasm:     x15 = *(uint32 *) (x + 60)
+# asm 1: lduw [<x=int64#1+60],>x15=int64#21
+# asm 2: lduw [<x=%i0+60],>x15=%l4
+lduw [%i0+60],%l4
+
+# qhasm:     i = 12
+# asm 1: add %g0,12,>i=int64#4
+# asm 2: add %g0,12,>i=%i3
+add %g0,12,%i3
+
+# qhasm:     bytes_stack = bytes
+# asm 1: stx <bytes=int64#5,[%fp+2023->bytes_stack=stack64#2]
+# asm 2: stx <bytes=%i4,[%fp+2023->bytes_stack=8]
+stx %i4,[%fp+2023-8]
+
+# qhasm:     out_stack = out
+# asm 1: stx <out=int64#2,[%fp+2023->out_stack=stack64#3]
+# asm 2: stx <out=%i1,[%fp+2023->out_stack=16]
+stx %i1,[%fp+2023-16]
+
+# qhasm:     m_stack = m
+# asm 1: stx <m=int64#6,[%fp+2023->m_stack=stack64#4]
+# asm 2: stx <m=%i5,[%fp+2023->m_stack=24]
+stx %i5,[%fp+2023-24]
+
+# qhasm:     x_stack = x
+# asm 1: stx <x=int64#1,[%fp+2023->x_stack=stack64#5]
+# asm 2: stx <x=%i0,[%fp+2023->x_stack=32]
+stx %i0,[%fp+2023-32]
 
-#     mainloop#
+# qhasm:     mainloop:
 ._mainloop:
 
-# y4 = x0 + x12
-# add <x0=int64#9,<x12=int64#21,>y4=int64#3
-# add <x0=%g5,<x12=%l4,>y4=%i2
-add %g5,%l4,%i2
-
-# 		y9 = x5 + x1
-# add <x5=int64#14,<x1=int64#10,>y9=int64#6
-# add <x5=%o4,<x1=%o0,>y9=%i5
-add %o4,%o0,%i5
-
-# z4 = (uint32) y4 << 7
-# sll <y4=int64#3,7,>z4=int64#1
-# sll <y4=%i2,7,>z4=%i0
-sll %i2,7,%i0
-
-# 				y14 = x10 + x6
-# add <x10=int64#19,<x6=int64#15,>y14=int64#7
-# add <x10=%l2,<x6=%o5,>y14=%g1
-add %l2,%o5,%g1
-
-# y4 = (uint32) y4 >> 25
-# srl <y4=int64#3,25,>y4=int64#4
-# srl <y4=%i2,25,>y4=%i3
-srl %i2,25,%i3
-
-# 						y3 = x15 + x11
-# add <x15=int64#24,<x11=int64#20,>y3=int64#5
-# add <x15=%l7,<x11=%l3,>y3=%i4
-add %l7,%l3,%i4
-
-# 		z9 = (uint32) y9 << 7
-# sll <y9=int64#6,7,>z9=int64#3
-# sll <y9=%i5,7,>z9=%i2
-sll %i5,7,%i2
-
-# y4 |= z4
-# or  <y4=int64#4,<z4=int64#1,>y4=int64#1
-# or  <y4=%i3,<z4=%i0,>y4=%i0
-or  %i3,%i0,%i0
-
-# 		y9 = (uint32) y9 >> 25
-# srl <y9=int64#6,25,>y9=int64#6
-# srl <y9=%i5,25,>y9=%i5
+# qhasm: y4 = x0 + x12
+# asm 1: add <x0=int64#3,<x12=int64#18,>y4=int64#1
+# asm 2: add <x0=%i2,<x12=%l1,>y4=%i0
+add %i2,%l1,%i0
+
+# qhasm: 		y9 = x5 + x1
+# asm 1: add <x5=int64#11,<x1=int64#7,>y9=int64#2
+# asm 2: add <x5=%o1,<x1=%g1,>y9=%i1
+add %o1,%g1,%i1
+
+# qhasm: z4 = (uint32) y4 << 7
+# asm 1: sll <y4=int64#1,7,>z4=int64#5
+# asm 2: sll <y4=%i0,7,>z4=%i4
+sll %i0,7,%i4
+
+# qhasm: 				y14 = x10 + x6
+# asm 1: add <x10=int64#16,<x6=int64#12,>y14=int64#6
+# asm 2: add <x10=%o7,<x6=%o2,>y14=%i5
+add %o7,%o2,%i5
+
+# qhasm: y4 = (uint32) y4 >> 25
+# asm 1: srl <y4=int64#1,25,>y4=int64#1
+# asm 2: srl <y4=%i0,25,>y4=%i0
+srl %i0,25,%i0
+
+# qhasm: 						y3 = x15 + x11
+# asm 1: add <x15=int64#21,<x11=int64#17,>y3=int64#22
+# asm 2: add <x15=%l4,<x11=%l0,>y3=%l5
+add %l4,%l0,%l5
+
+# qhasm: 		z9 = (uint32) y9 << 7
+# asm 1: sll <y9=int64#2,7,>z9=int64#23
+# asm 2: sll <y9=%i1,7,>z9=%l6
+sll %i1,7,%l6
+
+# qhasm: y4 |= z4
+# asm 1: or  <y4=int64#1,<z4=int64#5,>y4=int64#1
+# asm 2: or  <y4=%i0,<z4=%i4,>y4=%i0
+or  %i0,%i4,%i0
+
+# qhasm: 		y9 = (uint32) y9 >> 25
+# asm 1: srl <y9=int64#2,25,>y9=int64#2
+# asm 2: srl <y9=%i1,25,>y9=%i1
+srl %i1,25,%i1
+
+# qhasm: x4 ^= y4
+# asm 1: xor <x4=int64#10,<y4=int64#1,>x4=int64#1
+# asm 2: xor <x4=%o0,<y4=%i0,>x4=%i0
+xor %o0,%i0,%i0
+
+# qhasm: 				z14 = (uint32) y14 << 7
+# asm 1: sll <y14=int64#6,7,>z14=int64#5
+# asm 2: sll <y14=%i5,7,>z14=%i4
+sll %i5,7,%i4
+
+# qhasm: 		y9 |= z9
+# asm 1: or  <y9=int64#2,<z9=int64#23,>y9=int64#2
+# asm 2: or  <y9=%i1,<z9=%l6,>y9=%i1
+or  %i1,%l6,%i1
+
+# qhasm: 				y14 = (uint32) y14 >> 25
+# asm 1: srl <y14=int64#6,25,>y14=int64#6
+# asm 2: srl <y14=%i5,25,>y14=%i5
 srl %i5,25,%i5
 
-# x4 ^= y4
-# xor <x4=int64#13,<y4=int64#1,>x4=int64#13
-# xor <x4=%o3,<y4=%i0,>x4=%o3
-xor %o3,%i0,%o3
-
-# 				z14 = (uint32) y14 << 7
-# sll <y14=int64#7,7,>z14=int64#4
-# sll <y14=%g1,7,>z14=%i3
-sll %g1,7,%i3
-
-# 		y9 |= z9
-# or  <y9=int64#6,<z9=int64#3,>y9=int64#3
-# or  <y9=%i5,<z9=%i2,>y9=%i2
-or  %i5,%i2,%i2
-
-# 				y14 = (uint32) y14 >> 25
-# srl <y14=int64#7,25,>y14=int64#7
-# srl <y14=%g1,25,>y14=%g1
-srl %g1,25,%g1
-
-# y8 = x4 + x0
-# add <x4=int64#13,<x0=int64#9,>y8=int64#6
-# add <x4=%o3,<x0=%g5,>y8=%i5
-add %o3,%g5,%i5
-
-# 						z3 = (uint32) y3 << 7
-# sll <y3=int64#5,7,>z3=int64#1
-# sll <y3=%i4,7,>z3=%i0
-sll %i4,7,%i0
-
-# 		x9 ^= y9
-# xor <x9=int64#18,<y9=int64#3,>x9=int64#18
-# xor <x9=%l1,<y9=%i2,>x9=%l1
-xor %l1,%i2,%l1
-
-# 						y3 = (uint32) y3 >> 25
-# srl <y3=int64#5,25,>y3=int64#5
-# srl <y3=%i4,25,>y3=%i4
-srl %i4,25,%i4
-
-# 				y14 |= z14
-# or  <y14=int64#7,<z14=int64#4,>y14=int64#4
-# or  <y14=%g1,<z14=%i3,>y14=%i3
-or  %g1,%i3,%i3
-
-# z8 = (uint32) y8 << 9
-# sll <y8=int64#6,9,>z8=int64#3
-# sll <y8=%i5,9,>z8=%i2
-sll %i5,9,%i2
-
-# 		y13 = x9 + x5
-# add <x9=int64#18,<x5=int64#14,>y13=int64#7
-# add <x9=%l1,<x5=%o4,>y13=%g1
-add %l1,%o4,%g1
-
-# y8 = (uint32) y8 >> 23
-# srl <y8=int64#6,23,>y8=int64#6
-# srl <y8=%i5,23,>y8=%i5
-srl %i5,23,%i5
-
-# 				x14 ^= y14
-# xor <x14=int64#23,<y14=int64#4,>x14=int64#23
-# xor <x14=%l6,<y14=%i3,>x14=%l6
-xor %l6,%i3,%l6
-
-# 						y3 |= z3
-# or  <y3=int64#5,<z3=int64#1,>y3=int64#1
-# or  <y3=%i4,<z3=%i0,>y3=%i0
-or  %i4,%i0,%i0
-
-# 				y2 = x14 + x10
-# add <x14=int64#23,<x10=int64#19,>y2=int64#5
-# add <x14=%l6,<x10=%l2,>y2=%i4
-add %l6,%l2,%i4
-
-# 		z13 = (uint32) y13 << 9
-# sll <y13=int64#7,9,>z13=int64#4
-# sll <y13=%g1,9,>z13=%i3
-sll %g1,9,%i3
-
-# 						x3 ^= y3
-# xor <x3=int64#12,<y3=int64#1,>x3=int64#12
-# xor <x3=%o2,<y3=%i0,>x3=%o2
-xor %o2,%i0,%o2
-
-# 		y13 = (uint32) y13 >> 23
-# srl <y13=int64#7,23,>y13=int64#7
-# srl <y13=%g1,23,>y13=%g1
-srl %g1,23,%g1
-
-# y8 |= z8
-# or  <y8=int64#6,<z8=int64#3,>y8=int64#3
-# or  <y8=%i5,<z8=%i2,>y8=%i2
-or  %i5,%i2,%i2
-
-# 				z2 = (uint32) y2 << 9
-# sll <y2=int64#5,9,>z2=int64#1
-# sll <y2=%i4,9,>z2=%i0
-sll %i4,9,%i0
-
-# 						y7 = x3 + x15
-# add <x3=int64#12,<x15=int64#24,>y7=int64#6
-# add <x3=%o2,<x15=%l7,>y7=%i5
-add %o2,%l7,%i5
-
-# 				y2 = (uint32) y2 >> 23
-# srl <y2=int64#5,23,>y2=int64#5
-# srl <y2=%i4,23,>y2=%i4
-srl %i4,23,%i4
-
-# x8 ^= y8
-# xor <x8=int64#17,<y8=int64#3,>x8=int64#17
-# xor <x8=%l0,<y8=%i2,>x8=%l0
-xor %l0,%i2,%l0
-
-# 		y13 |= z13
-# or  <y13=int64#7,<z13=int64#4,>y13=int64#4
-# or  <y13=%g1,<z13=%i3,>y13=%i3
-or  %g1,%i3,%i3
-
-# y12 = x8 + x4
-# add <x8=int64#17,<x4=int64#13,>y12=int64#7
-# add <x8=%l0,<x4=%o3,>y12=%g1
-add %l0,%o3,%g1
-
-# 						z7 = (uint32) y7 << 9
-# sll <y7=int64#6,9,>z7=int64#3
-# sll <y7=%i5,9,>z7=%i2
-sll %i5,9,%i2
-
-# 		x13 ^= y13
-# xor <x13=int64#22,<y13=int64#4,>x13=int64#22
-# xor <x13=%l5,<y13=%i3,>x13=%l5
-xor %l5,%i3,%l5
-
-# 						y7 = (uint32) y7 >> 23
-# srl <y7=int64#6,23,>y7=int64#6
-# srl <y7=%i5,23,>y7=%i5
-srl %i5,23,%i5
-
-# 				y2 |= z2
-# or  <y2=int64#5,<z2=int64#1,>y2=int64#1
-# or  <y2=%i4,<z2=%i0,>y2=%i0
-or  %i4,%i0,%i0
-
-# z12 = (uint32) y12 << 13
-# sll <y12=int64#7,13,>z12=int64#4
-# sll <y12=%g1,13,>z12=%i3
-sll %g1,13,%i3
-
-# 		y1 = x13 + x9
-# add <x13=int64#22,<x9=int64#18,>y1=int64#5
-# add <x13=%l5,<x9=%l1,>y1=%i4
-add %l5,%l1,%i4
-
-# y12 = (uint32) y12 >> 19
-# srl <y12=int64#7,19,>y12=int64#7
-# srl <y12=%g1,19,>y12=%g1
-srl %g1,19,%g1
-
-# 				x2 ^= y2
-# xor <x2=int64#11,<y2=int64#1,>x2=int64#11
-# xor <x2=%o1,<y2=%i0,>x2=%o1
-xor %o1,%i0,%o1
-
-# 						y7 |= z7
-# or  <y7=int64#6,<z7=int64#3,>y7=int64#3
-# or  <y7=%i5,<z7=%i2,>y7=%i2
-or  %i5,%i2,%i2
-
-# 				y6 = x2 + x14
-# add <x2=int64#11,<x14=int64#23,>y6=int64#6
-# add <x2=%o1,<x14=%l6,>y6=%i5
-add %o1,%l6,%i5
-
-# 		z1 = (uint32) y1 << 13
-# sll <y1=int64#5,13,>z1=int64#1
-# sll <y1=%i4,13,>z1=%i0
-sll %i4,13,%i0
-
-# 						x7 ^= y7
-# xor <x7=int64#16,<y7=int64#3,>x7=int64#16
-# xor <x7=%o7,<y7=%i2,>x7=%o7
-xor %o7,%i2,%o7
-
-# 		y1 = (uint32) y1 >> 19
-# srl <y1=int64#5,19,>y1=int64#5
-# srl <y1=%i4,19,>y1=%i4
-srl %i4,19,%i4
-
-# y12 |= z12
-# or  <y12=int64#7,<z12=int64#4,>y12=int64#4
-# or  <y12=%g1,<z12=%i3,>y12=%i3
-or  %g1,%i3,%i3
-
-# 				z6 = (uint32) y6 << 13
-# sll <y6=int64#6,13,>z6=int64#3
-# sll <y6=%i5,13,>z6=%i2
-sll %i5,13,%i2
-
-# 						y11 = x7 + x3
-# add <x7=int64#16,<x3=int64#12,>y11=int64#7
-# add <x7=%o7,<x3=%o2,>y11=%g1
-add %o7,%o2,%g1
-
-# 				y6 = (uint32) y6 >> 19
-# srl <y6=int64#6,19,>y6=int64#6
-# srl <y6=%i5,19,>y6=%i5
-srl %i5,19,%i5
-
-# x12 ^= y12
-# xor <x12=int64#21,<y12=int64#4,>x12=int64#21
-# xor <x12=%l4,<y12=%i3,>x12=%l4
-xor %l4,%i3,%l4
-
-# 		y1 |= z1
-# or  <y1=int64#5,<z1=int64#1,>y1=int64#1
-# or  <y1=%i4,<z1=%i0,>y1=%i0
-or  %i4,%i0,%i0
-
-# y0 = x12 + x8
-# add <x12=int64#21,<x8=int64#17,>y0=int64#5
-# add <x12=%l4,<x8=%l0,>y0=%i4
-add %l4,%l0,%i4
-
-# 						z11 = (uint32) y11 << 13
-# sll <y11=int64#7,13,>z11=int64#4
-# sll <y11=%g1,13,>z11=%i3
-sll %g1,13,%i3
-
-# 		x1 ^= y1
-# xor <x1=int64#10,<y1=int64#1,>x1=int64#10
-# xor <x1=%o0,<y1=%i0,>x1=%o0
-xor %o0,%i0,%o0
-
-# 						y11 = (uint32) y11 >> 19
-# srl <y11=int64#7,19,>y11=int64#7
-# srl <y11=%g1,19,>y11=%g1
-srl %g1,19,%g1
-
-# 				y6 |= z6
-# or  <y6=int64#6,<z6=int64#3,>y6=int64#3
-# or  <y6=%i5,<z6=%i2,>y6=%i2
-or  %i5,%i2,%i2
-
-# z0 = (uint32) y0 << 18
-# sll <y0=int64#5,18,>z0=int64#1
-# sll <y0=%i4,18,>z0=%i0
-sll %i4,18,%i0
-
-# 		y5 = x1 + x13
-# add <x1=int64#10,<x13=int64#22,>y5=int64#6
-# add <x1=%o0,<x13=%l5,>y5=%i5
-add %o0,%l5,%i5
-
-# y0 = (uint32) y0 >> 14
-# srl <y0=int64#5,14,>y0=int64#5
-# srl <y0=%i4,14,>y0=%i4
-srl %i4,14,%i4
-
-# 				x6 ^= y6
-# xor <x6=int64#15,<y6=int64#3,>x6=int64#15
-# xor <x6=%o5,<y6=%i2,>x6=%o5
-xor %o5,%i2,%o5
-
-# 						y11 |= z11
-# or  <y11=int64#7,<z11=int64#4,>y11=int64#4
-# or  <y11=%g1,<z11=%i3,>y11=%i3
-or  %g1,%i3,%i3
-
-# 				y10 = x6 + x2
-# add <x6=int64#15,<x2=int64#11,>y10=int64#7
-# add <x6=%o5,<x2=%o1,>y10=%g1
-add %o5,%o1,%g1
-
-# 		z5 = (uint32) y5 << 18
-# sll <y5=int64#6,18,>z5=int64#3
-# sll <y5=%i5,18,>z5=%i2
-sll %i5,18,%i2
-
-# 						x11 ^= y11
-# xor <x11=int64#20,<y11=int64#4,>x11=int64#20
-# xor <x11=%l3,<y11=%i3,>x11=%l3
-xor %l3,%i3,%l3
-
-# 		y5 = (uint32) y5 >> 14
-# srl <y5=int64#6,14,>y5=int64#6
-# srl <y5=%i5,14,>y5=%i5
-srl %i5,14,%i5
-
-# y0 |= z0
-# or  <y0=int64#5,<z0=int64#1,>y0=int64#4
-# or  <y0=%i4,<z0=%i0,>y0=%i3
-or  %i4,%i0,%i3
-
-# 				z10 = (uint32) y10 << 18
-# sll <y10=int64#7,18,>z10=int64#1
-# sll <y10=%g1,18,>z10=%i0
-sll %g1,18,%i0
-
-# 						y15 = x11 + x7
-# add <x11=int64#20,<x7=int64#16,>y15=int64#8
-# add <x11=%l3,<x7=%o7,>y15=%g4
-add %l3,%o7,%g4
-
-# 				y10 = (uint32) y10 >> 14
-# srl <y10=int64#7,14,>y10=int64#7
-# srl <y10=%g1,14,>y10=%g1
-srl %g1,14,%g1
-
-# x0 ^= y0
-# xor <x0=int64#9,<y0=int64#4,>x0=int64#9
-# xor <x0=%g5,<y0=%i3,>x0=%g5
-xor %g5,%i3,%g5
-
-# 		y5 |= z5
-# or  <y5=int64#6,<z5=int64#3,>y5=int64#5
-# or  <y5=%i5,<z5=%i2,>y5=%i4
-or  %i5,%i2,%i4
-
-# u1 = x0 + x3
-# add <x0=int64#9,<x3=int64#12,>u1=int64#4
-# add <x0=%g5,<x3=%o2,>u1=%i3
-add %g5,%o2,%i3
-
-# 						z15 = (uint32) y15 << 18
-# sll <y15=int64#8,18,>z15=int64#3
-# sll <y15=%g4,18,>z15=%i2
-sll %g4,18,%i2
-
-# 		x5 ^= y5
-# xor <x5=int64#14,<y5=int64#5,>x5=int64#14
-# xor <x5=%o4,<y5=%i4,>x5=%o4
-xor %o4,%i4,%o4
-
-# 						y15 = (uint32) y15 >> 14
-# srl <y15=int64#8,14,>y15=int64#8
-# srl <y15=%g4,14,>y15=%g4
-srl %g4,14,%g4
-
-# 				y10 |= z10
-# or  <y10=int64#7,<z10=int64#1,>y10=int64#6
-# or  <y10=%g1,<z10=%i0,>y10=%i5
-or  %g1,%i0,%i5
-
-# z1 = (uint32) u1 << 7
-# sll <u1=int64#4,7,>z1=int64#1
-# sll <u1=%i3,7,>z1=%i0
-sll %i3,7,%i0
-
-# 		u6 = x5 + x4
-# add <x5=int64#14,<x4=int64#13,>u6=int64#5
-# add <x5=%o4,<x4=%o3,>u6=%i4
-add %o4,%o3,%i4
-
-# u1 = (uint32) u1 >> 25
-# srl <u1=int64#4,25,>u1=int64#4
-# srl <u1=%i3,25,>u1=%i3
-srl %i3,25,%i3
-
-# 				x10 ^= y10
-# xor <x10=int64#19,<y10=int64#6,>x10=int64#19
-# xor <x10=%l2,<y10=%i5,>x10=%l2
-xor %l2,%i5,%l2
-
-# 						y15 |= z15
-# or  <y15=int64#8,<z15=int64#3,>y15=int64#7
-# or  <y15=%g4,<z15=%i2,>y15=%g1
-or  %g4,%i2,%g1
-
-# 				u11 = x10 + x9
-# add <x10=int64#19,<x9=int64#18,>u11=int64#6
-# add <x10=%l2,<x9=%l1,>u11=%i5
-add %l2,%l1,%i5
-
-# 		z6 = (uint32) u6 << 7
-# sll <u6=int64#5,7,>z6=int64#3
-# sll <u6=%i4,7,>z6=%i2
-sll %i4,7,%i2
-
-# 						x15 ^= y15
-# xor <x15=int64#24,<y15=int64#7,>x15=int64#24
-# xor <x15=%l7,<y15=%g1,>x15=%l7
-xor %l7,%g1,%l7
-
-# 		u6 = (uint32) u6 >> 25
-# srl <u6=int64#5,25,>u6=int64#5
-# srl <u6=%i4,25,>u6=%i4
-srl %i4,25,%i4
-
-# u1 |= z1
-# or  <u1=int64#4,<z1=int64#1,>u1=int64#4
-# or  <u1=%i3,<z1=%i0,>u1=%i3
-or  %i3,%i0,%i3
-
-# 				z11 = (uint32) u11 << 7
-# sll <u11=int64#6,7,>z11=int64#1
-# sll <u11=%i5,7,>z11=%i0
-sll %i5,7,%i0
-
-# 						u12 = x15 + x14
-# add <x15=int64#24,<x14=int64#23,>u12=int64#7
-# add <x15=%l7,<x14=%l6,>u12=%g1
-add %l7,%l6,%g1
-
-# 				u11 = (uint32) u11 >> 25
-# srl <u11=int64#6,25,>u11=int64#6
-# srl <u11=%i5,25,>u11=%i5
-srl %i5,25,%i5
+# qhasm: y8 = x4 + x0
+# asm 1: add <x4=int64#1,<x0=int64#3,>y8=int64#10
+# asm 2: add <x4=%i0,<x0=%i2,>y8=%o0
+add %i0,%i2,%o0
+
+# qhasm: 						z3 = (uint32) y3 << 7
+# asm 1: sll <y3=int64#22,7,>z3=int64#23
+# asm 2: sll <y3=%l5,7,>z3=%l6
+sll %l5,7,%l6
+
+# qhasm: 		x9 ^= y9
+# asm 1: xor <x9=int64#15,<y9=int64#2,>x9=int64#2
+# asm 2: xor <x9=%o5,<y9=%i1,>x9=%i1
+xor %o5,%i1,%i1
+
+# qhasm: 						y3 = (uint32) y3 >> 25
+# asm 1: srl <y3=int64#22,25,>y3=int64#15
+# asm 2: srl <y3=%l5,25,>y3=%o5
+srl %l5,25,%o5
+
+# qhasm: 				y14 |= z14
+# asm 1: or  <y14=int64#6,<z14=int64#5,>y14=int64#5
+# asm 2: or  <y14=%i5,<z14=%i4,>y14=%i4
+or  %i5,%i4,%i4
+
+# qhasm: z8 = (uint32) y8 << 9
+# asm 1: sll <y8=int64#10,9,>z8=int64#6
+# asm 2: sll <y8=%o0,9,>z8=%i5
+sll %o0,9,%i5
+
+# qhasm: 		y13 = x9 + x5
+# asm 1: add <x9=int64#2,<x5=int64#11,>y13=int64#22
+# asm 2: add <x9=%i1,<x5=%o1,>y13=%l5
+add %i1,%o1,%l5
+
+# qhasm: y8 = (uint32) y8 >> 23
+# asm 1: srl <y8=int64#10,23,>y8=int64#10
+# asm 2: srl <y8=%o0,23,>y8=%o0
+srl %o0,23,%o0
+
+# qhasm: 				x14 ^= y14
+# asm 1: xor <x14=int64#20,<y14=int64#5,>x14=int64#5
+# asm 2: xor <x14=%l3,<y14=%i4,>x14=%i4
+xor %l3,%i4,%i4
+
+# qhasm: 						y3 |= z3
+# asm 1: or  <y3=int64#15,<z3=int64#23,>y3=int64#15
+# asm 2: or  <y3=%o5,<z3=%l6,>y3=%o5
+or  %o5,%l6,%o5
+
+# qhasm: 				y2 = x14 + x10
+# asm 1: add <x14=int64#5,<x10=int64#16,>y2=int64#20
+# asm 2: add <x14=%i4,<x10=%o7,>y2=%l3
+add %i4,%o7,%l3
+
+# qhasm: 		z13 = (uint32) y13 << 9
+# asm 1: sll <y13=int64#22,9,>z13=int64#23
+# asm 2: sll <y13=%l5,9,>z13=%l6
+sll %l5,9,%l6
+
+# qhasm: 						x3 ^= y3
+# asm 1: xor <x3=int64#9,<y3=int64#15,>x3=int64#9
+# asm 2: xor <x3=%g5,<y3=%o5,>x3=%g5
+xor %g5,%o5,%g5
+
+# qhasm: 		y13 = (uint32) y13 >> 23
+# asm 1: srl <y13=int64#22,23,>y13=int64#15
+# asm 2: srl <y13=%l5,23,>y13=%o5
+srl %l5,23,%o5
+
+# qhasm: y8 |= z8
+# asm 1: or  <y8=int64#10,<z8=int64#6,>y8=int64#6
+# asm 2: or  <y8=%o0,<z8=%i5,>y8=%i5
+or  %o0,%i5,%i5
+
+# qhasm: 				z2 = (uint32) y2 << 9
+# asm 1: sll <y2=int64#20,9,>z2=int64#10
+# asm 2: sll <y2=%l3,9,>z2=%o0
+sll %l3,9,%o0
+
+# qhasm: 						y7 = x3 + x15
+# asm 1: add <x3=int64#9,<x15=int64#21,>y7=int64#22
+# asm 2: add <x3=%g5,<x15=%l4,>y7=%l5
+add %g5,%l4,%l5
+
+# qhasm: 				y2 = (uint32) y2 >> 23
+# asm 1: srl <y2=int64#20,23,>y2=int64#20
+# asm 2: srl <y2=%l3,23,>y2=%l3
+srl %l3,23,%l3
+
+# qhasm: x8 ^= y8
+# asm 1: xor <x8=int64#14,<y8=int64#6,>x8=int64#6
+# asm 2: xor <x8=%o4,<y8=%i5,>x8=%i5
+xor %o4,%i5,%i5
+
+# qhasm: 		y13 |= z13
+# asm 1: or  <y13=int64#15,<z13=int64#23,>y13=int64#14
+# asm 2: or  <y13=%o5,<z13=%l6,>y13=%o4
+or  %o5,%l6,%o4
+
+# qhasm: y12 = x8 + x4
+# asm 1: add <x8=int64#6,<x4=int64#1,>y12=int64#15
+# asm 2: add <x8=%i5,<x4=%i0,>y12=%o5
+add %i5,%i0,%o5
+
+# qhasm: 						z7 = (uint32) y7 << 9
+# asm 1: sll <y7=int64#22,9,>z7=int64#23
+# asm 2: sll <y7=%l5,9,>z7=%l6
+sll %l5,9,%l6
+
+# qhasm: 		x13 ^= y13
+# asm 1: xor <x13=int64#19,<y13=int64#14,>x13=int64#19
+# asm 2: xor <x13=%l2,<y13=%o4,>x13=%l2
+xor %l2,%o4,%l2
+
+# qhasm: 						y7 = (uint32) y7 >> 23
+# asm 1: srl <y7=int64#22,23,>y7=int64#14
+# asm 2: srl <y7=%l5,23,>y7=%o4
+srl %l5,23,%o4
+
+# qhasm: 				y2 |= z2
+# asm 1: or  <y2=int64#20,<z2=int64#10,>y2=int64#10
+# asm 2: or  <y2=%l3,<z2=%o0,>y2=%o0
+or  %l3,%o0,%o0
+
+# qhasm: z12 = (uint32) y12 << 13
+# asm 1: sll <y12=int64#15,13,>z12=int64#20
+# asm 2: sll <y12=%o5,13,>z12=%l3
+sll %o5,13,%l3
+
+# qhasm: 		y1 = x13 + x9
+# asm 1: add <x13=int64#19,<x9=int64#2,>y1=int64#22
+# asm 2: add <x13=%l2,<x9=%i1,>y1=%l5
+add %l2,%i1,%l5
+
+# qhasm: y12 = (uint32) y12 >> 19
+# asm 1: srl <y12=int64#15,19,>y12=int64#15
+# asm 2: srl <y12=%o5,19,>y12=%o5
+srl %o5,19,%o5
+
+# qhasm: 				x2 ^= y2
+# asm 1: xor <x2=int64#8,<y2=int64#10,>x2=int64#8
+# asm 2: xor <x2=%g4,<y2=%o0,>x2=%g4
+xor %g4,%o0,%g4
+
+# qhasm: 						y7 |= z7
+# asm 1: or  <y7=int64#14,<z7=int64#23,>y7=int64#10
+# asm 2: or  <y7=%o4,<z7=%l6,>y7=%o0
+or  %o4,%l6,%o0
+
+# qhasm: 				y6 = x2 + x14
+# asm 1: add <x2=int64#8,<x14=int64#5,>y6=int64#14
+# asm 2: add <x2=%g4,<x14=%i4,>y6=%o4
+add %g4,%i4,%o4
+
+# qhasm: 		z1 = (uint32) y1 << 13
+# asm 1: sll <y1=int64#22,13,>z1=int64#23
+# asm 2: sll <y1=%l5,13,>z1=%l6
+sll %l5,13,%l6
+
+# qhasm: 						x7 ^= y7
+# asm 1: xor <x7=int64#13,<y7=int64#10,>x7=int64#10
+# asm 2: xor <x7=%o3,<y7=%o0,>x7=%o0
+xor %o3,%o0,%o0
+
+# qhasm: 		y1 = (uint32) y1 >> 19
+# asm 1: srl <y1=int64#22,19,>y1=int64#13
+# asm 2: srl <y1=%l5,19,>y1=%o3
+srl %l5,19,%o3
+
+# qhasm: y12 |= z12
+# asm 1: or  <y12=int64#15,<z12=int64#20,>y12=int64#15
+# asm 2: or  <y12=%o5,<z12=%l3,>y12=%o5
+or  %o5,%l3,%o5
+
+# qhasm: 				z6 = (uint32) y6 << 13
+# asm 1: sll <y6=int64#14,13,>z6=int64#20
+# asm 2: sll <y6=%o4,13,>z6=%l3
+sll %o4,13,%l3
+
+# qhasm: 						y11 = x7 + x3
+# asm 1: add <x7=int64#10,<x3=int64#9,>y11=int64#22
+# asm 2: add <x7=%o0,<x3=%g5,>y11=%l5
+add %o0,%g5,%l5
+
+# qhasm: 				y6 = (uint32) y6 >> 19
+# asm 1: srl <y6=int64#14,19,>y6=int64#14
+# asm 2: srl <y6=%o4,19,>y6=%o4
+srl %o4,19,%o4
+
+# qhasm: x12 ^= y12
+# asm 1: xor <x12=int64#18,<y12=int64#15,>x12=int64#15
+# asm 2: xor <x12=%l1,<y12=%o5,>x12=%o5
+xor %l1,%o5,%o5
+
+# qhasm: 		y1 |= z1
+# asm 1: or  <y1=int64#13,<z1=int64#23,>y1=int64#13
+# asm 2: or  <y1=%o3,<z1=%l6,>y1=%o3
+or  %o3,%l6,%o3
+
+# qhasm: y0 = x12 + x8
+# asm 1: add <x12=int64#15,<x8=int64#6,>y0=int64#18
+# asm 2: add <x12=%o5,<x8=%i5,>y0=%l1
+add %o5,%i5,%l1
+
+# qhasm: 						z11 = (uint32) y11 << 13
+# asm 1: sll <y11=int64#22,13,>z11=int64#23
+# asm 2: sll <y11=%l5,13,>z11=%l6
+sll %l5,13,%l6
+
+# qhasm: 		x1 ^= y1
+# asm 1: xor <x1=int64#7,<y1=int64#13,>x1=int64#7
+# asm 2: xor <x1=%g1,<y1=%o3,>x1=%g1
+xor %g1,%o3,%g1
+
+# qhasm: 						y11 = (uint32) y11 >> 19
+# asm 1: srl <y11=int64#22,19,>y11=int64#13
+# asm 2: srl <y11=%l5,19,>y11=%o3
+srl %l5,19,%o3
+
+# qhasm: 				y6 |= z6
+# asm 1: or  <y6=int64#14,<z6=int64#20,>y6=int64#14
+# asm 2: or  <y6=%o4,<z6=%l3,>y6=%o4
+or  %o4,%l3,%o4
+
+# qhasm: z0 = (uint32) y0 << 18
+# asm 1: sll <y0=int64#18,18,>z0=int64#20
+# asm 2: sll <y0=%l1,18,>z0=%l3
+sll %l1,18,%l3
+
+# qhasm: 		y5 = x1 + x13
+# asm 1: add <x1=int64#7,<x13=int64#19,>y5=int64#22
+# asm 2: add <x1=%g1,<x13=%l2,>y5=%l5
+add %g1,%l2,%l5
+
+# qhasm: y0 = (uint32) y0 >> 14
+# asm 1: srl <y0=int64#18,14,>y0=int64#18
+# asm 2: srl <y0=%l1,14,>y0=%l1
+srl %l1,14,%l1
+
+# qhasm: 				x6 ^= y6
+# asm 1: xor <x6=int64#12,<y6=int64#14,>x6=int64#12
+# asm 2: xor <x6=%o2,<y6=%o4,>x6=%o2
+xor %o2,%o4,%o2
+
+# qhasm: 						y11 |= z11
+# asm 1: or  <y11=int64#13,<z11=int64#23,>y11=int64#13
+# asm 2: or  <y11=%o3,<z11=%l6,>y11=%o3
+or  %o3,%l6,%o3
+
+# qhasm: 				y10 = x6 + x2
+# asm 1: add <x6=int64#12,<x2=int64#8,>y10=int64#14
+# asm 2: add <x6=%o2,<x2=%g4,>y10=%o4
+add %o2,%g4,%o4
+
+# qhasm: 		z5 = (uint32) y5 << 18
+# asm 1: sll <y5=int64#22,18,>z5=int64#23
+# asm 2: sll <y5=%l5,18,>z5=%l6
+sll %l5,18,%l6
+
+# qhasm: 						x11 ^= y11
+# asm 1: xor <x11=int64#17,<y11=int64#13,>x11=int64#13
+# asm 2: xor <x11=%l0,<y11=%o3,>x11=%o3
+xor %l0,%o3,%o3
+
+# qhasm: 		y5 = (uint32) y5 >> 14
+# asm 1: srl <y5=int64#22,14,>y5=int64#17
+# asm 2: srl <y5=%l5,14,>y5=%l0
+srl %l5,14,%l0
+
+# qhasm: y0 |= z0
+# asm 1: or  <y0=int64#18,<z0=int64#20,>y0=int64#18
+# asm 2: or  <y0=%l1,<z0=%l3,>y0=%l1
+or  %l1,%l3,%l1
+
+# qhasm: 				z10 = (uint32) y10 << 18
+# asm 1: sll <y10=int64#14,18,>z10=int64#20
+# asm 2: sll <y10=%o4,18,>z10=%l3
+sll %o4,18,%l3
+
+# qhasm: 						y15 = x11 + x7
+# asm 1: add <x11=int64#13,<x7=int64#10,>y15=int64#22
+# asm 2: add <x11=%o3,<x7=%o0,>y15=%l5
+add %o3,%o0,%l5
+
+# qhasm: 				y10 = (uint32) y10 >> 14
+# asm 1: srl <y10=int64#14,14,>y10=int64#14
+# asm 2: srl <y10=%o4,14,>y10=%o4
+srl %o4,14,%o4
+
+# qhasm: x0 ^= y0
+# asm 1: xor <x0=int64#3,<y0=int64#18,>x0=int64#3
+# asm 2: xor <x0=%i2,<y0=%l1,>x0=%i2
+xor %i2,%l1,%i2
+
+# qhasm: 		y5 |= z5
+# asm 1: or  <y5=int64#17,<z5=int64#23,>y5=int64#17
+# asm 2: or  <y5=%l0,<z5=%l6,>y5=%l0
+or  %l0,%l6,%l0
+
+# qhasm: u1 = x0 + x3
+# asm 1: add <x0=int64#3,<x3=int64#9,>u1=int64#18
+# asm 2: add <x0=%i2,<x3=%g5,>u1=%l1
+add %i2,%g5,%l1
+
+# qhasm: 						z15 = (uint32) y15 << 18
+# asm 1: sll <y15=int64#22,18,>z15=int64#23
+# asm 2: sll <y15=%l5,18,>z15=%l6
+sll %l5,18,%l6
+
+# qhasm: 		x5 ^= y5
+# asm 1: xor <x5=int64#11,<y5=int64#17,>x5=int64#11
+# asm 2: xor <x5=%o1,<y5=%l0,>x5=%o1
+xor %o1,%l0,%o1
+
+# qhasm: 						y15 = (uint32) y15 >> 14
+# asm 1: srl <y15=int64#22,14,>y15=int64#17
+# asm 2: srl <y15=%l5,14,>y15=%l0
+srl %l5,14,%l0
+
+# qhasm: 				y10 |= z10
+# asm 1: or  <y10=int64#14,<z10=int64#20,>y10=int64#14
+# asm 2: or  <y10=%o4,<z10=%l3,>y10=%o4
+or  %o4,%l3,%o4
+
+# qhasm: z1 = (uint32) u1 << 7
+# asm 1: sll <u1=int64#18,7,>z1=int64#20
+# asm 2: sll <u1=%l1,7,>z1=%l3
+sll %l1,7,%l3
+
+# qhasm: 		u6 = x5 + x4
+# asm 1: add <x5=int64#11,<x4=int64#1,>u6=int64#22
+# asm 2: add <x5=%o1,<x4=%i0,>u6=%l5
+add %o1,%i0,%l5
+
+# qhasm: u1 = (uint32) u1 >> 25
+# asm 1: srl <u1=int64#18,25,>u1=int64#18
+# asm 2: srl <u1=%l1,25,>u1=%l1
+srl %l1,25,%l1
+
+# qhasm: 				x10 ^= y10
+# asm 1: xor <x10=int64#16,<y10=int64#14,>x10=int64#16
+# asm 2: xor <x10=%o7,<y10=%o4,>x10=%o7
+xor %o7,%o4,%o7
+
+# qhasm: 						y15 |= z15
+# asm 1: or  <y15=int64#17,<z15=int64#23,>y15=int64#14
+# asm 2: or  <y15=%l0,<z15=%l6,>y15=%o4
+or  %l0,%l6,%o4
+
+# qhasm: 				u11 = x10 + x9
+# asm 1: add <x10=int64#16,<x9=int64#2,>u11=int64#17
+# asm 2: add <x10=%o7,<x9=%i1,>u11=%l0
+add %o7,%i1,%l0
+
+# qhasm: 		z6 = (uint32) u6 << 7
+# asm 1: sll <u6=int64#22,7,>z6=int64#23
+# asm 2: sll <u6=%l5,7,>z6=%l6
+sll %l5,7,%l6
+
+# qhasm: 						x15 ^= y15
+# asm 1: xor <x15=int64#21,<y15=int64#14,>x15=int64#21
+# asm 2: xor <x15=%l4,<y15=%o4,>x15=%l4
+xor %l4,%o4,%l4
+
+# qhasm: 		u6 = (uint32) u6 >> 25
+# asm 1: srl <u6=int64#22,25,>u6=int64#14
+# asm 2: srl <u6=%l5,25,>u6=%o4
+srl %l5,25,%o4
+
+# qhasm: u1 |= z1
+# asm 1: or  <u1=int64#18,<z1=int64#20,>u1=int64#18
+# asm 2: or  <u1=%l1,<z1=%l3,>u1=%l1
+or  %l1,%l3,%l1
+
+# qhasm: 				z11 = (uint32) u11 << 7
+# asm 1: sll <u11=int64#17,7,>z11=int64#20
+# asm 2: sll <u11=%l0,7,>z11=%l3
+sll %l0,7,%l3
+
+# qhasm: 						u12 = x15 + x14
+# asm 1: add <x15=int64#21,<x14=int64#5,>u12=int64#22
+# asm 2: add <x15=%l4,<x14=%i4,>u12=%l5
+add %l4,%i4,%l5
+
+# qhasm: 				u11 = (uint32) u11 >> 25
+# asm 1: srl <u11=int64#17,25,>u11=int64#17
+# asm 2: srl <u11=%l0,25,>u11=%l0
+srl %l0,25,%l0
+
+# qhasm: 		u6 |= z6
+# asm 1: or  <u6=int64#14,<z6=int64#23,>u6=int64#14
+# asm 2: or  <u6=%o4,<z6=%l6,>u6=%o4
+or  %o4,%l6,%o4
+
+# qhasm: x1 ^= u1
+# asm 1: xor <x1=int64#7,<u1=int64#18,>x1=int64#7
+# asm 2: xor <x1=%g1,<u1=%l1,>x1=%g1
+xor %g1,%l1,%g1
+
+# qhasm: 						z12 = (uint32) u12 << 7
+# asm 1: sll <u12=int64#22,7,>z12=int64#18
+# asm 2: sll <u12=%l5,7,>z12=%l1
+sll %l5,7,%l1
+
+# qhasm: 		x6 ^= u6
+# asm 1: xor <x6=int64#12,<u6=int64#14,>x6=int64#12
+# asm 2: xor <x6=%o2,<u6=%o4,>x6=%o2
+xor %o2,%o4,%o2
+
+# qhasm: 						u12 = (uint32) u12 >> 25
+# asm 1: srl <u12=int64#22,25,>u12=int64#14
+# asm 2: srl <u12=%l5,25,>u12=%o4
+srl %l5,25,%o4
+
+# qhasm: 				u11 |= z11
+# asm 1: or  <u11=int64#17,<z11=int64#20,>u11=int64#17
+# asm 2: or  <u11=%l0,<z11=%l3,>u11=%l0
+or  %l0,%l3,%l0
+
+# qhasm: u2 = x1 + x0
+# asm 1: add <x1=int64#7,<x0=int64#3,>u2=int64#20
+# asm 2: add <x1=%g1,<x0=%i2,>u2=%l3
+add %g1,%i2,%l3
+
+# qhasm: 		u7 = x6 + x5
+# asm 1: add <x6=int64#12,<x5=int64#11,>u7=int64#22
+# asm 2: add <x6=%o2,<x5=%o1,>u7=%l5
+add %o2,%o1,%l5
+
+# qhasm: z2 = (uint32) u2 << 9
+# asm 1: sll <u2=int64#20,9,>z2=int64#23
+# asm 2: sll <u2=%l3,9,>z2=%l6
+sll %l3,9,%l6
+
+# qhasm: 				x11 ^= u11
+# asm 1: xor <x11=int64#13,<u11=int64#17,>x11=int64#17
+# asm 2: xor <x11=%o3,<u11=%l0,>x11=%l0
+xor %o3,%l0,%l0
+
+# qhasm: u2 = (uint32) u2 >> 23
+# asm 1: srl <u2=int64#20,23,>u2=int64#13
+# asm 2: srl <u2=%l3,23,>u2=%o3
+srl %l3,23,%o3
+
+# qhasm: 						u12 |= z12
+# asm 1: or  <u12=int64#14,<z12=int64#18,>u12=int64#14
+# asm 2: or  <u12=%o4,<z12=%l1,>u12=%o4
+or  %o4,%l1,%o4
+
+# qhasm: 		z7 = (uint32) u7 << 9
+# asm 1: sll <u7=int64#22,9,>z7=int64#20
+# asm 2: sll <u7=%l5,9,>z7=%l3
+sll %l5,9,%l3
+
+# qhasm: 				u8 = x11 + x10
+# asm 1: add <x11=int64#17,<x10=int64#16,>u8=int64#24
+# asm 2: add <x11=%l0,<x10=%o7,>u8=%l7
+add %l0,%o7,%l7
+
+# qhasm: 		u7 = (uint32) u7 >> 23
+# asm 1: srl <u7=int64#22,23,>u7=int64#22
+# asm 2: srl <u7=%l5,23,>u7=%l5
+srl %l5,23,%l5
+
+# qhasm: 						x12 ^= u12
+# asm 1: xor <x12=int64#15,<u12=int64#14,>x12=int64#18
+# asm 2: xor <x12=%o5,<u12=%o4,>x12=%l1
+xor %o5,%o4,%l1
+
+# qhasm: 				z8 = (uint32) u8 << 9
+# asm 1: sll <u8=int64#24,9,>z8=int64#14
+# asm 2: sll <u8=%l7,9,>z8=%o4
+sll %l7,9,%o4
+
+# qhasm: u2 |= z2
+# asm 1: or  <u2=int64#13,<z2=int64#23,>u2=int64#13
+# asm 2: or  <u2=%o3,<z2=%l6,>u2=%o3
+or  %o3,%l6,%o3
+
+# qhasm: 				u8 = (uint32) u8 >> 23
+# asm 1: srl <u8=int64#24,23,>u8=int64#15
+# asm 2: srl <u8=%l7,23,>u8=%o5
+srl %l7,23,%o5
+
+# qhasm: 						u13 = x12 + x15
+# asm 1: add <x12=int64#18,<x15=int64#21,>u13=int64#23
+# asm 2: add <x12=%l1,<x15=%l4,>u13=%l6
+add %l1,%l4,%l6
+
+# qhasm: 		u7 |= z7
+# asm 1: or  <u7=int64#22,<z7=int64#20,>u7=int64#20
+# asm 2: or  <u7=%l5,<z7=%l3,>u7=%l3
+or  %l5,%l3,%l3
+
+# qhasm: x2 ^= u2
+# asm 1: xor <x2=int64#8,<u2=int64#13,>x2=int64#8
+# asm 2: xor <x2=%g4,<u2=%o3,>x2=%g4
+xor %g4,%o3,%g4
+
+# qhasm: 						z13 = (uint32) u13 << 9
+# asm 1: sll <u13=int64#23,9,>z13=int64#22
+# asm 2: sll <u13=%l6,9,>z13=%l5
+sll %l6,9,%l5
+
+# qhasm: 		x7 ^= u7
+# asm 1: xor <x7=int64#10,<u7=int64#20,>x7=int64#13
+# asm 2: xor <x7=%o0,<u7=%l3,>x7=%o3
+xor %o0,%l3,%o3
+
+# qhasm: 						u13 = (uint32) u13 >> 23
+# asm 1: srl <u13=int64#23,23,>u13=int64#10
+# asm 2: srl <u13=%l6,23,>u13=%o0
+srl %l6,23,%o0
+
+# qhasm: 				u8 |= z8
+# asm 1: or  <u8=int64#15,<z8=int64#14,>u8=int64#14
+# asm 2: or  <u8=%o5,<z8=%o4,>u8=%o4
+or  %o5,%o4,%o4
+
+# qhasm: u3 = x2 + x1
+# asm 1: add <x2=int64#8,<x1=int64#7,>u3=int64#15
+# asm 2: add <x2=%g4,<x1=%g1,>u3=%o5
+add %g4,%g1,%o5
+
+# qhasm: 		u4 = x7 + x6
+# asm 1: add <x7=int64#13,<x6=int64#12,>u4=int64#20
+# asm 2: add <x7=%o3,<x6=%o2,>u4=%l3
+add %o3,%o2,%l3
+
+# qhasm: z3 = (uint32) u3 << 13
+# asm 1: sll <u3=int64#15,13,>z3=int64#23
+# asm 2: sll <u3=%o5,13,>z3=%l6
+sll %o5,13,%l6
+
+# qhasm: 				x8 ^= u8
+# asm 1: xor <x8=int64#6,<u8=int64#14,>x8=int64#14
+# asm 2: xor <x8=%i5,<u8=%o4,>x8=%o4
+xor %i5,%o4,%o4
+
+# qhasm: 		z4 = (uint32) u4 << 13
+# asm 1: sll <u4=int64#20,13,>z4=int64#6
+# asm 2: sll <u4=%l3,13,>z4=%i5
+sll %l3,13,%i5
+
+# qhasm: 						u13 |= z13
+# asm 1: or  <u13=int64#10,<z13=int64#22,>u13=int64#10
+# asm 2: or  <u13=%o0,<z13=%l5,>u13=%o0
+or  %o0,%l5,%o0
+
+# qhasm: u3 = (uint32) u3 >> 19
+# asm 1: srl <u3=int64#15,19,>u3=int64#15
+# asm 2: srl <u3=%o5,19,>u3=%o5
+srl %o5,19,%o5
+
+# qhasm: 				u9 = x8 + x11
+# asm 1: add <x8=int64#14,<x11=int64#17,>u9=int64#22
+# asm 2: add <x8=%o4,<x11=%l0,>u9=%l5
+add %o4,%l0,%l5
+
+# qhasm: 		u4 = (uint32) u4 >> 19
+# asm 1: srl <u4=int64#20,19,>u4=int64#20
+# asm 2: srl <u4=%l3,19,>u4=%l3
+srl %l3,19,%l3
+
+# qhasm: 						x13 ^= u13
+# asm 1: xor <x13=int64#19,<u13=int64#10,>x13=int64#19
+# asm 2: xor <x13=%l2,<u13=%o0,>x13=%l2
+xor %l2,%o0,%l2
+
+# qhasm: 				z9 = (uint32) u9 << 13
+# asm 1: sll <u9=int64#22,13,>z9=int64#24
+# asm 2: sll <u9=%l5,13,>z9=%l7
+sll %l5,13,%l7
+
+# qhasm: u3 |= z3
+# asm 1: or  <u3=int64#15,<z3=int64#23,>u3=int64#10
+# asm 2: or  <u3=%o5,<z3=%l6,>u3=%o0
+or  %o5,%l6,%o0
+
+# qhasm: 				u9 = (uint32) u9 >> 19
+# asm 1: srl <u9=int64#22,19,>u9=int64#15
+# asm 2: srl <u9=%l5,19,>u9=%o5
+srl %l5,19,%o5
+
+# qhasm: 						u14 = x13 + x12
+# asm 1: add <x13=int64#19,<x12=int64#18,>u14=int64#22
+# asm 2: add <x13=%l2,<x12=%l1,>u14=%l5
+add %l2,%l1,%l5
+
+# qhasm: 		u4 |= z4
+# asm 1: or  <u4=int64#20,<z4=int64#6,>u4=int64#6
+# asm 2: or  <u4=%l3,<z4=%i5,>u4=%i5
+or  %l3,%i5,%i5
+
+# qhasm: x3 ^= u3
+# asm 1: xor <x3=int64#9,<u3=int64#10,>x3=int64#9
+# asm 2: xor <x3=%g5,<u3=%o0,>x3=%g5
+xor %g5,%o0,%g5
+
+# qhasm: 						z14 = (uint32) u14 << 13
+# asm 1: sll <u14=int64#22,13,>z14=int64#20
+# asm 2: sll <u14=%l5,13,>z14=%l3
+sll %l5,13,%l3
+
+# qhasm: 		x4 ^= u4
+# asm 1: xor <x4=int64#1,<u4=int64#6,>x4=int64#10
+# asm 2: xor <x4=%i0,<u4=%i5,>x4=%o0
+xor %i0,%i5,%o0
+
+# qhasm: 						u14 = (uint32) u14 >> 19
+# asm 1: srl <u14=int64#22,19,>u14=int64#1
+# asm 2: srl <u14=%l5,19,>u14=%i0
+srl %l5,19,%i0
+
+# qhasm: 				u9 |= z9
+# asm 1: or  <u9=int64#15,<z9=int64#24,>u9=int64#6
+# asm 2: or  <u9=%o5,<z9=%l7,>u9=%i5
+or  %o5,%l7,%i5
+
+# qhasm: u0 = x3 + x2
+# asm 1: add <x3=int64#9,<x2=int64#8,>u0=int64#22
+# asm 2: add <x3=%g5,<x2=%g4,>u0=%l5
+add %g5,%g4,%l5
+
+# qhasm: 		u5 = x4 + x7
+# asm 1: add <x4=int64#10,<x7=int64#13,>u5=int64#23
+# asm 2: add <x4=%o0,<x7=%o3,>u5=%l6
+add %o0,%o3,%l6
+
+# qhasm: z0 = (uint32) u0 << 18
+# asm 1: sll <u0=int64#22,18,>z0=int64#24
+# asm 2: sll <u0=%l5,18,>z0=%l7
+sll %l5,18,%l7
+
+# qhasm: 				x9 ^= u9
+# asm 1: xor <x9=int64#2,<u9=int64#6,>x9=int64#15
+# asm 2: xor <x9=%i1,<u9=%i5,>x9=%o5
+xor %i1,%i5,%o5
+
+# qhasm: 		z5 = (uint32) u5 << 18
+# asm 1: sll <u5=int64#23,18,>z5=int64#2
+# asm 2: sll <u5=%l6,18,>z5=%i1
+sll %l6,18,%i1
+
+# qhasm: 						u14 |= z14
+# asm 1: or  <u14=int64#1,<z14=int64#20,>u14=int64#1
+# asm 2: or  <u14=%i0,<z14=%l3,>u14=%i0
+or  %i0,%l3,%i0
+
+# qhasm: u0 = (uint32) u0 >> 14
+# asm 1: srl <u0=int64#22,14,>u0=int64#6
+# asm 2: srl <u0=%l5,14,>u0=%i5
+srl %l5,14,%i5
+
+# qhasm: 				u10 = x9 + x8
+# asm 1: add <x9=int64#15,<x8=int64#14,>u10=int64#22
+# asm 2: add <x9=%o5,<x8=%o4,>u10=%l5
+add %o5,%o4,%l5
+
+# qhasm: 		u5 = (uint32) u5 >> 14
+# asm 1: srl <u5=int64#23,14,>u5=int64#23
+# asm 2: srl <u5=%l6,14,>u5=%l6
+srl %l6,14,%l6
+
+# qhasm: 						x14 ^= u14
+# asm 1: xor <x14=int64#5,<u14=int64#1,>x14=int64#20
+# asm 2: xor <x14=%i4,<u14=%i0,>x14=%l3
+xor %i4,%i0,%l3
+
+# qhasm: 				z10 = (uint32) u10 << 18
+# asm 1: sll <u10=int64#22,18,>z10=int64#1
+# asm 2: sll <u10=%l5,18,>z10=%i0
+sll %l5,18,%i0
+
+# qhasm: u0 |= z0
+# asm 1: or  <u0=int64#6,<z0=int64#24,>u0=int64#5
+# asm 2: or  <u0=%i5,<z0=%l7,>u0=%i4
+or  %i5,%l7,%i4
+
+# qhasm: 				u10 = (uint32) u10 >> 14
+# asm 1: srl <u10=int64#22,14,>u10=int64#6
+# asm 2: srl <u10=%l5,14,>u10=%i5
+srl %l5,14,%i5
+
+# qhasm: 						u15 = x14 + x13
+# asm 1: add <x14=int64#20,<x13=int64#19,>u15=int64#22
+# asm 2: add <x14=%l3,<x13=%l2,>u15=%l5
+add %l3,%l2,%l5
+
+# qhasm: 		u5 |= z5
+# asm 1: or  <u5=int64#23,<z5=int64#2,>u5=int64#2
+# asm 2: or  <u5=%l6,<z5=%i1,>u5=%i1
+or  %l6,%i1,%i1
+
+# qhasm: x0 ^= u0
+# asm 1: xor <x0=int64#3,<u0=int64#5,>x0=int64#3
+# asm 2: xor <x0=%i2,<u0=%i4,>x0=%i2
+xor %i2,%i4,%i2
 
-# 		u6 |= z6
-# or  <u6=int64#5,<z6=int64#3,>u6=int64#5
-# or  <u6=%i4,<z6=%i2,>u6=%i4
-or  %i4,%i2,%i4
-
-# x1 ^= u1
-# xor <x1=int64#10,<u1=int64#4,>x1=int64#10
-# xor <x1=%o0,<u1=%i3,>x1=%o0
-xor %o0,%i3,%o0
-
-# 						z12 = (uint32) u12 << 7
-# sll <u12=int64#7,7,>z12=int64#3
-# sll <u12=%g1,7,>z12=%i2
-sll %g1,7,%i2
-
-# 		x6 ^= u6
-# xor <x6=int64#15,<u6=int64#5,>x6=int64#15
-# xor <x6=%o5,<u6=%i4,>x6=%o5
-xor %o5,%i4,%o5
-
-# 						u12 = (uint32) u12 >> 25
-# srl <u12=int64#7,25,>u12=int64#7
-# srl <u12=%g1,25,>u12=%g1
-srl %g1,25,%g1
-
-# 				u11 |= z11
-# or  <u11=int64#6,<z11=int64#1,>u11=int64#5
-# or  <u11=%i5,<z11=%i0,>u11=%i4
-or  %i5,%i0,%i4
-
-# u2 = x1 + x0
-# add <x1=int64#10,<x0=int64#9,>u2=int64#4
-# add <x1=%o0,<x0=%g5,>u2=%i3
-add %o0,%g5,%i3
-
-# 		u7 = x6 + x5
-# add <x6=int64#15,<x5=int64#14,>u7=int64#6
-# add <x6=%o5,<x5=%o4,>u7=%i5
-add %o5,%o4,%i5
-
-# z2 = (uint32) u2 << 9
-# sll <u2=int64#4,9,>z2=int64#1
-# sll <u2=%i3,9,>z2=%i0
-sll %i3,9,%i0
-
-# 				x11 ^= u11
-# xor <x11=int64#20,<u11=int64#5,>x11=int64#20
-# xor <x11=%l3,<u11=%i4,>x11=%l3
-xor %l3,%i4,%l3
-
-# u2 = (uint32) u2 >> 23
-# srl <u2=int64#4,23,>u2=int64#5
-# srl <u2=%i3,23,>u2=%i4
-srl %i3,23,%i4
-
-# 						u12 |= z12
-# or  <u12=int64#7,<z12=int64#3,>u12=int64#4
-# or  <u12=%g1,<z12=%i2,>u12=%i3
-or  %g1,%i2,%i3
-
-# 		z7 = (uint32) u7 << 9
-# sll <u7=int64#6,9,>z7=int64#3
-# sll <u7=%i5,9,>z7=%i2
-sll %i5,9,%i2
-
-# 				u8 = x11 + x10
-# add <x11=int64#20,<x10=int64#19,>u8=int64#7
-# add <x11=%l3,<x10=%l2,>u8=%g1
-add %l3,%l2,%g1
-
-# 		u7 = (uint32) u7 >> 23
-# srl <u7=int64#6,23,>u7=int64#6
-# srl <u7=%i5,23,>u7=%i5
-srl %i5,23,%i5
-
-# 						x12 ^= u12
-# xor <x12=int64#21,<u12=int64#4,>x12=int64#21
-# xor <x12=%l4,<u12=%i3,>x12=%l4
-xor %l4,%i3,%l4
-
-# 				z8 = (uint32) u8 << 9
-# sll <u8=int64#7,9,>z8=int64#4
-# sll <u8=%g1,9,>z8=%i3
-sll %g1,9,%i3
-
-# u2 |= z2
-# or  <u2=int64#5,<z2=int64#1,>u2=int64#1
-# or  <u2=%i4,<z2=%i0,>u2=%i0
-or  %i4,%i0,%i0
-
-# 				u8 = (uint32) u8 >> 23
-# srl <u8=int64#7,23,>u8=int64#7
-# srl <u8=%g1,23,>u8=%g1
-srl %g1,23,%g1
-
-# 						u13 = x12 + x15
-# add <x12=int64#21,<x15=int64#24,>u13=int64#8
-# add <x12=%l4,<x15=%l7,>u13=%g4
-add %l4,%l7,%g4
-
-# 		u7 |= z7
-# or  <u7=int64#6,<z7=int64#3,>u7=int64#3
-# or  <u7=%i5,<z7=%i2,>u7=%i2
-or  %i5,%i2,%i2
-
-# x2 ^= u2
-# xor <x2=int64#11,<u2=int64#1,>x2=int64#11
-# xor <x2=%o1,<u2=%i0,>x2=%o1
-xor %o1,%i0,%o1
-
-# 						z13 = (uint32) u13 << 9
-# sll <u13=int64#8,9,>z13=int64#5
-# sll <u13=%g4,9,>z13=%i4
-sll %g4,9,%i4
-
-# 		x7 ^= u7
-# xor <x7=int64#16,<u7=int64#3,>x7=int64#16
-# xor <x7=%o7,<u7=%i2,>x7=%o7
-xor %o7,%i2,%o7
-
-# 						u13 = (uint32) u13 >> 23
-# srl <u13=int64#8,23,>u13=int64#8
-# srl <u13=%g4,23,>u13=%g4
-srl %g4,23,%g4
-
-# 				u8 |= z8
-# or  <u8=int64#7,<z8=int64#4,>u8=int64#3
-# or  <u8=%g1,<z8=%i3,>u8=%i2
-or  %g1,%i3,%i2
-
-# u3 = x2 + x1
-# add <x2=int64#11,<x1=int64#10,>u3=int64#4
-# add <x2=%o1,<x1=%o0,>u3=%i3
-add %o1,%o0,%i3
-
-# 		u4 = x7 + x6
-# add <x7=int64#16,<x6=int64#15,>u4=int64#6
-# add <x7=%o7,<x6=%o5,>u4=%i5
-add %o7,%o5,%i5
-
-# z3 = (uint32) u3 << 13
-# sll <u3=int64#4,13,>z3=int64#1
-# sll <u3=%i3,13,>z3=%i0
-sll %i3,13,%i0
-
-# 				x8 ^= u8
-# xor <x8=int64#17,<u8=int64#3,>x8=int64#17
-# xor <x8=%l0,<u8=%i2,>x8=%l0
-xor %l0,%i2,%l0
-
-# 		z4 = (uint32) u4 << 13
-# sll <u4=int64#6,13,>z4=int64#3
-# sll <u4=%i5,13,>z4=%i2
-sll %i5,13,%i2
-
-# 						u13 |= z13
-# or  <u13=int64#8,<z13=int64#5,>u13=int64#8
-# or  <u13=%g4,<z13=%i4,>u13=%g4
-or  %g4,%i4,%g4
-
-# u3 = (uint32) u3 >> 19
-# srl <u3=int64#4,19,>u3=int64#5
-# srl <u3=%i3,19,>u3=%i4
-srl %i3,19,%i4
-
-# 				u9 = x8 + x11
-# add <x8=int64#17,<x11=int64#20,>u9=int64#7
-# add <x8=%l0,<x11=%l3,>u9=%g1
-add %l0,%l3,%g1
-
-# 		u4 = (uint32) u4 >> 19
-# srl <u4=int64#6,19,>u4=int64#6
-# srl <u4=%i5,19,>u4=%i5
-srl %i5,19,%i5
-
-# 						x13 ^= u13
-# xor <x13=int64#22,<u13=int64#8,>x13=int64#22
-# xor <x13=%l5,<u13=%g4,>x13=%l5
-xor %l5,%g4,%l5
-
-# 				z9 = (uint32) u9 << 13
-# sll <u9=int64#7,13,>z9=int64#4
-# sll <u9=%g1,13,>z9=%i3
-sll %g1,13,%i3
-
-# u3 |= z3
-# or  <u3=int64#5,<z3=int64#1,>u3=int64#1
-# or  <u3=%i4,<z3=%i0,>u3=%i0
-or  %i4,%i0,%i0
-
-# 				u9 = (uint32) u9 >> 19
-# srl <u9=int64#7,19,>u9=int64#7
-# srl <u9=%g1,19,>u9=%g1
-srl %g1,19,%g1
-
-# 						u14 = x13 + x12
-# add <x13=int64#22,<x12=int64#21,>u14=int64#8
-# add <x13=%l5,<x12=%l4,>u14=%g4
-add %l5,%l4,%g4
-
-# 		u4 |= z4
-# or  <u4=int64#6,<z4=int64#3,>u4=int64#3
-# or  <u4=%i5,<z4=%i2,>u4=%i2
-or  %i5,%i2,%i2
-
-# x3 ^= u3
-# xor <x3=int64#12,<u3=int64#1,>x3=int64#12
-# xor <x3=%o2,<u3=%i0,>x3=%o2
-xor %o2,%i0,%o2
-
-# 						z14 = (uint32) u14 << 13
-# sll <u14=int64#8,13,>z14=int64#5
-# sll <u14=%g4,13,>z14=%i4
-sll %g4,13,%i4
-
-# 		x4 ^= u4
-# xor <x4=int64#13,<u4=int64#3,>x4=int64#13
-# xor <x4=%o3,<u4=%i2,>x4=%o3
-xor %o3,%i2,%o3
-
-# 						u14 = (uint32) u14 >> 19
-# srl <u14=int64#8,19,>u14=int64#8
-# srl <u14=%g4,19,>u14=%g4
-srl %g4,19,%g4
-
-# 				u9 |= z9
-# or  <u9=int64#7,<z9=int64#4,>u9=int64#3
-# or  <u9=%g1,<z9=%i3,>u9=%i2
-or  %g1,%i3,%i2
-
-# u0 = x3 + x2
-# add <x3=int64#12,<x2=int64#11,>u0=int64#4
-# add <x3=%o2,<x2=%o1,>u0=%i3
-add %o2,%o1,%i3
-
-# 		u5 = x4 + x7
-# add <x4=int64#13,<x7=int64#16,>u5=int64#6
-# add <x4=%o3,<x7=%o7,>u5=%i5
-add %o3,%o7,%i5
-
-# z0 = (uint32) u0 << 18
-# sll <u0=int64#4,18,>z0=int64#1
-# sll <u0=%i3,18,>z0=%i0
-sll %i3,18,%i0
-
-# 				x9 ^= u9
-# xor <x9=int64#18,<u9=int64#3,>x9=int64#18
-# xor <x9=%l1,<u9=%i2,>x9=%l1
-xor %l1,%i2,%l1
-
-# 		z5 = (uint32) u5 << 18
-# sll <u5=int64#6,18,>z5=int64#3
-# sll <u5=%i5,18,>z5=%i2
-sll %i5,18,%i2
-
-# 						u14 |= z14
-# or  <u14=int64#8,<z14=int64#5,>u14=int64#8
-# or  <u14=%g4,<z14=%i4,>u14=%g4
-or  %g4,%i4,%g4
-
-# u0 = (uint32) u0 >> 14
-# srl <u0=int64#4,14,>u0=int64#5
-# srl <u0=%i3,14,>u0=%i4
-srl %i3,14,%i4
-
-# 				u10 = x9 + x8
-# add <x9=int64#18,<x8=int64#17,>u10=int64#7
-# add <x9=%l1,<x8=%l0,>u10=%g1
-add %l1,%l0,%g1
-
-# 		u5 = (uint32) u5 >> 14
-# srl <u5=int64#6,14,>u5=int64#6
-# srl <u5=%i5,14,>u5=%i5
-srl %i5,14,%i5
-
-# 						x14 ^= u14
-# xor <x14=int64#23,<u14=int64#8,>x14=int64#23
-# xor <x14=%l6,<u14=%g4,>x14=%l6
-xor %l6,%g4,%l6
-
-# 				z10 = (uint32) u10 << 18
-# sll <u10=int64#7,18,>z10=int64#4
-# sll <u10=%g1,18,>z10=%i3
-sll %g1,18,%i3
-
-# u0 |= z0
-# or  <u0=int64#5,<z0=int64#1,>u0=int64#1
-# or  <u0=%i4,<z0=%i0,>u0=%i0
-or  %i4,%i0,%i0
-
-# 				u10 = (uint32) u10 >> 14
-# srl <u10=int64#7,14,>u10=int64#5
-# srl <u10=%g1,14,>u10=%i4
-srl %g1,14,%i4
-
-# 						u15 = x14 + x13
-# add <x14=int64#23,<x13=int64#22,>u15=int64#7
-# add <x14=%l6,<x13=%l5,>u15=%g1
-add %l6,%l5,%g1
-
-# 		u5 |= z5
-# or  <u5=int64#6,<z5=int64#3,>u5=int64#3
-# or  <u5=%i5,<z5=%i2,>u5=%i2
-or  %i5,%i2,%i2
-
-# x0 ^= u0
-# xor <x0=int64#9,<u0=int64#1,>x0=int64#9
-# xor <x0=%g5,<u0=%i0,>x0=%g5
-xor %g5,%i0,%g5
-
-# 						z15 = (uint32) u15 << 18
-# sll <u15=int64#7,18,>z15=int64#1
-# sll <u15=%g1,18,>z15=%i0
-sll %g1,18,%i0
-
-# 		x5 ^= u5
-# xor <x5=int64#14,<u5=int64#3,>x5=int64#14
-# xor <x5=%o4,<u5=%i2,>x5=%o4
-xor %o4,%i2,%o4
-
-# 						u15 = (uint32) u15 >> 14
-# srl <u15=int64#7,14,>u15=int64#6
-# srl <u15=%g1,14,>u15=%i5
-srl %g1,14,%i5
-
-# flags i -= 2
-# subcc <i=int64#2,2,>i=int64#2
-# subcc <i=%i1,2,>i=%i1
-subcc %i1,2,%i1
-
-# 				u10 |= z10
-# or  <u10=int64#5,<z10=int64#4,>u10=int64#3
-# or  <u10=%i4,<z10=%i3,>u10=%i2
-or  %i4,%i3,%i2
-
-# 						u15 |= z15
-# or  <u15=int64#6,<z15=int64#1,>u15=int64#1
-# or  <u15=%i5,<z15=%i0,>u15=%i0
+# qhasm: 						z15 = (uint32) u15 << 18
+# asm 1: sll <u15=int64#22,18,>z15=int64#5
+# asm 2: sll <u15=%l5,18,>z15=%i4
+sll %l5,18,%i4
+
+# qhasm: 		x5 ^= u5
+# asm 1: xor <x5=int64#11,<u5=int64#2,>x5=int64#11
+# asm 2: xor <x5=%o1,<u5=%i1,>x5=%o1
+xor %o1,%i1,%o1
+
+# qhasm: 						u15 = (uint32) u15 >> 14
+# asm 1: srl <u15=int64#22,14,>u15=int64#2
+# asm 2: srl <u15=%l5,14,>u15=%i1
+srl %l5,14,%i1
+
+# qhasm:                  unsigned>? i -= 2
+# asm 1: subcc <i=int64#4,2,>i=int64#4
+# asm 2: subcc <i=%i3,2,>i=%i3
+subcc %i3,2,%i3
+
+# qhasm: 				u10 |= z10
+# asm 1: or  <u10=int64#6,<z10=int64#1,>u10=int64#1
+# asm 2: or  <u10=%i5,<z10=%i0,>u10=%i0
 or  %i5,%i0,%i0
 
-# 				x10 ^= u10
-# xor <x10=int64#19,<u10=int64#3,>x10=int64#19
-# xor <x10=%l2,<u10=%i2,>x10=%l2
-xor %l2,%i2,%l2
-
-# 						x15 ^= u15
-# xor <x15=int64#24,<u15=int64#1,>x15=int64#24
-# xor <x15=%l7,<u15=%i0,>x15=%l7
-xor %l7,%i0,%l7
+# qhasm: 						u15 |= z15
+# asm 1: or  <u15=int64#2,<z15=int64#5,>u15=int64#2
+# asm 2: or  <u15=%i1,<z15=%i4,>u15=%i1
+or  %i1,%i4,%i1
+
+# qhasm: 				x10 ^= u10
+# asm 1: xor <x10=int64#16,<u10=int64#1,>x10=int64#16
+# asm 2: xor <x10=%o7,<u10=%i0,>x10=%o7
+xor %o7,%i0,%o7
+
+# qhasm: 						x15 ^= u15
+# asm 1: xor <x15=int64#21,<u15=int64#2,>x15=int64#21
+# asm 2: xor <x15=%l4,<u15=%i1,>x15=%l4
+xor %l4,%i1,%l4
 
-# goto mainloop if unsigned>
+# qhasm: goto mainloop if unsigned>
 bgu,pt %xcc,._mainloop
 nop
 
-#   x = x_stack
-# ldx [%fp+2023-<x_stack=stack64#5],>x=int64#1
-# ldx [%fp+2023-<x_stack=96],>x=%i0
-ldx [%fp+2023-96],%i0
-
-#   q0 = *(uint32 *) (x + 0)
-# lduw [<x=int64#1+0],>q0=int64#2
-# lduw [<x=%i0+0],>q0=%i1
+# qhasm:   x = x_stack
+# asm 1: ldx [%fp+2023-<x_stack=stack64#5],>x=int64#1
+# asm 2: ldx [%fp+2023-<x_stack=32],>x=%i0
+ldx [%fp+2023-32],%i0
+
+# qhasm:   q0 = *(uint32 *) (x + 0)
+# asm 1: lduw [<x=int64#1+0],>q0=int64#2
+# asm 2: lduw [<x=%i0+0],>q0=%i1
 lduw [%i0+0],%i1
 
-#   q1 = *(uint32 *) (x + 4)
-# lduw [<x=int64#1+4],>q1=int64#4
-# lduw [<x=%i0+4],>q1=%i3
+# qhasm:   q1 = *(uint32 *) (x + 4)
+# asm 1: lduw [<x=int64#1+4],>q1=int64#4
+# asm 2: lduw [<x=%i0+4],>q1=%i3
 lduw [%i0+4],%i3
 
-#   q2 = *(uint32 *) (x + 8)
-# lduw [<x=int64#1+8],>q2=int64#5
-# lduw [<x=%i0+8],>q2=%i4
+# qhasm:   q2 = *(uint32 *) (x + 8)
+# asm 1: lduw [<x=int64#1+8],>q2=int64#5
+# asm 2: lduw [<x=%i0+8],>q2=%i4
 lduw [%i0+8],%i4
 
-#   q3 = *(uint32 *) (x + 12)
-# lduw [<x=int64#1+12],>q3=int64#7
-# lduw [<x=%i0+12],>q3=%g1
-lduw [%i0+12],%g1
-
-#   x0 += q0
-# add <x0=int64#9,<q0=int64#2,>x0=int64#3
-# add <x0=%g5,<q0=%i1,>x0=%i2
-add %g5,%i1,%i2
-
-#   q4 = *(uint32 *) (x + 16)
-# lduw [<x=int64#1+16],>q4=int64#2
-# lduw [<x=%i0+16],>q4=%i1
-lduw [%i0+16],%i1
-
-#   x1 += q1
-# add <x1=int64#10,<q1=int64#4,>x1=int64#4
-# add <x1=%o0,<q1=%i3,>x1=%i3
-add %o0,%i3,%i3
-
-#   q5 = *(uint32 *) (x + 20)
-# lduw [<x=int64#1+20],>q5=int64#9
-# lduw [<x=%i0+20],>q5=%g5
-lduw [%i0+20],%g5
-
-#   x2 += q2
-# add <x2=int64#11,<q2=int64#5,>x2=int64#6
-# add <x2=%o1,<q2=%i4,>x2=%i5
-add %o1,%i4,%i5
-
-#   q6 = *(uint32 *) (x + 24)
-# lduw [<x=int64#1+24],>q6=int64#5
-# lduw [<x=%i0+24],>q6=%i4
-lduw [%i0+24],%i4
-
-#   x3 += q3
-# add <x3=int64#12,<q3=int64#7,>x3=int64#7
-# add <x3=%o2,<q3=%g1,>x3=%g1
-add %o2,%g1,%g1
-
-#   q7 = *(uint32 *) (x + 28)
-# lduw [<x=int64#1+28],>q7=int64#11
-# lduw [<x=%i0+28],>q7=%o1
-lduw [%i0+28],%o1
-
-#   x4 += q4
-# add <x4=int64#13,<q4=int64#2,>x4=int64#8
-# add <x4=%o3,<q4=%i1,>x4=%g4
-add %o3,%i1,%g4
-
-#   q8 = *(uint32 *) (x + 32)
-# lduw [<x=int64#1+32],>q8=int64#2
-# lduw [<x=%i0+32],>q8=%i1
-lduw [%i0+32],%i1
-
-#   x5 += q5
-# add <x5=int64#14,<q5=int64#9,>x5=int64#9
-# add <x5=%o4,<q5=%g5,>x5=%g5
-add %o4,%g5,%g5
-
-#   q9 = *(uint32 *) (x + 36)
-# lduw [<x=int64#1+36],>q9=int64#14
-# lduw [<x=%i0+36],>q9=%o4
-lduw [%i0+36],%o4
-
-#   x6 += q6
-# add <x6=int64#15,<q6=int64#5,>x6=int64#10
-# add <x6=%o5,<q6=%i4,>x6=%o0
-add %o5,%i4,%o0
-
-#   q10 = *(uint32 *) (x + 40)
-# lduw [<x=int64#1+40],>q10=int64#5
-# lduw [<x=%i0+40],>q10=%i4
-lduw [%i0+40],%i4
-
-#   x7 += q7
-# add <x7=int64#16,<q7=int64#11,>x7=int64#11
-# add <x7=%o7,<q7=%o1,>x7=%o1
-add %o7,%o1,%o1
-
-#   q11 = *(uint32 *) (x + 44)
-# lduw [<x=int64#1+44],>q11=int64#15
-# lduw [<x=%i0+44],>q11=%o5
-lduw [%i0+44],%o5
-
-#   x8 += q8
-# add <x8=int64#17,<q8=int64#2,>x8=int64#12
-# add <x8=%l0,<q8=%i1,>x8=%o2
-add %l0,%i1,%o2
-
-#   q8 += 1
-# add <q8=int64#2,1,>q8=int64#2
-# add <q8=%i1,1,>q8=%i1
-add %i1,1,%i1
-
-#   *(uint32 *) (x + 32) = q8
-# stw <q8=int64#2,[<x=int64#1+32]
-# stw <q8=%i1,[<x=%i0+32]
-stw %i1,[%i0+32]
-
-#   q8 = (uint64) q8 >> 32
-# srlx <q8=int64#2,32,>q8=int64#2
-# srlx <q8=%i1,32,>q8=%i1
-srlx %i1,32,%i1
-
-#   q12 = *(uint32 *) (x + 48)
-# lduw [<x=int64#1+48],>q12=int64#16
-# lduw [<x=%i0+48],>q12=%o7
-lduw [%i0+48],%o7
-
-#   x9 += q9
-# add <x9=int64#18,<q9=int64#14,>x9=int64#13
-# add <x9=%l1,<q9=%o4,>x9=%o3
-add %l1,%o4,%o3
-
-#   q9 += q8
-# add <q9=int64#14,<q8=int64#2,>q9=int64#2
-# add <q9=%o4,<q8=%i1,>q9=%i1
-add %o4,%i1,%i1
-
-#   *(uint32 *) (x + 36) = q9
-# stw <q9=int64#2,[<x=int64#1+36]
-# stw <q9=%i1,[<x=%i0+36]
-stw %i1,[%i0+36]
-
-#   q13 = *(uint32 *) (x + 52)
-# lduw [<x=int64#1+52],>q13=int64#2
-# lduw [<x=%i0+52],>q13=%i1
-lduw [%i0+52],%i1
-
-#   x10 += q10
-# add <x10=int64#19,<q10=int64#5,>x10=int64#14
-# add <x10=%l2,<q10=%i4,>x10=%o4
-add %l2,%i4,%o4
-
-#   q14 = *(uint32 *) (x + 56)
-# lduw [<x=int64#1+56],>q14=int64#5
-# lduw [<x=%i0+56],>q14=%i4
-lduw [%i0+56],%i4
-
-#   x11 += q11
-# add <x11=int64#20,<q11=int64#15,>x11=int64#15
-# add <x11=%l3,<q11=%o5,>x11=%o5
-add %l3,%o5,%o5
-
-#   q15 = *(uint32 *) (x + 60)
-# lduw [<x=int64#1+60],>q15=int64#19
-# lduw [<x=%i0+60],>q15=%l2
-lduw [%i0+60],%l2
-
-#   x12 += q12
-# add <x12=int64#21,<q12=int64#16,>x12=int64#16
-# add <x12=%l4,<q12=%o7,>x12=%o7
+# qhasm:   q3 = *(uint32 *) (x + 12)
+# asm 1: lduw [<x=int64#1+12],>q3=int64#6
+# asm 2: lduw [<x=%i0+12],>q3=%i5
+lduw [%i0+12],%i5
+
+# qhasm:   x0 += q0
+# asm 1: add <x0=int64#3,<q0=int64#2,>x0=int64#2
+# asm 2: add <x0=%i2,<q0=%i1,>x0=%i1
+add %i2,%i1,%i1
+
+# qhasm:   q4 = *(uint32 *) (x + 16)
+# asm 1: lduw [<x=int64#1+16],>q4=int64#3
+# asm 2: lduw [<x=%i0+16],>q4=%i2
+lduw [%i0+16],%i2
+
+# qhasm:   x1 += q1
+# asm 1: add <x1=int64#7,<q1=int64#4,>x1=int64#4
+# asm 2: add <x1=%g1,<q1=%i3,>x1=%i3
+add %g1,%i3,%i3
+
+# qhasm:   q5 = *(uint32 *) (x + 20)
+# asm 1: lduw [<x=int64#1+20],>q5=int64#7
+# asm 2: lduw [<x=%i0+20],>q5=%g1
+lduw [%i0+20],%g1
+
+# qhasm:   x2 += q2
+# asm 1: add <x2=int64#8,<q2=int64#5,>x2=int64#5
+# asm 2: add <x2=%g4,<q2=%i4,>x2=%i4
+add %g4,%i4,%i4
+
+# qhasm:   q6 = *(uint32 *) (x + 24)
+# asm 1: lduw [<x=int64#1+24],>q6=int64#8
+# asm 2: lduw [<x=%i0+24],>q6=%g4
+lduw [%i0+24],%g4
+
+# qhasm:   x3 += q3
+# asm 1: add <x3=int64#9,<q3=int64#6,>x3=int64#6
+# asm 2: add <x3=%g5,<q3=%i5,>x3=%i5
+add %g5,%i5,%i5
+
+# qhasm:   q7 = *(uint32 *) (x + 28)
+# asm 1: lduw [<x=int64#1+28],>q7=int64#9
+# asm 2: lduw [<x=%i0+28],>q7=%g5
+lduw [%i0+28],%g5
+
+# qhasm:   x4 += q4
+# asm 1: add <x4=int64#10,<q4=int64#3,>x4=int64#3
+# asm 2: add <x4=%o0,<q4=%i2,>x4=%i2
+add %o0,%i2,%i2
+
+# qhasm:   q8 = *(uint32 *) (x + 32)
+# asm 1: lduw [<x=int64#1+32],>q8=int64#10
+# asm 2: lduw [<x=%i0+32],>q8=%o0
+lduw [%i0+32],%o0
+
+# qhasm:   x5 += q5
+# asm 1: add <x5=int64#11,<q5=int64#7,>x5=int64#7
+# asm 2: add <x5=%o1,<q5=%g1,>x5=%g1
+add %o1,%g1,%g1
+
+# qhasm:   q9 = *(uint32 *) (x + 36)
+# asm 1: lduw [<x=int64#1+36],>q9=int64#11
+# asm 2: lduw [<x=%i0+36],>q9=%o1
+lduw [%i0+36],%o1
+
+# qhasm:   x6 += q6
+# asm 1: add <x6=int64#12,<q6=int64#8,>x6=int64#8
+# asm 2: add <x6=%o2,<q6=%g4,>x6=%g4
+add %o2,%g4,%g4
+
+# qhasm:   q10 = *(uint32 *) (x + 40)
+# asm 1: lduw [<x=int64#1+40],>q10=int64#12
+# asm 2: lduw [<x=%i0+40],>q10=%o2
+lduw [%i0+40],%o2
+
+# qhasm:   x7 += q7
+# asm 1: add <x7=int64#13,<q7=int64#9,>x7=int64#9
+# asm 2: add <x7=%o3,<q7=%g5,>x7=%g5
+add %o3,%g5,%g5
+
+# qhasm:   q11 = *(uint32 *) (x + 44)
+# asm 1: lduw [<x=int64#1+44],>q11=int64#13
+# asm 2: lduw [<x=%i0+44],>q11=%o3
+lduw [%i0+44],%o3
+
+# qhasm:   x8 += q8
+# asm 1: add <x8=int64#14,<q8=int64#10,>x8=int64#14
+# asm 2: add <x8=%o4,<q8=%o0,>x8=%o4
+add %o4,%o0,%o4
+
+# qhasm:   q8 += 1
+# asm 1: add <q8=int64#10,1,>q8=int64#10
+# asm 2: add <q8=%o0,1,>q8=%o0
+add %o0,1,%o0
+
+# qhasm:   *(uint32 *) (x + 32) = q8
+# asm 1: stw <q8=int64#10,[<x=int64#1+32]
+# asm 2: stw <q8=%o0,[<x=%i0+32]
+stw %o0,[%i0+32]
+
+# qhasm:   q8 = (uint64) q8 >> 32
+# asm 1: srlx <q8=int64#10,32,>q8=int64#10
+# asm 2: srlx <q8=%o0,32,>q8=%o0
+srlx %o0,32,%o0
+
+# qhasm:   q12 = *(uint32 *) (x + 48)
+# asm 1: lduw [<x=int64#1+48],>q12=int64#22
+# asm 2: lduw [<x=%i0+48],>q12=%l5
+lduw [%i0+48],%l5
+
+# qhasm:   x9 += q9
+# asm 1: add <x9=int64#15,<q9=int64#11,>x9=int64#15
+# asm 2: add <x9=%o5,<q9=%o1,>x9=%o5
+add %o5,%o1,%o5
+
+# qhasm:   q9 += q8
+# asm 1: add <q9=int64#11,<q8=int64#10,>q9=int64#10
+# asm 2: add <q9=%o1,<q8=%o0,>q9=%o0
+add %o1,%o0,%o0
+
+# qhasm:   *(uint32 *) (x + 36) = q9
+# asm 1: stw <q9=int64#10,[<x=int64#1+36]
+# asm 2: stw <q9=%o0,[<x=%i0+36]
+stw %o0,[%i0+36]
+
+# qhasm:   q13 = *(uint32 *) (x + 52)
+# asm 1: lduw [<x=int64#1+52],>q13=int64#10
+# asm 2: lduw [<x=%i0+52],>q13=%o0
+lduw [%i0+52],%o0
+
+# qhasm:   x10 += q10
+# asm 1: add <x10=int64#16,<q10=int64#12,>x10=int64#11
+# asm 2: add <x10=%o7,<q10=%o2,>x10=%o1
+add %o7,%o2,%o1
+
+# qhasm:   q14 = *(uint32 *) (x + 56)
+# asm 1: lduw [<x=int64#1+56],>q14=int64#12
+# asm 2: lduw [<x=%i0+56],>q14=%o2
+lduw [%i0+56],%o2
+
+# qhasm:   x11 += q11
+# asm 1: add <x11=int64#17,<q11=int64#13,>x11=int64#13
+# asm 2: add <x11=%l0,<q11=%o3,>x11=%o3
+add %l0,%o3,%o3
+
+# qhasm:   q15 = *(uint32 *) (x + 60)
+# asm 1: lduw [<x=int64#1+60],>q15=int64#16
+# asm 2: lduw [<x=%i0+60],>q15=%o7
+lduw [%i0+60],%o7
+
+# qhasm:   x12 += q12
+# asm 1: add <x12=int64#18,<q12=int64#22,>x12=int64#17
+# asm 2: add <x12=%l1,<q12=%l5,>x12=%l0
+add %l1,%l5,%l0
+
+# qhasm:   x13 += q13
+# asm 1: add <x13=int64#19,<q13=int64#10,>x13=int64#10
+# asm 2: add <x13=%l2,<q13=%o0,>x13=%o0
+add %l2,%o0,%o0
+
+# qhasm:   x14 += q14
+# asm 1: add <x14=int64#20,<q14=int64#12,>x14=int64#12
+# asm 2: add <x14=%l3,<q14=%o2,>x14=%o2
+add %l3,%o2,%o2
+
+# qhasm:   x15 += q15
+# asm 1: add <x15=int64#21,<q15=int64#16,>x15=int64#16
+# asm 2: add <x15=%l4,<q15=%o7,>x15=%o7
 add %l4,%o7,%o7
 
-#   x13 += q13
-# add <x13=int64#22,<q13=int64#2,>x13=int64#17
-# add <x13=%l5,<q13=%i1,>x13=%l0
-add %l5,%i1,%l0
-
-#   x14 += q14
-# add <x14=int64#23,<q14=int64#5,>x14=int64#18
-# add <x14=%l6,<q14=%i4,>x14=%l1
-add %l6,%i4,%l1
-
-#   x15 += q15
-# add <x15=int64#24,<q15=int64#19,>x15=int64#19
-# add <x15=%l7,<q15=%l2,>x15=%l2
-add %l7,%l2,%l2
-
-#   m = m_stack
-# ldx [%fp+2023-<m_stack=stack64#4],>m=int64#2
-# ldx [%fp+2023-<m_stack=88],>m=%i1
-ldx [%fp+2023-88],%i1
-
-#   m0 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m0=int64#5
-# lduwa [<m=%i1] 0x88,>m0=%i4
-lduwa [%i1] 0x88,%i4
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   m1 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m1=int64#20
-# lduwa [<m=%i1] 0x88,>m1=%l3
-lduwa [%i1] 0x88,%l3
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   m2 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m2=int64#21
-# lduwa [<m=%i1] 0x88,>m2=%l4
-lduwa [%i1] 0x88,%l4
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   m3 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m3=int64#22
-# lduwa [<m=%i1] 0x88,>m3=%l5
-lduwa [%i1] 0x88,%l5
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   x0 ^= m0
-# xor <x0=int64#3,<m0=int64#5,>x0=int64#3
-# xor <x0=%i2,<m0=%i4,>x0=%i2
-xor %i2,%i4,%i2
-
-#   m4 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m4=int64#23
-# lduwa [<m=%i1] 0x88,>m4=%l6
-lduwa [%i1] 0x88,%l6
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   x1 ^= m1
-# xor <x1=int64#4,<m1=int64#20,>x1=int64#5
-# xor <x1=%i3,<m1=%l3,>x1=%i4
-xor %i3,%l3,%i4
-
-#   m5 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m5=int64#4
-# lduwa [<m=%i1] 0x88,>m5=%i3
-lduwa [%i1] 0x88,%i3
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   x2 ^= m2
-# xor <x2=int64#6,<m2=int64#21,>x2=int64#6
-# xor <x2=%i5,<m2=%l4,>x2=%i5
-xor %i5,%l4,%i5
-
-#   m6 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m6=int64#20
-# lduwa [<m=%i1] 0x88,>m6=%l3
-lduwa [%i1] 0x88,%l3
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   x3 ^= m3
-# xor <x3=int64#7,<m3=int64#22,>x3=int64#7
-# xor <x3=%g1,<m3=%l5,>x3=%g1
-xor %g1,%l5,%g1
-
-#   m7 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m7=int64#21
-# lduwa [<m=%i1] 0x88,>m7=%l4
-lduwa [%i1] 0x88,%l4
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   x4 ^= m4
-# xor <x4=int64#8,<m4=int64#23,>x4=int64#8
-# xor <x4=%g4,<m4=%l6,>x4=%g4
-xor %g4,%l6,%g4
-
-#   m8 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m8=int64#22
-# lduwa [<m=%i1] 0x88,>m8=%l5
-lduwa [%i1] 0x88,%l5
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   x5 ^= m5
-# xor <x5=int64#9,<m5=int64#4,>x5=int64#9
-# xor <x5=%g5,<m5=%i3,>x5=%g5
-xor %g5,%i3,%g5
-
-#   m9 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m9=int64#4
-# lduwa [<m=%i1] 0x88,>m9=%i3
-lduwa [%i1] 0x88,%i3
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
+# qhasm:   m = m_stack
+# asm 1: ldx [%fp+2023-<m_stack=stack64#4],>m=int64#18
+# asm 2: ldx [%fp+2023-<m_stack=24],>m=%l1
+ldx [%fp+2023-24],%l1
+
+# qhasm:   m0 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m0=int64#19
+# asm 2: lduwa [<m=%l1] 0x88,>m0=%l2
+lduwa [%l1] 0x88,%l2
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   m1 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m1=int64#20
+# asm 2: lduwa [<m=%l1] 0x88,>m1=%l3
+lduwa [%l1] 0x88,%l3
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   m2 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m2=int64#21
+# asm 2: lduwa [<m=%l1] 0x88,>m2=%l4
+lduwa [%l1] 0x88,%l4
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   m3 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m3=int64#22
+# asm 2: lduwa [<m=%l1] 0x88,>m3=%l5
+lduwa [%l1] 0x88,%l5
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x0 ^= m0
+# asm 1: xor <x0=int64#2,<m0=int64#19,>x0=int64#2
+# asm 2: xor <x0=%i1,<m0=%l2,>x0=%i1
+xor %i1,%l2,%i1
+
+# qhasm:   m4 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m4=int64#19
+# asm 2: lduwa [<m=%l1] 0x88,>m4=%l2
+lduwa [%l1] 0x88,%l2
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x1 ^= m1
+# asm 1: xor <x1=int64#4,<m1=int64#20,>x1=int64#4
+# asm 2: xor <x1=%i3,<m1=%l3,>x1=%i3
+xor %i3,%l3,%i3
+
+# qhasm:   m5 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m5=int64#20
+# asm 2: lduwa [<m=%l1] 0x88,>m5=%l3
+lduwa [%l1] 0x88,%l3
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x2 ^= m2
+# asm 1: xor <x2=int64#5,<m2=int64#21,>x2=int64#5
+# asm 2: xor <x2=%i4,<m2=%l4,>x2=%i4
+xor %i4,%l4,%i4
+
+# qhasm:   m6 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m6=int64#21
+# asm 2: lduwa [<m=%l1] 0x88,>m6=%l4
+lduwa [%l1] 0x88,%l4
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x3 ^= m3
+# asm 1: xor <x3=int64#6,<m3=int64#22,>x3=int64#22
+# asm 2: xor <x3=%i5,<m3=%l5,>x3=%l5
+xor %i5,%l5,%l5
+
+# qhasm:   m7 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m7=int64#6
+# asm 2: lduwa [<m=%l1] 0x88,>m7=%i5
+lduwa [%l1] 0x88,%i5
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x4 ^= m4
+# asm 1: xor <x4=int64#3,<m4=int64#19,>x4=int64#3
+# asm 2: xor <x4=%i2,<m4=%l2,>x4=%i2
+xor %i2,%l2,%i2
+
+# qhasm:   m8 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m8=int64#19
+# asm 2: lduwa [<m=%l1] 0x88,>m8=%l2
+lduwa [%l1] 0x88,%l2
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x5 ^= m5
+# asm 1: xor <x5=int64#7,<m5=int64#20,>x5=int64#7
+# asm 2: xor <x5=%g1,<m5=%l3,>x5=%g1
+xor %g1,%l3,%g1
+
+# qhasm:   m9 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m9=int64#20
+# asm 2: lduwa [<m=%l1] 0x88,>m9=%l3
+lduwa [%l1] 0x88,%l3
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x6 ^= m6
+# asm 1: xor <x6=int64#8,<m6=int64#21,>x6=int64#8
+# asm 2: xor <x6=%g4,<m6=%l4,>x6=%g4
+xor %g4,%l4,%g4
+
+# qhasm:   m10 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m10=int64#21
+# asm 2: lduwa [<m=%l1] 0x88,>m10=%l4
+lduwa [%l1] 0x88,%l4
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x7 ^= m7
+# asm 1: xor <x7=int64#9,<m7=int64#6,>x7=int64#9
+# asm 2: xor <x7=%g5,<m7=%i5,>x7=%g5
+xor %g5,%i5,%g5
+
+# qhasm:   m11 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m11=int64#6
+# asm 2: lduwa [<m=%l1] 0x88,>m11=%i5
+lduwa [%l1] 0x88,%i5
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x8 ^= m8
+# asm 1: xor <x8=int64#14,<m8=int64#19,>x8=int64#14
+# asm 2: xor <x8=%o4,<m8=%l2,>x8=%o4
+xor %o4,%l2,%o4
+
+# qhasm:   m12 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m12=int64#19
+# asm 2: lduwa [<m=%l1] 0x88,>m12=%l2
+lduwa [%l1] 0x88,%l2
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x9 ^= m9
+# asm 1: xor <x9=int64#15,<m9=int64#20,>x9=int64#15
+# asm 2: xor <x9=%o5,<m9=%l3,>x9=%o5
+xor %o5,%l3,%o5
+
+# qhasm:   m13 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m13=int64#20
+# asm 2: lduwa [<m=%l1] 0x88,>m13=%l3
+lduwa [%l1] 0x88,%l3
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x10 ^= m10
+# asm 1: xor <x10=int64#11,<m10=int64#21,>x10=int64#11
+# asm 2: xor <x10=%o1,<m10=%l4,>x10=%o1
+xor %o1,%l4,%o1
 
-#   x6 ^= m6
-# xor <x6=int64#10,<m6=int64#20,>x6=int64#10
-# xor <x6=%o0,<m6=%l3,>x6=%o0
+# qhasm:   m14 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m14=int64#21
+# asm 2: lduwa [<m=%l1] 0x88,>m14=%l4
+lduwa [%l1] 0x88,%l4
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x11 ^= m11
+# asm 1: xor <x11=int64#13,<m11=int64#6,>x11=int64#13
+# asm 2: xor <x11=%o3,<m11=%i5,>x11=%o3
+xor %o3,%i5,%o3
+
+# qhasm:   m15 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m15=int64#23
+# asm 2: lduwa [<m=%l1] 0x88,>m15=%l6
+lduwa [%l1] 0x88,%l6
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#6
+# asm 2: add <m=%l1,4,>m=%i5
+add %l1,4,%i5
+
+# qhasm:   x12 ^= m12
+# asm 1: xor <x12=int64#17,<m12=int64#19,>x12=int64#17
+# asm 2: xor <x12=%l0,<m12=%l2,>x12=%l0
+xor %l0,%l2,%l0
+
+# qhasm:   x13 ^= m13
+# asm 1: xor <x13=int64#10,<m13=int64#20,>x13=int64#10
+# asm 2: xor <x13=%o0,<m13=%l3,>x13=%o0
 xor %o0,%l3,%o0
 
-#   m10 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m10=int64#20
-# lduwa [<m=%i1] 0x88,>m10=%l3
-lduwa [%i1] 0x88,%l3
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   x7 ^= m7
-# xor <x7=int64#11,<m7=int64#21,>x7=int64#11
-# xor <x7=%o1,<m7=%l4,>x7=%o1
-xor %o1,%l4,%o1
-
-#   m11 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m11=int64#21
-# lduwa [<m=%i1] 0x88,>m11=%l4
-lduwa [%i1] 0x88,%l4
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
+# qhasm:   x14 ^= m14
+# asm 1: xor <x14=int64#12,<m14=int64#21,>x14=int64#12
+# asm 2: xor <x14=%o2,<m14=%l4,>x14=%o2
+xor %o2,%l4,%o2
+
+# qhasm:   x15 ^= m15
+# asm 1: xor <x15=int64#16,<m15=int64#23,>x15=int64#16
+# asm 2: xor <x15=%o7,<m15=%l6,>x15=%o7
+xor %o7,%l6,%o7
+
+# qhasm:   out = out_stack
+# asm 1: ldx [%fp+2023-<out_stack=stack64#3],>out=int64#18
+# asm 2: ldx [%fp+2023-<out_stack=16],>out=%l1
+ldx [%fp+2023-16],%l1
+
+# qhasm:   *(swapendian uint32 *) out = x0
+# asm 1: stwa <x0=int64#2,[<out=int64#18] 0x88
+# asm 2: stwa <x0=%i1,[<out=%l1] 0x88
+stwa %i1,[%l1] 0x88
+
+# qhasm:   out += 4
+# asm 1: add <out=int64#18,4,>out=int64#2
+# asm 2: add <out=%l1,4,>out=%i1
+add %l1,4,%i1
+
+# qhasm:   *(swapendian uint32 *) out = x1
+# asm 1: stwa <x1=int64#4,[<out=int64#2] 0x88
+# asm 2: stwa <x1=%i3,[<out=%i1] 0x88
+stwa %i3,[%i1] 0x88
+
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
+add %i1,4,%i1
+
+# qhasm:   *(swapendian uint32 *) out = x2
+# asm 1: stwa <x2=int64#5,[<out=int64#2] 0x88
+# asm 2: stwa <x2=%i4,[<out=%i1] 0x88
+stwa %i4,[%i1] 0x88
 
-#   x8 ^= m8
-# xor <x8=int64#12,<m8=int64#22,>x8=int64#12
-# xor <x8=%o2,<m8=%l5,>x8=%o2
-xor %o2,%l5,%o2
-
-#   m12 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m12=int64#22
-# lduwa [<m=%i1] 0x88,>m12=%l5
-lduwa [%i1] 0x88,%l5
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   x9 ^= m9
-# xor <x9=int64#13,<m9=int64#4,>x9=int64#13
-# xor <x9=%o3,<m9=%i3,>x9=%o3
-xor %o3,%i3,%o3
-
-#   m13 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m13=int64#23
-# lduwa [<m=%i1] 0x88,>m13=%l6
-lduwa [%i1] 0x88,%l6
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
+# qhasm:   *(swapendian uint32 *) out = x3
+# asm 1: stwa <x3=int64#22,[<out=int64#2] 0x88
+# asm 2: stwa <x3=%l5,[<out=%i1] 0x88
+stwa %l5,[%i1] 0x88
 
-#   x10 ^= m10
-# xor <x10=int64#14,<m10=int64#20,>x10=int64#14
-# xor <x10=%o4,<m10=%l3,>x10=%o4
-xor %o4,%l3,%o4
-
-#   m14 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m14=int64#20
-# lduwa [<m=%i1] 0x88,>m14=%l3
-lduwa [%i1] 0x88,%l3
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   x11 ^= m11
-# xor <x11=int64#15,<m11=int64#21,>x11=int64#15
-# xor <x11=%o5,<m11=%l4,>x11=%o5
-xor %o5,%l4,%o5
-
-#   m15 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m15=int64#21
-# lduwa [<m=%i1] 0x88,>m15=%l4
-lduwa [%i1] 0x88,%l4
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#4
-# add <m=%i1,4,>m=%i3
-add %i1,4,%i3
-
-#   x12 ^= m12
-# xor <x12=int64#16,<m12=int64#22,>x12=int64#16
-# xor <x12=%o7,<m12=%l5,>x12=%o7
-xor %o7,%l5,%o7
-
-#   x13 ^= m13
-# xor <x13=int64#17,<m13=int64#23,>x13=int64#17
-# xor <x13=%l0,<m13=%l6,>x13=%l0
-xor %l0,%l6,%l0
-
-#   x14 ^= m14
-# xor <x14=int64#18,<m14=int64#20,>x14=int64#18
-# xor <x14=%l1,<m14=%l3,>x14=%l1
-xor %l1,%l3,%l1
-
-#   x15 ^= m15
-# xor <x15=int64#19,<m15=int64#21,>x15=int64#19
-# xor <x15=%l2,<m15=%l4,>x15=%l2
-xor %l2,%l4,%l2
-
-#   out = out_stack
-# ldx [%fp+2023-<out_stack=stack64#3],>out=int64#2
-# ldx [%fp+2023-<out_stack=80],>out=%i1
-ldx [%fp+2023-80],%i1
-
-#   *(swapendian uint32 *) out = x0
-# stwa <x0=int64#3,[<out=int64#2] 0x88
-# stwa <x0=%i2,[<out=%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x4
+# asm 1: stwa <x4=int64#3,[<out=int64#2] 0x88
+# asm 2: stwa <x4=%i2,[<out=%i1] 0x88
 stwa %i2,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
-add %i1,4,%i1
-
-#   *(swapendian uint32 *) out = x1
-# stwa <x1=int64#5,[<out=int64#2] 0x88
-# stwa <x1=%i4,[<out=%i1] 0x88
-stwa %i4,[%i1] 0x88
-
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
-add %i1,4,%i1
-
-#   *(swapendian uint32 *) out = x2
-# stwa <x2=int64#6,[<out=int64#2] 0x88
-# stwa <x2=%i5,[<out=%i1] 0x88
-stwa %i5,[%i1] 0x88
-
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x3
-# stwa <x3=int64#7,[<out=int64#2] 0x88
-# stwa <x3=%g1,[<out=%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x5
+# asm 1: stwa <x5=int64#7,[<out=int64#2] 0x88
+# asm 2: stwa <x5=%g1,[<out=%i1] 0x88
 stwa %g1,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x4
-# stwa <x4=int64#8,[<out=int64#2] 0x88
-# stwa <x4=%g4,[<out=%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x6
+# asm 1: stwa <x6=int64#8,[<out=int64#2] 0x88
+# asm 2: stwa <x6=%g4,[<out=%i1] 0x88
 stwa %g4,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x5
-# stwa <x5=int64#9,[<out=int64#2] 0x88
-# stwa <x5=%g5,[<out=%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x7
+# asm 1: stwa <x7=int64#9,[<out=int64#2] 0x88
+# asm 2: stwa <x7=%g5,[<out=%i1] 0x88
 stwa %g5,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x6
-# stwa <x6=int64#10,[<out=int64#2] 0x88
-# stwa <x6=%o0,[<out=%i1] 0x88
-stwa %o0,[%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x8
+# asm 1: stwa <x8=int64#14,[<out=int64#2] 0x88
+# asm 2: stwa <x8=%o4,[<out=%i1] 0x88
+stwa %o4,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x7
-# stwa <x7=int64#11,[<out=int64#2] 0x88
-# stwa <x7=%o1,[<out=%i1] 0x88
-stwa %o1,[%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x9
+# asm 1: stwa <x9=int64#15,[<out=int64#2] 0x88
+# asm 2: stwa <x9=%o5,[<out=%i1] 0x88
+stwa %o5,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x8
-# stwa <x8=int64#12,[<out=int64#2] 0x88
-# stwa <x8=%o2,[<out=%i1] 0x88
-stwa %o2,[%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x10
+# asm 1: stwa <x10=int64#11,[<out=int64#2] 0x88
+# asm 2: stwa <x10=%o1,[<out=%i1] 0x88
+stwa %o1,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x9
-# stwa <x9=int64#13,[<out=int64#2] 0x88
-# stwa <x9=%o3,[<out=%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x11
+# asm 1: stwa <x11=int64#13,[<out=int64#2] 0x88
+# asm 2: stwa <x11=%o3,[<out=%i1] 0x88
 stwa %o3,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x10
-# stwa <x10=int64#14,[<out=int64#2] 0x88
-# stwa <x10=%o4,[<out=%i1] 0x88
-stwa %o4,[%i1] 0x88
-
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
-add %i1,4,%i1
-
-#   *(swapendian uint32 *) out = x11
-# stwa <x11=int64#15,[<out=int64#2] 0x88
-# stwa <x11=%o5,[<out=%i1] 0x88
-stwa %o5,[%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x12
+# asm 1: stwa <x12=int64#17,[<out=int64#2] 0x88
+# asm 2: stwa <x12=%l0,[<out=%i1] 0x88
+stwa %l0,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x12
-# stwa <x12=int64#16,[<out=int64#2] 0x88
-# stwa <x12=%o7,[<out=%i1] 0x88
-stwa %o7,[%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x13
+# asm 1: stwa <x13=int64#10,[<out=int64#2] 0x88
+# asm 2: stwa <x13=%o0,[<out=%i1] 0x88
+stwa %o0,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x13
-# stwa <x13=int64#17,[<out=int64#2] 0x88
-# stwa <x13=%l0,[<out=%i1] 0x88
-stwa %l0,[%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x14
+# asm 1: stwa <x14=int64#12,[<out=int64#2] 0x88
+# asm 2: stwa <x14=%o2,[<out=%i1] 0x88
+stwa %o2,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x14
-# stwa <x14=int64#18,[<out=int64#2] 0x88
-# stwa <x14=%l1,[<out=%i1] 0x88
-stwa %l1,[%i1] 0x88
-
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
-add %i1,4,%i1
+# qhasm:   *(swapendian uint32 *) out = x15
+# asm 1: stwa <x15=int64#16,[<out=int64#2] 0x88
+# asm 2: stwa <x15=%o7,[<out=%i1] 0x88
+stwa %o7,[%i1] 0x88
 
-#   *(swapendian uint32 *) out = x15
-# stwa <x15=int64#19,[<out=int64#2] 0x88
-# stwa <x15=%l2,[<out=%i1] 0x88
-stwa %l2,[%i1] 0x88
-
-#   out += 4
-# add <out=int64#2,4,>out=int64#5
-# add <out=%i1,4,>out=%i4
-add %i1,4,%i4
-
-#   bytes = bytes_stack
-# ldx [%fp+2023-<bytes_stack=stack64#2],>bytes=int64#2
-# ldx [%fp+2023-<bytes_stack=72],>bytes=%i1
-ldx [%fp+2023-72],%i1
-
-#   flags bytes -= 64
-# subcc <bytes=int64#2,64,>bytes=int64#6
-# subcc <bytes=%i1,64,>bytes=%i5
-subcc %i1,64,%i5
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
+add %i1,4,%i1
+
+# qhasm:   bytes = bytes_stack
+# asm 1: ldx [%fp+2023-<bytes_stack=stack64#2],>bytes=int64#3
+# asm 2: ldx [%fp+2023-<bytes_stack=8],>bytes=%i2
+ldx [%fp+2023-8],%i2
+
+# qhasm:                         unsigned>? bytes -= 64
+# asm 1: subcc <bytes=int64#3,64,>bytes=int64#5
+# asm 2: subcc <bytes=%i2,64,>bytes=%i4
+subcc %i2,64,%i4
 
-#   goto bytesatleast1 if unsigned>
+# qhasm:   goto bytesatleast1 if unsigned>
 bgu,pt %xcc,._bytesatleast1
 nop
 
-#   goto done if unsigned>=
+# qhasm:   goto done if !unsigned<
 bgeu,pt %xcc,._done
 nop
 
-#     m = ctarget
-# ldx [%fp+2023-<ctarget=stack64#1],>m=int64#3
-# ldx [%fp+2023-<ctarget=64],>m=%i2
-ldx [%fp+2023-64],%i2
-
-#     bytes += 64
-# add <bytes=int64#6,64,>bytes=int64#6
-# add <bytes=%i5,64,>bytes=%i5
-add %i5,64,%i5
-
-#     out -= 64
-# sub <out=int64#5,64,>out=int64#4
-# sub <out=%i4,64,>out=%i3
-sub %i4,64,%i3
-
-#     i = 0
-# add %g0,0,>i=int64#1
-# add %g0,0,>i=%i0
-add %g0,0,%i0
+# qhasm:     m = ctarget
+# asm 1: ldx [%fp+2023-<ctarget=stack64#1],>m=int64#6
+# asm 2: ldx [%fp+2023-<ctarget=0],>m=%i5
+ldx [%fp+2023-0],%i5
+
+# qhasm:     bytes += 64
+# asm 1: add <bytes=int64#5,64,>bytes=int64#5
+# asm 2: add <bytes=%i4,64,>bytes=%i4
+add %i4,64,%i4
+
+# qhasm:     out -= 64
+# asm 1: sub <out=int64#2,64,>out=int64#2
+# asm 2: sub <out=%i1,64,>out=%i1
+sub %i1,64,%i1
+
+# qhasm:     i = 0
+# asm 1: add %g0,0,>i=int64#4
+# asm 2: add %g0,0,>i=%i3
+add %g0,0,%i3
 
-#     ccopyloop#
+# qhasm:     ccopyloop:
 ._ccopyloop:
 
-#       a = *(int8 *) (out + i)
-# ldsb [<out=int64#4+<i=int64#1],>a=int64#2
-# ldsb [<out=%i3+<i=%i0],>a=%i1
-ldsb [%i3+%i0],%i1
-
-#       *(int8 *) (m + i) = a
-# stb <a=int64#2,[<m=int64#3+<i=int64#1]
-# stb <a=%i1,[<m=%i2+<i=%i0]
-stb %i1,[%i2+%i0]
-
-#       i += 1
-# add <i=int64#1,1,>i=int64#1
-# add <i=%i0,1,>i=%i0
-add %i0,1,%i0
-
-#       flags i - bytes
-# subcc <i=int64#1,<bytes=int64#6,%g0
-# subcc <i=%i0,<bytes=%i5,%g0
-subcc %i0,%i5,%g0
+# qhasm:       a = *(int8 *) (out + i)
+# asm 1: ldsb [<out=int64#2+<i=int64#4],>a=int64#3
+# asm 2: ldsb [<out=%i1+<i=%i3],>a=%i2
+ldsb [%i1+%i3],%i2
+
+# qhasm:       *(int8 *) (m + i) = a
+# asm 1: stb <a=int64#3,[<m=int64#6+<i=int64#4]
+# asm 2: stb <a=%i2,[<m=%i5+<i=%i3]
+stb %i2,[%i5+%i3]
+
+# qhasm:       i += 1
+# asm 1: add <i=int64#4,1,>i=int64#4
+# asm 2: add <i=%i3,1,>i=%i3
+add %i3,1,%i3
+
+# qhasm:                       unsigned<? i - bytes
+# asm 1: subcc <i=int64#4,<bytes=int64#5,%g0
+# asm 2: subcc <i=%i3,<bytes=%i4,%g0
+subcc %i3,%i4,%g0
 
-#     goto ccopyloop if unsigned<
+# qhasm:     goto ccopyloop if unsigned<
 blu,pt %xcc,._ccopyloop
 nop
 
-# done#
+# qhasm: done:
 ._done:
 
-# leave
+# qhasm: leave
 ret
 restore
New: streamciphers/timings/estreambench/submissions/salsa20-12/x86-1
New: streamciphers/timings/estreambench/submissions/salsa20-12/x86-2
New: streamciphers/timings/estreambench/submissions/salsa20-12/x86-mmx
New: streamciphers/timings/estreambench/submissions/salsa20-12/x86-xmm
New: streamciphers/timings/estreambench/submissions/salsa20-8/amd64-1
New: streamciphers/timings/estreambench/submissions/salsa20-8/amd64-2
New: streamciphers/timings/estreambench/submissions/salsa20-8/amd64-3
New: streamciphers/timings/estreambench/submissions/salsa20-8/amd64-xmm
diff -ru .old-crypto/streamciphers/timings/estreambench/submissions/salsa20-8/merged/salsa20.c cr.yp.to/streamciphers/timings/estreambench/submissions/salsa20-8/merged/salsa20.c
--- .old-crypto/streamciphers/timings/estreambench/submissions/salsa20-8/merged/salsa20.c	2006-02-23 16:15:20.000000000 -0500
+++ cr.yp.to/streamciphers/timings/estreambench/submissions/salsa20-8/merged/salsa20.c	2006-12-08 11:40:58.000000000 -0500
@@ -1,5 +1,5 @@
 /*
-salsa20,8-merged.c version 20060209
+salsa20-merged.c version 20051118
 D. J. Bernstein
 Public domain.
 */
New: streamciphers/timings/estreambench/submissions/salsa20-8/ppc-altivec
diff -ru .old-crypto/streamciphers/timings/estreambench/submissions/salsa20-8/ref/salsa20.c cr.yp.to/streamciphers/timings/estreambench/submissions/salsa20-8/ref/salsa20.c
--- .old-crypto/streamciphers/timings/estreambench/submissions/salsa20-8/ref/salsa20.c	2006-02-23 16:15:20.000000000 -0500
+++ cr.yp.to/streamciphers/timings/estreambench/submissions/salsa20-8/ref/salsa20.c	2006-12-08 11:40:58.000000000 -0500
@@ -1,5 +1,5 @@
 /*
-salsa20,8-ref.c version 20060209
+salsa20-ref.c version 20051118
 D. J. Bernstein
 Public domain.
 */
diff -ru .old-crypto/streamciphers/timings/estreambench/submissions/salsa20-8/regs/salsa20.c cr.yp.to/streamciphers/timings/estreambench/submissions/salsa20-8/regs/salsa20.c
--- .old-crypto/streamciphers/timings/estreambench/submissions/salsa20-8/regs/salsa20.c	2006-02-23 16:15:20.000000000 -0500
+++ cr.yp.to/streamciphers/timings/estreambench/submissions/salsa20-8/regs/salsa20.c	2006-12-08 11:40:58.000000000 -0500
@@ -1,5 +1,5 @@
 /*
-salsa20,8-regs.c version 20060209
+salsa20-regs.c version 20051118
 D. J. Bernstein
 Public domain.
 */
New: streamciphers/timings/estreambench/submissions/salsa20-8/sparc/salsa20.q
diff -ru .old-crypto/streamciphers/timings/estreambench/submissions/salsa20-8/sparc/salsa20.s cr.yp.to/streamciphers/timings/estreambench/submissions/salsa20-8/sparc/salsa20.s
--- .old-crypto/streamciphers/timings/estreambench/submissions/salsa20-8/sparc/salsa20.s	2006-02-23 16:15:20.000000000 -0500
+++ cr.yp.to/streamciphers/timings/estreambench/submissions/salsa20-8/sparc/salsa20.s	2006-12-08 11:40:58.000000000 -0500
@@ -1,2412 +1,2409 @@
-# salsa20,8_sparc.s version 20060209
-# D. J. Bernstein
-# Public domain.
 
-# int64 x
+# qhasm: int64 x
 
-# int64 arg2
+# qhasm: int64 arg2
 
-# int64 arg3
+# qhasm: int64 arg3
 
-# int64 arg4
+# qhasm: int64 arg4
 
-# input x
+# qhasm: input x
 
-# input arg2
+# qhasm: input arg2
 
-# input arg3
+# qhasm: input arg3
 
-# input arg4
+# qhasm: input arg4
 
-# int64 i
+# qhasm: int64 i
 
-# int64 a
+# qhasm: int64 a
 
-# int64 m
+# qhasm: int64 m
 
-# int64 out
+# qhasm: int64 out
 
-# int64 bytes
+# qhasm: int64 bytes
 
-# stack64 ctarget
+# qhasm: stack64 ctarget
 
-# stack512 tmp
+# qhasm: stack512 tmp
 
-# stack64 bytes_stack
+# qhasm: stack64 bytes_stack
 
-# stack64 out_stack
+# qhasm: stack64 out_stack
 
-# stack64 m_stack
+# qhasm: stack64 m_stack
 
-# stack64 x_stack
+# qhasm: stack64 x_stack
 
-# int64 z0
+# qhasm: int64 z0
 
-# int64 z1
+# qhasm: int64 z1
 
-# int64 z2
+# qhasm: int64 z2
 
-# int64 z3
+# qhasm: int64 z3
 
-# int64 z4
+# qhasm: int64 z4
 
-# int64 z5
+# qhasm: int64 z5
 
-# int64 z6
+# qhasm: int64 z6
 
-# int64 z7
+# qhasm: int64 z7
 
-# int64 z8
+# qhasm: int64 z8
 
-# int64 z9
+# qhasm: int64 z9
 
-# int64 z10
+# qhasm: int64 z10
 
-# int64 z11
+# qhasm: int64 z11
 
-# int64 z12
+# qhasm: int64 z12
 
-# int64 z13
+# qhasm: int64 z13
 
-# int64 z14
+# qhasm: int64 z14
 
-# int64 z15
+# qhasm: int64 z15
 
-# int64 u0
+# qhasm: int64 u0
 
-# int64 u1
+# qhasm: int64 u1
 
-# int64 u2
+# qhasm: int64 u2
 
-# int64 u3
+# qhasm: int64 u3
 
-# int64 u4
+# qhasm: int64 u4
 
-# int64 u5
+# qhasm: int64 u5
 
-# int64 u6
+# qhasm: int64 u6
 
-# int64 u7
+# qhasm: int64 u7
 
-# int64 u8
+# qhasm: int64 u8
 
-# int64 u9
+# qhasm: int64 u9
 
-# int64 u10
+# qhasm: int64 u10
 
-# int64 u11
+# qhasm: int64 u11
 
-# int64 u12
+# qhasm: int64 u12
 
-# int64 u13
+# qhasm: int64 u13
 
-# int64 u14
+# qhasm: int64 u14
 
-# int64 u15
+# qhasm: int64 u15
 
-# int64 y0
+# qhasm: int64 y0
 
-# int64 y1
+# qhasm: int64 y1
 
-# int64 y2
+# qhasm: int64 y2
 
-# int64 y3
+# qhasm: int64 y3
 
-# int64 y4
+# qhasm: int64 y4
 
-# int64 y5
+# qhasm: int64 y5
 
-# int64 y6
+# qhasm: int64 y6
 
-# int64 y7
+# qhasm: int64 y7
 
-# int64 y8
+# qhasm: int64 y8
 
-# int64 y9
+# qhasm: int64 y9
 
-# int64 y10
+# qhasm: int64 y10
 
-# int64 y11
+# qhasm: int64 y11
 
-# int64 y12
+# qhasm: int64 y12
 
-# int64 y13
+# qhasm: int64 y13
 
-# int64 y14
+# qhasm: int64 y14
 
-# int64 y15
+# qhasm: int64 y15
 
-# int64 x0
+# qhasm: int64 x0
 
-# int64 x1
+# qhasm: int64 x1
 
-# int64 x2
+# qhasm: int64 x2
 
-# int64 x3
+# qhasm: int64 x3
 
-# int64 x4
+# qhasm: int64 x4
 
-# int64 x5
+# qhasm: int64 x5
 
-# int64 x6
+# qhasm: int64 x6
 
-# int64 x7
+# qhasm: int64 x7
 
-# int64 x8
+# qhasm: int64 x8
 
-# int64 x9
+# qhasm: int64 x9
 
-# int64 x10
+# qhasm: int64 x10
 
-# int64 x11
+# qhasm: int64 x11
 
-# int64 x12
+# qhasm: int64 x12
 
-# int64 x13
+# qhasm: int64 x13
 
-# int64 x14
+# qhasm: int64 x14
 
-# int64 x15
+# qhasm: int64 x15
 
-# int64 q0
+# qhasm: int64 q0
 
-# int64 q1
+# qhasm: int64 q1
 
-# int64 q2
+# qhasm: int64 q2
 
-# int64 q3
+# qhasm: int64 q3
 
-# int64 q4
+# qhasm: int64 q4
 
-# int64 q5
+# qhasm: int64 q5
 
-# int64 q6
+# qhasm: int64 q6
 
-# int64 q7
+# qhasm: int64 q7
 
-# int64 q8
+# qhasm: int64 q8
 
-# int64 q9
+# qhasm: int64 q9
 
-# int64 q10
+# qhasm: int64 q10
 
-# int64 q11
+# qhasm: int64 q11
 
-# int64 q12
+# qhasm: int64 q12
 
-# int64 q13
+# qhasm: int64 q13
 
-# int64 q14
+# qhasm: int64 q14
 
-# int64 q15
+# qhasm: int64 q15
 
-# int64 m0
+# qhasm: int64 m0
 
-# int64 m1
+# qhasm: int64 m1
 
-# int64 m2
+# qhasm: int64 m2
 
-# int64 m3
+# qhasm: int64 m3
 
-# int64 m4
+# qhasm: int64 m4
 
-# int64 m5
+# qhasm: int64 m5
 
-# int64 m6
+# qhasm: int64 m6
 
-# int64 m7
+# qhasm: int64 m7
 
-# int64 m8
+# qhasm: int64 m8
 
-# int64 m9
+# qhasm: int64 m9
 
-# int64 m10
+# qhasm: int64 m10
 
-# int64 m11
+# qhasm: int64 m11
 
-# int64 m12
+# qhasm: int64 m12
 
-# int64 m13
+# qhasm: int64 m13
 
-# int64 m14
+# qhasm: int64 m14
 
-# int64 m15
+# qhasm: int64 m15
 
-# enter ECRYPT_init
+# qhasm: enter ECRYPT_init
 .section ".text"
 .align 32
 .global ECRYPT_init
 ECRYPT_init:
 save %sp,-288,%sp
 
-# leave
+# qhasm: leave
 ret
 restore
 
-# enter ECRYPT_ivsetup
+# qhasm: enter ECRYPT_ivsetup
 .section ".text"
 .align 32
 .global ECRYPT_ivsetup
 ECRYPT_ivsetup:
 save %sp,-288,%sp
 
-#   x6 = *(uint32 *) (arg2 + 0)
-# lduw [<arg2=int64#2+0],>x6=int64#3
-# lduw [<arg2=%i1+0],>x6=%i2
-lduw [%i1+0],%i2
-
-#   x8 = 0
-# add %g0,0,>x8=int64#4
-# add %g0,0,>x8=%i3
-add %g0,0,%i3
-
-#   x7 = *(uint32 *) (arg2 + 4)
-# lduw [<arg2=int64#2+4],>x7=int64#2
-# lduw [<arg2=%i1+4],>x7=%i1
+# qhasm:   x6 = *(uint32 *) (arg2 + 0)
+# asm 1: lduw [<arg2=int64#2+0],>x6=int64#5
+# asm 2: lduw [<arg2=%i1+0],>x6=%i4
+lduw [%i1+0],%i4
+
+# qhasm:   x8 = 0
+# asm 1: add %g0,0,>x8=int64#6
+# asm 2: add %g0,0,>x8=%i5
+add %g0,0,%i5
+
+# qhasm:   x7 = *(uint32 *) (arg2 + 4)
+# asm 1: lduw [<arg2=int64#2+4],>x7=int64#2
+# asm 2: lduw [<arg2=%i1+4],>x7=%i1
 lduw [%i1+4],%i1
 
-#   x9 = 0
-# add %g0,0,>x9=int64#5
-# add %g0,0,>x9=%i4
-add %g0,0,%i4
-
-#   x += 24
-# add <x=int64#1,24,>x=int64#1
-# add <x=%i0,24,>x=%i0
+# qhasm:   x9 = 0
+# asm 1: add %g0,0,>x9=int64#7
+# asm 2: add %g0,0,>x9=%g1
+add %g0,0,%g1
+
+# qhasm:   x += 24
+# asm 1: add <x=int64#1,24,>x=int64#1
+# asm 2: add <x=%i0,24,>x=%i0
 add %i0,24,%i0
 
-#   *(swapendian int32 *) x = x6
-# stwa <x6=int64#3,[<x=int64#1] 0x88
-# stwa <x6=%i2,[<x=%i0] 0x88
-stwa %i2,[%i0] 0x88
+# qhasm:   *(swapendian int32 *) x = x6
+# asm 1: stwa <x6=int64#5,[<x=int64#1] 0x88
+# asm 2: stwa <x6=%i4,[<x=%i0] 0x88
+stwa %i4,[%i0] 0x88
 
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(swapendian int32 *) x = x7
-# stwa <x7=int64#2,[<x=int64#1] 0x88
-# stwa <x7=%i1,[<x=%i0] 0x88
+# qhasm:   *(swapendian int32 *) x = x7
+# asm 1: stwa <x7=int64#2,[<x=int64#1] 0x88
+# asm 2: stwa <x7=%i1,[<x=%i0] 0x88
 stwa %i1,[%i0] 0x88
 
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(int32 *) (x + 0) = x8
-# stw <x8=int64#4,[<x=int64#1+0]
-# stw <x8=%i3,[<x=%i0+0]
-stw %i3,[%i0+0]
-
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   *(int32 *) (x + 0) = x8
+# asm 1: stw <x8=int64#6,[<x=int64#1+0]
+# asm 2: stw <x8=%i5,[<x=%i0+0]
+stw %i5,[%i0+0]
+
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(int32 *) (x + 0) = x9
-# stw <x9=int64#5,[<x=int64#1+0]
-# stw <x9=%i4,[<x=%i0+0]
-stw %i4,[%i0+0]
+# qhasm:   *(int32 *) (x + 0) = x9
+# asm 1: stw <x9=int64#7,[<x=int64#1+0]
+# asm 2: stw <x9=%g1,[<x=%i0+0]
+stw %g1,[%i0+0]
 
-# leave
+# qhasm: leave
 ret
 restore
 
-# enter ECRYPT_keysetup
+# qhasm: enter ECRYPT_keysetup
 .section ".text"
 .align 32
 .global ECRYPT_keysetup
 ECRYPT_keysetup:
 save %sp,-288,%sp
 
-# flags arg3 - 128
-# subcc <arg3=int64#3,128,%g0
-# subcc <arg3=%i2,128,%g0
+# qhasm:                  unsigned>? arg3 - 128
+# asm 1: subcc <arg3=int64#3,128,%g0
+# asm 2: subcc <arg3=%i2,128,%g0
 subcc %i2,128,%g0
 
-# goto kbits256 if unsigned>
+# qhasm: goto kbits256 if unsigned>
 bgu,pt %xcc,._kbits256
 nop
 
-# kbits128#
+# qhasm: kbits128:
 ._kbits128:
 
-#   x1 = *(uint32 *) (arg2 + 0)
-# lduw [<arg2=int64#2+0],>x1=int64#4
-# lduw [<arg2=%i1+0],>x1=%i3
-lduw [%i1+0],%i3
-
-#   x0 = 1634760805 & 0xfffffc00
-# sethi %lm(1634760805),>x0=int64#3
-# sethi %lm(1634760805),>x0=%i2
-sethi %lm(1634760805),%i2
-
-#   x2 = *(uint32 *) (arg2 + 4)
-# lduw [<arg2=int64#2+4],>x2=int64#5
-# lduw [<arg2=%i1+4],>x2=%i4
+# qhasm:   x1 = *(uint32 *) (arg2 + 0)
+# asm 1: lduw [<arg2=int64#2+0],>x1=int64#3
+# asm 2: lduw [<arg2=%i1+0],>x1=%i2
+lduw [%i1+0],%i2
+
+# qhasm:   x0 = 1634760805 & 0xfffffc00
+# asm 1: sethi %lm(1634760805),>x0=int64#4
+# asm 2: sethi %lm(1634760805),>x0=%i3
+sethi %lm(1634760805),%i3
+
+# qhasm:   x2 = *(uint32 *) (arg2 + 4)
+# asm 1: lduw [<arg2=int64#2+4],>x2=int64#5
+# asm 2: lduw [<arg2=%i1+4],>x2=%i4
 lduw [%i1+4],%i4
 
-#   x5 = 824206446 & 0xfffffc00
-# sethi %lm(824206446),>x5=int64#8
-# sethi %lm(824206446),>x5=%g4
-sethi %lm(824206446),%g4
-
-#   x3 = *(uint32 *) (arg2 + 8)
-# lduw [<arg2=int64#2+8],>x3=int64#6
-# lduw [<arg2=%i1+8],>x3=%i5
-lduw [%i1+8],%i5
-
-#   x10 = 2036477238 & 0xfffffc00
-# sethi %lm(2036477238),>x10=int64#9
-# sethi %lm(2036477238),>x10=%g5
-sethi %lm(2036477238),%g5
-
-#   x4 = *(uint32 *) (arg2 + 12)
-# lduw [<arg2=int64#2+12],>x4=int64#7
-# lduw [<arg2=%i1+12],>x4=%g1
-lduw [%i1+12],%g1
-
-#   x15 = 1797285236 & 0xfffffc00
-# sethi %lm(1797285236),>x15=int64#13
-# sethi %lm(1797285236),>x15=%o3
-sethi %lm(1797285236),%o3
-
-#   x11 = *(uint32 *) (arg2 + 0)
-# lduw [<arg2=int64#2+0],>x11=int64#10
-# lduw [<arg2=%i1+0],>x11=%o0
-lduw [%i1+0],%o0
-
-#   x0 |= 1634760805 & 0x3ff
-# or <x0=int64#3,%lo(1634760805),>x0=int64#3
-# or <x0=%i2,%lo(1634760805),>x0=%i2
-or %i2,%lo(1634760805),%i2
-
-#   x12 = *(uint32 *) (arg2 + 4)
-# lduw [<arg2=int64#2+4],>x12=int64#11
-# lduw [<arg2=%i1+4],>x12=%o1
-lduw [%i1+4],%o1
-
-#   x5 |= 824206446 & 0x3ff
-# or <x5=int64#8,%lo(824206446),>x5=int64#8
-# or <x5=%g4,%lo(824206446),>x5=%g4
-or %g4,%lo(824206446),%g4
-
-#   x13 = *(uint32 *) (arg2 + 8)
-# lduw [<arg2=int64#2+8],>x13=int64#12
-# lduw [<arg2=%i1+8],>x13=%o2
-lduw [%i1+8],%o2
-
-#   x10 |= 2036477238 & 0x3ff
-# or <x10=int64#9,%lo(2036477238),>x10=int64#9
-# or <x10=%g5,%lo(2036477238),>x10=%g5
-or %g5,%lo(2036477238),%g5
-
-#   x14 = *(uint32 *) (arg2 + 12)
-# lduw [<arg2=int64#2+12],>x14=int64#2
-# lduw [<arg2=%i1+12],>x14=%i1
+# qhasm:   x5 = 824206446 & 0xfffffc00
+# asm 1: sethi %lm(824206446),>x5=int64#6
+# asm 2: sethi %lm(824206446),>x5=%i5
+sethi %lm(824206446),%i5
+
+# qhasm:   x3 = *(uint32 *) (arg2 + 8)
+# asm 1: lduw [<arg2=int64#2+8],>x3=int64#7
+# asm 2: lduw [<arg2=%i1+8],>x3=%g1
+lduw [%i1+8],%g1
+
+# qhasm:   x10 = 2036477238 & 0xfffffc00
+# asm 1: sethi %lm(2036477238),>x10=int64#8
+# asm 2: sethi %lm(2036477238),>x10=%g4
+sethi %lm(2036477238),%g4
+
+# qhasm:   x4 = *(uint32 *) (arg2 + 12)
+# asm 1: lduw [<arg2=int64#2+12],>x4=int64#9
+# asm 2: lduw [<arg2=%i1+12],>x4=%g5
+lduw [%i1+12],%g5
+
+# qhasm:   x15 = 1797285236 & 0xfffffc00
+# asm 1: sethi %lm(1797285236),>x15=int64#10
+# asm 2: sethi %lm(1797285236),>x15=%o0
+sethi %lm(1797285236),%o0
+
+# qhasm:   x11 = *(uint32 *) (arg2 + 0)
+# asm 1: lduw [<arg2=int64#2+0],>x11=int64#11
+# asm 2: lduw [<arg2=%i1+0],>x11=%o1
+lduw [%i1+0],%o1
+
+# qhasm:   x0 |= 1634760805 & 0x3ff
+# asm 1: or <x0=int64#4,%lo(1634760805),>x0=int64#4
+# asm 2: or <x0=%i3,%lo(1634760805),>x0=%i3
+or %i3,%lo(1634760805),%i3
+
+# qhasm:   x12 = *(uint32 *) (arg2 + 4)
+# asm 1: lduw [<arg2=int64#2+4],>x12=int64#12
+# asm 2: lduw [<arg2=%i1+4],>x12=%o2
+lduw [%i1+4],%o2
+
+# qhasm:   x5 |= 824206446 & 0x3ff
+# asm 1: or <x5=int64#6,%lo(824206446),>x5=int64#6
+# asm 2: or <x5=%i5,%lo(824206446),>x5=%i5
+or %i5,%lo(824206446),%i5
+
+# qhasm:   x13 = *(uint32 *) (arg2 + 8)
+# asm 1: lduw [<arg2=int64#2+8],>x13=int64#13
+# asm 2: lduw [<arg2=%i1+8],>x13=%o3
+lduw [%i1+8],%o3
+
+# qhasm:   x10 |= 2036477238 & 0x3ff
+# asm 1: or <x10=int64#8,%lo(2036477238),>x10=int64#8
+# asm 2: or <x10=%g4,%lo(2036477238),>x10=%g4
+or %g4,%lo(2036477238),%g4
+
+# qhasm:   x14 = *(uint32 *) (arg2 + 12)
+# asm 1: lduw [<arg2=int64#2+12],>x14=int64#2
+# asm 2: lduw [<arg2=%i1+12],>x14=%i1
 lduw [%i1+12],%i1
 
-#   x15 |= 1797285236 & 0x3ff
-# or <x15=int64#13,%lo(1797285236),>x15=int64#13
-# or <x15=%o3,%lo(1797285236),>x15=%o3
-or %o3,%lo(1797285236),%o3
+# qhasm:   x15 |= 1797285236 & 0x3ff
+# asm 1: or <x15=int64#10,%lo(1797285236),>x15=int64#10
+# asm 2: or <x15=%o0,%lo(1797285236),>x15=%o0
+or %o0,%lo(1797285236),%o0
 
-# goto storekey
+# qhasm: goto storekey
 b ._storekey
 nop
 
-# kbits256#
+# qhasm: kbits256:
 ._kbits256:
 
-#   x1 = *(uint32 *) (arg2 + 0)
-# lduw [<arg2=int64#2+0],>x1=int64#4
-# lduw [<arg2=%i1+0],>x1=%i3
-lduw [%i1+0],%i3
-
-#   x0 = 1634760805 & 0xfffffc00
-# sethi %lm(1634760805),>x0=int64#3
-# sethi %lm(1634760805),>x0=%i2
-sethi %lm(1634760805),%i2
-
-#   x2 = *(uint32 *) (arg2 + 4)
-# lduw [<arg2=int64#2+4],>x2=int64#5
-# lduw [<arg2=%i1+4],>x2=%i4
+# qhasm:   x1 = *(uint32 *) (arg2 + 0)
+# asm 1: lduw [<arg2=int64#2+0],>x1=int64#3
+# asm 2: lduw [<arg2=%i1+0],>x1=%i2
+lduw [%i1+0],%i2
+
+# qhasm:   x0 = 1634760805 & 0xfffffc00
+# asm 1: sethi %lm(1634760805),>x0=int64#4
+# asm 2: sethi %lm(1634760805),>x0=%i3
+sethi %lm(1634760805),%i3
+
+# qhasm:   x2 = *(uint32 *) (arg2 + 4)
+# asm 1: lduw [<arg2=int64#2+4],>x2=int64#5
+# asm 2: lduw [<arg2=%i1+4],>x2=%i4
 lduw [%i1+4],%i4
 
-#   x5 = 857760878 & 0xfffffc00
-# sethi %lm(857760878),>x5=int64#8
-# sethi %lm(857760878),>x5=%g4
-sethi %lm(857760878),%g4
-
-#   x3 = *(uint32 *) (arg2 + 8)
-# lduw [<arg2=int64#2+8],>x3=int64#6
-# lduw [<arg2=%i1+8],>x3=%i5
-lduw [%i1+8],%i5
-
-#   x10 = 2036477234 & 0xfffffc00
-# sethi %lm(2036477234),>x10=int64#9
-# sethi %lm(2036477234),>x10=%g5
-sethi %lm(2036477234),%g5
-
-#   x4 = *(uint32 *) (arg2 + 12)
-# lduw [<arg2=int64#2+12],>x4=int64#7
-# lduw [<arg2=%i1+12],>x4=%g1
-lduw [%i1+12],%g1
-
-#   x15 = 1797285236 & 0xfffffc00
-# sethi %lm(1797285236),>x15=int64#13
-# sethi %lm(1797285236),>x15=%o3
-sethi %lm(1797285236),%o3
-
-#   x11 = *(uint32 *) (arg2 + 16)
-# lduw [<arg2=int64#2+16],>x11=int64#10
-# lduw [<arg2=%i1+16],>x11=%o0
-lduw [%i1+16],%o0
-
-#   x0 |= 1634760805 & 0x3ff
-# or <x0=int64#3,%lo(1634760805),>x0=int64#3
-# or <x0=%i2,%lo(1634760805),>x0=%i2
-or %i2,%lo(1634760805),%i2
-
-#   x12 = *(uint32 *) (arg2 + 20)
-# lduw [<arg2=int64#2+20],>x12=int64#11
-# lduw [<arg2=%i1+20],>x12=%o1
-lduw [%i1+20],%o1
-
-#   x5 |= 857760878 & 0x3ff
-# or <x5=int64#8,%lo(857760878),>x5=int64#8
-# or <x5=%g4,%lo(857760878),>x5=%g4
-or %g4,%lo(857760878),%g4
-
-#   x13 = *(uint32 *) (arg2 + 24)
-# lduw [<arg2=int64#2+24],>x13=int64#12
-# lduw [<arg2=%i1+24],>x13=%o2
-lduw [%i1+24],%o2
-
-#   x10 |= 2036477234 & 0x3ff
-# or <x10=int64#9,%lo(2036477234),>x10=int64#9
-# or <x10=%g5,%lo(2036477234),>x10=%g5
-or %g5,%lo(2036477234),%g5
-
-#   x14 = *(uint32 *) (arg2 + 28)
-# lduw [<arg2=int64#2+28],>x14=int64#2
-# lduw [<arg2=%i1+28],>x14=%i1
+# qhasm:   x5 = 857760878 & 0xfffffc00
+# asm 1: sethi %lm(857760878),>x5=int64#6
+# asm 2: sethi %lm(857760878),>x5=%i5
+sethi %lm(857760878),%i5
+
+# qhasm:   x3 = *(uint32 *) (arg2 + 8)
+# asm 1: lduw [<arg2=int64#2+8],>x3=int64#7
+# asm 2: lduw [<arg2=%i1+8],>x3=%g1
+lduw [%i1+8],%g1
+
+# qhasm:   x10 = 2036477234 & 0xfffffc00
+# asm 1: sethi %lm(2036477234),>x10=int64#8
+# asm 2: sethi %lm(2036477234),>x10=%g4
+sethi %lm(2036477234),%g4
+
+# qhasm:   x4 = *(uint32 *) (arg2 + 12)
+# asm 1: lduw [<arg2=int64#2+12],>x4=int64#9
+# asm 2: lduw [<arg2=%i1+12],>x4=%g5
+lduw [%i1+12],%g5
+
+# qhasm:   x15 = 1797285236 & 0xfffffc00
+# asm 1: sethi %lm(1797285236),>x15=int64#10
+# asm 2: sethi %lm(1797285236),>x15=%o0
+sethi %lm(1797285236),%o0
+
+# qhasm:   x11 = *(uint32 *) (arg2 + 16)
+# asm 1: lduw [<arg2=int64#2+16],>x11=int64#11
+# asm 2: lduw [<arg2=%i1+16],>x11=%o1
+lduw [%i1+16],%o1
+
+# qhasm:   x0 |= 1634760805 & 0x3ff
+# asm 1: or <x0=int64#4,%lo(1634760805),>x0=int64#4
+# asm 2: or <x0=%i3,%lo(1634760805),>x0=%i3
+or %i3,%lo(1634760805),%i3
+
+# qhasm:   x12 = *(uint32 *) (arg2 + 20)
+# asm 1: lduw [<arg2=int64#2+20],>x12=int64#12
+# asm 2: lduw [<arg2=%i1+20],>x12=%o2
+lduw [%i1+20],%o2
+
+# qhasm:   x5 |= 857760878 & 0x3ff
+# asm 1: or <x5=int64#6,%lo(857760878),>x5=int64#6
+# asm 2: or <x5=%i5,%lo(857760878),>x5=%i5
+or %i5,%lo(857760878),%i5
+
+# qhasm:   x13 = *(uint32 *) (arg2 + 24)
+# asm 1: lduw [<arg2=int64#2+24],>x13=int64#13
+# asm 2: lduw [<arg2=%i1+24],>x13=%o3
+lduw [%i1+24],%o3
+
+# qhasm:   x10 |= 2036477234 & 0x3ff
+# asm 1: or <x10=int64#8,%lo(2036477234),>x10=int64#8
+# asm 2: or <x10=%g4,%lo(2036477234),>x10=%g4
+or %g4,%lo(2036477234),%g4
+
+# qhasm:   x14 = *(uint32 *) (arg2 + 28)
+# asm 1: lduw [<arg2=int64#2+28],>x14=int64#2
+# asm 2: lduw [<arg2=%i1+28],>x14=%i1
 lduw [%i1+28],%i1
 
-#   x15 |= 1797285236 & 0x3ff
-# or <x15=int64#13,%lo(1797285236),>x15=int64#13
-# or <x15=%o3,%lo(1797285236),>x15=%o3
-or %o3,%lo(1797285236),%o3
+# qhasm:   x15 |= 1797285236 & 0x3ff
+# asm 1: or <x15=int64#10,%lo(1797285236),>x15=int64#10
+# asm 2: or <x15=%o0,%lo(1797285236),>x15=%o0
+or %o0,%lo(1797285236),%o0
 
-# storekey#
+# qhasm: storekey:
 ._storekey:
 
-#   *(int32 *) (x + 0) = x0
-# stw <x0=int64#3,[<x=int64#1+0]
-# stw <x0=%i2,[<x=%i0+0]
-stw %i2,[%i0+0]
-
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
-add %i0,4,%i0
+# qhasm:   *(int32 *) (x + 0) = x0
+# asm 1: stw <x0=int64#4,[<x=int64#1+0]
+# asm 2: stw <x0=%i3,[<x=%i0+0]
+stw %i3,[%i0+0]
 
-#   *(swapendian int32 *) x = x1
-# stwa <x1=int64#4,[<x=int64#1] 0x88
-# stwa <x1=%i3,[<x=%i0] 0x88
-stwa %i3,[%i0] 0x88
-
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(swapendian int32 *) x = x2
-# stwa <x2=int64#5,[<x=int64#1] 0x88
-# stwa <x2=%i4,[<x=%i0] 0x88
-stwa %i4,[%i0] 0x88
+# qhasm:   *(swapendian int32 *) x = x1
+# asm 1: stwa <x1=int64#3,[<x=int64#1] 0x88
+# asm 2: stwa <x1=%i2,[<x=%i0] 0x88
+stwa %i2,[%i0] 0x88
 
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(swapendian int32 *) x = x3
-# stwa <x3=int64#6,[<x=int64#1] 0x88
-# stwa <x3=%i5,[<x=%i0] 0x88
-stwa %i5,[%i0] 0x88
-
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   *(swapendian int32 *) x = x2
+# asm 1: stwa <x2=int64#5,[<x=int64#1] 0x88
+# asm 2: stwa <x2=%i4,[<x=%i0] 0x88
+stwa %i4,[%i0] 0x88
+
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(swapendian int32 *) x = x4
-# stwa <x4=int64#7,[<x=int64#1] 0x88
-# stwa <x4=%g1,[<x=%i0] 0x88
+# qhasm:   *(swapendian int32 *) x = x3
+# asm 1: stwa <x3=int64#7,[<x=int64#1] 0x88
+# asm 2: stwa <x3=%g1,[<x=%i0] 0x88
 stwa %g1,[%i0] 0x88
 
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(int32 *) (x + 0) = x5
-# stw <x5=int64#8,[<x=int64#1+0]
-# stw <x5=%g4,[<x=%i0+0]
-stw %g4,[%i0+0]
+# qhasm:   *(swapendian int32 *) x = x4
+# asm 1: stwa <x4=int64#9,[<x=int64#1] 0x88
+# asm 2: stwa <x4=%g5,[<x=%i0] 0x88
+stwa %g5,[%i0] 0x88
+
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
+add %i0,4,%i0
 
-#   x += 20
-# add <x=int64#1,20,>x=int64#1
-# add <x=%i0,20,>x=%i0
+# qhasm:   *(int32 *) (x + 0) = x5
+# asm 1: stw <x5=int64#6,[<x=int64#1+0]
+# asm 2: stw <x5=%i5,[<x=%i0+0]
+stw %i5,[%i0+0]
+
+# qhasm:   x += 20
+# asm 1: add <x=int64#1,20,>x=int64#1
+# asm 2: add <x=%i0,20,>x=%i0
 add %i0,20,%i0
 
-#   *(int32 *) (x + 0) = x10
-# stw <x10=int64#9,[<x=int64#1+0]
-# stw <x10=%g5,[<x=%i0+0]
-stw %g5,[%i0+0]
-
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
-add %i0,4,%i0
+# qhasm:   *(int32 *) (x + 0) = x10
+# asm 1: stw <x10=int64#8,[<x=int64#1+0]
+# asm 2: stw <x10=%g4,[<x=%i0+0]
+stw %g4,[%i0+0]
 
-#   *(swapendian int32 *) x = x11
-# stwa <x11=int64#10,[<x=int64#1] 0x88
-# stwa <x11=%o0,[<x=%i0] 0x88
-stwa %o0,[%i0] 0x88
-
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(swapendian int32 *) x = x12
-# stwa <x12=int64#11,[<x=int64#1] 0x88
-# stwa <x12=%o1,[<x=%i0] 0x88
+# qhasm:   *(swapendian int32 *) x = x11
+# asm 1: stwa <x11=int64#11,[<x=int64#1] 0x88
+# asm 2: stwa <x11=%o1,[<x=%i0] 0x88
 stwa %o1,[%i0] 0x88
 
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(swapendian int32 *) x = x13
-# stwa <x13=int64#12,[<x=int64#1] 0x88
-# stwa <x13=%o2,[<x=%i0] 0x88
+# qhasm:   *(swapendian int32 *) x = x12
+# asm 1: stwa <x12=int64#12,[<x=int64#1] 0x88
+# asm 2: stwa <x12=%o2,[<x=%i0] 0x88
 stwa %o2,[%i0] 0x88
 
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
+add %i0,4,%i0
+
+# qhasm:   *(swapendian int32 *) x = x13
+# asm 1: stwa <x13=int64#13,[<x=int64#1] 0x88
+# asm 2: stwa <x13=%o3,[<x=%i0] 0x88
+stwa %o3,[%i0] 0x88
+
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(swapendian int32 *) x = x14
-# stwa <x14=int64#2,[<x=int64#1] 0x88
-# stwa <x14=%i1,[<x=%i0] 0x88
+# qhasm:   *(swapendian int32 *) x = x14
+# asm 1: stwa <x14=int64#2,[<x=int64#1] 0x88
+# asm 2: stwa <x14=%i1,[<x=%i0] 0x88
 stwa %i1,[%i0] 0x88
 
-#   x += 4
-# add <x=int64#1,4,>x=int64#1
-# add <x=%i0,4,>x=%i0
+# qhasm:   x += 4
+# asm 1: add <x=int64#1,4,>x=int64#1
+# asm 2: add <x=%i0,4,>x=%i0
 add %i0,4,%i0
 
-#   *(int32 *) (x + 0) = x15
-# stw <x15=int64#13,[<x=int64#1+0]
-# stw <x15=%o3,[<x=%i0+0]
-stw %o3,[%i0+0]
+# qhasm:   *(int32 *) (x + 0) = x15
+# asm 1: stw <x15=int64#10,[<x=int64#1+0]
+# asm 2: stw <x15=%o0,[<x=%i0+0]
+stw %o0,[%i0+0]
 
-# leave
+# qhasm: leave
 ret
 restore
 
-# enter ECRYPT_keystream_bytes
+# qhasm: enter ECRYPT_keystream_bytes
 .section ".text"
 .align 32
 .global ECRYPT_keystream_bytes
 ECRYPT_keystream_bytes:
 save %sp,-288,%sp
 
-# bytes = arg3
-# add %g0,<arg3=int64#3,>bytes=int64#6
-# add %g0,<arg3=%i2,>bytes=%i5
-add %g0,%i2,%i5
-
-# m = arg2
-# add %g0,<arg2=int64#2,>m=int64#4
-# add %g0,<arg2=%i1,>m=%i3
-add %g0,%i1,%i3
-
-# out = arg2
-# add %g0,<arg2=int64#2,>out=int64#5
-# add %g0,<arg2=%i1,>out=%i4
-add %g0,%i1,%i4
-
-# flags bytes - 0
-# subcc <bytes=int64#6,0,%g0
-# subcc <bytes=%i5,0,%g0
-subcc %i5,0,%g0
+# qhasm: bytes = arg3
+# asm 1: add %g0,<arg3=int64#3,>bytes=int64#5
+# asm 2: add %g0,<arg3=%i2,>bytes=%i4
+add %g0,%i2,%i4
+
+# qhasm: m = arg2
+# asm 1: add %g0,<arg2=int64#2,>m=int64#6
+# asm 2: add %g0,<arg2=%i1,>m=%i5
+add %g0,%i1,%i5
+
+# qhasm: out = arg2
+# asm 1: add %g0,<arg2=int64#2,>out=int64#2
+# asm 2: add %g0,<arg2=%i1,>out=%i1
+add %g0,%i1,%i1
+
+# qhasm:               unsigned>? bytes - 0
+# asm 1: subcc <bytes=int64#5,0,%g0
+# asm 2: subcc <bytes=%i4,0,%g0
+subcc %i4,0,%g0
 
-# goto done if unsigned<=
+# qhasm: goto done if !unsigned>
 bleu,pt %xcc,._done
 nop
 
-#   a = 0
-# add %g0,0,>a=int64#3
-# add %g0,0,>a=%i2
+# qhasm:   a = 0
+# asm 1: add %g0,0,>a=int64#3
+# asm 2: add %g0,0,>a=%i2
 add %g0,0,%i2
 
-#   i = bytes
-# add %g0,<bytes=int64#6,>i=int64#2
-# add %g0,<bytes=%i5,>i=%i1
-add %g0,%i5,%i1
+# qhasm:   i = bytes
+# asm 1: add %g0,<bytes=int64#5,>i=int64#4
+# asm 2: add %g0,<bytes=%i4,>i=%i3
+add %g0,%i4,%i3
 
-#   zeroloop#
+# qhasm:   zeroloop:
 ._zeroloop:
 
-#     *(int8 *) (out + 0) = a
-# stb <a=int64#3,[<out=int64#5+0]
-# stb <a=%i2,[<out=%i4+0]
-stb %i2,[%i4+0]
-
-#     out += 1
-# add <out=int64#5,1,>out=int64#5
-# add <out=%i4,1,>out=%i4
-add %i4,1,%i4
-
-#     flags i -= 1
-# subcc <i=int64#2,1,>i=int64#2
-# subcc <i=%i1,1,>i=%i1
-subcc %i1,1,%i1
+# qhasm:     *(int8 *) (out + 0) = a
+# asm 1: stb <a=int64#3,[<out=int64#2+0]
+# asm 2: stb <a=%i2,[<out=%i1+0]
+stb %i2,[%i1+0]
+
+# qhasm:     out += 1
+# asm 1: add <out=int64#2,1,>out=int64#2
+# asm 2: add <out=%i1,1,>out=%i1
+add %i1,1,%i1
+
+# qhasm:                    unsigned>? i -= 1
+# asm 1: subcc <i=int64#4,1,>i=int64#4
+# asm 2: subcc <i=%i3,1,>i=%i3
+subcc %i3,1,%i3
 
-#   goto zeroloop if unsigned>
+# qhasm:   goto zeroloop if unsigned>
 bgu,pt %xcc,._zeroloop
 nop
 
-#   out -= bytes
-# sub <out=int64#5,<bytes=int64#6,>out=int64#5
-# sub <out=%i4,<bytes=%i5,>out=%i4
-sub %i4,%i5,%i4
+# qhasm:   out -= bytes
+# asm 1: sub <out=int64#2,<bytes=int64#5,>out=int64#2
+# asm 2: sub <out=%i1,<bytes=%i4,>out=%i1
+sub %i1,%i4,%i1
 
-# goto bytesatleast1
+# qhasm: goto bytesatleast1
 b ._bytesatleast1
 nop
 
-# enter ECRYPT_decrypt_bytes
+# qhasm: enter ECRYPT_decrypt_bytes
 .section ".text"
 .align 32
 .global ECRYPT_decrypt_bytes
 ECRYPT_decrypt_bytes:
 save %sp,-288,%sp
 
-# bytes = arg4
-# add %g0,<arg4=int64#4,>bytes=int64#6
-# add %g0,<arg4=%i3,>bytes=%i5
-add %g0,%i3,%i5
-
-# m = arg2
-# add %g0,<arg2=int64#2,>m=int64#4
-# add %g0,<arg2=%i1,>m=%i3
-add %g0,%i1,%i3
-
-# out = arg3
-# add %g0,<arg3=int64#3,>out=int64#5
-# add %g0,<arg3=%i2,>out=%i4
-add %g0,%i2,%i4
-
-# flags bytes - 0
-# subcc <bytes=int64#6,0,%g0
-# subcc <bytes=%i5,0,%g0
-subcc %i5,0,%g0
+# qhasm: bytes = arg4
+# asm 1: add %g0,<arg4=int64#4,>bytes=int64#5
+# asm 2: add %g0,<arg4=%i3,>bytes=%i4
+add %g0,%i3,%i4
+
+# qhasm: m = arg2
+# asm 1: add %g0,<arg2=int64#2,>m=int64#6
+# asm 2: add %g0,<arg2=%i1,>m=%i5
+add %g0,%i1,%i5
+
+# qhasm: out = arg3
+# asm 1: add %g0,<arg3=int64#3,>out=int64#2
+# asm 2: add %g0,<arg3=%i2,>out=%i1
+add %g0,%i2,%i1
+
+# qhasm:               unsigned>? bytes - 0
+# asm 1: subcc <bytes=int64#5,0,%g0
+# asm 2: subcc <bytes=%i4,0,%g0
+subcc %i4,0,%g0
 
-# goto done if unsigned<=
+# qhasm: goto done if !unsigned>
 bleu,pt %xcc,._done
 nop
 
-# goto bytesatleast1
+# qhasm: goto bytesatleast1
 b ._bytesatleast1
 nop
 
-# enter ECRYPT_encrypt_bytes
+# qhasm: enter ECRYPT_encrypt_bytes
 .section ".text"
 .align 32
 .global ECRYPT_encrypt_bytes
 ECRYPT_encrypt_bytes:
 save %sp,-288,%sp
 
-# bytes = arg4
-# add %g0,<arg4=int64#4,>bytes=int64#6
-# add %g0,<arg4=%i3,>bytes=%i5
-add %g0,%i3,%i5
-
-# m = arg2
-# add %g0,<arg2=int64#2,>m=int64#4
-# add %g0,<arg2=%i1,>m=%i3
-add %g0,%i1,%i3
-
-# out = arg3
-# add %g0,<arg3=int64#3,>out=int64#5
-# add %g0,<arg3=%i2,>out=%i4
-add %g0,%i2,%i4
-
-# flags bytes - 0
-# subcc <bytes=int64#6,0,%g0
-# subcc <bytes=%i5,0,%g0
-subcc %i5,0,%g0
+# qhasm: bytes = arg4
+# asm 1: add %g0,<arg4=int64#4,>bytes=int64#5
+# asm 2: add %g0,<arg4=%i3,>bytes=%i4
+add %g0,%i3,%i4
+
+# qhasm: m = arg2
+# asm 1: add %g0,<arg2=int64#2,>m=int64#6
+# asm 2: add %g0,<arg2=%i1,>m=%i5
+add %g0,%i1,%i5
+
+# qhasm: out = arg3
+# asm 1: add %g0,<arg3=int64#3,>out=int64#2
+# asm 2: add %g0,<arg3=%i2,>out=%i1
+add %g0,%i2,%i1
+
+# qhasm:               unsigned>? bytes - 0
+# asm 1: subcc <bytes=int64#5,0,%g0
+# asm 2: subcc <bytes=%i4,0,%g0
+subcc %i4,0,%g0
 
-# goto done if unsigned<=
+# qhasm: goto done if !unsigned>
 bleu,pt %xcc,._done
 nop
 
-# bytesatleast1#
+# qhasm: bytesatleast1:
 ._bytesatleast1:
 
-#   flags bytes - 64
-# subcc <bytes=int64#6,64,%g0
-# subcc <bytes=%i5,64,%g0
-subcc %i5,64,%g0
+# qhasm:                           unsigned<? bytes - 64
+# asm 1: subcc <bytes=int64#5,64,%g0
+# asm 2: subcc <bytes=%i4,64,%g0
+subcc %i4,64,%g0
 
-#   goto bytesatleast64 if unsigned>=
+# qhasm:   goto bytesatleast64 if !unsigned<
 bgeu,pt %xcc,._bytesatleast64
 nop
 
-#     ctarget = out
-# stx <out=int64#5,[%fp+2023->ctarget=stack64#1]
-# stx <out=%i4,[%fp+2023->ctarget=64]
-stx %i4,[%fp+2023-64]
-
-#     out = &tmp
-# add %fp,1967->tmp=stack512#1,>out=int64#5
-# add %fp,1967->tmp=0,>out=%i4
-add %fp,1967-0,%i4
-
-#     i = 0
-# add %g0,0,>i=int64#2
-# add %g0,0,>i=%i1
-add %g0,0,%i1
+# qhasm:     ctarget = out
+# asm 1: stx <out=int64#2,[%fp+2023->ctarget=stack64#1]
+# asm 2: stx <out=%i1,[%fp+2023->ctarget=0]
+stx %i1,[%fp+2023-0]
+
+# qhasm:     out = &tmp
+# asm 1: add %fp,1967->tmp=stack512#1,>out=int64#2
+# asm 2: add %fp,1967->tmp=48,>out=%i1
+add %fp,1967-48,%i1
+
+# qhasm:     i = 0
+# asm 1: add %g0,0,>i=int64#4
+# asm 2: add %g0,0,>i=%i3
+add %g0,0,%i3
 
-#     mcopyloop#
+# qhasm:     mcopyloop:
 ._mcopyloop:
 
-#       a = *(int8 *) (m + i)
-# ldsb [<m=int64#4+<i=int64#2],>a=int64#3
-# ldsb [<m=%i3+<i=%i1],>a=%i2
-ldsb [%i3+%i1],%i2
-
-#       *(int8 *) (out + i) = a
-# stb <a=int64#3,[<out=int64#5+<i=int64#2]
-# stb <a=%i2,[<out=%i4+<i=%i1]
-stb %i2,[%i4+%i1]
-
-#       i += 1
-# add <i=int64#2,1,>i=int64#2
-# add <i=%i1,1,>i=%i1
-add %i1,1,%i1
-
-#       flags i - bytes
-# subcc <i=int64#2,<bytes=int64#6,%g0
-# subcc <i=%i1,<bytes=%i5,%g0
-subcc %i1,%i5,%g0
+# qhasm:       a = *(int8 *) (m + i)
+# asm 1: ldsb [<m=int64#6+<i=int64#4],>a=int64#3
+# asm 2: ldsb [<m=%i5+<i=%i3],>a=%i2
+ldsb [%i5+%i3],%i2
+
+# qhasm:       *(int8 *) (out + i) = a
+# asm 1: stb <a=int64#3,[<out=int64#2+<i=int64#4]
+# asm 2: stb <a=%i2,[<out=%i1+<i=%i3]
+stb %i2,[%i1+%i3]
+
+# qhasm:       i += 1
+# asm 1: add <i=int64#4,1,>i=int64#4
+# asm 2: add <i=%i3,1,>i=%i3
+add %i3,1,%i3
+
+# qhasm:                       unsigned<? i - bytes
+# asm 1: subcc <i=int64#4,<bytes=int64#5,%g0
+# asm 2: subcc <i=%i3,<bytes=%i4,%g0
+subcc %i3,%i4,%g0
 
-#     goto mcopyloop if unsigned<
+# qhasm:     goto mcopyloop if unsigned<
 blu,pt %xcc,._mcopyloop
 nop
 
-#     m = &tmp
-# add %fp,1967->tmp=stack512#1,>m=int64#4
-# add %fp,1967->tmp=0,>m=%i3
-add %fp,1967-0,%i3
+# qhasm:     m = &tmp
+# asm 1: add %fp,1967->tmp=stack512#1,>m=int64#6
+# asm 2: add %fp,1967->tmp=48,>m=%i5
+add %fp,1967-48,%i5
 
-#   bytesatleast64#
+# qhasm:   bytesatleast64:
 ._bytesatleast64:
 
-#     x0 = *(uint32 *) (x + 0)
-# lduw [<x=int64#1+0],>x0=int64#9
-# lduw [<x=%i0+0],>x0=%g5
-lduw [%i0+0],%g5
-
-#     x1 = *(uint32 *) (x + 4)
-# lduw [<x=int64#1+4],>x1=int64#10
-# lduw [<x=%i0+4],>x1=%o0
-lduw [%i0+4],%o0
-
-#     x2 = *(uint32 *) (x + 8)
-# lduw [<x=int64#1+8],>x2=int64#11
-# lduw [<x=%i0+8],>x2=%o1
-lduw [%i0+8],%o1
-
-#     x3 = *(uint32 *) (x + 12)
-# lduw [<x=int64#1+12],>x3=int64#12
-# lduw [<x=%i0+12],>x3=%o2
-lduw [%i0+12],%o2
-
-#     x4 = *(uint32 *) (x + 16)
-# lduw [<x=int64#1+16],>x4=int64#13
-# lduw [<x=%i0+16],>x4=%o3
-lduw [%i0+16],%o3
-
-#     x5 = *(uint32 *) (x + 20)
-# lduw [<x=int64#1+20],>x5=int64#14
-# lduw [<x=%i0+20],>x5=%o4
-lduw [%i0+20],%o4
-
-#     x6 = *(uint32 *) (x + 24)
-# lduw [<x=int64#1+24],>x6=int64#15
-# lduw [<x=%i0+24],>x6=%o5
-lduw [%i0+24],%o5
-
-#     x7 = *(uint32 *) (x + 28)
-# lduw [<x=int64#1+28],>x7=int64#16
-# lduw [<x=%i0+28],>x7=%o7
-lduw [%i0+28],%o7
-
-#     x8 = *(uint32 *) (x + 32)
-# lduw [<x=int64#1+32],>x8=int64#17
-# lduw [<x=%i0+32],>x8=%l0
-lduw [%i0+32],%l0
-
-#     x9 = *(uint32 *) (x + 36)
-# lduw [<x=int64#1+36],>x9=int64#18
-# lduw [<x=%i0+36],>x9=%l1
-lduw [%i0+36],%l1
-
-#     x10 = *(uint32 *) (x + 40)
-# lduw [<x=int64#1+40],>x10=int64#19
-# lduw [<x=%i0+40],>x10=%l2
-lduw [%i0+40],%l2
-
-#     x11 = *(uint32 *) (x + 44)
-# lduw [<x=int64#1+44],>x11=int64#20
-# lduw [<x=%i0+44],>x11=%l3
-lduw [%i0+44],%l3
-
-#     x12 = *(uint32 *) (x + 48)
-# lduw [<x=int64#1+48],>x12=int64#21
-# lduw [<x=%i0+48],>x12=%l4
-lduw [%i0+48],%l4
-
-#     x13 = *(uint32 *) (x + 52)
-# lduw [<x=int64#1+52],>x13=int64#22
-# lduw [<x=%i0+52],>x13=%l5
-lduw [%i0+52],%l5
-
-#     x14 = *(uint32 *) (x + 56)
-# lduw [<x=int64#1+56],>x14=int64#23
-# lduw [<x=%i0+56],>x14=%l6
-lduw [%i0+56],%l6
-
-#     x15 = *(uint32 *) (x + 60)
-# lduw [<x=int64#1+60],>x15=int64#24
-# lduw [<x=%i0+60],>x15=%l7
-lduw [%i0+60],%l7
-
-#     i = 8
-# add %g0,8,>i=int64#2
-# add %g0,8,>i=%i1
-add %g0,8,%i1
-
-#     bytes_stack = bytes
-# stx <bytes=int64#6,[%fp+2023->bytes_stack=stack64#2]
-# stx <bytes=%i5,[%fp+2023->bytes_stack=72]
-stx %i5,[%fp+2023-72]
-
-#     out_stack = out
-# stx <out=int64#5,[%fp+2023->out_stack=stack64#3]
-# stx <out=%i4,[%fp+2023->out_stack=80]
-stx %i4,[%fp+2023-80]
-
-#     m_stack = m
-# stx <m=int64#4,[%fp+2023->m_stack=stack64#4]
-# stx <m=%i3,[%fp+2023->m_stack=88]
-stx %i3,[%fp+2023-88]
-
-#     x_stack = x
-# stx <x=int64#1,[%fp+2023->x_stack=stack64#5]
-# stx <x=%i0,[%fp+2023->x_stack=96]
-stx %i0,[%fp+2023-96]
+# qhasm:     x0 = *(uint32 *) (x + 0)
+# asm 1: lduw [<x=int64#1+0],>x0=int64#3
+# asm 2: lduw [<x=%i0+0],>x0=%i2
+lduw [%i0+0],%i2
+
+# qhasm:     x1 = *(uint32 *) (x + 4)
+# asm 1: lduw [<x=int64#1+4],>x1=int64#7
+# asm 2: lduw [<x=%i0+4],>x1=%g1
+lduw [%i0+4],%g1
+
+# qhasm:     x2 = *(uint32 *) (x + 8)
+# asm 1: lduw [<x=int64#1+8],>x2=int64#8
+# asm 2: lduw [<x=%i0+8],>x2=%g4
+lduw [%i0+8],%g4
+
+# qhasm:     x3 = *(uint32 *) (x + 12)
+# asm 1: lduw [<x=int64#1+12],>x3=int64#9
+# asm 2: lduw [<x=%i0+12],>x3=%g5
+lduw [%i0+12],%g5
+
+# qhasm:     x4 = *(uint32 *) (x + 16)
+# asm 1: lduw [<x=int64#1+16],>x4=int64#10
+# asm 2: lduw [<x=%i0+16],>x4=%o0
+lduw [%i0+16],%o0
+
+# qhasm:     x5 = *(uint32 *) (x + 20)
+# asm 1: lduw [<x=int64#1+20],>x5=int64#11
+# asm 2: lduw [<x=%i0+20],>x5=%o1
+lduw [%i0+20],%o1
+
+# qhasm:     x6 = *(uint32 *) (x + 24)
+# asm 1: lduw [<x=int64#1+24],>x6=int64#12
+# asm 2: lduw [<x=%i0+24],>x6=%o2
+lduw [%i0+24],%o2
+
+# qhasm:     x7 = *(uint32 *) (x + 28)
+# asm 1: lduw [<x=int64#1+28],>x7=int64#13
+# asm 2: lduw [<x=%i0+28],>x7=%o3
+lduw [%i0+28],%o3
+
+# qhasm:     x8 = *(uint32 *) (x + 32)
+# asm 1: lduw [<x=int64#1+32],>x8=int64#14
+# asm 2: lduw [<x=%i0+32],>x8=%o4
+lduw [%i0+32],%o4
+
+# qhasm:     x9 = *(uint32 *) (x + 36)
+# asm 1: lduw [<x=int64#1+36],>x9=int64#15
+# asm 2: lduw [<x=%i0+36],>x9=%o5
+lduw [%i0+36],%o5
+
+# qhasm:     x10 = *(uint32 *) (x + 40)
+# asm 1: lduw [<x=int64#1+40],>x10=int64#16
+# asm 2: lduw [<x=%i0+40],>x10=%o7
+lduw [%i0+40],%o7
+
+# qhasm:     x11 = *(uint32 *) (x + 44)
+# asm 1: lduw [<x=int64#1+44],>x11=int64#17
+# asm 2: lduw [<x=%i0+44],>x11=%l0
+lduw [%i0+44],%l0
+
+# qhasm:     x12 = *(uint32 *) (x + 48)
+# asm 1: lduw [<x=int64#1+48],>x12=int64#18
+# asm 2: lduw [<x=%i0+48],>x12=%l1
+lduw [%i0+48],%l1
+
+# qhasm:     x13 = *(uint32 *) (x + 52)
+# asm 1: lduw [<x=int64#1+52],>x13=int64#19
+# asm 2: lduw [<x=%i0+52],>x13=%l2
+lduw [%i0+52],%l2
+
+# qhasm:     x14 = *(uint32 *) (x + 56)
+# asm 1: lduw [<x=int64#1+56],>x14=int64#20
+# asm 2: lduw [<x=%i0+56],>x14=%l3
+lduw [%i0+56],%l3
+
+# qhasm:     x15 = *(uint32 *) (x + 60)
+# asm 1: lduw [<x=int64#1+60],>x15=int64#21
+# asm 2: lduw [<x=%i0+60],>x15=%l4
+lduw [%i0+60],%l4
+
+# qhasm:     i = 8
+# asm 1: add %g0,8,>i=int64#4
+# asm 2: add %g0,8,>i=%i3
+add %g0,8,%i3
+
+# qhasm:     bytes_stack = bytes
+# asm 1: stx <bytes=int64#5,[%fp+2023->bytes_stack=stack64#2]
+# asm 2: stx <bytes=%i4,[%fp+2023->bytes_stack=8]
+stx %i4,[%fp+2023-8]
+
+# qhasm:     out_stack = out
+# asm 1: stx <out=int64#2,[%fp+2023->out_stack=stack64#3]
+# asm 2: stx <out=%i1,[%fp+2023->out_stack=16]
+stx %i1,[%fp+2023-16]
+
+# qhasm:     m_stack = m
+# asm 1: stx <m=int64#6,[%fp+2023->m_stack=stack64#4]
+# asm 2: stx <m=%i5,[%fp+2023->m_stack=24]
+stx %i5,[%fp+2023-24]
+
+# qhasm:     x_stack = x
+# asm 1: stx <x=int64#1,[%fp+2023->x_stack=stack64#5]
+# asm 2: stx <x=%i0,[%fp+2023->x_stack=32]
+stx %i0,[%fp+2023-32]
 
-#     mainloop#
+# qhasm:     mainloop:
 ._mainloop:
 
-# y4 = x0 + x12
-# add <x0=int64#9,<x12=int64#21,>y4=int64#3
-# add <x0=%g5,<x12=%l4,>y4=%i2
-add %g5,%l4,%i2
-
-# 		y9 = x5 + x1
-# add <x5=int64#14,<x1=int64#10,>y9=int64#6
-# add <x5=%o4,<x1=%o0,>y9=%i5
-add %o4,%o0,%i5
-
-# z4 = (uint32) y4 << 7
-# sll <y4=int64#3,7,>z4=int64#1
-# sll <y4=%i2,7,>z4=%i0
-sll %i2,7,%i0
-
-# 				y14 = x10 + x6
-# add <x10=int64#19,<x6=int64#15,>y14=int64#7
-# add <x10=%l2,<x6=%o5,>y14=%g1
-add %l2,%o5,%g1
-
-# y4 = (uint32) y4 >> 25
-# srl <y4=int64#3,25,>y4=int64#4
-# srl <y4=%i2,25,>y4=%i3
-srl %i2,25,%i3
-
-# 						y3 = x15 + x11
-# add <x15=int64#24,<x11=int64#20,>y3=int64#5
-# add <x15=%l7,<x11=%l3,>y3=%i4
-add %l7,%l3,%i4
-
-# 		z9 = (uint32) y9 << 7
-# sll <y9=int64#6,7,>z9=int64#3
-# sll <y9=%i5,7,>z9=%i2
-sll %i5,7,%i2
-
-# y4 |= z4
-# or  <y4=int64#4,<z4=int64#1,>y4=int64#1
-# or  <y4=%i3,<z4=%i0,>y4=%i0
-or  %i3,%i0,%i0
-
-# 		y9 = (uint32) y9 >> 25
-# srl <y9=int64#6,25,>y9=int64#6
-# srl <y9=%i5,25,>y9=%i5
+# qhasm: y4 = x0 + x12
+# asm 1: add <x0=int64#3,<x12=int64#18,>y4=int64#1
+# asm 2: add <x0=%i2,<x12=%l1,>y4=%i0
+add %i2,%l1,%i0
+
+# qhasm: 		y9 = x5 + x1
+# asm 1: add <x5=int64#11,<x1=int64#7,>y9=int64#2
+# asm 2: add <x5=%o1,<x1=%g1,>y9=%i1
+add %o1,%g1,%i1
+
+# qhasm: z4 = (uint32) y4 << 7
+# asm 1: sll <y4=int64#1,7,>z4=int64#5
+# asm 2: sll <y4=%i0,7,>z4=%i4
+sll %i0,7,%i4
+
+# qhasm: 				y14 = x10 + x6
+# asm 1: add <x10=int64#16,<x6=int64#12,>y14=int64#6
+# asm 2: add <x10=%o7,<x6=%o2,>y14=%i5
+add %o7,%o2,%i5
+
+# qhasm: y4 = (uint32) y4 >> 25
+# asm 1: srl <y4=int64#1,25,>y4=int64#1
+# asm 2: srl <y4=%i0,25,>y4=%i0
+srl %i0,25,%i0
+
+# qhasm: 						y3 = x15 + x11
+# asm 1: add <x15=int64#21,<x11=int64#17,>y3=int64#22
+# asm 2: add <x15=%l4,<x11=%l0,>y3=%l5
+add %l4,%l0,%l5
+
+# qhasm: 		z9 = (uint32) y9 << 7
+# asm 1: sll <y9=int64#2,7,>z9=int64#23
+# asm 2: sll <y9=%i1,7,>z9=%l6
+sll %i1,7,%l6
+
+# qhasm: y4 |= z4
+# asm 1: or  <y4=int64#1,<z4=int64#5,>y4=int64#1
+# asm 2: or  <y4=%i0,<z4=%i4,>y4=%i0
+or  %i0,%i4,%i0
+
+# qhasm: 		y9 = (uint32) y9 >> 25
+# asm 1: srl <y9=int64#2,25,>y9=int64#2
+# asm 2: srl <y9=%i1,25,>y9=%i1
+srl %i1,25,%i1
+
+# qhasm: x4 ^= y4
+# asm 1: xor <x4=int64#10,<y4=int64#1,>x4=int64#1
+# asm 2: xor <x4=%o0,<y4=%i0,>x4=%i0
+xor %o0,%i0,%i0
+
+# qhasm: 				z14 = (uint32) y14 << 7
+# asm 1: sll <y14=int64#6,7,>z14=int64#5
+# asm 2: sll <y14=%i5,7,>z14=%i4
+sll %i5,7,%i4
+
+# qhasm: 		y9 |= z9
+# asm 1: or  <y9=int64#2,<z9=int64#23,>y9=int64#2
+# asm 2: or  <y9=%i1,<z9=%l6,>y9=%i1
+or  %i1,%l6,%i1
+
+# qhasm: 				y14 = (uint32) y14 >> 25
+# asm 1: srl <y14=int64#6,25,>y14=int64#6
+# asm 2: srl <y14=%i5,25,>y14=%i5
 srl %i5,25,%i5
 
-# x4 ^= y4
-# xor <x4=int64#13,<y4=int64#1,>x4=int64#13
-# xor <x4=%o3,<y4=%i0,>x4=%o3
-xor %o3,%i0,%o3
-
-# 				z14 = (uint32) y14 << 7
-# sll <y14=int64#7,7,>z14=int64#4
-# sll <y14=%g1,7,>z14=%i3
-sll %g1,7,%i3
-
-# 		y9 |= z9
-# or  <y9=int64#6,<z9=int64#3,>y9=int64#3
-# or  <y9=%i5,<z9=%i2,>y9=%i2
-or  %i5,%i2,%i2
-
-# 				y14 = (uint32) y14 >> 25
-# srl <y14=int64#7,25,>y14=int64#7
-# srl <y14=%g1,25,>y14=%g1
-srl %g1,25,%g1
-
-# y8 = x4 + x0
-# add <x4=int64#13,<x0=int64#9,>y8=int64#6
-# add <x4=%o3,<x0=%g5,>y8=%i5
-add %o3,%g5,%i5
-
-# 						z3 = (uint32) y3 << 7
-# sll <y3=int64#5,7,>z3=int64#1
-# sll <y3=%i4,7,>z3=%i0
-sll %i4,7,%i0
-
-# 		x9 ^= y9
-# xor <x9=int64#18,<y9=int64#3,>x9=int64#18
-# xor <x9=%l1,<y9=%i2,>x9=%l1
-xor %l1,%i2,%l1
-
-# 						y3 = (uint32) y3 >> 25
-# srl <y3=int64#5,25,>y3=int64#5
-# srl <y3=%i4,25,>y3=%i4
-srl %i4,25,%i4
-
-# 				y14 |= z14
-# or  <y14=int64#7,<z14=int64#4,>y14=int64#4
-# or  <y14=%g1,<z14=%i3,>y14=%i3
-or  %g1,%i3,%i3
-
-# z8 = (uint32) y8 << 9
-# sll <y8=int64#6,9,>z8=int64#3
-# sll <y8=%i5,9,>z8=%i2
-sll %i5,9,%i2
-
-# 		y13 = x9 + x5
-# add <x9=int64#18,<x5=int64#14,>y13=int64#7
-# add <x9=%l1,<x5=%o4,>y13=%g1
-add %l1,%o4,%g1
-
-# y8 = (uint32) y8 >> 23
-# srl <y8=int64#6,23,>y8=int64#6
-# srl <y8=%i5,23,>y8=%i5
-srl %i5,23,%i5
-
-# 				x14 ^= y14
-# xor <x14=int64#23,<y14=int64#4,>x14=int64#23
-# xor <x14=%l6,<y14=%i3,>x14=%l6
-xor %l6,%i3,%l6
-
-# 						y3 |= z3
-# or  <y3=int64#5,<z3=int64#1,>y3=int64#1
-# or  <y3=%i4,<z3=%i0,>y3=%i0
-or  %i4,%i0,%i0
-
-# 				y2 = x14 + x10
-# add <x14=int64#23,<x10=int64#19,>y2=int64#5
-# add <x14=%l6,<x10=%l2,>y2=%i4
-add %l6,%l2,%i4
-
-# 		z13 = (uint32) y13 << 9
-# sll <y13=int64#7,9,>z13=int64#4
-# sll <y13=%g1,9,>z13=%i3
-sll %g1,9,%i3
-
-# 						x3 ^= y3
-# xor <x3=int64#12,<y3=int64#1,>x3=int64#12
-# xor <x3=%o2,<y3=%i0,>x3=%o2
-xor %o2,%i0,%o2
-
-# 		y13 = (uint32) y13 >> 23
-# srl <y13=int64#7,23,>y13=int64#7
-# srl <y13=%g1,23,>y13=%g1
-srl %g1,23,%g1
-
-# y8 |= z8
-# or  <y8=int64#6,<z8=int64#3,>y8=int64#3
-# or  <y8=%i5,<z8=%i2,>y8=%i2
-or  %i5,%i2,%i2
-
-# 				z2 = (uint32) y2 << 9
-# sll <y2=int64#5,9,>z2=int64#1
-# sll <y2=%i4,9,>z2=%i0
-sll %i4,9,%i0
-
-# 						y7 = x3 + x15
-# add <x3=int64#12,<x15=int64#24,>y7=int64#6
-# add <x3=%o2,<x15=%l7,>y7=%i5
-add %o2,%l7,%i5
-
-# 				y2 = (uint32) y2 >> 23
-# srl <y2=int64#5,23,>y2=int64#5
-# srl <y2=%i4,23,>y2=%i4
-srl %i4,23,%i4
-
-# x8 ^= y8
-# xor <x8=int64#17,<y8=int64#3,>x8=int64#17
-# xor <x8=%l0,<y8=%i2,>x8=%l0
-xor %l0,%i2,%l0
-
-# 		y13 |= z13
-# or  <y13=int64#7,<z13=int64#4,>y13=int64#4
-# or  <y13=%g1,<z13=%i3,>y13=%i3
-or  %g1,%i3,%i3
-
-# y12 = x8 + x4
-# add <x8=int64#17,<x4=int64#13,>y12=int64#7
-# add <x8=%l0,<x4=%o3,>y12=%g1
-add %l0,%o3,%g1
-
-# 						z7 = (uint32) y7 << 9
-# sll <y7=int64#6,9,>z7=int64#3
-# sll <y7=%i5,9,>z7=%i2
-sll %i5,9,%i2
-
-# 		x13 ^= y13
-# xor <x13=int64#22,<y13=int64#4,>x13=int64#22
-# xor <x13=%l5,<y13=%i3,>x13=%l5
-xor %l5,%i3,%l5
-
-# 						y7 = (uint32) y7 >> 23
-# srl <y7=int64#6,23,>y7=int64#6
-# srl <y7=%i5,23,>y7=%i5
-srl %i5,23,%i5
-
-# 				y2 |= z2
-# or  <y2=int64#5,<z2=int64#1,>y2=int64#1
-# or  <y2=%i4,<z2=%i0,>y2=%i0
-or  %i4,%i0,%i0
-
-# z12 = (uint32) y12 << 13
-# sll <y12=int64#7,13,>z12=int64#4
-# sll <y12=%g1,13,>z12=%i3
-sll %g1,13,%i3
-
-# 		y1 = x13 + x9
-# add <x13=int64#22,<x9=int64#18,>y1=int64#5
-# add <x13=%l5,<x9=%l1,>y1=%i4
-add %l5,%l1,%i4
-
-# y12 = (uint32) y12 >> 19
-# srl <y12=int64#7,19,>y12=int64#7
-# srl <y12=%g1,19,>y12=%g1
-srl %g1,19,%g1
-
-# 				x2 ^= y2
-# xor <x2=int64#11,<y2=int64#1,>x2=int64#11
-# xor <x2=%o1,<y2=%i0,>x2=%o1
-xor %o1,%i0,%o1
-
-# 						y7 |= z7
-# or  <y7=int64#6,<z7=int64#3,>y7=int64#3
-# or  <y7=%i5,<z7=%i2,>y7=%i2
-or  %i5,%i2,%i2
-
-# 				y6 = x2 + x14
-# add <x2=int64#11,<x14=int64#23,>y6=int64#6
-# add <x2=%o1,<x14=%l6,>y6=%i5
-add %o1,%l6,%i5
-
-# 		z1 = (uint32) y1 << 13
-# sll <y1=int64#5,13,>z1=int64#1
-# sll <y1=%i4,13,>z1=%i0
-sll %i4,13,%i0
-
-# 						x7 ^= y7
-# xor <x7=int64#16,<y7=int64#3,>x7=int64#16
-# xor <x7=%o7,<y7=%i2,>x7=%o7
-xor %o7,%i2,%o7
-
-# 		y1 = (uint32) y1 >> 19
-# srl <y1=int64#5,19,>y1=int64#5
-# srl <y1=%i4,19,>y1=%i4
-srl %i4,19,%i4
-
-# y12 |= z12
-# or  <y12=int64#7,<z12=int64#4,>y12=int64#4
-# or  <y12=%g1,<z12=%i3,>y12=%i3
-or  %g1,%i3,%i3
-
-# 				z6 = (uint32) y6 << 13
-# sll <y6=int64#6,13,>z6=int64#3
-# sll <y6=%i5,13,>z6=%i2
-sll %i5,13,%i2
-
-# 						y11 = x7 + x3
-# add <x7=int64#16,<x3=int64#12,>y11=int64#7
-# add <x7=%o7,<x3=%o2,>y11=%g1
-add %o7,%o2,%g1
-
-# 				y6 = (uint32) y6 >> 19
-# srl <y6=int64#6,19,>y6=int64#6
-# srl <y6=%i5,19,>y6=%i5
-srl %i5,19,%i5
-
-# x12 ^= y12
-# xor <x12=int64#21,<y12=int64#4,>x12=int64#21
-# xor <x12=%l4,<y12=%i3,>x12=%l4
-xor %l4,%i3,%l4
-
-# 		y1 |= z1
-# or  <y1=int64#5,<z1=int64#1,>y1=int64#1
-# or  <y1=%i4,<z1=%i0,>y1=%i0
-or  %i4,%i0,%i0
-
-# y0 = x12 + x8
-# add <x12=int64#21,<x8=int64#17,>y0=int64#5
-# add <x12=%l4,<x8=%l0,>y0=%i4
-add %l4,%l0,%i4
-
-# 						z11 = (uint32) y11 << 13
-# sll <y11=int64#7,13,>z11=int64#4
-# sll <y11=%g1,13,>z11=%i3
-sll %g1,13,%i3
-
-# 		x1 ^= y1
-# xor <x1=int64#10,<y1=int64#1,>x1=int64#10
-# xor <x1=%o0,<y1=%i0,>x1=%o0
-xor %o0,%i0,%o0
-
-# 						y11 = (uint32) y11 >> 19
-# srl <y11=int64#7,19,>y11=int64#7
-# srl <y11=%g1,19,>y11=%g1
-srl %g1,19,%g1
-
-# 				y6 |= z6
-# or  <y6=int64#6,<z6=int64#3,>y6=int64#3
-# or  <y6=%i5,<z6=%i2,>y6=%i2
-or  %i5,%i2,%i2
-
-# z0 = (uint32) y0 << 18
-# sll <y0=int64#5,18,>z0=int64#1
-# sll <y0=%i4,18,>z0=%i0
-sll %i4,18,%i0
-
-# 		y5 = x1 + x13
-# add <x1=int64#10,<x13=int64#22,>y5=int64#6
-# add <x1=%o0,<x13=%l5,>y5=%i5
-add %o0,%l5,%i5
-
-# y0 = (uint32) y0 >> 14
-# srl <y0=int64#5,14,>y0=int64#5
-# srl <y0=%i4,14,>y0=%i4
-srl %i4,14,%i4
-
-# 				x6 ^= y6
-# xor <x6=int64#15,<y6=int64#3,>x6=int64#15
-# xor <x6=%o5,<y6=%i2,>x6=%o5
-xor %o5,%i2,%o5
-
-# 						y11 |= z11
-# or  <y11=int64#7,<z11=int64#4,>y11=int64#4
-# or  <y11=%g1,<z11=%i3,>y11=%i3
-or  %g1,%i3,%i3
-
-# 				y10 = x6 + x2
-# add <x6=int64#15,<x2=int64#11,>y10=int64#7
-# add <x6=%o5,<x2=%o1,>y10=%g1
-add %o5,%o1,%g1
-
-# 		z5 = (uint32) y5 << 18
-# sll <y5=int64#6,18,>z5=int64#3
-# sll <y5=%i5,18,>z5=%i2
-sll %i5,18,%i2
-
-# 						x11 ^= y11
-# xor <x11=int64#20,<y11=int64#4,>x11=int64#20
-# xor <x11=%l3,<y11=%i3,>x11=%l3
-xor %l3,%i3,%l3
-
-# 		y5 = (uint32) y5 >> 14
-# srl <y5=int64#6,14,>y5=int64#6
-# srl <y5=%i5,14,>y5=%i5
-srl %i5,14,%i5
-
-# y0 |= z0
-# or  <y0=int64#5,<z0=int64#1,>y0=int64#4
-# or  <y0=%i4,<z0=%i0,>y0=%i3
-or  %i4,%i0,%i3
-
-# 				z10 = (uint32) y10 << 18
-# sll <y10=int64#7,18,>z10=int64#1
-# sll <y10=%g1,18,>z10=%i0
-sll %g1,18,%i0
-
-# 						y15 = x11 + x7
-# add <x11=int64#20,<x7=int64#16,>y15=int64#8
-# add <x11=%l3,<x7=%o7,>y15=%g4
-add %l3,%o7,%g4
-
-# 				y10 = (uint32) y10 >> 14
-# srl <y10=int64#7,14,>y10=int64#7
-# srl <y10=%g1,14,>y10=%g1
-srl %g1,14,%g1
-
-# x0 ^= y0
-# xor <x0=int64#9,<y0=int64#4,>x0=int64#9
-# xor <x0=%g5,<y0=%i3,>x0=%g5
-xor %g5,%i3,%g5
-
-# 		y5 |= z5
-# or  <y5=int64#6,<z5=int64#3,>y5=int64#5
-# or  <y5=%i5,<z5=%i2,>y5=%i4
-or  %i5,%i2,%i4
-
-# u1 = x0 + x3
-# add <x0=int64#9,<x3=int64#12,>u1=int64#4
-# add <x0=%g5,<x3=%o2,>u1=%i3
-add %g5,%o2,%i3
-
-# 						z15 = (uint32) y15 << 18
-# sll <y15=int64#8,18,>z15=int64#3
-# sll <y15=%g4,18,>z15=%i2
-sll %g4,18,%i2
-
-# 		x5 ^= y5
-# xor <x5=int64#14,<y5=int64#5,>x5=int64#14
-# xor <x5=%o4,<y5=%i4,>x5=%o4
-xor %o4,%i4,%o4
-
-# 						y15 = (uint32) y15 >> 14
-# srl <y15=int64#8,14,>y15=int64#8
-# srl <y15=%g4,14,>y15=%g4
-srl %g4,14,%g4
-
-# 				y10 |= z10
-# or  <y10=int64#7,<z10=int64#1,>y10=int64#6
-# or  <y10=%g1,<z10=%i0,>y10=%i5
-or  %g1,%i0,%i5
-
-# z1 = (uint32) u1 << 7
-# sll <u1=int64#4,7,>z1=int64#1
-# sll <u1=%i3,7,>z1=%i0
-sll %i3,7,%i0
-
-# 		u6 = x5 + x4
-# add <x5=int64#14,<x4=int64#13,>u6=int64#5
-# add <x5=%o4,<x4=%o3,>u6=%i4
-add %o4,%o3,%i4
-
-# u1 = (uint32) u1 >> 25
-# srl <u1=int64#4,25,>u1=int64#4
-# srl <u1=%i3,25,>u1=%i3
-srl %i3,25,%i3
-
-# 				x10 ^= y10
-# xor <x10=int64#19,<y10=int64#6,>x10=int64#19
-# xor <x10=%l2,<y10=%i5,>x10=%l2
-xor %l2,%i5,%l2
-
-# 						y15 |= z15
-# or  <y15=int64#8,<z15=int64#3,>y15=int64#7
-# or  <y15=%g4,<z15=%i2,>y15=%g1
-or  %g4,%i2,%g1
-
-# 				u11 = x10 + x9
-# add <x10=int64#19,<x9=int64#18,>u11=int64#6
-# add <x10=%l2,<x9=%l1,>u11=%i5
-add %l2,%l1,%i5
-
-# 		z6 = (uint32) u6 << 7
-# sll <u6=int64#5,7,>z6=int64#3
-# sll <u6=%i4,7,>z6=%i2
-sll %i4,7,%i2
-
-# 						x15 ^= y15
-# xor <x15=int64#24,<y15=int64#7,>x15=int64#24
-# xor <x15=%l7,<y15=%g1,>x15=%l7
-xor %l7,%g1,%l7
-
-# 		u6 = (uint32) u6 >> 25
-# srl <u6=int64#5,25,>u6=int64#5
-# srl <u6=%i4,25,>u6=%i4
-srl %i4,25,%i4
-
-# u1 |= z1
-# or  <u1=int64#4,<z1=int64#1,>u1=int64#4
-# or  <u1=%i3,<z1=%i0,>u1=%i3
-or  %i3,%i0,%i3
-
-# 				z11 = (uint32) u11 << 7
-# sll <u11=int64#6,7,>z11=int64#1
-# sll <u11=%i5,7,>z11=%i0
-sll %i5,7,%i0
-
-# 						u12 = x15 + x14
-# add <x15=int64#24,<x14=int64#23,>u12=int64#7
-# add <x15=%l7,<x14=%l6,>u12=%g1
-add %l7,%l6,%g1
-
-# 				u11 = (uint32) u11 >> 25
-# srl <u11=int64#6,25,>u11=int64#6
-# srl <u11=%i5,25,>u11=%i5
-srl %i5,25,%i5
+# qhasm: y8 = x4 + x0
+# asm 1: add <x4=int64#1,<x0=int64#3,>y8=int64#10
+# asm 2: add <x4=%i0,<x0=%i2,>y8=%o0
+add %i0,%i2,%o0
+
+# qhasm: 						z3 = (uint32) y3 << 7
+# asm 1: sll <y3=int64#22,7,>z3=int64#23
+# asm 2: sll <y3=%l5,7,>z3=%l6
+sll %l5,7,%l6
+
+# qhasm: 		x9 ^= y9
+# asm 1: xor <x9=int64#15,<y9=int64#2,>x9=int64#2
+# asm 2: xor <x9=%o5,<y9=%i1,>x9=%i1
+xor %o5,%i1,%i1
+
+# qhasm: 						y3 = (uint32) y3 >> 25
+# asm 1: srl <y3=int64#22,25,>y3=int64#15
+# asm 2: srl <y3=%l5,25,>y3=%o5
+srl %l5,25,%o5
+
+# qhasm: 				y14 |= z14
+# asm 1: or  <y14=int64#6,<z14=int64#5,>y14=int64#5
+# asm 2: or  <y14=%i5,<z14=%i4,>y14=%i4
+or  %i5,%i4,%i4
+
+# qhasm: z8 = (uint32) y8 << 9
+# asm 1: sll <y8=int64#10,9,>z8=int64#6
+# asm 2: sll <y8=%o0,9,>z8=%i5
+sll %o0,9,%i5
+
+# qhasm: 		y13 = x9 + x5
+# asm 1: add <x9=int64#2,<x5=int64#11,>y13=int64#22
+# asm 2: add <x9=%i1,<x5=%o1,>y13=%l5
+add %i1,%o1,%l5
+
+# qhasm: y8 = (uint32) y8 >> 23
+# asm 1: srl <y8=int64#10,23,>y8=int64#10
+# asm 2: srl <y8=%o0,23,>y8=%o0
+srl %o0,23,%o0
+
+# qhasm: 				x14 ^= y14
+# asm 1: xor <x14=int64#20,<y14=int64#5,>x14=int64#5
+# asm 2: xor <x14=%l3,<y14=%i4,>x14=%i4
+xor %l3,%i4,%i4
+
+# qhasm: 						y3 |= z3
+# asm 1: or  <y3=int64#15,<z3=int64#23,>y3=int64#15
+# asm 2: or  <y3=%o5,<z3=%l6,>y3=%o5
+or  %o5,%l6,%o5
+
+# qhasm: 				y2 = x14 + x10
+# asm 1: add <x14=int64#5,<x10=int64#16,>y2=int64#20
+# asm 2: add <x14=%i4,<x10=%o7,>y2=%l3
+add %i4,%o7,%l3
+
+# qhasm: 		z13 = (uint32) y13 << 9
+# asm 1: sll <y13=int64#22,9,>z13=int64#23
+# asm 2: sll <y13=%l5,9,>z13=%l6
+sll %l5,9,%l6
+
+# qhasm: 						x3 ^= y3
+# asm 1: xor <x3=int64#9,<y3=int64#15,>x3=int64#9
+# asm 2: xor <x3=%g5,<y3=%o5,>x3=%g5
+xor %g5,%o5,%g5
+
+# qhasm: 		y13 = (uint32) y13 >> 23
+# asm 1: srl <y13=int64#22,23,>y13=int64#15
+# asm 2: srl <y13=%l5,23,>y13=%o5
+srl %l5,23,%o5
+
+# qhasm: y8 |= z8
+# asm 1: or  <y8=int64#10,<z8=int64#6,>y8=int64#6
+# asm 2: or  <y8=%o0,<z8=%i5,>y8=%i5
+or  %o0,%i5,%i5
+
+# qhasm: 				z2 = (uint32) y2 << 9
+# asm 1: sll <y2=int64#20,9,>z2=int64#10
+# asm 2: sll <y2=%l3,9,>z2=%o0
+sll %l3,9,%o0
+
+# qhasm: 						y7 = x3 + x15
+# asm 1: add <x3=int64#9,<x15=int64#21,>y7=int64#22
+# asm 2: add <x3=%g5,<x15=%l4,>y7=%l5
+add %g5,%l4,%l5
+
+# qhasm: 				y2 = (uint32) y2 >> 23
+# asm 1: srl <y2=int64#20,23,>y2=int64#20
+# asm 2: srl <y2=%l3,23,>y2=%l3
+srl %l3,23,%l3
+
+# qhasm: x8 ^= y8
+# asm 1: xor <x8=int64#14,<y8=int64#6,>x8=int64#6
+# asm 2: xor <x8=%o4,<y8=%i5,>x8=%i5
+xor %o4,%i5,%i5
+
+# qhasm: 		y13 |= z13
+# asm 1: or  <y13=int64#15,<z13=int64#23,>y13=int64#14
+# asm 2: or  <y13=%o5,<z13=%l6,>y13=%o4
+or  %o5,%l6,%o4
+
+# qhasm: y12 = x8 + x4
+# asm 1: add <x8=int64#6,<x4=int64#1,>y12=int64#15
+# asm 2: add <x8=%i5,<x4=%i0,>y12=%o5
+add %i5,%i0,%o5
+
+# qhasm: 						z7 = (uint32) y7 << 9
+# asm 1: sll <y7=int64#22,9,>z7=int64#23
+# asm 2: sll <y7=%l5,9,>z7=%l6
+sll %l5,9,%l6
+
+# qhasm: 		x13 ^= y13
+# asm 1: xor <x13=int64#19,<y13=int64#14,>x13=int64#19
+# asm 2: xor <x13=%l2,<y13=%o4,>x13=%l2
+xor %l2,%o4,%l2
+
+# qhasm: 						y7 = (uint32) y7 >> 23
+# asm 1: srl <y7=int64#22,23,>y7=int64#14
+# asm 2: srl <y7=%l5,23,>y7=%o4
+srl %l5,23,%o4
+
+# qhasm: 				y2 |= z2
+# asm 1: or  <y2=int64#20,<z2=int64#10,>y2=int64#10
+# asm 2: or  <y2=%l3,<z2=%o0,>y2=%o0
+or  %l3,%o0,%o0
+
+# qhasm: z12 = (uint32) y12 << 13
+# asm 1: sll <y12=int64#15,13,>z12=int64#20
+# asm 2: sll <y12=%o5,13,>z12=%l3
+sll %o5,13,%l3
+
+# qhasm: 		y1 = x13 + x9
+# asm 1: add <x13=int64#19,<x9=int64#2,>y1=int64#22
+# asm 2: add <x13=%l2,<x9=%i1,>y1=%l5
+add %l2,%i1,%l5
+
+# qhasm: y12 = (uint32) y12 >> 19
+# asm 1: srl <y12=int64#15,19,>y12=int64#15
+# asm 2: srl <y12=%o5,19,>y12=%o5
+srl %o5,19,%o5
+
+# qhasm: 				x2 ^= y2
+# asm 1: xor <x2=int64#8,<y2=int64#10,>x2=int64#8
+# asm 2: xor <x2=%g4,<y2=%o0,>x2=%g4
+xor %g4,%o0,%g4
+
+# qhasm: 						y7 |= z7
+# asm 1: or  <y7=int64#14,<z7=int64#23,>y7=int64#10
+# asm 2: or  <y7=%o4,<z7=%l6,>y7=%o0
+or  %o4,%l6,%o0
+
+# qhasm: 				y6 = x2 + x14
+# asm 1: add <x2=int64#8,<x14=int64#5,>y6=int64#14
+# asm 2: add <x2=%g4,<x14=%i4,>y6=%o4
+add %g4,%i4,%o4
+
+# qhasm: 		z1 = (uint32) y1 << 13
+# asm 1: sll <y1=int64#22,13,>z1=int64#23
+# asm 2: sll <y1=%l5,13,>z1=%l6
+sll %l5,13,%l6
+
+# qhasm: 						x7 ^= y7
+# asm 1: xor <x7=int64#13,<y7=int64#10,>x7=int64#10
+# asm 2: xor <x7=%o3,<y7=%o0,>x7=%o0
+xor %o3,%o0,%o0
+
+# qhasm: 		y1 = (uint32) y1 >> 19
+# asm 1: srl <y1=int64#22,19,>y1=int64#13
+# asm 2: srl <y1=%l5,19,>y1=%o3
+srl %l5,19,%o3
+
+# qhasm: y12 |= z12
+# asm 1: or  <y12=int64#15,<z12=int64#20,>y12=int64#15
+# asm 2: or  <y12=%o5,<z12=%l3,>y12=%o5
+or  %o5,%l3,%o5
+
+# qhasm: 				z6 = (uint32) y6 << 13
+# asm 1: sll <y6=int64#14,13,>z6=int64#20
+# asm 2: sll <y6=%o4,13,>z6=%l3
+sll %o4,13,%l3
+
+# qhasm: 						y11 = x7 + x3
+# asm 1: add <x7=int64#10,<x3=int64#9,>y11=int64#22
+# asm 2: add <x7=%o0,<x3=%g5,>y11=%l5
+add %o0,%g5,%l5
+
+# qhasm: 				y6 = (uint32) y6 >> 19
+# asm 1: srl <y6=int64#14,19,>y6=int64#14
+# asm 2: srl <y6=%o4,19,>y6=%o4
+srl %o4,19,%o4
+
+# qhasm: x12 ^= y12
+# asm 1: xor <x12=int64#18,<y12=int64#15,>x12=int64#15
+# asm 2: xor <x12=%l1,<y12=%o5,>x12=%o5
+xor %l1,%o5,%o5
+
+# qhasm: 		y1 |= z1
+# asm 1: or  <y1=int64#13,<z1=int64#23,>y1=int64#13
+# asm 2: or  <y1=%o3,<z1=%l6,>y1=%o3
+or  %o3,%l6,%o3
+
+# qhasm: y0 = x12 + x8
+# asm 1: add <x12=int64#15,<x8=int64#6,>y0=int64#18
+# asm 2: add <x12=%o5,<x8=%i5,>y0=%l1
+add %o5,%i5,%l1
+
+# qhasm: 						z11 = (uint32) y11 << 13
+# asm 1: sll <y11=int64#22,13,>z11=int64#23
+# asm 2: sll <y11=%l5,13,>z11=%l6
+sll %l5,13,%l6
+
+# qhasm: 		x1 ^= y1
+# asm 1: xor <x1=int64#7,<y1=int64#13,>x1=int64#7
+# asm 2: xor <x1=%g1,<y1=%o3,>x1=%g1
+xor %g1,%o3,%g1
+
+# qhasm: 						y11 = (uint32) y11 >> 19
+# asm 1: srl <y11=int64#22,19,>y11=int64#13
+# asm 2: srl <y11=%l5,19,>y11=%o3
+srl %l5,19,%o3
+
+# qhasm: 				y6 |= z6
+# asm 1: or  <y6=int64#14,<z6=int64#20,>y6=int64#14
+# asm 2: or  <y6=%o4,<z6=%l3,>y6=%o4
+or  %o4,%l3,%o4
+
+# qhasm: z0 = (uint32) y0 << 18
+# asm 1: sll <y0=int64#18,18,>z0=int64#20
+# asm 2: sll <y0=%l1,18,>z0=%l3
+sll %l1,18,%l3
+
+# qhasm: 		y5 = x1 + x13
+# asm 1: add <x1=int64#7,<x13=int64#19,>y5=int64#22
+# asm 2: add <x1=%g1,<x13=%l2,>y5=%l5
+add %g1,%l2,%l5
+
+# qhasm: y0 = (uint32) y0 >> 14
+# asm 1: srl <y0=int64#18,14,>y0=int64#18
+# asm 2: srl <y0=%l1,14,>y0=%l1
+srl %l1,14,%l1
+
+# qhasm: 				x6 ^= y6
+# asm 1: xor <x6=int64#12,<y6=int64#14,>x6=int64#12
+# asm 2: xor <x6=%o2,<y6=%o4,>x6=%o2
+xor %o2,%o4,%o2
+
+# qhasm: 						y11 |= z11
+# asm 1: or  <y11=int64#13,<z11=int64#23,>y11=int64#13
+# asm 2: or  <y11=%o3,<z11=%l6,>y11=%o3
+or  %o3,%l6,%o3
+
+# qhasm: 				y10 = x6 + x2
+# asm 1: add <x6=int64#12,<x2=int64#8,>y10=int64#14
+# asm 2: add <x6=%o2,<x2=%g4,>y10=%o4
+add %o2,%g4,%o4
+
+# qhasm: 		z5 = (uint32) y5 << 18
+# asm 1: sll <y5=int64#22,18,>z5=int64#23
+# asm 2: sll <y5=%l5,18,>z5=%l6
+sll %l5,18,%l6
+
+# qhasm: 						x11 ^= y11
+# asm 1: xor <x11=int64#17,<y11=int64#13,>x11=int64#13
+# asm 2: xor <x11=%l0,<y11=%o3,>x11=%o3
+xor %l0,%o3,%o3
+
+# qhasm: 		y5 = (uint32) y5 >> 14
+# asm 1: srl <y5=int64#22,14,>y5=int64#17
+# asm 2: srl <y5=%l5,14,>y5=%l0
+srl %l5,14,%l0
+
+# qhasm: y0 |= z0
+# asm 1: or  <y0=int64#18,<z0=int64#20,>y0=int64#18
+# asm 2: or  <y0=%l1,<z0=%l3,>y0=%l1
+or  %l1,%l3,%l1
+
+# qhasm: 				z10 = (uint32) y10 << 18
+# asm 1: sll <y10=int64#14,18,>z10=int64#20
+# asm 2: sll <y10=%o4,18,>z10=%l3
+sll %o4,18,%l3
+
+# qhasm: 						y15 = x11 + x7
+# asm 1: add <x11=int64#13,<x7=int64#10,>y15=int64#22
+# asm 2: add <x11=%o3,<x7=%o0,>y15=%l5
+add %o3,%o0,%l5
+
+# qhasm: 				y10 = (uint32) y10 >> 14
+# asm 1: srl <y10=int64#14,14,>y10=int64#14
+# asm 2: srl <y10=%o4,14,>y10=%o4
+srl %o4,14,%o4
+
+# qhasm: x0 ^= y0
+# asm 1: xor <x0=int64#3,<y0=int64#18,>x0=int64#3
+# asm 2: xor <x0=%i2,<y0=%l1,>x0=%i2
+xor %i2,%l1,%i2
+
+# qhasm: 		y5 |= z5
+# asm 1: or  <y5=int64#17,<z5=int64#23,>y5=int64#17
+# asm 2: or  <y5=%l0,<z5=%l6,>y5=%l0
+or  %l0,%l6,%l0
+
+# qhasm: u1 = x0 + x3
+# asm 1: add <x0=int64#3,<x3=int64#9,>u1=int64#18
+# asm 2: add <x0=%i2,<x3=%g5,>u1=%l1
+add %i2,%g5,%l1
+
+# qhasm: 						z15 = (uint32) y15 << 18
+# asm 1: sll <y15=int64#22,18,>z15=int64#23
+# asm 2: sll <y15=%l5,18,>z15=%l6
+sll %l5,18,%l6
+
+# qhasm: 		x5 ^= y5
+# asm 1: xor <x5=int64#11,<y5=int64#17,>x5=int64#11
+# asm 2: xor <x5=%o1,<y5=%l0,>x5=%o1
+xor %o1,%l0,%o1
+
+# qhasm: 						y15 = (uint32) y15 >> 14
+# asm 1: srl <y15=int64#22,14,>y15=int64#17
+# asm 2: srl <y15=%l5,14,>y15=%l0
+srl %l5,14,%l0
+
+# qhasm: 				y10 |= z10
+# asm 1: or  <y10=int64#14,<z10=int64#20,>y10=int64#14
+# asm 2: or  <y10=%o4,<z10=%l3,>y10=%o4
+or  %o4,%l3,%o4
+
+# qhasm: z1 = (uint32) u1 << 7
+# asm 1: sll <u1=int64#18,7,>z1=int64#20
+# asm 2: sll <u1=%l1,7,>z1=%l3
+sll %l1,7,%l3
+
+# qhasm: 		u6 = x5 + x4
+# asm 1: add <x5=int64#11,<x4=int64#1,>u6=int64#22
+# asm 2: add <x5=%o1,<x4=%i0,>u6=%l5
+add %o1,%i0,%l5
+
+# qhasm: u1 = (uint32) u1 >> 25
+# asm 1: srl <u1=int64#18,25,>u1=int64#18
+# asm 2: srl <u1=%l1,25,>u1=%l1
+srl %l1,25,%l1
+
+# qhasm: 				x10 ^= y10
+# asm 1: xor <x10=int64#16,<y10=int64#14,>x10=int64#16
+# asm 2: xor <x10=%o7,<y10=%o4,>x10=%o7
+xor %o7,%o4,%o7
+
+# qhasm: 						y15 |= z15
+# asm 1: or  <y15=int64#17,<z15=int64#23,>y15=int64#14
+# asm 2: or  <y15=%l0,<z15=%l6,>y15=%o4
+or  %l0,%l6,%o4
+
+# qhasm: 				u11 = x10 + x9
+# asm 1: add <x10=int64#16,<x9=int64#2,>u11=int64#17
+# asm 2: add <x10=%o7,<x9=%i1,>u11=%l0
+add %o7,%i1,%l0
+
+# qhasm: 		z6 = (uint32) u6 << 7
+# asm 1: sll <u6=int64#22,7,>z6=int64#23
+# asm 2: sll <u6=%l5,7,>z6=%l6
+sll %l5,7,%l6
+
+# qhasm: 						x15 ^= y15
+# asm 1: xor <x15=int64#21,<y15=int64#14,>x15=int64#21
+# asm 2: xor <x15=%l4,<y15=%o4,>x15=%l4
+xor %l4,%o4,%l4
+
+# qhasm: 		u6 = (uint32) u6 >> 25
+# asm 1: srl <u6=int64#22,25,>u6=int64#14
+# asm 2: srl <u6=%l5,25,>u6=%o4
+srl %l5,25,%o4
+
+# qhasm: u1 |= z1
+# asm 1: or  <u1=int64#18,<z1=int64#20,>u1=int64#18
+# asm 2: or  <u1=%l1,<z1=%l3,>u1=%l1
+or  %l1,%l3,%l1
+
+# qhasm: 				z11 = (uint32) u11 << 7
+# asm 1: sll <u11=int64#17,7,>z11=int64#20
+# asm 2: sll <u11=%l0,7,>z11=%l3
+sll %l0,7,%l3
+
+# qhasm: 						u12 = x15 + x14
+# asm 1: add <x15=int64#21,<x14=int64#5,>u12=int64#22
+# asm 2: add <x15=%l4,<x14=%i4,>u12=%l5
+add %l4,%i4,%l5
+
+# qhasm: 				u11 = (uint32) u11 >> 25
+# asm 1: srl <u11=int64#17,25,>u11=int64#17
+# asm 2: srl <u11=%l0,25,>u11=%l0
+srl %l0,25,%l0
+
+# qhasm: 		u6 |= z6
+# asm 1: or  <u6=int64#14,<z6=int64#23,>u6=int64#14
+# asm 2: or  <u6=%o4,<z6=%l6,>u6=%o4
+or  %o4,%l6,%o4
+
+# qhasm: x1 ^= u1
+# asm 1: xor <x1=int64#7,<u1=int64#18,>x1=int64#7
+# asm 2: xor <x1=%g1,<u1=%l1,>x1=%g1
+xor %g1,%l1,%g1
+
+# qhasm: 						z12 = (uint32) u12 << 7
+# asm 1: sll <u12=int64#22,7,>z12=int64#18
+# asm 2: sll <u12=%l5,7,>z12=%l1
+sll %l5,7,%l1
+
+# qhasm: 		x6 ^= u6
+# asm 1: xor <x6=int64#12,<u6=int64#14,>x6=int64#12
+# asm 2: xor <x6=%o2,<u6=%o4,>x6=%o2
+xor %o2,%o4,%o2
+
+# qhasm: 						u12 = (uint32) u12 >> 25
+# asm 1: srl <u12=int64#22,25,>u12=int64#14
+# asm 2: srl <u12=%l5,25,>u12=%o4
+srl %l5,25,%o4
+
+# qhasm: 				u11 |= z11
+# asm 1: or  <u11=int64#17,<z11=int64#20,>u11=int64#17
+# asm 2: or  <u11=%l0,<z11=%l3,>u11=%l0
+or  %l0,%l3,%l0
+
+# qhasm: u2 = x1 + x0
+# asm 1: add <x1=int64#7,<x0=int64#3,>u2=int64#20
+# asm 2: add <x1=%g1,<x0=%i2,>u2=%l3
+add %g1,%i2,%l3
+
+# qhasm: 		u7 = x6 + x5
+# asm 1: add <x6=int64#12,<x5=int64#11,>u7=int64#22
+# asm 2: add <x6=%o2,<x5=%o1,>u7=%l5
+add %o2,%o1,%l5
+
+# qhasm: z2 = (uint32) u2 << 9
+# asm 1: sll <u2=int64#20,9,>z2=int64#23
+# asm 2: sll <u2=%l3,9,>z2=%l6
+sll %l3,9,%l6
+
+# qhasm: 				x11 ^= u11
+# asm 1: xor <x11=int64#13,<u11=int64#17,>x11=int64#17
+# asm 2: xor <x11=%o3,<u11=%l0,>x11=%l0
+xor %o3,%l0,%l0
+
+# qhasm: u2 = (uint32) u2 >> 23
+# asm 1: srl <u2=int64#20,23,>u2=int64#13
+# asm 2: srl <u2=%l3,23,>u2=%o3
+srl %l3,23,%o3
+
+# qhasm: 						u12 |= z12
+# asm 1: or  <u12=int64#14,<z12=int64#18,>u12=int64#14
+# asm 2: or  <u12=%o4,<z12=%l1,>u12=%o4
+or  %o4,%l1,%o4
+
+# qhasm: 		z7 = (uint32) u7 << 9
+# asm 1: sll <u7=int64#22,9,>z7=int64#20
+# asm 2: sll <u7=%l5,9,>z7=%l3
+sll %l5,9,%l3
+
+# qhasm: 				u8 = x11 + x10
+# asm 1: add <x11=int64#17,<x10=int64#16,>u8=int64#24
+# asm 2: add <x11=%l0,<x10=%o7,>u8=%l7
+add %l0,%o7,%l7
+
+# qhasm: 		u7 = (uint32) u7 >> 23
+# asm 1: srl <u7=int64#22,23,>u7=int64#22
+# asm 2: srl <u7=%l5,23,>u7=%l5
+srl %l5,23,%l5
+
+# qhasm: 						x12 ^= u12
+# asm 1: xor <x12=int64#15,<u12=int64#14,>x12=int64#18
+# asm 2: xor <x12=%o5,<u12=%o4,>x12=%l1
+xor %o5,%o4,%l1
+
+# qhasm: 				z8 = (uint32) u8 << 9
+# asm 1: sll <u8=int64#24,9,>z8=int64#14
+# asm 2: sll <u8=%l7,9,>z8=%o4
+sll %l7,9,%o4
+
+# qhasm: u2 |= z2
+# asm 1: or  <u2=int64#13,<z2=int64#23,>u2=int64#13
+# asm 2: or  <u2=%o3,<z2=%l6,>u2=%o3
+or  %o3,%l6,%o3
+
+# qhasm: 				u8 = (uint32) u8 >> 23
+# asm 1: srl <u8=int64#24,23,>u8=int64#15
+# asm 2: srl <u8=%l7,23,>u8=%o5
+srl %l7,23,%o5
+
+# qhasm: 						u13 = x12 + x15
+# asm 1: add <x12=int64#18,<x15=int64#21,>u13=int64#23
+# asm 2: add <x12=%l1,<x15=%l4,>u13=%l6
+add %l1,%l4,%l6
+
+# qhasm: 		u7 |= z7
+# asm 1: or  <u7=int64#22,<z7=int64#20,>u7=int64#20
+# asm 2: or  <u7=%l5,<z7=%l3,>u7=%l3
+or  %l5,%l3,%l3
+
+# qhasm: x2 ^= u2
+# asm 1: xor <x2=int64#8,<u2=int64#13,>x2=int64#8
+# asm 2: xor <x2=%g4,<u2=%o3,>x2=%g4
+xor %g4,%o3,%g4
+
+# qhasm: 						z13 = (uint32) u13 << 9
+# asm 1: sll <u13=int64#23,9,>z13=int64#22
+# asm 2: sll <u13=%l6,9,>z13=%l5
+sll %l6,9,%l5
+
+# qhasm: 		x7 ^= u7
+# asm 1: xor <x7=int64#10,<u7=int64#20,>x7=int64#13
+# asm 2: xor <x7=%o0,<u7=%l3,>x7=%o3
+xor %o0,%l3,%o3
+
+# qhasm: 						u13 = (uint32) u13 >> 23
+# asm 1: srl <u13=int64#23,23,>u13=int64#10
+# asm 2: srl <u13=%l6,23,>u13=%o0
+srl %l6,23,%o0
+
+# qhasm: 				u8 |= z8
+# asm 1: or  <u8=int64#15,<z8=int64#14,>u8=int64#14
+# asm 2: or  <u8=%o5,<z8=%o4,>u8=%o4
+or  %o5,%o4,%o4
+
+# qhasm: u3 = x2 + x1
+# asm 1: add <x2=int64#8,<x1=int64#7,>u3=int64#15
+# asm 2: add <x2=%g4,<x1=%g1,>u3=%o5
+add %g4,%g1,%o5
+
+# qhasm: 		u4 = x7 + x6
+# asm 1: add <x7=int64#13,<x6=int64#12,>u4=int64#20
+# asm 2: add <x7=%o3,<x6=%o2,>u4=%l3
+add %o3,%o2,%l3
+
+# qhasm: z3 = (uint32) u3 << 13
+# asm 1: sll <u3=int64#15,13,>z3=int64#23
+# asm 2: sll <u3=%o5,13,>z3=%l6
+sll %o5,13,%l6
+
+# qhasm: 				x8 ^= u8
+# asm 1: xor <x8=int64#6,<u8=int64#14,>x8=int64#14
+# asm 2: xor <x8=%i5,<u8=%o4,>x8=%o4
+xor %i5,%o4,%o4
+
+# qhasm: 		z4 = (uint32) u4 << 13
+# asm 1: sll <u4=int64#20,13,>z4=int64#6
+# asm 2: sll <u4=%l3,13,>z4=%i5
+sll %l3,13,%i5
+
+# qhasm: 						u13 |= z13
+# asm 1: or  <u13=int64#10,<z13=int64#22,>u13=int64#10
+# asm 2: or  <u13=%o0,<z13=%l5,>u13=%o0
+or  %o0,%l5,%o0
+
+# qhasm: u3 = (uint32) u3 >> 19
+# asm 1: srl <u3=int64#15,19,>u3=int64#15
+# asm 2: srl <u3=%o5,19,>u3=%o5
+srl %o5,19,%o5
+
+# qhasm: 				u9 = x8 + x11
+# asm 1: add <x8=int64#14,<x11=int64#17,>u9=int64#22
+# asm 2: add <x8=%o4,<x11=%l0,>u9=%l5
+add %o4,%l0,%l5
+
+# qhasm: 		u4 = (uint32) u4 >> 19
+# asm 1: srl <u4=int64#20,19,>u4=int64#20
+# asm 2: srl <u4=%l3,19,>u4=%l3
+srl %l3,19,%l3
+
+# qhasm: 						x13 ^= u13
+# asm 1: xor <x13=int64#19,<u13=int64#10,>x13=int64#19
+# asm 2: xor <x13=%l2,<u13=%o0,>x13=%l2
+xor %l2,%o0,%l2
+
+# qhasm: 				z9 = (uint32) u9 << 13
+# asm 1: sll <u9=int64#22,13,>z9=int64#24
+# asm 2: sll <u9=%l5,13,>z9=%l7
+sll %l5,13,%l7
+
+# qhasm: u3 |= z3
+# asm 1: or  <u3=int64#15,<z3=int64#23,>u3=int64#10
+# asm 2: or  <u3=%o5,<z3=%l6,>u3=%o0
+or  %o5,%l6,%o0
+
+# qhasm: 				u9 = (uint32) u9 >> 19
+# asm 1: srl <u9=int64#22,19,>u9=int64#15
+# asm 2: srl <u9=%l5,19,>u9=%o5
+srl %l5,19,%o5
+
+# qhasm: 						u14 = x13 + x12
+# asm 1: add <x13=int64#19,<x12=int64#18,>u14=int64#22
+# asm 2: add <x13=%l2,<x12=%l1,>u14=%l5
+add %l2,%l1,%l5
+
+# qhasm: 		u4 |= z4
+# asm 1: or  <u4=int64#20,<z4=int64#6,>u4=int64#6
+# asm 2: or  <u4=%l3,<z4=%i5,>u4=%i5
+or  %l3,%i5,%i5
+
+# qhasm: x3 ^= u3
+# asm 1: xor <x3=int64#9,<u3=int64#10,>x3=int64#9
+# asm 2: xor <x3=%g5,<u3=%o0,>x3=%g5
+xor %g5,%o0,%g5
+
+# qhasm: 						z14 = (uint32) u14 << 13
+# asm 1: sll <u14=int64#22,13,>z14=int64#20
+# asm 2: sll <u14=%l5,13,>z14=%l3
+sll %l5,13,%l3
+
+# qhasm: 		x4 ^= u4
+# asm 1: xor <x4=int64#1,<u4=int64#6,>x4=int64#10
+# asm 2: xor <x4=%i0,<u4=%i5,>x4=%o0
+xor %i0,%i5,%o0
+
+# qhasm: 						u14 = (uint32) u14 >> 19
+# asm 1: srl <u14=int64#22,19,>u14=int64#1
+# asm 2: srl <u14=%l5,19,>u14=%i0
+srl %l5,19,%i0
+
+# qhasm: 				u9 |= z9
+# asm 1: or  <u9=int64#15,<z9=int64#24,>u9=int64#6
+# asm 2: or  <u9=%o5,<z9=%l7,>u9=%i5
+or  %o5,%l7,%i5
+
+# qhasm: u0 = x3 + x2
+# asm 1: add <x3=int64#9,<x2=int64#8,>u0=int64#22
+# asm 2: add <x3=%g5,<x2=%g4,>u0=%l5
+add %g5,%g4,%l5
+
+# qhasm: 		u5 = x4 + x7
+# asm 1: add <x4=int64#10,<x7=int64#13,>u5=int64#23
+# asm 2: add <x4=%o0,<x7=%o3,>u5=%l6
+add %o0,%o3,%l6
+
+# qhasm: z0 = (uint32) u0 << 18
+# asm 1: sll <u0=int64#22,18,>z0=int64#24
+# asm 2: sll <u0=%l5,18,>z0=%l7
+sll %l5,18,%l7
+
+# qhasm: 				x9 ^= u9
+# asm 1: xor <x9=int64#2,<u9=int64#6,>x9=int64#15
+# asm 2: xor <x9=%i1,<u9=%i5,>x9=%o5
+xor %i1,%i5,%o5
+
+# qhasm: 		z5 = (uint32) u5 << 18
+# asm 1: sll <u5=int64#23,18,>z5=int64#2
+# asm 2: sll <u5=%l6,18,>z5=%i1
+sll %l6,18,%i1
+
+# qhasm: 						u14 |= z14
+# asm 1: or  <u14=int64#1,<z14=int64#20,>u14=int64#1
+# asm 2: or  <u14=%i0,<z14=%l3,>u14=%i0
+or  %i0,%l3,%i0
+
+# qhasm: u0 = (uint32) u0 >> 14
+# asm 1: srl <u0=int64#22,14,>u0=int64#6
+# asm 2: srl <u0=%l5,14,>u0=%i5
+srl %l5,14,%i5
+
+# qhasm: 				u10 = x9 + x8
+# asm 1: add <x9=int64#15,<x8=int64#14,>u10=int64#22
+# asm 2: add <x9=%o5,<x8=%o4,>u10=%l5
+add %o5,%o4,%l5
+
+# qhasm: 		u5 = (uint32) u5 >> 14
+# asm 1: srl <u5=int64#23,14,>u5=int64#23
+# asm 2: srl <u5=%l6,14,>u5=%l6
+srl %l6,14,%l6
+
+# qhasm: 						x14 ^= u14
+# asm 1: xor <x14=int64#5,<u14=int64#1,>x14=int64#20
+# asm 2: xor <x14=%i4,<u14=%i0,>x14=%l3
+xor %i4,%i0,%l3
+
+# qhasm: 				z10 = (uint32) u10 << 18
+# asm 1: sll <u10=int64#22,18,>z10=int64#1
+# asm 2: sll <u10=%l5,18,>z10=%i0
+sll %l5,18,%i0
+
+# qhasm: u0 |= z0
+# asm 1: or  <u0=int64#6,<z0=int64#24,>u0=int64#5
+# asm 2: or  <u0=%i5,<z0=%l7,>u0=%i4
+or  %i5,%l7,%i4
+
+# qhasm: 				u10 = (uint32) u10 >> 14
+# asm 1: srl <u10=int64#22,14,>u10=int64#6
+# asm 2: srl <u10=%l5,14,>u10=%i5
+srl %l5,14,%i5
+
+# qhasm: 						u15 = x14 + x13
+# asm 1: add <x14=int64#20,<x13=int64#19,>u15=int64#22
+# asm 2: add <x14=%l3,<x13=%l2,>u15=%l5
+add %l3,%l2,%l5
+
+# qhasm: 		u5 |= z5
+# asm 1: or  <u5=int64#23,<z5=int64#2,>u5=int64#2
+# asm 2: or  <u5=%l6,<z5=%i1,>u5=%i1
+or  %l6,%i1,%i1
+
+# qhasm: x0 ^= u0
+# asm 1: xor <x0=int64#3,<u0=int64#5,>x0=int64#3
+# asm 2: xor <x0=%i2,<u0=%i4,>x0=%i2
+xor %i2,%i4,%i2
 
-# 		u6 |= z6
-# or  <u6=int64#5,<z6=int64#3,>u6=int64#5
-# or  <u6=%i4,<z6=%i2,>u6=%i4
-or  %i4,%i2,%i4
-
-# x1 ^= u1
-# xor <x1=int64#10,<u1=int64#4,>x1=int64#10
-# xor <x1=%o0,<u1=%i3,>x1=%o0
-xor %o0,%i3,%o0
-
-# 						z12 = (uint32) u12 << 7
-# sll <u12=int64#7,7,>z12=int64#3
-# sll <u12=%g1,7,>z12=%i2
-sll %g1,7,%i2
-
-# 		x6 ^= u6
-# xor <x6=int64#15,<u6=int64#5,>x6=int64#15
-# xor <x6=%o5,<u6=%i4,>x6=%o5
-xor %o5,%i4,%o5
-
-# 						u12 = (uint32) u12 >> 25
-# srl <u12=int64#7,25,>u12=int64#7
-# srl <u12=%g1,25,>u12=%g1
-srl %g1,25,%g1
-
-# 				u11 |= z11
-# or  <u11=int64#6,<z11=int64#1,>u11=int64#5
-# or  <u11=%i5,<z11=%i0,>u11=%i4
-or  %i5,%i0,%i4
-
-# u2 = x1 + x0
-# add <x1=int64#10,<x0=int64#9,>u2=int64#4
-# add <x1=%o0,<x0=%g5,>u2=%i3
-add %o0,%g5,%i3
-
-# 		u7 = x6 + x5
-# add <x6=int64#15,<x5=int64#14,>u7=int64#6
-# add <x6=%o5,<x5=%o4,>u7=%i5
-add %o5,%o4,%i5
-
-# z2 = (uint32) u2 << 9
-# sll <u2=int64#4,9,>z2=int64#1
-# sll <u2=%i3,9,>z2=%i0
-sll %i3,9,%i0
-
-# 				x11 ^= u11
-# xor <x11=int64#20,<u11=int64#5,>x11=int64#20
-# xor <x11=%l3,<u11=%i4,>x11=%l3
-xor %l3,%i4,%l3
-
-# u2 = (uint32) u2 >> 23
-# srl <u2=int64#4,23,>u2=int64#5
-# srl <u2=%i3,23,>u2=%i4
-srl %i3,23,%i4
-
-# 						u12 |= z12
-# or  <u12=int64#7,<z12=int64#3,>u12=int64#4
-# or  <u12=%g1,<z12=%i2,>u12=%i3
-or  %g1,%i2,%i3
-
-# 		z7 = (uint32) u7 << 9
-# sll <u7=int64#6,9,>z7=int64#3
-# sll <u7=%i5,9,>z7=%i2
-sll %i5,9,%i2
-
-# 				u8 = x11 + x10
-# add <x11=int64#20,<x10=int64#19,>u8=int64#7
-# add <x11=%l3,<x10=%l2,>u8=%g1
-add %l3,%l2,%g1
-
-# 		u7 = (uint32) u7 >> 23
-# srl <u7=int64#6,23,>u7=int64#6
-# srl <u7=%i5,23,>u7=%i5
-srl %i5,23,%i5
-
-# 						x12 ^= u12
-# xor <x12=int64#21,<u12=int64#4,>x12=int64#21
-# xor <x12=%l4,<u12=%i3,>x12=%l4
-xor %l4,%i3,%l4
-
-# 				z8 = (uint32) u8 << 9
-# sll <u8=int64#7,9,>z8=int64#4
-# sll <u8=%g1,9,>z8=%i3
-sll %g1,9,%i3
-
-# u2 |= z2
-# or  <u2=int64#5,<z2=int64#1,>u2=int64#1
-# or  <u2=%i4,<z2=%i0,>u2=%i0
-or  %i4,%i0,%i0
-
-# 				u8 = (uint32) u8 >> 23
-# srl <u8=int64#7,23,>u8=int64#7
-# srl <u8=%g1,23,>u8=%g1
-srl %g1,23,%g1
-
-# 						u13 = x12 + x15
-# add <x12=int64#21,<x15=int64#24,>u13=int64#8
-# add <x12=%l4,<x15=%l7,>u13=%g4
-add %l4,%l7,%g4
-
-# 		u7 |= z7
-# or  <u7=int64#6,<z7=int64#3,>u7=int64#3
-# or  <u7=%i5,<z7=%i2,>u7=%i2
-or  %i5,%i2,%i2
-
-# x2 ^= u2
-# xor <x2=int64#11,<u2=int64#1,>x2=int64#11
-# xor <x2=%o1,<u2=%i0,>x2=%o1
-xor %o1,%i0,%o1
-
-# 						z13 = (uint32) u13 << 9
-# sll <u13=int64#8,9,>z13=int64#5
-# sll <u13=%g4,9,>z13=%i4
-sll %g4,9,%i4
-
-# 		x7 ^= u7
-# xor <x7=int64#16,<u7=int64#3,>x7=int64#16
-# xor <x7=%o7,<u7=%i2,>x7=%o7
-xor %o7,%i2,%o7
-
-# 						u13 = (uint32) u13 >> 23
-# srl <u13=int64#8,23,>u13=int64#8
-# srl <u13=%g4,23,>u13=%g4
-srl %g4,23,%g4
-
-# 				u8 |= z8
-# or  <u8=int64#7,<z8=int64#4,>u8=int64#3
-# or  <u8=%g1,<z8=%i3,>u8=%i2
-or  %g1,%i3,%i2
-
-# u3 = x2 + x1
-# add <x2=int64#11,<x1=int64#10,>u3=int64#4
-# add <x2=%o1,<x1=%o0,>u3=%i3
-add %o1,%o0,%i3
-
-# 		u4 = x7 + x6
-# add <x7=int64#16,<x6=int64#15,>u4=int64#6
-# add <x7=%o7,<x6=%o5,>u4=%i5
-add %o7,%o5,%i5
-
-# z3 = (uint32) u3 << 13
-# sll <u3=int64#4,13,>z3=int64#1
-# sll <u3=%i3,13,>z3=%i0
-sll %i3,13,%i0
-
-# 				x8 ^= u8
-# xor <x8=int64#17,<u8=int64#3,>x8=int64#17
-# xor <x8=%l0,<u8=%i2,>x8=%l0
-xor %l0,%i2,%l0
-
-# 		z4 = (uint32) u4 << 13
-# sll <u4=int64#6,13,>z4=int64#3
-# sll <u4=%i5,13,>z4=%i2
-sll %i5,13,%i2
-
-# 						u13 |= z13
-# or  <u13=int64#8,<z13=int64#5,>u13=int64#8
-# or  <u13=%g4,<z13=%i4,>u13=%g4
-or  %g4,%i4,%g4
-
-# u3 = (uint32) u3 >> 19
-# srl <u3=int64#4,19,>u3=int64#5
-# srl <u3=%i3,19,>u3=%i4
-srl %i3,19,%i4
-
-# 				u9 = x8 + x11
-# add <x8=int64#17,<x11=int64#20,>u9=int64#7
-# add <x8=%l0,<x11=%l3,>u9=%g1
-add %l0,%l3,%g1
-
-# 		u4 = (uint32) u4 >> 19
-# srl <u4=int64#6,19,>u4=int64#6
-# srl <u4=%i5,19,>u4=%i5
-srl %i5,19,%i5
-
-# 						x13 ^= u13
-# xor <x13=int64#22,<u13=int64#8,>x13=int64#22
-# xor <x13=%l5,<u13=%g4,>x13=%l5
-xor %l5,%g4,%l5
-
-# 				z9 = (uint32) u9 << 13
-# sll <u9=int64#7,13,>z9=int64#4
-# sll <u9=%g1,13,>z9=%i3
-sll %g1,13,%i3
-
-# u3 |= z3
-# or  <u3=int64#5,<z3=int64#1,>u3=int64#1
-# or  <u3=%i4,<z3=%i0,>u3=%i0
-or  %i4,%i0,%i0
-
-# 				u9 = (uint32) u9 >> 19
-# srl <u9=int64#7,19,>u9=int64#7
-# srl <u9=%g1,19,>u9=%g1
-srl %g1,19,%g1
-
-# 						u14 = x13 + x12
-# add <x13=int64#22,<x12=int64#21,>u14=int64#8
-# add <x13=%l5,<x12=%l4,>u14=%g4
-add %l5,%l4,%g4
-
-# 		u4 |= z4
-# or  <u4=int64#6,<z4=int64#3,>u4=int64#3
-# or  <u4=%i5,<z4=%i2,>u4=%i2
-or  %i5,%i2,%i2
-
-# x3 ^= u3
-# xor <x3=int64#12,<u3=int64#1,>x3=int64#12
-# xor <x3=%o2,<u3=%i0,>x3=%o2
-xor %o2,%i0,%o2
-
-# 						z14 = (uint32) u14 << 13
-# sll <u14=int64#8,13,>z14=int64#5
-# sll <u14=%g4,13,>z14=%i4
-sll %g4,13,%i4
-
-# 		x4 ^= u4
-# xor <x4=int64#13,<u4=int64#3,>x4=int64#13
-# xor <x4=%o3,<u4=%i2,>x4=%o3
-xor %o3,%i2,%o3
-
-# 						u14 = (uint32) u14 >> 19
-# srl <u14=int64#8,19,>u14=int64#8
-# srl <u14=%g4,19,>u14=%g4
-srl %g4,19,%g4
-
-# 				u9 |= z9
-# or  <u9=int64#7,<z9=int64#4,>u9=int64#3
-# or  <u9=%g1,<z9=%i3,>u9=%i2
-or  %g1,%i3,%i2
-
-# u0 = x3 + x2
-# add <x3=int64#12,<x2=int64#11,>u0=int64#4
-# add <x3=%o2,<x2=%o1,>u0=%i3
-add %o2,%o1,%i3
-
-# 		u5 = x4 + x7
-# add <x4=int64#13,<x7=int64#16,>u5=int64#6
-# add <x4=%o3,<x7=%o7,>u5=%i5
-add %o3,%o7,%i5
-
-# z0 = (uint32) u0 << 18
-# sll <u0=int64#4,18,>z0=int64#1
-# sll <u0=%i3,18,>z0=%i0
-sll %i3,18,%i0
-
-# 				x9 ^= u9
-# xor <x9=int64#18,<u9=int64#3,>x9=int64#18
-# xor <x9=%l1,<u9=%i2,>x9=%l1
-xor %l1,%i2,%l1
-
-# 		z5 = (uint32) u5 << 18
-# sll <u5=int64#6,18,>z5=int64#3
-# sll <u5=%i5,18,>z5=%i2
-sll %i5,18,%i2
-
-# 						u14 |= z14
-# or  <u14=int64#8,<z14=int64#5,>u14=int64#8
-# or  <u14=%g4,<z14=%i4,>u14=%g4
-or  %g4,%i4,%g4
-
-# u0 = (uint32) u0 >> 14
-# srl <u0=int64#4,14,>u0=int64#5
-# srl <u0=%i3,14,>u0=%i4
-srl %i3,14,%i4
-
-# 				u10 = x9 + x8
-# add <x9=int64#18,<x8=int64#17,>u10=int64#7
-# add <x9=%l1,<x8=%l0,>u10=%g1
-add %l1,%l0,%g1
-
-# 		u5 = (uint32) u5 >> 14
-# srl <u5=int64#6,14,>u5=int64#6
-# srl <u5=%i5,14,>u5=%i5
-srl %i5,14,%i5
-
-# 						x14 ^= u14
-# xor <x14=int64#23,<u14=int64#8,>x14=int64#23
-# xor <x14=%l6,<u14=%g4,>x14=%l6
-xor %l6,%g4,%l6
-
-# 				z10 = (uint32) u10 << 18
-# sll <u10=int64#7,18,>z10=int64#4
-# sll <u10=%g1,18,>z10=%i3
-sll %g1,18,%i3
-
-# u0 |= z0
-# or  <u0=int64#5,<z0=int64#1,>u0=int64#1
-# or  <u0=%i4,<z0=%i0,>u0=%i0
-or  %i4,%i0,%i0
-
-# 				u10 = (uint32) u10 >> 14
-# srl <u10=int64#7,14,>u10=int64#5
-# srl <u10=%g1,14,>u10=%i4
-srl %g1,14,%i4
-
-# 						u15 = x14 + x13
-# add <x14=int64#23,<x13=int64#22,>u15=int64#7
-# add <x14=%l6,<x13=%l5,>u15=%g1
-add %l6,%l5,%g1
-
-# 		u5 |= z5
-# or  <u5=int64#6,<z5=int64#3,>u5=int64#3
-# or  <u5=%i5,<z5=%i2,>u5=%i2
-or  %i5,%i2,%i2
-
-# x0 ^= u0
-# xor <x0=int64#9,<u0=int64#1,>x0=int64#9
-# xor <x0=%g5,<u0=%i0,>x0=%g5
-xor %g5,%i0,%g5
-
-# 						z15 = (uint32) u15 << 18
-# sll <u15=int64#7,18,>z15=int64#1
-# sll <u15=%g1,18,>z15=%i0
-sll %g1,18,%i0
-
-# 		x5 ^= u5
-# xor <x5=int64#14,<u5=int64#3,>x5=int64#14
-# xor <x5=%o4,<u5=%i2,>x5=%o4
-xor %o4,%i2,%o4
-
-# 						u15 = (uint32) u15 >> 14
-# srl <u15=int64#7,14,>u15=int64#6
-# srl <u15=%g1,14,>u15=%i5
-srl %g1,14,%i5
-
-# flags i -= 2
-# subcc <i=int64#2,2,>i=int64#2
-# subcc <i=%i1,2,>i=%i1
-subcc %i1,2,%i1
-
-# 				u10 |= z10
-# or  <u10=int64#5,<z10=int64#4,>u10=int64#3
-# or  <u10=%i4,<z10=%i3,>u10=%i2
-or  %i4,%i3,%i2
-
-# 						u15 |= z15
-# or  <u15=int64#6,<z15=int64#1,>u15=int64#1
-# or  <u15=%i5,<z15=%i0,>u15=%i0
+# qhasm: 						z15 = (uint32) u15 << 18
+# asm 1: sll <u15=int64#22,18,>z15=int64#5
+# asm 2: sll <u15=%l5,18,>z15=%i4
+sll %l5,18,%i4
+
+# qhasm: 		x5 ^= u5
+# asm 1: xor <x5=int64#11,<u5=int64#2,>x5=int64#11
+# asm 2: xor <x5=%o1,<u5=%i1,>x5=%o1
+xor %o1,%i1,%o1
+
+# qhasm: 						u15 = (uint32) u15 >> 14
+# asm 1: srl <u15=int64#22,14,>u15=int64#2
+# asm 2: srl <u15=%l5,14,>u15=%i1
+srl %l5,14,%i1
+
+# qhasm:                  unsigned>? i -= 2
+# asm 1: subcc <i=int64#4,2,>i=int64#4
+# asm 2: subcc <i=%i3,2,>i=%i3
+subcc %i3,2,%i3
+
+# qhasm: 				u10 |= z10
+# asm 1: or  <u10=int64#6,<z10=int64#1,>u10=int64#1
+# asm 2: or  <u10=%i5,<z10=%i0,>u10=%i0
 or  %i5,%i0,%i0
 
-# 				x10 ^= u10
-# xor <x10=int64#19,<u10=int64#3,>x10=int64#19
-# xor <x10=%l2,<u10=%i2,>x10=%l2
-xor %l2,%i2,%l2
-
-# 						x15 ^= u15
-# xor <x15=int64#24,<u15=int64#1,>x15=int64#24
-# xor <x15=%l7,<u15=%i0,>x15=%l7
-xor %l7,%i0,%l7
+# qhasm: 						u15 |= z15
+# asm 1: or  <u15=int64#2,<z15=int64#5,>u15=int64#2
+# asm 2: or  <u15=%i1,<z15=%i4,>u15=%i1
+or  %i1,%i4,%i1
+
+# qhasm: 				x10 ^= u10
+# asm 1: xor <x10=int64#16,<u10=int64#1,>x10=int64#16
+# asm 2: xor <x10=%o7,<u10=%i0,>x10=%o7
+xor %o7,%i0,%o7
+
+# qhasm: 						x15 ^= u15
+# asm 1: xor <x15=int64#21,<u15=int64#2,>x15=int64#21
+# asm 2: xor <x15=%l4,<u15=%i1,>x15=%l4
+xor %l4,%i1,%l4
 
-# goto mainloop if unsigned>
+# qhasm: goto mainloop if unsigned>
 bgu,pt %xcc,._mainloop
 nop
 
-#   x = x_stack
-# ldx [%fp+2023-<x_stack=stack64#5],>x=int64#1
-# ldx [%fp+2023-<x_stack=96],>x=%i0
-ldx [%fp+2023-96],%i0
-
-#   q0 = *(uint32 *) (x + 0)
-# lduw [<x=int64#1+0],>q0=int64#2
-# lduw [<x=%i0+0],>q0=%i1
+# qhasm:   x = x_stack
+# asm 1: ldx [%fp+2023-<x_stack=stack64#5],>x=int64#1
+# asm 2: ldx [%fp+2023-<x_stack=32],>x=%i0
+ldx [%fp+2023-32],%i0
+
+# qhasm:   q0 = *(uint32 *) (x + 0)
+# asm 1: lduw [<x=int64#1+0],>q0=int64#2
+# asm 2: lduw [<x=%i0+0],>q0=%i1
 lduw [%i0+0],%i1
 
-#   q1 = *(uint32 *) (x + 4)
-# lduw [<x=int64#1+4],>q1=int64#4
-# lduw [<x=%i0+4],>q1=%i3
+# qhasm:   q1 = *(uint32 *) (x + 4)
+# asm 1: lduw [<x=int64#1+4],>q1=int64#4
+# asm 2: lduw [<x=%i0+4],>q1=%i3
 lduw [%i0+4],%i3
 
-#   q2 = *(uint32 *) (x + 8)
-# lduw [<x=int64#1+8],>q2=int64#5
-# lduw [<x=%i0+8],>q2=%i4
+# qhasm:   q2 = *(uint32 *) (x + 8)
+# asm 1: lduw [<x=int64#1+8],>q2=int64#5
+# asm 2: lduw [<x=%i0+8],>q2=%i4
 lduw [%i0+8],%i4
 
-#   q3 = *(uint32 *) (x + 12)
-# lduw [<x=int64#1+12],>q3=int64#7
-# lduw [<x=%i0+12],>q3=%g1
-lduw [%i0+12],%g1
-
-#   x0 += q0
-# add <x0=int64#9,<q0=int64#2,>x0=int64#3
-# add <x0=%g5,<q0=%i1,>x0=%i2
-add %g5,%i1,%i2
-
-#   q4 = *(uint32 *) (x + 16)
-# lduw [<x=int64#1+16],>q4=int64#2
-# lduw [<x=%i0+16],>q4=%i1
-lduw [%i0+16],%i1
-
-#   x1 += q1
-# add <x1=int64#10,<q1=int64#4,>x1=int64#4
-# add <x1=%o0,<q1=%i3,>x1=%i3
-add %o0,%i3,%i3
-
-#   q5 = *(uint32 *) (x + 20)
-# lduw [<x=int64#1+20],>q5=int64#9
-# lduw [<x=%i0+20],>q5=%g5
-lduw [%i0+20],%g5
-
-#   x2 += q2
-# add <x2=int64#11,<q2=int64#5,>x2=int64#6
-# add <x2=%o1,<q2=%i4,>x2=%i5
-add %o1,%i4,%i5
-
-#   q6 = *(uint32 *) (x + 24)
-# lduw [<x=int64#1+24],>q6=int64#5
-# lduw [<x=%i0+24],>q6=%i4
-lduw [%i0+24],%i4
-
-#   x3 += q3
-# add <x3=int64#12,<q3=int64#7,>x3=int64#7
-# add <x3=%o2,<q3=%g1,>x3=%g1
-add %o2,%g1,%g1
-
-#   q7 = *(uint32 *) (x + 28)
-# lduw [<x=int64#1+28],>q7=int64#11
-# lduw [<x=%i0+28],>q7=%o1
-lduw [%i0+28],%o1
-
-#   x4 += q4
-# add <x4=int64#13,<q4=int64#2,>x4=int64#8
-# add <x4=%o3,<q4=%i1,>x4=%g4
-add %o3,%i1,%g4
-
-#   q8 = *(uint32 *) (x + 32)
-# lduw [<x=int64#1+32],>q8=int64#2
-# lduw [<x=%i0+32],>q8=%i1
-lduw [%i0+32],%i1
-
-#   x5 += q5
-# add <x5=int64#14,<q5=int64#9,>x5=int64#9
-# add <x5=%o4,<q5=%g5,>x5=%g5
-add %o4,%g5,%g5
-
-#   q9 = *(uint32 *) (x + 36)
-# lduw [<x=int64#1+36],>q9=int64#14
-# lduw [<x=%i0+36],>q9=%o4
-lduw [%i0+36],%o4
-
-#   x6 += q6
-# add <x6=int64#15,<q6=int64#5,>x6=int64#10
-# add <x6=%o5,<q6=%i4,>x6=%o0
-add %o5,%i4,%o0
-
-#   q10 = *(uint32 *) (x + 40)
-# lduw [<x=int64#1+40],>q10=int64#5
-# lduw [<x=%i0+40],>q10=%i4
-lduw [%i0+40],%i4
-
-#   x7 += q7
-# add <x7=int64#16,<q7=int64#11,>x7=int64#11
-# add <x7=%o7,<q7=%o1,>x7=%o1
-add %o7,%o1,%o1
-
-#   q11 = *(uint32 *) (x + 44)
-# lduw [<x=int64#1+44],>q11=int64#15
-# lduw [<x=%i0+44],>q11=%o5
-lduw [%i0+44],%o5
-
-#   x8 += q8
-# add <x8=int64#17,<q8=int64#2,>x8=int64#12
-# add <x8=%l0,<q8=%i1,>x8=%o2
-add %l0,%i1,%o2
-
-#   q8 += 1
-# add <q8=int64#2,1,>q8=int64#2
-# add <q8=%i1,1,>q8=%i1
-add %i1,1,%i1
-
-#   *(uint32 *) (x + 32) = q8
-# stw <q8=int64#2,[<x=int64#1+32]
-# stw <q8=%i1,[<x=%i0+32]
-stw %i1,[%i0+32]
-
-#   q8 = (uint64) q8 >> 32
-# srlx <q8=int64#2,32,>q8=int64#2
-# srlx <q8=%i1,32,>q8=%i1
-srlx %i1,32,%i1
-
-#   q12 = *(uint32 *) (x + 48)
-# lduw [<x=int64#1+48],>q12=int64#16
-# lduw [<x=%i0+48],>q12=%o7
-lduw [%i0+48],%o7
-
-#   x9 += q9
-# add <x9=int64#18,<q9=int64#14,>x9=int64#13
-# add <x9=%l1,<q9=%o4,>x9=%o3
-add %l1,%o4,%o3
-
-#   q9 += q8
-# add <q9=int64#14,<q8=int64#2,>q9=int64#2
-# add <q9=%o4,<q8=%i1,>q9=%i1
-add %o4,%i1,%i1
-
-#   *(uint32 *) (x + 36) = q9
-# stw <q9=int64#2,[<x=int64#1+36]
-# stw <q9=%i1,[<x=%i0+36]
-stw %i1,[%i0+36]
-
-#   q13 = *(uint32 *) (x + 52)
-# lduw [<x=int64#1+52],>q13=int64#2
-# lduw [<x=%i0+52],>q13=%i1
-lduw [%i0+52],%i1
-
-#   x10 += q10
-# add <x10=int64#19,<q10=int64#5,>x10=int64#14
-# add <x10=%l2,<q10=%i4,>x10=%o4
-add %l2,%i4,%o4
-
-#   q14 = *(uint32 *) (x + 56)
-# lduw [<x=int64#1+56],>q14=int64#5
-# lduw [<x=%i0+56],>q14=%i4
-lduw [%i0+56],%i4
-
-#   x11 += q11
-# add <x11=int64#20,<q11=int64#15,>x11=int64#15
-# add <x11=%l3,<q11=%o5,>x11=%o5
-add %l3,%o5,%o5
-
-#   q15 = *(uint32 *) (x + 60)
-# lduw [<x=int64#1+60],>q15=int64#19
-# lduw [<x=%i0+60],>q15=%l2
-lduw [%i0+60],%l2
-
-#   x12 += q12
-# add <x12=int64#21,<q12=int64#16,>x12=int64#16
-# add <x12=%l4,<q12=%o7,>x12=%o7
+# qhasm:   q3 = *(uint32 *) (x + 12)
+# asm 1: lduw [<x=int64#1+12],>q3=int64#6
+# asm 2: lduw [<x=%i0+12],>q3=%i5
+lduw [%i0+12],%i5
+
+# qhasm:   x0 += q0
+# asm 1: add <x0=int64#3,<q0=int64#2,>x0=int64#2
+# asm 2: add <x0=%i2,<q0=%i1,>x0=%i1
+add %i2,%i1,%i1
+
+# qhasm:   q4 = *(uint32 *) (x + 16)
+# asm 1: lduw [<x=int64#1+16],>q4=int64#3
+# asm 2: lduw [<x=%i0+16],>q4=%i2
+lduw [%i0+16],%i2
+
+# qhasm:   x1 += q1
+# asm 1: add <x1=int64#7,<q1=int64#4,>x1=int64#4
+# asm 2: add <x1=%g1,<q1=%i3,>x1=%i3
+add %g1,%i3,%i3
+
+# qhasm:   q5 = *(uint32 *) (x + 20)
+# asm 1: lduw [<x=int64#1+20],>q5=int64#7
+# asm 2: lduw [<x=%i0+20],>q5=%g1
+lduw [%i0+20],%g1
+
+# qhasm:   x2 += q2
+# asm 1: add <x2=int64#8,<q2=int64#5,>x2=int64#5
+# asm 2: add <x2=%g4,<q2=%i4,>x2=%i4
+add %g4,%i4,%i4
+
+# qhasm:   q6 = *(uint32 *) (x + 24)
+# asm 1: lduw [<x=int64#1+24],>q6=int64#8
+# asm 2: lduw [<x=%i0+24],>q6=%g4
+lduw [%i0+24],%g4
+
+# qhasm:   x3 += q3
+# asm 1: add <x3=int64#9,<q3=int64#6,>x3=int64#6
+# asm 2: add <x3=%g5,<q3=%i5,>x3=%i5
+add %g5,%i5,%i5
+
+# qhasm:   q7 = *(uint32 *) (x + 28)
+# asm 1: lduw [<x=int64#1+28],>q7=int64#9
+# asm 2: lduw [<x=%i0+28],>q7=%g5
+lduw [%i0+28],%g5
+
+# qhasm:   x4 += q4
+# asm 1: add <x4=int64#10,<q4=int64#3,>x4=int64#3
+# asm 2: add <x4=%o0,<q4=%i2,>x4=%i2
+add %o0,%i2,%i2
+
+# qhasm:   q8 = *(uint32 *) (x + 32)
+# asm 1: lduw [<x=int64#1+32],>q8=int64#10
+# asm 2: lduw [<x=%i0+32],>q8=%o0
+lduw [%i0+32],%o0
+
+# qhasm:   x5 += q5
+# asm 1: add <x5=int64#11,<q5=int64#7,>x5=int64#7
+# asm 2: add <x5=%o1,<q5=%g1,>x5=%g1
+add %o1,%g1,%g1
+
+# qhasm:   q9 = *(uint32 *) (x + 36)
+# asm 1: lduw [<x=int64#1+36],>q9=int64#11
+# asm 2: lduw [<x=%i0+36],>q9=%o1
+lduw [%i0+36],%o1
+
+# qhasm:   x6 += q6
+# asm 1: add <x6=int64#12,<q6=int64#8,>x6=int64#8
+# asm 2: add <x6=%o2,<q6=%g4,>x6=%g4
+add %o2,%g4,%g4
+
+# qhasm:   q10 = *(uint32 *) (x + 40)
+# asm 1: lduw [<x=int64#1+40],>q10=int64#12
+# asm 2: lduw [<x=%i0+40],>q10=%o2
+lduw [%i0+40],%o2
+
+# qhasm:   x7 += q7
+# asm 1: add <x7=int64#13,<q7=int64#9,>x7=int64#9
+# asm 2: add <x7=%o3,<q7=%g5,>x7=%g5
+add %o3,%g5,%g5
+
+# qhasm:   q11 = *(uint32 *) (x + 44)
+# asm 1: lduw [<x=int64#1+44],>q11=int64#13
+# asm 2: lduw [<x=%i0+44],>q11=%o3
+lduw [%i0+44],%o3
+
+# qhasm:   x8 += q8
+# asm 1: add <x8=int64#14,<q8=int64#10,>x8=int64#14
+# asm 2: add <x8=%o4,<q8=%o0,>x8=%o4
+add %o4,%o0,%o4
+
+# qhasm:   q8 += 1
+# asm 1: add <q8=int64#10,1,>q8=int64#10
+# asm 2: add <q8=%o0,1,>q8=%o0
+add %o0,1,%o0
+
+# qhasm:   *(uint32 *) (x + 32) = q8
+# asm 1: stw <q8=int64#10,[<x=int64#1+32]
+# asm 2: stw <q8=%o0,[<x=%i0+32]
+stw %o0,[%i0+32]
+
+# qhasm:   q8 = (uint64) q8 >> 32
+# asm 1: srlx <q8=int64#10,32,>q8=int64#10
+# asm 2: srlx <q8=%o0,32,>q8=%o0
+srlx %o0,32,%o0
+
+# qhasm:   q12 = *(uint32 *) (x + 48)
+# asm 1: lduw [<x=int64#1+48],>q12=int64#22
+# asm 2: lduw [<x=%i0+48],>q12=%l5
+lduw [%i0+48],%l5
+
+# qhasm:   x9 += q9
+# asm 1: add <x9=int64#15,<q9=int64#11,>x9=int64#15
+# asm 2: add <x9=%o5,<q9=%o1,>x9=%o5
+add %o5,%o1,%o5
+
+# qhasm:   q9 += q8
+# asm 1: add <q9=int64#11,<q8=int64#10,>q9=int64#10
+# asm 2: add <q9=%o1,<q8=%o0,>q9=%o0
+add %o1,%o0,%o0
+
+# qhasm:   *(uint32 *) (x + 36) = q9
+# asm 1: stw <q9=int64#10,[<x=int64#1+36]
+# asm 2: stw <q9=%o0,[<x=%i0+36]
+stw %o0,[%i0+36]
+
+# qhasm:   q13 = *(uint32 *) (x + 52)
+# asm 1: lduw [<x=int64#1+52],>q13=int64#10
+# asm 2: lduw [<x=%i0+52],>q13=%o0
+lduw [%i0+52],%o0
+
+# qhasm:   x10 += q10
+# asm 1: add <x10=int64#16,<q10=int64#12,>x10=int64#11
+# asm 2: add <x10=%o7,<q10=%o2,>x10=%o1
+add %o7,%o2,%o1
+
+# qhasm:   q14 = *(uint32 *) (x + 56)
+# asm 1: lduw [<x=int64#1+56],>q14=int64#12
+# asm 2: lduw [<x=%i0+56],>q14=%o2
+lduw [%i0+56],%o2
+
+# qhasm:   x11 += q11
+# asm 1: add <x11=int64#17,<q11=int64#13,>x11=int64#13
+# asm 2: add <x11=%l0,<q11=%o3,>x11=%o3
+add %l0,%o3,%o3
+
+# qhasm:   q15 = *(uint32 *) (x + 60)
+# asm 1: lduw [<x=int64#1+60],>q15=int64#16
+# asm 2: lduw [<x=%i0+60],>q15=%o7
+lduw [%i0+60],%o7
+
+# qhasm:   x12 += q12
+# asm 1: add <x12=int64#18,<q12=int64#22,>x12=int64#17
+# asm 2: add <x12=%l1,<q12=%l5,>x12=%l0
+add %l1,%l5,%l0
+
+# qhasm:   x13 += q13
+# asm 1: add <x13=int64#19,<q13=int64#10,>x13=int64#10
+# asm 2: add <x13=%l2,<q13=%o0,>x13=%o0
+add %l2,%o0,%o0
+
+# qhasm:   x14 += q14
+# asm 1: add <x14=int64#20,<q14=int64#12,>x14=int64#12
+# asm 2: add <x14=%l3,<q14=%o2,>x14=%o2
+add %l3,%o2,%o2
+
+# qhasm:   x15 += q15
+# asm 1: add <x15=int64#21,<q15=int64#16,>x15=int64#16
+# asm 2: add <x15=%l4,<q15=%o7,>x15=%o7
 add %l4,%o7,%o7
 
-#   x13 += q13
-# add <x13=int64#22,<q13=int64#2,>x13=int64#17
-# add <x13=%l5,<q13=%i1,>x13=%l0
-add %l5,%i1,%l0
-
-#   x14 += q14
-# add <x14=int64#23,<q14=int64#5,>x14=int64#18
-# add <x14=%l6,<q14=%i4,>x14=%l1
-add %l6,%i4,%l1
-
-#   x15 += q15
-# add <x15=int64#24,<q15=int64#19,>x15=int64#19
-# add <x15=%l7,<q15=%l2,>x15=%l2
-add %l7,%l2,%l2
-
-#   m = m_stack
-# ldx [%fp+2023-<m_stack=stack64#4],>m=int64#2
-# ldx [%fp+2023-<m_stack=88],>m=%i1
-ldx [%fp+2023-88],%i1
-
-#   m0 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m0=int64#5
-# lduwa [<m=%i1] 0x88,>m0=%i4
-lduwa [%i1] 0x88,%i4
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   m1 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m1=int64#20
-# lduwa [<m=%i1] 0x88,>m1=%l3
-lduwa [%i1] 0x88,%l3
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   m2 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m2=int64#21
-# lduwa [<m=%i1] 0x88,>m2=%l4
-lduwa [%i1] 0x88,%l4
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   m3 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m3=int64#22
-# lduwa [<m=%i1] 0x88,>m3=%l5
-lduwa [%i1] 0x88,%l5
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   x0 ^= m0
-# xor <x0=int64#3,<m0=int64#5,>x0=int64#3
-# xor <x0=%i2,<m0=%i4,>x0=%i2
-xor %i2,%i4,%i2
-
-#   m4 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m4=int64#23
-# lduwa [<m=%i1] 0x88,>m4=%l6
-lduwa [%i1] 0x88,%l6
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   x1 ^= m1
-# xor <x1=int64#4,<m1=int64#20,>x1=int64#5
-# xor <x1=%i3,<m1=%l3,>x1=%i4
-xor %i3,%l3,%i4
-
-#   m5 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m5=int64#4
-# lduwa [<m=%i1] 0x88,>m5=%i3
-lduwa [%i1] 0x88,%i3
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   x2 ^= m2
-# xor <x2=int64#6,<m2=int64#21,>x2=int64#6
-# xor <x2=%i5,<m2=%l4,>x2=%i5
-xor %i5,%l4,%i5
-
-#   m6 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m6=int64#20
-# lduwa [<m=%i1] 0x88,>m6=%l3
-lduwa [%i1] 0x88,%l3
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   x3 ^= m3
-# xor <x3=int64#7,<m3=int64#22,>x3=int64#7
-# xor <x3=%g1,<m3=%l5,>x3=%g1
-xor %g1,%l5,%g1
-
-#   m7 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m7=int64#21
-# lduwa [<m=%i1] 0x88,>m7=%l4
-lduwa [%i1] 0x88,%l4
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   x4 ^= m4
-# xor <x4=int64#8,<m4=int64#23,>x4=int64#8
-# xor <x4=%g4,<m4=%l6,>x4=%g4
-xor %g4,%l6,%g4
-
-#   m8 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m8=int64#22
-# lduwa [<m=%i1] 0x88,>m8=%l5
-lduwa [%i1] 0x88,%l5
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   x5 ^= m5
-# xor <x5=int64#9,<m5=int64#4,>x5=int64#9
-# xor <x5=%g5,<m5=%i3,>x5=%g5
-xor %g5,%i3,%g5
-
-#   m9 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m9=int64#4
-# lduwa [<m=%i1] 0x88,>m9=%i3
-lduwa [%i1] 0x88,%i3
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
+# qhasm:   m = m_stack
+# asm 1: ldx [%fp+2023-<m_stack=stack64#4],>m=int64#18
+# asm 2: ldx [%fp+2023-<m_stack=24],>m=%l1
+ldx [%fp+2023-24],%l1
+
+# qhasm:   m0 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m0=int64#19
+# asm 2: lduwa [<m=%l1] 0x88,>m0=%l2
+lduwa [%l1] 0x88,%l2
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   m1 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m1=int64#20
+# asm 2: lduwa [<m=%l1] 0x88,>m1=%l3
+lduwa [%l1] 0x88,%l3
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   m2 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m2=int64#21
+# asm 2: lduwa [<m=%l1] 0x88,>m2=%l4
+lduwa [%l1] 0x88,%l4
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   m3 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m3=int64#22
+# asm 2: lduwa [<m=%l1] 0x88,>m3=%l5
+lduwa [%l1] 0x88,%l5
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x0 ^= m0
+# asm 1: xor <x0=int64#2,<m0=int64#19,>x0=int64#2
+# asm 2: xor <x0=%i1,<m0=%l2,>x0=%i1
+xor %i1,%l2,%i1
+
+# qhasm:   m4 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m4=int64#19
+# asm 2: lduwa [<m=%l1] 0x88,>m4=%l2
+lduwa [%l1] 0x88,%l2
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x1 ^= m1
+# asm 1: xor <x1=int64#4,<m1=int64#20,>x1=int64#4
+# asm 2: xor <x1=%i3,<m1=%l3,>x1=%i3
+xor %i3,%l3,%i3
+
+# qhasm:   m5 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m5=int64#20
+# asm 2: lduwa [<m=%l1] 0x88,>m5=%l3
+lduwa [%l1] 0x88,%l3
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x2 ^= m2
+# asm 1: xor <x2=int64#5,<m2=int64#21,>x2=int64#5
+# asm 2: xor <x2=%i4,<m2=%l4,>x2=%i4
+xor %i4,%l4,%i4
+
+# qhasm:   m6 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m6=int64#21
+# asm 2: lduwa [<m=%l1] 0x88,>m6=%l4
+lduwa [%l1] 0x88,%l4
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x3 ^= m3
+# asm 1: xor <x3=int64#6,<m3=int64#22,>x3=int64#22
+# asm 2: xor <x3=%i5,<m3=%l5,>x3=%l5
+xor %i5,%l5,%l5
+
+# qhasm:   m7 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m7=int64#6
+# asm 2: lduwa [<m=%l1] 0x88,>m7=%i5
+lduwa [%l1] 0x88,%i5
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x4 ^= m4
+# asm 1: xor <x4=int64#3,<m4=int64#19,>x4=int64#3
+# asm 2: xor <x4=%i2,<m4=%l2,>x4=%i2
+xor %i2,%l2,%i2
+
+# qhasm:   m8 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m8=int64#19
+# asm 2: lduwa [<m=%l1] 0x88,>m8=%l2
+lduwa [%l1] 0x88,%l2
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x5 ^= m5
+# asm 1: xor <x5=int64#7,<m5=int64#20,>x5=int64#7
+# asm 2: xor <x5=%g1,<m5=%l3,>x5=%g1
+xor %g1,%l3,%g1
+
+# qhasm:   m9 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m9=int64#20
+# asm 2: lduwa [<m=%l1] 0x88,>m9=%l3
+lduwa [%l1] 0x88,%l3
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x6 ^= m6
+# asm 1: xor <x6=int64#8,<m6=int64#21,>x6=int64#8
+# asm 2: xor <x6=%g4,<m6=%l4,>x6=%g4
+xor %g4,%l4,%g4
+
+# qhasm:   m10 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m10=int64#21
+# asm 2: lduwa [<m=%l1] 0x88,>m10=%l4
+lduwa [%l1] 0x88,%l4
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x7 ^= m7
+# asm 1: xor <x7=int64#9,<m7=int64#6,>x7=int64#9
+# asm 2: xor <x7=%g5,<m7=%i5,>x7=%g5
+xor %g5,%i5,%g5
+
+# qhasm:   m11 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m11=int64#6
+# asm 2: lduwa [<m=%l1] 0x88,>m11=%i5
+lduwa [%l1] 0x88,%i5
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x8 ^= m8
+# asm 1: xor <x8=int64#14,<m8=int64#19,>x8=int64#14
+# asm 2: xor <x8=%o4,<m8=%l2,>x8=%o4
+xor %o4,%l2,%o4
+
+# qhasm:   m12 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m12=int64#19
+# asm 2: lduwa [<m=%l1] 0x88,>m12=%l2
+lduwa [%l1] 0x88,%l2
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x9 ^= m9
+# asm 1: xor <x9=int64#15,<m9=int64#20,>x9=int64#15
+# asm 2: xor <x9=%o5,<m9=%l3,>x9=%o5
+xor %o5,%l3,%o5
+
+# qhasm:   m13 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m13=int64#20
+# asm 2: lduwa [<m=%l1] 0x88,>m13=%l3
+lduwa [%l1] 0x88,%l3
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x10 ^= m10
+# asm 1: xor <x10=int64#11,<m10=int64#21,>x10=int64#11
+# asm 2: xor <x10=%o1,<m10=%l4,>x10=%o1
+xor %o1,%l4,%o1
 
-#   x6 ^= m6
-# xor <x6=int64#10,<m6=int64#20,>x6=int64#10
-# xor <x6=%o0,<m6=%l3,>x6=%o0
+# qhasm:   m14 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m14=int64#21
+# asm 2: lduwa [<m=%l1] 0x88,>m14=%l4
+lduwa [%l1] 0x88,%l4
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#18
+# asm 2: add <m=%l1,4,>m=%l1
+add %l1,4,%l1
+
+# qhasm:   x11 ^= m11
+# asm 1: xor <x11=int64#13,<m11=int64#6,>x11=int64#13
+# asm 2: xor <x11=%o3,<m11=%i5,>x11=%o3
+xor %o3,%i5,%o3
+
+# qhasm:   m15 = *(swapendian uint32 *) m
+# asm 1: lduwa [<m=int64#18] 0x88,>m15=int64#23
+# asm 2: lduwa [<m=%l1] 0x88,>m15=%l6
+lduwa [%l1] 0x88,%l6
+
+# qhasm:   m += 4
+# asm 1: add <m=int64#18,4,>m=int64#6
+# asm 2: add <m=%l1,4,>m=%i5
+add %l1,4,%i5
+
+# qhasm:   x12 ^= m12
+# asm 1: xor <x12=int64#17,<m12=int64#19,>x12=int64#17
+# asm 2: xor <x12=%l0,<m12=%l2,>x12=%l0
+xor %l0,%l2,%l0
+
+# qhasm:   x13 ^= m13
+# asm 1: xor <x13=int64#10,<m13=int64#20,>x13=int64#10
+# asm 2: xor <x13=%o0,<m13=%l3,>x13=%o0
 xor %o0,%l3,%o0
 
-#   m10 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m10=int64#20
-# lduwa [<m=%i1] 0x88,>m10=%l3
-lduwa [%i1] 0x88,%l3
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
-
-#   x7 ^= m7
-# xor <x7=int64#11,<m7=int64#21,>x7=int64#11
-# xor <x7=%o1,<m7=%l4,>x7=%o1
-xor %o1,%l4,%o1
-
-#   m11 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m11=int64#21
-# lduwa [<m=%i1] 0x88,>m11=%l4
-lduwa [%i1] 0x88,%l4
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
+# qhasm:   x14 ^= m14
+# asm 1: xor <x14=int64#12,<m14=int64#21,>x14=int64#12
+# asm 2: xor <x14=%o2,<m14=%l4,>x14=%o2
+xor %o2,%l4,%o2
+
+# qhasm:   x15 ^= m15
+# asm 1: xor <x15=int64#16,<m15=int64#23,>x15=int64#16
+# asm 2: xor <x15=%o7,<m15=%l6,>x15=%o7
+xor %o7,%l6,%o7
+
+# qhasm:   out = out_stack
+# asm 1: ldx [%fp+2023-<out_stack=stack64#3],>out=int64#18
+# asm 2: ldx [%fp+2023-<out_stack=16],>out=%l1
+ldx [%fp+2023-16],%l1
+
+# qhasm:   *(swapendian uint32 *) out = x0
+# asm 1: stwa <x0=int64#2,[<out=int64#18] 0x88
+# asm 2: stwa <x0=%i1,[<out=%l1] 0x88
+stwa %i1,[%l1] 0x88
+
+# qhasm:   out += 4
+# asm 1: add <out=int64#18,4,>out=int64#2
+# asm 2: add <out=%l1,4,>out=%i1
+add %l1,4,%i1
+
+# qhasm:   *(swapendian uint32 *) out = x1
+# asm 1: stwa <x1=int64#4,[<out=int64#2] 0x88
+# asm 2: stwa <x1=%i3,[<out=%i1] 0x88
+stwa %i3,[%i1] 0x88
+
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
+add %i1,4,%i1
+
+# qhasm:   *(swapendian uint32 *) out = x2
+# asm 1: stwa <x2=int64#5,[<out=int64#2] 0x88
+# asm 2: stwa <x2=%i4,[<out=%i1] 0x88
+stwa %i4,[%i1] 0x88
 
-#   x8 ^= m8
-# xor <x8=int64#12,<m8=int64#22,>x8=int64#12
-# xor <x8=%o2,<m8=%l5,>x8=%o2
-xor %o2,%l5,%o2
-
-#   m12 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m12=int64#22
-# lduwa [<m=%i1] 0x88,>m12=%l5
-lduwa [%i1] 0x88,%l5
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   x9 ^= m9
-# xor <x9=int64#13,<m9=int64#4,>x9=int64#13
-# xor <x9=%o3,<m9=%i3,>x9=%o3
-xor %o3,%i3,%o3
-
-#   m13 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m13=int64#23
-# lduwa [<m=%i1] 0x88,>m13=%l6
-lduwa [%i1] 0x88,%l6
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
-add %i1,4,%i1
+# qhasm:   *(swapendian uint32 *) out = x3
+# asm 1: stwa <x3=int64#22,[<out=int64#2] 0x88
+# asm 2: stwa <x3=%l5,[<out=%i1] 0x88
+stwa %l5,[%i1] 0x88
 
-#   x10 ^= m10
-# xor <x10=int64#14,<m10=int64#20,>x10=int64#14
-# xor <x10=%o4,<m10=%l3,>x10=%o4
-xor %o4,%l3,%o4
-
-#   m14 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m14=int64#20
-# lduwa [<m=%i1] 0x88,>m14=%l3
-lduwa [%i1] 0x88,%l3
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#2
-# add <m=%i1,4,>m=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   x11 ^= m11
-# xor <x11=int64#15,<m11=int64#21,>x11=int64#15
-# xor <x11=%o5,<m11=%l4,>x11=%o5
-xor %o5,%l4,%o5
-
-#   m15 = *(swapendian uint32 *) m
-# lduwa [<m=int64#2] 0x88,>m15=int64#21
-# lduwa [<m=%i1] 0x88,>m15=%l4
-lduwa [%i1] 0x88,%l4
-
-#   m += 4
-# add <m=int64#2,4,>m=int64#4
-# add <m=%i1,4,>m=%i3
-add %i1,4,%i3
-
-#   x12 ^= m12
-# xor <x12=int64#16,<m12=int64#22,>x12=int64#16
-# xor <x12=%o7,<m12=%l5,>x12=%o7
-xor %o7,%l5,%o7
-
-#   x13 ^= m13
-# xor <x13=int64#17,<m13=int64#23,>x13=int64#17
-# xor <x13=%l0,<m13=%l6,>x13=%l0
-xor %l0,%l6,%l0
-
-#   x14 ^= m14
-# xor <x14=int64#18,<m14=int64#20,>x14=int64#18
-# xor <x14=%l1,<m14=%l3,>x14=%l1
-xor %l1,%l3,%l1
-
-#   x15 ^= m15
-# xor <x15=int64#19,<m15=int64#21,>x15=int64#19
-# xor <x15=%l2,<m15=%l4,>x15=%l2
-xor %l2,%l4,%l2
-
-#   out = out_stack
-# ldx [%fp+2023-<out_stack=stack64#3],>out=int64#2
-# ldx [%fp+2023-<out_stack=80],>out=%i1
-ldx [%fp+2023-80],%i1
-
-#   *(swapendian uint32 *) out = x0
-# stwa <x0=int64#3,[<out=int64#2] 0x88
-# stwa <x0=%i2,[<out=%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x4
+# asm 1: stwa <x4=int64#3,[<out=int64#2] 0x88
+# asm 2: stwa <x4=%i2,[<out=%i1] 0x88
 stwa %i2,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
-add %i1,4,%i1
-
-#   *(swapendian uint32 *) out = x1
-# stwa <x1=int64#5,[<out=int64#2] 0x88
-# stwa <x1=%i4,[<out=%i1] 0x88
-stwa %i4,[%i1] 0x88
-
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
-add %i1,4,%i1
-
-#   *(swapendian uint32 *) out = x2
-# stwa <x2=int64#6,[<out=int64#2] 0x88
-# stwa <x2=%i5,[<out=%i1] 0x88
-stwa %i5,[%i1] 0x88
-
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x3
-# stwa <x3=int64#7,[<out=int64#2] 0x88
-# stwa <x3=%g1,[<out=%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x5
+# asm 1: stwa <x5=int64#7,[<out=int64#2] 0x88
+# asm 2: stwa <x5=%g1,[<out=%i1] 0x88
 stwa %g1,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x4
-# stwa <x4=int64#8,[<out=int64#2] 0x88
-# stwa <x4=%g4,[<out=%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x6
+# asm 1: stwa <x6=int64#8,[<out=int64#2] 0x88
+# asm 2: stwa <x6=%g4,[<out=%i1] 0x88
 stwa %g4,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x5
-# stwa <x5=int64#9,[<out=int64#2] 0x88
-# stwa <x5=%g5,[<out=%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x7
+# asm 1: stwa <x7=int64#9,[<out=int64#2] 0x88
+# asm 2: stwa <x7=%g5,[<out=%i1] 0x88
 stwa %g5,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x6
-# stwa <x6=int64#10,[<out=int64#2] 0x88
-# stwa <x6=%o0,[<out=%i1] 0x88
-stwa %o0,[%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x8
+# asm 1: stwa <x8=int64#14,[<out=int64#2] 0x88
+# asm 2: stwa <x8=%o4,[<out=%i1] 0x88
+stwa %o4,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x7
-# stwa <x7=int64#11,[<out=int64#2] 0x88
-# stwa <x7=%o1,[<out=%i1] 0x88
-stwa %o1,[%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x9
+# asm 1: stwa <x9=int64#15,[<out=int64#2] 0x88
+# asm 2: stwa <x9=%o5,[<out=%i1] 0x88
+stwa %o5,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x8
-# stwa <x8=int64#12,[<out=int64#2] 0x88
-# stwa <x8=%o2,[<out=%i1] 0x88
-stwa %o2,[%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x10
+# asm 1: stwa <x10=int64#11,[<out=int64#2] 0x88
+# asm 2: stwa <x10=%o1,[<out=%i1] 0x88
+stwa %o1,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x9
-# stwa <x9=int64#13,[<out=int64#2] 0x88
-# stwa <x9=%o3,[<out=%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x11
+# asm 1: stwa <x11=int64#13,[<out=int64#2] 0x88
+# asm 2: stwa <x11=%o3,[<out=%i1] 0x88
 stwa %o3,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x10
-# stwa <x10=int64#14,[<out=int64#2] 0x88
-# stwa <x10=%o4,[<out=%i1] 0x88
-stwa %o4,[%i1] 0x88
-
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
-add %i1,4,%i1
-
-#   *(swapendian uint32 *) out = x11
-# stwa <x11=int64#15,[<out=int64#2] 0x88
-# stwa <x11=%o5,[<out=%i1] 0x88
-stwa %o5,[%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x12
+# asm 1: stwa <x12=int64#17,[<out=int64#2] 0x88
+# asm 2: stwa <x12=%l0,[<out=%i1] 0x88
+stwa %l0,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x12
-# stwa <x12=int64#16,[<out=int64#2] 0x88
-# stwa <x12=%o7,[<out=%i1] 0x88
-stwa %o7,[%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x13
+# asm 1: stwa <x13=int64#10,[<out=int64#2] 0x88
+# asm 2: stwa <x13=%o0,[<out=%i1] 0x88
+stwa %o0,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x13
-# stwa <x13=int64#17,[<out=int64#2] 0x88
-# stwa <x13=%l0,[<out=%i1] 0x88
-stwa %l0,[%i1] 0x88
+# qhasm:   *(swapendian uint32 *) out = x14
+# asm 1: stwa <x14=int64#12,[<out=int64#2] 0x88
+# asm 2: stwa <x14=%o2,[<out=%i1] 0x88
+stwa %o2,[%i1] 0x88
 
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
 add %i1,4,%i1
 
-#   *(swapendian uint32 *) out = x14
-# stwa <x14=int64#18,[<out=int64#2] 0x88
-# stwa <x14=%l1,[<out=%i1] 0x88
-stwa %l1,[%i1] 0x88
-
-#   out += 4
-# add <out=int64#2,4,>out=int64#2
-# add <out=%i1,4,>out=%i1
-add %i1,4,%i1
+# qhasm:   *(swapendian uint32 *) out = x15
+# asm 1: stwa <x15=int64#16,[<out=int64#2] 0x88
+# asm 2: stwa <x15=%o7,[<out=%i1] 0x88
+stwa %o7,[%i1] 0x88
 
-#   *(swapendian uint32 *) out = x15
-# stwa <x15=int64#19,[<out=int64#2] 0x88
-# stwa <x15=%l2,[<out=%i1] 0x88
-stwa %l2,[%i1] 0x88
-
-#   out += 4
-# add <out=int64#2,4,>out=int64#5
-# add <out=%i1,4,>out=%i4
-add %i1,4,%i4
-
-#   bytes = bytes_stack
-# ldx [%fp+2023-<bytes_stack=stack64#2],>bytes=int64#2
-# ldx [%fp+2023-<bytes_stack=72],>bytes=%i1
-ldx [%fp+2023-72],%i1
-
-#   flags bytes -= 64
-# subcc <bytes=int64#2,64,>bytes=int64#6
-# subcc <bytes=%i1,64,>bytes=%i5
-subcc %i1,64,%i5
+# qhasm:   out += 4
+# asm 1: add <out=int64#2,4,>out=int64#2
+# asm 2: add <out=%i1,4,>out=%i1
+add %i1,4,%i1
+
+# qhasm:   bytes = bytes_stack
+# asm 1: ldx [%fp+2023-<bytes_stack=stack64#2],>bytes=int64#3
+# asm 2: ldx [%fp+2023-<bytes_stack=8],>bytes=%i2
+ldx [%fp+2023-8],%i2
+
+# qhasm:                         unsigned>? bytes -= 64
+# asm 1: subcc <bytes=int64#3,64,>bytes=int64#5
+# asm 2: subcc <bytes=%i2,64,>bytes=%i4
+subcc %i2,64,%i4
 
-#   goto bytesatleast1 if unsigned>
+# qhasm:   goto bytesatleast1 if unsigned>
 bgu,pt %xcc,._bytesatleast1
 nop
 
-#   goto done if unsigned>=
+# qhasm:   goto done if !unsigned<
 bgeu,pt %xcc,._done
 nop
 
-#     m = ctarget
-# ldx [%fp+2023-<ctarget=stack64#1],>m=int64#3
-# ldx [%fp+2023-<ctarget=64],>m=%i2
-ldx [%fp+2023-64],%i2
-
-#     bytes += 64
-# add <bytes=int64#6,64,>bytes=int64#6
-# add <bytes=%i5,64,>bytes=%i5
-add %i5,64,%i5
-
-#     out -= 64
-# sub <out=int64#5,64,>out=int64#4
-# sub <out=%i4,64,>out=%i3
-sub %i4,64,%i3
-
-#     i = 0
-# add %g0,0,>i=int64#1
-# add %g0,0,>i=%i0
-add %g0,0,%i0
+# qhasm:     m = ctarget
+# asm 1: ldx [%fp+2023-<ctarget=stack64#1],>m=int64#6
+# asm 2: ldx [%fp+2023-<ctarget=0],>m=%i5
+ldx [%fp+2023-0],%i5
+
+# qhasm:     bytes += 64
+# asm 1: add <bytes=int64#5,64,>bytes=int64#5
+# asm 2: add <bytes=%i4,64,>bytes=%i4
+add %i4,64,%i4
+
+# qhasm:     out -= 64
+# asm 1: sub <out=int64#2,64,>out=int64#2
+# asm 2: sub <out=%i1,64,>out=%i1
+sub %i1,64,%i1
+
+# qhasm:     i = 0
+# asm 1: add %g0,0,>i=int64#4
+# asm 2: add %g0,0,>i=%i3
+add %g0,0,%i3
 
-#     ccopyloop#
+# qhasm:     ccopyloop:
 ._ccopyloop:
 
-#       a = *(int8 *) (out + i)
-# ldsb [<out=int64#4+<i=int64#1],>a=int64#2
-# ldsb [<out=%i3+<i=%i0],>a=%i1
-ldsb [%i3+%i0],%i1
-
-#       *(int8 *) (m + i) = a
-# stb <a=int64#2,[<m=int64#3+<i=int64#1]
-# stb <a=%i1,[<m=%i2+<i=%i0]
-stb %i1,[%i2+%i0]
-
-#       i += 1
-# add <i=int64#1,1,>i=int64#1
-# add <i=%i0,1,>i=%i0
-add %i0,1,%i0
-
-#       flags i - bytes
-# subcc <i=int64#1,<bytes=int64#6,%g0
-# subcc <i=%i0,<bytes=%i5,%g0
-subcc %i0,%i5,%g0
+# qhasm:       a = *(int8 *) (out + i)
+# asm 1: ldsb [<out=int64#2+<i=int64#4],>a=int64#3
+# asm 2: ldsb [<out=%i1+<i=%i3],>a=%i2
+ldsb [%i1+%i3],%i2
+
+# qhasm:       *(int8 *) (m + i) = a
+# asm 1: stb <a=int64#3,[<m=int64#6+<i=int64#4]
+# asm 2: stb <a=%i2,[<m=%i5+<i=%i3]
+stb %i2,[%i5+%i3]
+
+# qhasm:       i += 1
+# asm 1: add <i=int64#4,1,>i=int64#4
+# asm 2: add <i=%i3,1,>i=%i3
+add %i3,1,%i3
+
+# qhasm:                       unsigned<? i - bytes
+# asm 1: subcc <i=int64#4,<bytes=int64#5,%g0
+# asm 2: subcc <i=%i3,<bytes=%i4,%g0
+subcc %i3,%i4,%g0
 
-#     goto ccopyloop if unsigned<
+# qhasm:     goto ccopyloop if unsigned<
 blu,pt %xcc,._ccopyloop
 nop
 
-# done#
+# qhasm: done:
 ._done:
 
-# leave
+# qhasm: leave
 ret
 restore
New: streamciphers/timings/estreambench/submissions/salsa20-8/x86-1
New: streamciphers/timings/estreambench/submissions/salsa20-8/x86-2
New: streamciphers/timings/estreambench/submissions/salsa20-8/x86-mmx
New: streamciphers/timings/estreambench/submissions/salsa20-8/x86-xmm
Deleted: .old-crypto/streamciphers/timings/estreambench/submissions/wg-v2-long-iv/.tmp.unverified.test-vectors.1162323249.0
New: streamciphers/timings/estreambench/submissions/wg-v2-long-iv/unverified.test-vectors
New: streamciphers/timings/estreambench/submissions/wg-v2-long-iv/wg-v2.c
New: streamciphers/timings/estreambench/submissions/wg-v2-small-iv
New: streamciphers/timings/estreambench-20061208.tar.bz2