pq_crypto 0.4.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (408) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +25 -0
  3. data/GET_STARTED.md +21 -16
  4. data/README.md +26 -0
  5. data/SECURITY.md +22 -16
  6. data/ext/pqcrypto/extconf.rb +148 -99
  7. data/ext/pqcrypto/mldsa_api.h +1 -118
  8. data/ext/pqcrypto/mlkem_api.h +1 -42
  9. data/ext/pqcrypto/pq_externalmu.c +88 -216
  10. data/ext/pqcrypto/pqcrypto_native_api.h +129 -0
  11. data/ext/pqcrypto/pqcrypto_ruby_secure.c +0 -3
  12. data/ext/pqcrypto/pqcrypto_secure.c +135 -117
  13. data/ext/pqcrypto/pqcrypto_secure.h +1 -42
  14. data/ext/pqcrypto/pqcrypto_version.h +1 -1
  15. data/ext/pqcrypto/randombytes.h +9 -0
  16. data/ext/pqcrypto/vendor/.vendored +10 -5
  17. data/ext/pqcrypto/vendor/mldsa-native/BUILDING.md +105 -0
  18. data/ext/pqcrypto/vendor/mldsa-native/LICENSE +286 -0
  19. data/ext/pqcrypto/vendor/mldsa-native/META.yml +24 -0
  20. data/ext/pqcrypto/vendor/mldsa-native/README.md +221 -0
  21. data/ext/pqcrypto/vendor/mldsa-native/SECURITY.md +8 -0
  22. data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native.c +721 -0
  23. data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native.h +975 -0
  24. data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native_asm.S +724 -0
  25. data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native_config.h +723 -0
  26. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/cbmc.h +166 -0
  27. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/common.h +321 -0
  28. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/ct.c +21 -0
  29. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/ct.h +385 -0
  30. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/debug.c +73 -0
  31. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/debug.h +130 -0
  32. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202.c +277 -0
  33. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202.h +244 -0
  34. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202x4.c +182 -0
  35. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202x4.h +117 -0
  36. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/keccakf1600.c +438 -0
  37. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/keccakf1600.h +105 -0
  38. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/auto.h +71 -0
  39. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/fips202_native_aarch64.h +62 -0
  40. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x1_scalar_asm.S +376 -0
  41. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x1_v84a_asm.S +204 -0
  42. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x2_v84a_asm.S +259 -0
  43. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_asm.S +1077 -0
  44. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_asm.S +987 -0
  45. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccakf1600_round_constants.c +41 -0
  46. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x1_scalar.h +26 -0
  47. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x1_v84a.h +35 -0
  48. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x2_v84a.h +37 -0
  49. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x4_v8a_scalar.h +27 -0
  50. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x4_v8a_v84a_scalar.h +36 -0
  51. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/api.h +69 -0
  52. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/README.md +10 -0
  53. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/mve.h +32 -0
  54. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/fips202_native_armv81m.h +20 -0
  55. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S +638 -0
  56. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.c +136 -0
  57. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/keccakf1600_round_constants.c +52 -0
  58. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/auto.h +29 -0
  59. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/src/KeccakP_1600_times4_SIMD256.c +488 -0
  60. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/src/KeccakP_1600_times4_SIMD256.h +16 -0
  61. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/xkcp.h +31 -0
  62. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/meta.h +247 -0
  63. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/aarch64_zetas.c +231 -0
  64. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/arith_native_aarch64.h +150 -0
  65. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/intt.S +753 -0
  66. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l4.S +129 -0
  67. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l5.S +145 -0
  68. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l7.S +177 -0
  69. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/ntt.S +653 -0
  70. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/pointwise_montgomery.S +79 -0
  71. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_caddq_asm.S +53 -0
  72. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_chknorm_asm.S +55 -0
  73. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_decompose_32_asm.S +85 -0
  74. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_decompose_88_asm.S +85 -0
  75. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_use_hint_32_asm.S +102 -0
  76. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_use_hint_88_asm.S +110 -0
  77. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_17_asm.S +72 -0
  78. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_19_asm.S +69 -0
  79. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_table.c +40 -0
  80. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_asm.S +189 -0
  81. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta2_asm.S +135 -0
  82. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta4_asm.S +128 -0
  83. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta_table.c +543 -0
  84. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_table.c +62 -0
  85. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/api.h +649 -0
  86. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/meta.h +23 -0
  87. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/meta.h +315 -0
  88. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/arith_native_x86_64.h +124 -0
  89. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/consts.c +157 -0
  90. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/consts.h +27 -0
  91. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/intt.S +2311 -0
  92. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/ntt.S +2383 -0
  93. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/nttunpack.S +239 -0
  94. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise.S +131 -0
  95. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l4.S +139 -0
  96. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l5.S +155 -0
  97. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l7.S +187 -0
  98. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_caddq_avx2.c +61 -0
  99. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_chknorm_avx2.c +52 -0
  100. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_decompose_32_avx2.c +155 -0
  101. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_decompose_88_avx2.c +155 -0
  102. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_use_hint_32_avx2.c +102 -0
  103. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_use_hint_88_avx2.c +104 -0
  104. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/polyz_unpack_17_avx2.c +91 -0
  105. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/polyz_unpack_19_avx2.c +93 -0
  106. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/rej_uniform_avx2.c +126 -0
  107. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/rej_uniform_eta2_avx2.c +155 -0
  108. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/rej_uniform_eta4_avx2.c +139 -0
  109. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/rej_uniform_table.c +160 -0
  110. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/packing.c +293 -0
  111. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/packing.h +224 -0
  112. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/params.h +77 -0
  113. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly.c +991 -0
  114. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly.h +393 -0
  115. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly_kl.c +946 -0
  116. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly_kl.h +360 -0
  117. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/polyvec.c +877 -0
  118. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/polyvec.h +725 -0
  119. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/randombytes.h +26 -0
  120. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/reduce.h +139 -0
  121. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/rounding.h +249 -0
  122. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/sign.c +1511 -0
  123. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/sign.h +806 -0
  124. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/symmetric.h +68 -0
  125. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/sys.h +268 -0
  126. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/zetas.inc +55 -0
  127. data/ext/pqcrypto/vendor/mlkem-native/BUILDING.md +104 -0
  128. data/ext/pqcrypto/vendor/mlkem-native/LICENSE +294 -0
  129. data/ext/pqcrypto/vendor/mlkem-native/META.yml +30 -0
  130. data/ext/pqcrypto/vendor/mlkem-native/README.md +223 -0
  131. data/ext/pqcrypto/vendor/mlkem-native/RELEASE.md +86 -0
  132. data/ext/pqcrypto/vendor/mlkem-native/SECURITY.md +8 -0
  133. data/ext/pqcrypto/vendor/mlkem-native/mlkem/README.md +23 -0
  134. data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native.c +660 -0
  135. data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native.h +538 -0
  136. data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native_asm.S +681 -0
  137. data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native_config.h +709 -0
  138. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/cbmc.h +174 -0
  139. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/common.h +274 -0
  140. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/compress.c +717 -0
  141. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/compress.h +688 -0
  142. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/debug.c +64 -0
  143. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/debug.h +128 -0
  144. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/fips202.c +251 -0
  145. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/fips202.h +158 -0
  146. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/fips202x4.c +208 -0
  147. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/fips202x4.h +80 -0
  148. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/keccakf1600.c +463 -0
  149. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/keccakf1600.h +98 -0
  150. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/auto.h +70 -0
  151. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/fips202_native_aarch64.h +69 -0
  152. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x1_scalar_asm.S +375 -0
  153. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x1_v84a_asm.S +203 -0
  154. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x2_v84a_asm.S +258 -0
  155. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_asm.S +1076 -0
  156. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_asm.S +986 -0
  157. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccakf1600_round_constants.c +46 -0
  158. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x1_scalar.h +25 -0
  159. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x1_v84a.h +34 -0
  160. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x2_v84a.h +35 -0
  161. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x4_v8a_scalar.h +26 -0
  162. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x4_v8a_v84a_scalar.h +35 -0
  163. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/api.h +117 -0
  164. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/README.md +10 -0
  165. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/mve.h +79 -0
  166. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h +35 -0
  167. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S +667 -0
  168. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.c +40 -0
  169. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/keccakf1600_round_constants.c +51 -0
  170. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x4_mve.S +290 -0
  171. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x4_mve.S +314 -0
  172. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/auto.h +28 -0
  173. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/keccak_f1600_x4_avx2.h +33 -0
  174. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/src/fips202_native_x86_64.h +41 -0
  175. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/src/keccak_f1600_x4_avx2.S +451 -0
  176. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/src/keccakf1600_constants.c +51 -0
  177. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/indcpa.c +622 -0
  178. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/indcpa.h +156 -0
  179. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/kem.c +446 -0
  180. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/kem.h +326 -0
  181. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/README.md +16 -0
  182. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/meta.h +122 -0
  183. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/aarch64_zetas.c +174 -0
  184. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/arith_native_aarch64.h +177 -0
  185. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/intt.S +628 -0
  186. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/ntt.S +562 -0
  187. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/poly_mulcache_compute_asm.S +127 -0
  188. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/poly_reduce_asm.S +150 -0
  189. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/poly_tobytes_asm.S +117 -0
  190. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/poly_tomont_asm.S +98 -0
  191. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/polyvec_basemul_acc_montgomery_cached_asm_k2.S +261 -0
  192. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/polyvec_basemul_acc_montgomery_cached_asm_k3.S +314 -0
  193. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/polyvec_basemul_acc_montgomery_cached_asm_k4.S +368 -0
  194. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/rej_uniform_asm.S +226 -0
  195. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/rej_uniform_table.c +542 -0
  196. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/api.h +637 -0
  197. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/meta.h +25 -0
  198. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/README.md +11 -0
  199. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/meta.h +128 -0
  200. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/arith_native_riscv64.h +45 -0
  201. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_debug.c +81 -0
  202. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_debug.h +145 -0
  203. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_izetas.inc +27 -0
  204. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_poly.c +805 -0
  205. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_zetas.inc +27 -0
  206. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_zetas_basemul.inc +39 -0
  207. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/README.md +4 -0
  208. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/meta.h +304 -0
  209. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/arith_native_x86_64.h +309 -0
  210. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/compress_consts.c +94 -0
  211. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/compress_consts.h +45 -0
  212. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/consts.c +102 -0
  213. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/consts.h +25 -0
  214. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/intt.S +719 -0
  215. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/mulcache_compute.S +90 -0
  216. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/ntt.S +639 -0
  217. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/nttfrombytes.S +193 -0
  218. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/ntttobytes.S +181 -0
  219. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/nttunpack.S +174 -0
  220. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_compress_d10.S +382 -0
  221. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_compress_d11.S +448 -0
  222. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_compress_d4.S +163 -0
  223. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_compress_d5.S +220 -0
  224. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_decompress_d10.S +228 -0
  225. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_decompress_d11.S +277 -0
  226. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_decompress_d4.S +180 -0
  227. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/poly_decompress_d5.S +192 -0
  228. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/polyvec_basemul_acc_montgomery_cached_asm_k2.S +502 -0
  229. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/polyvec_basemul_acc_montgomery_cached_asm_k3.S +750 -0
  230. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/polyvec_basemul_acc_montgomery_cached_asm_k4.S +998 -0
  231. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/reduce.S +218 -0
  232. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/rej_uniform_asm.S +103 -0
  233. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/rej_uniform_table.c +544 -0
  234. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/tomont.S +155 -0
  235. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/params.h +76 -0
  236. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly.c +572 -0
  237. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly.h +317 -0
  238. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly_k.c +502 -0
  239. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly_k.h +668 -0
  240. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/randombytes.h +60 -0
  241. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/sampling.c +362 -0
  242. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/sampling.h +118 -0
  243. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/symmetric.h +70 -0
  244. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/sys.h +260 -0
  245. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/verify.c +20 -0
  246. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/verify.h +464 -0
  247. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/zetas.inc +30 -0
  248. data/lib/pq_crypto/version.rb +1 -1
  249. data/lib/pq_crypto.rb +1 -1
  250. data/script/vendor_libs.rb +88 -159
  251. metadata +236 -160
  252. data/ext/pqcrypto/vendor/pqclean/common/aes.c +0 -639
  253. data/ext/pqcrypto/vendor/pqclean/common/aes.h +0 -64
  254. data/ext/pqcrypto/vendor/pqclean/common/compat.h +0 -73
  255. data/ext/pqcrypto/vendor/pqclean/common/crypto_declassify.h +0 -7
  256. data/ext/pqcrypto/vendor/pqclean/common/fips202.c +0 -928
  257. data/ext/pqcrypto/vendor/pqclean/common/fips202.h +0 -166
  258. data/ext/pqcrypto/vendor/pqclean/common/keccak2x/feat.S +0 -168
  259. data/ext/pqcrypto/vendor/pqclean/common/keccak2x/fips202x2.c +0 -684
  260. data/ext/pqcrypto/vendor/pqclean/common/keccak2x/fips202x2.h +0 -60
  261. data/ext/pqcrypto/vendor/pqclean/common/keccak4x/KeccakP-1600-times4-SIMD256.c +0 -1028
  262. data/ext/pqcrypto/vendor/pqclean/common/keccak4x/KeccakP-1600-times4-SnP.h +0 -50
  263. data/ext/pqcrypto/vendor/pqclean/common/keccak4x/KeccakP-1600-unrolling.macros +0 -198
  264. data/ext/pqcrypto/vendor/pqclean/common/keccak4x/Makefile +0 -8
  265. data/ext/pqcrypto/vendor/pqclean/common/keccak4x/Makefile.Microsoft_nmake +0 -8
  266. data/ext/pqcrypto/vendor/pqclean/common/keccak4x/SIMD256-config.h +0 -3
  267. data/ext/pqcrypto/vendor/pqclean/common/keccak4x/align.h +0 -34
  268. data/ext/pqcrypto/vendor/pqclean/common/keccak4x/brg_endian.h +0 -142
  269. data/ext/pqcrypto/vendor/pqclean/common/nistseedexpander.c +0 -101
  270. data/ext/pqcrypto/vendor/pqclean/common/nistseedexpander.h +0 -39
  271. data/ext/pqcrypto/vendor/pqclean/common/randombytes.c +0 -355
  272. data/ext/pqcrypto/vendor/pqclean/common/randombytes.h +0 -27
  273. data/ext/pqcrypto/vendor/pqclean/common/sha2.c +0 -769
  274. data/ext/pqcrypto/vendor/pqclean/common/sha2.h +0 -173
  275. data/ext/pqcrypto/vendor/pqclean/common/sp800-185.c +0 -156
  276. data/ext/pqcrypto/vendor/pqclean/common/sp800-185.h +0 -27
  277. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/LICENSE +0 -5
  278. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/Makefile +0 -19
  279. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/Makefile.Microsoft_nmake +0 -23
  280. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/api.h +0 -18
  281. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/cbd.c +0 -83
  282. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/cbd.h +0 -11
  283. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/indcpa.c +0 -327
  284. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/indcpa.h +0 -22
  285. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/kem.c +0 -164
  286. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/kem.h +0 -23
  287. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/ntt.c +0 -146
  288. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/ntt.h +0 -14
  289. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/params.h +0 -36
  290. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/poly.c +0 -311
  291. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/poly.h +0 -37
  292. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/polyvec.c +0 -198
  293. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/polyvec.h +0 -26
  294. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/reduce.c +0 -41
  295. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/reduce.h +0 -13
  296. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/symmetric-shake.c +0 -71
  297. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/symmetric.h +0 -30
  298. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/verify.c +0 -67
  299. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-1024/clean/verify.h +0 -13
  300. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/LICENSE +0 -5
  301. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/Makefile +0 -19
  302. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/Makefile.Microsoft_nmake +0 -23
  303. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/api.h +0 -18
  304. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/cbd.c +0 -108
  305. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/cbd.h +0 -11
  306. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/indcpa.c +0 -327
  307. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/indcpa.h +0 -22
  308. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/kem.c +0 -164
  309. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/kem.h +0 -23
  310. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/ntt.c +0 -146
  311. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/ntt.h +0 -14
  312. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/params.h +0 -36
  313. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/poly.c +0 -299
  314. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/poly.h +0 -37
  315. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/polyvec.c +0 -188
  316. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/polyvec.h +0 -26
  317. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/reduce.c +0 -41
  318. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/reduce.h +0 -13
  319. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/symmetric-shake.c +0 -71
  320. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/symmetric.h +0 -30
  321. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/verify.c +0 -67
  322. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-512/clean/verify.h +0 -13
  323. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/LICENSE +0 -5
  324. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/Makefile +0 -19
  325. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/Makefile.Microsoft_nmake +0 -23
  326. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/api.h +0 -18
  327. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/cbd.c +0 -83
  328. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/cbd.h +0 -11
  329. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/indcpa.c +0 -327
  330. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/indcpa.h +0 -22
  331. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/kem.c +0 -164
  332. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/kem.h +0 -23
  333. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/ntt.c +0 -146
  334. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/ntt.h +0 -14
  335. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/params.h +0 -36
  336. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/poly.c +0 -299
  337. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/poly.h +0 -37
  338. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/polyvec.c +0 -188
  339. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/polyvec.h +0 -26
  340. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/reduce.c +0 -41
  341. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/reduce.h +0 -13
  342. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/symmetric-shake.c +0 -71
  343. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/symmetric.h +0 -30
  344. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/verify.c +0 -67
  345. data/ext/pqcrypto/vendor/pqclean/crypto_kem/ml-kem-768/clean/verify.h +0 -13
  346. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/LICENSE +0 -5
  347. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/Makefile +0 -19
  348. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/Makefile.Microsoft_nmake +0 -23
  349. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/api.h +0 -50
  350. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/ntt.c +0 -98
  351. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/ntt.h +0 -10
  352. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/packing.c +0 -261
  353. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/packing.h +0 -31
  354. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/params.h +0 -44
  355. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/poly.c +0 -848
  356. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/poly.h +0 -52
  357. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/polyvec.c +0 -415
  358. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/polyvec.h +0 -65
  359. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/reduce.c +0 -69
  360. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/reduce.h +0 -17
  361. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/rounding.c +0 -98
  362. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/rounding.h +0 -14
  363. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/sign.c +0 -407
  364. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/sign.h +0 -47
  365. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/symmetric-shake.c +0 -26
  366. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-44/clean/symmetric.h +0 -34
  367. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/LICENSE +0 -5
  368. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/Makefile +0 -19
  369. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/Makefile.Microsoft_nmake +0 -23
  370. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/api.h +0 -50
  371. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/ntt.c +0 -98
  372. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/ntt.h +0 -10
  373. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/packing.c +0 -261
  374. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/packing.h +0 -31
  375. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/params.h +0 -44
  376. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/poly.c +0 -799
  377. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/poly.h +0 -52
  378. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/polyvec.c +0 -415
  379. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/polyvec.h +0 -65
  380. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/reduce.c +0 -69
  381. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/reduce.h +0 -17
  382. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/rounding.c +0 -92
  383. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/rounding.h +0 -14
  384. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/sign.c +0 -407
  385. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/sign.h +0 -47
  386. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/symmetric-shake.c +0 -26
  387. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-65/clean/symmetric.h +0 -34
  388. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/LICENSE +0 -5
  389. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/Makefile +0 -19
  390. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/Makefile.Microsoft_nmake +0 -23
  391. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/api.h +0 -50
  392. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/ntt.c +0 -98
  393. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/ntt.h +0 -10
  394. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/packing.c +0 -261
  395. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/packing.h +0 -31
  396. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/params.h +0 -44
  397. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/poly.c +0 -823
  398. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/poly.h +0 -52
  399. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/polyvec.c +0 -415
  400. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/polyvec.h +0 -65
  401. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/reduce.c +0 -69
  402. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/reduce.h +0 -17
  403. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/rounding.c +0 -92
  404. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/rounding.h +0 -14
  405. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/sign.c +0 -407
  406. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/sign.h +0 -47
  407. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/symmetric-shake.c +0 -26
  408. data/ext/pqcrypto/vendor/pqclean/crypto_sign/ml-dsa-87/clean/symmetric.h +0 -34
