pq_crypto 0.6.1 → 0.6.3

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 (247) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/SECURITY.md +7 -0
  4. data/ext/pqcrypto/pqcrypto_version.h +1 -1
  5. data/ext/pqcrypto/vendor/.vendored +7 -7
  6. data/ext/pqcrypto/vendor/mldsa-native/README.md +23 -10
  7. data/ext/pqcrypto/vendor/mldsa-native/mldsa/README.md +23 -0
  8. data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native.c +114 -58
  9. data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native.h +498 -461
  10. data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native_asm.S +145 -85
  11. data/ext/pqcrypto/vendor/mldsa-native/mldsa/mldsa_native_config.h +456 -422
  12. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/cbmc.h +47 -25
  13. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/common.h +26 -14
  14. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/ct.h +56 -81
  15. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/debug.h +17 -24
  16. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202.c +33 -40
  17. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202.h +67 -87
  18. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202x4.c +19 -14
  19. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/fips202x4.h +13 -5
  20. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/keccakf1600.c +84 -10
  21. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/keccakf1600.h +10 -5
  22. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/auto.h +6 -0
  23. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/fips202_native_aarch64.h +22 -15
  24. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x1_scalar_aarch64_asm.S +376 -0
  25. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x1_v84a_aarch64_asm.S +204 -0
  26. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x2_v84a_aarch64_asm.S +259 -0
  27. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_aarch64_asm.S +1077 -0
  28. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_aarch64_asm.S +987 -0
  29. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccakf1600_round_constants.c +16 -10
  30. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x1_scalar.h +2 -1
  31. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x1_v84a.h +1 -1
  32. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x2_v84a.h +4 -2
  33. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x4_v8a_scalar.h +2 -2
  34. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/x4_v8a_v84a_scalar.h +1 -1
  35. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/api.h +60 -0
  36. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/mve.h +48 -0
  37. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/fips202_native_armv81m.h +18 -1
  38. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S +658 -582
  39. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.c +5 -100
  40. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/keccakf1600_round_constants.c +26 -25
  41. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/state_extract_bytes_x4_mve.S +334 -0
  42. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/armv81m/src/state_xor_bytes_x4_mve.S +355 -0
  43. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/auto.h +8 -3
  44. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/{xkcp.h → keccak_f1600_x4_avx2.h} +11 -8
  45. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/src/fips202_native_x86_64.h +44 -0
  46. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/src/keccak_f1600_x4_avx2_asm.S +454 -0
  47. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/src/keccakf1600_constants.c +52 -0
  48. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/meta.h +37 -28
  49. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/aarch64_zetas.c +213 -196
  50. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/arith_native_aarch64.h +248 -64
  51. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/intt_aarch64_asm.S +753 -0
  52. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l4_aarch64_asm.S +129 -0
  53. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l5_aarch64_asm.S +145 -0
  54. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l7_aarch64_asm.S +177 -0
  55. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/ntt_aarch64_asm.S +653 -0
  56. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/pointwise_montgomery_aarch64_asm.S +84 -0
  57. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_caddq_aarch64_asm.S +53 -0
  58. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_chknorm_aarch64_asm.S +55 -0
  59. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_decompose_32_aarch64_asm.S +86 -0
  60. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_decompose_88_aarch64_asm.S +86 -0
  61. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_use_hint_32_aarch64_asm.S +103 -0
  62. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_use_hint_88_aarch64_asm.S +111 -0
  63. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_17_aarch64_asm.S +75 -0
  64. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_19_aarch64_asm.S +72 -0
  65. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_table.c +23 -11
  66. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_aarch64_asm.S +189 -0
  67. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta2_aarch64_asm.S +137 -0
  68. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta4_aarch64_asm.S +130 -0
  69. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta_table.c +520 -516
  70. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_table.c +34 -33
  71. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/api.h +202 -242
  72. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/meta.h +25 -17
  73. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/arith_native_x86_64.h +112 -28
  74. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/consts.c +1 -1
  75. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/consts.h +1 -1
  76. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/intt_avx2_asm.S +2311 -0
  77. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/ntt_avx2_asm.S +2383 -0
  78. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/nttunpack_avx2_asm.S +238 -0
  79. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l4_avx2_asm.S +139 -0
  80. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l5_avx2_asm.S +155 -0
  81. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l7_avx2_asm.S +187 -0
  82. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_avx2_asm.S +130 -0
  83. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_caddq_avx2_asm.S +190 -0
  84. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_decompose_32_avx2.c +6 -4
  85. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_decompose_88_avx2.c +6 -4
  86. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_use_hint_32_avx2.c +9 -8
  87. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_use_hint_88_avx2.c +10 -9
  88. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/polyz_unpack_17_avx2.c +8 -5
  89. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/polyz_unpack_19_avx2.c +8 -5
  90. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/rej_uniform_eta2_avx2.c +6 -4
  91. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/rej_uniform_eta4_avx2.c +6 -4
  92. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/rej_uniform_table.c +130 -129
  93. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/packing.c +109 -180
  94. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/packing.h +169 -150
  95. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly.c +56 -40
  96. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly.h +149 -164
  97. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly_kl.c +52 -57
  98. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/poly_kl.h +132 -167
  99. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/polyvec.c +57 -424
  100. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/polyvec.h +167 -474
  101. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/polyvec_lazy.c +308 -0
  102. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/polyvec_lazy.h +653 -0
  103. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/reduce.h +22 -29
  104. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/rounding.h +37 -43
  105. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/sign.c +511 -367
  106. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/sign.h +456 -417
  107. data/ext/pqcrypto/vendor/mlkem-native/README.md +6 -3
  108. data/ext/pqcrypto/vendor/mlkem-native/RELEASE.md +22 -0
  109. data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native.c +77 -36
  110. data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native.h +135 -146
  111. data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native_asm.S +116 -72
  112. data/ext/pqcrypto/vendor/mlkem-native/mlkem/mlkem_native_config.h +351 -415
  113. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/cbmc.h +43 -20
  114. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/common.h +16 -8
  115. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/compress.c +57 -31
  116. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/compress.h +260 -349
  117. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/debug.h +17 -24
  118. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/fips202.c +35 -37
  119. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/fips202.h +43 -57
  120. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/fips202x4.c +14 -15
  121. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/fips202x4.h +5 -4
  122. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/keccakf1600.c +42 -6
  123. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/fips202_native_aarch64.h +31 -20
  124. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/{keccak_f1600_x1_scalar_asm.S → keccak_f1600_x1_scalar_aarch64_asm.S} +10 -10
  125. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/{keccak_f1600_x1_v84a_asm.S → keccak_f1600_x1_v84a_aarch64_asm.S} +10 -10
  126. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/{keccak_f1600_x2_v84a_asm.S → keccak_f1600_x2_v84a_aarch64_asm.S} +10 -10
  127. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/{keccak_f1600_x4_v8a_scalar_hybrid_asm.S → keccak_f1600_x4_v8a_scalar_hybrid_aarch64_asm.S} +10 -10
  128. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/{keccak_f1600_x4_v8a_v84a_scalar_hybrid_asm.S → keccak_f1600_x4_v8a_v84a_scalar_hybrid_aarch64_asm.S} +10 -10
  129. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/src/keccakf1600_round_constants.c +10 -9
  130. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x1_scalar.h +2 -1
  131. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x1_v84a.h +1 -1
  132. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x2_v84a.h +4 -2
  133. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x4_v8a_scalar.h +2 -2
  134. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/aarch64/x4_v8a_v84a_scalar.h +1 -1
  135. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/fips202_native_armv81m.h +2 -1
  136. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S +55 -9
  137. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/keccakf1600_round_constants.c +26 -25
  138. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/state_extract_bytes_x4_mve.S +58 -14
  139. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/armv81m/src/state_xor_bytes_x4_mve.S +57 -16
  140. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/auto.h +2 -1
  141. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/keccak_f1600_x4_avx2.h +2 -2
  142. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/src/fips202_native_x86_64.h +10 -7
  143. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/src/{keccak_f1600_x4_avx2.S → keccak_f1600_x4_avx2_asm.S} +13 -11
  144. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/fips202/native/x86_64/src/keccakf1600_constants.c +12 -11
  145. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/indcpa.c +167 -136
  146. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/indcpa.h +75 -68
  147. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/kem.h +135 -157
  148. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/meta.h +15 -13
  149. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/aarch64_zetas.c +143 -135
  150. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/arith_native_aarch64.h +52 -46
  151. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{intt.S → intt_aarch64_asm.S} +10 -10
  152. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{ntt.S → ntt_aarch64_asm.S} +10 -10
  153. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{poly_mulcache_compute_asm.S → poly_mulcache_compute_aarch64_asm.S} +10 -10
  154. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{poly_reduce_asm.S → poly_reduce_aarch64_asm.S} +10 -10
  155. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{poly_tobytes_asm.S → poly_tobytes_aarch64_asm.S} +10 -10
  156. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{poly_tomont_asm.S → poly_tomont_aarch64_asm.S} +10 -12
  157. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{polyvec_basemul_acc_montgomery_cached_asm_k2.S → polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm.S} +10 -10
  158. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{polyvec_basemul_acc_montgomery_cached_asm_k3.S → polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm.S} +10 -10
  159. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{polyvec_basemul_acc_montgomery_cached_asm_k4.S → polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm.S} +10 -10
  160. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/{rej_uniform_asm.S → rej_uniform_aarch64_asm.S} +12 -12
  161. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/aarch64/src/rej_uniform_table.c +514 -513
  162. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/api.h +254 -253
  163. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/meta.h +6 -1
  164. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/README.md +6 -0
  165. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/meta.h +77 -0
  166. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/arith_native_ppc64le.h +24 -0
  167. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/consts.c +299 -0
  168. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/consts.h +34 -0
  169. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/intt_ppc_asm.S +3222 -0
  170. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/ntt_ppc_asm.S +1651 -0
  171. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/poly_tomont_ppc_asm.S +294 -0
  172. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/ppc64le/src/reduce_ppc_asm.S +710 -0
  173. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/meta.h +5 -0
  174. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_debug.c +18 -16
  175. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_debug.h +19 -24
  176. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/riscv64/src/rv64v_poly.c +53 -65
  177. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/meta.h +20 -20
  178. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/arith_native_x86_64.h +106 -88
  179. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/compress_consts.c +45 -35
  180. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/compress_consts.h +8 -8
  181. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/consts.c +1 -1
  182. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/consts.h +1 -1
  183. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{intt.S → intt_avx2_asm.S} +8 -8
  184. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{ntt.S → ntt_avx2_asm.S} +8 -8
  185. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{nttfrombytes.S → nttfrombytes_avx2_asm.S} +8 -8
  186. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{ntttobytes.S → ntttobytes_avx2_asm.S} +8 -8
  187. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{nttunpack.S → nttunpack_avx2_asm.S} +8 -8
  188. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_compress_d10.S → poly_compress_d10_avx2_asm.S} +9 -9
  189. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_compress_d11.S → poly_compress_d11_avx2_asm.S} +9 -9
  190. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_compress_d4.S → poly_compress_d4_avx2_asm.S} +9 -9
  191. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_compress_d5.S → poly_compress_d5_avx2_asm.S} +9 -9
  192. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_decompress_d10.S → poly_decompress_d10_avx2_asm.S} +9 -9
  193. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_decompress_d11.S → poly_decompress_d11_avx2_asm.S} +9 -9
  194. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_decompress_d4.S → poly_decompress_d4_avx2_asm.S} +9 -9
  195. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{poly_decompress_d5.S → poly_decompress_d5_avx2_asm.S} +9 -9
  196. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{mulcache_compute.S → poly_mulcache_compute_avx2_asm.S} +8 -8
  197. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{polyvec_basemul_acc_montgomery_cached_asm_k2.S → polyvec_basemul_acc_montgomery_cached_k2_avx2_asm.S} +8 -8
  198. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{polyvec_basemul_acc_montgomery_cached_asm_k3.S → polyvec_basemul_acc_montgomery_cached_k3_avx2_asm.S} +8 -8
  199. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{polyvec_basemul_acc_montgomery_cached_asm_k4.S → polyvec_basemul_acc_montgomery_cached_k4_avx2_asm.S} +8 -8
  200. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{reduce.S → reduce_avx2_asm.S} +8 -8
  201. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{rej_uniform_asm.S → rej_uniform_avx2_asm.S} +9 -9
  202. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/rej_uniform_table.c +514 -513
  203. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/native/x86_64/src/{tomont.S → tomont_avx2_asm.S} +8 -8
  204. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly.c +61 -57
  205. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly.h +89 -116
  206. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly_k.c +31 -32
  207. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/poly_k.h +226 -301
  208. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/randombytes.h +21 -29
  209. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/sampling.c +68 -63
  210. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/sampling.h +37 -48
  211. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/sys.h +44 -2
  212. data/ext/pqcrypto/vendor/mlkem-native/mlkem/src/verify.h +141 -159
  213. data/lib/pq_crypto/version.rb +1 -1
  214. data/script/vendor_libs.rb +6 -6
  215. metadata +86 -71
  216. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x1_scalar_asm.S +0 -376
  217. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x1_v84a_asm.S +0 -204
  218. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x2_v84a_asm.S +0 -259
  219. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_asm.S +0 -1077
  220. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_asm.S +0 -987
  221. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/src/KeccakP_1600_times4_SIMD256.c +0 -488
  222. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/fips202/native/x86_64/src/KeccakP_1600_times4_SIMD256.h +0 -16
  223. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/intt.S +0 -753
  224. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l4.S +0 -129
  225. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l5.S +0 -145
  226. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/mld_polyvecl_pointwise_acc_montgomery_l7.S +0 -177
  227. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/ntt.S +0 -653
  228. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/pointwise_montgomery.S +0 -79
  229. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_caddq_asm.S +0 -53
  230. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_chknorm_asm.S +0 -55
  231. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_decompose_32_asm.S +0 -85
  232. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_decompose_88_asm.S +0 -85
  233. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_use_hint_32_asm.S +0 -102
  234. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/poly_use_hint_88_asm.S +0 -110
  235. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_17_asm.S +0 -72
  236. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/polyz_unpack_19_asm.S +0 -69
  237. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_asm.S +0 -189
  238. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta2_asm.S +0 -135
  239. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/aarch64/src/rej_uniform_eta4_asm.S +0 -128
  240. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/intt.S +0 -2311
  241. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/ntt.S +0 -2383
  242. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/nttunpack.S +0 -239
  243. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise.S +0 -131
  244. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l4.S +0 -139
  245. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l5.S +0 -155
  246. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/pointwise_acc_l7.S +0 -187
  247. data/ext/pqcrypto/vendor/mldsa-native/mldsa/src/native/x86_64/src/poly_caddq_avx2.c +0 -61
