react-native-vision-camera-spoof-detector 1.0.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 (857) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/README.md +220 -0
  3. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  4. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  5. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  6. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/cache-v2-701700ba4bb2215c1ccd.json +1599 -0
  7. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-9189be15e8b04df8f258.json +857 -0
  8. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-073369af1c5eb367d160.json +185 -0
  9. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-d0094a50bb2071803777.json +14 -0
  10. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/directory-libyuv-Debug-68bb497e958fc902f93a.json +100 -0
  11. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/index-2025-11-18T09-41-06-0926.json +92 -0
  12. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-cpuid-Debug-5af24d55c9649a4c3a3f.json +136 -0
  13. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-faceantispoof-Debug-aa45fddb87a8ac2074bb.json +181 -0
  14. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-fastyuv-Debug-4dd5b049ce28a8e070d1.json +182 -0
  15. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-yuv-Debug-b8d5ee3e10a1f31a29fe.json +433 -0
  16. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-yuv_common_objects-Debug-ae517204d04beeb2df23.json +522 -0
  17. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-yuv_neon64-Debug-2ab157e6b75bcb340b03.json +137 -0
  18. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-yuv_shared-Debug-2aecda61b70017f775b5.json +455 -0
  19. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-yuv_sme-Debug-73d1e6cc8ef043b4e243.json +126 -0
  20. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-yuv_sve-Debug-9d95a17080a7480f85a6.json +104 -0
  21. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-yuvconstants-Debug-31b06c1ed2b225cf2443.json +136 -0
  22. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-yuvconvert-Debug-2231dac0a591237abb04.json +157 -0
  23. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.ninja_deps +0 -0
  24. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.ninja_log +63 -0
  25. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeCache.txt +465 -0
  26. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +72 -0
  27. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +83 -0
  28. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  29. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  30. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +15 -0
  31. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +803 -0
  32. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  33. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  34. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  35. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/CMakeOutput.log +276 -0
  36. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/TargetDirectories.txt +27 -0
  37. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/cmake.check_cache +1 -0
  38. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/faceantispoof.dir/48ddb531beec5c42d2f7a5f3aa0b5968/ReactCommon/jsi/jsi/jsi.cpp.o +0 -0
  39. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/faceantispoof.dir/FaceAntiSpoofJSI.cpp.o +0 -0
  40. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/fastyuv.dir/FastYuvJni.cpp.o +0 -0
  41. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/fastyuv.dir/fast_yuv.cpp.o +0 -0
  42. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/rules.ninja +198 -0
  43. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CPackConfig.cmake +71 -0
  44. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CPackSourceConfig.cmake +79 -0
  45. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/additional_project_files.txt +48 -0
  46. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/android_gradle_build.json +106 -0
  47. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/android_gradle_build_mini.json +87 -0
  48. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/build.ninja +1071 -0
  49. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/build_file_index.txt +3 -0
  50. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/cmake_install.cmake +59 -0
  51. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/compile_commands.json +277 -0
  52. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/compile_commands.json.bin +0 -0
  53. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/configure_fingerprint.bin +29 -0
  54. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/cpuid.dir/util/cpuid.c.o +0 -0
  55. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare.cc.o +0 -0
  56. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_common.cc.o +0 -0
  57. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_gcc.cc.o +0 -0
  58. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_win.cc.o +0 -0
  59. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert.cc.o +0 -0
  60. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_argb.cc.o +0 -0
  61. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_from.cc.o +0 -0
  62. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_from_argb.cc.o +0 -0
  63. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_jpeg.cc.o +0 -0
  64. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_to_argb.cc.o +0 -0
  65. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_to_i420.cc.o +0 -0
  66. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/cpu_id.cc.o +0 -0
  67. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/mjpeg_decoder.cc.o +0 -0
  68. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/mjpeg_validate.cc.o +0 -0
  69. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/planar_functions.cc.o +0 -0
  70. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate.cc.o +0 -0
  71. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_any.cc.o +0 -0
  72. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_argb.cc.o +0 -0
  73. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_common.cc.o +0 -0
  74. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_gcc.cc.o +0 -0
  75. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_lsx.cc.o +0 -0
  76. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_win.cc.o +0 -0
  77. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_any.cc.o +0 -0
  78. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_common.cc.o +0 -0
  79. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_gcc.cc.o +0 -0
  80. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_lasx.cc.o +0 -0
  81. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_lsx.cc.o +0 -0
  82. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_rvv.cc.o +0 -0
  83. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_win.cc.o +0 -0
  84. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale.cc.o +0 -0
  85. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_any.cc.o +0 -0
  86. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_argb.cc.o +0 -0
  87. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_common.cc.o +0 -0
  88. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_gcc.cc.o +0 -0
  89. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_lsx.cc.o +0 -0
  90. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_rgb.cc.o +0 -0
  91. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_rvv.cc.o +0 -0
  92. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_uv.cc.o +0 -0
  93. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_win.cc.o +0 -0
  94. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/video_common.cc.o +0 -0
  95. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_neon64.dir/source/compare_neon64.cc.o +0 -0
  96. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_neon64.dir/source/rotate_neon64.cc.o +0 -0
  97. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_neon64.dir/source/row_neon64.cc.o +0 -0
  98. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_neon64.dir/source/scale_neon64.cc.o +0 -0
  99. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_sme.dir/source/rotate_sme.cc.o +0 -0
  100. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_sme.dir/source/row_sme.cc.o +0 -0
  101. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_sme.dir/source/scale_sme.cc.o +0 -0
  102. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_sve.dir/source/row_sve.cc.o +0 -0
  103. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuvconstants.dir/util/yuvconstants.c.o +0 -0
  104. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuvconvert.dir/util/yuvconvert.cc.o +0 -0
  105. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/cmake_install.cmake +87 -0
  106. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/libyuv.a +0 -0
  107. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/metadata_generation_command.txt +19 -0
  108. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/prefab_config.json +4 -0
  109. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/symbol_folder_index.txt +1 -0
  110. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  111. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  112. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  113. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/cache-v2-3c91c5cee78e3e904960.json +1587 -0
  114. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-7cc7148edcc0267ae184.json +857 -0
  115. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-3db6484795577cf354b3.json +167 -0
  116. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/directory-.-Debug-d0094a50bb2071803777.json +14 -0
  117. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/directory-libyuv-Debug-063ed54195fe25617bc7.json +100 -0
  118. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/index-2025-11-18T09-41-44-0186.json +92 -0
  119. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/target-cpuid-Debug-a3f2884614434f8f188a.json +150 -0
  120. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/target-faceantispoof-Debug-c905db8d2a36c2f49235.json +181 -0
  121. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/target-fastyuv-Debug-e08fb9fb89a090bfee1a.json +190 -0
  122. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/target-yuv-Debug-4b1ffa979fbf6ac68418.json +406 -0
  123. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/target-yuv_common_objects-Debug-245e248f528e11e2d34d.json +536 -0
  124. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/target-yuv_neon-Debug-2ea21009709c7febf67d.json +151 -0
  125. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/target-yuv_shared-Debug-e387ee44aace33b18140.json +428 -0
  126. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/target-yuvconstants-Debug-14fbb0c58620d35bb155.json +150 -0
  127. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/target-yuvconvert-Debug-c40ecea0358b0e737802.json +171 -0
  128. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.ninja_deps +0 -0
  129. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.ninja_log +59 -0
  130. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeCache.txt +463 -0
  131. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +72 -0
  132. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +83 -0
  133. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  134. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  135. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +15 -0
  136. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +803 -0
  137. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  138. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  139. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  140. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/CMakeOutput.log +268 -0
  141. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/TargetDirectories.txt +25 -0
  142. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/cmake.check_cache +1 -0
  143. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/faceantispoof.dir/48ddb531beec5c42d2f7a5f3aa0b5968/ReactCommon/jsi/jsi/jsi.cpp.o +0 -0
  144. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/faceantispoof.dir/FaceAntiSpoofJSI.cpp.o +0 -0
  145. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/fastyuv.dir/FastYuvJni.cpp.o +0 -0
  146. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/fastyuv.dir/fast_yuv.cpp.o +0 -0
  147. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/rules.ninja +178 -0
  148. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CPackConfig.cmake +71 -0
  149. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CPackSourceConfig.cmake +79 -0
  150. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/additional_project_files.txt +44 -0
  151. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/android_gradle_build.json +96 -0
  152. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/android_gradle_build_mini.json +77 -0
  153. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/build.ninja +1046 -0
  154. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/build_file_index.txt +3 -0
  155. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/cmake_install.cmake +59 -0
  156. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/compile_commands.json +257 -0
  157. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/compile_commands.json.bin +0 -0
  158. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/configure_fingerprint.bin +29 -0
  159. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/cpuid.dir/util/cpuid.c.o +0 -0
  160. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare.cc.o +0 -0
  161. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_common.cc.o +0 -0
  162. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_gcc.cc.o +0 -0
  163. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_win.cc.o +0 -0
  164. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert.cc.o +0 -0
  165. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_argb.cc.o +0 -0
  166. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_from.cc.o +0 -0
  167. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_from_argb.cc.o +0 -0
  168. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_jpeg.cc.o +0 -0
  169. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_to_argb.cc.o +0 -0
  170. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_to_i420.cc.o +0 -0
  171. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/cpu_id.cc.o +0 -0
  172. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/mjpeg_decoder.cc.o +0 -0
  173. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/mjpeg_validate.cc.o +0 -0
  174. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/planar_functions.cc.o +0 -0
  175. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate.cc.o +0 -0
  176. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_any.cc.o +0 -0
  177. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_argb.cc.o +0 -0
  178. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_common.cc.o +0 -0
  179. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_gcc.cc.o +0 -0
  180. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_lsx.cc.o +0 -0
  181. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_win.cc.o +0 -0
  182. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_any.cc.o +0 -0
  183. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_common.cc.o +0 -0
  184. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_gcc.cc.o +0 -0
  185. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_lasx.cc.o +0 -0
  186. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_lsx.cc.o +0 -0
  187. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_rvv.cc.o +0 -0
  188. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_win.cc.o +0 -0
  189. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale.cc.o +0 -0
  190. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_any.cc.o +0 -0
  191. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_argb.cc.o +0 -0
  192. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_common.cc.o +0 -0
  193. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_gcc.cc.o +0 -0
  194. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_lsx.cc.o +0 -0
  195. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_rgb.cc.o +0 -0
  196. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_rvv.cc.o +0 -0
  197. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_uv.cc.o +0 -0
  198. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_win.cc.o +0 -0
  199. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/video_common.cc.o +0 -0
  200. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_neon.dir/source/compare_neon.cc.o +0 -0
  201. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_neon.dir/source/rotate_neon.cc.o +0 -0
  202. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_neon.dir/source/row_neon.cc.o +0 -0
  203. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_neon.dir/source/scale_neon.cc.o +0 -0
  204. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuvconstants.dir/util/yuvconstants.c.o +0 -0
  205. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuvconvert.dir/util/yuvconvert.cc.o +0 -0
  206. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/cmake_install.cmake +87 -0
  207. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/libyuv.a +0 -0
  208. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/metadata_generation_command.txt +19 -0
  209. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/prefab_config.json +4 -0
  210. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/symbol_folder_index.txt +1 -0
  211. package/android/.cxx/Debug/2a3w6u3n/hash_key.txt +26 -0
  212. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  213. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  214. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  215. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/cache-v2-2fe46b6519c8341b1982.json +1587 -0
  216. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/cmakeFiles-v1-a03e763d0c6effec9f6f.json +857 -0
  217. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/codemodel-v2-2412bbfc0c74a0dc613a.json +158 -0
  218. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/directory-.-Debug-d0094a50bb2071803777.json +14 -0
  219. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/directory-libyuv-Debug-7cf182a5e476bc9b5f34.json +100 -0
  220. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/index-2025-11-18T09-41-52-0585.json +92 -0
  221. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/target-cpuid-Debug-931d089bced0b77c5070.json +136 -0
  222. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/target-faceantispoof-Debug-7b58f88faeacc46f961d.json +181 -0
  223. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/target-fastyuv-Debug-9283b76b8a94ba273122.json +157 -0
  224. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/target-yuv-Debug-c270d4a92a15ef45f650.json +368 -0
  225. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/target-yuv_common_objects-Debug-ae517204d04beeb2df23.json +522 -0
  226. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/target-yuv_shared-Debug-42c6196dd1672984dcd7.json +390 -0
  227. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/target-yuvconstants-Debug-7e8432d4753ee3bd592d.json +136 -0
  228. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/target-yuvconvert-Debug-2cc934aa605d443ac9a1.json +157 -0
  229. package/android/.cxx/Debug/2a3w6u3n/x86/.ninja_deps +0 -0
  230. package/android/.cxx/Debug/2a3w6u3n/x86/.ninja_log +55 -0
  231. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeCache.txt +463 -0
  232. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +72 -0
  233. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +83 -0
  234. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  235. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  236. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +15 -0
  237. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +803 -0
  238. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  239. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  240. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  241. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/CMakeOutput.log +258 -0
  242. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/TargetDirectories.txt +24 -0
  243. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/cmake.check_cache +1 -0
  244. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/faceantispoof.dir/FaceAntiSpoofJSI.cpp.o +0 -0
  245. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/faceantispoof.dir/c9fdc8b0d027394fa06b64ba7ac7706f/react-native/ReactCommon/jsi/jsi/jsi.cpp.o +0 -0
  246. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/fastyuv.dir/FastYuvJni.cpp.o +0 -0
  247. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/fastyuv.dir/fast_yuv.cpp.o +0 -0
  248. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/rules.ninja +168 -0
  249. package/android/.cxx/Debug/2a3w6u3n/x86/CPackConfig.cmake +71 -0
  250. package/android/.cxx/Debug/2a3w6u3n/x86/CPackSourceConfig.cmake +79 -0
  251. package/android/.cxx/Debug/2a3w6u3n/x86/additional_project_files.txt +40 -0
  252. package/android/.cxx/Debug/2a3w6u3n/x86/android_gradle_build.json +91 -0
  253. package/android/.cxx/Debug/2a3w6u3n/x86/android_gradle_build_mini.json +72 -0
  254. package/android/.cxx/Debug/2a3w6u3n/x86/build.ninja +945 -0
  255. package/android/.cxx/Debug/2a3w6u3n/x86/build_file_index.txt +3 -0
  256. package/android/.cxx/Debug/2a3w6u3n/x86/cmake_install.cmake +59 -0
  257. package/android/.cxx/Debug/2a3w6u3n/x86/compile_commands.json +237 -0
  258. package/android/.cxx/Debug/2a3w6u3n/x86/compile_commands.json.bin +0 -0
  259. package/android/.cxx/Debug/2a3w6u3n/x86/configure_fingerprint.bin +29 -0
  260. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/cpuid.dir/util/cpuid.c.o +0 -0
  261. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare.cc.o +0 -0
  262. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_common.cc.o +0 -0
  263. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_gcc.cc.o +0 -0
  264. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_win.cc.o +0 -0
  265. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert.cc.o +0 -0
  266. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_argb.cc.o +0 -0
  267. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_from.cc.o +0 -0
  268. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_from_argb.cc.o +0 -0
  269. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_jpeg.cc.o +0 -0
  270. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_to_argb.cc.o +0 -0
  271. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_to_i420.cc.o +0 -0
  272. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/cpu_id.cc.o +0 -0
  273. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/mjpeg_decoder.cc.o +0 -0
  274. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/mjpeg_validate.cc.o +0 -0
  275. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/planar_functions.cc.o +0 -0
  276. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate.cc.o +0 -0
  277. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_any.cc.o +0 -0
  278. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_argb.cc.o +0 -0
  279. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_common.cc.o +0 -0
  280. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_gcc.cc.o +0 -0
  281. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_lsx.cc.o +0 -0
  282. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_win.cc.o +0 -0
  283. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_any.cc.o +0 -0
  284. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_common.cc.o +0 -0
  285. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_gcc.cc.o +0 -0
  286. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_lasx.cc.o +0 -0
  287. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_lsx.cc.o +0 -0
  288. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_rvv.cc.o +0 -0
  289. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_win.cc.o +0 -0
  290. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale.cc.o +0 -0
  291. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_any.cc.o +0 -0
  292. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_argb.cc.o +0 -0
  293. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_common.cc.o +0 -0
  294. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_gcc.cc.o +0 -0
  295. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_lsx.cc.o +0 -0
  296. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_rgb.cc.o +0 -0
  297. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_rvv.cc.o +0 -0
  298. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_uv.cc.o +0 -0
  299. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_win.cc.o +0 -0
  300. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/video_common.cc.o +0 -0
  301. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuvconstants.dir/util/yuvconstants.c.o +0 -0
  302. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuvconvert.dir/util/yuvconvert.cc.o +0 -0
  303. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/cmake_install.cmake +87 -0
  304. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/libyuv.a +0 -0
  305. package/android/.cxx/Debug/2a3w6u3n/x86/metadata_generation_command.txt +19 -0
  306. package/android/.cxx/Debug/2a3w6u3n/x86/prefab_config.json +4 -0
  307. package/android/.cxx/Debug/2a3w6u3n/x86/symbol_folder_index.txt +1 -0
  308. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  309. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  310. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  311. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/cache-v2-5ca7fb88a80849964189.json +1587 -0
  312. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-9871675aa6610f6180ca.json +857 -0
  313. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/codemodel-v2-deb41c72c38c1ff57431.json +158 -0
  314. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/directory-.-Debug-d0094a50bb2071803777.json +14 -0
  315. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/directory-libyuv-Debug-edf355e979425c71897d.json +100 -0
  316. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/index-2025-11-18T09-42-00-0374.json +92 -0
  317. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/target-cpuid-Debug-264b6f675c69e42e8113.json +136 -0
  318. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/target-faceantispoof-Debug-c95714fd9c4cd04d4222.json +181 -0
  319. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/target-fastyuv-Debug-80c6b1b5d8e35770dde3.json +157 -0
  320. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/target-yuv-Debug-6d3d5c5dcc6bffc18ce6.json +368 -0
  321. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/target-yuv_common_objects-Debug-ae517204d04beeb2df23.json +522 -0
  322. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/target-yuv_shared-Debug-6e364a075e5b9b47274e.json +390 -0
  323. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/target-yuvconstants-Debug-f6a29384c5629faf75f4.json +136 -0
  324. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/target-yuvconvert-Debug-dca5f1cf9af89281fc95.json +157 -0
  325. package/android/.cxx/Debug/2a3w6u3n/x86_64/.ninja_deps +0 -0
  326. package/android/.cxx/Debug/2a3w6u3n/x86_64/.ninja_log +55 -0
  327. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeCache.txt +463 -0
  328. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +72 -0
  329. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +83 -0
  330. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  331. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  332. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +15 -0
  333. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +803 -0
  334. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  335. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  336. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  337. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/CMakeOutput.log +258 -0
  338. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/TargetDirectories.txt +24 -0
  339. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/cmake.check_cache +1 -0
  340. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/faceantispoof.dir/FaceAntiSpoofJSI.cpp.o +0 -0
  341. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/faceantispoof.dir/c9fdc8b0d027394fa06b64ba7ac7706f/react-native/ReactCommon/jsi/jsi/jsi.cpp.o +0 -0
  342. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/fastyuv.dir/FastYuvJni.cpp.o +0 -0
  343. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/fastyuv.dir/fast_yuv.cpp.o +0 -0
  344. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/rules.ninja +168 -0
  345. package/android/.cxx/Debug/2a3w6u3n/x86_64/CPackConfig.cmake +71 -0
  346. package/android/.cxx/Debug/2a3w6u3n/x86_64/CPackSourceConfig.cmake +79 -0
  347. package/android/.cxx/Debug/2a3w6u3n/x86_64/additional_project_files.txt +40 -0
  348. package/android/.cxx/Debug/2a3w6u3n/x86_64/android_gradle_build.json +91 -0
  349. package/android/.cxx/Debug/2a3w6u3n/x86_64/android_gradle_build_mini.json +72 -0
  350. package/android/.cxx/Debug/2a3w6u3n/x86_64/build.ninja +945 -0
  351. package/android/.cxx/Debug/2a3w6u3n/x86_64/build_file_index.txt +3 -0
  352. package/android/.cxx/Debug/2a3w6u3n/x86_64/cmake_install.cmake +59 -0
  353. package/android/.cxx/Debug/2a3w6u3n/x86_64/compile_commands.json +237 -0
  354. package/android/.cxx/Debug/2a3w6u3n/x86_64/compile_commands.json.bin +0 -0
  355. package/android/.cxx/Debug/2a3w6u3n/x86_64/configure_fingerprint.bin +29 -0
  356. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/cpuid.dir/util/cpuid.c.o +0 -0
  357. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare.cc.o +0 -0
  358. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_common.cc.o +0 -0
  359. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_gcc.cc.o +0 -0
  360. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_win.cc.o +0 -0
  361. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert.cc.o +0 -0
  362. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_argb.cc.o +0 -0
  363. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_from.cc.o +0 -0
  364. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_from_argb.cc.o +0 -0
  365. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_jpeg.cc.o +0 -0
  366. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_to_argb.cc.o +0 -0
  367. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_to_i420.cc.o +0 -0
  368. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/cpu_id.cc.o +0 -0
  369. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/mjpeg_decoder.cc.o +0 -0
  370. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/mjpeg_validate.cc.o +0 -0
  371. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/planar_functions.cc.o +0 -0
  372. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate.cc.o +0 -0
  373. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_any.cc.o +0 -0
  374. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_argb.cc.o +0 -0
  375. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_common.cc.o +0 -0
  376. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_gcc.cc.o +0 -0
  377. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_lsx.cc.o +0 -0
  378. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_win.cc.o +0 -0
  379. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_any.cc.o +0 -0
  380. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_common.cc.o +0 -0
  381. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_gcc.cc.o +0 -0
  382. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_lasx.cc.o +0 -0
  383. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_lsx.cc.o +0 -0
  384. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_rvv.cc.o +0 -0
  385. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_win.cc.o +0 -0
  386. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale.cc.o +0 -0
  387. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_any.cc.o +0 -0
  388. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_argb.cc.o +0 -0
  389. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_common.cc.o +0 -0
  390. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_gcc.cc.o +0 -0
  391. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_lsx.cc.o +0 -0
  392. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_rgb.cc.o +0 -0
  393. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_rvv.cc.o +0 -0
  394. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_uv.cc.o +0 -0
  395. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_win.cc.o +0 -0
  396. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/video_common.cc.o +0 -0
  397. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuvconstants.dir/util/yuvconstants.c.o +0 -0
  398. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuvconvert.dir/util/yuvconvert.cc.o +0 -0
  399. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/cmake_install.cmake +87 -0
  400. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/libyuv.a +0 -0
  401. package/android/.cxx/Debug/2a3w6u3n/x86_64/metadata_generation_command.txt +19 -0
  402. package/android/.cxx/Debug/2a3w6u3n/x86_64/prefab_config.json +4 -0
  403. package/android/.cxx/Debug/2a3w6u3n/x86_64/symbol_folder_index.txt +1 -0
  404. package/android/.cxx/tools/debug/arm64-v8a/compile_commands.json +277 -0
  405. package/android/.cxx/tools/debug/armeabi-v7a/compile_commands.json +257 -0
  406. package/android/.cxx/tools/debug/x86/compile_commands.json +237 -0
  407. package/android/.cxx/tools/debug/x86_64/compile_commands.json +237 -0
  408. package/android/build/.transforms/477a48f41cbd60a6044ae2b6659edb2d/results.bin +1 -0
  409. package/android/build/.transforms/477a48f41cbd60a6044ae2b6659edb2d/transformed/classes/classes_dex/classes.dex +0 -0
  410. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/results.bin +1 -0
  411. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/AcceleratorConfig.dex +0 -0
  412. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/AntiSpoofingResult.dex +0 -0
  413. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/BuildConfig.dex +0 -0
  414. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/FaceAntiSpoofFrameProcessor.dex +0 -0
  415. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/FaceAntiSpoofModule$Companion.dex +0 -0
  416. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/FaceAntiSpoofModule.dex +0 -0
  417. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/FaceAntiSpoofPackage.dex +0 -0
  418. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/FaceAntiSpoofingAdvanced$Companion.dex +0 -0
  419. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/FaceAntiSpoofingAdvanced.dex +0 -0
  420. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/FastYuv.dex +0 -0
  421. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/YuvToFloatArrayConverter.dex +0 -0
  422. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/YuvToRgbConverter.dex +0 -0
  423. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  424. package/android/build/generated/source/buildConfig/debug/com/faceantispoof/BuildConfig.java +14 -0
  425. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +13 -0
  426. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
  427. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
  428. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
  429. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  430. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  431. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +1 -0
  432. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/arm64-v8a/build_command_targets.bat +10 -0
  433. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/arm64-v8a/build_model.json +199 -0
  434. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/arm64-v8a/build_stderr_targets.txt +0 -0
  435. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/arm64-v8a/build_stdout_targets.txt +63 -0
  436. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/arm64-v8a/configure_command.bat +19 -0
  437. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/arm64-v8a/configure_stderr.txt +0 -0
  438. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/arm64-v8a/configure_stdout.txt +21 -0
  439. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/arm64-v8a/generate_cxx_metadata_8656_timing.txt +9 -0
  440. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/arm64-v8a/metadata_generation_record.json +158 -0
  441. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/armeabi-v7a/build_command_targets.bat +10 -0
  442. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/armeabi-v7a/build_model.json +199 -0
  443. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/armeabi-v7a/build_stderr_targets.txt +0 -0
  444. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/armeabi-v7a/build_stdout_targets.txt +59 -0
  445. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/armeabi-v7a/configure_command.bat +19 -0
  446. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/armeabi-v7a/configure_stderr.txt +1 -0
  447. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/armeabi-v7a/configure_stdout.txt +19 -0
  448. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/armeabi-v7a/generate_cxx_metadata_8659_timing.txt +9 -0
  449. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/armeabi-v7a/metadata_generation_record.json +158 -0
  450. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86/build_command_targets.bat +10 -0
  451. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86/build_model.json +199 -0
  452. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86/build_stderr_targets.txt +0 -0
  453. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86/build_stdout_targets.txt +55 -0
  454. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86/configure_command.bat +19 -0
  455. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86/configure_stderr.txt +0 -0
  456. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86/configure_stdout.txt +19 -0
  457. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86/generate_cxx_metadata_8659_timing.txt +9 -0
  458. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86/metadata_generation_record.json +158 -0
  459. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86_64/build_command_targets.bat +10 -0
  460. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86_64/build_model.json +199 -0
  461. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86_64/build_stderr_targets.txt +0 -0
  462. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86_64/build_stdout_targets.txt +55 -0
  463. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86_64/configure_command.bat +19 -0
  464. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86_64/configure_stderr.txt +0 -0
  465. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86_64/configure_stdout.txt +19 -0
  466. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86_64/generate_cxx_metadata_8659_timing.txt +9 -0
  467. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86_64/metadata_generation_record.json +158 -0
  468. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/arm64-v8a/cpuid +0 -0
  469. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/arm64-v8a/libfaceantispoof.so +0 -0
  470. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/arm64-v8a/libfastyuv.so +0 -0
  471. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/arm64-v8a/libyuv.so +0 -0
  472. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/arm64-v8a/yuvconstants +0 -0
  473. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/arm64-v8a/yuvconvert +0 -0
  474. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/armeabi-v7a/cpuid +0 -0
  475. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/armeabi-v7a/libfaceantispoof.so +0 -0
  476. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/armeabi-v7a/libfastyuv.so +0 -0
  477. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/armeabi-v7a/libyuv.so +0 -0
  478. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/armeabi-v7a/yuvconstants +0 -0
  479. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/armeabi-v7a/yuvconvert +0 -0
  480. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86/cpuid +0 -0
  481. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86/libfaceantispoof.so +0 -0
  482. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86/libfastyuv.so +0 -0
  483. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86/libyuv.so +0 -0
  484. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86/yuvconstants +0 -0
  485. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86/yuvconvert +0 -0
  486. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86_64/cpuid +0 -0
  487. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86_64/libfaceantispoof.so +0 -0
  488. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86_64/libfastyuv.so +0 -0
  489. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86_64/libyuv.so +0 -0
  490. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86_64/yuvconstants +0 -0
  491. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86_64/yuvconvert +0 -0
  492. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -0
  493. package/android/build/intermediates/incremental/debug/packageDebugResources/merged.dir/values/values.xml +4 -0
  494. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
  495. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  496. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  497. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
  498. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-vision-camera-face-antispoof-detector_debug.kotlin_module +0 -0
  499. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/faceantispoof/BuildConfig.class +0 -0
  500. package/android/build/intermediates/library_assets/debug/packageDebugAssets/out/FaceAntiSpoofing.tflite +0 -0
  501. package/android/build/intermediates/library_assets/debug/packageDebugAssets/out/spoof_model_scale_2_7.tflite +0 -0
  502. package/android/build/intermediates/library_assets/debug/packageDebugAssets/out/spoof_model_scale_4_0.tflite +0 -0
  503. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/arm64-v8a/libfaceantispoof.so +0 -0
  504. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/arm64-v8a/libfastyuv.so +0 -0
  505. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/arm64-v8a/libyuv.so +0 -0
  506. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/armeabi-v7a/libfaceantispoof.so +0 -0
  507. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/armeabi-v7a/libfastyuv.so +0 -0
  508. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/armeabi-v7a/libyuv.so +0 -0
  509. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86/libfaceantispoof.so +0 -0
  510. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86/libfastyuv.so +0 -0
  511. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86/libyuv.so +0 -0
  512. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86_64/libfaceantispoof.so +0 -0
  513. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86_64/libfastyuv.so +0 -0
  514. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86_64/libyuv.so +0 -0
  515. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +3 -0
  516. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +17 -0
  517. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +13 -0
  518. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/arm64-v8a/libfaceantispoof.so +0 -0
  519. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/arm64-v8a/libfastyuv.so +0 -0
  520. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/arm64-v8a/libyuv.so +0 -0
  521. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/armeabi-v7a/libfaceantispoof.so +0 -0
  522. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/armeabi-v7a/libfastyuv.so +0 -0
  523. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/armeabi-v7a/libyuv.so +0 -0
  524. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86/libfaceantispoof.so +0 -0
  525. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86/libfastyuv.so +0 -0
  526. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86/libyuv.so +0 -0
  527. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86_64/libfaceantispoof.so +0 -0
  528. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86_64/libfastyuv.so +0 -0
  529. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86_64/libyuv.so +0 -0
  530. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
  531. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
  532. package/android/build/intermediates/packaged_res/debug/packageDebugResources/values/values.xml +4 -0
  533. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/react-native-vision-camera-face-antispoof-detector_debug.kotlin_module +0 -0
  534. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/AcceleratorConfig.class +0 -0
  535. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/AntiSpoofingResult.class +0 -0
  536. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/BuildConfig.class +0 -0
  537. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/FaceAntiSpoofFrameProcessor.class +0 -0
  538. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/FaceAntiSpoofModule$Companion.class +0 -0
  539. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/FaceAntiSpoofModule.class +0 -0
  540. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/FaceAntiSpoofPackage.class +0 -0
  541. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/FaceAntiSpoofingAdvanced$Companion.class +0 -0
  542. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/FaceAntiSpoofingAdvanced.class +0 -0
  543. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/FastYuv.class +0 -0
  544. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/YuvToFloatArrayConverter.class +0 -0
  545. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/YuvToRgbConverter.class +0 -0
  546. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  547. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +2 -0
  548. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  549. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  550. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  551. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  552. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  553. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  554. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  555. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  556. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  557. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  558. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  559. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  560. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  561. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  562. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  563. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  564. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  565. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  566. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  567. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  568. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  569. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  570. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  571. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  572. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  573. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  574. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  575. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
  576. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  577. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  578. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  579. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  580. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  581. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  582. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  583. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  584. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  585. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  586. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  587. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  588. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  589. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  590. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  591. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  592. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  593. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  594. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  595. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  596. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  597. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  598. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  599. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  600. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  601. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  602. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  603. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  604. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  605. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  606. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  607. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  608. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  609. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  610. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  611. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
  612. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  613. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  614. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  615. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  616. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  617. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  618. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  619. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  620. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  621. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  622. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  623. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  624. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  625. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  626. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  627. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  628. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  629. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  630. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  631. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  632. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  633. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  634. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  635. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  636. package/android/build/outputs/logs/manifest-merger-debug-report.txt +25 -0
  637. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  638. package/android/build/tmp/kotlin-classes/debug/META-INF/react-native-vision-camera-face-antispoof-detector_debug.kotlin_module +0 -0
  639. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/AcceleratorConfig.class +0 -0
  640. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/AntiSpoofingResult.class +0 -0
  641. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/FaceAntiSpoofFrameProcessor.class +0 -0
  642. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/FaceAntiSpoofModule$Companion.class +0 -0
  643. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/FaceAntiSpoofModule.class +0 -0
  644. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/FaceAntiSpoofPackage.class +0 -0
  645. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/FaceAntiSpoofingAdvanced$Companion.class +0 -0
  646. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/FaceAntiSpoofingAdvanced.class +0 -0
  647. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/FastYuv.class +0 -0
  648. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/YuvToFloatArrayConverter.class +0 -0
  649. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/YuvToRgbConverter.class +0 -0
  650. package/android/build.gradle +128 -0
  651. package/android/src/main/AndroidManifest.xml +9 -0
  652. package/android/src/main/assets/FaceAntiSpoofing.tflite +0 -0
  653. package/android/src/main/assets/spoof_model_scale_2_7.tflite +0 -0
  654. package/android/src/main/assets/spoof_model_scale_4_0.tflite +0 -0
  655. package/android/src/main/cpp/CMakeLists.txt +94 -0
  656. package/android/src/main/cpp/FaceAntiSpoofJSI.cpp +68 -0
  657. package/android/src/main/cpp/FastYuvJni.cpp +111 -0
  658. package/android/src/main/cpp/fast_yuv.cpp +332 -0
  659. package/android/src/main/cpp/fast_yuv.h +23 -0
  660. package/android/src/main/cpp/libyuv/.clang-format +6 -0
  661. package/android/src/main/cpp/libyuv/.gn +40 -0
  662. package/android/src/main/cpp/libyuv/.vpython3 +410 -0
  663. package/android/src/main/cpp/libyuv/AUTHORS +7 -0
  664. package/android/src/main/cpp/libyuv/Android.bp +202 -0
  665. package/android/src/main/cpp/libyuv/Android.mk +106 -0
  666. package/android/src/main/cpp/libyuv/BUILD.gn +490 -0
  667. package/android/src/main/cpp/libyuv/CM_linux_packages.cmake +70 -0
  668. package/android/src/main/cpp/libyuv/CMakeLists.txt +252 -0
  669. package/android/src/main/cpp/libyuv/DEPS +935 -0
  670. package/android/src/main/cpp/libyuv/DIR_METADATA +3 -0
  671. package/android/src/main/cpp/libyuv/LICENSE +29 -0
  672. package/android/src/main/cpp/libyuv/OWNERS +11 -0
  673. package/android/src/main/cpp/libyuv/PATENTS +24 -0
  674. package/android/src/main/cpp/libyuv/PRESUBMIT.py +65 -0
  675. package/android/src/main/cpp/libyuv/README.chromium +11 -0
  676. package/android/src/main/cpp/libyuv/README.md +19 -0
  677. package/android/src/main/cpp/libyuv/build_overrides/build.gni +60 -0
  678. package/android/src/main/cpp/libyuv/build_overrides/gtest.gni +19 -0
  679. package/android/src/main/cpp/libyuv/build_overrides/partition_alloc.gni +17 -0
  680. package/android/src/main/cpp/libyuv/codereview.settings +5 -0
  681. package/android/src/main/cpp/libyuv/docs/deprecated_builds.md +409 -0
  682. package/android/src/main/cpp/libyuv/docs/environment_variables.md +64 -0
  683. package/android/src/main/cpp/libyuv/docs/feature_detection.md +108 -0
  684. package/android/src/main/cpp/libyuv/docs/filtering.md +196 -0
  685. package/android/src/main/cpp/libyuv/docs/formats.md +208 -0
  686. package/android/src/main/cpp/libyuv/docs/getting_started.md +296 -0
  687. package/android/src/main/cpp/libyuv/docs/rotation.md +107 -0
  688. package/android/src/main/cpp/libyuv/download_vs_toolchain.py +29 -0
  689. package/android/src/main/cpp/libyuv/include/libyuv/basic_types.h +68 -0
  690. package/android/src/main/cpp/libyuv/include/libyuv/compare.h +111 -0
  691. package/android/src/main/cpp/libyuv/include/libyuv/compare_row.h +112 -0
  692. package/android/src/main/cpp/libyuv/include/libyuv/convert.h +1117 -0
  693. package/android/src/main/cpp/libyuv/include/libyuv/convert_argb.h +2335 -0
  694. package/android/src/main/cpp/libyuv/include/libyuv/convert_from.h +203 -0
  695. package/android/src/main/cpp/libyuv/include/libyuv/convert_from_argb.h +394 -0
  696. package/android/src/main/cpp/libyuv/include/libyuv/cpu_id.h +147 -0
  697. package/android/src/main/cpp/libyuv/include/libyuv/cpu_support.h +99 -0
  698. package/android/src/main/cpp/libyuv/include/libyuv/loongson_intrinsics.h +1949 -0
  699. package/android/src/main/cpp/libyuv/include/libyuv/mjpeg_decoder.h +195 -0
  700. package/android/src/main/cpp/libyuv/include/libyuv/planar_functions.h +1131 -0
  701. package/android/src/main/cpp/libyuv/include/libyuv/rotate.h +296 -0
  702. package/android/src/main/cpp/libyuv/include/libyuv/rotate_argb.h +37 -0
  703. package/android/src/main/cpp/libyuv/include/libyuv/rotate_row.h +265 -0
  704. package/android/src/main/cpp/libyuv/include/libyuv/row.h +6738 -0
  705. package/android/src/main/cpp/libyuv/include/libyuv/row_sve.h +2154 -0
  706. package/android/src/main/cpp/libyuv/include/libyuv/scale.h +336 -0
  707. package/android/src/main/cpp/libyuv/include/libyuv/scale_argb.h +76 -0
  708. package/android/src/main/cpp/libyuv/include/libyuv/scale_rgb.h +42 -0
  709. package/android/src/main/cpp/libyuv/include/libyuv/scale_row.h +1726 -0
  710. package/android/src/main/cpp/libyuv/include/libyuv/scale_uv.h +51 -0
  711. package/android/src/main/cpp/libyuv/include/libyuv/version.h +16 -0
  712. package/android/src/main/cpp/libyuv/include/libyuv/video_common.h +222 -0
  713. package/android/src/main/cpp/libyuv/include/libyuv.h +33 -0
  714. package/android/src/main/cpp/libyuv/infra/config/OWNERS +3 -0
  715. package/android/src/main/cpp/libyuv/infra/config/PRESUBMIT.py +17 -0
  716. package/android/src/main/cpp/libyuv/infra/config/README.md +2 -0
  717. package/android/src/main/cpp/libyuv/infra/config/codereview.settings +6 -0
  718. package/android/src/main/cpp/libyuv/infra/config/commit-queue.cfg +144 -0
  719. package/android/src/main/cpp/libyuv/infra/config/cr-buildbucket.cfg +1185 -0
  720. package/android/src/main/cpp/libyuv/infra/config/luci-logdog.cfg +9 -0
  721. package/android/src/main/cpp/libyuv/infra/config/luci-milo.cfg +246 -0
  722. package/android/src/main/cpp/libyuv/infra/config/luci-scheduler.cfg +385 -0
  723. package/android/src/main/cpp/libyuv/infra/config/main.star +402 -0
  724. package/android/src/main/cpp/libyuv/infra/config/project.cfg +16 -0
  725. package/android/src/main/cpp/libyuv/infra/config/realms.cfg +111 -0
  726. package/android/src/main/cpp/libyuv/libyuv.gni +34 -0
  727. package/android/src/main/cpp/libyuv/libyuv.gyp +149 -0
  728. package/android/src/main/cpp/libyuv/libyuv.gypi +87 -0
  729. package/android/src/main/cpp/libyuv/linux.mk +96 -0
  730. package/android/src/main/cpp/libyuv/public.mk +13 -0
  731. package/android/src/main/cpp/libyuv/pylintrc +49 -0
  732. package/android/src/main/cpp/libyuv/riscv_script/prepare_toolchain_qemu.sh +74 -0
  733. package/android/src/main/cpp/libyuv/riscv_script/riscv-clang.cmake +56 -0
  734. package/android/src/main/cpp/libyuv/riscv_script/run_qemu.sh +15 -0
  735. package/android/src/main/cpp/libyuv/source/compare.cc +435 -0
  736. package/android/src/main/cpp/libyuv/source/compare_common.cc +74 -0
  737. package/android/src/main/cpp/libyuv/source/compare_gcc.cc +362 -0
  738. package/android/src/main/cpp/libyuv/source/compare_neon.cc +96 -0
  739. package/android/src/main/cpp/libyuv/source/compare_neon64.cc +223 -0
  740. package/android/src/main/cpp/libyuv/source/compare_win.cc +241 -0
  741. package/android/src/main/cpp/libyuv/source/convert.cc +4746 -0
  742. package/android/src/main/cpp/libyuv/source/convert_argb.cc +9179 -0
  743. package/android/src/main/cpp/libyuv/source/convert_from.cc +866 -0
  744. package/android/src/main/cpp/libyuv/source/convert_from_argb.cc +3671 -0
  745. package/android/src/main/cpp/libyuv/source/convert_jpeg.cc +602 -0
  746. package/android/src/main/cpp/libyuv/source/convert_to_argb.cc +391 -0
  747. package/android/src/main/cpp/libyuv/source/convert_to_i420.cc +288 -0
  748. package/android/src/main/cpp/libyuv/source/cpu_id.cc +496 -0
  749. package/android/src/main/cpp/libyuv/source/mjpeg_decoder.cc +580 -0
  750. package/android/src/main/cpp/libyuv/source/mjpeg_validate.cc +71 -0
  751. package/android/src/main/cpp/libyuv/source/planar_functions.cc +5663 -0
  752. package/android/src/main/cpp/libyuv/source/rotate.cc +1241 -0
  753. package/android/src/main/cpp/libyuv/source/rotate_any.cc +76 -0
  754. package/android/src/main/cpp/libyuv/source/rotate_argb.cc +259 -0
  755. package/android/src/main/cpp/libyuv/source/rotate_common.cc +208 -0
  756. package/android/src/main/cpp/libyuv/source/rotate_gcc.cc +505 -0
  757. package/android/src/main/cpp/libyuv/source/rotate_lsx.cc +233 -0
  758. package/android/src/main/cpp/libyuv/source/rotate_neon.cc +219 -0
  759. package/android/src/main/cpp/libyuv/source/rotate_neon64.cc +273 -0
  760. package/android/src/main/cpp/libyuv/source/rotate_sme.cc +174 -0
  761. package/android/src/main/cpp/libyuv/source/rotate_win.cc +253 -0
  762. package/android/src/main/cpp/libyuv/source/row_any.cc +2519 -0
  763. package/android/src/main/cpp/libyuv/source/row_common.cc +4461 -0
  764. package/android/src/main/cpp/libyuv/source/row_gcc.cc +9570 -0
  765. package/android/src/main/cpp/libyuv/source/row_lasx.cc +2343 -0
  766. package/android/src/main/cpp/libyuv/source/row_lsx.cc +3030 -0
  767. package/android/src/main/cpp/libyuv/source/row_neon.cc +4026 -0
  768. package/android/src/main/cpp/libyuv/source/row_neon64.cc +5617 -0
  769. package/android/src/main/cpp/libyuv/source/row_rvv.cc +2599 -0
  770. package/android/src/main/cpp/libyuv/source/row_sme.cc +1183 -0
  771. package/android/src/main/cpp/libyuv/source/row_sve.cc +1088 -0
  772. package/android/src/main/cpp/libyuv/source/row_win.cc +6453 -0
  773. package/android/src/main/cpp/libyuv/source/scale.cc +2710 -0
  774. package/android/src/main/cpp/libyuv/source/scale_any.cc +991 -0
  775. package/android/src/main/cpp/libyuv/source/scale_argb.cc +1158 -0
  776. package/android/src/main/cpp/libyuv/source/scale_common.cc +1977 -0
  777. package/android/src/main/cpp/libyuv/source/scale_gcc.cc +2947 -0
  778. package/android/src/main/cpp/libyuv/source/scale_lsx.cc +739 -0
  779. package/android/src/main/cpp/libyuv/source/scale_neon.cc +1449 -0
  780. package/android/src/main/cpp/libyuv/source/scale_neon64.cc +1552 -0
  781. package/android/src/main/cpp/libyuv/source/scale_rgb.cc +82 -0
  782. package/android/src/main/cpp/libyuv/source/scale_rvv.cc +1971 -0
  783. package/android/src/main/cpp/libyuv/source/scale_sme.cc +555 -0
  784. package/android/src/main/cpp/libyuv/source/scale_uv.cc +1159 -0
  785. package/android/src/main/cpp/libyuv/source/scale_win.cc +1392 -0
  786. package/android/src/main/cpp/libyuv/source/test.sh +35 -0
  787. package/android/src/main/cpp/libyuv/source/video_common.cc +62 -0
  788. package/android/src/main/cpp/libyuv/tools_libyuv/OWNERS +4 -0
  789. package/android/src/main/cpp/libyuv/tools_libyuv/autoroller/roll_deps.py +931 -0
  790. package/android/src/main/cpp/libyuv/tools_libyuv/autoroller/unittests/roll_deps_test.py +164 -0
  791. package/android/src/main/cpp/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS +21 -0
  792. package/android/src/main/cpp/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium.new +13 -0
  793. package/android/src/main/cpp/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium.old +13 -0
  794. package/android/src/main/cpp/libyuv/tools_libyuv/get_landmines.py +38 -0
  795. package/android/src/main/cpp/libyuv/tools_libyuv/msan/OWNERS +3 -0
  796. package/android/src/main/cpp/libyuv/tools_libyuv/msan/blacklist.txt +9 -0
  797. package/android/src/main/cpp/libyuv/tools_libyuv/ubsan/OWNERS +3 -0
  798. package/android/src/main/cpp/libyuv/tools_libyuv/ubsan/blacklist.txt +15 -0
  799. package/android/src/main/cpp/libyuv/tools_libyuv/ubsan/vptr_blacklist.txt +25 -0
  800. package/android/src/main/cpp/libyuv/unit_test/basictypes_test.cc +43 -0
  801. package/android/src/main/cpp/libyuv/unit_test/color_test.cc +848 -0
  802. package/android/src/main/cpp/libyuv/unit_test/compare_test.cc +739 -0
  803. package/android/src/main/cpp/libyuv/unit_test/convert_argb_test.cc +2867 -0
  804. package/android/src/main/cpp/libyuv/unit_test/convert_test.cc +2133 -0
  805. package/android/src/main/cpp/libyuv/unit_test/cpu_test.cc +427 -0
  806. package/android/src/main/cpp/libyuv/unit_test/cpu_thread_test.cc +63 -0
  807. package/android/src/main/cpp/libyuv/unit_test/math_test.cc +160 -0
  808. package/android/src/main/cpp/libyuv/unit_test/planar_test.cc +4731 -0
  809. package/android/src/main/cpp/libyuv/unit_test/rotate_argb_test.cc +334 -0
  810. package/android/src/main/cpp/libyuv/unit_test/rotate_test.cc +962 -0
  811. package/android/src/main/cpp/libyuv/unit_test/scale_argb_test.cc +590 -0
  812. package/android/src/main/cpp/libyuv/unit_test/scale_plane_test.cc +465 -0
  813. package/android/src/main/cpp/libyuv/unit_test/scale_rgb_test.cc +280 -0
  814. package/android/src/main/cpp/libyuv/unit_test/scale_test.cc +1135 -0
  815. package/android/src/main/cpp/libyuv/unit_test/scale_uv_test.cc +249 -0
  816. package/android/src/main/cpp/libyuv/unit_test/testdata/arm_v7.txt +12 -0
  817. package/android/src/main/cpp/libyuv/unit_test/testdata/mips.txt +7 -0
  818. package/android/src/main/cpp/libyuv/unit_test/testdata/mips_loongson2k.txt +5 -0
  819. package/android/src/main/cpp/libyuv/unit_test/testdata/mips_loongson3.txt +10 -0
  820. package/android/src/main/cpp/libyuv/unit_test/testdata/mips_loongson_mmi.txt +7 -0
  821. package/android/src/main/cpp/libyuv/unit_test/testdata/riscv64.txt +4 -0
  822. package/android/src/main/cpp/libyuv/unit_test/testdata/riscv64_rvv.txt +4 -0
  823. package/android/src/main/cpp/libyuv/unit_test/testdata/riscv64_rvv_zvfh.txt +4 -0
  824. package/android/src/main/cpp/libyuv/unit_test/testdata/tegra3.txt +23 -0
  825. package/android/src/main/cpp/libyuv/unit_test/testdata/test0.jpg +0 -0
  826. package/android/src/main/cpp/libyuv/unit_test/testdata/test1.jpg +0 -0
  827. package/android/src/main/cpp/libyuv/unit_test/testdata/test2.jpg +0 -0
  828. package/android/src/main/cpp/libyuv/unit_test/testdata/test3.jpg +0 -0
  829. package/android/src/main/cpp/libyuv/unit_test/testdata/test4.jpg +0 -0
  830. package/android/src/main/cpp/libyuv/unit_test/unit_test.cc +581 -0
  831. package/android/src/main/cpp/libyuv/unit_test/unit_test.h +232 -0
  832. package/android/src/main/cpp/libyuv/unit_test/video_common_test.cc +112 -0
  833. package/android/src/main/cpp/libyuv/util/Makefile +9 -0
  834. package/android/src/main/cpp/libyuv/util/color.cc +120 -0
  835. package/android/src/main/cpp/libyuv/util/compare.cc +67 -0
  836. package/android/src/main/cpp/libyuv/util/cpuid.c +211 -0
  837. package/android/src/main/cpp/libyuv/util/i444tonv12_eg.cc +28 -0
  838. package/android/src/main/cpp/libyuv/util/psnr.cc +291 -0
  839. package/android/src/main/cpp/libyuv/util/psnr.h +47 -0
  840. package/android/src/main/cpp/libyuv/util/psnr_main.cc +620 -0
  841. package/android/src/main/cpp/libyuv/util/ssim.cc +364 -0
  842. package/android/src/main/cpp/libyuv/util/ssim.h +38 -0
  843. package/android/src/main/cpp/libyuv/util/yuvconstants.c +114 -0
  844. package/android/src/main/cpp/libyuv/util/yuvconvert.cc +367 -0
  845. package/android/src/main/cpp/libyuv/winarm.mk +47 -0
  846. package/android/src/main/java/com/faceantispoof/AcceleratorConfig.kt +49 -0
  847. package/android/src/main/java/com/faceantispoof/FaceAntiSpoofFrameProcessor.kt +145 -0
  848. package/android/src/main/java/com/faceantispoof/FaceAntiSpoofModule.kt +170 -0
  849. package/android/src/main/java/com/faceantispoof/FaceAntiSpoofPackage.kt +38 -0
  850. package/android/src/main/java/com/faceantispoof/FaceAntiSpoofingAdvanced.kt +288 -0
  851. package/android/src/main/java/com/faceantispoof/FastYuv.kt +51 -0
  852. package/android/src/main/java/com/faceantispoof/YuvToFloatArrayConverter.kt +198 -0
  853. package/android/src/main/java/com/faceantispoof/YuvToRgbConverter.kt +73 -0
  854. package/android/src/main/res/values/strings.xml +3 -0
  855. package/index.d.ts +84 -0
  856. package/index.js +47 -0
  857. package/package.json +73 -0