@@ -0,0 +1,2311 @@
1
+ /*
2
+ * Copyright (c) The mlkem-native project authors
3
+ * Copyright (c) The mldsa-native project authors
4
+ * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT
5
+ */
6
+
7
+ /* References
8
+ * ==========
9
+ *
10
+ * - [REF_AVX2]
11
+ * CRYSTALS-Dilithium optimized AVX2 implementation
12
+ * Bai, Ducas, Kiltz, Lepoint, Lyubashevsky, Schwabe, Seiler, Stehlé
13
+ * https://github.com/pq-crystals/dilithium/tree/master/avx2
14
+ */
15
+
16
+ /*
17
+ * This file is derived from the public domain
18
+ * AVX2 Dilithium implementation @[REF_AVX2].
19
+ */
20
+
21
+ #include "../../../common.h"
22
+ #if defined(MLD_ARITH_BACKEND_X86_64_DEFAULT) && \
23
+ !defined(MLD_CONFIG_MULTILEVEL_NO_SHARED)
24
+
25
+ /*
26
+ * WARNING: This file is auto-derived from the mldsa-native source file
27
+ * dev/x86_64/src/intt.S using scripts/simpasm. Do not modify it directly.
28
+ */
29
+
30
+ #if defined(__ELF__)
31
+ .section .note.GNU-stack,"",@progbits
32
+ #endif
33
+
34
+ .text
35
+ .balign 4
36
+ .global MLD_ASM_NAMESPACE(invntt_avx2)
37
+ MLD_ASM_FN_SYMBOL(invntt_avx2)
38
+
39
+ .cfi_startproc
40
+ vmovdqa (%rsi), %ymm0
41
+ vmovdqa (%rdi), %ymm4
42
+ vmovdqa 0x20(%rdi), %ymm5
43
+ vmovdqa 0x40(%rdi), %ymm6
44
+ vmovdqa 0x60(%rdi), %ymm7
45
+ vmovdqa 0x80(%rdi), %ymm8
46
+ vmovdqa 0xa0(%rdi), %ymm9
47
+ vmovdqa 0xc0(%rdi), %ymm10
48
+ vmovdqa 0xe0(%rdi), %ymm11
49
+ vpermq $0x1b, 0x500(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
50
+ vpermq $0x1b, 0x9a0(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
51
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
52
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
53
+ vpsubd %ymm4, %ymm5, %ymm12
54
+ vpaddd %ymm5, %ymm4, %ymm4
55
+ vpmuldq %ymm1, %ymm12, %ymm13
56
+ vmovshdup %ymm12, %ymm5 # ymm5 = ymm12[1,1,3,3,5,5,7,7]
57
+ vpmuldq %ymm3, %ymm5, %ymm14
58
+ vpmuldq %ymm2, %ymm12, %ymm12
59
+ vpmuldq %ymm15, %ymm5, %ymm5
60
+ vpmuldq %ymm0, %ymm13, %ymm13
61
+ vpmuldq %ymm0, %ymm14, %ymm14
62
+ vpsubd %ymm13, %ymm12, %ymm12
63
+ vpsubd %ymm14, %ymm5, %ymm5
64
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
65
+ vpblendd $0xaa, %ymm5, %ymm12, %ymm5 # ymm5 = ymm12[0],ymm5[1],ymm12[2],ymm5[3],ymm12[4],ymm5[5],ymm12[6],ymm5[7]
66
+ vpermq $0x1b, 0x480(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
67
+ vpermq $0x1b, 0x920(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
68
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
69
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
70
+ vpsubd %ymm6, %ymm7, %ymm12
71
+ vpaddd %ymm7, %ymm6, %ymm6
72
+ vpmuldq %ymm1, %ymm12, %ymm13
73
+ vmovshdup %ymm12, %ymm7 # ymm7 = ymm12[1,1,3,3,5,5,7,7]
74
+ vpmuldq %ymm3, %ymm7, %ymm14
75
+ vpmuldq %ymm2, %ymm12, %ymm12
76
+ vpmuldq %ymm15, %ymm7, %ymm7
77
+ vpmuldq %ymm0, %ymm13, %ymm13
78
+ vpmuldq %ymm0, %ymm14, %ymm14
79
+ vpsubd %ymm13, %ymm12, %ymm12
80
+ vpsubd %ymm14, %ymm7, %ymm7
81
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
82
+ vpblendd $0xaa, %ymm7, %ymm12, %ymm7 # ymm7 = ymm12[0],ymm7[1],ymm12[2],ymm7[3],ymm12[4],ymm7[5],ymm12[6],ymm7[7]
83
+ vpermq $0x1b, 0x400(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
84
+ vpermq $0x1b, 0x8a0(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
85
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
86
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
87
+ vpsubd %ymm8, %ymm9, %ymm12
88
+ vpaddd %ymm9, %ymm8, %ymm8
89
+ vpmuldq %ymm1, %ymm12, %ymm13
90
+ vmovshdup %ymm12, %ymm9 # ymm9 = ymm12[1,1,3,3,5,5,7,7]
91
+ vpmuldq %ymm3, %ymm9, %ymm14
92
+ vpmuldq %ymm2, %ymm12, %ymm12
93
+ vpmuldq %ymm15, %ymm9, %ymm9
94
+ vpmuldq %ymm0, %ymm13, %ymm13
95
+ vpmuldq %ymm0, %ymm14, %ymm14
96
+ vpsubd %ymm13, %ymm12, %ymm12
97
+ vpsubd %ymm14, %ymm9, %ymm9
98
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
99
+ vpblendd $0xaa, %ymm9, %ymm12, %ymm9 # ymm9 = ymm12[0],ymm9[1],ymm12[2],ymm9[3],ymm12[4],ymm9[5],ymm12[6],ymm9[7]
100
+ vpermq $0x1b, 0x380(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
101
+ vpermq $0x1b, 0x820(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
102
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
103
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
104
+ vpsubd %ymm10, %ymm11, %ymm12
105
+ vpaddd %ymm11, %ymm10, %ymm10
106
+ vpmuldq %ymm1, %ymm12, %ymm13
107
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
108
+ vpmuldq %ymm3, %ymm11, %ymm14
109
+ vpmuldq %ymm2, %ymm12, %ymm12
110
+ vpmuldq %ymm15, %ymm11, %ymm11
111
+ vpmuldq %ymm0, %ymm13, %ymm13
112
+ vpmuldq %ymm0, %ymm14, %ymm14
113
+ vpsubd %ymm13, %ymm12, %ymm12
114
+ vpsubd %ymm14, %ymm11, %ymm11
115
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
116
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
117
+ vpermq $0x1b, 0x300(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
118
+ vpermq $0x1b, 0x7a0(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
119
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
120
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
121
+ vpsubd %ymm4, %ymm6, %ymm12
122
+ vpaddd %ymm6, %ymm4, %ymm4
123
+ vpmuldq %ymm1, %ymm12, %ymm13
124
+ vmovshdup %ymm12, %ymm6 # ymm6 = ymm12[1,1,3,3,5,5,7,7]
125
+ vpmuldq %ymm3, %ymm6, %ymm14
126
+ vpmuldq %ymm2, %ymm12, %ymm12
127
+ vpmuldq %ymm15, %ymm6, %ymm6
128
+ vpmuldq %ymm0, %ymm13, %ymm13
129
+ vpmuldq %ymm0, %ymm14, %ymm14
130
+ vpsubd %ymm13, %ymm12, %ymm12
131
+ vpsubd %ymm14, %ymm6, %ymm6
132
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
133
+ vpblendd $0xaa, %ymm6, %ymm12, %ymm6 # ymm6 = ymm12[0],ymm6[1],ymm12[2],ymm6[3],ymm12[4],ymm6[5],ymm12[6],ymm6[7]
134
+ vpsubd %ymm5, %ymm7, %ymm12
135
+ vpaddd %ymm7, %ymm5, %ymm5
136
+ vpmuldq %ymm1, %ymm12, %ymm13
137
+ vmovshdup %ymm12, %ymm7 # ymm7 = ymm12[1,1,3,3,5,5,7,7]
138
+ vpmuldq %ymm3, %ymm7, %ymm14
139
+ vpmuldq %ymm2, %ymm12, %ymm12
140
+ vpmuldq %ymm15, %ymm7, %ymm7
141
+ vpmuldq %ymm0, %ymm13, %ymm13
142
+ vpmuldq %ymm0, %ymm14, %ymm14
143
+ vpsubd %ymm13, %ymm12, %ymm12
144
+ vpsubd %ymm14, %ymm7, %ymm7
145
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
146
+ vpblendd $0xaa, %ymm7, %ymm12, %ymm7 # ymm7 = ymm12[0],ymm7[1],ymm12[2],ymm7[3],ymm12[4],ymm7[5],ymm12[6],ymm7[7]
147
+ vpermq $0x1b, 0x280(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
148
+ vpermq $0x1b, 0x720(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
149
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
150
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
151
+ vpsubd %ymm8, %ymm10, %ymm12
152
+ vpaddd %ymm10, %ymm8, %ymm8
153
+ vpmuldq %ymm1, %ymm12, %ymm13
154
+ vmovshdup %ymm12, %ymm10 # ymm10 = ymm12[1,1,3,3,5,5,7,7]
155
+ vpmuldq %ymm3, %ymm10, %ymm14
156
+ vpmuldq %ymm2, %ymm12, %ymm12
157
+ vpmuldq %ymm15, %ymm10, %ymm10
158
+ vpmuldq %ymm0, %ymm13, %ymm13
159
+ vpmuldq %ymm0, %ymm14, %ymm14
160
+ vpsubd %ymm13, %ymm12, %ymm12
161
+ vpsubd %ymm14, %ymm10, %ymm10
162
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
163
+ vpblendd $0xaa, %ymm10, %ymm12, %ymm10 # ymm10 = ymm12[0],ymm10[1],ymm12[2],ymm10[3],ymm12[4],ymm10[5],ymm12[6],ymm10[7]
164
+ vpsubd %ymm9, %ymm11, %ymm12
165
+ vpaddd %ymm11, %ymm9, %ymm9
166
+ vpmuldq %ymm1, %ymm12, %ymm13
167
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
168
+ vpmuldq %ymm3, %ymm11, %ymm14
169
+ vpmuldq %ymm2, %ymm12, %ymm12
170
+ vpmuldq %ymm15, %ymm11, %ymm11
171
+ vpmuldq %ymm0, %ymm13, %ymm13
172
+ vpmuldq %ymm0, %ymm14, %ymm14
173
+ vpsubd %ymm13, %ymm12, %ymm12
174
+ vpsubd %ymm14, %ymm11, %ymm11
175
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
176
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
177
+ vpermq $0x1b, 0x200(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
178
+ vpermq $0x1b, 0x6a0(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
179
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
180
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
181
+ vpsubd %ymm4, %ymm8, %ymm12
182
+ vpaddd %ymm4, %ymm8, %ymm4
183
+ vpmuldq %ymm1, %ymm12, %ymm13
184
+ vmovshdup %ymm12, %ymm8 # ymm8 = ymm12[1,1,3,3,5,5,7,7]
185
+ vpmuldq %ymm3, %ymm8, %ymm14
186
+ vpmuldq %ymm2, %ymm12, %ymm12
187
+ vpmuldq %ymm15, %ymm8, %ymm8
188
+ vpmuldq %ymm0, %ymm13, %ymm13
189
+ vpmuldq %ymm0, %ymm14, %ymm14
190
+ vpsubd %ymm13, %ymm12, %ymm12
191
+ vpsubd %ymm14, %ymm8, %ymm8
192
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
193
+ vpblendd $0xaa, %ymm8, %ymm12, %ymm8 # ymm8 = ymm12[0],ymm8[1],ymm12[2],ymm8[3],ymm12[4],ymm8[5],ymm12[6],ymm8[7]
194
+ vpsubd %ymm5, %ymm9, %ymm12
195
+ vpaddd %ymm5, %ymm9, %ymm5
196
+ vpmuldq %ymm1, %ymm12, %ymm13
197
+ vmovshdup %ymm12, %ymm9 # ymm9 = ymm12[1,1,3,3,5,5,7,7]
198
+ vpmuldq %ymm3, %ymm9, %ymm14
199
+ vpmuldq %ymm2, %ymm12, %ymm12
200
+ vpmuldq %ymm15, %ymm9, %ymm9
201
+ vpmuldq %ymm0, %ymm13, %ymm13
202
+ vpmuldq %ymm0, %ymm14, %ymm14
203
+ vpsubd %ymm13, %ymm12, %ymm12
204
+ vpsubd %ymm14, %ymm9, %ymm9
205
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
206
+ vpblendd $0xaa, %ymm9, %ymm12, %ymm9 # ymm9 = ymm12[0],ymm9[1],ymm12[2],ymm9[3],ymm12[4],ymm9[5],ymm12[6],ymm9[7]
207
+ vpsubd %ymm6, %ymm10, %ymm12
208
+ vpaddd %ymm6, %ymm10, %ymm6
209
+ vpmuldq %ymm1, %ymm12, %ymm13
210
+ vmovshdup %ymm12, %ymm10 # ymm10 = ymm12[1,1,3,3,5,5,7,7]
211
+ vpmuldq %ymm3, %ymm10, %ymm14
212
+ vpmuldq %ymm2, %ymm12, %ymm12
213
+ vpmuldq %ymm15, %ymm10, %ymm10
214
+ vpmuldq %ymm0, %ymm13, %ymm13
215
+ vpmuldq %ymm0, %ymm14, %ymm14
216
+ vpsubd %ymm13, %ymm12, %ymm12
217
+ vpsubd %ymm14, %ymm10, %ymm10
218
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
219
+ vpblendd $0xaa, %ymm10, %ymm12, %ymm10 # ymm10 = ymm12[0],ymm10[1],ymm12[2],ymm10[3],ymm12[4],ymm10[5],ymm12[6],ymm10[7]
220
+ vpsubd %ymm7, %ymm11, %ymm12
221
+ vpaddd %ymm7, %ymm11, %ymm7
222
+ vpmuldq %ymm1, %ymm12, %ymm13
223
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
224
+ vpmuldq %ymm3, %ymm11, %ymm14
225
+ vpmuldq %ymm2, %ymm12, %ymm12
226
+ vpmuldq %ymm15, %ymm11, %ymm11
227
+ vpmuldq %ymm0, %ymm13, %ymm13
228
+ vpmuldq %ymm0, %ymm14, %ymm14
229
+ vpsubd %ymm13, %ymm12, %ymm12
230
+ vpsubd %ymm14, %ymm11, %ymm11
231
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
232
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
233
+ vmovsldup %ymm5, %ymm3 # ymm3 = ymm5[0,0,2,2,4,4,6,6]
234
+ vpblendd $0xaa, %ymm3, %ymm4, %ymm3 # ymm3 = ymm4[0],ymm3[1],ymm4[2],ymm3[3],ymm4[4],ymm3[5],ymm4[6],ymm3[7]
235
+ vpsrlq $0x20, %ymm4, %ymm4
236
+ vpblendd $0xaa, %ymm5, %ymm4, %ymm5 # ymm5 = ymm4[0],ymm5[1],ymm4[2],ymm5[3],ymm4[4],ymm5[5],ymm4[6],ymm5[7]
237
+ vmovsldup %ymm7, %ymm4 # ymm4 = ymm7[0,0,2,2,4,4,6,6]
238
+ vpblendd $0xaa, %ymm4, %ymm6, %ymm4 # ymm4 = ymm6[0],ymm4[1],ymm6[2],ymm4[3],ymm6[4],ymm4[5],ymm6[6],ymm4[7]
239
+ vpsrlq $0x20, %ymm6, %ymm6
240
+ vpblendd $0xaa, %ymm7, %ymm6, %ymm7 # ymm7 = ymm6[0],ymm7[1],ymm6[2],ymm7[3],ymm6[4],ymm7[5],ymm6[6],ymm7[7]
241
+ vmovsldup %ymm9, %ymm6 # ymm6 = ymm9[0,0,2,2,4,4,6,6]
242
+ vpblendd $0xaa, %ymm6, %ymm8, %ymm6 # ymm6 = ymm8[0],ymm6[1],ymm8[2],ymm6[3],ymm8[4],ymm6[5],ymm8[6],ymm6[7]
243
+ vpsrlq $0x20, %ymm8, %ymm8
244
+ vpblendd $0xaa, %ymm9, %ymm8, %ymm9 # ymm9 = ymm8[0],ymm9[1],ymm8[2],ymm9[3],ymm8[4],ymm9[5],ymm8[6],ymm9[7]
245
+ vmovsldup %ymm11, %ymm8 # ymm8 = ymm11[0,0,2,2,4,4,6,6]
246
+ vpblendd $0xaa, %ymm8, %ymm10, %ymm8 # ymm8 = ymm10[0],ymm8[1],ymm10[2],ymm8[3],ymm10[4],ymm8[5],ymm10[6],ymm8[7]
247
+ vpsrlq $0x20, %ymm10, %ymm10
248
+ vpblendd $0xaa, %ymm11, %ymm10, %ymm11 # ymm11 = ymm10[0],ymm11[1],ymm10[2],ymm11[3],ymm10[4],ymm11[5],ymm10[6],ymm11[7]
249
+ vpermq $0x1b, 0x180(%rsi), %ymm1 # ymm1 = mem[3,2,1,0]
250
+ vpermq $0x1b, 0x620(%rsi), %ymm2 # ymm2 = mem[3,2,1,0]
251
+ vpsubd %ymm3, %ymm5, %ymm12
252
+ vpaddd %ymm5, %ymm3, %ymm3
253
+ vpmuldq %ymm1, %ymm12, %ymm13
254
+ vmovshdup %ymm12, %ymm5 # ymm5 = ymm12[1,1,3,3,5,5,7,7]
255
+ vpmuldq %ymm1, %ymm5, %ymm14
256
+ vpmuldq %ymm2, %ymm12, %ymm12
257
+ vpmuldq %ymm2, %ymm5, %ymm5
258
+ vpmuldq %ymm0, %ymm13, %ymm13
259
+ vpmuldq %ymm0, %ymm14, %ymm14
260
+ vpsubd %ymm13, %ymm12, %ymm12
261
+ vpsubd %ymm14, %ymm5, %ymm5
262
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
263
+ vpblendd $0xaa, %ymm5, %ymm12, %ymm5 # ymm5 = ymm12[0],ymm5[1],ymm12[2],ymm5[3],ymm12[4],ymm5[5],ymm12[6],ymm5[7]
264
+ vpsubd %ymm4, %ymm7, %ymm12
265
+ vpaddd %ymm7, %ymm4, %ymm4
266
+ vpmuldq %ymm1, %ymm12, %ymm13
267
+ vmovshdup %ymm12, %ymm7 # ymm7 = ymm12[1,1,3,3,5,5,7,7]
268
+ vpmuldq %ymm1, %ymm7, %ymm14
269
+ vpmuldq %ymm2, %ymm12, %ymm12
270
+ vpmuldq %ymm2, %ymm7, %ymm7
271
+ vpmuldq %ymm0, %ymm13, %ymm13
272
+ vpmuldq %ymm0, %ymm14, %ymm14
273
+ vpsubd %ymm13, %ymm12, %ymm12
274
+ vpsubd %ymm14, %ymm7, %ymm7
275
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
276
+ vpblendd $0xaa, %ymm7, %ymm12, %ymm7 # ymm7 = ymm12[0],ymm7[1],ymm12[2],ymm7[3],ymm12[4],ymm7[5],ymm12[6],ymm7[7]
277
+ vpsubd %ymm6, %ymm9, %ymm12
278
+ vpaddd %ymm6, %ymm9, %ymm6
279
+ vpmuldq %ymm1, %ymm12, %ymm13
280
+ vmovshdup %ymm12, %ymm9 # ymm9 = ymm12[1,1,3,3,5,5,7,7]
281
+ vpmuldq %ymm1, %ymm9, %ymm14
282
+ vpmuldq %ymm2, %ymm12, %ymm12
283
+ vpmuldq %ymm2, %ymm9, %ymm9
284
+ vpmuldq %ymm0, %ymm13, %ymm13
285
+ vpmuldq %ymm0, %ymm14, %ymm14
286
+ vpsubd %ymm13, %ymm12, %ymm12
287
+ vpsubd %ymm14, %ymm9, %ymm9
288
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
289
+ vpblendd $0xaa, %ymm9, %ymm12, %ymm9 # ymm9 = ymm12[0],ymm9[1],ymm12[2],ymm9[3],ymm12[4],ymm9[5],ymm12[6],ymm9[7]
290
+ vpsubd %ymm8, %ymm11, %ymm12
291
+ vpaddd %ymm11, %ymm8, %ymm8
292
+ vpmuldq %ymm1, %ymm12, %ymm13
293
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
294
+ vpmuldq %ymm1, %ymm11, %ymm14
295
+ vpmuldq %ymm2, %ymm12, %ymm12
296
+ vpmuldq %ymm2, %ymm11, %ymm11
297
+ vpmuldq %ymm0, %ymm13, %ymm13
298
+ vpmuldq %ymm0, %ymm14, %ymm14
299
+ vpsubd %ymm13, %ymm12, %ymm12
300
+ vpsubd %ymm14, %ymm11, %ymm11
301
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
302
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
303
+ vpunpcklqdq %ymm4, %ymm3, %ymm10 # ymm10 = ymm3[0],ymm4[0],ymm3[2],ymm4[2]
304
+ vpunpckhqdq %ymm4, %ymm3, %ymm4 # ymm4 = ymm3[1],ymm4[1],ymm3[3],ymm4[3]
305
+ vpunpcklqdq %ymm8, %ymm6, %ymm3 # ymm3 = ymm6[0],ymm8[0],ymm6[2],ymm8[2]
306
+ vpunpckhqdq %ymm8, %ymm6, %ymm8 # ymm8 = ymm6[1],ymm8[1],ymm6[3],ymm8[3]
307
+ vpunpcklqdq %ymm7, %ymm5, %ymm6 # ymm6 = ymm5[0],ymm7[0],ymm5[2],ymm7[2]
308
+ vpunpckhqdq %ymm7, %ymm5, %ymm7 # ymm7 = ymm5[1],ymm7[1],ymm5[3],ymm7[3]
309
+ vpunpcklqdq %ymm11, %ymm9, %ymm5 # ymm5 = ymm9[0],ymm11[0],ymm9[2],ymm11[2]
310
+ vpunpckhqdq %ymm11, %ymm9, %ymm11 # ymm11 = ymm9[1],ymm11[1],ymm9[3],ymm11[3]
311
+ vpermq $0x1b, 0x100(%rsi), %ymm1 # ymm1 = mem[3,2,1,0]
312
+ vpermq $0x1b, 0x5a0(%rsi), %ymm2 # ymm2 = mem[3,2,1,0]
313
+ vpsubd %ymm10, %ymm4, %ymm12
314
+ vpaddd %ymm4, %ymm10, %ymm10
315
+ vpmuldq %ymm1, %ymm12, %ymm13
316
+ vmovshdup %ymm12, %ymm4 # ymm4 = ymm12[1,1,3,3,5,5,7,7]
317
+ vpmuldq %ymm1, %ymm4, %ymm14
318
+ vpmuldq %ymm2, %ymm12, %ymm12
319
+ vpmuldq %ymm2, %ymm4, %ymm4
320
+ vpmuldq %ymm0, %ymm13, %ymm13
321
+ vpmuldq %ymm0, %ymm14, %ymm14
322
+ vpsubd %ymm13, %ymm12, %ymm12
323
+ vpsubd %ymm14, %ymm4, %ymm4
324
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
325
+ vpblendd $0xaa, %ymm4, %ymm12, %ymm4 # ymm4 = ymm12[0],ymm4[1],ymm12[2],ymm4[3],ymm12[4],ymm4[5],ymm12[6],ymm4[7]
326
+ vpsubd %ymm3, %ymm8, %ymm12
327
+ vpaddd %ymm3, %ymm8, %ymm3
328
+ vpmuldq %ymm1, %ymm12, %ymm13
329
+ vmovshdup %ymm12, %ymm8 # ymm8 = ymm12[1,1,3,3,5,5,7,7]
330
+ vpmuldq %ymm1, %ymm8, %ymm14
331
+ vpmuldq %ymm2, %ymm12, %ymm12
332
+ vpmuldq %ymm2, %ymm8, %ymm8
333
+ vpmuldq %ymm0, %ymm13, %ymm13
334
+ vpmuldq %ymm0, %ymm14, %ymm14
335
+ vpsubd %ymm13, %ymm12, %ymm12
336
+ vpsubd %ymm14, %ymm8, %ymm8
337
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
338
+ vpblendd $0xaa, %ymm8, %ymm12, %ymm8 # ymm8 = ymm12[0],ymm8[1],ymm12[2],ymm8[3],ymm12[4],ymm8[5],ymm12[6],ymm8[7]
339
+ vpsubd %ymm6, %ymm7, %ymm12
340
+ vpaddd %ymm7, %ymm6, %ymm6
341
+ vpmuldq %ymm1, %ymm12, %ymm13
342
+ vmovshdup %ymm12, %ymm7 # ymm7 = ymm12[1,1,3,3,5,5,7,7]
343
+ vpmuldq %ymm1, %ymm7, %ymm14
344
+ vpmuldq %ymm2, %ymm12, %ymm12
345
+ vpmuldq %ymm2, %ymm7, %ymm7
346
+ vpmuldq %ymm0, %ymm13, %ymm13
347
+ vpmuldq %ymm0, %ymm14, %ymm14
348
+ vpsubd %ymm13, %ymm12, %ymm12
349
+ vpsubd %ymm14, %ymm7, %ymm7
350
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
351
+ vpblendd $0xaa, %ymm7, %ymm12, %ymm7 # ymm7 = ymm12[0],ymm7[1],ymm12[2],ymm7[3],ymm12[4],ymm7[5],ymm12[6],ymm7[7]
352
+ vpsubd %ymm5, %ymm11, %ymm12
353
+ vpaddd %ymm5, %ymm11, %ymm5
354
+ vpmuldq %ymm1, %ymm12, %ymm13
355
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
356
+ vpmuldq %ymm1, %ymm11, %ymm14
357
+ vpmuldq %ymm2, %ymm12, %ymm12
358
+ vpmuldq %ymm2, %ymm11, %ymm11
359
+ vpmuldq %ymm0, %ymm13, %ymm13
360
+ vpmuldq %ymm0, %ymm14, %ymm14
361
+ vpsubd %ymm13, %ymm12, %ymm12
362
+ vpsubd %ymm14, %ymm11, %ymm11
363
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
364
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
365
+ vperm2i128 $0x20, %ymm3, %ymm10, %ymm9 # ymm9 = ymm10[0,1],ymm3[0,1]
366
+ vperm2i128 $0x31, %ymm3, %ymm10, %ymm3 # ymm3 = ymm10[2,3],ymm3[2,3]
367
+ vperm2i128 $0x20, %ymm5, %ymm6, %ymm10 # ymm10 = ymm6[0,1],ymm5[0,1]
368
+ vperm2i128 $0x31, %ymm5, %ymm6, %ymm5 # ymm5 = ymm6[2,3],ymm5[2,3]
369
+ vperm2i128 $0x20, %ymm8, %ymm4, %ymm6 # ymm6 = ymm4[0,1],ymm8[0,1]
370
+ vperm2i128 $0x31, %ymm8, %ymm4, %ymm8 # ymm8 = ymm4[2,3],ymm8[2,3]
371
+ vperm2i128 $0x20, %ymm11, %ymm7, %ymm4 # ymm4 = ymm7[0,1],ymm11[0,1]
372
+ vperm2i128 $0x31, %ymm11, %ymm7, %ymm11 # ymm11 = ymm7[2,3],ymm11[2,3]
373
+ vpbroadcastd 0x9c(%rsi), %ymm1
374
+ vpbroadcastd 0x53c(%rsi), %ymm2
375
+ vpsubd %ymm9, %ymm3, %ymm12
376
+ vpaddd %ymm3, %ymm9, %ymm9
377
+ vpmuldq %ymm1, %ymm12, %ymm13
378
+ vmovshdup %ymm12, %ymm3 # ymm3 = ymm12[1,1,3,3,5,5,7,7]
379
+ vpmuldq %ymm1, %ymm3, %ymm14
380
+ vpmuldq %ymm2, %ymm12, %ymm12
381
+ vpmuldq %ymm2, %ymm3, %ymm3
382
+ vpmuldq %ymm0, %ymm13, %ymm13
383
+ vpmuldq %ymm0, %ymm14, %ymm14
384
+ vpsubd %ymm13, %ymm12, %ymm12
385
+ vpsubd %ymm14, %ymm3, %ymm3
386
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
387
+ vpblendd $0xaa, %ymm3, %ymm12, %ymm3 # ymm3 = ymm12[0],ymm3[1],ymm12[2],ymm3[3],ymm12[4],ymm3[5],ymm12[6],ymm3[7]
388
+ vpsubd %ymm10, %ymm5, %ymm12
389
+ vpaddd %ymm5, %ymm10, %ymm10
390
+ vpmuldq %ymm1, %ymm12, %ymm13
391
+ vmovshdup %ymm12, %ymm5 # ymm5 = ymm12[1,1,3,3,5,5,7,7]
392
+ vpmuldq %ymm1, %ymm5, %ymm14
393
+ vpmuldq %ymm2, %ymm12, %ymm12
394
+ vpmuldq %ymm2, %ymm5, %ymm5
395
+ vpmuldq %ymm0, %ymm13, %ymm13
396
+ vpmuldq %ymm0, %ymm14, %ymm14
397
+ vpsubd %ymm13, %ymm12, %ymm12
398
+ vpsubd %ymm14, %ymm5, %ymm5
399
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
400
+ vpblendd $0xaa, %ymm5, %ymm12, %ymm5 # ymm5 = ymm12[0],ymm5[1],ymm12[2],ymm5[3],ymm12[4],ymm5[5],ymm12[6],ymm5[7]
401
+ vpsubd %ymm6, %ymm8, %ymm12
402
+ vpaddd %ymm6, %ymm8, %ymm6
403
+ vpmuldq %ymm1, %ymm12, %ymm13
404
+ vmovshdup %ymm12, %ymm8 # ymm8 = ymm12[1,1,3,3,5,5,7,7]
405
+ vpmuldq %ymm1, %ymm8, %ymm14
406
+ vpmuldq %ymm2, %ymm12, %ymm12
407
+ vpmuldq %ymm2, %ymm8, %ymm8
408
+ vpmuldq %ymm0, %ymm13, %ymm13
409
+ vpmuldq %ymm0, %ymm14, %ymm14
410
+ vpsubd %ymm13, %ymm12, %ymm12
411
+ vpsubd %ymm14, %ymm8, %ymm8
412
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
413
+ vpblendd $0xaa, %ymm8, %ymm12, %ymm8 # ymm8 = ymm12[0],ymm8[1],ymm12[2],ymm8[3],ymm12[4],ymm8[5],ymm12[6],ymm8[7]
414
+ vpsubd %ymm4, %ymm11, %ymm12
415
+ vpaddd %ymm4, %ymm11, %ymm4
416
+ vpmuldq %ymm1, %ymm12, %ymm13
417
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
418
+ vpmuldq %ymm1, %ymm11, %ymm14
419
+ vpmuldq %ymm2, %ymm12, %ymm12
420
+ vpmuldq %ymm2, %ymm11, %ymm11
421
+ vpmuldq %ymm0, %ymm13, %ymm13
422
+ vpmuldq %ymm0, %ymm14, %ymm14
423
+ vpsubd %ymm13, %ymm12, %ymm12
424
+ vpsubd %ymm14, %ymm11, %ymm11
425
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
426
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
427
+ vmovdqa %ymm9, (%rdi)
428
+ vmovdqa %ymm10, 0x20(%rdi)
429
+ vmovdqa %ymm6, 0x40(%rdi)
430
+ vmovdqa %ymm4, 0x60(%rdi)
431
+ vmovdqa %ymm3, 0x80(%rdi)
432
+ vmovdqa %ymm5, 0xa0(%rdi)
433
+ vmovdqa %ymm8, 0xc0(%rdi)
434
+ vmovdqa %ymm11, 0xe0(%rdi)
435
+ vmovdqa 0x100(%rdi), %ymm4
436
+ vmovdqa 0x120(%rdi), %ymm5
437
+ vmovdqa 0x140(%rdi), %ymm6
438
+ vmovdqa 0x160(%rdi), %ymm7
439
+ vmovdqa 0x180(%rdi), %ymm8
440
+ vmovdqa 0x1a0(%rdi), %ymm9
441
+ vmovdqa 0x1c0(%rdi), %ymm10
442
+ vmovdqa 0x1e0(%rdi), %ymm11
443
+ vpermq $0x1b, 0x4e0(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
444
+ vpermq $0x1b, 0x980(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
445
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
446
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
447
+ vpsubd %ymm4, %ymm5, %ymm12
448
+ vpaddd %ymm5, %ymm4, %ymm4
449
+ vpmuldq %ymm1, %ymm12, %ymm13
450
+ vmovshdup %ymm12, %ymm5 # ymm5 = ymm12[1,1,3,3,5,5,7,7]
451
+ vpmuldq %ymm3, %ymm5, %ymm14
452
+ vpmuldq %ymm2, %ymm12, %ymm12
453
+ vpmuldq %ymm15, %ymm5, %ymm5
454
+ vpmuldq %ymm0, %ymm13, %ymm13
455
+ vpmuldq %ymm0, %ymm14, %ymm14
456
+ vpsubd %ymm13, %ymm12, %ymm12
457
+ vpsubd %ymm14, %ymm5, %ymm5
458
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
459
+ vpblendd $0xaa, %ymm5, %ymm12, %ymm5 # ymm5 = ymm12[0],ymm5[1],ymm12[2],ymm5[3],ymm12[4],ymm5[5],ymm12[6],ymm5[7]
460
+ vpermq $0x1b, 0x460(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
461
+ vpermq $0x1b, 0x900(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
462
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
463
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
464
+ vpsubd %ymm6, %ymm7, %ymm12
465
+ vpaddd %ymm7, %ymm6, %ymm6
466
+ vpmuldq %ymm1, %ymm12, %ymm13
467
+ vmovshdup %ymm12, %ymm7 # ymm7 = ymm12[1,1,3,3,5,5,7,7]
468
+ vpmuldq %ymm3, %ymm7, %ymm14
469
+ vpmuldq %ymm2, %ymm12, %ymm12
470
+ vpmuldq %ymm15, %ymm7, %ymm7
471
+ vpmuldq %ymm0, %ymm13, %ymm13
472
+ vpmuldq %ymm0, %ymm14, %ymm14
473
+ vpsubd %ymm13, %ymm12, %ymm12
474
+ vpsubd %ymm14, %ymm7, %ymm7
475
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
476
+ vpblendd $0xaa, %ymm7, %ymm12, %ymm7 # ymm7 = ymm12[0],ymm7[1],ymm12[2],ymm7[3],ymm12[4],ymm7[5],ymm12[6],ymm7[7]
477
+ vpermq $0x1b, 0x3e0(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
478
+ vpermq $0x1b, 0x880(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
479
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
480
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
481
+ vpsubd %ymm8, %ymm9, %ymm12
482
+ vpaddd %ymm9, %ymm8, %ymm8
483
+ vpmuldq %ymm1, %ymm12, %ymm13
484
+ vmovshdup %ymm12, %ymm9 # ymm9 = ymm12[1,1,3,3,5,5,7,7]
485
+ vpmuldq %ymm3, %ymm9, %ymm14
486
+ vpmuldq %ymm2, %ymm12, %ymm12
487
+ vpmuldq %ymm15, %ymm9, %ymm9
488
+ vpmuldq %ymm0, %ymm13, %ymm13
489
+ vpmuldq %ymm0, %ymm14, %ymm14
490
+ vpsubd %ymm13, %ymm12, %ymm12
491
+ vpsubd %ymm14, %ymm9, %ymm9
492
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
493
+ vpblendd $0xaa, %ymm9, %ymm12, %ymm9 # ymm9 = ymm12[0],ymm9[1],ymm12[2],ymm9[3],ymm12[4],ymm9[5],ymm12[6],ymm9[7]
494
+ vpermq $0x1b, 0x360(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
495
+ vpermq $0x1b, 0x800(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
496
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
497
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
498
+ vpsubd %ymm10, %ymm11, %ymm12
499
+ vpaddd %ymm11, %ymm10, %ymm10
500
+ vpmuldq %ymm1, %ymm12, %ymm13
501
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
502
+ vpmuldq %ymm3, %ymm11, %ymm14
503
+ vpmuldq %ymm2, %ymm12, %ymm12
504
+ vpmuldq %ymm15, %ymm11, %ymm11
505
+ vpmuldq %ymm0, %ymm13, %ymm13
506
+ vpmuldq %ymm0, %ymm14, %ymm14
507
+ vpsubd %ymm13, %ymm12, %ymm12
508
+ vpsubd %ymm14, %ymm11, %ymm11
509
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
510
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
511
+ vpermq $0x1b, 0x2e0(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
512
+ vpermq $0x1b, 0x780(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
513
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
514
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
515
+ vpsubd %ymm4, %ymm6, %ymm12
516
+ vpaddd %ymm6, %ymm4, %ymm4
517
+ vpmuldq %ymm1, %ymm12, %ymm13
518
+ vmovshdup %ymm12, %ymm6 # ymm6 = ymm12[1,1,3,3,5,5,7,7]
519
+ vpmuldq %ymm3, %ymm6, %ymm14
520
+ vpmuldq %ymm2, %ymm12, %ymm12
521
+ vpmuldq %ymm15, %ymm6, %ymm6
522
+ vpmuldq %ymm0, %ymm13, %ymm13
523
+ vpmuldq %ymm0, %ymm14, %ymm14
524
+ vpsubd %ymm13, %ymm12, %ymm12
525
+ vpsubd %ymm14, %ymm6, %ymm6
526
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
527
+ vpblendd $0xaa, %ymm6, %ymm12, %ymm6 # ymm6 = ymm12[0],ymm6[1],ymm12[2],ymm6[3],ymm12[4],ymm6[5],ymm12[6],ymm6[7]
528
+ vpsubd %ymm5, %ymm7, %ymm12
529
+ vpaddd %ymm7, %ymm5, %ymm5
530
+ vpmuldq %ymm1, %ymm12, %ymm13
531
+ vmovshdup %ymm12, %ymm7 # ymm7 = ymm12[1,1,3,3,5,5,7,7]
532
+ vpmuldq %ymm3, %ymm7, %ymm14
533
+ vpmuldq %ymm2, %ymm12, %ymm12
534
+ vpmuldq %ymm15, %ymm7, %ymm7
535
+ vpmuldq %ymm0, %ymm13, %ymm13
536
+ vpmuldq %ymm0, %ymm14, %ymm14
537
+ vpsubd %ymm13, %ymm12, %ymm12
538
+ vpsubd %ymm14, %ymm7, %ymm7
539
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
540
+ vpblendd $0xaa, %ymm7, %ymm12, %ymm7 # ymm7 = ymm12[0],ymm7[1],ymm12[2],ymm7[3],ymm12[4],ymm7[5],ymm12[6],ymm7[7]
541
+ vpermq $0x1b, 0x260(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
542
+ vpermq $0x1b, 0x700(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
543
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
544
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
545
+ vpsubd %ymm8, %ymm10, %ymm12
546
+ vpaddd %ymm10, %ymm8, %ymm8
547
+ vpmuldq %ymm1, %ymm12, %ymm13
548
+ vmovshdup %ymm12, %ymm10 # ymm10 = ymm12[1,1,3,3,5,5,7,7]
549
+ vpmuldq %ymm3, %ymm10, %ymm14
550
+ vpmuldq %ymm2, %ymm12, %ymm12
551
+ vpmuldq %ymm15, %ymm10, %ymm10
552
+ vpmuldq %ymm0, %ymm13, %ymm13
553
+ vpmuldq %ymm0, %ymm14, %ymm14
554
+ vpsubd %ymm13, %ymm12, %ymm12
555
+ vpsubd %ymm14, %ymm10, %ymm10
556
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
557
+ vpblendd $0xaa, %ymm10, %ymm12, %ymm10 # ymm10 = ymm12[0],ymm10[1],ymm12[2],ymm10[3],ymm12[4],ymm10[5],ymm12[6],ymm10[7]
558
+ vpsubd %ymm9, %ymm11, %ymm12
559
+ vpaddd %ymm11, %ymm9, %ymm9
560
+ vpmuldq %ymm1, %ymm12, %ymm13
561
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
562
+ vpmuldq %ymm3, %ymm11, %ymm14
563
+ vpmuldq %ymm2, %ymm12, %ymm12
564
+ vpmuldq %ymm15, %ymm11, %ymm11
565
+ vpmuldq %ymm0, %ymm13, %ymm13
566
+ vpmuldq %ymm0, %ymm14, %ymm14
567
+ vpsubd %ymm13, %ymm12, %ymm12
568
+ vpsubd %ymm14, %ymm11, %ymm11
569
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
570
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
571
+ vpermq $0x1b, 0x1e0(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
572
+ vpermq $0x1b, 0x680(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
573
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
574
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
575
+ vpsubd %ymm4, %ymm8, %ymm12
576
+ vpaddd %ymm4, %ymm8, %ymm4
577
+ vpmuldq %ymm1, %ymm12, %ymm13
578
+ vmovshdup %ymm12, %ymm8 # ymm8 = ymm12[1,1,3,3,5,5,7,7]
579
+ vpmuldq %ymm3, %ymm8, %ymm14
580
+ vpmuldq %ymm2, %ymm12, %ymm12
581
+ vpmuldq %ymm15, %ymm8, %ymm8
582
+ vpmuldq %ymm0, %ymm13, %ymm13
583
+ vpmuldq %ymm0, %ymm14, %ymm14
584
+ vpsubd %ymm13, %ymm12, %ymm12
585
+ vpsubd %ymm14, %ymm8, %ymm8
586
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
587
+ vpblendd $0xaa, %ymm8, %ymm12, %ymm8 # ymm8 = ymm12[0],ymm8[1],ymm12[2],ymm8[3],ymm12[4],ymm8[5],ymm12[6],ymm8[7]
588
+ vpsubd %ymm5, %ymm9, %ymm12
589
+ vpaddd %ymm5, %ymm9, %ymm5
590
+ vpmuldq %ymm1, %ymm12, %ymm13
591
+ vmovshdup %ymm12, %ymm9 # ymm9 = ymm12[1,1,3,3,5,5,7,7]
592
+ vpmuldq %ymm3, %ymm9, %ymm14
593
+ vpmuldq %ymm2, %ymm12, %ymm12
594
+ vpmuldq %ymm15, %ymm9, %ymm9
595
+ vpmuldq %ymm0, %ymm13, %ymm13
596
+ vpmuldq %ymm0, %ymm14, %ymm14
597
+ vpsubd %ymm13, %ymm12, %ymm12
598
+ vpsubd %ymm14, %ymm9, %ymm9
599
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
600
+ vpblendd $0xaa, %ymm9, %ymm12, %ymm9 # ymm9 = ymm12[0],ymm9[1],ymm12[2],ymm9[3],ymm12[4],ymm9[5],ymm12[6],ymm9[7]
601
+ vpsubd %ymm6, %ymm10, %ymm12
602
+ vpaddd %ymm6, %ymm10, %ymm6
603
+ vpmuldq %ymm1, %ymm12, %ymm13
604
+ vmovshdup %ymm12, %ymm10 # ymm10 = ymm12[1,1,3,3,5,5,7,7]
605
+ vpmuldq %ymm3, %ymm10, %ymm14
606
+ vpmuldq %ymm2, %ymm12, %ymm12
607
+ vpmuldq %ymm15, %ymm10, %ymm10
608
+ vpmuldq %ymm0, %ymm13, %ymm13
609
+ vpmuldq %ymm0, %ymm14, %ymm14
610
+ vpsubd %ymm13, %ymm12, %ymm12
611
+ vpsubd %ymm14, %ymm10, %ymm10
612
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
613
+ vpblendd $0xaa, %ymm10, %ymm12, %ymm10 # ymm10 = ymm12[0],ymm10[1],ymm12[2],ymm10[3],ymm12[4],ymm10[5],ymm12[6],ymm10[7]
614
+ vpsubd %ymm7, %ymm11, %ymm12
615
+ vpaddd %ymm7, %ymm11, %ymm7
616
+ vpmuldq %ymm1, %ymm12, %ymm13
617
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
618
+ vpmuldq %ymm3, %ymm11, %ymm14
619
+ vpmuldq %ymm2, %ymm12, %ymm12
620
+ vpmuldq %ymm15, %ymm11, %ymm11
621
+ vpmuldq %ymm0, %ymm13, %ymm13
622
+ vpmuldq %ymm0, %ymm14, %ymm14
623
+ vpsubd %ymm13, %ymm12, %ymm12
624
+ vpsubd %ymm14, %ymm11, %ymm11
625
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
626
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
627
+ vmovsldup %ymm5, %ymm3 # ymm3 = ymm5[0,0,2,2,4,4,6,6]
628
+ vpblendd $0xaa, %ymm3, %ymm4, %ymm3 # ymm3 = ymm4[0],ymm3[1],ymm4[2],ymm3[3],ymm4[4],ymm3[5],ymm4[6],ymm3[7]
629
+ vpsrlq $0x20, %ymm4, %ymm4
630
+ vpblendd $0xaa, %ymm5, %ymm4, %ymm5 # ymm5 = ymm4[0],ymm5[1],ymm4[2],ymm5[3],ymm4[4],ymm5[5],ymm4[6],ymm5[7]
631
+ vmovsldup %ymm7, %ymm4 # ymm4 = ymm7[0,0,2,2,4,4,6,6]
632
+ vpblendd $0xaa, %ymm4, %ymm6, %ymm4 # ymm4 = ymm6[0],ymm4[1],ymm6[2],ymm4[3],ymm6[4],ymm4[5],ymm6[6],ymm4[7]
633
+ vpsrlq $0x20, %ymm6, %ymm6
634
+ vpblendd $0xaa, %ymm7, %ymm6, %ymm7 # ymm7 = ymm6[0],ymm7[1],ymm6[2],ymm7[3],ymm6[4],ymm7[5],ymm6[6],ymm7[7]
635
+ vmovsldup %ymm9, %ymm6 # ymm6 = ymm9[0,0,2,2,4,4,6,6]
636
+ vpblendd $0xaa, %ymm6, %ymm8, %ymm6 # ymm6 = ymm8[0],ymm6[1],ymm8[2],ymm6[3],ymm8[4],ymm6[5],ymm8[6],ymm6[7]
637
+ vpsrlq $0x20, %ymm8, %ymm8
638
+ vpblendd $0xaa, %ymm9, %ymm8, %ymm9 # ymm9 = ymm8[0],ymm9[1],ymm8[2],ymm9[3],ymm8[4],ymm9[5],ymm8[6],ymm9[7]
639
+ vmovsldup %ymm11, %ymm8 # ymm8 = ymm11[0,0,2,2,4,4,6,6]
640
+ vpblendd $0xaa, %ymm8, %ymm10, %ymm8 # ymm8 = ymm10[0],ymm8[1],ymm10[2],ymm8[3],ymm10[4],ymm8[5],ymm10[6],ymm8[7]
641
+ vpsrlq $0x20, %ymm10, %ymm10
642
+ vpblendd $0xaa, %ymm11, %ymm10, %ymm11 # ymm11 = ymm10[0],ymm11[1],ymm10[2],ymm11[3],ymm10[4],ymm11[5],ymm10[6],ymm11[7]
643
+ vpermq $0x1b, 0x160(%rsi), %ymm1 # ymm1 = mem[3,2,1,0]
644
+ vpermq $0x1b, 0x600(%rsi), %ymm2 # ymm2 = mem[3,2,1,0]
645
+ vpsubd %ymm3, %ymm5, %ymm12
646
+ vpaddd %ymm5, %ymm3, %ymm3
647
+ vpmuldq %ymm1, %ymm12, %ymm13
648
+ vmovshdup %ymm12, %ymm5 # ymm5 = ymm12[1,1,3,3,5,5,7,7]
649
+ vpmuldq %ymm1, %ymm5, %ymm14
650
+ vpmuldq %ymm2, %ymm12, %ymm12
651
+ vpmuldq %ymm2, %ymm5, %ymm5
652
+ vpmuldq %ymm0, %ymm13, %ymm13
653
+ vpmuldq %ymm0, %ymm14, %ymm14
654
+ vpsubd %ymm13, %ymm12, %ymm12
655
+ vpsubd %ymm14, %ymm5, %ymm5
656
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
657
+ vpblendd $0xaa, %ymm5, %ymm12, %ymm5 # ymm5 = ymm12[0],ymm5[1],ymm12[2],ymm5[3],ymm12[4],ymm5[5],ymm12[6],ymm5[7]
658
+ vpsubd %ymm4, %ymm7, %ymm12
659
+ vpaddd %ymm7, %ymm4, %ymm4
660
+ vpmuldq %ymm1, %ymm12, %ymm13
661
+ vmovshdup %ymm12, %ymm7 # ymm7 = ymm12[1,1,3,3,5,5,7,7]
662
+ vpmuldq %ymm1, %ymm7, %ymm14
663
+ vpmuldq %ymm2, %ymm12, %ymm12
664
+ vpmuldq %ymm2, %ymm7, %ymm7
665
+ vpmuldq %ymm0, %ymm13, %ymm13
666
+ vpmuldq %ymm0, %ymm14, %ymm14
667
+ vpsubd %ymm13, %ymm12, %ymm12
668
+ vpsubd %ymm14, %ymm7, %ymm7
669
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
670
+ vpblendd $0xaa, %ymm7, %ymm12, %ymm7 # ymm7 = ymm12[0],ymm7[1],ymm12[2],ymm7[3],ymm12[4],ymm7[5],ymm12[6],ymm7[7]
671
+ vpsubd %ymm6, %ymm9, %ymm12
672
+ vpaddd %ymm6, %ymm9, %ymm6
673
+ vpmuldq %ymm1, %ymm12, %ymm13
674
+ vmovshdup %ymm12, %ymm9 # ymm9 = ymm12[1,1,3,3,5,5,7,7]
675
+ vpmuldq %ymm1, %ymm9, %ymm14
676
+ vpmuldq %ymm2, %ymm12, %ymm12
677
+ vpmuldq %ymm2, %ymm9, %ymm9
678
+ vpmuldq %ymm0, %ymm13, %ymm13
679
+ vpmuldq %ymm0, %ymm14, %ymm14
680
+ vpsubd %ymm13, %ymm12, %ymm12
681
+ vpsubd %ymm14, %ymm9, %ymm9
682
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
683
+ vpblendd $0xaa, %ymm9, %ymm12, %ymm9 # ymm9 = ymm12[0],ymm9[1],ymm12[2],ymm9[3],ymm12[4],ymm9[5],ymm12[6],ymm9[7]
684
+ vpsubd %ymm8, %ymm11, %ymm12
685
+ vpaddd %ymm11, %ymm8, %ymm8
686
+ vpmuldq %ymm1, %ymm12, %ymm13
687
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
688
+ vpmuldq %ymm1, %ymm11, %ymm14
689
+ vpmuldq %ymm2, %ymm12, %ymm12
690
+ vpmuldq %ymm2, %ymm11, %ymm11
691
+ vpmuldq %ymm0, %ymm13, %ymm13
692
+ vpmuldq %ymm0, %ymm14, %ymm14
693
+ vpsubd %ymm13, %ymm12, %ymm12
694
+ vpsubd %ymm14, %ymm11, %ymm11
695
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
696
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
697
+ vpunpcklqdq %ymm4, %ymm3, %ymm10 # ymm10 = ymm3[0],ymm4[0],ymm3[2],ymm4[2]
698
+ vpunpckhqdq %ymm4, %ymm3, %ymm4 # ymm4 = ymm3[1],ymm4[1],ymm3[3],ymm4[3]
699
+ vpunpcklqdq %ymm8, %ymm6, %ymm3 # ymm3 = ymm6[0],ymm8[0],ymm6[2],ymm8[2]
700
+ vpunpckhqdq %ymm8, %ymm6, %ymm8 # ymm8 = ymm6[1],ymm8[1],ymm6[3],ymm8[3]
701
+ vpunpcklqdq %ymm7, %ymm5, %ymm6 # ymm6 = ymm5[0],ymm7[0],ymm5[2],ymm7[2]
702
+ vpunpckhqdq %ymm7, %ymm5, %ymm7 # ymm7 = ymm5[1],ymm7[1],ymm5[3],ymm7[3]
703
+ vpunpcklqdq %ymm11, %ymm9, %ymm5 # ymm5 = ymm9[0],ymm11[0],ymm9[2],ymm11[2]
704
+ vpunpckhqdq %ymm11, %ymm9, %ymm11 # ymm11 = ymm9[1],ymm11[1],ymm9[3],ymm11[3]
705
+ vpermq $0x1b, 0xe0(%rsi), %ymm1 # ymm1 = mem[3,2,1,0]
706
+ vpermq $0x1b, 0x580(%rsi), %ymm2 # ymm2 = mem[3,2,1,0]
707
+ vpsubd %ymm10, %ymm4, %ymm12
708
+ vpaddd %ymm4, %ymm10, %ymm10
709
+ vpmuldq %ymm1, %ymm12, %ymm13
710
+ vmovshdup %ymm12, %ymm4 # ymm4 = ymm12[1,1,3,3,5,5,7,7]
711
+ vpmuldq %ymm1, %ymm4, %ymm14
712
+ vpmuldq %ymm2, %ymm12, %ymm12
713
+ vpmuldq %ymm2, %ymm4, %ymm4
714
+ vpmuldq %ymm0, %ymm13, %ymm13
715
+ vpmuldq %ymm0, %ymm14, %ymm14
716
+ vpsubd %ymm13, %ymm12, %ymm12
717
+ vpsubd %ymm14, %ymm4, %ymm4
718
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
719
+ vpblendd $0xaa, %ymm4, %ymm12, %ymm4 # ymm4 = ymm12[0],ymm4[1],ymm12[2],ymm4[3],ymm12[4],ymm4[5],ymm12[6],ymm4[7]
720
+ vpsubd %ymm3, %ymm8, %ymm12
721
+ vpaddd %ymm3, %ymm8, %ymm3
722
+ vpmuldq %ymm1, %ymm12, %ymm13
723
+ vmovshdup %ymm12, %ymm8 # ymm8 = ymm12[1,1,3,3,5,5,7,7]
724
+ vpmuldq %ymm1, %ymm8, %ymm14
725
+ vpmuldq %ymm2, %ymm12, %ymm12
726
+ vpmuldq %ymm2, %ymm8, %ymm8
727
+ vpmuldq %ymm0, %ymm13, %ymm13
728
+ vpmuldq %ymm0, %ymm14, %ymm14
729
+ vpsubd %ymm13, %ymm12, %ymm12
730
+ vpsubd %ymm14, %ymm8, %ymm8
731
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
732
+ vpblendd $0xaa, %ymm8, %ymm12, %ymm8 # ymm8 = ymm12[0],ymm8[1],ymm12[2],ymm8[3],ymm12[4],ymm8[5],ymm12[6],ymm8[7]
733
+ vpsubd %ymm6, %ymm7, %ymm12
734
+ vpaddd %ymm7, %ymm6, %ymm6
735
+ vpmuldq %ymm1, %ymm12, %ymm13
736
+ vmovshdup %ymm12, %ymm7 # ymm7 = ymm12[1,1,3,3,5,5,7,7]
737
+ vpmuldq %ymm1, %ymm7, %ymm14
738
+ vpmuldq %ymm2, %ymm12, %ymm12
739
+ vpmuldq %ymm2, %ymm7, %ymm7
740
+ vpmuldq %ymm0, %ymm13, %ymm13
741
+ vpmuldq %ymm0, %ymm14, %ymm14
742
+ vpsubd %ymm13, %ymm12, %ymm12
743
+ vpsubd %ymm14, %ymm7, %ymm7
744
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
745
+ vpblendd $0xaa, %ymm7, %ymm12, %ymm7 # ymm7 = ymm12[0],ymm7[1],ymm12[2],ymm7[3],ymm12[4],ymm7[5],ymm12[6],ymm7[7]
746
+ vpsubd %ymm5, %ymm11, %ymm12
747
+ vpaddd %ymm5, %ymm11, %ymm5
748
+ vpmuldq %ymm1, %ymm12, %ymm13
749
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
750
+ vpmuldq %ymm1, %ymm11, %ymm14
751
+ vpmuldq %ymm2, %ymm12, %ymm12
752
+ vpmuldq %ymm2, %ymm11, %ymm11
753
+ vpmuldq %ymm0, %ymm13, %ymm13
754
+ vpmuldq %ymm0, %ymm14, %ymm14
755
+ vpsubd %ymm13, %ymm12, %ymm12
756
+ vpsubd %ymm14, %ymm11, %ymm11
757
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
758
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
759
+ vperm2i128 $0x20, %ymm3, %ymm10, %ymm9 # ymm9 = ymm10[0,1],ymm3[0,1]
760
+ vperm2i128 $0x31, %ymm3, %ymm10, %ymm3 # ymm3 = ymm10[2,3],ymm3[2,3]
761
+ vperm2i128 $0x20, %ymm5, %ymm6, %ymm10 # ymm10 = ymm6[0,1],ymm5[0,1]
762
+ vperm2i128 $0x31, %ymm5, %ymm6, %ymm5 # ymm5 = ymm6[2,3],ymm5[2,3]
763
+ vperm2i128 $0x20, %ymm8, %ymm4, %ymm6 # ymm6 = ymm4[0,1],ymm8[0,1]
764
+ vperm2i128 $0x31, %ymm8, %ymm4, %ymm8 # ymm8 = ymm4[2,3],ymm8[2,3]
765
+ vperm2i128 $0x20, %ymm11, %ymm7, %ymm4 # ymm4 = ymm7[0,1],ymm11[0,1]
766
+ vperm2i128 $0x31, %ymm11, %ymm7, %ymm11 # ymm11 = ymm7[2,3],ymm11[2,3]
767
+ vpbroadcastd 0x98(%rsi), %ymm1
768
+ vpbroadcastd 0x538(%rsi), %ymm2
769
+ vpsubd %ymm9, %ymm3, %ymm12
770
+ vpaddd %ymm3, %ymm9, %ymm9
771
+ vpmuldq %ymm1, %ymm12, %ymm13
772
+ vmovshdup %ymm12, %ymm3 # ymm3 = ymm12[1,1,3,3,5,5,7,7]
773
+ vpmuldq %ymm1, %ymm3, %ymm14
774
+ vpmuldq %ymm2, %ymm12, %ymm12
775
+ vpmuldq %ymm2, %ymm3, %ymm3
776
+ vpmuldq %ymm0, %ymm13, %ymm13
777
+ vpmuldq %ymm0, %ymm14, %ymm14
778
+ vpsubd %ymm13, %ymm12, %ymm12
779
+ vpsubd %ymm14, %ymm3, %ymm3
780
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
781
+ vpblendd $0xaa, %ymm3, %ymm12, %ymm3 # ymm3 = ymm12[0],ymm3[1],ymm12[2],ymm3[3],ymm12[4],ymm3[5],ymm12[6],ymm3[7]
782
+ vpsubd %ymm10, %ymm5, %ymm12
783
+ vpaddd %ymm5, %ymm10, %ymm10
784
+ vpmuldq %ymm1, %ymm12, %ymm13
785
+ vmovshdup %ymm12, %ymm5 # ymm5 = ymm12[1,1,3,3,5,5,7,7]
786
+ vpmuldq %ymm1, %ymm5, %ymm14
787
+ vpmuldq %ymm2, %ymm12, %ymm12
788
+ vpmuldq %ymm2, %ymm5, %ymm5
789
+ vpmuldq %ymm0, %ymm13, %ymm13
790
+ vpmuldq %ymm0, %ymm14, %ymm14
791
+ vpsubd %ymm13, %ymm12, %ymm12
792
+ vpsubd %ymm14, %ymm5, %ymm5
793
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
794
+ vpblendd $0xaa, %ymm5, %ymm12, %ymm5 # ymm5 = ymm12[0],ymm5[1],ymm12[2],ymm5[3],ymm12[4],ymm5[5],ymm12[6],ymm5[7]
795
+ vpsubd %ymm6, %ymm8, %ymm12
796
+ vpaddd %ymm6, %ymm8, %ymm6
797
+ vpmuldq %ymm1, %ymm12, %ymm13
798
+ vmovshdup %ymm12, %ymm8 # ymm8 = ymm12[1,1,3,3,5,5,7,7]
799
+ vpmuldq %ymm1, %ymm8, %ymm14
800
+ vpmuldq %ymm2, %ymm12, %ymm12
801
+ vpmuldq %ymm2, %ymm8, %ymm8
802
+ vpmuldq %ymm0, %ymm13, %ymm13
803
+ vpmuldq %ymm0, %ymm14, %ymm14
804
+ vpsubd %ymm13, %ymm12, %ymm12
805
+ vpsubd %ymm14, %ymm8, %ymm8
806
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
807
+ vpblendd $0xaa, %ymm8, %ymm12, %ymm8 # ymm8 = ymm12[0],ymm8[1],ymm12[2],ymm8[3],ymm12[4],ymm8[5],ymm12[6],ymm8[7]
808
+ vpsubd %ymm4, %ymm11, %ymm12
809
+ vpaddd %ymm4, %ymm11, %ymm4
810
+ vpmuldq %ymm1, %ymm12, %ymm13
811
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
812
+ vpmuldq %ymm1, %ymm11, %ymm14
813
+ vpmuldq %ymm2, %ymm12, %ymm12
814
+ vpmuldq %ymm2, %ymm11, %ymm11
815
+ vpmuldq %ymm0, %ymm13, %ymm13
816
+ vpmuldq %ymm0, %ymm14, %ymm14
817
+ vpsubd %ymm13, %ymm12, %ymm12
818
+ vpsubd %ymm14, %ymm11, %ymm11
819
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
820
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
821
+ vmovdqa %ymm9, 0x100(%rdi)
822
+ vmovdqa %ymm10, 0x120(%rdi)
823
+ vmovdqa %ymm6, 0x140(%rdi)
824
+ vmovdqa %ymm4, 0x160(%rdi)
825
+ vmovdqa %ymm3, 0x180(%rdi)
826
+ vmovdqa %ymm5, 0x1a0(%rdi)
827
+ vmovdqa %ymm8, 0x1c0(%rdi)
828
+ vmovdqa %ymm11, 0x1e0(%rdi)
829
+ vmovdqa 0x200(%rdi), %ymm4
830
+ vmovdqa 0x220(%rdi), %ymm5
831
+ vmovdqa 0x240(%rdi), %ymm6
832
+ vmovdqa 0x260(%rdi), %ymm7
833
+ vmovdqa 0x280(%rdi), %ymm8
834
+ vmovdqa 0x2a0(%rdi), %ymm9
835
+ vmovdqa 0x2c0(%rdi), %ymm10
836
+ vmovdqa 0x2e0(%rdi), %ymm11
837
+ vpermq $0x1b, 0x4c0(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
838
+ vpermq $0x1b, 0x960(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
839
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
840
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
841
+ vpsubd %ymm4, %ymm5, %ymm12
842
+ vpaddd %ymm5, %ymm4, %ymm4
843
+ vpmuldq %ymm1, %ymm12, %ymm13
844
+ vmovshdup %ymm12, %ymm5 # ymm5 = ymm12[1,1,3,3,5,5,7,7]
845
+ vpmuldq %ymm3, %ymm5, %ymm14
846
+ vpmuldq %ymm2, %ymm12, %ymm12
847
+ vpmuldq %ymm15, %ymm5, %ymm5
848
+ vpmuldq %ymm0, %ymm13, %ymm13
849
+ vpmuldq %ymm0, %ymm14, %ymm14
850
+ vpsubd %ymm13, %ymm12, %ymm12
851
+ vpsubd %ymm14, %ymm5, %ymm5
852
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
853
+ vpblendd $0xaa, %ymm5, %ymm12, %ymm5 # ymm5 = ymm12[0],ymm5[1],ymm12[2],ymm5[3],ymm12[4],ymm5[5],ymm12[6],ymm5[7]
854
+ vpermq $0x1b, 0x440(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
855
+ vpermq $0x1b, 0x8e0(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
856
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
857
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
858
+ vpsubd %ymm6, %ymm7, %ymm12
859
+ vpaddd %ymm7, %ymm6, %ymm6
860
+ vpmuldq %ymm1, %ymm12, %ymm13
861
+ vmovshdup %ymm12, %ymm7 # ymm7 = ymm12[1,1,3,3,5,5,7,7]
862
+ vpmuldq %ymm3, %ymm7, %ymm14
863
+ vpmuldq %ymm2, %ymm12, %ymm12
864
+ vpmuldq %ymm15, %ymm7, %ymm7
865
+ vpmuldq %ymm0, %ymm13, %ymm13
866
+ vpmuldq %ymm0, %ymm14, %ymm14
867
+ vpsubd %ymm13, %ymm12, %ymm12
868
+ vpsubd %ymm14, %ymm7, %ymm7
869
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
870
+ vpblendd $0xaa, %ymm7, %ymm12, %ymm7 # ymm7 = ymm12[0],ymm7[1],ymm12[2],ymm7[3],ymm12[4],ymm7[5],ymm12[6],ymm7[7]
871
+ vpermq $0x1b, 0x3c0(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
872
+ vpermq $0x1b, 0x860(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
873
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
874
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
875
+ vpsubd %ymm8, %ymm9, %ymm12
876
+ vpaddd %ymm9, %ymm8, %ymm8
877
+ vpmuldq %ymm1, %ymm12, %ymm13
878
+ vmovshdup %ymm12, %ymm9 # ymm9 = ymm12[1,1,3,3,5,5,7,7]
879
+ vpmuldq %ymm3, %ymm9, %ymm14
880
+ vpmuldq %ymm2, %ymm12, %ymm12
881
+ vpmuldq %ymm15, %ymm9, %ymm9
882
+ vpmuldq %ymm0, %ymm13, %ymm13
883
+ vpmuldq %ymm0, %ymm14, %ymm14
884
+ vpsubd %ymm13, %ymm12, %ymm12
885
+ vpsubd %ymm14, %ymm9, %ymm9
886
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
887
+ vpblendd $0xaa, %ymm9, %ymm12, %ymm9 # ymm9 = ymm12[0],ymm9[1],ymm12[2],ymm9[3],ymm12[4],ymm9[5],ymm12[6],ymm9[7]
888
+ vpermq $0x1b, 0x340(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
889
+ vpermq $0x1b, 0x7e0(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
890
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
891
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
892
+ vpsubd %ymm10, %ymm11, %ymm12
893
+ vpaddd %ymm11, %ymm10, %ymm10
894
+ vpmuldq %ymm1, %ymm12, %ymm13
895
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
896
+ vpmuldq %ymm3, %ymm11, %ymm14
897
+ vpmuldq %ymm2, %ymm12, %ymm12
898
+ vpmuldq %ymm15, %ymm11, %ymm11
899
+ vpmuldq %ymm0, %ymm13, %ymm13
900
+ vpmuldq %ymm0, %ymm14, %ymm14
901
+ vpsubd %ymm13, %ymm12, %ymm12
902
+ vpsubd %ymm14, %ymm11, %ymm11
903
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
904
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
905
+ vpermq $0x1b, 0x2c0(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
906
+ vpermq $0x1b, 0x760(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
907
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
908
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
909
+ vpsubd %ymm4, %ymm6, %ymm12
910
+ vpaddd %ymm6, %ymm4, %ymm4
911
+ vpmuldq %ymm1, %ymm12, %ymm13
912
+ vmovshdup %ymm12, %ymm6 # ymm6 = ymm12[1,1,3,3,5,5,7,7]
913
+ vpmuldq %ymm3, %ymm6, %ymm14
914
+ vpmuldq %ymm2, %ymm12, %ymm12
915
+ vpmuldq %ymm15, %ymm6, %ymm6
916
+ vpmuldq %ymm0, %ymm13, %ymm13
917
+ vpmuldq %ymm0, %ymm14, %ymm14
918
+ vpsubd %ymm13, %ymm12, %ymm12
919
+ vpsubd %ymm14, %ymm6, %ymm6
920
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
921
+ vpblendd $0xaa, %ymm6, %ymm12, %ymm6 # ymm6 = ymm12[0],ymm6[1],ymm12[2],ymm6[3],ymm12[4],ymm6[5],ymm12[6],ymm6[7]
922
+ vpsubd %ymm5, %ymm7, %ymm12
923
+ vpaddd %ymm7, %ymm5, %ymm5
924
+ vpmuldq %ymm1, %ymm12, %ymm13
925
+ vmovshdup %ymm12, %ymm7 # ymm7 = ymm12[1,1,3,3,5,5,7,7]
926
+ vpmuldq %ymm3, %ymm7, %ymm14
927
+ vpmuldq %ymm2, %ymm12, %ymm12
928
+ vpmuldq %ymm15, %ymm7, %ymm7
929
+ vpmuldq %ymm0, %ymm13, %ymm13
930
+ vpmuldq %ymm0, %ymm14, %ymm14
931
+ vpsubd %ymm13, %ymm12, %ymm12
932
+ vpsubd %ymm14, %ymm7, %ymm7
933
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
934
+ vpblendd $0xaa, %ymm7, %ymm12, %ymm7 # ymm7 = ymm12[0],ymm7[1],ymm12[2],ymm7[3],ymm12[4],ymm7[5],ymm12[6],ymm7[7]
935
+ vpermq $0x1b, 0x240(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
936
+ vpermq $0x1b, 0x6e0(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
937
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
938
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
939
+ vpsubd %ymm8, %ymm10, %ymm12
940
+ vpaddd %ymm10, %ymm8, %ymm8
941
+ vpmuldq %ymm1, %ymm12, %ymm13
942
+ vmovshdup %ymm12, %ymm10 # ymm10 = ymm12[1,1,3,3,5,5,7,7]
943
+ vpmuldq %ymm3, %ymm10, %ymm14
944
+ vpmuldq %ymm2, %ymm12, %ymm12
945
+ vpmuldq %ymm15, %ymm10, %ymm10
946
+ vpmuldq %ymm0, %ymm13, %ymm13
947
+ vpmuldq %ymm0, %ymm14, %ymm14
948
+ vpsubd %ymm13, %ymm12, %ymm12
949
+ vpsubd %ymm14, %ymm10, %ymm10
950
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
951
+ vpblendd $0xaa, %ymm10, %ymm12, %ymm10 # ymm10 = ymm12[0],ymm10[1],ymm12[2],ymm10[3],ymm12[4],ymm10[5],ymm12[6],ymm10[7]
952
+ vpsubd %ymm9, %ymm11, %ymm12
953
+ vpaddd %ymm11, %ymm9, %ymm9
954
+ vpmuldq %ymm1, %ymm12, %ymm13
955
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
956
+ vpmuldq %ymm3, %ymm11, %ymm14
957
+ vpmuldq %ymm2, %ymm12, %ymm12
958
+ vpmuldq %ymm15, %ymm11, %ymm11
959
+ vpmuldq %ymm0, %ymm13, %ymm13
960
+ vpmuldq %ymm0, %ymm14, %ymm14
961
+ vpsubd %ymm13, %ymm12, %ymm12
962
+ vpsubd %ymm14, %ymm11, %ymm11
963
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
964
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
965
+ vpermq $0x1b, 0x1c0(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
966
+ vpermq $0x1b, 0x660(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
967
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
968
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
969
+ vpsubd %ymm4, %ymm8, %ymm12
970
+ vpaddd %ymm4, %ymm8, %ymm4
971
+ vpmuldq %ymm1, %ymm12, %ymm13
972
+ vmovshdup %ymm12, %ymm8 # ymm8 = ymm12[1,1,3,3,5,5,7,7]
973
+ vpmuldq %ymm3, %ymm8, %ymm14
974
+ vpmuldq %ymm2, %ymm12, %ymm12
975
+ vpmuldq %ymm15, %ymm8, %ymm8
976
+ vpmuldq %ymm0, %ymm13, %ymm13
977
+ vpmuldq %ymm0, %ymm14, %ymm14
978
+ vpsubd %ymm13, %ymm12, %ymm12
979
+ vpsubd %ymm14, %ymm8, %ymm8
980
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
981
+ vpblendd $0xaa, %ymm8, %ymm12, %ymm8 # ymm8 = ymm12[0],ymm8[1],ymm12[2],ymm8[3],ymm12[4],ymm8[5],ymm12[6],ymm8[7]
982
+ vpsubd %ymm5, %ymm9, %ymm12
983
+ vpaddd %ymm5, %ymm9, %ymm5
984
+ vpmuldq %ymm1, %ymm12, %ymm13
985
+ vmovshdup %ymm12, %ymm9 # ymm9 = ymm12[1,1,3,3,5,5,7,7]
986
+ vpmuldq %ymm3, %ymm9, %ymm14
987
+ vpmuldq %ymm2, %ymm12, %ymm12
988
+ vpmuldq %ymm15, %ymm9, %ymm9
989
+ vpmuldq %ymm0, %ymm13, %ymm13
990
+ vpmuldq %ymm0, %ymm14, %ymm14
991
+ vpsubd %ymm13, %ymm12, %ymm12
992
+ vpsubd %ymm14, %ymm9, %ymm9
993
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
994
+ vpblendd $0xaa, %ymm9, %ymm12, %ymm9 # ymm9 = ymm12[0],ymm9[1],ymm12[2],ymm9[3],ymm12[4],ymm9[5],ymm12[6],ymm9[7]
995
+ vpsubd %ymm6, %ymm10, %ymm12
996
+ vpaddd %ymm6, %ymm10, %ymm6
997
+ vpmuldq %ymm1, %ymm12, %ymm13
998
+ vmovshdup %ymm12, %ymm10 # ymm10 = ymm12[1,1,3,3,5,5,7,7]
999
+ vpmuldq %ymm3, %ymm10, %ymm14
1000
+ vpmuldq %ymm2, %ymm12, %ymm12
1001
+ vpmuldq %ymm15, %ymm10, %ymm10
1002
+ vpmuldq %ymm0, %ymm13, %ymm13
1003
+ vpmuldq %ymm0, %ymm14, %ymm14
1004
+ vpsubd %ymm13, %ymm12, %ymm12
1005
+ vpsubd %ymm14, %ymm10, %ymm10
1006
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1007
+ vpblendd $0xaa, %ymm10, %ymm12, %ymm10 # ymm10 = ymm12[0],ymm10[1],ymm12[2],ymm10[3],ymm12[4],ymm10[5],ymm12[6],ymm10[7]
1008
+ vpsubd %ymm7, %ymm11, %ymm12
1009
+ vpaddd %ymm7, %ymm11, %ymm7
1010
+ vpmuldq %ymm1, %ymm12, %ymm13
1011
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
1012
+ vpmuldq %ymm3, %ymm11, %ymm14
1013
+ vpmuldq %ymm2, %ymm12, %ymm12
1014
+ vpmuldq %ymm15, %ymm11, %ymm11
1015
+ vpmuldq %ymm0, %ymm13, %ymm13
1016
+ vpmuldq %ymm0, %ymm14, %ymm14
1017
+ vpsubd %ymm13, %ymm12, %ymm12
1018
+ vpsubd %ymm14, %ymm11, %ymm11
1019
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1020
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
1021
+ vmovsldup %ymm5, %ymm3 # ymm3 = ymm5[0,0,2,2,4,4,6,6]
1022
+ vpblendd $0xaa, %ymm3, %ymm4, %ymm3 # ymm3 = ymm4[0],ymm3[1],ymm4[2],ymm3[3],ymm4[4],ymm3[5],ymm4[6],ymm3[7]
1023
+ vpsrlq $0x20, %ymm4, %ymm4
1024
+ vpblendd $0xaa, %ymm5, %ymm4, %ymm5 # ymm5 = ymm4[0],ymm5[1],ymm4[2],ymm5[3],ymm4[4],ymm5[5],ymm4[6],ymm5[7]
1025
+ vmovsldup %ymm7, %ymm4 # ymm4 = ymm7[0,0,2,2,4,4,6,6]
1026
+ vpblendd $0xaa, %ymm4, %ymm6, %ymm4 # ymm4 = ymm6[0],ymm4[1],ymm6[2],ymm4[3],ymm6[4],ymm4[5],ymm6[6],ymm4[7]
1027
+ vpsrlq $0x20, %ymm6, %ymm6
1028
+ vpblendd $0xaa, %ymm7, %ymm6, %ymm7 # ymm7 = ymm6[0],ymm7[1],ymm6[2],ymm7[3],ymm6[4],ymm7[5],ymm6[6],ymm7[7]
1029
+ vmovsldup %ymm9, %ymm6 # ymm6 = ymm9[0,0,2,2,4,4,6,6]
1030
+ vpblendd $0xaa, %ymm6, %ymm8, %ymm6 # ymm6 = ymm8[0],ymm6[1],ymm8[2],ymm6[3],ymm8[4],ymm6[5],ymm8[6],ymm6[7]
1031
+ vpsrlq $0x20, %ymm8, %ymm8
1032
+ vpblendd $0xaa, %ymm9, %ymm8, %ymm9 # ymm9 = ymm8[0],ymm9[1],ymm8[2],ymm9[3],ymm8[4],ymm9[5],ymm8[6],ymm9[7]
1033
+ vmovsldup %ymm11, %ymm8 # ymm8 = ymm11[0,0,2,2,4,4,6,6]
1034
+ vpblendd $0xaa, %ymm8, %ymm10, %ymm8 # ymm8 = ymm10[0],ymm8[1],ymm10[2],ymm8[3],ymm10[4],ymm8[5],ymm10[6],ymm8[7]
1035
+ vpsrlq $0x20, %ymm10, %ymm10
1036
+ vpblendd $0xaa, %ymm11, %ymm10, %ymm11 # ymm11 = ymm10[0],ymm11[1],ymm10[2],ymm11[3],ymm10[4],ymm11[5],ymm10[6],ymm11[7]
1037
+ vpermq $0x1b, 0x140(%rsi), %ymm1 # ymm1 = mem[3,2,1,0]
1038
+ vpermq $0x1b, 0x5e0(%rsi), %ymm2 # ymm2 = mem[3,2,1,0]
1039
+ vpsubd %ymm3, %ymm5, %ymm12
1040
+ vpaddd %ymm5, %ymm3, %ymm3
1041
+ vpmuldq %ymm1, %ymm12, %ymm13
1042
+ vmovshdup %ymm12, %ymm5 # ymm5 = ymm12[1,1,3,3,5,5,7,7]
1043
+ vpmuldq %ymm1, %ymm5, %ymm14
1044
+ vpmuldq %ymm2, %ymm12, %ymm12
1045
+ vpmuldq %ymm2, %ymm5, %ymm5
1046
+ vpmuldq %ymm0, %ymm13, %ymm13
1047
+ vpmuldq %ymm0, %ymm14, %ymm14
1048
+ vpsubd %ymm13, %ymm12, %ymm12
1049
+ vpsubd %ymm14, %ymm5, %ymm5
1050
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1051
+ vpblendd $0xaa, %ymm5, %ymm12, %ymm5 # ymm5 = ymm12[0],ymm5[1],ymm12[2],ymm5[3],ymm12[4],ymm5[5],ymm12[6],ymm5[7]
1052
+ vpsubd %ymm4, %ymm7, %ymm12
1053
+ vpaddd %ymm7, %ymm4, %ymm4
1054
+ vpmuldq %ymm1, %ymm12, %ymm13
1055
+ vmovshdup %ymm12, %ymm7 # ymm7 = ymm12[1,1,3,3,5,5,7,7]
1056
+ vpmuldq %ymm1, %ymm7, %ymm14
1057
+ vpmuldq %ymm2, %ymm12, %ymm12
1058
+ vpmuldq %ymm2, %ymm7, %ymm7
1059
+ vpmuldq %ymm0, %ymm13, %ymm13
1060
+ vpmuldq %ymm0, %ymm14, %ymm14
1061
+ vpsubd %ymm13, %ymm12, %ymm12
1062
+ vpsubd %ymm14, %ymm7, %ymm7
1063
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1064
+ vpblendd $0xaa, %ymm7, %ymm12, %ymm7 # ymm7 = ymm12[0],ymm7[1],ymm12[2],ymm7[3],ymm12[4],ymm7[5],ymm12[6],ymm7[7]
1065
+ vpsubd %ymm6, %ymm9, %ymm12
1066
+ vpaddd %ymm6, %ymm9, %ymm6
1067
+ vpmuldq %ymm1, %ymm12, %ymm13
1068
+ vmovshdup %ymm12, %ymm9 # ymm9 = ymm12[1,1,3,3,5,5,7,7]
1069
+ vpmuldq %ymm1, %ymm9, %ymm14
1070
+ vpmuldq %ymm2, %ymm12, %ymm12
1071
+ vpmuldq %ymm2, %ymm9, %ymm9
1072
+ vpmuldq %ymm0, %ymm13, %ymm13
1073
+ vpmuldq %ymm0, %ymm14, %ymm14
1074
+ vpsubd %ymm13, %ymm12, %ymm12
1075
+ vpsubd %ymm14, %ymm9, %ymm9
1076
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1077
+ vpblendd $0xaa, %ymm9, %ymm12, %ymm9 # ymm9 = ymm12[0],ymm9[1],ymm12[2],ymm9[3],ymm12[4],ymm9[5],ymm12[6],ymm9[7]
1078
+ vpsubd %ymm8, %ymm11, %ymm12
1079
+ vpaddd %ymm11, %ymm8, %ymm8
1080
+ vpmuldq %ymm1, %ymm12, %ymm13
1081
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
1082
+ vpmuldq %ymm1, %ymm11, %ymm14
1083
+ vpmuldq %ymm2, %ymm12, %ymm12
1084
+ vpmuldq %ymm2, %ymm11, %ymm11
1085
+ vpmuldq %ymm0, %ymm13, %ymm13
1086
+ vpmuldq %ymm0, %ymm14, %ymm14
1087
+ vpsubd %ymm13, %ymm12, %ymm12
1088
+ vpsubd %ymm14, %ymm11, %ymm11
1089
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1090
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
1091
+ vpunpcklqdq %ymm4, %ymm3, %ymm10 # ymm10 = ymm3[0],ymm4[0],ymm3[2],ymm4[2]
1092
+ vpunpckhqdq %ymm4, %ymm3, %ymm4 # ymm4 = ymm3[1],ymm4[1],ymm3[3],ymm4[3]
1093
+ vpunpcklqdq %ymm8, %ymm6, %ymm3 # ymm3 = ymm6[0],ymm8[0],ymm6[2],ymm8[2]
1094
+ vpunpckhqdq %ymm8, %ymm6, %ymm8 # ymm8 = ymm6[1],ymm8[1],ymm6[3],ymm8[3]
1095
+ vpunpcklqdq %ymm7, %ymm5, %ymm6 # ymm6 = ymm5[0],ymm7[0],ymm5[2],ymm7[2]
1096
+ vpunpckhqdq %ymm7, %ymm5, %ymm7 # ymm7 = ymm5[1],ymm7[1],ymm5[3],ymm7[3]
1097
+ vpunpcklqdq %ymm11, %ymm9, %ymm5 # ymm5 = ymm9[0],ymm11[0],ymm9[2],ymm11[2]
1098
+ vpunpckhqdq %ymm11, %ymm9, %ymm11 # ymm11 = ymm9[1],ymm11[1],ymm9[3],ymm11[3]
1099
+ vpermq $0x1b, 0xc0(%rsi), %ymm1 # ymm1 = mem[3,2,1,0]
1100
+ vpermq $0x1b, 0x560(%rsi), %ymm2 # ymm2 = mem[3,2,1,0]
1101
+ vpsubd %ymm10, %ymm4, %ymm12
1102
+ vpaddd %ymm4, %ymm10, %ymm10
1103
+ vpmuldq %ymm1, %ymm12, %ymm13
1104
+ vmovshdup %ymm12, %ymm4 # ymm4 = ymm12[1,1,3,3,5,5,7,7]
1105
+ vpmuldq %ymm1, %ymm4, %ymm14
1106
+ vpmuldq %ymm2, %ymm12, %ymm12
1107
+ vpmuldq %ymm2, %ymm4, %ymm4
1108
+ vpmuldq %ymm0, %ymm13, %ymm13
1109
+ vpmuldq %ymm0, %ymm14, %ymm14
1110
+ vpsubd %ymm13, %ymm12, %ymm12
1111
+ vpsubd %ymm14, %ymm4, %ymm4
1112
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1113
+ vpblendd $0xaa, %ymm4, %ymm12, %ymm4 # ymm4 = ymm12[0],ymm4[1],ymm12[2],ymm4[3],ymm12[4],ymm4[5],ymm12[6],ymm4[7]
1114
+ vpsubd %ymm3, %ymm8, %ymm12
1115
+ vpaddd %ymm3, %ymm8, %ymm3
1116
+ vpmuldq %ymm1, %ymm12, %ymm13
1117
+ vmovshdup %ymm12, %ymm8 # ymm8 = ymm12[1,1,3,3,5,5,7,7]
1118
+ vpmuldq %ymm1, %ymm8, %ymm14
1119
+ vpmuldq %ymm2, %ymm12, %ymm12
1120
+ vpmuldq %ymm2, %ymm8, %ymm8
1121
+ vpmuldq %ymm0, %ymm13, %ymm13
1122
+ vpmuldq %ymm0, %ymm14, %ymm14
1123
+ vpsubd %ymm13, %ymm12, %ymm12
1124
+ vpsubd %ymm14, %ymm8, %ymm8
1125
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1126
+ vpblendd $0xaa, %ymm8, %ymm12, %ymm8 # ymm8 = ymm12[0],ymm8[1],ymm12[2],ymm8[3],ymm12[4],ymm8[5],ymm12[6],ymm8[7]
1127
+ vpsubd %ymm6, %ymm7, %ymm12
1128
+ vpaddd %ymm7, %ymm6, %ymm6
1129
+ vpmuldq %ymm1, %ymm12, %ymm13
1130
+ vmovshdup %ymm12, %ymm7 # ymm7 = ymm12[1,1,3,3,5,5,7,7]
1131
+ vpmuldq %ymm1, %ymm7, %ymm14
1132
+ vpmuldq %ymm2, %ymm12, %ymm12
1133
+ vpmuldq %ymm2, %ymm7, %ymm7
1134
+ vpmuldq %ymm0, %ymm13, %ymm13
1135
+ vpmuldq %ymm0, %ymm14, %ymm14
1136
+ vpsubd %ymm13, %ymm12, %ymm12
1137
+ vpsubd %ymm14, %ymm7, %ymm7
1138
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1139
+ vpblendd $0xaa, %ymm7, %ymm12, %ymm7 # ymm7 = ymm12[0],ymm7[1],ymm12[2],ymm7[3],ymm12[4],ymm7[5],ymm12[6],ymm7[7]
1140
+ vpsubd %ymm5, %ymm11, %ymm12
1141
+ vpaddd %ymm5, %ymm11, %ymm5
1142
+ vpmuldq %ymm1, %ymm12, %ymm13
1143
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
1144
+ vpmuldq %ymm1, %ymm11, %ymm14
1145
+ vpmuldq %ymm2, %ymm12, %ymm12
1146
+ vpmuldq %ymm2, %ymm11, %ymm11
1147
+ vpmuldq %ymm0, %ymm13, %ymm13
1148
+ vpmuldq %ymm0, %ymm14, %ymm14
1149
+ vpsubd %ymm13, %ymm12, %ymm12
1150
+ vpsubd %ymm14, %ymm11, %ymm11
1151
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1152
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
1153
+ vperm2i128 $0x20, %ymm3, %ymm10, %ymm9 # ymm9 = ymm10[0,1],ymm3[0,1]
1154
+ vperm2i128 $0x31, %ymm3, %ymm10, %ymm3 # ymm3 = ymm10[2,3],ymm3[2,3]
1155
+ vperm2i128 $0x20, %ymm5, %ymm6, %ymm10 # ymm10 = ymm6[0,1],ymm5[0,1]
1156
+ vperm2i128 $0x31, %ymm5, %ymm6, %ymm5 # ymm5 = ymm6[2,3],ymm5[2,3]
1157
+ vperm2i128 $0x20, %ymm8, %ymm4, %ymm6 # ymm6 = ymm4[0,1],ymm8[0,1]
1158
+ vperm2i128 $0x31, %ymm8, %ymm4, %ymm8 # ymm8 = ymm4[2,3],ymm8[2,3]
1159
+ vperm2i128 $0x20, %ymm11, %ymm7, %ymm4 # ymm4 = ymm7[0,1],ymm11[0,1]
1160
+ vperm2i128 $0x31, %ymm11, %ymm7, %ymm11 # ymm11 = ymm7[2,3],ymm11[2,3]
1161
+ vpbroadcastd 0x94(%rsi), %ymm1
1162
+ vpbroadcastd 0x534(%rsi), %ymm2
1163
+ vpsubd %ymm9, %ymm3, %ymm12
1164
+ vpaddd %ymm3, %ymm9, %ymm9
1165
+ vpmuldq %ymm1, %ymm12, %ymm13
1166
+ vmovshdup %ymm12, %ymm3 # ymm3 = ymm12[1,1,3,3,5,5,7,7]
1167
+ vpmuldq %ymm1, %ymm3, %ymm14
1168
+ vpmuldq %ymm2, %ymm12, %ymm12
1169
+ vpmuldq %ymm2, %ymm3, %ymm3
1170
+ vpmuldq %ymm0, %ymm13, %ymm13
1171
+ vpmuldq %ymm0, %ymm14, %ymm14
1172
+ vpsubd %ymm13, %ymm12, %ymm12
1173
+ vpsubd %ymm14, %ymm3, %ymm3
1174
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1175
+ vpblendd $0xaa, %ymm3, %ymm12, %ymm3 # ymm3 = ymm12[0],ymm3[1],ymm12[2],ymm3[3],ymm12[4],ymm3[5],ymm12[6],ymm3[7]
1176
+ vpsubd %ymm10, %ymm5, %ymm12
1177
+ vpaddd %ymm5, %ymm10, %ymm10
1178
+ vpmuldq %ymm1, %ymm12, %ymm13
1179
+ vmovshdup %ymm12, %ymm5 # ymm5 = ymm12[1,1,3,3,5,5,7,7]
1180
+ vpmuldq %ymm1, %ymm5, %ymm14
1181
+ vpmuldq %ymm2, %ymm12, %ymm12
1182
+ vpmuldq %ymm2, %ymm5, %ymm5
1183
+ vpmuldq %ymm0, %ymm13, %ymm13
1184
+ vpmuldq %ymm0, %ymm14, %ymm14
1185
+ vpsubd %ymm13, %ymm12, %ymm12
1186
+ vpsubd %ymm14, %ymm5, %ymm5
1187
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1188
+ vpblendd $0xaa, %ymm5, %ymm12, %ymm5 # ymm5 = ymm12[0],ymm5[1],ymm12[2],ymm5[3],ymm12[4],ymm5[5],ymm12[6],ymm5[7]
1189
+ vpsubd %ymm6, %ymm8, %ymm12
1190
+ vpaddd %ymm6, %ymm8, %ymm6
1191
+ vpmuldq %ymm1, %ymm12, %ymm13
1192
+ vmovshdup %ymm12, %ymm8 # ymm8 = ymm12[1,1,3,3,5,5,7,7]
1193
+ vpmuldq %ymm1, %ymm8, %ymm14
1194
+ vpmuldq %ymm2, %ymm12, %ymm12
1195
+ vpmuldq %ymm2, %ymm8, %ymm8
1196
+ vpmuldq %ymm0, %ymm13, %ymm13
1197
+ vpmuldq %ymm0, %ymm14, %ymm14
1198
+ vpsubd %ymm13, %ymm12, %ymm12
1199
+ vpsubd %ymm14, %ymm8, %ymm8
1200
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1201
+ vpblendd $0xaa, %ymm8, %ymm12, %ymm8 # ymm8 = ymm12[0],ymm8[1],ymm12[2],ymm8[3],ymm12[4],ymm8[5],ymm12[6],ymm8[7]
1202
+ vpsubd %ymm4, %ymm11, %ymm12
1203
+ vpaddd %ymm4, %ymm11, %ymm4
1204
+ vpmuldq %ymm1, %ymm12, %ymm13
1205
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
1206
+ vpmuldq %ymm1, %ymm11, %ymm14
1207
+ vpmuldq %ymm2, %ymm12, %ymm12
1208
+ vpmuldq %ymm2, %ymm11, %ymm11
1209
+ vpmuldq %ymm0, %ymm13, %ymm13
1210
+ vpmuldq %ymm0, %ymm14, %ymm14
1211
+ vpsubd %ymm13, %ymm12, %ymm12
1212
+ vpsubd %ymm14, %ymm11, %ymm11
1213
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1214
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
1215
+ vmovdqa %ymm9, 0x200(%rdi)
1216
+ vmovdqa %ymm10, 0x220(%rdi)
1217
+ vmovdqa %ymm6, 0x240(%rdi)
1218
+ vmovdqa %ymm4, 0x260(%rdi)
1219
+ vmovdqa %ymm3, 0x280(%rdi)
1220
+ vmovdqa %ymm5, 0x2a0(%rdi)
1221
+ vmovdqa %ymm8, 0x2c0(%rdi)
1222
+ vmovdqa %ymm11, 0x2e0(%rdi)
1223
+ vmovdqa 0x300(%rdi), %ymm4
1224
+ vmovdqa 0x320(%rdi), %ymm5
1225
+ vmovdqa 0x340(%rdi), %ymm6
1226
+ vmovdqa 0x360(%rdi), %ymm7
1227
+ vmovdqa 0x380(%rdi), %ymm8
1228
+ vmovdqa 0x3a0(%rdi), %ymm9
1229
+ vmovdqa 0x3c0(%rdi), %ymm10
1230
+ vmovdqa 0x3e0(%rdi), %ymm11
1231
+ vpermq $0x1b, 0x4a0(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
1232
+ vpermq $0x1b, 0x940(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
1233
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
1234
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
1235
+ vpsubd %ymm4, %ymm5, %ymm12
1236
+ vpaddd %ymm5, %ymm4, %ymm4
1237
+ vpmuldq %ymm1, %ymm12, %ymm13
1238
+ vmovshdup %ymm12, %ymm5 # ymm5 = ymm12[1,1,3,3,5,5,7,7]
1239
+ vpmuldq %ymm3, %ymm5, %ymm14
1240
+ vpmuldq %ymm2, %ymm12, %ymm12
1241
+ vpmuldq %ymm15, %ymm5, %ymm5
1242
+ vpmuldq %ymm0, %ymm13, %ymm13
1243
+ vpmuldq %ymm0, %ymm14, %ymm14
1244
+ vpsubd %ymm13, %ymm12, %ymm12
1245
+ vpsubd %ymm14, %ymm5, %ymm5
1246
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1247
+ vpblendd $0xaa, %ymm5, %ymm12, %ymm5 # ymm5 = ymm12[0],ymm5[1],ymm12[2],ymm5[3],ymm12[4],ymm5[5],ymm12[6],ymm5[7]
1248
+ vpermq $0x1b, 0x420(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
1249
+ vpermq $0x1b, 0x8c0(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
1250
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
1251
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
1252
+ vpsubd %ymm6, %ymm7, %ymm12
1253
+ vpaddd %ymm7, %ymm6, %ymm6
1254
+ vpmuldq %ymm1, %ymm12, %ymm13
1255
+ vmovshdup %ymm12, %ymm7 # ymm7 = ymm12[1,1,3,3,5,5,7,7]
1256
+ vpmuldq %ymm3, %ymm7, %ymm14
1257
+ vpmuldq %ymm2, %ymm12, %ymm12
1258
+ vpmuldq %ymm15, %ymm7, %ymm7
1259
+ vpmuldq %ymm0, %ymm13, %ymm13
1260
+ vpmuldq %ymm0, %ymm14, %ymm14
1261
+ vpsubd %ymm13, %ymm12, %ymm12
1262
+ vpsubd %ymm14, %ymm7, %ymm7
1263
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1264
+ vpblendd $0xaa, %ymm7, %ymm12, %ymm7 # ymm7 = ymm12[0],ymm7[1],ymm12[2],ymm7[3],ymm12[4],ymm7[5],ymm12[6],ymm7[7]
1265
+ vpermq $0x1b, 0x3a0(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
1266
+ vpermq $0x1b, 0x840(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
1267
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
1268
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
1269
+ vpsubd %ymm8, %ymm9, %ymm12
1270
+ vpaddd %ymm9, %ymm8, %ymm8
1271
+ vpmuldq %ymm1, %ymm12, %ymm13
1272
+ vmovshdup %ymm12, %ymm9 # ymm9 = ymm12[1,1,3,3,5,5,7,7]
1273
+ vpmuldq %ymm3, %ymm9, %ymm14
1274
+ vpmuldq %ymm2, %ymm12, %ymm12
1275
+ vpmuldq %ymm15, %ymm9, %ymm9
1276
+ vpmuldq %ymm0, %ymm13, %ymm13
1277
+ vpmuldq %ymm0, %ymm14, %ymm14
1278
+ vpsubd %ymm13, %ymm12, %ymm12
1279
+ vpsubd %ymm14, %ymm9, %ymm9
1280
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1281
+ vpblendd $0xaa, %ymm9, %ymm12, %ymm9 # ymm9 = ymm12[0],ymm9[1],ymm12[2],ymm9[3],ymm12[4],ymm9[5],ymm12[6],ymm9[7]
1282
+ vpermq $0x1b, 0x320(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
1283
+ vpermq $0x1b, 0x7c0(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
1284
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
1285
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
1286
+ vpsubd %ymm10, %ymm11, %ymm12
1287
+ vpaddd %ymm11, %ymm10, %ymm10
1288
+ vpmuldq %ymm1, %ymm12, %ymm13
1289
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
1290
+ vpmuldq %ymm3, %ymm11, %ymm14
1291
+ vpmuldq %ymm2, %ymm12, %ymm12
1292
+ vpmuldq %ymm15, %ymm11, %ymm11
1293
+ vpmuldq %ymm0, %ymm13, %ymm13
1294
+ vpmuldq %ymm0, %ymm14, %ymm14
1295
+ vpsubd %ymm13, %ymm12, %ymm12
1296
+ vpsubd %ymm14, %ymm11, %ymm11
1297
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1298
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
1299
+ vpermq $0x1b, 0x2a0(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
1300
+ vpermq $0x1b, 0x740(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
1301
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
1302
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
1303
+ vpsubd %ymm4, %ymm6, %ymm12
1304
+ vpaddd %ymm6, %ymm4, %ymm4
1305
+ vpmuldq %ymm1, %ymm12, %ymm13
1306
+ vmovshdup %ymm12, %ymm6 # ymm6 = ymm12[1,1,3,3,5,5,7,7]
1307
+ vpmuldq %ymm3, %ymm6, %ymm14
1308
+ vpmuldq %ymm2, %ymm12, %ymm12
1309
+ vpmuldq %ymm15, %ymm6, %ymm6
1310
+ vpmuldq %ymm0, %ymm13, %ymm13
1311
+ vpmuldq %ymm0, %ymm14, %ymm14
1312
+ vpsubd %ymm13, %ymm12, %ymm12
1313
+ vpsubd %ymm14, %ymm6, %ymm6
1314
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1315
+ vpblendd $0xaa, %ymm6, %ymm12, %ymm6 # ymm6 = ymm12[0],ymm6[1],ymm12[2],ymm6[3],ymm12[4],ymm6[5],ymm12[6],ymm6[7]
1316
+ vpsubd %ymm5, %ymm7, %ymm12
1317
+ vpaddd %ymm7, %ymm5, %ymm5
1318
+ vpmuldq %ymm1, %ymm12, %ymm13
1319
+ vmovshdup %ymm12, %ymm7 # ymm7 = ymm12[1,1,3,3,5,5,7,7]
1320
+ vpmuldq %ymm3, %ymm7, %ymm14
1321
+ vpmuldq %ymm2, %ymm12, %ymm12
1322
+ vpmuldq %ymm15, %ymm7, %ymm7
1323
+ vpmuldq %ymm0, %ymm13, %ymm13
1324
+ vpmuldq %ymm0, %ymm14, %ymm14
1325
+ vpsubd %ymm13, %ymm12, %ymm12
1326
+ vpsubd %ymm14, %ymm7, %ymm7
1327
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1328
+ vpblendd $0xaa, %ymm7, %ymm12, %ymm7 # ymm7 = ymm12[0],ymm7[1],ymm12[2],ymm7[3],ymm12[4],ymm7[5],ymm12[6],ymm7[7]
1329
+ vpermq $0x1b, 0x220(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
1330
+ vpermq $0x1b, 0x6c0(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
1331
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
1332
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
1333
+ vpsubd %ymm8, %ymm10, %ymm12
1334
+ vpaddd %ymm10, %ymm8, %ymm8
1335
+ vpmuldq %ymm1, %ymm12, %ymm13
1336
+ vmovshdup %ymm12, %ymm10 # ymm10 = ymm12[1,1,3,3,5,5,7,7]
1337
+ vpmuldq %ymm3, %ymm10, %ymm14
1338
+ vpmuldq %ymm2, %ymm12, %ymm12
1339
+ vpmuldq %ymm15, %ymm10, %ymm10
1340
+ vpmuldq %ymm0, %ymm13, %ymm13
1341
+ vpmuldq %ymm0, %ymm14, %ymm14
1342
+ vpsubd %ymm13, %ymm12, %ymm12
1343
+ vpsubd %ymm14, %ymm10, %ymm10
1344
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1345
+ vpblendd $0xaa, %ymm10, %ymm12, %ymm10 # ymm10 = ymm12[0],ymm10[1],ymm12[2],ymm10[3],ymm12[4],ymm10[5],ymm12[6],ymm10[7]
1346
+ vpsubd %ymm9, %ymm11, %ymm12
1347
+ vpaddd %ymm11, %ymm9, %ymm9
1348
+ vpmuldq %ymm1, %ymm12, %ymm13
1349
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
1350
+ vpmuldq %ymm3, %ymm11, %ymm14
1351
+ vpmuldq %ymm2, %ymm12, %ymm12
1352
+ vpmuldq %ymm15, %ymm11, %ymm11
1353
+ vpmuldq %ymm0, %ymm13, %ymm13
1354
+ vpmuldq %ymm0, %ymm14, %ymm14
1355
+ vpsubd %ymm13, %ymm12, %ymm12
1356
+ vpsubd %ymm14, %ymm11, %ymm11
1357
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1358
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
1359
+ vpermq $0x1b, 0x1a0(%rsi), %ymm3 # ymm3 = mem[3,2,1,0]
1360
+ vpermq $0x1b, 0x640(%rsi), %ymm15 # ymm15 = mem[3,2,1,0]
1361
+ vmovshdup %ymm3, %ymm1 # ymm1 = ymm3[1,1,3,3,5,5,7,7]
1362
+ vmovshdup %ymm15, %ymm2 # ymm2 = ymm15[1,1,3,3,5,5,7,7]
1363
+ vpsubd %ymm4, %ymm8, %ymm12
1364
+ vpaddd %ymm4, %ymm8, %ymm4
1365
+ vpmuldq %ymm1, %ymm12, %ymm13
1366
+ vmovshdup %ymm12, %ymm8 # ymm8 = ymm12[1,1,3,3,5,5,7,7]
1367
+ vpmuldq %ymm3, %ymm8, %ymm14
1368
+ vpmuldq %ymm2, %ymm12, %ymm12
1369
+ vpmuldq %ymm15, %ymm8, %ymm8
1370
+ vpmuldq %ymm0, %ymm13, %ymm13
1371
+ vpmuldq %ymm0, %ymm14, %ymm14
1372
+ vpsubd %ymm13, %ymm12, %ymm12
1373
+ vpsubd %ymm14, %ymm8, %ymm8
1374
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1375
+ vpblendd $0xaa, %ymm8, %ymm12, %ymm8 # ymm8 = ymm12[0],ymm8[1],ymm12[2],ymm8[3],ymm12[4],ymm8[5],ymm12[6],ymm8[7]
1376
+ vpsubd %ymm5, %ymm9, %ymm12
1377
+ vpaddd %ymm5, %ymm9, %ymm5
1378
+ vpmuldq %ymm1, %ymm12, %ymm13
1379
+ vmovshdup %ymm12, %ymm9 # ymm9 = ymm12[1,1,3,3,5,5,7,7]
1380
+ vpmuldq %ymm3, %ymm9, %ymm14
1381
+ vpmuldq %ymm2, %ymm12, %ymm12
1382
+ vpmuldq %ymm15, %ymm9, %ymm9
1383
+ vpmuldq %ymm0, %ymm13, %ymm13
1384
+ vpmuldq %ymm0, %ymm14, %ymm14
1385
+ vpsubd %ymm13, %ymm12, %ymm12
1386
+ vpsubd %ymm14, %ymm9, %ymm9
1387
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1388
+ vpblendd $0xaa, %ymm9, %ymm12, %ymm9 # ymm9 = ymm12[0],ymm9[1],ymm12[2],ymm9[3],ymm12[4],ymm9[5],ymm12[6],ymm9[7]
1389
+ vpsubd %ymm6, %ymm10, %ymm12
1390
+ vpaddd %ymm6, %ymm10, %ymm6
1391
+ vpmuldq %ymm1, %ymm12, %ymm13
1392
+ vmovshdup %ymm12, %ymm10 # ymm10 = ymm12[1,1,3,3,5,5,7,7]
1393
+ vpmuldq %ymm3, %ymm10, %ymm14
1394
+ vpmuldq %ymm2, %ymm12, %ymm12
1395
+ vpmuldq %ymm15, %ymm10, %ymm10
1396
+ vpmuldq %ymm0, %ymm13, %ymm13
1397
+ vpmuldq %ymm0, %ymm14, %ymm14
1398
+ vpsubd %ymm13, %ymm12, %ymm12
1399
+ vpsubd %ymm14, %ymm10, %ymm10
1400
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1401
+ vpblendd $0xaa, %ymm10, %ymm12, %ymm10 # ymm10 = ymm12[0],ymm10[1],ymm12[2],ymm10[3],ymm12[4],ymm10[5],ymm12[6],ymm10[7]
1402
+ vpsubd %ymm7, %ymm11, %ymm12
1403
+ vpaddd %ymm7, %ymm11, %ymm7
1404
+ vpmuldq %ymm1, %ymm12, %ymm13
1405
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
1406
+ vpmuldq %ymm3, %ymm11, %ymm14
1407
+ vpmuldq %ymm2, %ymm12, %ymm12
1408
+ vpmuldq %ymm15, %ymm11, %ymm11
1409
+ vpmuldq %ymm0, %ymm13, %ymm13
1410
+ vpmuldq %ymm0, %ymm14, %ymm14
1411
+ vpsubd %ymm13, %ymm12, %ymm12
1412
+ vpsubd %ymm14, %ymm11, %ymm11
1413
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1414
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
1415
+ vmovsldup %ymm5, %ymm3 # ymm3 = ymm5[0,0,2,2,4,4,6,6]
1416
+ vpblendd $0xaa, %ymm3, %ymm4, %ymm3 # ymm3 = ymm4[0],ymm3[1],ymm4[2],ymm3[3],ymm4[4],ymm3[5],ymm4[6],ymm3[7]
1417
+ vpsrlq $0x20, %ymm4, %ymm4
1418
+ vpblendd $0xaa, %ymm5, %ymm4, %ymm5 # ymm5 = ymm4[0],ymm5[1],ymm4[2],ymm5[3],ymm4[4],ymm5[5],ymm4[6],ymm5[7]
1419
+ vmovsldup %ymm7, %ymm4 # ymm4 = ymm7[0,0,2,2,4,4,6,6]
1420
+ vpblendd $0xaa, %ymm4, %ymm6, %ymm4 # ymm4 = ymm6[0],ymm4[1],ymm6[2],ymm4[3],ymm6[4],ymm4[5],ymm6[6],ymm4[7]
1421
+ vpsrlq $0x20, %ymm6, %ymm6
1422
+ vpblendd $0xaa, %ymm7, %ymm6, %ymm7 # ymm7 = ymm6[0],ymm7[1],ymm6[2],ymm7[3],ymm6[4],ymm7[5],ymm6[6],ymm7[7]
1423
+ vmovsldup %ymm9, %ymm6 # ymm6 = ymm9[0,0,2,2,4,4,6,6]
1424
+ vpblendd $0xaa, %ymm6, %ymm8, %ymm6 # ymm6 = ymm8[0],ymm6[1],ymm8[2],ymm6[3],ymm8[4],ymm6[5],ymm8[6],ymm6[7]
1425
+ vpsrlq $0x20, %ymm8, %ymm8
1426
+ vpblendd $0xaa, %ymm9, %ymm8, %ymm9 # ymm9 = ymm8[0],ymm9[1],ymm8[2],ymm9[3],ymm8[4],ymm9[5],ymm8[6],ymm9[7]
1427
+ vmovsldup %ymm11, %ymm8 # ymm8 = ymm11[0,0,2,2,4,4,6,6]
1428
+ vpblendd $0xaa, %ymm8, %ymm10, %ymm8 # ymm8 = ymm10[0],ymm8[1],ymm10[2],ymm8[3],ymm10[4],ymm8[5],ymm10[6],ymm8[7]
1429
+ vpsrlq $0x20, %ymm10, %ymm10
1430
+ vpblendd $0xaa, %ymm11, %ymm10, %ymm11 # ymm11 = ymm10[0],ymm11[1],ymm10[2],ymm11[3],ymm10[4],ymm11[5],ymm10[6],ymm11[7]
1431
+ vpermq $0x1b, 0x120(%rsi), %ymm1 # ymm1 = mem[3,2,1,0]
1432
+ vpermq $0x1b, 0x5c0(%rsi), %ymm2 # ymm2 = mem[3,2,1,0]
1433
+ vpsubd %ymm3, %ymm5, %ymm12
1434
+ vpaddd %ymm5, %ymm3, %ymm3
1435
+ vpmuldq %ymm1, %ymm12, %ymm13
1436
+ vmovshdup %ymm12, %ymm5 # ymm5 = ymm12[1,1,3,3,5,5,7,7]
1437
+ vpmuldq %ymm1, %ymm5, %ymm14
1438
+ vpmuldq %ymm2, %ymm12, %ymm12
1439
+ vpmuldq %ymm2, %ymm5, %ymm5
1440
+ vpmuldq %ymm0, %ymm13, %ymm13
1441
+ vpmuldq %ymm0, %ymm14, %ymm14
1442
+ vpsubd %ymm13, %ymm12, %ymm12
1443
+ vpsubd %ymm14, %ymm5, %ymm5
1444
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1445
+ vpblendd $0xaa, %ymm5, %ymm12, %ymm5 # ymm5 = ymm12[0],ymm5[1],ymm12[2],ymm5[3],ymm12[4],ymm5[5],ymm12[6],ymm5[7]
1446
+ vpsubd %ymm4, %ymm7, %ymm12
1447
+ vpaddd %ymm7, %ymm4, %ymm4
1448
+ vpmuldq %ymm1, %ymm12, %ymm13
1449
+ vmovshdup %ymm12, %ymm7 # ymm7 = ymm12[1,1,3,3,5,5,7,7]
1450
+ vpmuldq %ymm1, %ymm7, %ymm14
1451
+ vpmuldq %ymm2, %ymm12, %ymm12
1452
+ vpmuldq %ymm2, %ymm7, %ymm7
1453
+ vpmuldq %ymm0, %ymm13, %ymm13
1454
+ vpmuldq %ymm0, %ymm14, %ymm14
1455
+ vpsubd %ymm13, %ymm12, %ymm12
1456
+ vpsubd %ymm14, %ymm7, %ymm7
1457
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1458
+ vpblendd $0xaa, %ymm7, %ymm12, %ymm7 # ymm7 = ymm12[0],ymm7[1],ymm12[2],ymm7[3],ymm12[4],ymm7[5],ymm12[6],ymm7[7]
1459
+ vpsubd %ymm6, %ymm9, %ymm12
1460
+ vpaddd %ymm6, %ymm9, %ymm6
1461
+ vpmuldq %ymm1, %ymm12, %ymm13
1462
+ vmovshdup %ymm12, %ymm9 # ymm9 = ymm12[1,1,3,3,5,5,7,7]
1463
+ vpmuldq %ymm1, %ymm9, %ymm14
1464
+ vpmuldq %ymm2, %ymm12, %ymm12
1465
+ vpmuldq %ymm2, %ymm9, %ymm9
1466
+ vpmuldq %ymm0, %ymm13, %ymm13
1467
+ vpmuldq %ymm0, %ymm14, %ymm14
1468
+ vpsubd %ymm13, %ymm12, %ymm12
1469
+ vpsubd %ymm14, %ymm9, %ymm9
1470
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1471
+ vpblendd $0xaa, %ymm9, %ymm12, %ymm9 # ymm9 = ymm12[0],ymm9[1],ymm12[2],ymm9[3],ymm12[4],ymm9[5],ymm12[6],ymm9[7]
1472
+ vpsubd %ymm8, %ymm11, %ymm12
1473
+ vpaddd %ymm11, %ymm8, %ymm8
1474
+ vpmuldq %ymm1, %ymm12, %ymm13
1475
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
1476
+ vpmuldq %ymm1, %ymm11, %ymm14
1477
+ vpmuldq %ymm2, %ymm12, %ymm12
1478
+ vpmuldq %ymm2, %ymm11, %ymm11
1479
+ vpmuldq %ymm0, %ymm13, %ymm13
1480
+ vpmuldq %ymm0, %ymm14, %ymm14
1481
+ vpsubd %ymm13, %ymm12, %ymm12
1482
+ vpsubd %ymm14, %ymm11, %ymm11
1483
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1484
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
1485
+ vpunpcklqdq %ymm4, %ymm3, %ymm10 # ymm10 = ymm3[0],ymm4[0],ymm3[2],ymm4[2]
1486
+ vpunpckhqdq %ymm4, %ymm3, %ymm4 # ymm4 = ymm3[1],ymm4[1],ymm3[3],ymm4[3]
1487
+ vpunpcklqdq %ymm8, %ymm6, %ymm3 # ymm3 = ymm6[0],ymm8[0],ymm6[2],ymm8[2]
1488
+ vpunpckhqdq %ymm8, %ymm6, %ymm8 # ymm8 = ymm6[1],ymm8[1],ymm6[3],ymm8[3]
1489
+ vpunpcklqdq %ymm7, %ymm5, %ymm6 # ymm6 = ymm5[0],ymm7[0],ymm5[2],ymm7[2]
1490
+ vpunpckhqdq %ymm7, %ymm5, %ymm7 # ymm7 = ymm5[1],ymm7[1],ymm5[3],ymm7[3]
1491
+ vpunpcklqdq %ymm11, %ymm9, %ymm5 # ymm5 = ymm9[0],ymm11[0],ymm9[2],ymm11[2]
1492
+ vpunpckhqdq %ymm11, %ymm9, %ymm11 # ymm11 = ymm9[1],ymm11[1],ymm9[3],ymm11[3]
1493
+ vpermq $0x1b, 0xa0(%rsi), %ymm1 # ymm1 = mem[3,2,1,0]
1494
+ vpermq $0x1b, 0x540(%rsi), %ymm2 # ymm2 = mem[3,2,1,0]
1495
+ vpsubd %ymm10, %ymm4, %ymm12
1496
+ vpaddd %ymm4, %ymm10, %ymm10
1497
+ vpmuldq %ymm1, %ymm12, %ymm13
1498
+ vmovshdup %ymm12, %ymm4 # ymm4 = ymm12[1,1,3,3,5,5,7,7]
1499
+ vpmuldq %ymm1, %ymm4, %ymm14
1500
+ vpmuldq %ymm2, %ymm12, %ymm12
1501
+ vpmuldq %ymm2, %ymm4, %ymm4
1502
+ vpmuldq %ymm0, %ymm13, %ymm13
1503
+ vpmuldq %ymm0, %ymm14, %ymm14
1504
+ vpsubd %ymm13, %ymm12, %ymm12
1505
+ vpsubd %ymm14, %ymm4, %ymm4
1506
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1507
+ vpblendd $0xaa, %ymm4, %ymm12, %ymm4 # ymm4 = ymm12[0],ymm4[1],ymm12[2],ymm4[3],ymm12[4],ymm4[5],ymm12[6],ymm4[7]
1508
+ vpsubd %ymm3, %ymm8, %ymm12
1509
+ vpaddd %ymm3, %ymm8, %ymm3
1510
+ vpmuldq %ymm1, %ymm12, %ymm13
1511
+ vmovshdup %ymm12, %ymm8 # ymm8 = ymm12[1,1,3,3,5,5,7,7]
1512
+ vpmuldq %ymm1, %ymm8, %ymm14
1513
+ vpmuldq %ymm2, %ymm12, %ymm12
1514
+ vpmuldq %ymm2, %ymm8, %ymm8
1515
+ vpmuldq %ymm0, %ymm13, %ymm13
1516
+ vpmuldq %ymm0, %ymm14, %ymm14
1517
+ vpsubd %ymm13, %ymm12, %ymm12
1518
+ vpsubd %ymm14, %ymm8, %ymm8
1519
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1520
+ vpblendd $0xaa, %ymm8, %ymm12, %ymm8 # ymm8 = ymm12[0],ymm8[1],ymm12[2],ymm8[3],ymm12[4],ymm8[5],ymm12[6],ymm8[7]
1521
+ vpsubd %ymm6, %ymm7, %ymm12
1522
+ vpaddd %ymm7, %ymm6, %ymm6
1523
+ vpmuldq %ymm1, %ymm12, %ymm13
1524
+ vmovshdup %ymm12, %ymm7 # ymm7 = ymm12[1,1,3,3,5,5,7,7]
1525
+ vpmuldq %ymm1, %ymm7, %ymm14
1526
+ vpmuldq %ymm2, %ymm12, %ymm12
1527
+ vpmuldq %ymm2, %ymm7, %ymm7
1528
+ vpmuldq %ymm0, %ymm13, %ymm13
1529
+ vpmuldq %ymm0, %ymm14, %ymm14
1530
+ vpsubd %ymm13, %ymm12, %ymm12
1531
+ vpsubd %ymm14, %ymm7, %ymm7
1532
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1533
+ vpblendd $0xaa, %ymm7, %ymm12, %ymm7 # ymm7 = ymm12[0],ymm7[1],ymm12[2],ymm7[3],ymm12[4],ymm7[5],ymm12[6],ymm7[7]
1534
+ vpsubd %ymm5, %ymm11, %ymm12
1535
+ vpaddd %ymm5, %ymm11, %ymm5
1536
+ vpmuldq %ymm1, %ymm12, %ymm13
1537
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
1538
+ vpmuldq %ymm1, %ymm11, %ymm14
1539
+ vpmuldq %ymm2, %ymm12, %ymm12
1540
+ vpmuldq %ymm2, %ymm11, %ymm11
1541
+ vpmuldq %ymm0, %ymm13, %ymm13
1542
+ vpmuldq %ymm0, %ymm14, %ymm14
1543
+ vpsubd %ymm13, %ymm12, %ymm12
1544
+ vpsubd %ymm14, %ymm11, %ymm11
1545
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1546
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
1547
+ vperm2i128 $0x20, %ymm3, %ymm10, %ymm9 # ymm9 = ymm10[0,1],ymm3[0,1]
1548
+ vperm2i128 $0x31, %ymm3, %ymm10, %ymm3 # ymm3 = ymm10[2,3],ymm3[2,3]
1549
+ vperm2i128 $0x20, %ymm5, %ymm6, %ymm10 # ymm10 = ymm6[0,1],ymm5[0,1]
1550
+ vperm2i128 $0x31, %ymm5, %ymm6, %ymm5 # ymm5 = ymm6[2,3],ymm5[2,3]
1551
+ vperm2i128 $0x20, %ymm8, %ymm4, %ymm6 # ymm6 = ymm4[0,1],ymm8[0,1]
1552
+ vperm2i128 $0x31, %ymm8, %ymm4, %ymm8 # ymm8 = ymm4[2,3],ymm8[2,3]
1553
+ vperm2i128 $0x20, %ymm11, %ymm7, %ymm4 # ymm4 = ymm7[0,1],ymm11[0,1]
1554
+ vperm2i128 $0x31, %ymm11, %ymm7, %ymm11 # ymm11 = ymm7[2,3],ymm11[2,3]
1555
+ vpbroadcastd 0x90(%rsi), %ymm1
1556
+ vpbroadcastd 0x530(%rsi), %ymm2
1557
+ vpsubd %ymm9, %ymm3, %ymm12
1558
+ vpaddd %ymm3, %ymm9, %ymm9
1559
+ vpmuldq %ymm1, %ymm12, %ymm13
1560
+ vmovshdup %ymm12, %ymm3 # ymm3 = ymm12[1,1,3,3,5,5,7,7]
1561
+ vpmuldq %ymm1, %ymm3, %ymm14
1562
+ vpmuldq %ymm2, %ymm12, %ymm12
1563
+ vpmuldq %ymm2, %ymm3, %ymm3
1564
+ vpmuldq %ymm0, %ymm13, %ymm13
1565
+ vpmuldq %ymm0, %ymm14, %ymm14
1566
+ vpsubd %ymm13, %ymm12, %ymm12
1567
+ vpsubd %ymm14, %ymm3, %ymm3
1568
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1569
+ vpblendd $0xaa, %ymm3, %ymm12, %ymm3 # ymm3 = ymm12[0],ymm3[1],ymm12[2],ymm3[3],ymm12[4],ymm3[5],ymm12[6],ymm3[7]
1570
+ vpsubd %ymm10, %ymm5, %ymm12
1571
+ vpaddd %ymm5, %ymm10, %ymm10
1572
+ vpmuldq %ymm1, %ymm12, %ymm13
1573
+ vmovshdup %ymm12, %ymm5 # ymm5 = ymm12[1,1,3,3,5,5,7,7]
1574
+ vpmuldq %ymm1, %ymm5, %ymm14
1575
+ vpmuldq %ymm2, %ymm12, %ymm12
1576
+ vpmuldq %ymm2, %ymm5, %ymm5
1577
+ vpmuldq %ymm0, %ymm13, %ymm13
1578
+ vpmuldq %ymm0, %ymm14, %ymm14
1579
+ vpsubd %ymm13, %ymm12, %ymm12
1580
+ vpsubd %ymm14, %ymm5, %ymm5
1581
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1582
+ vpblendd $0xaa, %ymm5, %ymm12, %ymm5 # ymm5 = ymm12[0],ymm5[1],ymm12[2],ymm5[3],ymm12[4],ymm5[5],ymm12[6],ymm5[7]
1583
+ vpsubd %ymm6, %ymm8, %ymm12
1584
+ vpaddd %ymm6, %ymm8, %ymm6
1585
+ vpmuldq %ymm1, %ymm12, %ymm13
1586
+ vmovshdup %ymm12, %ymm8 # ymm8 = ymm12[1,1,3,3,5,5,7,7]
1587
+ vpmuldq %ymm1, %ymm8, %ymm14
1588
+ vpmuldq %ymm2, %ymm12, %ymm12
1589
+ vpmuldq %ymm2, %ymm8, %ymm8
1590
+ vpmuldq %ymm0, %ymm13, %ymm13
1591
+ vpmuldq %ymm0, %ymm14, %ymm14
1592
+ vpsubd %ymm13, %ymm12, %ymm12
1593
+ vpsubd %ymm14, %ymm8, %ymm8
1594
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1595
+ vpblendd $0xaa, %ymm8, %ymm12, %ymm8 # ymm8 = ymm12[0],ymm8[1],ymm12[2],ymm8[3],ymm12[4],ymm8[5],ymm12[6],ymm8[7]
1596
+ vpsubd %ymm4, %ymm11, %ymm12
1597
+ vpaddd %ymm4, %ymm11, %ymm4
1598
+ vpmuldq %ymm1, %ymm12, %ymm13
1599
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
1600
+ vpmuldq %ymm1, %ymm11, %ymm14
1601
+ vpmuldq %ymm2, %ymm12, %ymm12
1602
+ vpmuldq %ymm2, %ymm11, %ymm11
1603
+ vpmuldq %ymm0, %ymm13, %ymm13
1604
+ vpmuldq %ymm0, %ymm14, %ymm14
1605
+ vpsubd %ymm13, %ymm12, %ymm12
1606
+ vpsubd %ymm14, %ymm11, %ymm11
1607
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1608
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
1609
+ vmovdqa %ymm9, 0x300(%rdi)
1610
+ vmovdqa %ymm10, 0x320(%rdi)
1611
+ vmovdqa %ymm6, 0x340(%rdi)
1612
+ vmovdqa %ymm4, 0x360(%rdi)
1613
+ vmovdqa %ymm3, 0x380(%rdi)
1614
+ vmovdqa %ymm5, 0x3a0(%rdi)
1615
+ vmovdqa %ymm8, 0x3c0(%rdi)
1616
+ vmovdqa %ymm11, 0x3e0(%rdi)
1617
+ vmovdqa (%rdi), %ymm4
1618
+ vmovdqa 0x80(%rdi), %ymm5
1619
+ vmovdqa 0x100(%rdi), %ymm6
1620
+ vmovdqa 0x180(%rdi), %ymm7
1621
+ vmovdqa 0x200(%rdi), %ymm8
1622
+ vmovdqa 0x280(%rdi), %ymm9
1623
+ vmovdqa 0x300(%rdi), %ymm10
1624
+ vmovdqa 0x380(%rdi), %ymm11
1625
+ vpbroadcastd 0x8c(%rsi), %ymm1
1626
+ vpbroadcastd 0x52c(%rsi), %ymm2
1627
+ vpsubd %ymm4, %ymm6, %ymm12
1628
+ vpaddd %ymm6, %ymm4, %ymm4
1629
+ vpmuldq %ymm1, %ymm12, %ymm13
1630
+ vmovshdup %ymm12, %ymm6 # ymm6 = ymm12[1,1,3,3,5,5,7,7]
1631
+ vpmuldq %ymm1, %ymm6, %ymm14
1632
+ vpmuldq %ymm2, %ymm12, %ymm12
1633
+ vpmuldq %ymm2, %ymm6, %ymm6
1634
+ vpmuldq %ymm0, %ymm13, %ymm13
1635
+ vpmuldq %ymm0, %ymm14, %ymm14
1636
+ vpsubd %ymm13, %ymm12, %ymm12
1637
+ vpsubd %ymm14, %ymm6, %ymm6
1638
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1639
+ vpblendd $0xaa, %ymm6, %ymm12, %ymm6 # ymm6 = ymm12[0],ymm6[1],ymm12[2],ymm6[3],ymm12[4],ymm6[5],ymm12[6],ymm6[7]
1640
+ vpsubd %ymm5, %ymm7, %ymm12
1641
+ vpaddd %ymm7, %ymm5, %ymm5
1642
+ vpmuldq %ymm1, %ymm12, %ymm13
1643
+ vmovshdup %ymm12, %ymm7 # ymm7 = ymm12[1,1,3,3,5,5,7,7]
1644
+ vpmuldq %ymm1, %ymm7, %ymm14
1645
+ vpmuldq %ymm2, %ymm12, %ymm12
1646
+ vpmuldq %ymm2, %ymm7, %ymm7
1647
+ vpmuldq %ymm0, %ymm13, %ymm13
1648
+ vpmuldq %ymm0, %ymm14, %ymm14
1649
+ vpsubd %ymm13, %ymm12, %ymm12
1650
+ vpsubd %ymm14, %ymm7, %ymm7
1651
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1652
+ vpblendd $0xaa, %ymm7, %ymm12, %ymm7 # ymm7 = ymm12[0],ymm7[1],ymm12[2],ymm7[3],ymm12[4],ymm7[5],ymm12[6],ymm7[7]
1653
+ vpbroadcastd 0x88(%rsi), %ymm1
1654
+ vpbroadcastd 0x528(%rsi), %ymm2
1655
+ vpsubd %ymm8, %ymm10, %ymm12
1656
+ vpaddd %ymm10, %ymm8, %ymm8
1657
+ vpmuldq %ymm1, %ymm12, %ymm13
1658
+ vmovshdup %ymm12, %ymm10 # ymm10 = ymm12[1,1,3,3,5,5,7,7]
1659
+ vpmuldq %ymm1, %ymm10, %ymm14
1660
+ vpmuldq %ymm2, %ymm12, %ymm12
1661
+ vpmuldq %ymm2, %ymm10, %ymm10
1662
+ vpmuldq %ymm0, %ymm13, %ymm13
1663
+ vpmuldq %ymm0, %ymm14, %ymm14
1664
+ vpsubd %ymm13, %ymm12, %ymm12
1665
+ vpsubd %ymm14, %ymm10, %ymm10
1666
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1667
+ vpblendd $0xaa, %ymm10, %ymm12, %ymm10 # ymm10 = ymm12[0],ymm10[1],ymm12[2],ymm10[3],ymm12[4],ymm10[5],ymm12[6],ymm10[7]
1668
+ vpsubd %ymm9, %ymm11, %ymm12
1669
+ vpaddd %ymm11, %ymm9, %ymm9
1670
+ vpmuldq %ymm1, %ymm12, %ymm13
1671
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
1672
+ vpmuldq %ymm1, %ymm11, %ymm14
1673
+ vpmuldq %ymm2, %ymm12, %ymm12
1674
+ vpmuldq %ymm2, %ymm11, %ymm11
1675
+ vpmuldq %ymm0, %ymm13, %ymm13
1676
+ vpmuldq %ymm0, %ymm14, %ymm14
1677
+ vpsubd %ymm13, %ymm12, %ymm12
1678
+ vpsubd %ymm14, %ymm11, %ymm11
1679
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1680
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
1681
+ vpbroadcastd 0x80(%rsi), %ymm1
1682
+ vpbroadcastd 0x520(%rsi), %ymm2
1683
+ vpsubd %ymm4, %ymm8, %ymm12
1684
+ vpaddd %ymm4, %ymm8, %ymm4
1685
+ vpmuldq %ymm1, %ymm12, %ymm13
1686
+ vmovshdup %ymm12, %ymm8 # ymm8 = ymm12[1,1,3,3,5,5,7,7]
1687
+ vpmuldq %ymm1, %ymm8, %ymm14
1688
+ vpmuldq %ymm2, %ymm12, %ymm12
1689
+ vpmuldq %ymm2, %ymm8, %ymm8
1690
+ vpmuldq %ymm0, %ymm13, %ymm13
1691
+ vpmuldq %ymm0, %ymm14, %ymm14
1692
+ vpsubd %ymm13, %ymm12, %ymm12
1693
+ vpsubd %ymm14, %ymm8, %ymm8
1694
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1695
+ vpblendd $0xaa, %ymm8, %ymm12, %ymm8 # ymm8 = ymm12[0],ymm8[1],ymm12[2],ymm8[3],ymm12[4],ymm8[5],ymm12[6],ymm8[7]
1696
+ vpsubd %ymm5, %ymm9, %ymm12
1697
+ vpaddd %ymm5, %ymm9, %ymm5
1698
+ vpmuldq %ymm1, %ymm12, %ymm13
1699
+ vmovshdup %ymm12, %ymm9 # ymm9 = ymm12[1,1,3,3,5,5,7,7]
1700
+ vpmuldq %ymm1, %ymm9, %ymm14
1701
+ vpmuldq %ymm2, %ymm12, %ymm12
1702
+ vpmuldq %ymm2, %ymm9, %ymm9
1703
+ vpmuldq %ymm0, %ymm13, %ymm13
1704
+ vpmuldq %ymm0, %ymm14, %ymm14
1705
+ vpsubd %ymm13, %ymm12, %ymm12
1706
+ vpsubd %ymm14, %ymm9, %ymm9
1707
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1708
+ vpblendd $0xaa, %ymm9, %ymm12, %ymm9 # ymm9 = ymm12[0],ymm9[1],ymm12[2],ymm9[3],ymm12[4],ymm9[5],ymm12[6],ymm9[7]
1709
+ vpsubd %ymm6, %ymm10, %ymm12
1710
+ vpaddd %ymm6, %ymm10, %ymm6
1711
+ vpmuldq %ymm1, %ymm12, %ymm13
1712
+ vmovshdup %ymm12, %ymm10 # ymm10 = ymm12[1,1,3,3,5,5,7,7]
1713
+ vpmuldq %ymm1, %ymm10, %ymm14
1714
+ vpmuldq %ymm2, %ymm12, %ymm12
1715
+ vpmuldq %ymm2, %ymm10, %ymm10
1716
+ vpmuldq %ymm0, %ymm13, %ymm13
1717
+ vpmuldq %ymm0, %ymm14, %ymm14
1718
+ vpsubd %ymm13, %ymm12, %ymm12
1719
+ vpsubd %ymm14, %ymm10, %ymm10
1720
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1721
+ vpblendd $0xaa, %ymm10, %ymm12, %ymm10 # ymm10 = ymm12[0],ymm10[1],ymm12[2],ymm10[3],ymm12[4],ymm10[5],ymm12[6],ymm10[7]
1722
+ vpsubd %ymm7, %ymm11, %ymm12
1723
+ vpaddd %ymm7, %ymm11, %ymm7
1724
+ vpmuldq %ymm1, %ymm12, %ymm13
1725
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
1726
+ vpmuldq %ymm1, %ymm11, %ymm14
1727
+ vpmuldq %ymm2, %ymm12, %ymm12
1728
+ vpmuldq %ymm2, %ymm11, %ymm11
1729
+ vpmuldq %ymm0, %ymm13, %ymm13
1730
+ vpmuldq %ymm0, %ymm14, %ymm14
1731
+ vpsubd %ymm13, %ymm12, %ymm12
1732
+ vpsubd %ymm14, %ymm11, %ymm11
1733
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1734
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
1735
+ vmovdqa %ymm8, 0x200(%rdi)
1736
+ vmovdqa %ymm9, 0x280(%rdi)
1737
+ vmovdqa %ymm10, 0x300(%rdi)
1738
+ vmovdqa %ymm11, 0x380(%rdi)
1739
+ vmovdqa 0x40(%rsi), %ymm1
1740
+ vmovdqa 0x60(%rsi), %ymm2
1741
+ vpmuldq %ymm1, %ymm4, %ymm12
1742
+ vpmuldq %ymm1, %ymm5, %ymm13
1743
+ vmovshdup %ymm4, %ymm8 # ymm8 = ymm4[1,1,3,3,5,5,7,7]
1744
+ vmovshdup %ymm5, %ymm9 # ymm9 = ymm5[1,1,3,3,5,5,7,7]
1745
+ vpmuldq %ymm1, %ymm8, %ymm14
1746
+ vpmuldq %ymm1, %ymm9, %ymm15
1747
+ vpmuldq %ymm2, %ymm4, %ymm4
1748
+ vpmuldq %ymm2, %ymm5, %ymm5
1749
+ vpmuldq %ymm2, %ymm8, %ymm8
1750
+ vpmuldq %ymm2, %ymm9, %ymm9
1751
+ vpmuldq %ymm0, %ymm12, %ymm12
1752
+ vpmuldq %ymm0, %ymm13, %ymm13
1753
+ vpmuldq %ymm0, %ymm14, %ymm14
1754
+ vpmuldq %ymm0, %ymm15, %ymm15
1755
+ vpsubd %ymm12, %ymm4, %ymm4
1756
+ vpsubd %ymm13, %ymm5, %ymm5
1757
+ vpsubd %ymm14, %ymm8, %ymm8
1758
+ vpsubd %ymm15, %ymm9, %ymm9
1759
+ vmovshdup %ymm4, %ymm4 # ymm4 = ymm4[1,1,3,3,5,5,7,7]
1760
+ vmovshdup %ymm5, %ymm5 # ymm5 = ymm5[1,1,3,3,5,5,7,7]
1761
+ vpblendd $0xaa, %ymm8, %ymm4, %ymm4 # ymm4 = ymm4[0],ymm8[1],ymm4[2],ymm8[3],ymm4[4],ymm8[5],ymm4[6],ymm8[7]
1762
+ vpblendd $0xaa, %ymm9, %ymm5, %ymm5 # ymm5 = ymm5[0],ymm9[1],ymm5[2],ymm9[3],ymm5[4],ymm9[5],ymm5[6],ymm9[7]
1763
+ vpmuldq %ymm1, %ymm6, %ymm12
1764
+ vpmuldq %ymm1, %ymm7, %ymm13
1765
+ vmovshdup %ymm6, %ymm8 # ymm8 = ymm6[1,1,3,3,5,5,7,7]
1766
+ vmovshdup %ymm7, %ymm9 # ymm9 = ymm7[1,1,3,3,5,5,7,7]
1767
+ vpmuldq %ymm1, %ymm8, %ymm14
1768
+ vpmuldq %ymm1, %ymm9, %ymm15
1769
+ vpmuldq %ymm2, %ymm6, %ymm6
1770
+ vpmuldq %ymm2, %ymm7, %ymm7
1771
+ vpmuldq %ymm2, %ymm8, %ymm8
1772
+ vpmuldq %ymm2, %ymm9, %ymm9
1773
+ vpmuldq %ymm0, %ymm12, %ymm12
1774
+ vpmuldq %ymm0, %ymm13, %ymm13
1775
+ vpmuldq %ymm0, %ymm14, %ymm14
1776
+ vpmuldq %ymm0, %ymm15, %ymm15
1777
+ vpsubd %ymm12, %ymm6, %ymm6
1778
+ vpsubd %ymm13, %ymm7, %ymm7
1779
+ vpsubd %ymm14, %ymm8, %ymm8
1780
+ vpsubd %ymm15, %ymm9, %ymm9
1781
+ vmovshdup %ymm6, %ymm6 # ymm6 = ymm6[1,1,3,3,5,5,7,7]
1782
+ vmovshdup %ymm7, %ymm7 # ymm7 = ymm7[1,1,3,3,5,5,7,7]
1783
+ vpblendd $0xaa, %ymm8, %ymm6, %ymm6 # ymm6 = ymm6[0],ymm8[1],ymm6[2],ymm8[3],ymm6[4],ymm8[5],ymm6[6],ymm8[7]
1784
+ vpblendd $0xaa, %ymm9, %ymm7, %ymm7 # ymm7 = ymm7[0],ymm9[1],ymm7[2],ymm9[3],ymm7[4],ymm9[5],ymm7[6],ymm9[7]
1785
+ vmovdqa %ymm4, (%rdi)
1786
+ vmovdqa %ymm5, 0x80(%rdi)
1787
+ vmovdqa %ymm6, 0x100(%rdi)
1788
+ vmovdqa %ymm7, 0x180(%rdi)
1789
+ vmovdqa 0x20(%rdi), %ymm4
1790
+ vmovdqa 0xa0(%rdi), %ymm5
1791
+ vmovdqa 0x120(%rdi), %ymm6
1792
+ vmovdqa 0x1a0(%rdi), %ymm7
1793
+ vmovdqa 0x220(%rdi), %ymm8
1794
+ vmovdqa 0x2a0(%rdi), %ymm9
1795
+ vmovdqa 0x320(%rdi), %ymm10
1796
+ vmovdqa 0x3a0(%rdi), %ymm11
1797
+ vpbroadcastd 0x8c(%rsi), %ymm1
1798
+ vpbroadcastd 0x52c(%rsi), %ymm2
1799
+ vpsubd %ymm4, %ymm6, %ymm12
1800
+ vpaddd %ymm6, %ymm4, %ymm4
1801
+ vpmuldq %ymm1, %ymm12, %ymm13
1802
+ vmovshdup %ymm12, %ymm6 # ymm6 = ymm12[1,1,3,3,5,5,7,7]
1803
+ vpmuldq %ymm1, %ymm6, %ymm14
1804
+ vpmuldq %ymm2, %ymm12, %ymm12
1805
+ vpmuldq %ymm2, %ymm6, %ymm6
1806
+ vpmuldq %ymm0, %ymm13, %ymm13
1807
+ vpmuldq %ymm0, %ymm14, %ymm14
1808
+ vpsubd %ymm13, %ymm12, %ymm12
1809
+ vpsubd %ymm14, %ymm6, %ymm6
1810
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1811
+ vpblendd $0xaa, %ymm6, %ymm12, %ymm6 # ymm6 = ymm12[0],ymm6[1],ymm12[2],ymm6[3],ymm12[4],ymm6[5],ymm12[6],ymm6[7]
1812
+ vpsubd %ymm5, %ymm7, %ymm12
1813
+ vpaddd %ymm7, %ymm5, %ymm5
1814
+ vpmuldq %ymm1, %ymm12, %ymm13
1815
+ vmovshdup %ymm12, %ymm7 # ymm7 = ymm12[1,1,3,3,5,5,7,7]
1816
+ vpmuldq %ymm1, %ymm7, %ymm14
1817
+ vpmuldq %ymm2, %ymm12, %ymm12
1818
+ vpmuldq %ymm2, %ymm7, %ymm7
1819
+ vpmuldq %ymm0, %ymm13, %ymm13
1820
+ vpmuldq %ymm0, %ymm14, %ymm14
1821
+ vpsubd %ymm13, %ymm12, %ymm12
1822
+ vpsubd %ymm14, %ymm7, %ymm7
1823
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1824
+ vpblendd $0xaa, %ymm7, %ymm12, %ymm7 # ymm7 = ymm12[0],ymm7[1],ymm12[2],ymm7[3],ymm12[4],ymm7[5],ymm12[6],ymm7[7]
1825
+ vpbroadcastd 0x88(%rsi), %ymm1
1826
+ vpbroadcastd 0x528(%rsi), %ymm2
1827
+ vpsubd %ymm8, %ymm10, %ymm12
1828
+ vpaddd %ymm10, %ymm8, %ymm8
1829
+ vpmuldq %ymm1, %ymm12, %ymm13
1830
+ vmovshdup %ymm12, %ymm10 # ymm10 = ymm12[1,1,3,3,5,5,7,7]
1831
+ vpmuldq %ymm1, %ymm10, %ymm14
1832
+ vpmuldq %ymm2, %ymm12, %ymm12
1833
+ vpmuldq %ymm2, %ymm10, %ymm10
1834
+ vpmuldq %ymm0, %ymm13, %ymm13
1835
+ vpmuldq %ymm0, %ymm14, %ymm14
1836
+ vpsubd %ymm13, %ymm12, %ymm12
1837
+ vpsubd %ymm14, %ymm10, %ymm10
1838
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1839
+ vpblendd $0xaa, %ymm10, %ymm12, %ymm10 # ymm10 = ymm12[0],ymm10[1],ymm12[2],ymm10[3],ymm12[4],ymm10[5],ymm12[6],ymm10[7]
1840
+ vpsubd %ymm9, %ymm11, %ymm12
1841
+ vpaddd %ymm11, %ymm9, %ymm9
1842
+ vpmuldq %ymm1, %ymm12, %ymm13
1843
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
1844
+ vpmuldq %ymm1, %ymm11, %ymm14
1845
+ vpmuldq %ymm2, %ymm12, %ymm12
1846
+ vpmuldq %ymm2, %ymm11, %ymm11
1847
+ vpmuldq %ymm0, %ymm13, %ymm13
1848
+ vpmuldq %ymm0, %ymm14, %ymm14
1849
+ vpsubd %ymm13, %ymm12, %ymm12
1850
+ vpsubd %ymm14, %ymm11, %ymm11
1851
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1852
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
1853
+ vpbroadcastd 0x80(%rsi), %ymm1
1854
+ vpbroadcastd 0x520(%rsi), %ymm2
1855
+ vpsubd %ymm4, %ymm8, %ymm12
1856
+ vpaddd %ymm4, %ymm8, %ymm4
1857
+ vpmuldq %ymm1, %ymm12, %ymm13
1858
+ vmovshdup %ymm12, %ymm8 # ymm8 = ymm12[1,1,3,3,5,5,7,7]
1859
+ vpmuldq %ymm1, %ymm8, %ymm14
1860
+ vpmuldq %ymm2, %ymm12, %ymm12
1861
+ vpmuldq %ymm2, %ymm8, %ymm8
1862
+ vpmuldq %ymm0, %ymm13, %ymm13
1863
+ vpmuldq %ymm0, %ymm14, %ymm14
1864
+ vpsubd %ymm13, %ymm12, %ymm12
1865
+ vpsubd %ymm14, %ymm8, %ymm8
1866
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1867
+ vpblendd $0xaa, %ymm8, %ymm12, %ymm8 # ymm8 = ymm12[0],ymm8[1],ymm12[2],ymm8[3],ymm12[4],ymm8[5],ymm12[6],ymm8[7]
1868
+ vpsubd %ymm5, %ymm9, %ymm12
1869
+ vpaddd %ymm5, %ymm9, %ymm5
1870
+ vpmuldq %ymm1, %ymm12, %ymm13
1871
+ vmovshdup %ymm12, %ymm9 # ymm9 = ymm12[1,1,3,3,5,5,7,7]
1872
+ vpmuldq %ymm1, %ymm9, %ymm14
1873
+ vpmuldq %ymm2, %ymm12, %ymm12
1874
+ vpmuldq %ymm2, %ymm9, %ymm9
1875
+ vpmuldq %ymm0, %ymm13, %ymm13
1876
+ vpmuldq %ymm0, %ymm14, %ymm14
1877
+ vpsubd %ymm13, %ymm12, %ymm12
1878
+ vpsubd %ymm14, %ymm9, %ymm9
1879
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1880
+ vpblendd $0xaa, %ymm9, %ymm12, %ymm9 # ymm9 = ymm12[0],ymm9[1],ymm12[2],ymm9[3],ymm12[4],ymm9[5],ymm12[6],ymm9[7]
1881
+ vpsubd %ymm6, %ymm10, %ymm12
1882
+ vpaddd %ymm6, %ymm10, %ymm6
1883
+ vpmuldq %ymm1, %ymm12, %ymm13
1884
+ vmovshdup %ymm12, %ymm10 # ymm10 = ymm12[1,1,3,3,5,5,7,7]
1885
+ vpmuldq %ymm1, %ymm10, %ymm14
1886
+ vpmuldq %ymm2, %ymm12, %ymm12
1887
+ vpmuldq %ymm2, %ymm10, %ymm10
1888
+ vpmuldq %ymm0, %ymm13, %ymm13
1889
+ vpmuldq %ymm0, %ymm14, %ymm14
1890
+ vpsubd %ymm13, %ymm12, %ymm12
1891
+ vpsubd %ymm14, %ymm10, %ymm10
1892
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1893
+ vpblendd $0xaa, %ymm10, %ymm12, %ymm10 # ymm10 = ymm12[0],ymm10[1],ymm12[2],ymm10[3],ymm12[4],ymm10[5],ymm12[6],ymm10[7]
1894
+ vpsubd %ymm7, %ymm11, %ymm12
1895
+ vpaddd %ymm7, %ymm11, %ymm7
1896
+ vpmuldq %ymm1, %ymm12, %ymm13
1897
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
1898
+ vpmuldq %ymm1, %ymm11, %ymm14
1899
+ vpmuldq %ymm2, %ymm12, %ymm12
1900
+ vpmuldq %ymm2, %ymm11, %ymm11
1901
+ vpmuldq %ymm0, %ymm13, %ymm13
1902
+ vpmuldq %ymm0, %ymm14, %ymm14
1903
+ vpsubd %ymm13, %ymm12, %ymm12
1904
+ vpsubd %ymm14, %ymm11, %ymm11
1905
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1906
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
1907
+ vmovdqa %ymm8, 0x220(%rdi)
1908
+ vmovdqa %ymm9, 0x2a0(%rdi)
1909
+ vmovdqa %ymm10, 0x320(%rdi)
1910
+ vmovdqa %ymm11, 0x3a0(%rdi)
1911
+ vmovdqa 0x40(%rsi), %ymm1
1912
+ vmovdqa 0x60(%rsi), %ymm2
1913
+ vpmuldq %ymm1, %ymm4, %ymm12
1914
+ vpmuldq %ymm1, %ymm5, %ymm13
1915
+ vmovshdup %ymm4, %ymm8 # ymm8 = ymm4[1,1,3,3,5,5,7,7]
1916
+ vmovshdup %ymm5, %ymm9 # ymm9 = ymm5[1,1,3,3,5,5,7,7]
1917
+ vpmuldq %ymm1, %ymm8, %ymm14
1918
+ vpmuldq %ymm1, %ymm9, %ymm15
1919
+ vpmuldq %ymm2, %ymm4, %ymm4
1920
+ vpmuldq %ymm2, %ymm5, %ymm5
1921
+ vpmuldq %ymm2, %ymm8, %ymm8
1922
+ vpmuldq %ymm2, %ymm9, %ymm9
1923
+ vpmuldq %ymm0, %ymm12, %ymm12
1924
+ vpmuldq %ymm0, %ymm13, %ymm13
1925
+ vpmuldq %ymm0, %ymm14, %ymm14
1926
+ vpmuldq %ymm0, %ymm15, %ymm15
1927
+ vpsubd %ymm12, %ymm4, %ymm4
1928
+ vpsubd %ymm13, %ymm5, %ymm5
1929
+ vpsubd %ymm14, %ymm8, %ymm8
1930
+ vpsubd %ymm15, %ymm9, %ymm9
1931
+ vmovshdup %ymm4, %ymm4 # ymm4 = ymm4[1,1,3,3,5,5,7,7]
1932
+ vmovshdup %ymm5, %ymm5 # ymm5 = ymm5[1,1,3,3,5,5,7,7]
1933
+ vpblendd $0xaa, %ymm8, %ymm4, %ymm4 # ymm4 = ymm4[0],ymm8[1],ymm4[2],ymm8[3],ymm4[4],ymm8[5],ymm4[6],ymm8[7]
1934
+ vpblendd $0xaa, %ymm9, %ymm5, %ymm5 # ymm5 = ymm5[0],ymm9[1],ymm5[2],ymm9[3],ymm5[4],ymm9[5],ymm5[6],ymm9[7]
1935
+ vpmuldq %ymm1, %ymm6, %ymm12
1936
+ vpmuldq %ymm1, %ymm7, %ymm13
1937
+ vmovshdup %ymm6, %ymm8 # ymm8 = ymm6[1,1,3,3,5,5,7,7]
1938
+ vmovshdup %ymm7, %ymm9 # ymm9 = ymm7[1,1,3,3,5,5,7,7]
1939
+ vpmuldq %ymm1, %ymm8, %ymm14
1940
+ vpmuldq %ymm1, %ymm9, %ymm15
1941
+ vpmuldq %ymm2, %ymm6, %ymm6
1942
+ vpmuldq %ymm2, %ymm7, %ymm7
1943
+ vpmuldq %ymm2, %ymm8, %ymm8
1944
+ vpmuldq %ymm2, %ymm9, %ymm9
1945
+ vpmuldq %ymm0, %ymm12, %ymm12
1946
+ vpmuldq %ymm0, %ymm13, %ymm13
1947
+ vpmuldq %ymm0, %ymm14, %ymm14
1948
+ vpmuldq %ymm0, %ymm15, %ymm15
1949
+ vpsubd %ymm12, %ymm6, %ymm6
1950
+ vpsubd %ymm13, %ymm7, %ymm7
1951
+ vpsubd %ymm14, %ymm8, %ymm8
1952
+ vpsubd %ymm15, %ymm9, %ymm9
1953
+ vmovshdup %ymm6, %ymm6 # ymm6 = ymm6[1,1,3,3,5,5,7,7]
1954
+ vmovshdup %ymm7, %ymm7 # ymm7 = ymm7[1,1,3,3,5,5,7,7]
1955
+ vpblendd $0xaa, %ymm8, %ymm6, %ymm6 # ymm6 = ymm6[0],ymm8[1],ymm6[2],ymm8[3],ymm6[4],ymm8[5],ymm6[6],ymm8[7]
1956
+ vpblendd $0xaa, %ymm9, %ymm7, %ymm7 # ymm7 = ymm7[0],ymm9[1],ymm7[2],ymm9[3],ymm7[4],ymm9[5],ymm7[6],ymm9[7]
1957
+ vmovdqa %ymm4, 0x20(%rdi)
1958
+ vmovdqa %ymm5, 0xa0(%rdi)
1959
+ vmovdqa %ymm6, 0x120(%rdi)
1960
+ vmovdqa %ymm7, 0x1a0(%rdi)
1961
+ vmovdqa 0x40(%rdi), %ymm4
1962
+ vmovdqa 0xc0(%rdi), %ymm5
1963
+ vmovdqa 0x140(%rdi), %ymm6
1964
+ vmovdqa 0x1c0(%rdi), %ymm7
1965
+ vmovdqa 0x240(%rdi), %ymm8
1966
+ vmovdqa 0x2c0(%rdi), %ymm9
1967
+ vmovdqa 0x340(%rdi), %ymm10
1968
+ vmovdqa 0x3c0(%rdi), %ymm11
1969
+ vpbroadcastd 0x8c(%rsi), %ymm1
1970
+ vpbroadcastd 0x52c(%rsi), %ymm2
1971
+ vpsubd %ymm4, %ymm6, %ymm12
1972
+ vpaddd %ymm6, %ymm4, %ymm4
1973
+ vpmuldq %ymm1, %ymm12, %ymm13
1974
+ vmovshdup %ymm12, %ymm6 # ymm6 = ymm12[1,1,3,3,5,5,7,7]
1975
+ vpmuldq %ymm1, %ymm6, %ymm14
1976
+ vpmuldq %ymm2, %ymm12, %ymm12
1977
+ vpmuldq %ymm2, %ymm6, %ymm6
1978
+ vpmuldq %ymm0, %ymm13, %ymm13
1979
+ vpmuldq %ymm0, %ymm14, %ymm14
1980
+ vpsubd %ymm13, %ymm12, %ymm12
1981
+ vpsubd %ymm14, %ymm6, %ymm6
1982
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1983
+ vpblendd $0xaa, %ymm6, %ymm12, %ymm6 # ymm6 = ymm12[0],ymm6[1],ymm12[2],ymm6[3],ymm12[4],ymm6[5],ymm12[6],ymm6[7]
1984
+ vpsubd %ymm5, %ymm7, %ymm12
1985
+ vpaddd %ymm7, %ymm5, %ymm5
1986
+ vpmuldq %ymm1, %ymm12, %ymm13
1987
+ vmovshdup %ymm12, %ymm7 # ymm7 = ymm12[1,1,3,3,5,5,7,7]
1988
+ vpmuldq %ymm1, %ymm7, %ymm14
1989
+ vpmuldq %ymm2, %ymm12, %ymm12
1990
+ vpmuldq %ymm2, %ymm7, %ymm7
1991
+ vpmuldq %ymm0, %ymm13, %ymm13
1992
+ vpmuldq %ymm0, %ymm14, %ymm14
1993
+ vpsubd %ymm13, %ymm12, %ymm12
1994
+ vpsubd %ymm14, %ymm7, %ymm7
1995
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
1996
+ vpblendd $0xaa, %ymm7, %ymm12, %ymm7 # ymm7 = ymm12[0],ymm7[1],ymm12[2],ymm7[3],ymm12[4],ymm7[5],ymm12[6],ymm7[7]
1997
+ vpbroadcastd 0x88(%rsi), %ymm1
1998
+ vpbroadcastd 0x528(%rsi), %ymm2
1999
+ vpsubd %ymm8, %ymm10, %ymm12
2000
+ vpaddd %ymm10, %ymm8, %ymm8
2001
+ vpmuldq %ymm1, %ymm12, %ymm13
2002
+ vmovshdup %ymm12, %ymm10 # ymm10 = ymm12[1,1,3,3,5,5,7,7]
2003
+ vpmuldq %ymm1, %ymm10, %ymm14
2004
+ vpmuldq %ymm2, %ymm12, %ymm12
2005
+ vpmuldq %ymm2, %ymm10, %ymm10
2006
+ vpmuldq %ymm0, %ymm13, %ymm13
2007
+ vpmuldq %ymm0, %ymm14, %ymm14
2008
+ vpsubd %ymm13, %ymm12, %ymm12
2009
+ vpsubd %ymm14, %ymm10, %ymm10
2010
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
2011
+ vpblendd $0xaa, %ymm10, %ymm12, %ymm10 # ymm10 = ymm12[0],ymm10[1],ymm12[2],ymm10[3],ymm12[4],ymm10[5],ymm12[6],ymm10[7]
2012
+ vpsubd %ymm9, %ymm11, %ymm12
2013
+ vpaddd %ymm11, %ymm9, %ymm9
2014
+ vpmuldq %ymm1, %ymm12, %ymm13
2015
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
2016
+ vpmuldq %ymm1, %ymm11, %ymm14
2017
+ vpmuldq %ymm2, %ymm12, %ymm12
2018
+ vpmuldq %ymm2, %ymm11, %ymm11
2019
+ vpmuldq %ymm0, %ymm13, %ymm13
2020
+ vpmuldq %ymm0, %ymm14, %ymm14
2021
+ vpsubd %ymm13, %ymm12, %ymm12
2022
+ vpsubd %ymm14, %ymm11, %ymm11
2023
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
2024
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
2025
+ vpbroadcastd 0x80(%rsi), %ymm1
2026
+ vpbroadcastd 0x520(%rsi), %ymm2
2027
+ vpsubd %ymm4, %ymm8, %ymm12
2028
+ vpaddd %ymm4, %ymm8, %ymm4
2029
+ vpmuldq %ymm1, %ymm12, %ymm13
2030
+ vmovshdup %ymm12, %ymm8 # ymm8 = ymm12[1,1,3,3,5,5,7,7]
2031
+ vpmuldq %ymm1, %ymm8, %ymm14
2032
+ vpmuldq %ymm2, %ymm12, %ymm12
2033
+ vpmuldq %ymm2, %ymm8, %ymm8
2034
+ vpmuldq %ymm0, %ymm13, %ymm13
2035
+ vpmuldq %ymm0, %ymm14, %ymm14
2036
+ vpsubd %ymm13, %ymm12, %ymm12
2037
+ vpsubd %ymm14, %ymm8, %ymm8
2038
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
2039
+ vpblendd $0xaa, %ymm8, %ymm12, %ymm8 # ymm8 = ymm12[0],ymm8[1],ymm12[2],ymm8[3],ymm12[4],ymm8[5],ymm12[6],ymm8[7]
2040
+ vpsubd %ymm5, %ymm9, %ymm12
2041
+ vpaddd %ymm5, %ymm9, %ymm5
2042
+ vpmuldq %ymm1, %ymm12, %ymm13
2043
+ vmovshdup %ymm12, %ymm9 # ymm9 = ymm12[1,1,3,3,5,5,7,7]
2044
+ vpmuldq %ymm1, %ymm9, %ymm14
2045
+ vpmuldq %ymm2, %ymm12, %ymm12
2046
+ vpmuldq %ymm2, %ymm9, %ymm9
2047
+ vpmuldq %ymm0, %ymm13, %ymm13
2048
+ vpmuldq %ymm0, %ymm14, %ymm14
2049
+ vpsubd %ymm13, %ymm12, %ymm12
2050
+ vpsubd %ymm14, %ymm9, %ymm9
2051
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
2052
+ vpblendd $0xaa, %ymm9, %ymm12, %ymm9 # ymm9 = ymm12[0],ymm9[1],ymm12[2],ymm9[3],ymm12[4],ymm9[5],ymm12[6],ymm9[7]
2053
+ vpsubd %ymm6, %ymm10, %ymm12
2054
+ vpaddd %ymm6, %ymm10, %ymm6
2055
+ vpmuldq %ymm1, %ymm12, %ymm13
2056
+ vmovshdup %ymm12, %ymm10 # ymm10 = ymm12[1,1,3,3,5,5,7,7]
2057
+ vpmuldq %ymm1, %ymm10, %ymm14
2058
+ vpmuldq %ymm2, %ymm12, %ymm12
2059
+ vpmuldq %ymm2, %ymm10, %ymm10
2060
+ vpmuldq %ymm0, %ymm13, %ymm13
2061
+ vpmuldq %ymm0, %ymm14, %ymm14
2062
+ vpsubd %ymm13, %ymm12, %ymm12
2063
+ vpsubd %ymm14, %ymm10, %ymm10
2064
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
2065
+ vpblendd $0xaa, %ymm10, %ymm12, %ymm10 # ymm10 = ymm12[0],ymm10[1],ymm12[2],ymm10[3],ymm12[4],ymm10[5],ymm12[6],ymm10[7]
2066
+ vpsubd %ymm7, %ymm11, %ymm12
2067
+ vpaddd %ymm7, %ymm11, %ymm7
2068
+ vpmuldq %ymm1, %ymm12, %ymm13
2069
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
2070
+ vpmuldq %ymm1, %ymm11, %ymm14
2071
+ vpmuldq %ymm2, %ymm12, %ymm12
2072
+ vpmuldq %ymm2, %ymm11, %ymm11
2073
+ vpmuldq %ymm0, %ymm13, %ymm13
2074
+ vpmuldq %ymm0, %ymm14, %ymm14
2075
+ vpsubd %ymm13, %ymm12, %ymm12
2076
+ vpsubd %ymm14, %ymm11, %ymm11
2077
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
2078
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
2079
+ vmovdqa %ymm8, 0x240(%rdi)
2080
+ vmovdqa %ymm9, 0x2c0(%rdi)
2081
+ vmovdqa %ymm10, 0x340(%rdi)
2082
+ vmovdqa %ymm11, 0x3c0(%rdi)
2083
+ vmovdqa 0x40(%rsi), %ymm1
2084
+ vmovdqa 0x60(%rsi), %ymm2
2085
+ vpmuldq %ymm1, %ymm4, %ymm12
2086
+ vpmuldq %ymm1, %ymm5, %ymm13
2087
+ vmovshdup %ymm4, %ymm8 # ymm8 = ymm4[1,1,3,3,5,5,7,7]
2088
+ vmovshdup %ymm5, %ymm9 # ymm9 = ymm5[1,1,3,3,5,5,7,7]
2089
+ vpmuldq %ymm1, %ymm8, %ymm14
2090
+ vpmuldq %ymm1, %ymm9, %ymm15
2091
+ vpmuldq %ymm2, %ymm4, %ymm4
2092
+ vpmuldq %ymm2, %ymm5, %ymm5
2093
+ vpmuldq %ymm2, %ymm8, %ymm8
2094
+ vpmuldq %ymm2, %ymm9, %ymm9
2095
+ vpmuldq %ymm0, %ymm12, %ymm12
2096
+ vpmuldq %ymm0, %ymm13, %ymm13
2097
+ vpmuldq %ymm0, %ymm14, %ymm14
2098
+ vpmuldq %ymm0, %ymm15, %ymm15
2099
+ vpsubd %ymm12, %ymm4, %ymm4
2100
+ vpsubd %ymm13, %ymm5, %ymm5
2101
+ vpsubd %ymm14, %ymm8, %ymm8
2102
+ vpsubd %ymm15, %ymm9, %ymm9
2103
+ vmovshdup %ymm4, %ymm4 # ymm4 = ymm4[1,1,3,3,5,5,7,7]
2104
+ vmovshdup %ymm5, %ymm5 # ymm5 = ymm5[1,1,3,3,5,5,7,7]
2105
+ vpblendd $0xaa, %ymm8, %ymm4, %ymm4 # ymm4 = ymm4[0],ymm8[1],ymm4[2],ymm8[3],ymm4[4],ymm8[5],ymm4[6],ymm8[7]
2106
+ vpblendd $0xaa, %ymm9, %ymm5, %ymm5 # ymm5 = ymm5[0],ymm9[1],ymm5[2],ymm9[3],ymm5[4],ymm9[5],ymm5[6],ymm9[7]
2107
+ vpmuldq %ymm1, %ymm6, %ymm12
2108
+ vpmuldq %ymm1, %ymm7, %ymm13
2109
+ vmovshdup %ymm6, %ymm8 # ymm8 = ymm6[1,1,3,3,5,5,7,7]
2110
+ vmovshdup %ymm7, %ymm9 # ymm9 = ymm7[1,1,3,3,5,5,7,7]
2111
+ vpmuldq %ymm1, %ymm8, %ymm14
2112
+ vpmuldq %ymm1, %ymm9, %ymm15
2113
+ vpmuldq %ymm2, %ymm6, %ymm6
2114
+ vpmuldq %ymm2, %ymm7, %ymm7
2115
+ vpmuldq %ymm2, %ymm8, %ymm8
2116
+ vpmuldq %ymm2, %ymm9, %ymm9
2117
+ vpmuldq %ymm0, %ymm12, %ymm12
2118
+ vpmuldq %ymm0, %ymm13, %ymm13
2119
+ vpmuldq %ymm0, %ymm14, %ymm14
2120
+ vpmuldq %ymm0, %ymm15, %ymm15
2121
+ vpsubd %ymm12, %ymm6, %ymm6
2122
+ vpsubd %ymm13, %ymm7, %ymm7
2123
+ vpsubd %ymm14, %ymm8, %ymm8
2124
+ vpsubd %ymm15, %ymm9, %ymm9
2125
+ vmovshdup %ymm6, %ymm6 # ymm6 = ymm6[1,1,3,3,5,5,7,7]
2126
+ vmovshdup %ymm7, %ymm7 # ymm7 = ymm7[1,1,3,3,5,5,7,7]
2127
+ vpblendd $0xaa, %ymm8, %ymm6, %ymm6 # ymm6 = ymm6[0],ymm8[1],ymm6[2],ymm8[3],ymm6[4],ymm8[5],ymm6[6],ymm8[7]
2128
+ vpblendd $0xaa, %ymm9, %ymm7, %ymm7 # ymm7 = ymm7[0],ymm9[1],ymm7[2],ymm9[3],ymm7[4],ymm9[5],ymm7[6],ymm9[7]
2129
+ vmovdqa %ymm4, 0x40(%rdi)
2130
+ vmovdqa %ymm5, 0xc0(%rdi)
2131
+ vmovdqa %ymm6, 0x140(%rdi)
2132
+ vmovdqa %ymm7, 0x1c0(%rdi)
2133
+ vmovdqa 0x60(%rdi), %ymm4
2134
+ vmovdqa 0xe0(%rdi), %ymm5
2135
+ vmovdqa 0x160(%rdi), %ymm6
2136
+ vmovdqa 0x1e0(%rdi), %ymm7
2137
+ vmovdqa 0x260(%rdi), %ymm8
2138
+ vmovdqa 0x2e0(%rdi), %ymm9
2139
+ vmovdqa 0x360(%rdi), %ymm10
2140
+ vmovdqa 0x3e0(%rdi), %ymm11
2141
+ vpbroadcastd 0x8c(%rsi), %ymm1
2142
+ vpbroadcastd 0x52c(%rsi), %ymm2
2143
+ vpsubd %ymm4, %ymm6, %ymm12
2144
+ vpaddd %ymm6, %ymm4, %ymm4
2145
+ vpmuldq %ymm1, %ymm12, %ymm13
2146
+ vmovshdup %ymm12, %ymm6 # ymm6 = ymm12[1,1,3,3,5,5,7,7]
2147
+ vpmuldq %ymm1, %ymm6, %ymm14
2148
+ vpmuldq %ymm2, %ymm12, %ymm12
2149
+ vpmuldq %ymm2, %ymm6, %ymm6
2150
+ vpmuldq %ymm0, %ymm13, %ymm13
2151
+ vpmuldq %ymm0, %ymm14, %ymm14
2152
+ vpsubd %ymm13, %ymm12, %ymm12
2153
+ vpsubd %ymm14, %ymm6, %ymm6
2154
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
2155
+ vpblendd $0xaa, %ymm6, %ymm12, %ymm6 # ymm6 = ymm12[0],ymm6[1],ymm12[2],ymm6[3],ymm12[4],ymm6[5],ymm12[6],ymm6[7]
2156
+ vpsubd %ymm5, %ymm7, %ymm12
2157
+ vpaddd %ymm7, %ymm5, %ymm5
2158
+ vpmuldq %ymm1, %ymm12, %ymm13
2159
+ vmovshdup %ymm12, %ymm7 # ymm7 = ymm12[1,1,3,3,5,5,7,7]
2160
+ vpmuldq %ymm1, %ymm7, %ymm14
2161
+ vpmuldq %ymm2, %ymm12, %ymm12
2162
+ vpmuldq %ymm2, %ymm7, %ymm7
2163
+ vpmuldq %ymm0, %ymm13, %ymm13
2164
+ vpmuldq %ymm0, %ymm14, %ymm14
2165
+ vpsubd %ymm13, %ymm12, %ymm12
2166
+ vpsubd %ymm14, %ymm7, %ymm7
2167
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
2168
+ vpblendd $0xaa, %ymm7, %ymm12, %ymm7 # ymm7 = ymm12[0],ymm7[1],ymm12[2],ymm7[3],ymm12[4],ymm7[5],ymm12[6],ymm7[7]
2169
+ vpbroadcastd 0x88(%rsi), %ymm1
2170
+ vpbroadcastd 0x528(%rsi), %ymm2
2171
+ vpsubd %ymm8, %ymm10, %ymm12
2172
+ vpaddd %ymm10, %ymm8, %ymm8
2173
+ vpmuldq %ymm1, %ymm12, %ymm13
2174
+ vmovshdup %ymm12, %ymm10 # ymm10 = ymm12[1,1,3,3,5,5,7,7]
2175
+ vpmuldq %ymm1, %ymm10, %ymm14
2176
+ vpmuldq %ymm2, %ymm12, %ymm12
2177
+ vpmuldq %ymm2, %ymm10, %ymm10
2178
+ vpmuldq %ymm0, %ymm13, %ymm13
2179
+ vpmuldq %ymm0, %ymm14, %ymm14
2180
+ vpsubd %ymm13, %ymm12, %ymm12
2181
+ vpsubd %ymm14, %ymm10, %ymm10
2182
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
2183
+ vpblendd $0xaa, %ymm10, %ymm12, %ymm10 # ymm10 = ymm12[0],ymm10[1],ymm12[2],ymm10[3],ymm12[4],ymm10[5],ymm12[6],ymm10[7]
2184
+ vpsubd %ymm9, %ymm11, %ymm12
2185
+ vpaddd %ymm11, %ymm9, %ymm9
2186
+ vpmuldq %ymm1, %ymm12, %ymm13
2187
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
2188
+ vpmuldq %ymm1, %ymm11, %ymm14
2189
+ vpmuldq %ymm2, %ymm12, %ymm12
2190
+ vpmuldq %ymm2, %ymm11, %ymm11
2191
+ vpmuldq %ymm0, %ymm13, %ymm13
2192
+ vpmuldq %ymm0, %ymm14, %ymm14
2193
+ vpsubd %ymm13, %ymm12, %ymm12
2194
+ vpsubd %ymm14, %ymm11, %ymm11
2195
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
2196
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
2197
+ vpbroadcastd 0x80(%rsi), %ymm1
2198
+ vpbroadcastd 0x520(%rsi), %ymm2
2199
+ vpsubd %ymm4, %ymm8, %ymm12
2200
+ vpaddd %ymm4, %ymm8, %ymm4
2201
+ vpmuldq %ymm1, %ymm12, %ymm13
2202
+ vmovshdup %ymm12, %ymm8 # ymm8 = ymm12[1,1,3,3,5,5,7,7]
2203
+ vpmuldq %ymm1, %ymm8, %ymm14
2204
+ vpmuldq %ymm2, %ymm12, %ymm12
2205
+ vpmuldq %ymm2, %ymm8, %ymm8
2206
+ vpmuldq %ymm0, %ymm13, %ymm13
2207
+ vpmuldq %ymm0, %ymm14, %ymm14
2208
+ vpsubd %ymm13, %ymm12, %ymm12
2209
+ vpsubd %ymm14, %ymm8, %ymm8
2210
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
2211
+ vpblendd $0xaa, %ymm8, %ymm12, %ymm8 # ymm8 = ymm12[0],ymm8[1],ymm12[2],ymm8[3],ymm12[4],ymm8[5],ymm12[6],ymm8[7]
2212
+ vpsubd %ymm5, %ymm9, %ymm12
2213
+ vpaddd %ymm5, %ymm9, %ymm5
2214
+ vpmuldq %ymm1, %ymm12, %ymm13
2215
+ vmovshdup %ymm12, %ymm9 # ymm9 = ymm12[1,1,3,3,5,5,7,7]
2216
+ vpmuldq %ymm1, %ymm9, %ymm14
2217
+ vpmuldq %ymm2, %ymm12, %ymm12
2218
+ vpmuldq %ymm2, %ymm9, %ymm9
2219
+ vpmuldq %ymm0, %ymm13, %ymm13
2220
+ vpmuldq %ymm0, %ymm14, %ymm14
2221
+ vpsubd %ymm13, %ymm12, %ymm12
2222
+ vpsubd %ymm14, %ymm9, %ymm9
2223
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
2224
+ vpblendd $0xaa, %ymm9, %ymm12, %ymm9 # ymm9 = ymm12[0],ymm9[1],ymm12[2],ymm9[3],ymm12[4],ymm9[5],ymm12[6],ymm9[7]
2225
+ vpsubd %ymm6, %ymm10, %ymm12
2226
+ vpaddd %ymm6, %ymm10, %ymm6
2227
+ vpmuldq %ymm1, %ymm12, %ymm13
2228
+ vmovshdup %ymm12, %ymm10 # ymm10 = ymm12[1,1,3,3,5,5,7,7]
2229
+ vpmuldq %ymm1, %ymm10, %ymm14
2230
+ vpmuldq %ymm2, %ymm12, %ymm12
2231
+ vpmuldq %ymm2, %ymm10, %ymm10
2232
+ vpmuldq %ymm0, %ymm13, %ymm13
2233
+ vpmuldq %ymm0, %ymm14, %ymm14
2234
+ vpsubd %ymm13, %ymm12, %ymm12
2235
+ vpsubd %ymm14, %ymm10, %ymm10
2236
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
2237
+ vpblendd $0xaa, %ymm10, %ymm12, %ymm10 # ymm10 = ymm12[0],ymm10[1],ymm12[2],ymm10[3],ymm12[4],ymm10[5],ymm12[6],ymm10[7]
2238
+ vpsubd %ymm7, %ymm11, %ymm12
2239
+ vpaddd %ymm7, %ymm11, %ymm7
2240
+ vpmuldq %ymm1, %ymm12, %ymm13
2241
+ vmovshdup %ymm12, %ymm11 # ymm11 = ymm12[1,1,3,3,5,5,7,7]
2242
+ vpmuldq %ymm1, %ymm11, %ymm14
2243
+ vpmuldq %ymm2, %ymm12, %ymm12
2244
+ vpmuldq %ymm2, %ymm11, %ymm11
2245
+ vpmuldq %ymm0, %ymm13, %ymm13
2246
+ vpmuldq %ymm0, %ymm14, %ymm14
2247
+ vpsubd %ymm13, %ymm12, %ymm12
2248
+ vpsubd %ymm14, %ymm11, %ymm11
2249
+ vmovshdup %ymm12, %ymm12 # ymm12 = ymm12[1,1,3,3,5,5,7,7]
2250
+ vpblendd $0xaa, %ymm11, %ymm12, %ymm11 # ymm11 = ymm12[0],ymm11[1],ymm12[2],ymm11[3],ymm12[4],ymm11[5],ymm12[6],ymm11[7]
2251
+ vmovdqa %ymm8, 0x260(%rdi)
2252
+ vmovdqa %ymm9, 0x2e0(%rdi)
2253
+ vmovdqa %ymm10, 0x360(%rdi)
2254
+ vmovdqa %ymm11, 0x3e0(%rdi)
2255
+ vmovdqa 0x40(%rsi), %ymm1
2256
+ vmovdqa 0x60(%rsi), %ymm2
2257
+ vpmuldq %ymm1, %ymm4, %ymm12
2258
+ vpmuldq %ymm1, %ymm5, %ymm13
2259
+ vmovshdup %ymm4, %ymm8 # ymm8 = ymm4[1,1,3,3,5,5,7,7]
2260
+ vmovshdup %ymm5, %ymm9 # ymm9 = ymm5[1,1,3,3,5,5,7,7]
2261
+ vpmuldq %ymm1, %ymm8, %ymm14
2262
+ vpmuldq %ymm1, %ymm9, %ymm15
2263
+ vpmuldq %ymm2, %ymm4, %ymm4
2264
+ vpmuldq %ymm2, %ymm5, %ymm5
2265
+ vpmuldq %ymm2, %ymm8, %ymm8
2266
+ vpmuldq %ymm2, %ymm9, %ymm9
2267
+ vpmuldq %ymm0, %ymm12, %ymm12
2268
+ vpmuldq %ymm0, %ymm13, %ymm13
2269
+ vpmuldq %ymm0, %ymm14, %ymm14
2270
+ vpmuldq %ymm0, %ymm15, %ymm15
2271
+ vpsubd %ymm12, %ymm4, %ymm4
2272
+ vpsubd %ymm13, %ymm5, %ymm5
2273
+ vpsubd %ymm14, %ymm8, %ymm8
2274
+ vpsubd %ymm15, %ymm9, %ymm9
2275
+ vmovshdup %ymm4, %ymm4 # ymm4 = ymm4[1,1,3,3,5,5,7,7]
2276
+ vmovshdup %ymm5, %ymm5 # ymm5 = ymm5[1,1,3,3,5,5,7,7]
2277
+ vpblendd $0xaa, %ymm8, %ymm4, %ymm4 # ymm4 = ymm4[0],ymm8[1],ymm4[2],ymm8[3],ymm4[4],ymm8[5],ymm4[6],ymm8[7]
2278
+ vpblendd $0xaa, %ymm9, %ymm5, %ymm5 # ymm5 = ymm5[0],ymm9[1],ymm5[2],ymm9[3],ymm5[4],ymm9[5],ymm5[6],ymm9[7]
2279
+ vpmuldq %ymm1, %ymm6, %ymm12
2280
+ vpmuldq %ymm1, %ymm7, %ymm13
2281
+ vmovshdup %ymm6, %ymm8 # ymm8 = ymm6[1,1,3,3,5,5,7,7]
2282
+ vmovshdup %ymm7, %ymm9 # ymm9 = ymm7[1,1,3,3,5,5,7,7]
2283
+ vpmuldq %ymm1, %ymm8, %ymm14
2284
+ vpmuldq %ymm1, %ymm9, %ymm15
2285
+ vpmuldq %ymm2, %ymm6, %ymm6
2286
+ vpmuldq %ymm2, %ymm7, %ymm7
2287
+ vpmuldq %ymm2, %ymm8, %ymm8
2288
+ vpmuldq %ymm2, %ymm9, %ymm9
2289
+ vpmuldq %ymm0, %ymm12, %ymm12
2290
+ vpmuldq %ymm0, %ymm13, %ymm13
2291
+ vpmuldq %ymm0, %ymm14, %ymm14
2292
+ vpmuldq %ymm0, %ymm15, %ymm15
2293
+ vpsubd %ymm12, %ymm6, %ymm6
2294
+ vpsubd %ymm13, %ymm7, %ymm7
2295
+ vpsubd %ymm14, %ymm8, %ymm8
2296
+ vpsubd %ymm15, %ymm9, %ymm9
2297
+ vmovshdup %ymm6, %ymm6 # ymm6 = ymm6[1,1,3,3,5,5,7,7]
2298
+ vmovshdup %ymm7, %ymm7 # ymm7 = ymm7[1,1,3,3,5,5,7,7]
2299
+ vpblendd $0xaa, %ymm8, %ymm6, %ymm6 # ymm6 = ymm6[0],ymm8[1],ymm6[2],ymm8[3],ymm6[4],ymm8[5],ymm6[6],ymm8[7]
2300
+ vpblendd $0xaa, %ymm9, %ymm7, %ymm7 # ymm7 = ymm7[0],ymm9[1],ymm7[2],ymm9[3],ymm7[4],ymm9[5],ymm7[6],ymm9[7]
2301
+ vmovdqa %ymm4, 0x60(%rdi)
2302
+ vmovdqa %ymm5, 0xe0(%rdi)
2303
+ vmovdqa %ymm6, 0x160(%rdi)
2304
+ vmovdqa %ymm7, 0x1e0(%rdi)
2305
+ retq
2306
+ .cfi_endproc
2307
+
2308
+ MLD_ASM_FN_SIZE(invntt_avx2)
2309
+
2310
+ #endif /* MLD_ARITH_BACKEND_X86_64_DEFAULT && !MLD_CONFIG_MULTILEVEL_NO_SHARED \
2311
+ */