@@ -0,0 +1,1651 @@
1
+ /*
2
+ * Copyright (c) The mlkem-native project authors
3
+ * Copyright (c) IBM Corp. 2025, 2026
4
+ * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT
5
+ *
6
+ * Written by Danny Tsen <dtsen@us.ibm.com>
7
+ */
8
+
9
+ #include "../../../common.h"
10
+ #if defined(MLK_ARITH_BACKEND_PPC64LE_DEFAULT) && \
11
+ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && defined(__POWER8_VECTOR__)
12
+
13
+ /*
14
+ * WARNING: This file is auto-derived from the mlkem-native source file
15
+ * dev/ppc64le/src/ntt_ppc_asm.S using scripts/simpasm. Do not modify it directly.
16
+ */
17
+
18
+ .text
19
+ .balign 4
20
+ .global MLK_ASM_NAMESPACE(ntt_ppc_asm)
21
+ MLK_ASM_FN_SYMBOL(ntt_ppc_asm)
22
+
23
+ stdu 1, -352(1)
24
+ mflr 0
25
+ std 14, 56(1)
26
+ std 15, 64(1)
27
+ std 16, 72(1)
28
+ std 17, 80(1)
29
+ std 18, 88(1)
30
+ std 19, 96(1)
31
+ std 20, 104(1)
32
+ std 21, 112(1)
33
+ std 22, 120(1)
34
+ li 10, 128
35
+ li 11, 144
36
+ li 12, 160
37
+ li 14, 176
38
+ li 15, 192
39
+ li 16, 208
40
+ stxvd2x 52, 10, 1
41
+ stxvd2x 53, 11, 1
42
+ stxvd2x 54, 12, 1
43
+ stxvd2x 55, 14, 1
44
+ stxvd2x 56, 15, 1
45
+ stxvd2x 57, 16, 1
46
+ li 10, 224
47
+ li 11, 240
48
+ li 12, 256
49
+ li 14, 272
50
+ li 15, 288
51
+ li 16, 304
52
+ stxvd2x 58, 10, 1
53
+ stxvd2x 59, 11, 1
54
+ stxvd2x 60, 12, 1
55
+ stxvd2x 61, 14, 1
56
+ stxvd2x 62, 15, 1
57
+ stxvd2x 63, 16, 1
58
+ lvx 5, 0, 4
59
+ addi 14, 4, 112
60
+ addi 22, 4, 2128
61
+ vxor 3, 3, 3
62
+ ori 2, 2, 0
63
+ li 7, 256
64
+ lvx 10, 0, 14
65
+ lvx 2, 0, 22
66
+ addi 14, 14, 16
67
+ addi 22, 22, 16
68
+ li 9, 0
69
+ add 10, 7, 9
70
+ addi 16, 9, 16
71
+ addi 17, 10, 16
72
+ addi 18, 16, 16
73
+ addi 19, 17, 16
74
+ addi 20, 18, 16
75
+ addi 21, 19, 16
76
+ lxvd2x 45, 3, 10
77
+ lxvd2x 50, 3, 17
78
+ lxvd2x 55, 3, 19
79
+ lxvd2x 60, 3, 21
80
+ vmhraddshs 15, 13, 2, 3
81
+ vmhraddshs 20, 18, 2, 3
82
+ vmhraddshs 25, 23, 2, 3
83
+ vmhraddshs 30, 28, 2, 3
84
+ vmladduhm 13, 13, 10, 3
85
+ vmladduhm 18, 18, 10, 3
86
+ vmladduhm 23, 23, 10, 3
87
+ vmladduhm 28, 28, 10, 3
88
+ vmladduhm 13, 15, 5, 13
89
+ vmladduhm 18, 20, 5, 18
90
+ vmladduhm 23, 25, 5, 23
91
+ vmladduhm 28, 30, 5, 28
92
+ lxvd2x 44, 3, 9
93
+ lxvd2x 49, 3, 16
94
+ lxvd2x 54, 3, 18
95
+ lxvd2x 59, 3, 20
96
+ vsubuhm 16, 12, 13
97
+ vadduhm 15, 13, 12
98
+ vsubuhm 21, 17, 18
99
+ vadduhm 20, 18, 17
100
+ vsubuhm 26, 22, 23
101
+ vadduhm 25, 23, 22
102
+ vsubuhm 31, 27, 28
103
+ vadduhm 30, 28, 27
104
+ stxvd2x 47, 3, 9
105
+ stxvd2x 48, 3, 10
106
+ stxvd2x 52, 3, 16
107
+ stxvd2x 53, 3, 17
108
+ stxvd2x 57, 3, 18
109
+ stxvd2x 58, 3, 19
110
+ stxvd2x 62, 3, 20
111
+ stxvd2x 63, 3, 21
112
+ li 9, 64
113
+ add 10, 7, 9
114
+ addi 16, 9, 16
115
+ addi 17, 10, 16
116
+ addi 18, 16, 16
117
+ addi 19, 17, 16
118
+ addi 20, 18, 16
119
+ addi 21, 19, 16
120
+ lxvd2x 45, 3, 10
121
+ lxvd2x 50, 3, 17
122
+ lxvd2x 55, 3, 19
123
+ lxvd2x 60, 3, 21
124
+ vmhraddshs 15, 13, 2, 3
125
+ vmhraddshs 20, 18, 2, 3
126
+ vmhraddshs 25, 23, 2, 3
127
+ vmhraddshs 30, 28, 2, 3
128
+ vmladduhm 13, 13, 10, 3
129
+ vmladduhm 18, 18, 10, 3
130
+ vmladduhm 23, 23, 10, 3
131
+ vmladduhm 28, 28, 10, 3
132
+ vmladduhm 13, 15, 5, 13
133
+ vmladduhm 18, 20, 5, 18
134
+ vmladduhm 23, 25, 5, 23
135
+ vmladduhm 28, 30, 5, 28
136
+ lxvd2x 44, 3, 9
137
+ lxvd2x 49, 3, 16
138
+ lxvd2x 54, 3, 18
139
+ lxvd2x 59, 3, 20
140
+ vsubuhm 16, 12, 13
141
+ vadduhm 15, 13, 12
142
+ vsubuhm 21, 17, 18
143
+ vadduhm 20, 18, 17
144
+ vsubuhm 26, 22, 23
145
+ vadduhm 25, 23, 22
146
+ vsubuhm 31, 27, 28
147
+ vadduhm 30, 28, 27
148
+ stxvd2x 47, 3, 9
149
+ stxvd2x 48, 3, 10
150
+ stxvd2x 52, 3, 16
151
+ stxvd2x 53, 3, 17
152
+ stxvd2x 57, 3, 18
153
+ stxvd2x 58, 3, 19
154
+ stxvd2x 62, 3, 20
155
+ stxvd2x 63, 3, 21
156
+ li 9, 128
157
+ add 10, 7, 9
158
+ addi 16, 9, 16
159
+ addi 17, 10, 16
160
+ addi 18, 16, 16
161
+ addi 19, 17, 16
162
+ addi 20, 18, 16
163
+ addi 21, 19, 16
164
+ lxvd2x 45, 3, 10
165
+ lxvd2x 50, 3, 17
166
+ lxvd2x 55, 3, 19
167
+ lxvd2x 60, 3, 21
168
+ vmhraddshs 15, 13, 2, 3
169
+ vmhraddshs 20, 18, 2, 3
170
+ vmhraddshs 25, 23, 2, 3
171
+ vmhraddshs 30, 28, 2, 3
172
+ vmladduhm 13, 13, 10, 3
173
+ vmladduhm 18, 18, 10, 3
174
+ vmladduhm 23, 23, 10, 3
175
+ vmladduhm 28, 28, 10, 3
176
+ vmladduhm 13, 15, 5, 13
177
+ vmladduhm 18, 20, 5, 18
178
+ vmladduhm 23, 25, 5, 23
179
+ vmladduhm 28, 30, 5, 28
180
+ lxvd2x 44, 3, 9
181
+ lxvd2x 49, 3, 16
182
+ lxvd2x 54, 3, 18
183
+ lxvd2x 59, 3, 20
184
+ vsubuhm 16, 12, 13
185
+ vadduhm 15, 13, 12
186
+ vsubuhm 21, 17, 18
187
+ vadduhm 20, 18, 17
188
+ vsubuhm 26, 22, 23
189
+ vadduhm 25, 23, 22
190
+ vsubuhm 31, 27, 28
191
+ vadduhm 30, 28, 27
192
+ stxvd2x 47, 3, 9
193
+ stxvd2x 48, 3, 10
194
+ stxvd2x 52, 3, 16
195
+ stxvd2x 53, 3, 17
196
+ stxvd2x 57, 3, 18
197
+ stxvd2x 58, 3, 19
198
+ stxvd2x 62, 3, 20
199
+ stxvd2x 63, 3, 21
200
+ li 9, 192
201
+ add 10, 7, 9
202
+ addi 16, 9, 16
203
+ addi 17, 10, 16
204
+ addi 18, 16, 16
205
+ addi 19, 17, 16
206
+ addi 20, 18, 16
207
+ addi 21, 19, 16
208
+ lxvd2x 45, 3, 10
209
+ lxvd2x 50, 3, 17
210
+ lxvd2x 55, 3, 19
211
+ lxvd2x 60, 3, 21
212
+ vmhraddshs 15, 13, 2, 3
213
+ vmhraddshs 20, 18, 2, 3
214
+ vmhraddshs 25, 23, 2, 3
215
+ vmhraddshs 30, 28, 2, 3
216
+ vmladduhm 13, 13, 10, 3
217
+ vmladduhm 18, 18, 10, 3
218
+ vmladduhm 23, 23, 10, 3
219
+ vmladduhm 28, 28, 10, 3
220
+ vmladduhm 13, 15, 5, 13
221
+ vmladduhm 18, 20, 5, 18
222
+ vmladduhm 23, 25, 5, 23
223
+ vmladduhm 28, 30, 5, 28
224
+ lxvd2x 44, 3, 9
225
+ lxvd2x 49, 3, 16
226
+ lxvd2x 54, 3, 18
227
+ lxvd2x 59, 3, 20
228
+ vsubuhm 16, 12, 13
229
+ vadduhm 15, 13, 12
230
+ vsubuhm 21, 17, 18
231
+ vadduhm 20, 18, 17
232
+ vsubuhm 26, 22, 23
233
+ vadduhm 25, 23, 22
234
+ vsubuhm 31, 27, 28
235
+ vadduhm 30, 28, 27
236
+ stxvd2x 47, 3, 9
237
+ stxvd2x 48, 3, 10
238
+ stxvd2x 52, 3, 16
239
+ stxvd2x 53, 3, 17
240
+ stxvd2x 57, 3, 18
241
+ stxvd2x 58, 3, 19
242
+ stxvd2x 62, 3, 20
243
+ stxvd2x 63, 3, 21
244
+ nop
245
+ nop
246
+ ori 2, 2, 0
247
+ li 7, 128
248
+ lvx 10, 0, 14
249
+ lvx 2, 0, 22
250
+ addi 14, 14, 16
251
+ addi 22, 22, 16
252
+ li 9, 0
253
+ add 10, 7, 9
254
+ addi 16, 9, 16
255
+ addi 17, 10, 16
256
+ addi 18, 16, 16
257
+ addi 19, 17, 16
258
+ addi 20, 18, 16
259
+ addi 21, 19, 16
260
+ lxvd2x 45, 3, 10
261
+ lxvd2x 50, 3, 17
262
+ lxvd2x 55, 3, 19
263
+ lxvd2x 60, 3, 21
264
+ vmhraddshs 15, 13, 2, 3
265
+ vmhraddshs 20, 18, 2, 3
266
+ vmhraddshs 25, 23, 2, 3
267
+ vmhraddshs 30, 28, 2, 3
268
+ vmladduhm 13, 13, 10, 3
269
+ vmladduhm 18, 18, 10, 3
270
+ vmladduhm 23, 23, 10, 3
271
+ vmladduhm 28, 28, 10, 3
272
+ vmladduhm 13, 15, 5, 13
273
+ vmladduhm 18, 20, 5, 18
274
+ vmladduhm 23, 25, 5, 23
275
+ vmladduhm 28, 30, 5, 28
276
+ lxvd2x 44, 3, 9
277
+ lxvd2x 49, 3, 16
278
+ lxvd2x 54, 3, 18
279
+ lxvd2x 59, 3, 20
280
+ vsubuhm 16, 12, 13
281
+ vadduhm 15, 13, 12
282
+ vsubuhm 21, 17, 18
283
+ vadduhm 20, 18, 17
284
+ vsubuhm 26, 22, 23
285
+ vadduhm 25, 23, 22
286
+ vsubuhm 31, 27, 28
287
+ vadduhm 30, 28, 27
288
+ stxvd2x 47, 3, 9
289
+ stxvd2x 48, 3, 10
290
+ stxvd2x 52, 3, 16
291
+ stxvd2x 53, 3, 17
292
+ stxvd2x 57, 3, 18
293
+ stxvd2x 58, 3, 19
294
+ stxvd2x 62, 3, 20
295
+ stxvd2x 63, 3, 21
296
+ li 9, 64
297
+ add 10, 7, 9
298
+ addi 16, 9, 16
299
+ addi 17, 10, 16
300
+ addi 18, 16, 16
301
+ addi 19, 17, 16
302
+ addi 20, 18, 16
303
+ addi 21, 19, 16
304
+ lxvd2x 45, 3, 10
305
+ lxvd2x 50, 3, 17
306
+ lxvd2x 55, 3, 19
307
+ lxvd2x 60, 3, 21
308
+ vmhraddshs 15, 13, 2, 3
309
+ vmhraddshs 20, 18, 2, 3
310
+ vmhraddshs 25, 23, 2, 3
311
+ vmhraddshs 30, 28, 2, 3
312
+ vmladduhm 13, 13, 10, 3
313
+ vmladduhm 18, 18, 10, 3
314
+ vmladduhm 23, 23, 10, 3
315
+ vmladduhm 28, 28, 10, 3
316
+ vmladduhm 13, 15, 5, 13
317
+ vmladduhm 18, 20, 5, 18
318
+ vmladduhm 23, 25, 5, 23
319
+ vmladduhm 28, 30, 5, 28
320
+ lxvd2x 44, 3, 9
321
+ lxvd2x 49, 3, 16
322
+ lxvd2x 54, 3, 18
323
+ lxvd2x 59, 3, 20
324
+ vsubuhm 16, 12, 13
325
+ vadduhm 15, 13, 12
326
+ vsubuhm 21, 17, 18
327
+ vadduhm 20, 18, 17
328
+ vsubuhm 26, 22, 23
329
+ vadduhm 25, 23, 22
330
+ vsubuhm 31, 27, 28
331
+ vadduhm 30, 28, 27
332
+ stxvd2x 47, 3, 9
333
+ stxvd2x 48, 3, 10
334
+ stxvd2x 52, 3, 16
335
+ stxvd2x 53, 3, 17
336
+ stxvd2x 57, 3, 18
337
+ stxvd2x 58, 3, 19
338
+ stxvd2x 62, 3, 20
339
+ stxvd2x 63, 3, 21
340
+ lvx 10, 0, 14
341
+ lvx 2, 0, 22
342
+ addi 14, 14, 16
343
+ addi 22, 22, 16
344
+ li 9, 256
345
+ add 10, 7, 9
346
+ addi 16, 9, 16
347
+ addi 17, 10, 16
348
+ addi 18, 16, 16
349
+ addi 19, 17, 16
350
+ addi 20, 18, 16
351
+ addi 21, 19, 16
352
+ lxvd2x 45, 3, 10
353
+ lxvd2x 50, 3, 17
354
+ lxvd2x 55, 3, 19
355
+ lxvd2x 60, 3, 21
356
+ vmhraddshs 15, 13, 2, 3
357
+ vmhraddshs 20, 18, 2, 3
358
+ vmhraddshs 25, 23, 2, 3
359
+ vmhraddshs 30, 28, 2, 3
360
+ vmladduhm 13, 13, 10, 3
361
+ vmladduhm 18, 18, 10, 3
362
+ vmladduhm 23, 23, 10, 3
363
+ vmladduhm 28, 28, 10, 3
364
+ vmladduhm 13, 15, 5, 13
365
+ vmladduhm 18, 20, 5, 18
366
+ vmladduhm 23, 25, 5, 23
367
+ vmladduhm 28, 30, 5, 28
368
+ lxvd2x 44, 3, 9
369
+ lxvd2x 49, 3, 16
370
+ lxvd2x 54, 3, 18
371
+ lxvd2x 59, 3, 20
372
+ vsubuhm 16, 12, 13
373
+ vadduhm 15, 13, 12
374
+ vsubuhm 21, 17, 18
375
+ vadduhm 20, 18, 17
376
+ vsubuhm 26, 22, 23
377
+ vadduhm 25, 23, 22
378
+ vsubuhm 31, 27, 28
379
+ vadduhm 30, 28, 27
380
+ stxvd2x 47, 3, 9
381
+ stxvd2x 48, 3, 10
382
+ stxvd2x 52, 3, 16
383
+ stxvd2x 53, 3, 17
384
+ stxvd2x 57, 3, 18
385
+ stxvd2x 58, 3, 19
386
+ stxvd2x 62, 3, 20
387
+ stxvd2x 63, 3, 21
388
+ li 9, 320
389
+ add 10, 7, 9
390
+ addi 16, 9, 16
391
+ addi 17, 10, 16
392
+ addi 18, 16, 16
393
+ addi 19, 17, 16
394
+ addi 20, 18, 16
395
+ addi 21, 19, 16
396
+ lxvd2x 45, 3, 10
397
+ lxvd2x 50, 3, 17
398
+ lxvd2x 55, 3, 19
399
+ lxvd2x 60, 3, 21
400
+ vmhraddshs 15, 13, 2, 3
401
+ vmhraddshs 20, 18, 2, 3
402
+ vmhraddshs 25, 23, 2, 3
403
+ vmhraddshs 30, 28, 2, 3
404
+ vmladduhm 13, 13, 10, 3
405
+ vmladduhm 18, 18, 10, 3
406
+ vmladduhm 23, 23, 10, 3
407
+ vmladduhm 28, 28, 10, 3
408
+ vmladduhm 13, 15, 5, 13
409
+ vmladduhm 18, 20, 5, 18
410
+ vmladduhm 23, 25, 5, 23
411
+ vmladduhm 28, 30, 5, 28
412
+ lxvd2x 44, 3, 9
413
+ lxvd2x 49, 3, 16
414
+ lxvd2x 54, 3, 18
415
+ lxvd2x 59, 3, 20
416
+ vsubuhm 16, 12, 13
417
+ vadduhm 15, 13, 12
418
+ vsubuhm 21, 17, 18
419
+ vadduhm 20, 18, 17
420
+ vsubuhm 26, 22, 23
421
+ vadduhm 25, 23, 22
422
+ vsubuhm 31, 27, 28
423
+ vadduhm 30, 28, 27
424
+ stxvd2x 47, 3, 9
425
+ stxvd2x 48, 3, 10
426
+ stxvd2x 52, 3, 16
427
+ stxvd2x 53, 3, 17
428
+ stxvd2x 57, 3, 18
429
+ stxvd2x 58, 3, 19
430
+ stxvd2x 62, 3, 20
431
+ stxvd2x 63, 3, 21
432
+ nop
433
+ nop
434
+ ori 2, 2, 0
435
+ li 7, 64
436
+ lvx 10, 0, 14
437
+ lvx 2, 0, 22
438
+ addi 14, 14, 16
439
+ addi 22, 22, 16
440
+ li 9, 0
441
+ add 10, 7, 9
442
+ addi 16, 9, 16
443
+ addi 17, 10, 16
444
+ addi 18, 16, 16
445
+ addi 19, 17, 16
446
+ addi 20, 18, 16
447
+ addi 21, 19, 16
448
+ lxvd2x 45, 3, 10
449
+ lxvd2x 50, 3, 17
450
+ lxvd2x 55, 3, 19
451
+ lxvd2x 60, 3, 21
452
+ vmhraddshs 15, 13, 2, 3
453
+ vmhraddshs 20, 18, 2, 3
454
+ vmhraddshs 25, 23, 2, 3
455
+ vmhraddshs 30, 28, 2, 3
456
+ vmladduhm 13, 13, 10, 3
457
+ vmladduhm 18, 18, 10, 3
458
+ vmladduhm 23, 23, 10, 3
459
+ vmladduhm 28, 28, 10, 3
460
+ vmladduhm 13, 15, 5, 13
461
+ vmladduhm 18, 20, 5, 18
462
+ vmladduhm 23, 25, 5, 23
463
+ vmladduhm 28, 30, 5, 28
464
+ lxvd2x 44, 3, 9
465
+ lxvd2x 49, 3, 16
466
+ lxvd2x 54, 3, 18
467
+ lxvd2x 59, 3, 20
468
+ vsubuhm 16, 12, 13
469
+ vadduhm 15, 13, 12
470
+ vsubuhm 21, 17, 18
471
+ vadduhm 20, 18, 17
472
+ vsubuhm 26, 22, 23
473
+ vadduhm 25, 23, 22
474
+ vsubuhm 31, 27, 28
475
+ vadduhm 30, 28, 27
476
+ stxvd2x 47, 3, 9
477
+ stxvd2x 48, 3, 10
478
+ stxvd2x 52, 3, 16
479
+ stxvd2x 53, 3, 17
480
+ stxvd2x 57, 3, 18
481
+ stxvd2x 58, 3, 19
482
+ stxvd2x 62, 3, 20
483
+ stxvd2x 63, 3, 21
484
+ lvx 10, 0, 14
485
+ lvx 2, 0, 22
486
+ addi 14, 14, 16
487
+ addi 22, 22, 16
488
+ li 9, 128
489
+ add 10, 7, 9
490
+ addi 16, 9, 16
491
+ addi 17, 10, 16
492
+ addi 18, 16, 16
493
+ addi 19, 17, 16
494
+ addi 20, 18, 16
495
+ addi 21, 19, 16
496
+ lxvd2x 45, 3, 10
497
+ lxvd2x 50, 3, 17
498
+ lxvd2x 55, 3, 19
499
+ lxvd2x 60, 3, 21
500
+ vmhraddshs 15, 13, 2, 3
501
+ vmhraddshs 20, 18, 2, 3
502
+ vmhraddshs 25, 23, 2, 3
503
+ vmhraddshs 30, 28, 2, 3
504
+ vmladduhm 13, 13, 10, 3
505
+ vmladduhm 18, 18, 10, 3
506
+ vmladduhm 23, 23, 10, 3
507
+ vmladduhm 28, 28, 10, 3
508
+ vmladduhm 13, 15, 5, 13
509
+ vmladduhm 18, 20, 5, 18
510
+ vmladduhm 23, 25, 5, 23
511
+ vmladduhm 28, 30, 5, 28
512
+ lxvd2x 44, 3, 9
513
+ lxvd2x 49, 3, 16
514
+ lxvd2x 54, 3, 18
515
+ lxvd2x 59, 3, 20
516
+ vsubuhm 16, 12, 13
517
+ vadduhm 15, 13, 12
518
+ vsubuhm 21, 17, 18
519
+ vadduhm 20, 18, 17
520
+ vsubuhm 26, 22, 23
521
+ vadduhm 25, 23, 22
522
+ vsubuhm 31, 27, 28
523
+ vadduhm 30, 28, 27
524
+ stxvd2x 47, 3, 9
525
+ stxvd2x 48, 3, 10
526
+ stxvd2x 52, 3, 16
527
+ stxvd2x 53, 3, 17
528
+ stxvd2x 57, 3, 18
529
+ stxvd2x 58, 3, 19
530
+ stxvd2x 62, 3, 20
531
+ stxvd2x 63, 3, 21
532
+ lvx 10, 0, 14
533
+ lvx 2, 0, 22
534
+ addi 14, 14, 16
535
+ addi 22, 22, 16
536
+ li 9, 256
537
+ add 10, 7, 9
538
+ addi 16, 9, 16
539
+ addi 17, 10, 16
540
+ addi 18, 16, 16
541
+ addi 19, 17, 16
542
+ addi 20, 18, 16
543
+ addi 21, 19, 16
544
+ lxvd2x 45, 3, 10
545
+ lxvd2x 50, 3, 17
546
+ lxvd2x 55, 3, 19
547
+ lxvd2x 60, 3, 21
548
+ vmhraddshs 15, 13, 2, 3
549
+ vmhraddshs 20, 18, 2, 3
550
+ vmhraddshs 25, 23, 2, 3
551
+ vmhraddshs 30, 28, 2, 3
552
+ vmladduhm 13, 13, 10, 3
553
+ vmladduhm 18, 18, 10, 3
554
+ vmladduhm 23, 23, 10, 3
555
+ vmladduhm 28, 28, 10, 3
556
+ vmladduhm 13, 15, 5, 13
557
+ vmladduhm 18, 20, 5, 18
558
+ vmladduhm 23, 25, 5, 23
559
+ vmladduhm 28, 30, 5, 28
560
+ lxvd2x 44, 3, 9
561
+ lxvd2x 49, 3, 16
562
+ lxvd2x 54, 3, 18
563
+ lxvd2x 59, 3, 20
564
+ vsubuhm 16, 12, 13
565
+ vadduhm 15, 13, 12
566
+ vsubuhm 21, 17, 18
567
+ vadduhm 20, 18, 17
568
+ vsubuhm 26, 22, 23
569
+ vadduhm 25, 23, 22
570
+ vsubuhm 31, 27, 28
571
+ vadduhm 30, 28, 27
572
+ stxvd2x 47, 3, 9
573
+ stxvd2x 48, 3, 10
574
+ stxvd2x 52, 3, 16
575
+ stxvd2x 53, 3, 17
576
+ stxvd2x 57, 3, 18
577
+ stxvd2x 58, 3, 19
578
+ stxvd2x 62, 3, 20
579
+ stxvd2x 63, 3, 21
580
+ lvx 10, 0, 14
581
+ lvx 2, 0, 22
582
+ addi 14, 14, 16
583
+ addi 22, 22, 16
584
+ li 9, 384
585
+ add 10, 7, 9
586
+ addi 16, 9, 16
587
+ addi 17, 10, 16
588
+ addi 18, 16, 16
589
+ addi 19, 17, 16
590
+ addi 20, 18, 16
591
+ addi 21, 19, 16
592
+ lxvd2x 45, 3, 10
593
+ lxvd2x 50, 3, 17
594
+ lxvd2x 55, 3, 19
595
+ lxvd2x 60, 3, 21
596
+ vmhraddshs 15, 13, 2, 3
597
+ vmhraddshs 20, 18, 2, 3
598
+ vmhraddshs 25, 23, 2, 3
599
+ vmhraddshs 30, 28, 2, 3
600
+ vmladduhm 13, 13, 10, 3
601
+ vmladduhm 18, 18, 10, 3
602
+ vmladduhm 23, 23, 10, 3
603
+ vmladduhm 28, 28, 10, 3
604
+ vmladduhm 13, 15, 5, 13
605
+ vmladduhm 18, 20, 5, 18
606
+ vmladduhm 23, 25, 5, 23
607
+ vmladduhm 28, 30, 5, 28
608
+ lxvd2x 44, 3, 9
609
+ lxvd2x 49, 3, 16
610
+ lxvd2x 54, 3, 18
611
+ lxvd2x 59, 3, 20
612
+ vsubuhm 16, 12, 13
613
+ vadduhm 15, 13, 12
614
+ vsubuhm 21, 17, 18
615
+ vadduhm 20, 18, 17
616
+ vsubuhm 26, 22, 23
617
+ vadduhm 25, 23, 22
618
+ vsubuhm 31, 27, 28
619
+ vadduhm 30, 28, 27
620
+ stxvd2x 47, 3, 9
621
+ stxvd2x 48, 3, 10
622
+ stxvd2x 52, 3, 16
623
+ stxvd2x 53, 3, 17
624
+ stxvd2x 57, 3, 18
625
+ stxvd2x 58, 3, 19
626
+ stxvd2x 62, 3, 20
627
+ stxvd2x 63, 3, 21
628
+ nop
629
+ nop
630
+ ori 2, 2, 0
631
+ li 7, 32
632
+ li 10, 16
633
+ li 11, 32
634
+ li 12, 48
635
+ lxvd2x 39, 0, 14
636
+ lxvd2x 40, 10, 14
637
+ lxvd2x 41, 11, 14
638
+ lxvd2x 42, 12, 14
639
+ lxvd2x 32, 0, 22
640
+ lxvd2x 33, 10, 22
641
+ lxvd2x 38, 11, 22
642
+ lxvd2x 43, 12, 22
643
+ addi 14, 14, 64
644
+ addi 22, 22, 64
645
+ li 9, 0
646
+ add 10, 7, 9
647
+ addi 16, 9, 64
648
+ addi 17, 10, 64
649
+ addi 18, 16, 64
650
+ addi 19, 17, 64
651
+ addi 20, 18, 64
652
+ addi 21, 19, 64
653
+ lxvd2x 45, 3, 10
654
+ lxvd2x 50, 3, 17
655
+ lxvd2x 55, 3, 19
656
+ lxvd2x 60, 3, 21
657
+ vmhraddshs 15, 13, 0, 3
658
+ vmhraddshs 20, 18, 1, 3
659
+ vmhraddshs 25, 23, 6, 3
660
+ vmhraddshs 30, 28, 11, 3
661
+ vmladduhm 13, 13, 7, 3
662
+ vmladduhm 18, 18, 8, 3
663
+ vmladduhm 23, 23, 9, 3
664
+ vmladduhm 28, 28, 10, 3
665
+ vmladduhm 13, 15, 5, 13
666
+ vmladduhm 18, 20, 5, 18
667
+ vmladduhm 23, 25, 5, 23
668
+ vmladduhm 28, 30, 5, 28
669
+ lxvd2x 44, 3, 9
670
+ lxvd2x 49, 3, 16
671
+ lxvd2x 54, 3, 18
672
+ lxvd2x 59, 3, 20
673
+ vsubuhm 16, 12, 13
674
+ vadduhm 15, 13, 12
675
+ vsubuhm 21, 17, 18
676
+ vadduhm 20, 18, 17
677
+ vsubuhm 26, 22, 23
678
+ vadduhm 25, 23, 22
679
+ vsubuhm 31, 27, 28
680
+ vadduhm 30, 28, 27
681
+ stxvd2x 47, 3, 9
682
+ stxvd2x 48, 3, 10
683
+ stxvd2x 52, 3, 16
684
+ stxvd2x 53, 3, 17
685
+ stxvd2x 57, 3, 18
686
+ stxvd2x 58, 3, 19
687
+ stxvd2x 62, 3, 20
688
+ stxvd2x 63, 3, 21
689
+ li 9, 16
690
+ add 10, 7, 9
691
+ addi 16, 9, 64
692
+ addi 17, 10, 64
693
+ addi 18, 16, 64
694
+ addi 19, 17, 64
695
+ addi 20, 18, 64
696
+ addi 21, 19, 64
697
+ lxvd2x 45, 3, 10
698
+ lxvd2x 50, 3, 17
699
+ lxvd2x 55, 3, 19
700
+ lxvd2x 60, 3, 21
701
+ vmhraddshs 15, 13, 0, 3
702
+ vmhraddshs 20, 18, 1, 3
703
+ vmhraddshs 25, 23, 6, 3
704
+ vmhraddshs 30, 28, 11, 3
705
+ vmladduhm 13, 13, 7, 3
706
+ vmladduhm 18, 18, 8, 3
707
+ vmladduhm 23, 23, 9, 3
708
+ vmladduhm 28, 28, 10, 3
709
+ vmladduhm 13, 15, 5, 13
710
+ vmladduhm 18, 20, 5, 18
711
+ vmladduhm 23, 25, 5, 23
712
+ vmladduhm 28, 30, 5, 28
713
+ lxvd2x 44, 3, 9
714
+ lxvd2x 49, 3, 16
715
+ lxvd2x 54, 3, 18
716
+ lxvd2x 59, 3, 20
717
+ vsubuhm 16, 12, 13
718
+ vadduhm 15, 13, 12
719
+ vsubuhm 21, 17, 18
720
+ vadduhm 20, 18, 17
721
+ vsubuhm 26, 22, 23
722
+ vadduhm 25, 23, 22
723
+ vsubuhm 31, 27, 28
724
+ vadduhm 30, 28, 27
725
+ stxvd2x 47, 3, 9
726
+ stxvd2x 48, 3, 10
727
+ stxvd2x 52, 3, 16
728
+ stxvd2x 53, 3, 17
729
+ stxvd2x 57, 3, 18
730
+ stxvd2x 58, 3, 19
731
+ stxvd2x 62, 3, 20
732
+ stxvd2x 63, 3, 21
733
+ li 10, 16
734
+ li 11, 32
735
+ li 12, 48
736
+ lxvd2x 39, 0, 14
737
+ lxvd2x 40, 10, 14
738
+ lxvd2x 41, 11, 14
739
+ lxvd2x 42, 12, 14
740
+ lxvd2x 32, 0, 22
741
+ lxvd2x 33, 10, 22
742
+ lxvd2x 38, 11, 22
743
+ lxvd2x 43, 12, 22
744
+ addi 14, 14, 64
745
+ addi 22, 22, 64
746
+ li 9, 256
747
+ add 10, 7, 9
748
+ addi 16, 9, 64
749
+ addi 17, 10, 64
750
+ addi 18, 16, 64
751
+ addi 19, 17, 64
752
+ addi 20, 18, 64
753
+ addi 21, 19, 64
754
+ lxvd2x 45, 3, 10
755
+ lxvd2x 50, 3, 17
756
+ lxvd2x 55, 3, 19
757
+ lxvd2x 60, 3, 21
758
+ vmhraddshs 15, 13, 0, 3
759
+ vmhraddshs 20, 18, 1, 3
760
+ vmhraddshs 25, 23, 6, 3
761
+ vmhraddshs 30, 28, 11, 3
762
+ vmladduhm 13, 13, 7, 3
763
+ vmladduhm 18, 18, 8, 3
764
+ vmladduhm 23, 23, 9, 3
765
+ vmladduhm 28, 28, 10, 3
766
+ vmladduhm 13, 15, 5, 13
767
+ vmladduhm 18, 20, 5, 18
768
+ vmladduhm 23, 25, 5, 23
769
+ vmladduhm 28, 30, 5, 28
770
+ lxvd2x 44, 3, 9
771
+ lxvd2x 49, 3, 16
772
+ lxvd2x 54, 3, 18
773
+ lxvd2x 59, 3, 20
774
+ vsubuhm 16, 12, 13
775
+ vadduhm 15, 13, 12
776
+ vsubuhm 21, 17, 18
777
+ vadduhm 20, 18, 17
778
+ vsubuhm 26, 22, 23
779
+ vadduhm 25, 23, 22
780
+ vsubuhm 31, 27, 28
781
+ vadduhm 30, 28, 27
782
+ stxvd2x 47, 3, 9
783
+ stxvd2x 48, 3, 10
784
+ stxvd2x 52, 3, 16
785
+ stxvd2x 53, 3, 17
786
+ stxvd2x 57, 3, 18
787
+ stxvd2x 58, 3, 19
788
+ stxvd2x 62, 3, 20
789
+ stxvd2x 63, 3, 21
790
+ li 9, 272
791
+ add 10, 7, 9
792
+ addi 16, 9, 64
793
+ addi 17, 10, 64
794
+ addi 18, 16, 64
795
+ addi 19, 17, 64
796
+ addi 20, 18, 64
797
+ addi 21, 19, 64
798
+ lxvd2x 45, 3, 10
799
+ lxvd2x 50, 3, 17
800
+ lxvd2x 55, 3, 19
801
+ lxvd2x 60, 3, 21
802
+ vmhraddshs 15, 13, 0, 3
803
+ vmhraddshs 20, 18, 1, 3
804
+ vmhraddshs 25, 23, 6, 3
805
+ vmhraddshs 30, 28, 11, 3
806
+ vmladduhm 13, 13, 7, 3
807
+ vmladduhm 18, 18, 8, 3
808
+ vmladduhm 23, 23, 9, 3
809
+ vmladduhm 28, 28, 10, 3
810
+ vmladduhm 13, 15, 5, 13
811
+ vmladduhm 18, 20, 5, 18
812
+ vmladduhm 23, 25, 5, 23
813
+ vmladduhm 28, 30, 5, 28
814
+ lxvd2x 44, 3, 9
815
+ lxvd2x 49, 3, 16
816
+ lxvd2x 54, 3, 18
817
+ lxvd2x 59, 3, 20
818
+ vsubuhm 16, 12, 13
819
+ vadduhm 15, 13, 12
820
+ vsubuhm 21, 17, 18
821
+ vadduhm 20, 18, 17
822
+ vsubuhm 26, 22, 23
823
+ vadduhm 25, 23, 22
824
+ vsubuhm 31, 27, 28
825
+ vadduhm 30, 28, 27
826
+ stxvd2x 47, 3, 9
827
+ stxvd2x 48, 3, 10
828
+ stxvd2x 52, 3, 16
829
+ stxvd2x 53, 3, 17
830
+ stxvd2x 57, 3, 18
831
+ stxvd2x 58, 3, 19
832
+ stxvd2x 62, 3, 20
833
+ stxvd2x 63, 3, 21
834
+ ori 2, 2, 0
835
+ li 7, 16
836
+ li 10, 16
837
+ li 11, 32
838
+ li 12, 48
839
+ lxvd2x 39, 0, 14
840
+ lxvd2x 40, 10, 14
841
+ lxvd2x 41, 11, 14
842
+ lxvd2x 42, 12, 14
843
+ lxvd2x 32, 0, 22
844
+ lxvd2x 33, 10, 22
845
+ lxvd2x 38, 11, 22
846
+ lxvd2x 43, 12, 22
847
+ addi 14, 14, 64
848
+ addi 22, 22, 64
849
+ li 9, 0
850
+ add 10, 7, 9
851
+ addi 16, 9, 32
852
+ addi 17, 10, 32
853
+ addi 18, 16, 32
854
+ addi 19, 17, 32
855
+ addi 20, 18, 32
856
+ addi 21, 19, 32
857
+ lxvd2x 45, 3, 10
858
+ lxvd2x 50, 3, 17
859
+ lxvd2x 55, 3, 19
860
+ lxvd2x 60, 3, 21
861
+ vmhraddshs 15, 13, 0, 3
862
+ vmhraddshs 20, 18, 1, 3
863
+ vmhraddshs 25, 23, 6, 3
864
+ vmhraddshs 30, 28, 11, 3
865
+ vmladduhm 13, 13, 7, 3
866
+ vmladduhm 18, 18, 8, 3
867
+ vmladduhm 23, 23, 9, 3
868
+ vmladduhm 28, 28, 10, 3
869
+ vmladduhm 13, 15, 5, 13
870
+ vmladduhm 18, 20, 5, 18
871
+ vmladduhm 23, 25, 5, 23
872
+ vmladduhm 28, 30, 5, 28
873
+ lxvd2x 44, 3, 9
874
+ lxvd2x 49, 3, 16
875
+ lxvd2x 54, 3, 18
876
+ lxvd2x 59, 3, 20
877
+ vsubuhm 16, 12, 13
878
+ vadduhm 15, 13, 12
879
+ vsubuhm 21, 17, 18
880
+ vadduhm 20, 18, 17
881
+ vsubuhm 26, 22, 23
882
+ vadduhm 25, 23, 22
883
+ vsubuhm 31, 27, 28
884
+ vadduhm 30, 28, 27
885
+ stxvd2x 47, 3, 9
886
+ stxvd2x 48, 3, 10
887
+ stxvd2x 52, 3, 16
888
+ stxvd2x 53, 3, 17
889
+ stxvd2x 57, 3, 18
890
+ stxvd2x 58, 3, 19
891
+ stxvd2x 62, 3, 20
892
+ stxvd2x 63, 3, 21
893
+ li 10, 16
894
+ li 11, 32
895
+ li 12, 48
896
+ lxvd2x 39, 0, 14
897
+ lxvd2x 40, 10, 14
898
+ lxvd2x 41, 11, 14
899
+ lxvd2x 42, 12, 14
900
+ lxvd2x 32, 0, 22
901
+ lxvd2x 33, 10, 22
902
+ lxvd2x 38, 11, 22
903
+ lxvd2x 43, 12, 22
904
+ addi 14, 14, 64
905
+ addi 22, 22, 64
906
+ li 9, 128
907
+ add 10, 7, 9
908
+ addi 16, 9, 32
909
+ addi 17, 10, 32
910
+ addi 18, 16, 32
911
+ addi 19, 17, 32
912
+ addi 20, 18, 32
913
+ addi 21, 19, 32
914
+ lxvd2x 45, 3, 10
915
+ lxvd2x 50, 3, 17
916
+ lxvd2x 55, 3, 19
917
+ lxvd2x 60, 3, 21
918
+ vmhraddshs 15, 13, 0, 3
919
+ vmhraddshs 20, 18, 1, 3
920
+ vmhraddshs 25, 23, 6, 3
921
+ vmhraddshs 30, 28, 11, 3
922
+ vmladduhm 13, 13, 7, 3
923
+ vmladduhm 18, 18, 8, 3
924
+ vmladduhm 23, 23, 9, 3
925
+ vmladduhm 28, 28, 10, 3
926
+ vmladduhm 13, 15, 5, 13
927
+ vmladduhm 18, 20, 5, 18
928
+ vmladduhm 23, 25, 5, 23
929
+ vmladduhm 28, 30, 5, 28
930
+ lxvd2x 44, 3, 9
931
+ lxvd2x 49, 3, 16
932
+ lxvd2x 54, 3, 18
933
+ lxvd2x 59, 3, 20
934
+ vsubuhm 16, 12, 13
935
+ vadduhm 15, 13, 12
936
+ vsubuhm 21, 17, 18
937
+ vadduhm 20, 18, 17
938
+ vsubuhm 26, 22, 23
939
+ vadduhm 25, 23, 22
940
+ vsubuhm 31, 27, 28
941
+ vadduhm 30, 28, 27
942
+ stxvd2x 47, 3, 9
943
+ stxvd2x 48, 3, 10
944
+ stxvd2x 52, 3, 16
945
+ stxvd2x 53, 3, 17
946
+ stxvd2x 57, 3, 18
947
+ stxvd2x 58, 3, 19
948
+ stxvd2x 62, 3, 20
949
+ stxvd2x 63, 3, 21
950
+ li 10, 16
951
+ li 11, 32
952
+ li 12, 48
953
+ lxvd2x 39, 0, 14
954
+ lxvd2x 40, 10, 14
955
+ lxvd2x 41, 11, 14
956
+ lxvd2x 42, 12, 14
957
+ lxvd2x 32, 0, 22
958
+ lxvd2x 33, 10, 22
959
+ lxvd2x 38, 11, 22
960
+ lxvd2x 43, 12, 22
961
+ addi 14, 14, 64
962
+ addi 22, 22, 64
963
+ li 9, 256
964
+ add 10, 7, 9
965
+ addi 16, 9, 32
966
+ addi 17, 10, 32
967
+ addi 18, 16, 32
968
+ addi 19, 17, 32
969
+ addi 20, 18, 32
970
+ addi 21, 19, 32
971
+ lxvd2x 45, 3, 10
972
+ lxvd2x 50, 3, 17
973
+ lxvd2x 55, 3, 19
974
+ lxvd2x 60, 3, 21
975
+ vmhraddshs 15, 13, 0, 3
976
+ vmhraddshs 20, 18, 1, 3
977
+ vmhraddshs 25, 23, 6, 3
978
+ vmhraddshs 30, 28, 11, 3
979
+ vmladduhm 13, 13, 7, 3
980
+ vmladduhm 18, 18, 8, 3
981
+ vmladduhm 23, 23, 9, 3
982
+ vmladduhm 28, 28, 10, 3
983
+ vmladduhm 13, 15, 5, 13
984
+ vmladduhm 18, 20, 5, 18
985
+ vmladduhm 23, 25, 5, 23
986
+ vmladduhm 28, 30, 5, 28
987
+ lxvd2x 44, 3, 9
988
+ lxvd2x 49, 3, 16
989
+ lxvd2x 54, 3, 18
990
+ lxvd2x 59, 3, 20
991
+ vsubuhm 16, 12, 13
992
+ vadduhm 15, 13, 12
993
+ vsubuhm 21, 17, 18
994
+ vadduhm 20, 18, 17
995
+ vsubuhm 26, 22, 23
996
+ vadduhm 25, 23, 22
997
+ vsubuhm 31, 27, 28
998
+ vadduhm 30, 28, 27
999
+ stxvd2x 47, 3, 9
1000
+ stxvd2x 48, 3, 10
1001
+ stxvd2x 52, 3, 16
1002
+ stxvd2x 53, 3, 17
1003
+ stxvd2x 57, 3, 18
1004
+ stxvd2x 58, 3, 19
1005
+ stxvd2x 62, 3, 20
1006
+ stxvd2x 63, 3, 21
1007
+ li 10, 16
1008
+ li 11, 32
1009
+ li 12, 48
1010
+ lxvd2x 39, 0, 14
1011
+ lxvd2x 40, 10, 14
1012
+ lxvd2x 41, 11, 14
1013
+ lxvd2x 42, 12, 14
1014
+ lxvd2x 32, 0, 22
1015
+ lxvd2x 33, 10, 22
1016
+ lxvd2x 38, 11, 22
1017
+ lxvd2x 43, 12, 22
1018
+ addi 14, 14, 64
1019
+ addi 22, 22, 64
1020
+ li 9, 384
1021
+ add 10, 7, 9
1022
+ addi 16, 9, 32
1023
+ addi 17, 10, 32
1024
+ addi 18, 16, 32
1025
+ addi 19, 17, 32
1026
+ addi 20, 18, 32
1027
+ addi 21, 19, 32
1028
+ lxvd2x 45, 3, 10
1029
+ lxvd2x 50, 3, 17
1030
+ lxvd2x 55, 3, 19
1031
+ lxvd2x 60, 3, 21
1032
+ vmhraddshs 15, 13, 0, 3
1033
+ vmhraddshs 20, 18, 1, 3
1034
+ vmhraddshs 25, 23, 6, 3
1035
+ vmhraddshs 30, 28, 11, 3
1036
+ vmladduhm 13, 13, 7, 3
1037
+ vmladduhm 18, 18, 8, 3
1038
+ vmladduhm 23, 23, 9, 3
1039
+ vmladduhm 28, 28, 10, 3
1040
+ vmladduhm 13, 15, 5, 13
1041
+ vmladduhm 18, 20, 5, 18
1042
+ vmladduhm 23, 25, 5, 23
1043
+ vmladduhm 28, 30, 5, 28
1044
+ lxvd2x 44, 3, 9
1045
+ lxvd2x 49, 3, 16
1046
+ lxvd2x 54, 3, 18
1047
+ lxvd2x 59, 3, 20
1048
+ vsubuhm 16, 12, 13
1049
+ vadduhm 15, 13, 12
1050
+ vsubuhm 21, 17, 18
1051
+ vadduhm 20, 18, 17
1052
+ vsubuhm 26, 22, 23
1053
+ vadduhm 25, 23, 22
1054
+ vsubuhm 31, 27, 28
1055
+ vadduhm 30, 28, 27
1056
+ stxvd2x 47, 3, 9
1057
+ stxvd2x 48, 3, 10
1058
+ stxvd2x 52, 3, 16
1059
+ stxvd2x 53, 3, 17
1060
+ stxvd2x 57, 3, 18
1061
+ stxvd2x 58, 3, 19
1062
+ stxvd2x 62, 3, 20
1063
+ stxvd2x 63, 3, 21
1064
+ mr 5, 3
1065
+ li 7, 8
1066
+ li 10, 16
1067
+ li 11, 32
1068
+ li 12, 48
1069
+ li 15, 64
1070
+ li 16, 80
1071
+ li 17, 96
1072
+ li 18, 112
1073
+ nop
1074
+ ori 2, 2, 0
1075
+ li 10, 16
1076
+ li 11, 32
1077
+ li 12, 48
1078
+ lxvd2x 39, 0, 14
1079
+ lxvd2x 40, 10, 14
1080
+ lxvd2x 41, 11, 14
1081
+ lxvd2x 42, 12, 14
1082
+ lxvd2x 32, 0, 22
1083
+ lxvd2x 33, 10, 22
1084
+ lxvd2x 38, 11, 22
1085
+ lxvd2x 43, 12, 22
1086
+ addi 14, 14, 64
1087
+ addi 22, 22, 64
1088
+ lxvd2x 1, 0, 5
1089
+ lxvd2x 2, 10, 5
1090
+ xxmrgld 45, 2, 1
1091
+ xxmrghd 44, 2, 1
1092
+ lxvd2x 3, 11, 5
1093
+ lxvd2x 4, 12, 5
1094
+ xxmrgld 50, 4, 3
1095
+ xxmrghd 49, 4, 3
1096
+ lxvd2x 1, 15, 5
1097
+ lxvd2x 2, 16, 5
1098
+ xxmrgld 55, 2, 1
1099
+ xxmrghd 54, 2, 1
1100
+ lxvd2x 3, 17, 5
1101
+ lxvd2x 4, 18, 5
1102
+ xxmrgld 60, 4, 3
1103
+ xxmrghd 59, 4, 3
1104
+ vmhraddshs 15, 13, 0, 3
1105
+ vmhraddshs 20, 18, 1, 3
1106
+ vmhraddshs 25, 23, 6, 3
1107
+ vmhraddshs 30, 28, 11, 3
1108
+ vmladduhm 13, 13, 7, 3
1109
+ vmladduhm 18, 18, 8, 3
1110
+ vmladduhm 23, 23, 9, 3
1111
+ vmladduhm 28, 28, 10, 3
1112
+ vmladduhm 13, 15, 5, 13
1113
+ vmladduhm 18, 20, 5, 18
1114
+ vmladduhm 23, 25, 5, 23
1115
+ vmladduhm 28, 30, 5, 28
1116
+ vsubuhm 16, 12, 13
1117
+ vadduhm 15, 13, 12
1118
+ vsubuhm 21, 17, 18
1119
+ vadduhm 20, 18, 17
1120
+ vsubuhm 26, 22, 23
1121
+ vadduhm 25, 23, 22
1122
+ vsubuhm 31, 27, 28
1123
+ vadduhm 30, 28, 27
1124
+ xxmrgld 0, 47, 48
1125
+ xxmrghd 1, 47, 48
1126
+ xxmrgld 2, 52, 53
1127
+ xxmrghd 3, 52, 53
1128
+ xxmrgld 4, 57, 58
1129
+ xxmrghd 5, 57, 58
1130
+ xxmrgld 6, 62, 63
1131
+ xxmrghd 7, 62, 63
1132
+ stxvd2x 0, 0, 5
1133
+ stxvd2x 1, 10, 5
1134
+ stxvd2x 2, 11, 5
1135
+ stxvd2x 3, 12, 5
1136
+ stxvd2x 4, 15, 5
1137
+ stxvd2x 5, 16, 5
1138
+ stxvd2x 6, 17, 5
1139
+ stxvd2x 7, 18, 5
1140
+ addi 5, 5, 128
1141
+ li 10, 16
1142
+ li 11, 32
1143
+ li 12, 48
1144
+ lxvd2x 39, 0, 14
1145
+ lxvd2x 40, 10, 14
1146
+ lxvd2x 41, 11, 14
1147
+ lxvd2x 42, 12, 14
1148
+ lxvd2x 32, 0, 22
1149
+ lxvd2x 33, 10, 22
1150
+ lxvd2x 38, 11, 22
1151
+ lxvd2x 43, 12, 22
1152
+ addi 14, 14, 64
1153
+ addi 22, 22, 64
1154
+ lxvd2x 1, 0, 5
1155
+ lxvd2x 2, 10, 5
1156
+ xxmrgld 45, 2, 1
1157
+ xxmrghd 44, 2, 1
1158
+ lxvd2x 3, 11, 5
1159
+ lxvd2x 4, 12, 5
1160
+ xxmrgld 50, 4, 3
1161
+ xxmrghd 49, 4, 3
1162
+ lxvd2x 1, 15, 5
1163
+ lxvd2x 2, 16, 5
1164
+ xxmrgld 55, 2, 1
1165
+ xxmrghd 54, 2, 1
1166
+ lxvd2x 3, 17, 5
1167
+ lxvd2x 4, 18, 5
1168
+ xxmrgld 60, 4, 3
1169
+ xxmrghd 59, 4, 3
1170
+ vmhraddshs 15, 13, 0, 3
1171
+ vmhraddshs 20, 18, 1, 3
1172
+ vmhraddshs 25, 23, 6, 3
1173
+ vmhraddshs 30, 28, 11, 3
1174
+ vmladduhm 13, 13, 7, 3
1175
+ vmladduhm 18, 18, 8, 3
1176
+ vmladduhm 23, 23, 9, 3
1177
+ vmladduhm 28, 28, 10, 3
1178
+ vmladduhm 13, 15, 5, 13
1179
+ vmladduhm 18, 20, 5, 18
1180
+ vmladduhm 23, 25, 5, 23
1181
+ vmladduhm 28, 30, 5, 28
1182
+ vsubuhm 16, 12, 13
1183
+ vadduhm 15, 13, 12
1184
+ vsubuhm 21, 17, 18
1185
+ vadduhm 20, 18, 17
1186
+ vsubuhm 26, 22, 23
1187
+ vadduhm 25, 23, 22
1188
+ vsubuhm 31, 27, 28
1189
+ vadduhm 30, 28, 27
1190
+ xxmrgld 0, 47, 48
1191
+ xxmrghd 1, 47, 48
1192
+ xxmrgld 2, 52, 53
1193
+ xxmrghd 3, 52, 53
1194
+ xxmrgld 4, 57, 58
1195
+ xxmrghd 5, 57, 58
1196
+ xxmrgld 6, 62, 63
1197
+ xxmrghd 7, 62, 63
1198
+ stxvd2x 0, 0, 5
1199
+ stxvd2x 1, 10, 5
1200
+ stxvd2x 2, 11, 5
1201
+ stxvd2x 3, 12, 5
1202
+ stxvd2x 4, 15, 5
1203
+ stxvd2x 5, 16, 5
1204
+ stxvd2x 6, 17, 5
1205
+ stxvd2x 7, 18, 5
1206
+ addi 5, 5, 128
1207
+ li 10, 16
1208
+ li 11, 32
1209
+ li 12, 48
1210
+ lxvd2x 39, 0, 14
1211
+ lxvd2x 40, 10, 14
1212
+ lxvd2x 41, 11, 14
1213
+ lxvd2x 42, 12, 14
1214
+ lxvd2x 32, 0, 22
1215
+ lxvd2x 33, 10, 22
1216
+ lxvd2x 38, 11, 22
1217
+ lxvd2x 43, 12, 22
1218
+ addi 14, 14, 64
1219
+ addi 22, 22, 64
1220
+ lxvd2x 1, 0, 5
1221
+ lxvd2x 2, 10, 5
1222
+ xxmrgld 45, 2, 1
1223
+ xxmrghd 44, 2, 1
1224
+ lxvd2x 3, 11, 5
1225
+ lxvd2x 4, 12, 5
1226
+ xxmrgld 50, 4, 3
1227
+ xxmrghd 49, 4, 3
1228
+ lxvd2x 1, 15, 5
1229
+ lxvd2x 2, 16, 5
1230
+ xxmrgld 55, 2, 1
1231
+ xxmrghd 54, 2, 1
1232
+ lxvd2x 3, 17, 5
1233
+ lxvd2x 4, 18, 5
1234
+ xxmrgld 60, 4, 3
1235
+ xxmrghd 59, 4, 3
1236
+ vmhraddshs 15, 13, 0, 3
1237
+ vmhraddshs 20, 18, 1, 3
1238
+ vmhraddshs 25, 23, 6, 3
1239
+ vmhraddshs 30, 28, 11, 3
1240
+ vmladduhm 13, 13, 7, 3
1241
+ vmladduhm 18, 18, 8, 3
1242
+ vmladduhm 23, 23, 9, 3
1243
+ vmladduhm 28, 28, 10, 3
1244
+ vmladduhm 13, 15, 5, 13
1245
+ vmladduhm 18, 20, 5, 18
1246
+ vmladduhm 23, 25, 5, 23
1247
+ vmladduhm 28, 30, 5, 28
1248
+ vsubuhm 16, 12, 13
1249
+ vadduhm 15, 13, 12
1250
+ vsubuhm 21, 17, 18
1251
+ vadduhm 20, 18, 17
1252
+ vsubuhm 26, 22, 23
1253
+ vadduhm 25, 23, 22
1254
+ vsubuhm 31, 27, 28
1255
+ vadduhm 30, 28, 27
1256
+ xxmrgld 0, 47, 48
1257
+ xxmrghd 1, 47, 48
1258
+ xxmrgld 2, 52, 53
1259
+ xxmrghd 3, 52, 53
1260
+ xxmrgld 4, 57, 58
1261
+ xxmrghd 5, 57, 58
1262
+ xxmrgld 6, 62, 63
1263
+ xxmrghd 7, 62, 63
1264
+ stxvd2x 0, 0, 5
1265
+ stxvd2x 1, 10, 5
1266
+ stxvd2x 2, 11, 5
1267
+ stxvd2x 3, 12, 5
1268
+ stxvd2x 4, 15, 5
1269
+ stxvd2x 5, 16, 5
1270
+ stxvd2x 6, 17, 5
1271
+ stxvd2x 7, 18, 5
1272
+ addi 5, 5, 128
1273
+ li 10, 16
1274
+ li 11, 32
1275
+ li 12, 48
1276
+ lxvd2x 39, 0, 14
1277
+ lxvd2x 40, 10, 14
1278
+ lxvd2x 41, 11, 14
1279
+ lxvd2x 42, 12, 14
1280
+ lxvd2x 32, 0, 22
1281
+ lxvd2x 33, 10, 22
1282
+ lxvd2x 38, 11, 22
1283
+ lxvd2x 43, 12, 22
1284
+ addi 14, 14, 64
1285
+ addi 22, 22, 64
1286
+ lxvd2x 1, 0, 5
1287
+ lxvd2x 2, 10, 5
1288
+ xxmrgld 45, 2, 1
1289
+ xxmrghd 44, 2, 1
1290
+ lxvd2x 3, 11, 5
1291
+ lxvd2x 4, 12, 5
1292
+ xxmrgld 50, 4, 3
1293
+ xxmrghd 49, 4, 3
1294
+ lxvd2x 1, 15, 5
1295
+ lxvd2x 2, 16, 5
1296
+ xxmrgld 55, 2, 1
1297
+ xxmrghd 54, 2, 1
1298
+ lxvd2x 3, 17, 5
1299
+ lxvd2x 4, 18, 5
1300
+ xxmrgld 60, 4, 3
1301
+ xxmrghd 59, 4, 3
1302
+ vmhraddshs 15, 13, 0, 3
1303
+ vmhraddshs 20, 18, 1, 3
1304
+ vmhraddshs 25, 23, 6, 3
1305
+ vmhraddshs 30, 28, 11, 3
1306
+ vmladduhm 13, 13, 7, 3
1307
+ vmladduhm 18, 18, 8, 3
1308
+ vmladduhm 23, 23, 9, 3
1309
+ vmladduhm 28, 28, 10, 3
1310
+ vmladduhm 13, 15, 5, 13
1311
+ vmladduhm 18, 20, 5, 18
1312
+ vmladduhm 23, 25, 5, 23
1313
+ vmladduhm 28, 30, 5, 28
1314
+ vsubuhm 16, 12, 13
1315
+ vadduhm 15, 13, 12
1316
+ vsubuhm 21, 17, 18
1317
+ vadduhm 20, 18, 17
1318
+ vsubuhm 26, 22, 23
1319
+ vadduhm 25, 23, 22
1320
+ vsubuhm 31, 27, 28
1321
+ vadduhm 30, 28, 27
1322
+ xxmrgld 0, 47, 48
1323
+ xxmrghd 1, 47, 48
1324
+ xxmrgld 2, 52, 53
1325
+ xxmrghd 3, 52, 53
1326
+ xxmrgld 4, 57, 58
1327
+ xxmrghd 5, 57, 58
1328
+ xxmrgld 6, 62, 63
1329
+ xxmrghd 7, 62, 63
1330
+ stxvd2x 0, 0, 5
1331
+ stxvd2x 1, 10, 5
1332
+ stxvd2x 2, 11, 5
1333
+ stxvd2x 3, 12, 5
1334
+ stxvd2x 4, 15, 5
1335
+ stxvd2x 5, 16, 5
1336
+ stxvd2x 6, 17, 5
1337
+ stxvd2x 7, 18, 5
1338
+ addi 5, 5, 128
1339
+ mr 5, 3
1340
+ li 7, 4
1341
+ nop
1342
+ ori 2, 2, 0
1343
+ li 10, 16
1344
+ li 11, 32
1345
+ li 12, 48
1346
+ lxvd2x 39, 0, 14
1347
+ lxvd2x 40, 10, 14
1348
+ lxvd2x 41, 11, 14
1349
+ lxvd2x 42, 12, 14
1350
+ lxvd2x 32, 0, 22
1351
+ lxvd2x 33, 10, 22
1352
+ lxvd2x 38, 11, 22
1353
+ lxvd2x 43, 12, 22
1354
+ addi 14, 14, 64
1355
+ addi 22, 22, 64
1356
+ lxvd2x 57, 0, 5
1357
+ lxvd2x 58, 10, 5
1358
+ vmrgew 13, 25, 26
1359
+ vmrgow 12, 25, 26
1360
+ lxvd2x 57, 11, 5
1361
+ lxvd2x 58, 12, 5
1362
+ vmrgew 18, 25, 26
1363
+ vmrgow 17, 25, 26
1364
+ lxvd2x 57, 15, 5
1365
+ lxvd2x 58, 16, 5
1366
+ vmrgew 23, 25, 26
1367
+ vmrgow 22, 25, 26
1368
+ lxvd2x 57, 17, 5
1369
+ lxvd2x 58, 18, 5
1370
+ vmrgew 28, 25, 26
1371
+ vmrgow 27, 25, 26
1372
+ vmhraddshs 15, 13, 0, 3
1373
+ vmhraddshs 20, 18, 1, 3
1374
+ vmhraddshs 25, 23, 6, 3
1375
+ vmhraddshs 30, 28, 11, 3
1376
+ vmladduhm 13, 13, 7, 3
1377
+ vmladduhm 18, 18, 8, 3
1378
+ vmladduhm 23, 23, 9, 3
1379
+ vmladduhm 28, 28, 10, 3
1380
+ vmladduhm 13, 15, 5, 13
1381
+ vmladduhm 18, 20, 5, 18
1382
+ vmladduhm 23, 25, 5, 23
1383
+ vmladduhm 28, 30, 5, 28
1384
+ vsubuhm 16, 12, 13
1385
+ vadduhm 15, 13, 12
1386
+ vsubuhm 21, 17, 18
1387
+ vadduhm 20, 18, 17
1388
+ vsubuhm 26, 22, 23
1389
+ vadduhm 25, 23, 22
1390
+ vsubuhm 31, 27, 28
1391
+ vadduhm 30, 28, 27
1392
+ vmrgew 10, 16, 15
1393
+ vmrgow 11, 16, 15
1394
+ vmrgew 12, 21, 20
1395
+ vmrgow 13, 21, 20
1396
+ vmrgew 14, 26, 25
1397
+ vmrgow 15, 26, 25
1398
+ vmrgew 16, 31, 30
1399
+ vmrgow 17, 31, 30
1400
+ stxvd2x 42, 0, 5
1401
+ stxvd2x 43, 10, 5
1402
+ stxvd2x 44, 11, 5
1403
+ stxvd2x 45, 12, 5
1404
+ stxvd2x 46, 15, 5
1405
+ stxvd2x 47, 16, 5
1406
+ stxvd2x 48, 17, 5
1407
+ stxvd2x 49, 18, 5
1408
+ addi 5, 5, 128
1409
+ li 10, 16
1410
+ li 11, 32
1411
+ li 12, 48
1412
+ lxvd2x 39, 0, 14
1413
+ lxvd2x 40, 10, 14
1414
+ lxvd2x 41, 11, 14
1415
+ lxvd2x 42, 12, 14
1416
+ lxvd2x 32, 0, 22
1417
+ lxvd2x 33, 10, 22
1418
+ lxvd2x 38, 11, 22
1419
+ lxvd2x 43, 12, 22
1420
+ addi 14, 14, 64
1421
+ addi 22, 22, 64
1422
+ lxvd2x 57, 0, 5
1423
+ lxvd2x 58, 10, 5
1424
+ vmrgew 13, 25, 26
1425
+ vmrgow 12, 25, 26
1426
+ lxvd2x 57, 11, 5
1427
+ lxvd2x 58, 12, 5
1428
+ vmrgew 18, 25, 26
1429
+ vmrgow 17, 25, 26
1430
+ lxvd2x 57, 15, 5
1431
+ lxvd2x 58, 16, 5
1432
+ vmrgew 23, 25, 26
1433
+ vmrgow 22, 25, 26
1434
+ lxvd2x 57, 17, 5
1435
+ lxvd2x 58, 18, 5
1436
+ vmrgew 28, 25, 26
1437
+ vmrgow 27, 25, 26
1438
+ vmhraddshs 15, 13, 0, 3
1439
+ vmhraddshs 20, 18, 1, 3
1440
+ vmhraddshs 25, 23, 6, 3
1441
+ vmhraddshs 30, 28, 11, 3
1442
+ vmladduhm 13, 13, 7, 3
1443
+ vmladduhm 18, 18, 8, 3
1444
+ vmladduhm 23, 23, 9, 3
1445
+ vmladduhm 28, 28, 10, 3
1446
+ vmladduhm 13, 15, 5, 13
1447
+ vmladduhm 18, 20, 5, 18
1448
+ vmladduhm 23, 25, 5, 23
1449
+ vmladduhm 28, 30, 5, 28
1450
+ vsubuhm 16, 12, 13
1451
+ vadduhm 15, 13, 12
1452
+ vsubuhm 21, 17, 18
1453
+ vadduhm 20, 18, 17
1454
+ vsubuhm 26, 22, 23
1455
+ vadduhm 25, 23, 22
1456
+ vsubuhm 31, 27, 28
1457
+ vadduhm 30, 28, 27
1458
+ vmrgew 10, 16, 15
1459
+ vmrgow 11, 16, 15
1460
+ vmrgew 12, 21, 20
1461
+ vmrgow 13, 21, 20
1462
+ vmrgew 14, 26, 25
1463
+ vmrgow 15, 26, 25
1464
+ vmrgew 16, 31, 30
1465
+ vmrgow 17, 31, 30
1466
+ stxvd2x 42, 0, 5
1467
+ stxvd2x 43, 10, 5
1468
+ stxvd2x 44, 11, 5
1469
+ stxvd2x 45, 12, 5
1470
+ stxvd2x 46, 15, 5
1471
+ stxvd2x 47, 16, 5
1472
+ stxvd2x 48, 17, 5
1473
+ stxvd2x 49, 18, 5
1474
+ addi 5, 5, 128
1475
+ li 10, 16
1476
+ li 11, 32
1477
+ li 12, 48
1478
+ lxvd2x 39, 0, 14
1479
+ lxvd2x 40, 10, 14
1480
+ lxvd2x 41, 11, 14
1481
+ lxvd2x 42, 12, 14
1482
+ lxvd2x 32, 0, 22
1483
+ lxvd2x 33, 10, 22
1484
+ lxvd2x 38, 11, 22
1485
+ lxvd2x 43, 12, 22
1486
+ addi 14, 14, 64
1487
+ addi 22, 22, 64
1488
+ lxvd2x 57, 0, 5
1489
+ lxvd2x 58, 10, 5
1490
+ vmrgew 13, 25, 26
1491
+ vmrgow 12, 25, 26
1492
+ lxvd2x 57, 11, 5
1493
+ lxvd2x 58, 12, 5
1494
+ vmrgew 18, 25, 26
1495
+ vmrgow 17, 25, 26
1496
+ lxvd2x 57, 15, 5
1497
+ lxvd2x 58, 16, 5
1498
+ vmrgew 23, 25, 26
1499
+ vmrgow 22, 25, 26
1500
+ lxvd2x 57, 17, 5
1501
+ lxvd2x 58, 18, 5
1502
+ vmrgew 28, 25, 26
1503
+ vmrgow 27, 25, 26
1504
+ vmhraddshs 15, 13, 0, 3
1505
+ vmhraddshs 20, 18, 1, 3
1506
+ vmhraddshs 25, 23, 6, 3
1507
+ vmhraddshs 30, 28, 11, 3
1508
+ vmladduhm 13, 13, 7, 3
1509
+ vmladduhm 18, 18, 8, 3
1510
+ vmladduhm 23, 23, 9, 3
1511
+ vmladduhm 28, 28, 10, 3
1512
+ vmladduhm 13, 15, 5, 13
1513
+ vmladduhm 18, 20, 5, 18
1514
+ vmladduhm 23, 25, 5, 23
1515
+ vmladduhm 28, 30, 5, 28
1516
+ vsubuhm 16, 12, 13
1517
+ vadduhm 15, 13, 12
1518
+ vsubuhm 21, 17, 18
1519
+ vadduhm 20, 18, 17
1520
+ vsubuhm 26, 22, 23
1521
+ vadduhm 25, 23, 22
1522
+ vsubuhm 31, 27, 28
1523
+ vadduhm 30, 28, 27
1524
+ vmrgew 10, 16, 15
1525
+ vmrgow 11, 16, 15
1526
+ vmrgew 12, 21, 20
1527
+ vmrgow 13, 21, 20
1528
+ vmrgew 14, 26, 25
1529
+ vmrgow 15, 26, 25
1530
+ vmrgew 16, 31, 30
1531
+ vmrgow 17, 31, 30
1532
+ stxvd2x 42, 0, 5
1533
+ stxvd2x 43, 10, 5
1534
+ stxvd2x 44, 11, 5
1535
+ stxvd2x 45, 12, 5
1536
+ stxvd2x 46, 15, 5
1537
+ stxvd2x 47, 16, 5
1538
+ stxvd2x 48, 17, 5
1539
+ stxvd2x 49, 18, 5
1540
+ addi 5, 5, 128
1541
+ li 10, 16
1542
+ li 11, 32
1543
+ li 12, 48
1544
+ lxvd2x 39, 0, 14
1545
+ lxvd2x 40, 10, 14
1546
+ lxvd2x 41, 11, 14
1547
+ lxvd2x 42, 12, 14
1548
+ lxvd2x 32, 0, 22
1549
+ lxvd2x 33, 10, 22
1550
+ lxvd2x 38, 11, 22
1551
+ lxvd2x 43, 12, 22
1552
+ addi 14, 14, 64
1553
+ addi 22, 22, 64
1554
+ lxvd2x 57, 0, 5
1555
+ lxvd2x 58, 10, 5
1556
+ vmrgew 13, 25, 26
1557
+ vmrgow 12, 25, 26
1558
+ lxvd2x 57, 11, 5
1559
+ lxvd2x 58, 12, 5
1560
+ vmrgew 18, 25, 26
1561
+ vmrgow 17, 25, 26
1562
+ lxvd2x 57, 15, 5
1563
+ lxvd2x 58, 16, 5
1564
+ vmrgew 23, 25, 26
1565
+ vmrgow 22, 25, 26
1566
+ lxvd2x 57, 17, 5
1567
+ lxvd2x 58, 18, 5
1568
+ vmrgew 28, 25, 26
1569
+ vmrgow 27, 25, 26
1570
+ vmhraddshs 15, 13, 0, 3
1571
+ vmhraddshs 20, 18, 1, 3
1572
+ vmhraddshs 25, 23, 6, 3
1573
+ vmhraddshs 30, 28, 11, 3
1574
+ vmladduhm 13, 13, 7, 3
1575
+ vmladduhm 18, 18, 8, 3
1576
+ vmladduhm 23, 23, 9, 3
1577
+ vmladduhm 28, 28, 10, 3
1578
+ vmladduhm 13, 15, 5, 13
1579
+ vmladduhm 18, 20, 5, 18
1580
+ vmladduhm 23, 25, 5, 23
1581
+ vmladduhm 28, 30, 5, 28
1582
+ vsubuhm 16, 12, 13
1583
+ vadduhm 15, 13, 12
1584
+ vsubuhm 21, 17, 18
1585
+ vadduhm 20, 18, 17
1586
+ vsubuhm 26, 22, 23
1587
+ vadduhm 25, 23, 22
1588
+ vsubuhm 31, 27, 28
1589
+ vadduhm 30, 28, 27
1590
+ vmrgew 10, 16, 15
1591
+ vmrgow 11, 16, 15
1592
+ vmrgew 12, 21, 20
1593
+ vmrgow 13, 21, 20
1594
+ vmrgew 14, 26, 25
1595
+ vmrgow 15, 26, 25
1596
+ vmrgew 16, 31, 30
1597
+ vmrgow 17, 31, 30
1598
+ stxvd2x 42, 0, 5
1599
+ stxvd2x 43, 10, 5
1600
+ stxvd2x 44, 11, 5
1601
+ stxvd2x 45, 12, 5
1602
+ stxvd2x 46, 15, 5
1603
+ stxvd2x 47, 16, 5
1604
+ stxvd2x 48, 17, 5
1605
+ stxvd2x 49, 18, 5
1606
+ addi 5, 5, 128
1607
+ li 10, 128
1608
+ li 11, 144
1609
+ li 12, 160
1610
+ li 14, 176
1611
+ li 15, 192
1612
+ li 16, 208
1613
+ lxvd2x 52, 10, 1
1614
+ lxvd2x 53, 11, 1
1615
+ lxvd2x 54, 12, 1
1616
+ lxvd2x 55, 14, 1
1617
+ lxvd2x 56, 15, 1
1618
+ lxvd2x 57, 16, 1
1619
+ li 10, 224
1620
+ li 11, 240
1621
+ li 12, 256
1622
+ li 14, 272
1623
+ li 15, 288
1624
+ li 16, 304
1625
+ lxvd2x 58, 10, 1
1626
+ lxvd2x 59, 11, 1
1627
+ lxvd2x 60, 12, 1
1628
+ lxvd2x 61, 14, 1
1629
+ lxvd2x 62, 15, 1
1630
+ lxvd2x 63, 16, 1
1631
+ ld 14, 56(1)
1632
+ ld 15, 64(1)
1633
+ ld 16, 72(1)
1634
+ ld 17, 80(1)
1635
+ ld 18, 88(1)
1636
+ ld 19, 96(1)
1637
+ ld 20, 104(1)
1638
+ ld 21, 112(1)
1639
+ ld 22, 120(1)
1640
+ mtlr 0
1641
+ addi 1, 1, 352
1642
+ blr
1643
+
1644
+ MLK_ASM_FN_SIZE(ntt_ppc_asm)
1645
+
1646
+ #endif /* MLK_ARITH_BACKEND_PPC64LE_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \
1647
+ && __POWER8_VECTOR__ */
1648
+
1649
+ #if defined(__ELF__)
1650
+ .section .note.GNU-stack,"",%progbits
1651
+ #endif