@@ -0,0 +1,2154 @@
1
+ /*
2
+ * Copyright 2024 The LibYuv Project Authors. All rights reserved.
3
+ *
4
+ * Use of this source code is governed by a BSD-style license
5
+ * that can be found in the LICENSE file in the root of the source
6
+ * tree. An additional intellectual property rights grant can be found
7
+ * in the file PATENTS. All contributing project authors may
8
+ * be found in the AUTHORS file in the root of the source tree.
9
+ */
10
+
11
+ #ifndef INCLUDE_LIBYUV_ROW_SVE_H_
12
+ #define INCLUDE_LIBYUV_ROW_SVE_H_
13
+
14
+ #include "libyuv/row.h"
15
+
16
+ #ifdef __cplusplus
17
+ namespace libyuv {
18
+ extern "C" {
19
+ #endif
20
+
21
+ #if !defined(LIBYUV_DISABLE_SVE) && defined(__aarch64__)
22
+
23
+ #if !defined(LIBYUV_DISABLE_SME) && defined(CLANG_HAS_SME) && \
24
+ defined(__aarch64__)
25
+ #define STREAMING_COMPATIBLE __arm_streaming_compatible
26
+ #else // defined(LIBYUV_DISABLE_SME) || !defined(CLANG_HAS_SME) ||
27
+ // !defined(__aarch64__)
28
+ #define STREAMING_COMPATIBLE
29
+ #endif // !defined(LIBYUV_DISABLE_SME) && defined(CLANG_HAS_SME) &&
30
+ // defined(__aarch64__)
31
+
32
+ #define YUVTORGB_SVE_SETUP \
33
+ "ld1rb {z28.b}, p0/z, [%[kUVCoeff], #0] \n" \
34
+ "ld1rb {z29.b}, p0/z, [%[kUVCoeff], #1] \n" \
35
+ "ld1rb {z30.b}, p0/z, [%[kUVCoeff], #2] \n" \
36
+ "ld1rb {z31.b}, p0/z, [%[kUVCoeff], #3] \n" \
37
+ "ld1rh {z24.h}, p0/z, [%[kRGBCoeffBias], #0] \n" \
38
+ "ld1rh {z25.h}, p0/z, [%[kRGBCoeffBias], #2] \n" \
39
+ "ld1rh {z26.h}, p0/z, [%[kRGBCoeffBias], #4] \n" \
40
+ "ld1rh {z27.h}, p0/z, [%[kRGBCoeffBias], #6] \n"
41
+
42
+ #define READYUV444_SVE \
43
+ "ld1b {z0.h}, p1/z, [%[src_y]] \n" \
44
+ "ld1b {z1.h}, p1/z, [%[src_u]] \n" \
45
+ "ld1b {z2.h}, p1/z, [%[src_v]] \n" \
46
+ "add %[src_y], %[src_y], %[vl] \n" \
47
+ "add %[src_u], %[src_u], %[vl] \n" \
48
+ "add %[src_v], %[src_v], %[vl] \n" \
49
+ "prfm pldl1keep, [%[src_y], 448] \n" \
50
+ "prfm pldl1keep, [%[src_u], 448] \n" \
51
+ "trn1 z0.b, z0.b, z0.b \n" \
52
+ "prfm pldl1keep, [%[src_v], 448] \n"
53
+
54
+ // Read twice as much data from YUV, putting the even elements from the Y data
55
+ // in z0.h and odd elements in z1.h.
56
+ #define READYUV444_SVE_2X \
57
+ "ld1b {z0.b}, p1/z, [%[src_y]] \n" \
58
+ "ld1b {z2.b}, p1/z, [%[src_u]] \n" \
59
+ "ld1b {z3.b}, p1/z, [%[src_v]] \n" \
60
+ "incb %[src_y] \n" \
61
+ "incb %[src_u] \n" \
62
+ "incb %[src_v] \n" \
63
+ "prfm pldl1keep, [%[src_y], 448] \n" \
64
+ "prfm pldl1keep, [%[src_u], 128] \n" \
65
+ "prfm pldl1keep, [%[src_v], 128] \n" \
66
+ "trn2 z1.b, z0.b, z0.b \n" \
67
+ "trn1 z0.b, z0.b, z0.b \n"
68
+
69
+ #define READYUV400_SVE \
70
+ "ld1b {z0.h}, p1/z, [%[src_y]] \n" \
71
+ "inch %[src_y] \n" \
72
+ "prfm pldl1keep, [%[src_y], 448] \n" \
73
+ "trn1 z0.b, z0.b, z0.b \n"
74
+
75
+ #define READYUV422_SVE \
76
+ "ld1b {z0.h}, p1/z, [%[src_y]] \n" \
77
+ "ld1b {z1.s}, p1/z, [%[src_u]] \n" \
78
+ "ld1b {z2.s}, p1/z, [%[src_v]] \n" \
79
+ "inch %[src_y] \n" \
80
+ "incw %[src_u] \n" \
81
+ "incw %[src_v] \n" \
82
+ "prfm pldl1keep, [%[src_y], 448] \n" \
83
+ "prfm pldl1keep, [%[src_u], 128] \n" \
84
+ "prfm pldl1keep, [%[src_v], 128] \n" \
85
+ "trn1 z0.b, z0.b, z0.b \n" \
86
+ "trn1 z1.h, z1.h, z1.h \n" \
87
+ "trn1 z2.h, z2.h, z2.h \n"
88
+
89
+ // Read twice as much data from YUV, putting the even elements from the Y data
90
+ // in z0.h and odd elements in z1.h. U/V data is not duplicated, stored in
91
+ // z2.h/z3.h.
92
+ #define READYUV422_SVE_2X \
93
+ "ld1b {z0.b}, p1/z, [%[src_y]] \n" \
94
+ "ld1b {z2.h}, p1/z, [%[src_u]] \n" \
95
+ "ld1b {z3.h}, p1/z, [%[src_v]] \n" \
96
+ "incb %[src_y] \n" \
97
+ "inch %[src_u] \n" \
98
+ "inch %[src_v] \n" \
99
+ "prfm pldl1keep, [%[src_y], 448] \n" \
100
+ "prfm pldl1keep, [%[src_u], 128] \n" \
101
+ "prfm pldl1keep, [%[src_v], 128] \n" \
102
+ "trn2 z1.b, z0.b, z0.b \n" \
103
+ "trn1 z0.b, z0.b, z0.b \n"
104
+
105
+ #define READI210_SVE \
106
+ "ld1h {z3.h}, p1/z, [%[src_y]] \n" \
107
+ "ld1h {z1.s}, p1/z, [%[src_u]] \n" \
108
+ "ld1h {z2.s}, p1/z, [%[src_v]] \n" \
109
+ "incb %[src_y] \n" \
110
+ "inch %[src_u] \n" \
111
+ "inch %[src_v] \n" \
112
+ "lsl z0.h, z3.h, #6 \n" \
113
+ "trn1 z1.h, z1.h, z1.h \n" \
114
+ "trn1 z2.h, z2.h, z2.h \n" \
115
+ "prfm pldl1keep, [%[src_y], 448] \n" \
116
+ "prfm pldl1keep, [%[src_u], 128] \n" \
117
+ "prfm pldl1keep, [%[src_v], 128] \n" \
118
+ "usra z0.h, z3.h, #4 \n" \
119
+ "uqshrnb z1.b, z1.h, #2 \n" \
120
+ "uqshrnb z2.b, z2.h, #2 \n"
121
+
122
+ #define READI210_SVE_2X \
123
+ "ld1h {z4.h}, p2/z, [%[src_y]] \n" \
124
+ "ld1h {z5.h}, p3/z, [%[src_y], #1, mul vl] \n" \
125
+ "ld1h {z2.h}, p1/z, [%[src_u]] \n" \
126
+ "ld1h {z3.h}, p1/z, [%[src_v]] \n" \
127
+ "incb %[src_y], all, mul #2 \n" \
128
+ "uzp1 z6.h, z4.h, z5.h \n" \
129
+ "uzp2 z5.h, z4.h, z5.h \n" \
130
+ "incb %[src_u] \n" \
131
+ "incb %[src_v] \n" \
132
+ "lsl z0.h, z6.h, #6 \n" \
133
+ "lsl z1.h, z5.h, #6 \n" \
134
+ "prfm pldl1keep, [%[src_y], 448] \n" \
135
+ "prfm pldl1keep, [%[src_u], 128] \n" \
136
+ "prfm pldl1keep, [%[src_v], 128] \n" \
137
+ "usra z0.h, z6.h, #4 \n" \
138
+ "usra z1.h, z5.h, #4 \n" \
139
+ "uqshrnb z2.b, z2.h, #2 \n" \
140
+ "uqshrnb z3.b, z3.h, #2 \n"
141
+
142
+ #define READP210_SVE \
143
+ "ld1h {z0.h}, p1/z, [%[src_y]] \n" \
144
+ "ld1h {z1.h}, p2/z, [%[src_uv]] \n" \
145
+ "incb %[src_y] \n" \
146
+ "incb %[src_uv] \n" \
147
+ "prfm pldl1keep, [%[src_y], 448] \n" \
148
+ "prfm pldl1keep, [%[src_uv], 256] \n" \
149
+ "tbl z1.b, {z1.b}, z22.b \n"
150
+
151
+ #define READI410_SVE \
152
+ "ld1h {z3.h}, p1/z, [%[src_y]] \n" \
153
+ "lsl z0.h, z3.h, #6 \n" \
154
+ "usra z0.h, z3.h, #4 \n" \
155
+ "ld1h {z1.h}, p1/z, [%[src_u]] \n" \
156
+ "ld1h {z2.h}, p1/z, [%[src_v]] \n" \
157
+ "incb %[src_y] \n" \
158
+ "incb %[src_u] \n" \
159
+ "incb %[src_v] \n" \
160
+ "prfm pldl1keep, [%[src_y], 448] \n" \
161
+ "prfm pldl1keep, [%[src_u], 128] \n" \
162
+ "prfm pldl1keep, [%[src_v], 128] \n" \
163
+ "uqshrnb z1.b, z1.h, #2 \n" \
164
+ "uqshrnb z2.b, z2.h, #2 \n"
165
+
166
+ // We need different predicates for the UV components since we are reading
167
+ // 32-bit (pairs of UV) elements rather than 16-bit Y elements.
168
+ #define READP410_SVE \
169
+ "ld1h {z0.h}, p1/z, [%[src_y]] \n" \
170
+ "ld1w {z1.s}, p2/z, [%[src_uv]] \n" \
171
+ "ld1w {z2.s}, p3/z, [%[src_uv], #1, mul vl] \n" \
172
+ "incb %[src_y] \n" \
173
+ "incb %[src_uv], all, mul #2 \n" \
174
+ "prfm pldl1keep, [%[src_y], 448] \n" \
175
+ "prfm pldl1keep, [%[src_uv], 256] \n" \
176
+ "uzp2 z1.b, z1.b, z2.b \n"
177
+
178
+ #define READI212_SVE \
179
+ "ld1h {z3.h}, p1/z, [%[src_y]] \n" \
180
+ "ld1h {z1.s}, p1/z, [%[src_u]] \n" \
181
+ "ld1h {z2.s}, p1/z, [%[src_v]] \n" \
182
+ "incb %[src_y] \n" \
183
+ "inch %[src_u] \n" \
184
+ "inch %[src_v] \n" \
185
+ "lsl z0.h, z3.h, #4 \n" \
186
+ "trn1 z1.h, z1.h, z1.h \n" \
187
+ "trn1 z2.h, z2.h, z2.h \n" \
188
+ "prfm pldl1keep, [%[src_y], 448] \n" \
189
+ "prfm pldl1keep, [%[src_u], 128] \n" \
190
+ "prfm pldl1keep, [%[src_v], 128] \n" \
191
+ "usra z0.h, z3.h, #8 \n" \
192
+ "uqshrnb z1.b, z1.h, #4 \n" \
193
+ "uqshrnb z2.b, z2.h, #4 \n"
194
+
195
+ #define I400TORGB_SVE \
196
+ "umulh z18.h, z24.h, z0.h \n" /* Y */ \
197
+ "movprfx z16, z18 \n" \
198
+ "usqadd z16.h, p0/m, z16.h, z4.h \n" /* B */ \
199
+ "movprfx z17, z18 \n" \
200
+ "usqadd z17.h, p0/m, z17.h, z6.h \n" /* G */ \
201
+ "usqadd z18.h, p0/m, z18.h, z5.h \n" /* R */
202
+
203
+ // We need a different predicate for the UV component to handle the tail.
204
+ // If there is a single element remaining then we want to load one Y element
205
+ // but two UV elements.
206
+ #define READNV_SVE_2X \
207
+ "ld1b {z0.b}, p1/z, [%[src_y]] \n" /* Y0Y0 */ \
208
+ "ld1b {z2.b}, p2/z, [%[src_uv]] \n" /* U0V0 or V0U0 */ \
209
+ "incb %[src_y] \n" \
210
+ "incb %[src_uv] \n" \
211
+ "prfm pldl1keep, [%[src_y], 448] \n" \
212
+ "prfm pldl1keep, [%[src_uv], 256] \n" \
213
+ "trn2 z1.b, z0.b, z0.b \n" /* YYYY */ \
214
+ "trn1 z0.b, z0.b, z0.b \n" /* YYYY */
215
+
216
+ // Like NVTORGB_SVE but U/V components are stored in widened .h elements of
217
+ // z1/z2 rather than even/odd .b lanes of z1.
218
+ #define I4XXTORGB_SVE \
219
+ "umulh z0.h, z24.h, z0.h \n" /* Y */ \
220
+ "umullb z6.h, z30.b, z1.b \n" \
221
+ "umullb z4.h, z28.b, z1.b \n" /* DB */ \
222
+ "umullb z5.h, z29.b, z2.b \n" /* DR */ \
223
+ "umlalb z6.h, z31.b, z2.b \n" /* DG */ \
224
+ "add z17.h, z0.h, z26.h \n" /* G */ \
225
+ "add z16.h, z0.h, z4.h \n" /* B */ \
226
+ "add z18.h, z0.h, z5.h \n" /* R */ \
227
+ "uqsub z17.h, z17.h, z6.h \n" /* G */ \
228
+ "uqsub z16.h, z16.h, z25.h \n" /* B */ \
229
+ "uqsub z18.h, z18.h, z27.h \n" /* R */
230
+
231
+ #define I444TORGB_SVE_2X \
232
+ "umulh z0.h, z24.h, z0.h \n" /* Y0 */ \
233
+ "umulh z1.h, z24.h, z1.h \n" /* Y1 */ \
234
+ "umullb z6.h, z30.b, z2.b \n" \
235
+ "umullt z7.h, z30.b, z2.b \n" \
236
+ "umullb z4.h, z28.b, z2.b \n" /* DB */ \
237
+ "umullt z2.h, z28.b, z2.b \n" /* DB */ \
238
+ "umlalb z6.h, z31.b, z3.b \n" /* DG */ \
239
+ "umlalt z7.h, z31.b, z3.b \n" /* DG */ \
240
+ "umullb z5.h, z29.b, z3.b \n" /* DR */ \
241
+ "umullt z3.h, z29.b, z3.b \n" /* DR */ \
242
+ "add z17.h, z0.h, z26.h \n" /* G */ \
243
+ "add z21.h, z1.h, z26.h \n" /* G */ \
244
+ "add z16.h, z0.h, z4.h \n" /* B */ \
245
+ "add z20.h, z1.h, z2.h \n" /* B */ \
246
+ "add z18.h, z0.h, z5.h \n" /* R */ \
247
+ "add z22.h, z1.h, z3.h \n" /* R */ \
248
+ "uqsub z17.h, z17.h, z6.h \n" /* G */ \
249
+ "uqsub z21.h, z21.h, z7.h \n" /* G */ \
250
+ "uqsub z16.h, z16.h, z25.h \n" /* B */ \
251
+ "uqsub z20.h, z20.h, z25.h \n" /* B */ \
252
+ "uqsub z18.h, z18.h, z27.h \n" /* R */ \
253
+ "uqsub z22.h, z22.h, z27.h \n" /* R */
254
+
255
+ // Like I4XXTORGB_SVE but U/V components are stored in even/odd .b lanes of z1
256
+ // rather than widened .h elements of z1/z2.
257
+ #define NVTORGB_SVE \
258
+ "umulh z0.h, z24.h, z0.h \n" /* Y */ \
259
+ "umullb z6.h, z30.b, z1.b \n" \
260
+ "umullb z4.h, z28.b, z1.b \n" /* DB */ \
261
+ "umullt z5.h, z29.b, z1.b \n" /* DR */ \
262
+ "umlalt z6.h, z31.b, z1.b \n" /* DG */ \
263
+ "add z17.h, z0.h, z26.h \n" /* G */ \
264
+ "add z16.h, z0.h, z4.h \n" /* B */ \
265
+ "add z18.h, z0.h, z5.h \n" /* R */ \
266
+ "uqsub z17.h, z17.h, z6.h \n" /* G */ \
267
+ "uqsub z16.h, z16.h, z25.h \n" /* B */ \
268
+ "uqsub z18.h, z18.h, z27.h \n" /* R */
269
+
270
+ // The U/V component multiplies do not need to be duplicated in I422, we just
271
+ // need to combine them with Y0/Y1 correctly.
272
+ #define I422TORGB_SVE_2X \
273
+ "umulh z0.h, z24.h, z0.h \n" /* Y0 */ \
274
+ "umulh z1.h, z24.h, z1.h \n" /* Y1 */ \
275
+ "umullb z6.h, z30.b, z2.b \n" \
276
+ "umullb z4.h, z28.b, z2.b \n" /* DB */ \
277
+ "umullb z5.h, z29.b, z3.b \n" /* DR */ \
278
+ "umlalb z6.h, z31.b, z3.b \n" /* DG */ \
279
+ \
280
+ "add z17.h, z0.h, z26.h \n" /* G0 */ \
281
+ "add z21.h, z1.h, z26.h \n" /* G1 */ \
282
+ "add z16.h, z0.h, z4.h \n" /* B0 */ \
283
+ "add z20.h, z1.h, z4.h \n" /* B1 */ \
284
+ "add z18.h, z0.h, z5.h \n" /* R0 */ \
285
+ "add z22.h, z1.h, z5.h \n" /* R1 */ \
286
+ "uqsub z17.h, z17.h, z6.h \n" /* G0 */ \
287
+ "uqsub z21.h, z21.h, z6.h \n" /* G1 */ \
288
+ "uqsub z16.h, z16.h, z25.h \n" /* B0 */ \
289
+ "uqsub z20.h, z20.h, z25.h \n" /* B1 */ \
290
+ "uqsub z18.h, z18.h, z27.h \n" /* R0 */ \
291
+ "uqsub z22.h, z22.h, z27.h \n" /* R1 */
292
+
293
+ // clang-format off
294
+ #define NVTORGB_SVE_2X(bt_u, bt_v) \
295
+ "umulh z0.h, z24.h, z0.h \n" /* Y0 */ \
296
+ "umulh z1.h, z24.h, z1.h \n" /* Y1 */ \
297
+ "umull" #bt_u " z6.h, z30.b, z2.b \n" \
298
+ "umull" #bt_u " z4.h, z28.b, z2.b \n" /* DB */ \
299
+ "umull" #bt_v " z5.h, z29.b, z2.b \n" /* DR */ \
300
+ "umlal" #bt_v " z6.h, z31.b, z2.b \n" /* DG */ \
301
+ \
302
+ "add z17.h, z0.h, z26.h \n" /* G0 */ \
303
+ "add z21.h, z1.h, z26.h \n" /* G1 */ \
304
+ "add z16.h, z0.h, z4.h \n" /* B0 */ \
305
+ "add z20.h, z1.h, z4.h \n" /* B1 */ \
306
+ "add z18.h, z0.h, z5.h \n" /* R0 */ \
307
+ "add z22.h, z1.h, z5.h \n" /* R1 */ \
308
+ "uqsub z17.h, z17.h, z6.h \n" /* G0 */ \
309
+ "uqsub z21.h, z21.h, z6.h \n" /* G1 */ \
310
+ "uqsub z16.h, z16.h, z25.h \n" /* B0 */ \
311
+ "uqsub z20.h, z20.h, z25.h \n" /* B1 */ \
312
+ "uqsub z18.h, z18.h, z27.h \n" /* R0 */ \
313
+ "uqsub z22.h, z22.h, z27.h \n" /* R1 */
314
+ // clang-format on
315
+
316
+ #define RGBTOARGB8_SVE_TOP_2X \
317
+ /* Inputs: B: z16.h, G: z17.h, R: z18.h */ \
318
+ "uqshl z16.h, p0/m, z16.h, #2 \n" /* B0 */ \
319
+ "uqshl z17.h, p0/m, z17.h, #2 \n" /* G0 */ \
320
+ "uqshl z18.h, p0/m, z18.h, #2 \n" /* R0 */ \
321
+ "uqshl z20.h, p0/m, z20.h, #2 \n" /* B1 */ \
322
+ "uqshl z21.h, p0/m, z21.h, #2 \n" /* G1 */ \
323
+ "uqshl z22.h, p0/m, z22.h, #2 \n" /* R1 */
324
+
325
+ // Convert from 2.14 fixed point RGB to 8 bit ARGB, interleaving as BG and RA
326
+ // pairs to allow us to use ST2 for storing rather than ST4.
327
+ #define RGBTOARGB8_SVE \
328
+ /* Inputs: B: z16.h, G: z17.h, R: z18.h, A: z19.b */ \
329
+ "uqshrnb z16.b, z16.h, #6 \n" /* B0 */ \
330
+ "uqshrnb z18.b, z18.h, #6 \n" /* R0 */ \
331
+ "uqshrnt z16.b, z17.h, #6 \n" /* BG */ \
332
+ "trn1 z17.b, z18.b, z19.b \n" /* RA */
333
+
334
+ // Convert from 2.14 fixed point RGBA to 8 bit ARGB, interleaving as BG and RA
335
+ // pairs to allow us to use ST2 for storing rather than ST4.
336
+ #define RGBATOARGB8_SVE \
337
+ /* Inputs: B: z16.h, G: z17.h, R: z18.h, A: z19.h */ \
338
+ "uqshrnb z16.b, z16.h, #6 \n" /* B0 */ \
339
+ "uqshrnt z16.b, z17.h, #6 \n" /* BG */ \
340
+ "uqshrnb z17.b, z18.h, #6 \n" /* R0 */ \
341
+ "uqshrnt z17.b, z19.h, #2 \n" /* RA */
342
+
343
+ // Convert from 2.14 fixed point RGB to 8 bit RGBA, interleaving as AB and GR
344
+ // pairs to allow us to use ST2 for storing rather than ST4.
345
+ #define RGBTORGBA8_SVE \
346
+ /* Inputs: B: z16.h, G: z17.h, R: z18.h, A: z19.b */ \
347
+ "uqshrnt z19.b, z16.h, #6 \n" /* AB */ \
348
+ "uqshrnb z20.b, z17.h, #6 \n" /* G0 */ \
349
+ "uqshrnt z20.b, z18.h, #6 \n" /* GR */
350
+
351
+ #define RGBTOARGB8_SVE_2X \
352
+ /* Inputs: B: z16.h, G: z17.h, R: z18.h, A: z19.b */ \
353
+ "uqshrnb z16.b, z16.h, #6 \n" /* B0 */ \
354
+ "uqshrnb z17.b, z17.h, #6 \n" /* G0 */ \
355
+ "uqshrnb z18.b, z18.h, #6 \n" /* R0 */ \
356
+ "uqshrnt z16.b, z20.h, #6 \n" /* B1 */ \
357
+ "uqshrnt z17.b, z21.h, #6 \n" /* G1 */ \
358
+ "uqshrnt z18.b, z22.h, #6 \n" /* R1 */
359
+
360
+ // Store AR30 elements. Inputs are 2.14 fixed point RGB. We expect z23 to be
361
+ // populated with 0x3ff0 (0x3fff would also work) to saturate the R input
362
+ // rather than needing a pair of shifts to saturate and then insert into the
363
+ // correct position in the lane.
364
+ #define STOREAR30_SVE \
365
+ /* Inputs: B: z16.h, G: z17.h, R: z18.h */ \
366
+ "uqshl z16.h, p0/m, z16.h, #2 \n" /* bbbbbbbbbbxxxxxx */ \
367
+ "uqshl z17.h, p0/m, z17.h, #2 \n" /* ggggggggggxxxxxx */ \
368
+ "umin z18.h, p0/m, z18.h, z23.h \n" /* 00rrrrrrrrrrxxxx */ \
369
+ "orr z18.h, z18.h, #0xc000 \n" /* 11rrrrrrrrrrxxxx */ \
370
+ "sri z18.h, z17.h, #12 \n" /* 11rrrrrrrrrrgggg */ \
371
+ "lsl z17.h, z17.h, #4 \n" /* ggggggxxxxxx0000 */ \
372
+ "sri z17.h, z16.h, #6 \n" /* ggggggbbbbbbbbbb */ \
373
+ "st2h {z17.h, z18.h}, p1, [%[dst_ar30]] \n" \
374
+ "incb %[dst_ar30], all, mul #2 \n"
375
+
376
+ #define STOREAR30_SVE_2X \
377
+ /* Inputs: B: z16.h, G: z17.h, R: z18.h */ \
378
+ /* B: z20.h, G: z21.h, R: z22.h */ \
379
+ "uqshl z16.h, p0/m, z16.h, #2 \n" /* bbbbbbbbbbxxxxxx */ \
380
+ "uqshl z20.h, p0/m, z20.h, #2 \n" /* bbbbbbbbbbxxxxxx */ \
381
+ "uqshl z17.h, p0/m, z17.h, #2 \n" /* ggggggggggxxxxxx */ \
382
+ "uqshl z21.h, p0/m, z21.h, #2 \n" /* ggggggggggxxxxxx */ \
383
+ "umin z18.h, p0/m, z18.h, z23.h \n" /* 00rrrrrrrrrrxxxx */ \
384
+ "umin z22.h, p0/m, z22.h, z23.h \n" /* 00rrrrrrrrrrxxxx */ \
385
+ "orr z18.h, z18.h, #0xc000 \n" /* 11rrrrrrrrrrxxxx */ \
386
+ "orr z22.h, z22.h, #0xc000 \n" /* 11rrrrrrrrrrxxxx */ \
387
+ "sri z18.h, z17.h, #12 \n" /* 11rrrrrrrrrrgggg */ \
388
+ "sri z22.h, z21.h, #12 \n" /* 11rrrrrrrrrrgggg */ \
389
+ "lsl z17.h, z17.h, #4 \n" /* ggggggxxxxxx0000 */ \
390
+ "lsl z19.h, z21.h, #4 \n" /* ggggggxxxxxx0000 */ \
391
+ "sri z17.h, z16.h, #6 \n" /* ggggggbbbbbbbbbb */ \
392
+ "sri z19.h, z20.h, #6 \n" /* ggggggbbbbbbbbbb */ \
393
+ "zip2 z16.h, z17.h, z19.h \n" \
394
+ "zip1 z21.h, z17.h, z19.h \n" \
395
+ "zip2 z17.h, z18.h, z22.h \n" \
396
+ "zip1 z22.h, z18.h, z22.h \n" \
397
+ "st2h {z21.h, z22.h}, p2, [%[dst_ar30]] \n" \
398
+ "st2h {z16.h, z17.h}, p3, [%[dst_ar30], #2, mul vl] \n" \
399
+ "incb %[dst_ar30], all, mul #4 \n"
400
+
401
+ #define YUVTORGB_SVE_REGS \
402
+ "z0", "z1", "z2", "z3", "z4", "z5", "z6", "z7", "z16", "z17", "z18", "z19", \
403
+ "z20", "z21", "z22", "z23", "z24", "z25", "z26", "z27", "z28", "z29", \
404
+ "z30", "z31", "p0", "p1", "p2", "p3"
405
+
406
+ static inline void I444ToRGB24Row_SVE_SC(
407
+ const uint8_t* src_y,
408
+ const uint8_t* src_u,
409
+ const uint8_t* src_v,
410
+ uint8_t* dst_rgb24,
411
+ const struct YuvConstants* yuvconstants,
412
+ int width) STREAMING_COMPATIBLE {
413
+ uint64_t vl;
414
+ asm volatile(
415
+ "cntb %[vl] \n"
416
+ "ptrue p0.b \n" //
417
+ YUVTORGB_SVE_SETUP
418
+ "subs %w[width], %w[width], %w[vl] \n"
419
+ "b.lt 2f \n"
420
+
421
+ // Run bulk of computation with an all-true predicate to avoid predicate
422
+ // generation overhead.
423
+ "ptrue p1.b \n"
424
+ "1: \n" //
425
+ READYUV444_SVE_2X I444TORGB_SVE_2X RGBTOARGB8_SVE_2X
426
+ "subs %w[width], %w[width], %w[vl] \n"
427
+ "st3b {z16.b, z17.b, z18.b}, p1, [%[dst_rgb24]] \n"
428
+ "incb %[dst_rgb24], all, mul #3 \n"
429
+ "b.ge 1b \n"
430
+
431
+ "2: \n"
432
+ "adds %w[width], %w[width], %w[vl] \n"
433
+ "b.eq 99f \n"
434
+
435
+ // Calculate a predicate for the final iteration to deal with the tail.
436
+ "cnth %[vl] \n"
437
+ "whilelt p1.b, wzr, %w[width] \n" //
438
+ READYUV444_SVE_2X I444TORGB_SVE_2X RGBTOARGB8_SVE_2X
439
+ "st3b {z16.b, z17.b, z18.b}, p1, [%[dst_rgb24]] \n"
440
+
441
+ "99: \n"
442
+ : [src_y] "+r"(src_y), // %[src_y]
443
+ [src_u] "+r"(src_u), // %[src_u]
444
+ [src_v] "+r"(src_v), // %[src_v]
445
+ [dst_rgb24] "+r"(dst_rgb24), // %[dst_argb]
446
+ [width] "+r"(width), // %[width]
447
+ [vl] "=&r"(vl) // %[vl]
448
+ : [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
449
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias) // %[kRGBCoeffBias]
450
+ : "cc", "memory", YUVTORGB_SVE_REGS);
451
+ }
452
+
453
+ static inline void I400ToARGBRow_SVE_SC(const uint8_t* src_y,
454
+ uint8_t* dst_argb,
455
+ const struct YuvConstants* yuvconstants,
456
+ int width) STREAMING_COMPATIBLE {
457
+ uint64_t vl;
458
+ asm volatile(
459
+ "cnth %[vl] \n"
460
+ "ptrue p0.b \n"
461
+ "dup z19.b, #255 \n" // Alpha
462
+ YUVTORGB_SVE_SETUP
463
+ "cmp %w[width], %w[vl] \n"
464
+ "mov z1.h, #128 \n" // U/V
465
+ "umullb z6.h, z30.b, z1.b \n"
466
+ "umullb z4.h, z28.b, z1.b \n" // DB
467
+ "umullb z5.h, z29.b, z1.b \n" // DR
468
+ "mla z6.h, p0/m, z31.h, z1.h \n" // DG
469
+ "sub z4.h, z4.h, z25.h \n"
470
+ "sub z5.h, z5.h, z27.h \n"
471
+ "sub z6.h, z26.h, z6.h \n"
472
+ "b.le 2f \n"
473
+
474
+ // Run bulk of computation with an all-true predicate to avoid predicate
475
+ // generation overhead.
476
+ "ptrue p1.h \n"
477
+ "sub %w[width], %w[width], %w[vl] \n"
478
+ "1: \n" //
479
+ READYUV400_SVE I400TORGB_SVE RGBTOARGB8_SVE
480
+ "subs %w[width], %w[width], %w[vl] \n"
481
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
482
+ "add %[dst_argb], %[dst_argb], %[vl], lsl #2 \n"
483
+ "b.gt 1b \n"
484
+ "add %w[width], %w[width], %w[vl] \n"
485
+
486
+ // Calculate a predicate for the final iteration to deal with the tail.
487
+ "2: \n"
488
+ "whilelt p1.h, wzr, %w[width] \n" //
489
+ READYUV400_SVE I400TORGB_SVE RGBTOARGB8_SVE
490
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
491
+ : [src_y] "+r"(src_y), // %[src_y]
492
+ [dst_argb] "+r"(dst_argb), // %[dst_argb]
493
+ [width] "+r"(width), // %[width]
494
+ [vl] "=&r"(vl) // %[vl]
495
+ : [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
496
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias) // %[kRGBCoeffBias]
497
+ : "cc", "memory", YUVTORGB_SVE_REGS);
498
+ }
499
+
500
+ static inline void I422ToARGBRow_SVE_SC(const uint8_t* src_y,
501
+ const uint8_t* src_u,
502
+ const uint8_t* src_v,
503
+ uint8_t* dst_argb,
504
+ const struct YuvConstants* yuvconstants,
505
+ int width) STREAMING_COMPATIBLE {
506
+ uint64_t vl;
507
+ asm volatile(
508
+ "cntb %[vl] \n"
509
+ "ptrue p0.b \n" //
510
+ YUVTORGB_SVE_SETUP
511
+ "dup z19.b, #255 \n" // Alpha
512
+ "subs %w[width], %w[width], %w[vl] \n"
513
+ "b.lt 2f \n"
514
+
515
+ // Run bulk of computation with an all-true predicate to avoid predicate
516
+ // generation overhead.
517
+ "ptrue p1.b \n"
518
+ "1: \n" //
519
+ READYUV422_SVE_2X I422TORGB_SVE_2X RGBTOARGB8_SVE_2X
520
+ "subs %w[width], %w[width], %w[vl] \n"
521
+ "st4b {z16.b, z17.b, z18.b, z19.b}, p1, [%[dst_argb]] \n"
522
+ "incb %[dst_argb], all, mul #4 \n"
523
+ "b.ge 1b \n"
524
+
525
+ "2: \n"
526
+ "adds %w[width], %w[width], %w[vl] \n"
527
+ "b.eq 99f \n"
528
+
529
+ // Calculate a predicate for the final iteration to deal with the tail.
530
+ "cnth %[vl] \n"
531
+ "whilelt p1.b, wzr, %w[width] \n" //
532
+ READYUV422_SVE_2X I422TORGB_SVE_2X RGBTOARGB8_SVE_2X
533
+ "st4b {z16.b, z17.b, z18.b, z19.b}, p1, [%[dst_argb]] \n"
534
+
535
+ "99: \n"
536
+ : [src_y] "+r"(src_y), // %[src_y]
537
+ [src_u] "+r"(src_u), // %[src_u]
538
+ [src_v] "+r"(src_v), // %[src_v]
539
+ [dst_argb] "+r"(dst_argb), // %[dst_argb]
540
+ [width] "+r"(width), // %[width]
541
+ [vl] "=&r"(vl) // %[vl]
542
+ : [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
543
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias) // %[kRGBCoeffBias]
544
+ : "cc", "memory", YUVTORGB_SVE_REGS);
545
+ }
546
+
547
+ static inline void I422ToRGB24Row_SVE_SC(
548
+ const uint8_t* src_y,
549
+ const uint8_t* src_u,
550
+ const uint8_t* src_v,
551
+ uint8_t* dst_argb,
552
+ const struct YuvConstants* yuvconstants,
553
+ int width) STREAMING_COMPATIBLE {
554
+ uint64_t vl;
555
+ asm volatile(
556
+ "cntb %[vl] \n"
557
+ "ptrue p0.b \n" //
558
+ YUVTORGB_SVE_SETUP
559
+ "subs %w[width], %w[width], %w[vl] \n"
560
+ "b.lt 2f \n"
561
+
562
+ // Run bulk of computation with an all-true predicate to avoid predicate
563
+ // generation overhead.
564
+ "ptrue p1.b \n"
565
+ "1: \n" //
566
+ READYUV422_SVE_2X I422TORGB_SVE_2X RGBTOARGB8_SVE_2X
567
+ "subs %w[width], %w[width], %w[vl] \n"
568
+ "st3b {z16.b, z17.b, z18.b}, p1, [%[dst_argb]] \n"
569
+ "incb %[dst_argb], all, mul #3 \n"
570
+ "b.ge 1b \n"
571
+
572
+ "2: \n"
573
+ "adds %w[width], %w[width], %w[vl] \n"
574
+ "b.eq 99f \n"
575
+
576
+ // Calculate a predicate for the final iteration to deal with the tail.
577
+ "cnth %[vl] \n"
578
+ "whilelt p1.b, wzr, %w[width] \n" //
579
+ READYUV422_SVE_2X I422TORGB_SVE_2X RGBTOARGB8_SVE_2X
580
+ "st3b {z16.b, z17.b, z18.b}, p1, [%[dst_argb]] \n"
581
+
582
+ "99: \n"
583
+ : [src_y] "+r"(src_y), // %[src_y]
584
+ [src_u] "+r"(src_u), // %[src_u]
585
+ [src_v] "+r"(src_v), // %[src_v]
586
+ [dst_argb] "+r"(dst_argb), // %[dst_argb]
587
+ [width] "+r"(width), // %[width]
588
+ [vl] "=&r"(vl) // %[vl]
589
+ : [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
590
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias) // %[kRGBCoeffBias]
591
+ : "cc", "memory", YUVTORGB_SVE_REGS);
592
+ }
593
+
594
+ #define RGB8TORGB565_SVE_FROM_TOP_2X \
595
+ "sri z18.h, z17.h, #5 \n" /* rrrrrgggggg00000 */ \
596
+ "sri z22.h, z21.h, #5 \n" /* rrrrrgggggg00000 */ \
597
+ "sri z18.h, z16.h, #11 \n" /* rrrrrggggggbbbbb */ \
598
+ "sri z22.h, z20.h, #11 \n" /* rrrrrggggggbbbbb */ \
599
+ "mov z19.d, z22.d \n"
600
+
601
+ static inline void I422ToRGB565Row_SVE_SC(
602
+ const uint8_t* src_y,
603
+ const uint8_t* src_u,
604
+ const uint8_t* src_v,
605
+ uint8_t* dst_rgb565,
606
+ const struct YuvConstants* yuvconstants,
607
+ int width) STREAMING_COMPATIBLE {
608
+ uint64_t vl;
609
+ asm volatile(
610
+ "cntb %[vl] \n"
611
+ "ptrue p0.b \n" //
612
+ YUVTORGB_SVE_SETUP
613
+ "subs %w[width], %w[width], %w[vl] \n"
614
+ "b.lt 2f \n"
615
+
616
+ // Run bulk of computation with an all-true predicate to avoid predicate
617
+ // generation overhead.
618
+ "ptrue p1.b \n"
619
+ "1: \n" //
620
+ READYUV422_SVE_2X I422TORGB_SVE_2X RGBTOARGB8_SVE_TOP_2X
621
+ "subs %w[width], %w[width], %w[vl] \n" //
622
+ RGB8TORGB565_SVE_FROM_TOP_2X
623
+ "st2h {z18.h, z19.h}, p1, [%[dst]] \n"
624
+ "incb %[dst], all, mul #2 \n"
625
+ "b.ge 1b \n"
626
+
627
+ "2: \n"
628
+ "adds %w[width], %w[width], %w[vl] \n"
629
+ "b.eq 99f \n"
630
+
631
+ // Calculate a predicate for the final iteration to deal with the tail.
632
+ "cnth %[vl] \n"
633
+ "whilelt p1.b, wzr, %w[width] \n" //
634
+ READYUV422_SVE_2X I422TORGB_SVE_2X RGBTOARGB8_SVE_TOP_2X
635
+ RGB8TORGB565_SVE_FROM_TOP_2X
636
+ // Need to permute the data on the final iteration such that the
637
+ // predicates (.b) line up with the 16-bit element data.
638
+ "trn1 z20.b, z18.b, z19.b \n"
639
+ "trn2 z21.b, z18.b, z19.b \n"
640
+ "st2b {z20.b, z21.b}, p1, [%[dst]] \n"
641
+
642
+ "99: \n"
643
+ : [src_y] "+r"(src_y), // %[src_y]
644
+ [src_u] "+r"(src_u), // %[src_u]
645
+ [src_v] "+r"(src_v), // %[src_v]
646
+ [dst] "+r"(dst_rgb565), // %[dst]
647
+ [width] "+r"(width), // %[width]
648
+ [vl] "=&r"(vl) // %[vl]
649
+ : [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
650
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias) // %[kRGBCoeffBias]
651
+ : "cc", "memory", YUVTORGB_SVE_REGS);
652
+ }
653
+
654
+ #define RGB8TOARGB1555_SVE_FROM_TOP_2X \
655
+ "dup z0.h, #0x8000 \n" /* 1000000000000000 */ \
656
+ "dup z1.h, #0x8000 \n" /* 1000000000000000 */ \
657
+ "sri z0.h, z18.h, #1 \n" /* 1rrrrrxxxxxxxxxx */ \
658
+ "sri z1.h, z22.h, #1 \n" /* 1rrrrrxxxxxxxxxx */ \
659
+ "sri z0.h, z17.h, #6 \n" /* 1rrrrrgggggxxxxx */ \
660
+ "sri z1.h, z21.h, #6 \n" /* 1rrrrrgggggxxxxx */ \
661
+ "sri z0.h, z16.h, #11 \n" /* 1rrrrrgggggbbbbb */ \
662
+ "sri z1.h, z20.h, #11 \n" /* 1rrrrrgggggbbbbb */
663
+
664
+ static inline void I422ToARGB1555Row_SVE_SC(
665
+ const uint8_t* src_y,
666
+ const uint8_t* src_u,
667
+ const uint8_t* src_v,
668
+ uint8_t* dst_argb1555,
669
+ const struct YuvConstants* yuvconstants,
670
+ int width) STREAMING_COMPATIBLE {
671
+ uint64_t vl;
672
+ asm volatile(
673
+ "cntb %[vl] \n"
674
+ "ptrue p0.b \n" //
675
+ YUVTORGB_SVE_SETUP
676
+ "subs %w[width], %w[width], %w[vl] \n"
677
+ "b.lt 2f \n"
678
+
679
+ // Run bulk of computation with an all-true predicate to avoid predicate
680
+ // generation overhead.
681
+ "ptrue p1.b \n"
682
+ "1: \n" //
683
+ READYUV422_SVE_2X I422TORGB_SVE_2X RGBTOARGB8_SVE_TOP_2X
684
+ "subs %w[width], %w[width], %w[vl] \n" //
685
+ RGB8TOARGB1555_SVE_FROM_TOP_2X
686
+ "st2h {z0.h, z1.h}, p1, [%[dst]] \n"
687
+ "incb %[dst], all, mul #2 \n"
688
+ "b.ge 1b \n"
689
+
690
+ "2: \n"
691
+ "adds %w[width], %w[width], %w[vl] \n"
692
+ "b.eq 99f \n"
693
+
694
+ // Calculate a predicate for the final iteration to deal with the tail.
695
+ "cnth %[vl] \n"
696
+ "whilelt p1.b, wzr, %w[width] \n" //
697
+ READYUV422_SVE_2X I422TORGB_SVE_2X RGBTOARGB8_SVE_TOP_2X
698
+ RGB8TOARGB1555_SVE_FROM_TOP_2X
699
+ "st2h {z0.h, z1.h}, p1, [%[dst]] \n"
700
+
701
+ "99: \n"
702
+ : [src_y] "+r"(src_y), // %[src_y]
703
+ [src_u] "+r"(src_u), // %[src_u]
704
+ [src_v] "+r"(src_v), // %[src_v]
705
+ [dst] "+r"(dst_argb1555), // %[dst]
706
+ [width] "+r"(width), // %[width]
707
+ [vl] "=&r"(vl) // %[vl]
708
+ : [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
709
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias) // %[kRGBCoeffBias]
710
+ : "cc", "memory", YUVTORGB_SVE_REGS);
711
+ }
712
+
713
+ #define RGB8TOARGB4444_SVE_FROM_TOP_2X \
714
+ "dup z0.h, #0xf000 \n" /* 1111000000000000 */ \
715
+ "dup z1.h, #0xf000 \n" /* 1111000000000000 */ \
716
+ "sri z0.h, z18.h, #4 \n" /* 1111rrrrxxxxxxxx */ \
717
+ "sri z1.h, z22.h, #4 \n" /* 1111rrrrxxxxxxxx */ \
718
+ "sri z0.h, z17.h, #8 \n" /* 1111rrrrggggxxxx */ \
719
+ "sri z1.h, z21.h, #8 \n" /* 1111rrrrggggxxxx */ \
720
+ "sri z0.h, z16.h, #12 \n" /* 1111rrrrggggbbbb */ \
721
+ "sri z1.h, z20.h, #12 \n" /* 1111rrrrggggbbbb */
722
+
723
+ static inline void I422ToARGB4444Row_SVE_SC(
724
+ const uint8_t* src_y,
725
+ const uint8_t* src_u,
726
+ const uint8_t* src_v,
727
+ uint8_t* dst_argb4444,
728
+ const struct YuvConstants* yuvconstants,
729
+ int width) STREAMING_COMPATIBLE {
730
+ uint64_t vl;
731
+ asm volatile(
732
+ "cntb %[vl] \n"
733
+ "ptrue p0.b \n" //
734
+ YUVTORGB_SVE_SETUP
735
+ "subs %w[width], %w[width], %w[vl] \n"
736
+ "b.lt 2f \n"
737
+
738
+ // Run bulk of computation with an all-true predicate to avoid predicate
739
+ // generation overhead.
740
+ "ptrue p1.b \n"
741
+ "1: \n" //
742
+ READYUV422_SVE_2X I422TORGB_SVE_2X RGBTOARGB8_SVE_TOP_2X
743
+ "subs %w[width], %w[width], %w[vl] \n" //
744
+ RGB8TOARGB4444_SVE_FROM_TOP_2X
745
+ "st2h {z0.h, z1.h}, p1, [%[dst]] \n"
746
+ "incb %[dst], all, mul #2 \n"
747
+ "b.ge 1b \n"
748
+
749
+ "2: \n"
750
+ "adds %w[width], %w[width], %w[vl] \n"
751
+ "b.eq 99f \n"
752
+
753
+ // Calculate a predicate for the final iteration to deal with the tail.
754
+ "cnth %[vl] \n"
755
+ "whilelt p1.b, wzr, %w[width] \n" //
756
+ READYUV422_SVE_2X I422TORGB_SVE_2X RGBTOARGB8_SVE_TOP_2X
757
+ RGB8TOARGB4444_SVE_FROM_TOP_2X
758
+ "st2h {z0.h, z1.h}, p1, [%[dst]] \n"
759
+
760
+ "99: \n"
761
+ : [src_y] "+r"(src_y), // %[src_y]
762
+ [src_u] "+r"(src_u), // %[src_u]
763
+ [src_v] "+r"(src_v), // %[src_v]
764
+ [dst] "+r"(dst_argb4444), // %[dst]
765
+ [width] "+r"(width), // %[width]
766
+ [vl] "=&r"(vl) // %[vl]
767
+ : [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
768
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias) // %[kRGBCoeffBias]
769
+ : "cc", "memory", YUVTORGB_SVE_REGS);
770
+ }
771
+
772
+ static inline void I422ToRGBARow_SVE_SC(const uint8_t* src_y,
773
+ const uint8_t* src_u,
774
+ const uint8_t* src_v,
775
+ uint8_t* dst_argb,
776
+ const struct YuvConstants* yuvconstants,
777
+ int width) STREAMING_COMPATIBLE {
778
+ uint64_t vl;
779
+ asm volatile(
780
+ "cnth %[vl] \n"
781
+ "ptrue p0.b \n" //
782
+ YUVTORGB_SVE_SETUP
783
+ "dup z19.b, #255 \n" // Alpha
784
+ "subs %w[width], %w[width], %w[vl] \n"
785
+ "b.le 2f \n"
786
+
787
+ // Run bulk of computation with an all-true predicate to avoid predicate
788
+ // generation overhead.
789
+ "ptrue p1.h \n"
790
+ "1: \n" //
791
+ READYUV422_SVE I4XXTORGB_SVE RGBTORGBA8_SVE
792
+ "subs %w[width], %w[width], %w[vl] \n"
793
+ "st2h {z19.h, z20.h}, p1, [%[dst_argb]] \n"
794
+ "add %[dst_argb], %[dst_argb], %[vl], lsl #2 \n"
795
+ "b.gt 1b \n"
796
+
797
+ // Calculate a predicate for the final iteration to deal with the tail.
798
+ "2: \n"
799
+ "adds %w[width], %w[width], %w[vl] \n"
800
+ "b.eq 99f \n"
801
+
802
+ "whilelt p1.h, wzr, %w[width] \n" //
803
+ READYUV422_SVE I4XXTORGB_SVE RGBTORGBA8_SVE
804
+ "st2h {z19.h, z20.h}, p1, [%[dst_argb]] \n"
805
+
806
+ "99: \n"
807
+ : [src_y] "+r"(src_y), // %[src_y]
808
+ [src_u] "+r"(src_u), // %[src_u]
809
+ [src_v] "+r"(src_v), // %[src_v]
810
+ [dst_argb] "+r"(dst_argb), // %[dst_argb]
811
+ [width] "+r"(width), // %[width]
812
+ [vl] "=&r"(vl) // %[vl]
813
+ : [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
814
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias) // %[kRGBCoeffBias]
815
+ : "cc", "memory", YUVTORGB_SVE_REGS);
816
+ }
817
+
818
+ static inline void I422ToAR30Row_SVE_SC(const uint8_t* src_y,
819
+ const uint8_t* src_u,
820
+ const uint8_t* src_v,
821
+ uint8_t* dst_ar30,
822
+ const struct YuvConstants* yuvconstants,
823
+ int width) STREAMING_COMPATIBLE {
824
+ uint64_t vl;
825
+ // The limit is used for saturating the 2.14 red channel in STOREAR30_SVE_2X.
826
+ const uint16_t limit = 0x3ff0;
827
+ asm volatile(
828
+ "cnth %[vl] \n"
829
+ "ptrue p0.b \n" //
830
+ YUVTORGB_SVE_SETUP
831
+ "dup z23.h, %w[limit] \n"
832
+ "subs %w[width], %w[width], %w[vl], lsl #1 \n"
833
+ "b.le 2f \n"
834
+
835
+ // Run bulk of computation with an all-true predicate to avoid predicate
836
+ // generation overhead.
837
+ "ptrue p1.b \n"
838
+ "ptrue p2.b \n"
839
+ "ptrue p3.b \n"
840
+ "1: \n" //
841
+ READYUV422_SVE_2X I422TORGB_SVE_2X STOREAR30_SVE_2X
842
+ "subs %w[width], %w[width], %w[vl], lsl #1 \n"
843
+ "b.gt 1b \n"
844
+
845
+ // Calculate a predicate for the final iteration to deal with the tail.
846
+ "2: \n"
847
+ "adds %w[width], %w[width], %w[vl], lsl #1 \n"
848
+ "b.eq 99f \n"
849
+
850
+ "whilelt p1.b, wzr, %w[width] \n"
851
+ "whilelt p2.h, wzr, %w[width] \n"
852
+ "whilelt p3.h, %w[vl], %w[width] \n" //
853
+ READYUV422_SVE_2X I422TORGB_SVE_2X STOREAR30_SVE_2X
854
+
855
+ "99: \n"
856
+ : [src_y] "+r"(src_y), // %[src_y]
857
+ [src_u] "+r"(src_u), // %[src_u]
858
+ [src_v] "+r"(src_v), // %[src_v]
859
+ [dst_ar30] "+r"(dst_ar30), // %[dst_ar30]
860
+ [width] "+r"(width), // %[width]
861
+ [vl] "=&r"(vl) // %[vl]
862
+ : [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
863
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias), // %[kRGBCoeffBias]
864
+ [limit] "r"(limit) // %[limit]
865
+ : "cc", "memory", YUVTORGB_SVE_REGS);
866
+ }
867
+
868
+ static inline void I422AlphaToARGBRow_SVE_SC(
869
+ const uint8_t* src_y,
870
+ const uint8_t* src_u,
871
+ const uint8_t* src_v,
872
+ const uint8_t* src_a,
873
+ uint8_t* dst_argb,
874
+ const struct YuvConstants* yuvconstants,
875
+ int width) STREAMING_COMPATIBLE {
876
+ uint64_t vl;
877
+ asm volatile(
878
+ "cntb %[vl] \n"
879
+ "ptrue p0.b \n" //
880
+ YUVTORGB_SVE_SETUP
881
+ "subs %w[width], %w[width], %w[vl] \n"
882
+ "b.lt 2f \n"
883
+
884
+ // Run bulk of computation with an all-true predicate to avoid predicate
885
+ // generation overhead.
886
+ "ptrue p1.b \n"
887
+ "1: \n" //
888
+ READYUV422_SVE_2X
889
+ "ld1b {z19.b}, p1/z, [%[src_a]] \n"
890
+ "add %[src_a], %[src_a], %[vl] \n" // Alpha
891
+ I422TORGB_SVE_2X RGBTOARGB8_SVE_2X
892
+ "subs %w[width], %w[width], %w[vl] \n"
893
+ "st4b {z16.b, z17.b, z18.b, z19.b}, p1, [%[dst_argb]] \n"
894
+ "incb %[dst_argb], all, mul #4 \n"
895
+ "b.ge 1b \n"
896
+
897
+ "2: \n"
898
+ "adds %w[width], %w[width], %w[vl] \n"
899
+ "b.eq 99f \n"
900
+
901
+ // Calculate a predicate for the final iteration to deal with the tail.
902
+ "cnth %[vl] \n"
903
+ "whilelt p1.b, wzr, %w[width] \n" //
904
+ READYUV422_SVE_2X
905
+ "ld1b {z19.b}, p1/z, [%[src_a]] \n" // Alpha
906
+ I422TORGB_SVE_2X RGBTOARGB8_SVE_2X
907
+ "st4b {z16.b, z17.b, z18.b, z19.b}, p1, [%[dst_argb]] \n"
908
+
909
+ "99: \n"
910
+ : [src_y] "+r"(src_y), // %[src_y]
911
+ [src_u] "+r"(src_u), // %[src_u]
912
+ [src_v] "+r"(src_v), // %[src_v]
913
+ [src_a] "+r"(src_a), // %[src_a]
914
+ [dst_argb] "+r"(dst_argb), // %[dst_argb]
915
+ [width] "+r"(width), // %[width]
916
+ [vl] "=&r"(vl) // %[vl]
917
+ : [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
918
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias) // %[kRGBCoeffBias]
919
+ : "cc", "memory", YUVTORGB_SVE_REGS);
920
+ }
921
+
922
+ static inline void I444AlphaToARGBRow_SVE_SC(
923
+ const uint8_t* src_y,
924
+ const uint8_t* src_u,
925
+ const uint8_t* src_v,
926
+ const uint8_t* src_a,
927
+ uint8_t* dst_argb,
928
+ const struct YuvConstants* yuvconstants,
929
+ int width) STREAMING_COMPATIBLE {
930
+ uint64_t vl;
931
+ asm volatile(
932
+ "cnth %[vl] \n"
933
+ "ptrue p0.b \n" //
934
+ YUVTORGB_SVE_SETUP
935
+ "subs %w[width], %w[width], %w[vl] \n"
936
+ "b.lt 2f \n"
937
+
938
+ // Run bulk of computation with an all-true predicate to avoid predicate
939
+ // generation overhead.
940
+ "ptrue p1.h \n"
941
+ "1: \n" //
942
+ READYUV444_SVE
943
+ "ld1b {z19.h}, p1/z, [%[src_a]] \n"
944
+ "add %[src_a], %[src_a], %[vl] \n" // Alpha
945
+ I4XXTORGB_SVE RGBTOARGB8_SVE
946
+ "subs %w[width], %w[width], %w[vl] \n"
947
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
948
+ "add %[dst_argb], %[dst_argb], %[vl], lsl #2 \n"
949
+ "b.ge 1b \n"
950
+
951
+ "2: \n"
952
+ "adds %w[width], %w[width], %w[vl] \n"
953
+ "b.eq 99f \n"
954
+
955
+ // Calculate a predicate for the final iteration to deal with the tail.
956
+ "whilelt p1.h, wzr, %w[width] \n" //
957
+ READYUV444_SVE
958
+ "ld1b {z19.h}, p1/z, [%[src_a]] \n" // Alpha
959
+ I4XXTORGB_SVE RGBTOARGB8_SVE
960
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
961
+
962
+ "99: \n"
963
+ : [src_y] "+r"(src_y), // %[src_y]
964
+ [src_u] "+r"(src_u), // %[src_u]
965
+ [src_v] "+r"(src_v), // %[src_v]
966
+ [src_a] "+r"(src_a), // %[src_a]
967
+ [dst_argb] "+r"(dst_argb), // %[dst_argb]
968
+ [width] "+r"(width), // %[width]
969
+ [vl] "=&r"(vl) // %[vl]
970
+ : [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
971
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias) // %[kRGBCoeffBias]
972
+ : "cc", "memory", YUVTORGB_SVE_REGS);
973
+ }
974
+
975
+ static inline void NV12ToARGBRow_SVE_SC(const uint8_t* src_y,
976
+ const uint8_t* src_uv,
977
+ uint8_t* dst_argb,
978
+ const struct YuvConstants* yuvconstants,
979
+ int width) STREAMING_COMPATIBLE {
980
+ uint64_t vl;
981
+ asm("cntb %0" : "=r"(vl));
982
+ int width_last_y = width & (vl - 1);
983
+ int width_last_uv = width_last_y + (width_last_y & 1);
984
+ asm volatile(
985
+ "ptrue p0.b \n" //
986
+ YUVTORGB_SVE_SETUP
987
+ "dup z19.b, #255 \n" // Alpha
988
+ "subs %w[width], %w[width], %w[vl] \n"
989
+ "b.lt 2f \n"
990
+
991
+ // Run bulk of computation with an all-true predicate to avoid predicate
992
+ // generation overhead.
993
+ "ptrue p1.b \n"
994
+ "ptrue p2.b \n"
995
+ "1: \n" //
996
+ READNV_SVE_2X NVTORGB_SVE_2X(b, t) RGBTOARGB8_SVE_2X
997
+ "subs %w[width], %w[width], %w[vl] \n"
998
+ "st4b {z16.b, z17.b, z18.b, z19.b}, p1, [%[dst_argb]] \n"
999
+ "add %[dst_argb], %[dst_argb], %[vl], lsl #2 \n"
1000
+ "b.ge 1b \n"
1001
+
1002
+ "2: \n"
1003
+ "adds %w[width], %w[width], %w[vl] \n"
1004
+ "b.eq 99f \n"
1005
+
1006
+ // Calculate a predicate for the final iteration to deal with the tail.
1007
+ "whilelt p1.b, wzr, %w[width_last_y] \n"
1008
+ "whilelt p2.b, wzr, %w[width_last_uv] \n" //
1009
+ READNV_SVE_2X NVTORGB_SVE_2X(b, t) RGBTOARGB8_SVE_2X
1010
+ "st4b {z16.b, z17.b, z18.b, z19.b}, p1, [%[dst_argb]] \n"
1011
+
1012
+ "99: \n"
1013
+ : [src_y] "+r"(src_y), // %[src_y]
1014
+ [src_uv] "+r"(src_uv), // %[src_uv]
1015
+ [dst_argb] "+r"(dst_argb), // %[dst_argb]
1016
+ [width] "+r"(width) // %[width]
1017
+ : [vl] "r"(vl), // %[vl]
1018
+ [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
1019
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias), // %[kRGBCoeffBias]
1020
+ [width_last_y] "r"(width_last_y), // %[width_last_y]
1021
+ [width_last_uv] "r"(width_last_uv) // %[width_last_uv]
1022
+ : "cc", "memory", YUVTORGB_SVE_REGS, "p2");
1023
+ }
1024
+
1025
+ static inline void NV21ToARGBRow_SVE_SC(const uint8_t* src_y,
1026
+ const uint8_t* src_vu,
1027
+ uint8_t* dst_argb,
1028
+ const struct YuvConstants* yuvconstants,
1029
+ int width) STREAMING_COMPATIBLE {
1030
+ uint64_t vl;
1031
+ asm("cntb %0" : "=r"(vl));
1032
+ int width_last_y = width & (vl - 1);
1033
+ int width_last_uv = width_last_y + (width_last_y & 1);
1034
+ asm volatile(
1035
+ "ptrue p0.b \n" //
1036
+ YUVTORGB_SVE_SETUP
1037
+ "dup z19.b, #255 \n" // Alpha
1038
+ "subs %w[width], %w[width], %w[vl] \n"
1039
+ "b.lt 2f \n"
1040
+
1041
+ // Run bulk of computation with an all-true predicate to avoid predicate
1042
+ // generation overhead.
1043
+ "ptrue p1.b \n"
1044
+ "ptrue p2.b \n"
1045
+ "1: \n" //
1046
+ READNV_SVE_2X NVTORGB_SVE_2X(t, b) RGBTOARGB8_SVE_2X
1047
+ "subs %w[width], %w[width], %w[vl] \n"
1048
+ "st4b {z16.b, z17.b, z18.b, z19.b}, p1, [%[dst_argb]] \n"
1049
+ "add %[dst_argb], %[dst_argb], %[vl], lsl #2 \n"
1050
+ "b.ge 1b \n"
1051
+
1052
+ "2: \n"
1053
+ "adds %w[width], %w[width], %w[vl] \n"
1054
+ "b.eq 99f \n"
1055
+
1056
+ // Calculate a predicate for the final iteration to deal with the tail.
1057
+ "whilelt p1.b, wzr, %w[width_last_y] \n"
1058
+ "whilelt p2.b, wzr, %w[width_last_uv] \n" //
1059
+ READNV_SVE_2X NVTORGB_SVE_2X(t, b) RGBTOARGB8_SVE_2X
1060
+ "st4b {z16.b, z17.b, z18.b, z19.b}, p1, [%[dst_argb]] \n"
1061
+
1062
+ "99: \n"
1063
+ : [src_y] "+r"(src_y), // %[src_y]
1064
+ [src_uv] "+r"(src_vu), // %[src_vu]
1065
+ [dst_argb] "+r"(dst_argb), // %[dst_argb]
1066
+ [width] "+r"(width) // %[width]
1067
+ : [vl] "r"(vl), // %[vl]
1068
+ [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
1069
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias), // %[kRGBCoeffBias]
1070
+ [width_last_y] "r"(width_last_y), // %[width_last_y]
1071
+ [width_last_uv] "r"(width_last_uv) // %[width_last_uv]
1072
+ : "cc", "memory", YUVTORGB_SVE_REGS, "p2");
1073
+ }
1074
+
1075
+ static inline void NV12ToRGB24Row_SVE_SC(
1076
+ const uint8_t* src_y,
1077
+ const uint8_t* src_uv,
1078
+ uint8_t* dst_rgb24,
1079
+ const struct YuvConstants* yuvconstants,
1080
+ int width) STREAMING_COMPATIBLE {
1081
+ uint64_t vl;
1082
+ asm("cntb %0" : "=r"(vl));
1083
+ int width_last_y = width & (vl - 1);
1084
+ int width_last_uv = width_last_y + (width_last_y & 1);
1085
+ asm volatile(
1086
+ "ptrue p0.b \n" //
1087
+ YUVTORGB_SVE_SETUP
1088
+ "dup z19.b, #255 \n" // Alpha
1089
+ "subs %w[width], %w[width], %w[vl] \n"
1090
+ "b.lt 2f \n"
1091
+
1092
+ // Run bulk of computation with an all-true predicate to avoid predicate
1093
+ // generation overhead.
1094
+ "ptrue p1.b \n"
1095
+ "ptrue p2.b \n"
1096
+ "1: \n" //
1097
+ READNV_SVE_2X NVTORGB_SVE_2X(b, t) RGBTOARGB8_SVE_2X
1098
+ "subs %w[width], %w[width], %w[vl] \n"
1099
+ "st3b {z16.b, z17.b, z18.b}, p1, [%[dst_rgb24]] \n"
1100
+ "incb %[dst_rgb24], all, mul #3 \n"
1101
+ "b.ge 1b \n"
1102
+
1103
+ "2: \n"
1104
+ "adds %w[width], %w[width], %w[vl] \n"
1105
+ "b.eq 99f \n"
1106
+
1107
+ // Calculate a predicate for the final iteration to deal with the tail.
1108
+ "whilelt p1.b, wzr, %w[width_last_y] \n"
1109
+ "whilelt p2.b, wzr, %w[width_last_uv] \n" //
1110
+ READNV_SVE_2X NVTORGB_SVE_2X(b, t) RGBTOARGB8_SVE_2X
1111
+ "st3b {z16.b, z17.b, z18.b}, p1, [%[dst_rgb24]] \n"
1112
+
1113
+ "99: \n"
1114
+ : [src_y] "+r"(src_y), // %[src_y]
1115
+ [src_uv] "+r"(src_uv), // %[src_uv]
1116
+ [dst_rgb24] "+r"(dst_rgb24), // %[dst_rgb24]
1117
+ [width] "+r"(width) // %[width]
1118
+ : [vl] "r"(vl), // %[vl]
1119
+ [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
1120
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias), // %[kRGBCoeffBias]
1121
+ [width_last_y] "r"(width_last_y), // %[width_last_y]
1122
+ [width_last_uv] "r"(width_last_uv) // %[width_last_uv]
1123
+ : "cc", "memory", YUVTORGB_SVE_REGS, "p2");
1124
+ }
1125
+
1126
+ static inline void NV21ToRGB24Row_SVE_SC(
1127
+ const uint8_t* src_y,
1128
+ const uint8_t* src_vu,
1129
+ uint8_t* dst_rgb24,
1130
+ const struct YuvConstants* yuvconstants,
1131
+ int width) STREAMING_COMPATIBLE {
1132
+ uint64_t vl;
1133
+ asm("cntb %0" : "=r"(vl));
1134
+ int width_last_y = width & (vl - 1);
1135
+ int width_last_uv = width_last_y + (width_last_y & 1);
1136
+ asm volatile(
1137
+ "ptrue p0.b \n" //
1138
+ YUVTORGB_SVE_SETUP
1139
+ "dup z19.b, #255 \n" // Alpha
1140
+ "subs %w[width], %w[width], %w[vl] \n"
1141
+ "b.lt 2f \n"
1142
+
1143
+ // Run bulk of computation with an all-true predicate to avoid predicate
1144
+ // generation overhead.
1145
+ "ptrue p1.b \n"
1146
+ "ptrue p2.b \n"
1147
+ "1: \n" //
1148
+ READNV_SVE_2X NVTORGB_SVE_2X(t, b) RGBTOARGB8_SVE_2X
1149
+ "subs %w[width], %w[width], %w[vl] \n"
1150
+ "st3b {z16.b, z17.b, z18.b}, p1, [%[dst_rgb24]] \n"
1151
+ "incb %[dst_rgb24], all, mul #3 \n"
1152
+ "b.ge 1b \n"
1153
+
1154
+ "2: \n"
1155
+ "adds %w[width], %w[width], %w[vl] \n"
1156
+ "b.eq 99f \n"
1157
+
1158
+ // Calculate a predicate for the final iteration to deal with the tail.
1159
+ "whilelt p1.b, wzr, %w[width_last_y] \n"
1160
+ "whilelt p2.b, wzr, %w[width_last_uv] \n" //
1161
+ READNV_SVE_2X NVTORGB_SVE_2X(t, b) RGBTOARGB8_SVE_2X
1162
+ "st3b {z16.b, z17.b, z18.b}, p1, [%[dst_rgb24]] \n"
1163
+
1164
+ "99: \n"
1165
+ : [src_y] "+r"(src_y), // %[src_y]
1166
+ [src_uv] "+r"(src_vu), // %[src_vu]
1167
+ [dst_rgb24] "+r"(dst_rgb24), // %[dst_rgb24]
1168
+ [width] "+r"(width) // %[width]
1169
+ : [vl] "r"(vl), // %[vl]
1170
+ [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
1171
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias), // %[kRGBCoeffBias]
1172
+ [width_last_y] "r"(width_last_y), // %[width_last_y]
1173
+ [width_last_uv] "r"(width_last_uv) // %[width_last_uv]
1174
+ : "cc", "memory", YUVTORGB_SVE_REGS, "p2");
1175
+ }
1176
+
1177
+ #define READYUY2_SVE \
1178
+ "ld1w {z0.s}, p2/z, [%[src_yuy2]] \n" /* YUYV */ \
1179
+ "incb %[src_yuy2] \n" \
1180
+ "prfm pldl1keep, [%[src_yuy2], 448] \n" \
1181
+ "tbl z1.b, {z0.b}, z22.b \n" /* UVUV */ \
1182
+ "trn1 z0.b, z0.b, z0.b \n" /* YYYY */
1183
+
1184
+ static inline void YUY2ToARGBRow_SVE_SC(const uint8_t* src_yuy2,
1185
+ uint8_t* dst_argb,
1186
+ const struct YuvConstants* yuvconstants,
1187
+ int width) STREAMING_COMPATIBLE {
1188
+ uint32_t nv_uv_start = 0x03010301U;
1189
+ uint32_t nv_uv_step = 0x04040404U;
1190
+ uint64_t vl;
1191
+ asm("cnth %0" : "=r"(vl));
1192
+ int width_last_y = width & (vl - 1);
1193
+ int width_last_uv = width_last_y + (width_last_y & 1);
1194
+ asm volatile(
1195
+ "ptrue p0.b \n"
1196
+ "index z22.s, %w[nv_uv_start], %w[nv_uv_step] \n"
1197
+ "dup z19.b, #255 \n" // Alpha
1198
+ YUVTORGB_SVE_SETUP
1199
+ "subs %w[width], %w[width], %w[vl] \n"
1200
+ "b.lt 2f \n"
1201
+
1202
+ // Run bulk of computation with an all-true predicate to avoid predicate
1203
+ // generation overhead.
1204
+ "ptrue p1.h \n"
1205
+ "ptrue p2.h \n"
1206
+ "1: \n" //
1207
+ READYUY2_SVE NVTORGB_SVE RGBTOARGB8_SVE
1208
+ "subs %w[width], %w[width], %w[vl] \n"
1209
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
1210
+ "add %[dst_argb], %[dst_argb], %[vl], lsl #2 \n"
1211
+ "b.ge 1b \n"
1212
+
1213
+ "2: \n"
1214
+ "adds %w[width], %w[width], %w[vl] \n"
1215
+ "b.eq 99f \n"
1216
+
1217
+ // Calculate a predicate for the final iteration to deal with the tail.
1218
+ "whilelt p1.h, wzr, %w[width_last_y] \n"
1219
+ "whilelt p2.h, wzr, %w[width_last_uv] \n" //
1220
+ READYUY2_SVE NVTORGB_SVE RGBTOARGB8_SVE
1221
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
1222
+
1223
+ "99: \n"
1224
+ : [src_yuy2] "+r"(src_yuy2), // %[src_yuy2]
1225
+ [dst_argb] "+r"(dst_argb), // %[dst_argb]
1226
+ [width] "+r"(width) // %[width]
1227
+ : [vl] "r"(vl), // %[vl]
1228
+ [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
1229
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias), // %[kRGBCoeffBias]
1230
+ [nv_uv_start] "r"(nv_uv_start), // %[nv_uv_start]
1231
+ [nv_uv_step] "r"(nv_uv_step), // %[nv_uv_step]
1232
+ [width_last_y] "r"(width_last_y), // %[width_last_y]
1233
+ [width_last_uv] "r"(width_last_uv) // %[width_last_uv]
1234
+ : "cc", "memory", YUVTORGB_SVE_REGS, "p2");
1235
+ }
1236
+
1237
+ #define READUYVY_SVE \
1238
+ "ld1w {z0.s}, p2/z, [%[src_uyvy]] \n" /* UYVY */ \
1239
+ "incb %[src_uyvy] \n" \
1240
+ "prfm pldl1keep, [%[src_uyvy], 448] \n" \
1241
+ "tbl z1.b, {z0.b}, z22.b \n" /* UVUV */ \
1242
+ "trn2 z0.b, z0.b, z0.b \n" /* YYYY */
1243
+
1244
+ static inline void UYVYToARGBRow_SVE_SC(const uint8_t* src_uyvy,
1245
+ uint8_t* dst_argb,
1246
+ const struct YuvConstants* yuvconstants,
1247
+ int width) STREAMING_COMPATIBLE {
1248
+ uint32_t nv_uv_start = 0x02000200U;
1249
+ uint32_t nv_uv_step = 0x04040404U;
1250
+ uint64_t vl;
1251
+ asm("cnth %0" : "=r"(vl));
1252
+ int width_last_y = width & (vl - 1);
1253
+ int width_last_uv = width_last_y + (width_last_y & 1);
1254
+ asm volatile(
1255
+ "ptrue p0.b \n"
1256
+ "index z22.s, %w[nv_uv_start], %w[nv_uv_step] \n"
1257
+ "dup z19.b, #255 \n" // Alpha
1258
+ YUVTORGB_SVE_SETUP
1259
+ "subs %w[width], %w[width], %w[vl] \n"
1260
+ "b.lt 2f \n"
1261
+
1262
+ // Run bulk of computation with an all-true predicate to avoid predicate
1263
+ // generation overhead.
1264
+ "ptrue p1.h \n"
1265
+ "ptrue p2.h \n"
1266
+ "1: \n" //
1267
+ READUYVY_SVE NVTORGB_SVE RGBTOARGB8_SVE
1268
+ "subs %w[width], %w[width], %w[vl] \n"
1269
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
1270
+ "add %[dst_argb], %[dst_argb], %[vl], lsl #2 \n"
1271
+ "b.ge 1b \n"
1272
+
1273
+ "2: \n"
1274
+ "adds %w[width], %w[width], %w[vl] \n"
1275
+ "b.eq 99f \n"
1276
+
1277
+ // Calculate a predicate for the final iteration to deal with the tail.
1278
+ "2: \n"
1279
+ "whilelt p1.h, wzr, %w[width_last_y] \n"
1280
+ "whilelt p2.h, wzr, %w[width_last_uv] \n" //
1281
+ READUYVY_SVE NVTORGB_SVE RGBTOARGB8_SVE
1282
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
1283
+
1284
+ "99: \n"
1285
+ : [src_uyvy] "+r"(src_uyvy), // %[src_yuy2]
1286
+ [dst_argb] "+r"(dst_argb), // %[dst_argb]
1287
+ [width] "+r"(width) // %[width]
1288
+ : [vl] "r"(vl), // %[vl]
1289
+ [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
1290
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias), // %[kRGBCoeffBias]
1291
+ [nv_uv_start] "r"(nv_uv_start), // %[nv_uv_start]
1292
+ [nv_uv_step] "r"(nv_uv_step), // %[nv_uv_step]
1293
+ [width_last_y] "r"(width_last_y), // %[width_last_y]
1294
+ [width_last_uv] "r"(width_last_uv) // %[width_last_uv]
1295
+ : "cc", "memory", YUVTORGB_SVE_REGS, "p2");
1296
+ }
1297
+
1298
+ static inline void I210ToARGBRow_SVE_SC(const uint16_t* src_y,
1299
+ const uint16_t* src_u,
1300
+ const uint16_t* src_v,
1301
+ uint8_t* dst_argb,
1302
+ const struct YuvConstants* yuvconstants,
1303
+ int width) STREAMING_COMPATIBLE {
1304
+ uint64_t vl;
1305
+ asm("cnth %0" : "=r"(vl));
1306
+ int width_last_y = width & (vl - 1);
1307
+ asm volatile(
1308
+ "ptrue p0.b \n" //
1309
+ YUVTORGB_SVE_SETUP
1310
+ "dup z19.b, #255 \n" // Alpha
1311
+ "subs %w[width], %w[width], %w[vl] \n"
1312
+ "b.lt 2f \n"
1313
+
1314
+ // Run bulk of computation with an all-true predicate to avoid predicate
1315
+ // generation overhead.
1316
+ "ptrue p1.h \n"
1317
+ "1: \n" //
1318
+ READI210_SVE I4XXTORGB_SVE RGBTOARGB8_SVE
1319
+ "subs %w[width], %w[width], %w[vl] \n"
1320
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
1321
+ "add %[dst_argb], %[dst_argb], %[vl], lsl #2 \n"
1322
+ "b.ge 1b \n"
1323
+
1324
+ "2: \n"
1325
+ "adds %w[width], %w[width], %w[vl] \n"
1326
+ "b.eq 99f \n"
1327
+
1328
+ // Calculate a predicate for the final iteration to deal with the tail.
1329
+ "whilelt p1.h, wzr, %w[width_last_y] \n" //
1330
+ READI210_SVE I4XXTORGB_SVE RGBTOARGB8_SVE
1331
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
1332
+
1333
+ "99: \n"
1334
+ : [src_y] "+r"(src_y), // %[src_y]
1335
+ [src_u] "+r"(src_u), // %[src_u]
1336
+ [src_v] "+r"(src_v), // %[src_v]
1337
+ [dst_argb] "+r"(dst_argb), // %[dst_argb]
1338
+ [width] "+r"(width) // %[width]
1339
+ : [vl] "r"(vl), // %[vl]
1340
+ [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
1341
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias), // %[kRGBCoeffBias]
1342
+ [width_last_y] "r"(width_last_y) // %[width_last_y]
1343
+ : "cc", "memory", YUVTORGB_SVE_REGS);
1344
+ }
1345
+
1346
+ static inline void I210AlphaToARGBRow_SVE_SC(
1347
+ const uint16_t* src_y,
1348
+ const uint16_t* src_u,
1349
+ const uint16_t* src_v,
1350
+ const uint16_t* src_a,
1351
+ uint8_t* dst_argb,
1352
+ const struct YuvConstants* yuvconstants,
1353
+ int width) STREAMING_COMPATIBLE {
1354
+ uint64_t vl;
1355
+ asm("cnth %0" : "=r"(vl));
1356
+ int width_last_y = width & (vl - 1);
1357
+ asm volatile(
1358
+ "ptrue p0.b \n" //
1359
+ YUVTORGB_SVE_SETUP
1360
+ "subs %w[width], %w[width], %w[vl] \n"
1361
+ "b.lt 2f \n"
1362
+
1363
+ // Run bulk of computation with an all-true predicate to avoid predicate
1364
+ // generation overhead.
1365
+ "ptrue p1.h \n"
1366
+ "1: \n" //
1367
+ READI210_SVE
1368
+ "ld1h {z19.h}, p1/z, [%[src_a]] \n" //
1369
+ I4XXTORGB_SVE
1370
+ "incb %[src_a] \n" //
1371
+ RGBATOARGB8_SVE
1372
+ "subs %w[width], %w[width], %w[vl] \n"
1373
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
1374
+ "add %[dst_argb], %[dst_argb], %[vl], lsl #2 \n"
1375
+ "b.ge 1b \n"
1376
+
1377
+ "2: \n"
1378
+ "adds %w[width], %w[width], %w[vl] \n"
1379
+ "b.eq 99f \n"
1380
+
1381
+ // Calculate a predicate for the final iteration to deal with the tail.
1382
+ "whilelt p1.h, wzr, %w[width_last_y] \n" //
1383
+ READI210_SVE
1384
+ "ld1h {z19.h}, p1/z, [%[src_a]] \n" //
1385
+ I4XXTORGB_SVE RGBATOARGB8_SVE
1386
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
1387
+
1388
+ "99: \n"
1389
+ : [src_y] "+r"(src_y), // %[src_y]
1390
+ [src_u] "+r"(src_u), // %[src_u]
1391
+ [src_v] "+r"(src_v), // %[src_v]
1392
+ [src_a] "+r"(src_a), // %[src_a]
1393
+ [dst_argb] "+r"(dst_argb), // %[dst_argb]
1394
+ [width] "+r"(width) // %[width]
1395
+ : [vl] "r"(vl), // %[vl]
1396
+ [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
1397
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias), // %[kRGBCoeffBias]
1398
+ [width_last_y] "r"(width_last_y) // %[width_last_y]
1399
+ : "cc", "memory", YUVTORGB_SVE_REGS);
1400
+ }
1401
+
1402
+ static inline void I210ToAR30Row_SVE_SC(const uint16_t* src_y,
1403
+ const uint16_t* src_u,
1404
+ const uint16_t* src_v,
1405
+ uint8_t* dst_ar30,
1406
+ const struct YuvConstants* yuvconstants,
1407
+ int width) STREAMING_COMPATIBLE {
1408
+ uint64_t vl;
1409
+ asm("cnth %0" : "=r"(vl));
1410
+ int width_last_y = width & (2 * vl - 1);
1411
+ int width_last_uv = (width_last_y + 1) / 2;
1412
+ // The limit is used for saturating the 2.14 red channel in STOREAR30_SVE_2X.
1413
+ uint16_t limit = 0x3ff0;
1414
+ asm volatile(
1415
+ "ptrue p0.b \n" //
1416
+ YUVTORGB_SVE_SETUP
1417
+ "dup z23.h, %w[limit] \n"
1418
+ "subs %w[width], %w[width], %w[vl], lsl #1 \n"
1419
+ "b.lt 2f \n"
1420
+
1421
+ // Run bulk of computation with an all-true predicate to avoid predicate
1422
+ // generation overhead.
1423
+ "ptrue p1.h \n"
1424
+ "ptrue p2.h \n"
1425
+ "ptrue p3.h \n"
1426
+ "1: \n" //
1427
+ READI210_SVE_2X I422TORGB_SVE_2X STOREAR30_SVE_2X
1428
+ "subs %w[width], %w[width], %w[vl], lsl #1 \n"
1429
+ "b.ge 1b \n"
1430
+
1431
+ "2: \n"
1432
+ "adds %w[width], %w[width], %w[vl], lsl #1 \n"
1433
+ "b.eq 99f \n"
1434
+
1435
+ // Calculate a predicate for the final iteration to deal with the tail.
1436
+ "whilelt p1.h, wzr, %w[width_last_uv] \n"
1437
+ "whilelt p2.h, wzr, %w[width_last_y] \n"
1438
+ "whilelt p3.h, %w[vl], %w[width_last_y] \n" //
1439
+ READI210_SVE_2X I422TORGB_SVE_2X STOREAR30_SVE_2X
1440
+
1441
+ "99: \n"
1442
+ : [src_y] "+r"(src_y), // %[src_y]
1443
+ [src_u] "+r"(src_u), // %[src_u]
1444
+ [src_v] "+r"(src_v), // %[src_v]
1445
+ [dst_ar30] "+r"(dst_ar30), // %[dst_ar30]
1446
+ [width] "+r"(width) // %[width]
1447
+ : [vl] "r"(vl), // %[vl]
1448
+ [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
1449
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias), // %[kRGBCoeffBias]
1450
+ [width_last_y] "r"(width_last_y), // %[width_last_y]
1451
+ [width_last_uv] "r"(width_last_uv), // %[width_last_uv]
1452
+ [limit] "r"(limit) // %[limit]
1453
+ : "cc", "memory", YUVTORGB_SVE_REGS);
1454
+ }
1455
+
1456
+ // P210 has 10 bits in msb of 16 bit NV12 style layout.
1457
+ static inline void P210ToARGBRow_SVE_SC(const uint16_t* src_y,
1458
+ const uint16_t* src_uv,
1459
+ uint8_t* dst_argb,
1460
+ const struct YuvConstants* yuvconstants,
1461
+ int width) STREAMING_COMPATIBLE {
1462
+ uint64_t vl;
1463
+ asm("cnth %0" : "=r"(vl));
1464
+ int width_last_y = width & (vl - 1);
1465
+ int width_last_uv = width_last_y + (width_last_y & 1);
1466
+ uint32_t nv_uv_start = 0x03010301U;
1467
+ uint32_t nv_uv_step = 0x04040404U;
1468
+ asm volatile(
1469
+ "ptrue p0.b \n" //
1470
+ YUVTORGB_SVE_SETUP
1471
+ "index z22.s, %w[nv_uv_start], %w[nv_uv_step] \n"
1472
+ "dup z19.b, #255 \n" // Alpha
1473
+ "subs %w[width], %w[width], %w[vl] \n"
1474
+ "b.lt 2f \n"
1475
+
1476
+ // Run bulk of computation with an all-true predicate to avoid predicate
1477
+ // generation overhead.
1478
+ "ptrue p1.h \n"
1479
+ "ptrue p2.h \n"
1480
+ "1: \n" //
1481
+ READP210_SVE NVTORGB_SVE RGBTOARGB8_SVE
1482
+ "subs %w[width], %w[width], %w[vl] \n"
1483
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
1484
+ "add %[dst_argb], %[dst_argb], %[vl], lsl #2 \n"
1485
+ "b.ge 1b \n"
1486
+
1487
+ "2: \n"
1488
+ "adds %w[width], %w[width], %w[vl] \n"
1489
+ "b.eq 99f \n"
1490
+
1491
+ // Calculate a predicate for the final iteration to deal with the tail.
1492
+ "whilelt p1.h, wzr, %w[width_last_y] \n"
1493
+ "whilelt p2.h, wzr, %w[width_last_uv] \n" //
1494
+ READP210_SVE NVTORGB_SVE RGBTOARGB8_SVE
1495
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
1496
+
1497
+ "99: \n"
1498
+ : [src_y] "+r"(src_y), // %[src_y]
1499
+ [src_uv] "+r"(src_uv), // %[src_uv]
1500
+ [dst_argb] "+r"(dst_argb), // %[dst_argb]
1501
+ [width] "+r"(width) // %[width]
1502
+ : [vl] "r"(vl), // %[vl]
1503
+ [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
1504
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias), // %[kRGBCoeffBias]
1505
+ [nv_uv_start] "r"(nv_uv_start), // %[nv_uv_start]
1506
+ [nv_uv_step] "r"(nv_uv_step), // %[nv_uv_step]
1507
+ [width_last_y] "r"(width_last_y), // %[width_last_y]
1508
+ [width_last_uv] "r"(width_last_uv) // %[width_last_uv]
1509
+ : "cc", "memory", YUVTORGB_SVE_REGS);
1510
+ }
1511
+
1512
+ static inline void P210ToAR30Row_SVE_SC(const uint16_t* src_y,
1513
+ const uint16_t* src_uv,
1514
+ uint8_t* dst_ar30,
1515
+ const struct YuvConstants* yuvconstants,
1516
+ int width) STREAMING_COMPATIBLE {
1517
+ uint64_t vl;
1518
+ asm("cnth %0" : "=r"(vl));
1519
+ int width_last_y = width & (vl - 1);
1520
+ int width_last_uv = width_last_y + (width_last_y & 1);
1521
+ uint32_t nv_uv_start = 0x03010301U;
1522
+ uint32_t nv_uv_step = 0x04040404U;
1523
+ // The limit is used for saturating the 2.14 red channel in STOREAR30_SVE.
1524
+ uint16_t limit = 0x3ff0;
1525
+ asm volatile(
1526
+ "ptrue p0.b \n" //
1527
+ YUVTORGB_SVE_SETUP
1528
+ "index z22.s, %w[nv_uv_start], %w[nv_uv_step] \n"
1529
+ "dup z23.h, %w[limit] \n"
1530
+ "subs %w[width], %w[width], %w[vl] \n"
1531
+ "b.lt 2f \n"
1532
+
1533
+ // Run bulk of computation with an all-true predicate to avoid predicate
1534
+ // generation overhead.
1535
+ "ptrue p1.h \n"
1536
+ "ptrue p2.h \n"
1537
+ "1: \n" //
1538
+ READP210_SVE NVTORGB_SVE
1539
+ "subs %w[width], %w[width], %w[vl] \n" //
1540
+ STOREAR30_SVE
1541
+ "b.ge 1b \n"
1542
+
1543
+ "2: \n"
1544
+ "adds %w[width], %w[width], %w[vl] \n"
1545
+ "b.eq 99f \n"
1546
+
1547
+ // Calculate a predicate for the final iteration to deal with the tail.
1548
+ "whilelt p1.h, wzr, %w[width_last_y] \n"
1549
+ "whilelt p2.h, wzr, %w[width_last_uv] \n" //
1550
+ READP210_SVE NVTORGB_SVE STOREAR30_SVE
1551
+
1552
+ "99: \n"
1553
+ : [src_y] "+r"(src_y), // %[src_y]
1554
+ [src_uv] "+r"(src_uv), // %[src_uv]
1555
+ [dst_ar30] "+r"(dst_ar30), // %[dst_ar30]
1556
+ [width] "+r"(width) // %[width]
1557
+ : [vl] "r"(vl), // %[vl]
1558
+ [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
1559
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias), // %[kRGBCoeffBias]
1560
+ [nv_uv_start] "r"(nv_uv_start), // %[nv_uv_start]
1561
+ [nv_uv_step] "r"(nv_uv_step), // %[nv_uv_step]
1562
+ [width_last_y] "r"(width_last_y), // %[width_last_y]
1563
+ [width_last_uv] "r"(width_last_uv), // %[width_last_uv]
1564
+ [limit] "r"(limit) // %[limit]
1565
+ : "cc", "memory", YUVTORGB_SVE_REGS);
1566
+ }
1567
+
1568
+ static inline void I410ToARGBRow_SVE_SC(const uint16_t* src_y,
1569
+ const uint16_t* src_u,
1570
+ const uint16_t* src_v,
1571
+ uint8_t* dst_argb,
1572
+ const struct YuvConstants* yuvconstants,
1573
+ int width) STREAMING_COMPATIBLE {
1574
+ uint64_t vl;
1575
+ asm("cnth %0" : "=r"(vl));
1576
+ int width_last_y = width & (vl - 1);
1577
+ asm volatile(
1578
+ "ptrue p0.b \n" //
1579
+ YUVTORGB_SVE_SETUP
1580
+ "dup z19.b, #255 \n" // Alpha
1581
+ "subs %w[width], %w[width], %w[vl] \n"
1582
+ "b.lt 2f \n"
1583
+
1584
+ // Run bulk of computation with an all-true predicate to avoid predicate
1585
+ // generation overhead.
1586
+ "ptrue p1.h \n"
1587
+ "1: \n" //
1588
+ READI410_SVE I4XXTORGB_SVE RGBTOARGB8_SVE
1589
+ "subs %w[width], %w[width], %w[vl] \n"
1590
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
1591
+ "add %[dst_argb], %[dst_argb], %[vl], lsl #2 \n"
1592
+ "b.ge 1b \n"
1593
+
1594
+ "2: \n"
1595
+ "adds %w[width], %w[width], %w[vl] \n"
1596
+ "b.eq 99f \n"
1597
+
1598
+ // Calculate a predicate for the final iteration to deal with the tail.
1599
+ "whilelt p1.h, wzr, %w[width_last_y] \n" //
1600
+ READI410_SVE I4XXTORGB_SVE RGBTOARGB8_SVE
1601
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
1602
+
1603
+ "99: \n"
1604
+ : [src_y] "+r"(src_y), // %[src_y]
1605
+ [src_u] "+r"(src_u), // %[src_u]
1606
+ [src_v] "+r"(src_v), // %[src_v]
1607
+ [dst_argb] "+r"(dst_argb), // %[dst_argb]
1608
+ [width] "+r"(width) // %[width]
1609
+ : [vl] "r"(vl), // %[vl]
1610
+ [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
1611
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias), // %[kRGBCoeffBias]
1612
+ [width_last_y] "r"(width_last_y) // %[width_last_y]
1613
+ : "cc", "memory", YUVTORGB_SVE_REGS);
1614
+ }
1615
+
1616
+ static inline void I410AlphaToARGBRow_SVE_SC(
1617
+ const uint16_t* src_y,
1618
+ const uint16_t* src_u,
1619
+ const uint16_t* src_v,
1620
+ const uint16_t* src_a,
1621
+ uint8_t* dst_argb,
1622
+ const struct YuvConstants* yuvconstants,
1623
+ int width) STREAMING_COMPATIBLE {
1624
+ uint64_t vl;
1625
+ asm("cnth %0" : "=r"(vl));
1626
+ int width_last_y = width & (vl - 1);
1627
+ asm volatile(
1628
+ "ptrue p0.b \n" //
1629
+ YUVTORGB_SVE_SETUP
1630
+ "cmp %w[width], %w[vl] \n"
1631
+ "subs %w[width], %w[width], %w[vl] \n"
1632
+ "b.lt 2f \n"
1633
+
1634
+ // Run bulk of computation with an all-true predicate to avoid predicate
1635
+ // generation overhead.
1636
+ "ptrue p1.h \n"
1637
+ "1: \n" //
1638
+ READI410_SVE
1639
+ "ld1h {z19.h}, p1/z, [%[src_a]] \n" //
1640
+ I4XXTORGB_SVE
1641
+ "incb %[src_a] \n" //
1642
+ RGBATOARGB8_SVE
1643
+ "subs %w[width], %w[width], %w[vl] \n"
1644
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
1645
+ "add %[dst_argb], %[dst_argb], %[vl], lsl #2 \n"
1646
+ "b.ge 1b \n"
1647
+
1648
+ "2: \n"
1649
+ "adds %w[width], %w[width], %w[vl] \n"
1650
+ "b.eq 99f \n"
1651
+
1652
+ // Calculate a predicate for the final iteration to deal with the tail.
1653
+ "whilelt p1.h, wzr, %w[width_last_y] \n" //
1654
+ READI410_SVE
1655
+ "ld1h {z19.h}, p1/z, [%[src_a]] \n" //
1656
+ I4XXTORGB_SVE RGBATOARGB8_SVE
1657
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
1658
+
1659
+ "99: \n"
1660
+ : [src_y] "+r"(src_y), // %[src_y]
1661
+ [src_u] "+r"(src_u), // %[src_u]
1662
+ [src_v] "+r"(src_v), // %[src_v]
1663
+ [src_a] "+r"(src_a), // %[src_a]
1664
+ [dst_argb] "+r"(dst_argb), // %[dst_argb]
1665
+ [width] "+r"(width) // %[width]
1666
+ : [vl] "r"(vl), // %[vl]
1667
+ [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
1668
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias), // %[kRGBCoeffBias]
1669
+ [width_last_y] "r"(width_last_y) // %[width_last_y]
1670
+ : "cc", "memory", YUVTORGB_SVE_REGS);
1671
+ }
1672
+
1673
+ static inline void I410ToAR30Row_SVE_SC(const uint16_t* src_y,
1674
+ const uint16_t* src_u,
1675
+ const uint16_t* src_v,
1676
+ uint8_t* dst_ar30,
1677
+ const struct YuvConstants* yuvconstants,
1678
+ int width) STREAMING_COMPATIBLE {
1679
+ uint64_t vl;
1680
+ asm("cnth %0" : "=r"(vl));
1681
+ int width_last_y = width & (vl - 1);
1682
+ // The limit is used for saturating the 2.14 red channel in STOREAR30_SVE.
1683
+ uint16_t limit = 0x3ff0;
1684
+ asm volatile(
1685
+ "ptrue p0.b \n" //
1686
+ YUVTORGB_SVE_SETUP
1687
+ "dup z23.h, %w[limit] \n"
1688
+ "subs %w[width], %w[width], %w[vl] \n"
1689
+ "b.lt 2f \n"
1690
+
1691
+ // Run bulk of computation with an all-true predicate to avoid predicate
1692
+ // generation overhead.
1693
+ "ptrue p1.h \n"
1694
+ "1: \n" //
1695
+ READI410_SVE I4XXTORGB_SVE STOREAR30_SVE
1696
+ "subs %w[width], %w[width], %w[vl] \n"
1697
+ "b.ge 1b \n"
1698
+
1699
+ "2: \n"
1700
+ "adds %w[width], %w[width], %w[vl] \n"
1701
+ "b.eq 99f \n"
1702
+
1703
+ // Calculate a predicate for the final iteration to deal with the tail.
1704
+ "whilelt p1.h, wzr, %w[width_last_y] \n" //
1705
+ READI410_SVE I4XXTORGB_SVE STOREAR30_SVE
1706
+
1707
+ "99: \n"
1708
+ : [src_y] "+r"(src_y), // %[src_y]
1709
+ [src_u] "+r"(src_u), // %[src_u]
1710
+ [src_v] "+r"(src_v), // %[src_v]
1711
+ [dst_ar30] "+r"(dst_ar30), // %[dst_argb]
1712
+ [width] "+r"(width) // %[width]
1713
+ : [vl] "r"(vl), // %[vl]
1714
+ [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
1715
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias), // %[kRGBCoeffBias]
1716
+ [width_last_y] "r"(width_last_y), // %[width_last_y]
1717
+ [limit] "r"(limit) // %[limit]
1718
+ : "cc", "memory", YUVTORGB_SVE_REGS);
1719
+ }
1720
+
1721
+ static inline void P410ToARGBRow_SVE_SC(const uint16_t* src_y,
1722
+ const uint16_t* src_uv,
1723
+ uint8_t* dst_argb,
1724
+ const struct YuvConstants* yuvconstants,
1725
+ int width) STREAMING_COMPATIBLE {
1726
+ uint64_t vl;
1727
+ asm("cnth %0" : "=r"(vl));
1728
+ int width_last_y = width & (vl - 1);
1729
+ asm volatile(
1730
+ "ptrue p0.b \n" //
1731
+ YUVTORGB_SVE_SETUP
1732
+ "dup z19.b, #255 \n" // Alpha
1733
+ "subs %w[width], %w[width], %w[vl] \n"
1734
+ "b.lt 2f \n"
1735
+
1736
+ // Run bulk of computation with an all-true predicate to avoid predicate
1737
+ // generation overhead.
1738
+ "ptrue p1.h \n"
1739
+ "ptrue p2.s \n"
1740
+ "ptrue p3.s \n"
1741
+ "1: \n" //
1742
+ READP410_SVE NVTORGB_SVE RGBTOARGB8_SVE
1743
+ "subs %w[width], %w[width], %w[vl] \n"
1744
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
1745
+ "add %[dst_argb], %[dst_argb], %[vl], lsl #2 \n"
1746
+ "b.ge 1b \n"
1747
+
1748
+ "2: \n"
1749
+ "adds %w[width], %w[width], %w[vl] \n"
1750
+ "b.eq 99f \n"
1751
+
1752
+ // Calculate a predicate for the final iteration to deal with the tail.
1753
+ "whilelt p1.h, wzr, %w[width_last_y] \n"
1754
+ "whilelt p2.s, wzr, %w[width_last_y] \n"
1755
+ "cntw %x[vl] \n"
1756
+ "whilelt p3.s, %w[vl], %w[width_last_y] \n" //
1757
+ READP410_SVE NVTORGB_SVE RGBTOARGB8_SVE
1758
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
1759
+
1760
+ "99: \n"
1761
+ : [src_y] "+r"(src_y), // %[src_y]
1762
+ [src_uv] "+r"(src_uv), // %[src_uv]
1763
+ [dst_argb] "+r"(dst_argb), // %[dst_argb]
1764
+ [width] "+r"(width) // %[width]
1765
+ : [vl] "r"(vl), // %[vl]
1766
+ [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
1767
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias), // %[kRGBCoeffBias]
1768
+ [width_last_y] "r"(width_last_y) // %[width_last_y]
1769
+ : "cc", "memory", YUVTORGB_SVE_REGS);
1770
+ }
1771
+
1772
+ static inline void P410ToAR30Row_SVE_SC(const uint16_t* src_y,
1773
+ const uint16_t* src_uv,
1774
+ uint8_t* dst_ar30,
1775
+ const struct YuvConstants* yuvconstants,
1776
+ int width) STREAMING_COMPATIBLE {
1777
+ uint64_t vl;
1778
+ asm("cnth %0" : "=r"(vl));
1779
+ int width_last_y = width & (vl - 1);
1780
+ // The limit is used for saturating the 2.14 red channel in STOREAR30_SVE.
1781
+ uint16_t limit = 0x3ff0;
1782
+ asm volatile(
1783
+ "ptrue p0.b \n" //
1784
+ YUVTORGB_SVE_SETUP
1785
+ "dup z23.h, %w[limit] \n"
1786
+ "subs %w[width], %w[width], %w[vl] \n"
1787
+ "b.lt 2f \n"
1788
+
1789
+ // Run bulk of computation with an all-true predicate to avoid predicate
1790
+ // generation overhead.
1791
+ "ptrue p1.h \n"
1792
+ "ptrue p2.s \n"
1793
+ "ptrue p3.s \n"
1794
+ "1: \n" //
1795
+ READP410_SVE NVTORGB_SVE
1796
+ "subs %w[width], %w[width], %w[vl] \n" //
1797
+ STOREAR30_SVE
1798
+ "b.ge 1b \n"
1799
+
1800
+ "2: \n"
1801
+ "adds %w[width], %w[width], %w[vl] \n"
1802
+ "b.eq 99f \n"
1803
+
1804
+ // Calculate a predicate for the final iteration to deal with the tail.
1805
+ "whilelt p1.h, wzr, %w[width_last_y] \n"
1806
+ "whilelt p2.s, wzr, %w[width_last_y] \n"
1807
+ "cntw %x[vl] \n"
1808
+ "whilelt p3.s, %w[vl], %w[width_last_y] \n" //
1809
+ READP410_SVE NVTORGB_SVE STOREAR30_SVE
1810
+
1811
+ "99: \n"
1812
+ : [src_y] "+r"(src_y), // %[src_y]
1813
+ [src_uv] "+r"(src_uv), // %[src_uv]
1814
+ [dst_ar30] "+r"(dst_ar30), // %[dst_ar30]
1815
+ [width] "+r"(width) // %[width]
1816
+ : [vl] "r"(vl), // %[vl]
1817
+ [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
1818
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias), // %[kRGBCoeffBias]
1819
+ [width_last_y] "r"(width_last_y), // %[width_last_y]
1820
+ [limit] "r"(limit) // %[limit]
1821
+ : "cc", "memory", YUVTORGB_SVE_REGS);
1822
+ }
1823
+
1824
+ static inline void I212ToAR30Row_SVE_SC(const uint16_t* src_y,
1825
+ const uint16_t* src_u,
1826
+ const uint16_t* src_v,
1827
+ uint8_t* dst_ar30,
1828
+ const struct YuvConstants* yuvconstants,
1829
+ int width) STREAMING_COMPATIBLE {
1830
+ uint64_t vl;
1831
+ asm("cnth %0" : "=r"(vl));
1832
+ int width_last_y = width & (vl - 1);
1833
+ // The limit is used for saturating the 2.14 red channel in STOREAR30_SVE.
1834
+ uint16_t limit = 0x3ff0;
1835
+ asm volatile(
1836
+ "ptrue p0.b \n" //
1837
+ YUVTORGB_SVE_SETUP
1838
+ "dup z23.h, %w[limit] \n"
1839
+ "subs %w[width], %w[width], %w[vl] \n"
1840
+ "b.lt 2f \n"
1841
+
1842
+ // Run bulk of computation with an all-true predicate to avoid predicate
1843
+ // generation overhead.
1844
+ "ptrue p1.h \n"
1845
+ "1: \n" //
1846
+ READI212_SVE I4XXTORGB_SVE STOREAR30_SVE
1847
+ "subs %w[width], %w[width], %w[vl] \n"
1848
+ "b.ge 1b \n"
1849
+
1850
+ "2: \n"
1851
+ "adds %w[width], %w[width], %w[vl] \n"
1852
+ "b.eq 99f \n"
1853
+
1854
+ // Calculate a predicate for the final iteration to deal with the tail.
1855
+ "whilelt p1.h, wzr, %w[width_last_y] \n" //
1856
+ READI212_SVE I4XXTORGB_SVE STOREAR30_SVE
1857
+
1858
+ "99: \n"
1859
+ : [src_y] "+r"(src_y), // %[src_y]
1860
+ [src_u] "+r"(src_u), // %[src_u]
1861
+ [src_v] "+r"(src_v), // %[src_v]
1862
+ [dst_ar30] "+r"(dst_ar30), // %[dst_ar30]
1863
+ [width] "+r"(width) // %[width]
1864
+ : [vl] "r"(vl), // %[vl]
1865
+ [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
1866
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias), // %[kRGBCoeffBias]
1867
+ [width_last_y] "r"(width_last_y), // %[width_last_y]
1868
+ [limit] "r"(limit) // %[limit]
1869
+ : "cc", "memory", YUVTORGB_SVE_REGS);
1870
+ }
1871
+
1872
+ static inline void I212ToARGBRow_SVE_SC(const uint16_t* src_y,
1873
+ const uint16_t* src_u,
1874
+ const uint16_t* src_v,
1875
+ uint8_t* dst_argb,
1876
+ const struct YuvConstants* yuvconstants,
1877
+ int width) STREAMING_COMPATIBLE {
1878
+ uint64_t vl;
1879
+ asm("cnth %0" : "=r"(vl));
1880
+ int width_last_y = width & (vl - 1);
1881
+ asm volatile(
1882
+ "ptrue p0.b \n" //
1883
+ YUVTORGB_SVE_SETUP
1884
+ "dup z19.b, #255 \n" // Alpha
1885
+ "subs %w[width], %w[width], %w[vl] \n"
1886
+ "b.lt 2f \n"
1887
+
1888
+ // Run bulk of computation with an all-true predicate to avoid predicate
1889
+ // generation overhead.
1890
+ "ptrue p1.h \n"
1891
+ "1: \n" //
1892
+ READI212_SVE I4XXTORGB_SVE RGBTOARGB8_SVE
1893
+ "subs %w[width], %w[width], %w[vl] \n"
1894
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
1895
+ "add %[dst_argb], %[dst_argb], %[vl], lsl #2 \n"
1896
+ "b.ge 1b \n"
1897
+
1898
+ "2: \n"
1899
+ "adds %w[width], %w[width], %w[vl] \n"
1900
+ "b.eq 99f \n"
1901
+
1902
+ // Calculate a predicate for the final iteration to deal with the tail.
1903
+ "whilelt p1.h, wzr, %w[width_last_y] \n" //
1904
+ READI212_SVE I4XXTORGB_SVE RGBTOARGB8_SVE
1905
+ "st2h {z16.h, z17.h}, p1, [%[dst_argb]] \n"
1906
+
1907
+ "99: \n"
1908
+ : [src_y] "+r"(src_y), // %[src_y]
1909
+ [src_u] "+r"(src_u), // %[src_u]
1910
+ [src_v] "+r"(src_v), // %[src_v]
1911
+ [dst_argb] "+r"(dst_argb), // %[dst_argb]
1912
+ [width] "+r"(width) // %[width]
1913
+ : [vl] "r"(vl), // %[vl]
1914
+ [kUVCoeff] "r"(&yuvconstants->kUVCoeff), // %[kUVCoeff]
1915
+ [kRGBCoeffBias] "r"(&yuvconstants->kRGBCoeffBias), // %[kRGBCoeffBias]
1916
+ [width_last_y] "r"(width_last_y) // %[width_last_y]
1917
+ : "cc", "memory", YUVTORGB_SVE_REGS);
1918
+ }
1919
+
1920
+ #define CONVERT8TO8_SVE \
1921
+ "ld1b {z0.b}, p0/z, [%[src]] \n" \
1922
+ "ld1b {z1.b}, p1/z, [%[src], #1, mul vl] \n" \
1923
+ "incb %[src], all, mul #2 \n" \
1924
+ "subs %w[width], %w[width], %w[vl], lsl #1 \n" \
1925
+ "umulh z0.b, z0.b, z2.b \n" \
1926
+ "umulh z1.b, z1.b, z2.b \n" \
1927
+ "prfm pldl1keep, [%[src], 448] \n" \
1928
+ "add z0.b, z0.b, z3.b \n" \
1929
+ "add z1.b, z1.b, z3.b \n" \
1930
+ "st1b {z0.b}, p0, [%[dst]] \n" \
1931
+ "st1b {z1.b}, p1, [%[dst], #1, mul vl] \n" \
1932
+ "incb %[dst], all, mul #2 \n"
1933
+
1934
+ static inline void Convert8To8Row_SVE_SC(const uint8_t* src_y,
1935
+ uint8_t* dst_y,
1936
+ int scale,
1937
+ int bias,
1938
+ int width) STREAMING_COMPATIBLE {
1939
+ uint64_t vl;
1940
+ asm volatile(
1941
+ "dup z2.b, %w[scale] \n"
1942
+ "dup z3.b, %w[bias] \n"
1943
+ "cntb %[vl] \n"
1944
+ "subs %w[width], %w[width], %w[vl], lsl #1 \n"
1945
+ "b.lt 2f \n"
1946
+
1947
+ // Run bulk of computation with all-true predicates to avoid predicate
1948
+ // generation overhead.
1949
+ "ptrue p0.b \n"
1950
+ "ptrue p1.b \n"
1951
+ "1: \n" //
1952
+ CONVERT8TO8_SVE
1953
+ "b.ge 1b \n"
1954
+
1955
+ "2: \n"
1956
+ "adds %w[width], %w[width], %w[vl], lsl #1 \n"
1957
+ "b.eq 99f \n"
1958
+
1959
+ // Calculate predicates for the final iteration to deal with the tail.
1960
+ "whilelt p0.b, wzr, %w[width] \n"
1961
+ "whilelt p1.b, %w[vl], %w[width] \n" //
1962
+ CONVERT8TO8_SVE
1963
+
1964
+ "99: \n"
1965
+ : [src] "+r"(src_y), // %[src]
1966
+ [dst] "+r"(dst_y), // %[dst]
1967
+ [width] "+r"(width), // %[width]
1968
+ [vl] "=&r"(vl) // %[vl]
1969
+ : [scale] "r"(scale), // %[scale]
1970
+ [bias] "r"(bias) // %[bias]
1971
+ : "cc", "memory", "z0", "z1", "z2", "z3", "p0", "p1");
1972
+ }
1973
+
1974
+ // SVE constants are stored negated such that we can store 128 in int8_t.
1975
+
1976
+ // RGB to BT601 coefficients
1977
+ // UB 0.875 coefficient = 112
1978
+ // UG -0.5781 coefficient = -74
1979
+ // UR -0.2969 coefficient = -38
1980
+ // VB -0.1406 coefficient = -18
1981
+ // VG -0.7344 coefficient = -94
1982
+ // VR 0.875 coefficient = 112
1983
+
1984
+ static const int8_t kARGBToUVCoefficients[] = {
1985
+ // -UB, -UG, -UR, 0, -VB, -VG, -VR, 0
1986
+ -112, 74, 38, 0, 18, 94, -112, 0,
1987
+ };
1988
+
1989
+ static const int8_t kABGRToUVCoefficients[] = {
1990
+ // -UR, -UG, -UB, 0, -VR, -VG, -VB, 0
1991
+ 38, 74, -112, 0, -112, 94, 18, 0,
1992
+ };
1993
+
1994
+ static const int8_t kBGRAToUVCoefficients[] = {
1995
+ // 0, -UR, -UG, -UB, 0, -VR, -VG, -VB
1996
+ 0, 38, 74, -112, 0, -112, 94, 18,
1997
+ };
1998
+
1999
+ static const int8_t kRGBAToUVCoefficients[] = {
2000
+ // 0, -UB, -UG, -UR, 0, -VB, -VG, -VR
2001
+ 0, -112, 74, 38, 0, 18, 94, -112,
2002
+ };
2003
+
2004
+ // RGB to JPEG coefficients
2005
+ // UB 0.500 coefficient = 128
2006
+ // UG -0.33126 coefficient = -85
2007
+ // UR -0.16874 coefficient = -43
2008
+ // VB -0.08131 coefficient = -21
2009
+ // VG -0.41869 coefficient = -107
2010
+ // VR 0.500 coefficient = 128
2011
+
2012
+ static const int8_t kARGBToUVJCoefficients[] = {
2013
+ // -UB, -UG, -UR, 0, -VB, -VG, -VR, 0
2014
+ -128, 85, 43, 0, 21, 107, -128, 0,
2015
+ };
2016
+
2017
+ static const int8_t kABGRToUVJCoefficients[] = {
2018
+ // -UR, -UG, -UB, 0, -VR, -VG, -VB, 0
2019
+ 43, 85, -128, 0, -128, 107, 21, 0,
2020
+ };
2021
+
2022
+ #define ABCDTOUVMATRIX_SVE \
2023
+ "ld1d {z0.d}, p1/z, [%[src0]] \n" /* ABCD(bgra) */ \
2024
+ "ld1d {z1.d}, p2/z, [%[src0], #1, mul vl] \n" /* EFGH(bgra) */ \
2025
+ "ld1d {z2.d}, p3/z, [%[src0], #2, mul vl] \n" /* IJKL(bgra) */ \
2026
+ "ld1d {z3.d}, p4/z, [%[src0], #3, mul vl] \n" /* MNOP(bgra) */ \
2027
+ "ld1d {z4.d}, p1/z, [%[src1]] \n" /* ABCD(bgra) */ \
2028
+ "ld1d {z5.d}, p2/z, [%[src1], #1, mul vl] \n" /* EFGH(bgra) */ \
2029
+ "ld1d {z6.d}, p3/z, [%[src1], #2, mul vl] \n" /* IJKL(bgra) */ \
2030
+ "ld1d {z7.d}, p4/z, [%[src1], #3, mul vl] \n" /* MNOP(bgra) */ \
2031
+ "incb %[src0], all, mul #4 \n" \
2032
+ "incb %[src1], all, mul #4 \n" \
2033
+ \
2034
+ "uaddlb z16.h, z0.b, z4.b \n" /* ABCD(br) */ \
2035
+ "uaddlb z18.h, z1.b, z5.b \n" /* EFGH(br) */ \
2036
+ "uaddlb z20.h, z2.b, z6.b \n" /* IJKL(br) */ \
2037
+ "uaddlb z22.h, z3.b, z7.b \n" /* MNOP(br) */ \
2038
+ "uaddlt z17.h, z0.b, z4.b \n" /* ABCD(ga) */ \
2039
+ "uaddlt z19.h, z1.b, z5.b \n" /* EFGH(ga) */ \
2040
+ "uaddlt z21.h, z2.b, z6.b \n" /* IJKL(ga) */ \
2041
+ "uaddlt z23.h, z3.b, z7.b \n" /* MNOP(ga) */ \
2042
+ \
2043
+ /* Use ADDP on 32-bit elements to add adjacent pairs of 9-bit unsigned */ \
2044
+ "addp z16.s, p0/m, z16.s, z18.s \n" /* ABEFCDGH(br) */ \
2045
+ "addp z17.s, p0/m, z17.s, z19.s \n" /* ABEFCDGH(ga) */ \
2046
+ "addp z20.s, p0/m, z20.s, z22.s \n" /* IJMNKLOP(br) */ \
2047
+ "addp z21.s, p0/m, z21.s, z23.s \n" /* IJMNKLOP(ga) */ \
2048
+ \
2049
+ "rshrnb z0.b, z16.h, #2 \n" /* ABEFCDGH(b0r0) */ \
2050
+ "rshrnb z1.b, z20.h, #2 \n" /* IJMNKLOP(b0r0) */ \
2051
+ "rshrnt z0.b, z17.h, #2 \n" /* ABEFCDGH(bgra) */ \
2052
+ "rshrnt z1.b, z21.h, #2 \n" /* IJMNKLOP(bgra) */ \
2053
+ \
2054
+ "tbl z0.s, {z0.s}, z27.s \n" /* ABCDEFGH */ \
2055
+ "tbl z1.s, {z1.s}, z27.s \n" /* IJKLMNOP */ \
2056
+ \
2057
+ "subs %w[width], %w[width], %w[vl], lsl #2 \n" /* VL per loop */ \
2058
+ \
2059
+ "fmov s16, wzr \n" \
2060
+ "fmov s17, wzr \n" \
2061
+ "fmov s20, wzr \n" \
2062
+ "fmov s21, wzr \n" \
2063
+ \
2064
+ "usdot z16.s, z0.b, z24.b \n" \
2065
+ "usdot z17.s, z1.b, z24.b \n" \
2066
+ "usdot z20.s, z0.b, z25.b \n" \
2067
+ "usdot z21.s, z1.b, z25.b \n" \
2068
+ \
2069
+ "subhnb z16.b, z26.h, z16.h \n" /* U */ \
2070
+ "subhnb z20.b, z26.h, z20.h \n" /* V */ \
2071
+ "subhnb z17.b, z26.h, z17.h \n" /* U */ \
2072
+ "subhnb z21.b, z26.h, z21.h \n" /* V */ \
2073
+ \
2074
+ "uzp1 z16.h, z16.h, z17.h \n" \
2075
+ "uzp1 z20.h, z20.h, z21.h \n" \
2076
+ \
2077
+ "st1b {z16.h}, p5, [%[dst_u]] \n" /* U */ \
2078
+ "st1b {z20.h}, p5, [%[dst_v]] \n" /* V */ \
2079
+ "inch %[dst_u] \n" \
2080
+ "inch %[dst_v] \n"
2081
+
2082
+ static inline void ARGBToUVMatrixRow_SVE_SC(const uint8_t* src_argb,
2083
+ int src_stride_argb,
2084
+ uint8_t* dst_u,
2085
+ uint8_t* dst_v,
2086
+ int width,
2087
+ const int8_t* uvconstants)
2088
+ STREAMING_COMPATIBLE {
2089
+ const uint8_t* src_argb_1 = src_argb + src_stride_argb;
2090
+ uint64_t vl;
2091
+ asm("cntd %x0" : "=r"(vl));
2092
+
2093
+ // Width is a multiple of two here, so halve it.
2094
+ width >>= 1;
2095
+
2096
+ asm volatile(
2097
+ "ptrue p0.b \n"
2098
+ "ld1rw {z24.s}, p0/z, [%[uvconstants]] \n"
2099
+ "ld1rw {z25.s}, p0/z, [%[uvconstants], #4] \n"
2100
+ "mov z26.h, #0x8000 \n" // 128.0 (0x8000)
2101
+
2102
+ // Generate some TBL indices to undo the interleaving from ADDP.
2103
+ "index z0.s, #0, #1 \n"
2104
+ "index z1.s, #1, #1 \n"
2105
+ "uzp1 z27.s, z0.s, z1.s \n"
2106
+
2107
+ "subs %w[width], %w[width], %w[vl], lsl #2 \n"
2108
+ "b.lt 2f \n"
2109
+
2110
+ "ptrue p1.d \n"
2111
+ "ptrue p2.d \n"
2112
+ "ptrue p3.d \n"
2113
+ "ptrue p4.d \n"
2114
+ "ptrue p5.h \n"
2115
+ "1: \n" //
2116
+ ABCDTOUVMATRIX_SVE
2117
+ "b.gt 1b \n"
2118
+
2119
+ "2: \n"
2120
+ "adds %w[width], %w[width], %w[vl], lsl #2 \n"
2121
+ "b.eq 99f \n"
2122
+
2123
+ "3: \n"
2124
+ "whilelt p1.d, wzr, %w[width] \n"
2125
+ "whilelt p2.d, %w[vl], %w[width] \n"
2126
+ "whilelt p3.d, %w[vl2], %w[width] \n"
2127
+ "whilelt p4.d, %w[vl3], %w[width] \n"
2128
+ "whilelt p5.h, wzr, %w[width] \n" //
2129
+ ABCDTOUVMATRIX_SVE
2130
+ "b.gt 3b \n"
2131
+
2132
+ "99: \n"
2133
+ : [src0] "+r"(src_argb), // %[src0]
2134
+ [src1] "+r"(src_argb_1), // %[src1]
2135
+ [dst_u] "+r"(dst_u), // %[dst_u]
2136
+ [dst_v] "+r"(dst_v), // %[dst_v]
2137
+ [width] "+r"(width) // %[width]
2138
+ : [uvconstants] "r"(uvconstants), // %[uvconstants]
2139
+ [vl] "r"(vl), // %[vl]
2140
+ [vl2] "r"(vl * 2), // %[vl2]
2141
+ [vl3] "r"(vl * 3) // %[vl3]
2142
+ : "cc", "memory", "z0", "z1", "z2", "z3", "z4", "z5", "z6", "z7", "z16",
2143
+ "z17", "z18", "z19", "z20", "z21", "z22", "z23", "z24", "z25", "z26",
2144
+ "z27", "p0", "p1", "p2", "p3", "p4", "p5");
2145
+ }
2146
+
2147
+ #endif // !defined(LIBYUV_DISABLE_SVE) && defined(__aarch64__)
2148
+
2149
+ #ifdef __cplusplus
2150
+ } // extern "C"
2151
+ } // namespace libyuv
2152
+ #endif
2153
+
2154
+ #endif // INCLUDE_LIBYUV_ROW_SVE_H_