// 20240504 djb: add note.GNU-stack // 20221231 djb: port hidden to macos; tnx thom wiggers // 20221230 djb: add linker line // linker define vec256_ama_asm #include "crypto_asm_hidden.h" #define vec256_ama_asm CRYPTO_SHARED_NAMESPACE(vec256_ama_asm) #define _vec256_ama_asm _CRYPTO_SHARED_NAMESPACE(vec256_ama_asm) # qhasm: int64 input_0 # qhasm: int64 input_1 # qhasm: int64 input_2 # qhasm: int64 input_3 # qhasm: int64 input_4 # qhasm: int64 input_5 # qhasm: stack64 input_6 # qhasm: stack64 input_7 # qhasm: int64 caller_r11 # qhasm: int64 caller_r12 # qhasm: int64 caller_r13 # qhasm: int64 caller_r14 # qhasm: int64 caller_r15 # qhasm: int64 caller_rbx # qhasm: int64 caller_rbp # qhasm: reg256 a0 # qhasm: reg256 a1 # qhasm: reg256 a2 # qhasm: reg256 a3 # qhasm: reg256 a4 # qhasm: reg256 a5 # qhasm: reg256 a6 # qhasm: reg256 a7 # qhasm: reg256 a8 # qhasm: reg256 a9 # qhasm: reg256 a10 # qhasm: reg256 a11 # qhasm: reg256 a12 # qhasm: reg256 b0 # qhasm: reg256 b1 # qhasm: reg256 r0 # qhasm: reg256 r1 # qhasm: reg256 r2 # qhasm: reg256 r3 # qhasm: reg256 r4 # qhasm: reg256 r5 # qhasm: reg256 r6 # qhasm: reg256 r7 # qhasm: reg256 r8 # qhasm: reg256 r9 # qhasm: reg256 r10 # qhasm: reg256 r11 # qhasm: reg256 r12 # qhasm: reg256 r13 # qhasm: reg256 r14 # qhasm: reg256 r15 # qhasm: reg256 r16 # qhasm: reg256 r17 # qhasm: reg256 r18 # qhasm: reg256 r19 # qhasm: reg256 r20 # qhasm: reg256 r21 # qhasm: reg256 r22 # qhasm: reg256 r23 # qhasm: reg256 r24 # qhasm: reg256 r # qhasm: enter vec256_ama_asm .p2align 5 ASM_HIDDEN _vec256_ama_asm ASM_HIDDEN vec256_ama_asm .global _vec256_ama_asm .global vec256_ama_asm _vec256_ama_asm: vec256_ama_asm: mov %rsp,%r11 and $31,%r11 add $0,%r11 sub %r11,%rsp # qhasm: b0 = mem256[ input_2 + 0 ] # asm 1: vmovupd 0(b0=reg256#1 # asm 2: vmovupd 0(b0=%ymm0 vmovupd 0(%rdx),%ymm0 # qhasm: a12 = mem256[ input_0 + 384 ] # asm 1: vmovupd 384(a12=reg256#2 # asm 2: vmovupd 384(a12=%ymm1 vmovupd 384(%rdi),%ymm1 # qhasm: a12 = a12 ^ mem256[ input_1 + 384 ] # asm 1: vpxor 384(a12=reg256#2 # asm 2: vpxor 384(a12=%ymm1 vpxor 384(%rsi),%ymm1,%ymm1 # qhasm: mem256[ input_0 + 384 ] = a12 # asm 1: vmovupd r12=reg256#3 # asm 2: vpand r12=%ymm2 vpand %ymm1,%ymm0,%ymm2 # qhasm: r13 = a12 & mem256[input_2 + 32] # asm 1: vpand 32(r13=reg256#4 # asm 2: vpand 32(r13=%ymm3 vpand 32(%rdx),%ymm1,%ymm3 # qhasm: r14 = a12 & mem256[input_2 + 64] # asm 1: vpand 64(r14=reg256#5 # asm 2: vpand 64(r14=%ymm4 vpand 64(%rdx),%ymm1,%ymm4 # qhasm: r15 = a12 & mem256[input_2 + 96] # asm 1: vpand 96(r15=reg256#6 # asm 2: vpand 96(r15=%ymm5 vpand 96(%rdx),%ymm1,%ymm5 # qhasm: r16 = a12 & mem256[input_2 + 128] # asm 1: vpand 128(r16=reg256#7 # asm 2: vpand 128(r16=%ymm6 vpand 128(%rdx),%ymm1,%ymm6 # qhasm: r17 = a12 & mem256[input_2 + 160] # asm 1: vpand 160(r17=reg256#8 # asm 2: vpand 160(r17=%ymm7 vpand 160(%rdx),%ymm1,%ymm7 # qhasm: r18 = a12 & mem256[input_2 + 192] # asm 1: vpand 192(r18=reg256#9 # asm 2: vpand 192(r18=%ymm8 vpand 192(%rdx),%ymm1,%ymm8 # qhasm: r19 = a12 & mem256[input_2 + 224] # asm 1: vpand 224(r19=reg256#10 # asm 2: vpand 224(r19=%ymm9 vpand 224(%rdx),%ymm1,%ymm9 # qhasm: r20 = a12 & mem256[input_2 + 256] # asm 1: vpand 256(r20=reg256#11 # asm 2: vpand 256(r20=%ymm10 vpand 256(%rdx),%ymm1,%ymm10 # qhasm: r21 = a12 & mem256[input_2 + 288] # asm 1: vpand 288(r21=reg256#12 # asm 2: vpand 288(r21=%ymm11 vpand 288(%rdx),%ymm1,%ymm11 # qhasm: r22 = a12 & mem256[input_2 + 320] # asm 1: vpand 320(r22=reg256#13 # asm 2: vpand 320(r22=%ymm12 vpand 320(%rdx),%ymm1,%ymm12 # qhasm: r23 = a12 & mem256[input_2 + 352] # asm 1: vpand 352(r23=reg256#14 # asm 2: vpand 352(r23=%ymm13 vpand 352(%rdx),%ymm1,%ymm13 # qhasm: r24 = a12 & mem256[input_2 + 384] # asm 1: vpand 384(r24=reg256#2 # asm 2: vpand 384(r24=%ymm1 vpand 384(%rdx),%ymm1,%ymm1 # qhasm: r15 ^= r24 # asm 1: vpxor r11=reg256#2 # asm 2: vmovapd r11=%ymm1 vmovapd %ymm1,%ymm1 # qhasm: a11 = mem256[ input_0 + 352 ] # asm 1: vmovupd 352(a11=reg256#15 # asm 2: vmovupd 352(a11=%ymm14 vmovupd 352(%rdi),%ymm14 # qhasm: a11 = a11 ^ mem256[ input_1 + 352 ] # asm 1: vpxor 352(a11=reg256#15 # asm 2: vpxor 352(a11=%ymm14 vpxor 352(%rsi),%ymm14,%ymm14 # qhasm: mem256[ input_0 + 352 ] = a11 # asm 1: vmovupd r=reg256#16 # asm 2: vpand r=%ymm15 vpand %ymm14,%ymm0,%ymm15 # qhasm: r11 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 32(r=%ymm15 vpand 32(%rdx),%ymm14,%ymm15 # qhasm: r12 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 64(r=%ymm15 vpand 64(%rdx),%ymm14,%ymm15 # qhasm: r13 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 96(r=%ymm15 vpand 96(%rdx),%ymm14,%ymm15 # qhasm: r14 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 128(r=%ymm15 vpand 128(%rdx),%ymm14,%ymm15 # qhasm: r15 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 160(r=%ymm15 vpand 160(%rdx),%ymm14,%ymm15 # qhasm: r16 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 192(r=%ymm15 vpand 192(%rdx),%ymm14,%ymm15 # qhasm: r17 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 224(r=%ymm15 vpand 224(%rdx),%ymm14,%ymm15 # qhasm: r18 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 256(r=%ymm15 vpand 256(%rdx),%ymm14,%ymm15 # qhasm: r19 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 288(r=%ymm15 vpand 288(%rdx),%ymm14,%ymm15 # qhasm: r20 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 320(r=%ymm15 vpand 320(%rdx),%ymm14,%ymm15 # qhasm: r21 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 352(r=%ymm15 vpand 352(%rdx),%ymm14,%ymm15 # qhasm: r22 ^= r # asm 1: vpxor r=reg256#15 # asm 2: vpand 384(r=%ymm14 vpand 384(%rdx),%ymm14,%ymm14 # qhasm: r23 ^= r # asm 1: vpxor r10=reg256#14 # asm 2: vmovapd r10=%ymm13 vmovapd %ymm13,%ymm13 # qhasm: a10 = mem256[ input_0 + 320 ] # asm 1: vmovupd 320(a10=reg256#15 # asm 2: vmovupd 320(a10=%ymm14 vmovupd 320(%rdi),%ymm14 # qhasm: a10 = a10 ^ mem256[ input_1 + 320 ] # asm 1: vpxor 320(a10=reg256#15 # asm 2: vpxor 320(a10=%ymm14 vpxor 320(%rsi),%ymm14,%ymm14 # qhasm: mem256[ input_0 + 320 ] = a10 # asm 1: vmovupd r=reg256#16 # asm 2: vpand r=%ymm15 vpand %ymm14,%ymm0,%ymm15 # qhasm: r10 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 32(r=%ymm15 vpand 32(%rdx),%ymm14,%ymm15 # qhasm: r11 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 64(r=%ymm15 vpand 64(%rdx),%ymm14,%ymm15 # qhasm: r12 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 96(r=%ymm15 vpand 96(%rdx),%ymm14,%ymm15 # qhasm: r13 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 128(r=%ymm15 vpand 128(%rdx),%ymm14,%ymm15 # qhasm: r14 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 160(r=%ymm15 vpand 160(%rdx),%ymm14,%ymm15 # qhasm: r15 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 192(r=%ymm15 vpand 192(%rdx),%ymm14,%ymm15 # qhasm: r16 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 224(r=%ymm15 vpand 224(%rdx),%ymm14,%ymm15 # qhasm: r17 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 256(r=%ymm15 vpand 256(%rdx),%ymm14,%ymm15 # qhasm: r18 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 288(r=%ymm15 vpand 288(%rdx),%ymm14,%ymm15 # qhasm: r19 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 320(r=%ymm15 vpand 320(%rdx),%ymm14,%ymm15 # qhasm: r20 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 352(r=%ymm15 vpand 352(%rdx),%ymm14,%ymm15 # qhasm: r21 ^= r # asm 1: vpxor r=reg256#15 # asm 2: vpand 384(r=%ymm14 vpand 384(%rdx),%ymm14,%ymm14 # qhasm: r22 ^= r # asm 1: vpxor r9=reg256#13 # asm 2: vmovapd r9=%ymm12 vmovapd %ymm12,%ymm12 # qhasm: a9 = mem256[ input_0 + 288 ] # asm 1: vmovupd 288(a9=reg256#15 # asm 2: vmovupd 288(a9=%ymm14 vmovupd 288(%rdi),%ymm14 # qhasm: a9 = a9 ^ mem256[ input_1 + 288 ] # asm 1: vpxor 288(a9=reg256#15 # asm 2: vpxor 288(a9=%ymm14 vpxor 288(%rsi),%ymm14,%ymm14 # qhasm: mem256[ input_0 + 288 ] = a9 # asm 1: vmovupd r=reg256#16 # asm 2: vpand r=%ymm15 vpand %ymm14,%ymm0,%ymm15 # qhasm: r9 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 32(r=%ymm15 vpand 32(%rdx),%ymm14,%ymm15 # qhasm: r10 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 64(r=%ymm15 vpand 64(%rdx),%ymm14,%ymm15 # qhasm: r11 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 96(r=%ymm15 vpand 96(%rdx),%ymm14,%ymm15 # qhasm: r12 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 128(r=%ymm15 vpand 128(%rdx),%ymm14,%ymm15 # qhasm: r13 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 160(r=%ymm15 vpand 160(%rdx),%ymm14,%ymm15 # qhasm: r14 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 192(r=%ymm15 vpand 192(%rdx),%ymm14,%ymm15 # qhasm: r15 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 224(r=%ymm15 vpand 224(%rdx),%ymm14,%ymm15 # qhasm: r16 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 256(r=%ymm15 vpand 256(%rdx),%ymm14,%ymm15 # qhasm: r17 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 288(r=%ymm15 vpand 288(%rdx),%ymm14,%ymm15 # qhasm: r18 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 320(r=%ymm15 vpand 320(%rdx),%ymm14,%ymm15 # qhasm: r19 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 352(r=%ymm15 vpand 352(%rdx),%ymm14,%ymm15 # qhasm: r20 ^= r # asm 1: vpxor r=reg256#15 # asm 2: vpand 384(r=%ymm14 vpand 384(%rdx),%ymm14,%ymm14 # qhasm: r21 ^= r # asm 1: vpxor r8=reg256#12 # asm 2: vmovapd r8=%ymm11 vmovapd %ymm11,%ymm11 # qhasm: a8 = mem256[ input_0 + 256 ] # asm 1: vmovupd 256(a8=reg256#15 # asm 2: vmovupd 256(a8=%ymm14 vmovupd 256(%rdi),%ymm14 # qhasm: a8 = a8 ^ mem256[ input_1 + 256 ] # asm 1: vpxor 256(a8=reg256#15 # asm 2: vpxor 256(a8=%ymm14 vpxor 256(%rsi),%ymm14,%ymm14 # qhasm: mem256[ input_0 + 256 ] = a8 # asm 1: vmovupd r=reg256#16 # asm 2: vpand r=%ymm15 vpand %ymm14,%ymm0,%ymm15 # qhasm: r8 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 32(r=%ymm15 vpand 32(%rdx),%ymm14,%ymm15 # qhasm: r9 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 64(r=%ymm15 vpand 64(%rdx),%ymm14,%ymm15 # qhasm: r10 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 96(r=%ymm15 vpand 96(%rdx),%ymm14,%ymm15 # qhasm: r11 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 128(r=%ymm15 vpand 128(%rdx),%ymm14,%ymm15 # qhasm: r12 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 160(r=%ymm15 vpand 160(%rdx),%ymm14,%ymm15 # qhasm: r13 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 192(r=%ymm15 vpand 192(%rdx),%ymm14,%ymm15 # qhasm: r14 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 224(r=%ymm15 vpand 224(%rdx),%ymm14,%ymm15 # qhasm: r15 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 256(r=%ymm15 vpand 256(%rdx),%ymm14,%ymm15 # qhasm: r16 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 288(r=%ymm15 vpand 288(%rdx),%ymm14,%ymm15 # qhasm: r17 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 320(r=%ymm15 vpand 320(%rdx),%ymm14,%ymm15 # qhasm: r18 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 352(r=%ymm15 vpand 352(%rdx),%ymm14,%ymm15 # qhasm: r19 ^= r # asm 1: vpxor r=reg256#15 # asm 2: vpand 384(r=%ymm14 vpand 384(%rdx),%ymm14,%ymm14 # qhasm: r20 ^= r # asm 1: vpxor r7=reg256#11 # asm 2: vmovapd r7=%ymm10 vmovapd %ymm10,%ymm10 # qhasm: a7 = mem256[ input_0 + 224 ] # asm 1: vmovupd 224(a7=reg256#15 # asm 2: vmovupd 224(a7=%ymm14 vmovupd 224(%rdi),%ymm14 # qhasm: a7 = a7 ^ mem256[ input_1 + 224 ] # asm 1: vpxor 224(a7=reg256#15 # asm 2: vpxor 224(a7=%ymm14 vpxor 224(%rsi),%ymm14,%ymm14 # qhasm: mem256[ input_0 + 224 ] = a7 # asm 1: vmovupd r=reg256#16 # asm 2: vpand r=%ymm15 vpand %ymm14,%ymm0,%ymm15 # qhasm: r7 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 32(r=%ymm15 vpand 32(%rdx),%ymm14,%ymm15 # qhasm: r8 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 64(r=%ymm15 vpand 64(%rdx),%ymm14,%ymm15 # qhasm: r9 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 96(r=%ymm15 vpand 96(%rdx),%ymm14,%ymm15 # qhasm: r10 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 128(r=%ymm15 vpand 128(%rdx),%ymm14,%ymm15 # qhasm: r11 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 160(r=%ymm15 vpand 160(%rdx),%ymm14,%ymm15 # qhasm: r12 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 192(r=%ymm15 vpand 192(%rdx),%ymm14,%ymm15 # qhasm: r13 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 224(r=%ymm15 vpand 224(%rdx),%ymm14,%ymm15 # qhasm: r14 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 256(r=%ymm15 vpand 256(%rdx),%ymm14,%ymm15 # qhasm: r15 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 288(r=%ymm15 vpand 288(%rdx),%ymm14,%ymm15 # qhasm: r16 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 320(r=%ymm15 vpand 320(%rdx),%ymm14,%ymm15 # qhasm: r17 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 352(r=%ymm15 vpand 352(%rdx),%ymm14,%ymm15 # qhasm: r18 ^= r # asm 1: vpxor r=reg256#15 # asm 2: vpand 384(r=%ymm14 vpand 384(%rdx),%ymm14,%ymm14 # qhasm: r19 ^= r # asm 1: vpxor r6=reg256#10 # asm 2: vmovapd r6=%ymm9 vmovapd %ymm9,%ymm9 # qhasm: a6 = mem256[ input_0 + 192 ] # asm 1: vmovupd 192(a6=reg256#15 # asm 2: vmovupd 192(a6=%ymm14 vmovupd 192(%rdi),%ymm14 # qhasm: a6 = a6 ^ mem256[ input_1 + 192 ] # asm 1: vpxor 192(a6=reg256#15 # asm 2: vpxor 192(a6=%ymm14 vpxor 192(%rsi),%ymm14,%ymm14 # qhasm: mem256[ input_0 + 192 ] = a6 # asm 1: vmovupd r=reg256#16 # asm 2: vpand r=%ymm15 vpand %ymm14,%ymm0,%ymm15 # qhasm: r6 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 32(r=%ymm15 vpand 32(%rdx),%ymm14,%ymm15 # qhasm: r7 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 64(r=%ymm15 vpand 64(%rdx),%ymm14,%ymm15 # qhasm: r8 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 96(r=%ymm15 vpand 96(%rdx),%ymm14,%ymm15 # qhasm: r9 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 128(r=%ymm15 vpand 128(%rdx),%ymm14,%ymm15 # qhasm: r10 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 160(r=%ymm15 vpand 160(%rdx),%ymm14,%ymm15 # qhasm: r11 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 192(r=%ymm15 vpand 192(%rdx),%ymm14,%ymm15 # qhasm: r12 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 224(r=%ymm15 vpand 224(%rdx),%ymm14,%ymm15 # qhasm: r13 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 256(r=%ymm15 vpand 256(%rdx),%ymm14,%ymm15 # qhasm: r14 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 288(r=%ymm15 vpand 288(%rdx),%ymm14,%ymm15 # qhasm: r15 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 320(r=%ymm15 vpand 320(%rdx),%ymm14,%ymm15 # qhasm: r16 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 352(r=%ymm15 vpand 352(%rdx),%ymm14,%ymm15 # qhasm: r17 ^= r # asm 1: vpxor r=reg256#15 # asm 2: vpand 384(r=%ymm14 vpand 384(%rdx),%ymm14,%ymm14 # qhasm: r18 ^= r # asm 1: vpxor r5=reg256#9 # asm 2: vmovapd r5=%ymm8 vmovapd %ymm8,%ymm8 # qhasm: a5 = mem256[ input_0 + 160 ] # asm 1: vmovupd 160(a5=reg256#15 # asm 2: vmovupd 160(a5=%ymm14 vmovupd 160(%rdi),%ymm14 # qhasm: a5 = a5 ^ mem256[ input_1 + 160 ] # asm 1: vpxor 160(a5=reg256#15 # asm 2: vpxor 160(a5=%ymm14 vpxor 160(%rsi),%ymm14,%ymm14 # qhasm: mem256[ input_0 + 160 ] = a5 # asm 1: vmovupd r=reg256#16 # asm 2: vpand r=%ymm15 vpand %ymm14,%ymm0,%ymm15 # qhasm: r5 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 32(r=%ymm15 vpand 32(%rdx),%ymm14,%ymm15 # qhasm: r6 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 64(r=%ymm15 vpand 64(%rdx),%ymm14,%ymm15 # qhasm: r7 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 96(r=%ymm15 vpand 96(%rdx),%ymm14,%ymm15 # qhasm: r8 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 128(r=%ymm15 vpand 128(%rdx),%ymm14,%ymm15 # qhasm: r9 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 160(r=%ymm15 vpand 160(%rdx),%ymm14,%ymm15 # qhasm: r10 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 192(r=%ymm15 vpand 192(%rdx),%ymm14,%ymm15 # qhasm: r11 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 224(r=%ymm15 vpand 224(%rdx),%ymm14,%ymm15 # qhasm: r12 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 256(r=%ymm15 vpand 256(%rdx),%ymm14,%ymm15 # qhasm: r13 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 288(r=%ymm15 vpand 288(%rdx),%ymm14,%ymm15 # qhasm: r14 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 320(r=%ymm15 vpand 320(%rdx),%ymm14,%ymm15 # qhasm: r15 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 352(r=%ymm15 vpand 352(%rdx),%ymm14,%ymm15 # qhasm: r16 ^= r # asm 1: vpxor r=reg256#15 # asm 2: vpand 384(r=%ymm14 vpand 384(%rdx),%ymm14,%ymm14 # qhasm: r17 ^= r # asm 1: vpxor r4=reg256#8 # asm 2: vmovapd r4=%ymm7 vmovapd %ymm7,%ymm7 # qhasm: a4 = mem256[ input_0 + 128 ] # asm 1: vmovupd 128(a4=reg256#15 # asm 2: vmovupd 128(a4=%ymm14 vmovupd 128(%rdi),%ymm14 # qhasm: a4 = a4 ^ mem256[ input_1 + 128 ] # asm 1: vpxor 128(a4=reg256#15 # asm 2: vpxor 128(a4=%ymm14 vpxor 128(%rsi),%ymm14,%ymm14 # qhasm: mem256[ input_0 + 128 ] = a4 # asm 1: vmovupd r=reg256#16 # asm 2: vpand r=%ymm15 vpand %ymm14,%ymm0,%ymm15 # qhasm: r4 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 32(r=%ymm15 vpand 32(%rdx),%ymm14,%ymm15 # qhasm: r5 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 64(r=%ymm15 vpand 64(%rdx),%ymm14,%ymm15 # qhasm: r6 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 96(r=%ymm15 vpand 96(%rdx),%ymm14,%ymm15 # qhasm: r7 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 128(r=%ymm15 vpand 128(%rdx),%ymm14,%ymm15 # qhasm: r8 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 160(r=%ymm15 vpand 160(%rdx),%ymm14,%ymm15 # qhasm: r9 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 192(r=%ymm15 vpand 192(%rdx),%ymm14,%ymm15 # qhasm: r10 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 224(r=%ymm15 vpand 224(%rdx),%ymm14,%ymm15 # qhasm: r11 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 256(r=%ymm15 vpand 256(%rdx),%ymm14,%ymm15 # qhasm: r12 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 288(r=%ymm15 vpand 288(%rdx),%ymm14,%ymm15 # qhasm: r13 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 320(r=%ymm15 vpand 320(%rdx),%ymm14,%ymm15 # qhasm: r14 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 352(r=%ymm15 vpand 352(%rdx),%ymm14,%ymm15 # qhasm: r15 ^= r # asm 1: vpxor r=reg256#15 # asm 2: vpand 384(r=%ymm14 vpand 384(%rdx),%ymm14,%ymm14 # qhasm: r16 ^= r # asm 1: vpxor r3=reg256#7 # asm 2: vmovapd r3=%ymm6 vmovapd %ymm6,%ymm6 # qhasm: a3 = mem256[ input_0 + 96 ] # asm 1: vmovupd 96(a3=reg256#15 # asm 2: vmovupd 96(a3=%ymm14 vmovupd 96(%rdi),%ymm14 # qhasm: a3 = a3 ^ mem256[ input_1 + 96 ] # asm 1: vpxor 96(a3=reg256#15 # asm 2: vpxor 96(a3=%ymm14 vpxor 96(%rsi),%ymm14,%ymm14 # qhasm: mem256[ input_0 + 96 ] = a3 # asm 1: vmovupd r=reg256#16 # asm 2: vpand r=%ymm15 vpand %ymm14,%ymm0,%ymm15 # qhasm: r3 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 32(r=%ymm15 vpand 32(%rdx),%ymm14,%ymm15 # qhasm: r4 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 64(r=%ymm15 vpand 64(%rdx),%ymm14,%ymm15 # qhasm: r5 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 96(r=%ymm15 vpand 96(%rdx),%ymm14,%ymm15 # qhasm: r6 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 128(r=%ymm15 vpand 128(%rdx),%ymm14,%ymm15 # qhasm: r7 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 160(r=%ymm15 vpand 160(%rdx),%ymm14,%ymm15 # qhasm: r8 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 192(r=%ymm15 vpand 192(%rdx),%ymm14,%ymm15 # qhasm: r9 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 224(r=%ymm15 vpand 224(%rdx),%ymm14,%ymm15 # qhasm: r10 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 256(r=%ymm15 vpand 256(%rdx),%ymm14,%ymm15 # qhasm: r11 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 288(r=%ymm15 vpand 288(%rdx),%ymm14,%ymm15 # qhasm: r12 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 320(r=%ymm15 vpand 320(%rdx),%ymm14,%ymm15 # qhasm: r13 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 352(r=%ymm15 vpand 352(%rdx),%ymm14,%ymm15 # qhasm: r14 ^= r # asm 1: vpxor r=reg256#15 # asm 2: vpand 384(r=%ymm14 vpand 384(%rdx),%ymm14,%ymm14 # qhasm: r15 ^= r # asm 1: vpxor r2=reg256#6 # asm 2: vmovapd r2=%ymm5 vmovapd %ymm5,%ymm5 # qhasm: a2 = mem256[ input_0 + 64 ] # asm 1: vmovupd 64(a2=reg256#15 # asm 2: vmovupd 64(a2=%ymm14 vmovupd 64(%rdi),%ymm14 # qhasm: a2 = a2 ^ mem256[ input_1 + 64 ] # asm 1: vpxor 64(a2=reg256#15 # asm 2: vpxor 64(a2=%ymm14 vpxor 64(%rsi),%ymm14,%ymm14 # qhasm: mem256[ input_0 + 64 ] = a2 # asm 1: vmovupd r=reg256#16 # asm 2: vpand r=%ymm15 vpand %ymm14,%ymm0,%ymm15 # qhasm: r2 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 32(r=%ymm15 vpand 32(%rdx),%ymm14,%ymm15 # qhasm: r3 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 64(r=%ymm15 vpand 64(%rdx),%ymm14,%ymm15 # qhasm: r4 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 96(r=%ymm15 vpand 96(%rdx),%ymm14,%ymm15 # qhasm: r5 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 128(r=%ymm15 vpand 128(%rdx),%ymm14,%ymm15 # qhasm: r6 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 160(r=%ymm15 vpand 160(%rdx),%ymm14,%ymm15 # qhasm: r7 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 192(r=%ymm15 vpand 192(%rdx),%ymm14,%ymm15 # qhasm: r8 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 224(r=%ymm15 vpand 224(%rdx),%ymm14,%ymm15 # qhasm: r9 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 256(r=%ymm15 vpand 256(%rdx),%ymm14,%ymm15 # qhasm: r10 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 288(r=%ymm15 vpand 288(%rdx),%ymm14,%ymm15 # qhasm: r11 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 320(r=%ymm15 vpand 320(%rdx),%ymm14,%ymm15 # qhasm: r12 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 352(r=%ymm15 vpand 352(%rdx),%ymm14,%ymm15 # qhasm: r13 ^= r # asm 1: vpxor r=reg256#15 # asm 2: vpand 384(r=%ymm14 vpand 384(%rdx),%ymm14,%ymm14 # qhasm: r14 ^= r # asm 1: vpxor r1=reg256#5 # asm 2: vmovapd r1=%ymm4 vmovapd %ymm4,%ymm4 # qhasm: a1 = mem256[ input_0 + 32 ] # asm 1: vmovupd 32(a1=reg256#15 # asm 2: vmovupd 32(a1=%ymm14 vmovupd 32(%rdi),%ymm14 # qhasm: a1 = a1 ^ mem256[ input_1 + 32 ] # asm 1: vpxor 32(a1=reg256#15 # asm 2: vpxor 32(a1=%ymm14 vpxor 32(%rsi),%ymm14,%ymm14 # qhasm: mem256[ input_0 + 32 ] = a1 # asm 1: vmovupd r=reg256#16 # asm 2: vpand r=%ymm15 vpand %ymm14,%ymm0,%ymm15 # qhasm: r1 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 32(r=%ymm15 vpand 32(%rdx),%ymm14,%ymm15 # qhasm: r2 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 64(r=%ymm15 vpand 64(%rdx),%ymm14,%ymm15 # qhasm: r3 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 96(r=%ymm15 vpand 96(%rdx),%ymm14,%ymm15 # qhasm: r4 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 128(r=%ymm15 vpand 128(%rdx),%ymm14,%ymm15 # qhasm: r5 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 160(r=%ymm15 vpand 160(%rdx),%ymm14,%ymm15 # qhasm: r6 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 192(r=%ymm15 vpand 192(%rdx),%ymm14,%ymm15 # qhasm: r7 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 224(r=%ymm15 vpand 224(%rdx),%ymm14,%ymm15 # qhasm: r8 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 256(r=%ymm15 vpand 256(%rdx),%ymm14,%ymm15 # qhasm: r9 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 288(r=%ymm15 vpand 288(%rdx),%ymm14,%ymm15 # qhasm: r10 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 320(r=%ymm15 vpand 320(%rdx),%ymm14,%ymm15 # qhasm: r11 ^= r # asm 1: vpxor r=reg256#16 # asm 2: vpand 352(r=%ymm15 vpand 352(%rdx),%ymm14,%ymm15 # qhasm: r12 ^= r # asm 1: vpxor r=reg256#15 # asm 2: vpand 384(r=%ymm14 vpand 384(%rdx),%ymm14,%ymm14 # qhasm: r13 ^= r # asm 1: vpxor r0=reg256#4 # asm 2: vmovapd r0=%ymm3 vmovapd %ymm3,%ymm3 # qhasm: a0 = mem256[ input_0 + 0 ] # asm 1: vmovupd 0(a0=reg256#15 # asm 2: vmovupd 0(a0=%ymm14 vmovupd 0(%rdi),%ymm14 # qhasm: a0 = a0 ^ mem256[ input_1 + 0 ] # asm 1: vpxor 0(a0=reg256#15 # asm 2: vpxor 0(a0=%ymm14 vpxor 0(%rsi),%ymm14,%ymm14 # qhasm: mem256[ input_0 + 0 ] = a0 # asm 1: vmovupd r=reg256#1 # asm 2: vpand r=%ymm0 vpand %ymm14,%ymm0,%ymm0 # qhasm: r0 ^= r # asm 1: vpxor r=reg256#1 # asm 2: vpand 32(r=%ymm0 vpand 32(%rdx),%ymm14,%ymm0 # qhasm: r1 ^= r # asm 1: vpxor r=reg256#1 # asm 2: vpand 64(r=%ymm0 vpand 64(%rdx),%ymm14,%ymm0 # qhasm: r2 ^= r # asm 1: vpxor r=reg256#1 # asm 2: vpand 96(r=%ymm0 vpand 96(%rdx),%ymm14,%ymm0 # qhasm: r3 ^= r # asm 1: vpxor r=reg256#1 # asm 2: vpand 128(r=%ymm0 vpand 128(%rdx),%ymm14,%ymm0 # qhasm: r4 ^= r # asm 1: vpxor r=reg256#1 # asm 2: vpand 160(r=%ymm0 vpand 160(%rdx),%ymm14,%ymm0 # qhasm: r5 ^= r # asm 1: vpxor r=reg256#1 # asm 2: vpand 192(r=%ymm0 vpand 192(%rdx),%ymm14,%ymm0 # qhasm: r6 ^= r # asm 1: vpxor r=reg256#1 # asm 2: vpand 224(r=%ymm0 vpand 224(%rdx),%ymm14,%ymm0 # qhasm: r7 ^= r # asm 1: vpxor r=reg256#1 # asm 2: vpand 256(r=%ymm0 vpand 256(%rdx),%ymm14,%ymm0 # qhasm: r8 ^= r # asm 1: vpxor r=reg256#1 # asm 2: vpand 288(r=%ymm0 vpand 288(%rdx),%ymm14,%ymm0 # qhasm: r9 ^= r # asm 1: vpxor r=reg256#1 # asm 2: vpand 320(r=%ymm0 vpand 320(%rdx),%ymm14,%ymm0 # qhasm: r10 ^= r # asm 1: vpxor r=reg256#1 # asm 2: vpand 352(r=%ymm0 vpand 352(%rdx),%ymm14,%ymm0 # qhasm: r11 ^= r # asm 1: vpxor r=reg256#1 # asm 2: vpand 384(r=%ymm0 vpand 384(%rdx),%ymm14,%ymm0 # qhasm: r12 ^= r # asm 1: vpxor r12=reg256#1 # asm 2: vpxor 384(r12=%ymm0 vpxor 384(%rsi),%ymm2,%ymm0 # qhasm: mem256[ input_1 + 384 ] = r12 # asm 1: vmovupd r11=reg256#1 # asm 2: vpxor 352(r11=%ymm0 vpxor 352(%rsi),%ymm1,%ymm0 # qhasm: mem256[ input_1 + 352 ] = r11 # asm 1: vmovupd r10=reg256#1 # asm 2: vpxor 320(r10=%ymm0 vpxor 320(%rsi),%ymm13,%ymm0 # qhasm: mem256[ input_1 + 320 ] = r10 # asm 1: vmovupd r9=reg256#1 # asm 2: vpxor 288(r9=%ymm0 vpxor 288(%rsi),%ymm12,%ymm0 # qhasm: mem256[ input_1 + 288 ] = r9 # asm 1: vmovupd r8=reg256#1 # asm 2: vpxor 256(r8=%ymm0 vpxor 256(%rsi),%ymm11,%ymm0 # qhasm: mem256[ input_1 + 256 ] = r8 # asm 1: vmovupd r7=reg256#1 # asm 2: vpxor 224(r7=%ymm0 vpxor 224(%rsi),%ymm10,%ymm0 # qhasm: mem256[ input_1 + 224 ] = r7 # asm 1: vmovupd r6=reg256#1 # asm 2: vpxor 192(r6=%ymm0 vpxor 192(%rsi),%ymm9,%ymm0 # qhasm: mem256[ input_1 + 192 ] = r6 # asm 1: vmovupd r5=reg256#1 # asm 2: vpxor 160(r5=%ymm0 vpxor 160(%rsi),%ymm8,%ymm0 # qhasm: mem256[ input_1 + 160 ] = r5 # asm 1: vmovupd r4=reg256#1 # asm 2: vpxor 128(r4=%ymm0 vpxor 128(%rsi),%ymm7,%ymm0 # qhasm: mem256[ input_1 + 128 ] = r4 # asm 1: vmovupd r3=reg256#1 # asm 2: vpxor 96(r3=%ymm0 vpxor 96(%rsi),%ymm6,%ymm0 # qhasm: mem256[ input_1 + 96 ] = r3 # asm 1: vmovupd r2=reg256#1 # asm 2: vpxor 64(r2=%ymm0 vpxor 64(%rsi),%ymm5,%ymm0 # qhasm: mem256[ input_1 + 64 ] = r2 # asm 1: vmovupd r1=reg256#1 # asm 2: vpxor 32(r1=%ymm0 vpxor 32(%rsi),%ymm4,%ymm0 # qhasm: mem256[ input_1 + 32 ] = r1 # asm 1: vmovupd r0=reg256#1 # asm 2: vpxor 0(r0=%ymm0 vpxor 0(%rsi),%ymm3,%ymm0 # qhasm: mem256[ input_1 + 0 ] = r0 # asm 1: vmovupd