GNU bug report logs - #69591
[PATCH 00/31] Unbundle and update python-pytorch

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: guix-patches; Reported by: David Elsing <david.elsing@HIDDEN>; Keywords: patch; dated Wed, 6 Mar 2024 19:39:01 UTC; Maintainer for guix-patches is guix-patches@HIDDEN.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:42:52 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:42:52 2024
Received: from localhost ([127.0.0.1]:51594 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhxA8-0008Ic-SF
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:52 -0500
Received: from mout02.posteo.de ([185.67.36.66]:56729)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx9I-0008Cn-A8
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:00 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id AF297240106
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:41:19 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754079; bh=yNfLY6Dd15n6N2KN0zElD/HTs9I3LQ4eehG2XCW9944=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=p2z3BPeNIdrqwq+T/smdAJrPbGZ9M5lOHhXyE/ip+ytT3QBhiJxJwQjodXzoYxH3H
 Ba4tFPeVgfRKVKpq4EoiRlUqKH16wFcnCaIoPDgVKPV50D0we5EG3bfy0XGzJNMIps
 D5PI24Ge/Hop64sjHDlhdx6OTcZMYojzBJ8PW29U42NUuaM9ji2+FNNjSUSa/hSy+Y
 n0go7LQfNPtV5jl50zf3t0zNsUZI0p7lpXfEXidj9XZSWNwG0aNdV1kvNJTUIU9Oij
 Qo/VujBuN9e1eR79SumcN+7vo8cOV7RwDP5TeSoPGmrG7dMxoFd1Fjzgjfp4bPKtsM
 M79J0H2hBUkMA==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjV71mnmz6twb;
 Wed,  6 Mar 2024 20:41:19 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 31/31] gnu: python-pytorch-for-r-torch: Adjust to new
 python-pytorch.
Date: Wed,  6 Mar 2024 19:40:37 +0000
Message-ID: <20240306194037.17992-31-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/machine-learning.scm (%python-pytorch-for-r-torch-src): Add
patches.
(python-pytorch-for-r-torch)[version]: Use
%python-pytorch-for-r-torch-version.
[source]: Use %python-pytorch-for-r-torch-src.
[native-inputs]: Use 'modify-inputs'.
[inputs]: Don't replace xnnpack. Replace qnnpack-pytorch with
qnnpack-pytorch-for-r-torch and oneapi-dnnl with oneapi-dnnl-for-r-torch.
[propagated-inputs]: Don't replace onnx and onnx-optimizer.
[supported-systems]: New field.
* gnu/packages/patches/python-pytorch-for-r-torch-fix-codegen: New file.
* gnu/packages/patches/python-pytorch-for-r-torch-system-libraries.patch: New file.
* gnu/packages/patches/python-pytorch2-system-libraries.patch: Remove file.
* gnu/local.mk (dist_patch_DATA): Register them.
---
 gnu/local.mk                                  |   1 -
 gnu/packages/machine-learning.scm             |  61 +--
 ...thon-pytorch-for-r-torch-fix-codegen.patch | 167 ++++++++
 ...pytorch-for-r-torch-system-libraries.patch | 390 ++++++++++++++++++
 .../python-pytorch2-system-libraries.patch    | 156 -------
 5 files changed, 576 insertions(+), 199 deletions(-)
 create mode 100644 gnu/packages/patches/python-pytorch-for-r-torch-fix-codegen.patch
 create mode 100644 gnu/packages/patches/python-pytorch-for-r-torch-system-libraries.patch
 delete mode 100644 gnu/packages/patches/python-pytorch2-system-libraries.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 84eeb39c8b..6b3af883b6 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1809,7 +1809,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-pyreadstat-link-libiconv.patch	\
   %D%/packages/patches/python-pyls-black-41.patch		\
   %D%/packages/patches/python-pypdf-annotate-tests-appropriately.patch	\
-  %D%/packages/patches/python-pytorch2-system-libraries.patch	\
   %D%/packages/patches/python-sip-include-dirs.patch	\
   %D%/packages/patches/python-sgmllib3k-assertions.patch	\
   %D%/packages/patches/python-sphinx-prompt-docutils-0.19.patch	\
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 4413ecad13..f85e0b5a93 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -4691,7 +4691,15 @@ (define %python-pytorch-for-r-torch-src
                               %python-pytorch-for-r-torch-version))
     (sha256
      (base32
-      "0iirrn687i7sfv0p0i7dn89x3rf13a7l8y1y5h190h51yjxpxqxa"))))
+      "0iirrn687i7sfv0p0i7dn89x3rf13a7l8y1y5h190h51yjxpxqxa"))
+    (patches (search-patches
+              "python-pytorch-for-r-torch-system-libraries.patch"
+              "python-pytorch-runpath.patch"
+              "python-pytorch-without-kineto.patch"
+              ;; Some autogeneration scripts depend on the
+              ;; compile PyTorch library. Therefore, we create
+              ;; dummy versions which are regenerated later.
+              "python-pytorch-for-r-torch-fix-codegen.patch"))))
 
 (define-public qnnpack-pytorch-for-r-torch
   (package
@@ -4707,59 +4715,28 @@ (define-public qnnpack-pytorch-for-r-torch
        (snippet
         (origin-snippet (package-source qnnpack-pytorch)))))))
 
+;; Keep in sync with r-torch
 (define-public python-pytorch-for-r-torch
   (package
     (inherit python-pytorch)
     (name "python-pytorch")
-    (version "2.0.1")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/pytorch/pytorch")
-                    (commit (string-append "v" version))
-                    (recursive? #t)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "14m7v54zyd2qg2xk9mqdpbf4ps7091mdzinzh4vq9p5k4bpznj65"))
-              (patches (search-patches "python-pytorch2-system-libraries.patch"
-                                       "python-pytorch-runpath.patch"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  ;; XXX: Let's be clear: this package is a bundling fest.  We
-                  ;; delete as much as we can, but there's still a lot left.
-                  (for-each (lambda (directory)
-                              (delete-file-recursively
-                               (string-append "third_party/" directory)))
-                            '("benchmark" "cpuinfo" "eigen"
-
-                              ;; FIXME: QNNPACK (of which XNNPACK is a fork)
-                              ;; needs these.
-                              ;; "FP16" "FXdiv" "gemmlowp" "psimd"
-
-                              "gloo" "googletest" "ios-cmake" "NNPACK"
-                              "onnx" "protobuf" "pthreadpool"
-                              "pybind11" "python-enum" "python-peachpy"
-                              "python-six" "tbb" "XNNPACK" "zstd"))
-                  (substitute* "caffe2/CMakeLists.txt"
-                    (("target_link_libraries\\(\\$\\{test_name\\}_\\$\\{CPU_CAPABILITY\\} c10 sleef gtest_main\\)")
-                     "target_link_libraries(${test_name}_${CPU_CAPABILITY} c10 sleef gtest gtest_main)"))
-                  (substitute* "functorch/CMakeLists.txt"
-                    (("\\$\\{_rpath_portable_origin\\}/../torch/lib")
-                     "$ORIGIN/../torch/lib"))))))
+    (version %python-pytorch-for-r-torch-version)
+    (source %python-pytorch-for-r-torch-src)
+    (native-inputs
+     (modify-inputs (package-native-inputs python-pytorch)
+       (replace "ideep-pytorch" ideep-pytorch-for-r-torch)))
     (inputs
      (modify-inputs (package-inputs python-pytorch)
-       (replace "xnnpack" xnnpack-for-torch2)))
+       (replace "qnnpack-pytorch" qnnpack-pytorch-for-r-torch)
+       (replace "oneapi-dnnl" oneapi-dnnl-for-r-torch)))
     (propagated-inputs
      (modify-inputs (package-propagated-inputs python-pytorch)
        (append python-filelock
                python-jinja2
                python-networkx
                python-opt-einsum
-               python-sympy)
-       (replace "onnx" onnx-for-torch2)
-       (replace "onnx-optimizer" onnx-optimizer-for-torch2)))))
+               python-sympy)))
+    (supported-systems %64bit-supported-systems)))
 
 (define-public python-pytorch-geometric
   (package
diff --git a/gnu/packages/patches/python-pytorch-for-r-torch-fix-codegen.patch b/gnu/packages/patches/python-pytorch-for-r-torch-fix-codegen.patch
new file mode 100644
index 0000000000..8515e5ab13
--- /dev/null
+++ b/gnu/packages/patches/python-pytorch-for-r-torch-fix-codegen.patch
@@ -0,0 +1,167 @@
+This patch fixes some scripts for generating source files.  For
+gen_jit_decompositions.py, gen_mobile_upgraders.py and
+gen_jit_shape_functions.py, which depend on the compiled PyTorch library, the
+option to generate "dummy" source files is added for the initial build, which
+is later corrected.  codegen_external.py is patched to avoid duplicate
+functions and add the static keyword as in the existing generated file.
+
+diff --git a/tools/gen_flatbuffers.sh b/tools/gen_flatbuffers.sh
+index cc0263dbbf..ac34e84b82 100644
+--- a/tools/gen_flatbuffers.sh
++++ b/tools/gen_flatbuffers.sh
+@@ -1,13 +1,13 @@
+ #!/bin/bash
+ ROOT=$(pwd)
+-FF_LOCATION="$ROOT/third_party/flatbuffers"
+-cd "$FF_LOCATION" || exit
+-mkdir build
+-cd build || exit
+-cmake ..
+-cmake --build . --target flatc
+-mkdir -p "$ROOT/build/torch/csrc/jit/serialization"
+-./flatc --cpp --gen-mutable --scoped-enums \
++#FF_LOCATION="$ROOT/third_party/flatbuffers"
++#cd "$FF_LOCATION" || exit
++#mkdir build
++#cd build || exit
++#cmake ..
++#cmake --build . --target flatc
++#mkdir -p "$ROOT/build/torch/csrc/jit/serialization"
++flatc --cpp --gen-mutable --scoped-enums \
+      -o "$ROOT/torch/csrc/jit/serialization" \
+      -c "$ROOT/torch/csrc/jit/serialization/mobile_bytecode.fbs"
+ echo '// @generated' >> "$ROOT/torch/csrc/jit/serialization/mobile_bytecode_generated.h"
+diff --git a/torch/csrc/jit/tensorexpr/codegen_external.py b/torch/csrc/jit/tensorexpr/codegen_external.py
+index 120520b139..0c8587f02d 100644
+--- a/torch/csrc/jit/tensorexpr/codegen_external.py
++++ b/torch/csrc/jit/tensorexpr/codegen_external.py
+@@ -16,9 +16,14 @@ def gen_external(native_functions_path, tags_path, external_path):
+     native_functions = parse_native_yaml(native_functions_path, tags_path)
+     func_decls = []
+     func_registrations = []
+-    for func in native_functions:
++    done_names = set()
++    for func in native_functions[0]:
+         schema = func.func
+         name = schema.name.name.base
++        if name in done_names:
++            continue
++        else:
++            done_names.add(name)
+         args = schema.arguments
+         # Only supports extern calls for functions with out variants
+         if not schema.is_out_fn():
+@@ -48,7 +53,7 @@ def gen_external(native_functions_path, tags_path, external_path):
+ 
+         # print(tensor_decls, name, arg_names)
+         func_decl = f"""\
+-void nnc_aten_{name}(
++static void nnc_aten_{name}(
+     int64_t bufs_num,
+     void** buf_data,
+     int64_t* buf_ranks,
+diff --git a/torchgen/decompositions/gen_jit_decompositions.py b/torchgen/decompositions/gen_jit_decompositions.py
+index 7cfbb803f9..2e69bb1868 100644
+--- a/torchgen/decompositions/gen_jit_decompositions.py
++++ b/torchgen/decompositions/gen_jit_decompositions.py
+@@ -1,8 +1,12 @@
+ #!/usr/bin/env python3
+ import os
+ from pathlib import Path
++import sys
+ 
+-from torch.jit._decompositions import decomposition_table
++if len(sys.argv) < 2 or sys.argv[1] != "dummy":
++    from torch.jit._decompositions import decomposition_table
++else:
++    decomposition_table = {}
+ 
+ # from torchgen.code_template import CodeTemplate
+ 
+@@ -85,7 +89,7 @@ def write_decomposition_util_file(path: str) -> None:
+ 
+ 
+ def main() -> None:
+-    pytorch_dir = Path(__file__).resolve().parents[3]
++    pytorch_dir = Path(__file__).resolve().parents[2]
+     upgrader_path = pytorch_dir / "torch" / "csrc" / "jit" / "runtime"
+     write_decomposition_util_file(str(upgrader_path))
+ 
+diff --git a/torchgen/operator_versions/gen_mobile_upgraders.py b/torchgen/operator_versions/gen_mobile_upgraders.py
+index e5287cffc5..57f3c38096 100644
+--- a/torchgen/operator_versions/gen_mobile_upgraders.py
++++ b/torchgen/operator_versions/gen_mobile_upgraders.py
+@@ -2,10 +2,12 @@
+ import os
+ from enum import Enum
+ from pathlib import Path
++import sys
+ from typing import Any, Dict, List
+ 
+-import torch
+-from torch.jit.generate_bytecode import generate_upgraders_bytecode
++if len(sys.argv) < 2 or sys.argv[1] != "dummy":
++    import torch
++    from torch.jit.generate_bytecode import generate_upgraders_bytecode
+ 
+ from torchgen.code_template import CodeTemplate
+ from torchgen.operator_versions.gen_mobile_upgraders_constant import (
+@@ -262,7 +264,10 @@ def construct_register_size(register_size_from_yaml: int) -> str:
+ def construct_version_maps(
+     upgrader_bytecode_function_to_index_map: Dict[str, Any]
+ ) -> str:
+-    version_map = torch._C._get_operator_version_map()
++    if len(sys.argv) < 2 or sys.argv[1] != "dummy":
++        version_map = torch._C._get_operator_version_map()
++    else:
++        version_map = {}
+     sorted_version_map_ = sorted(version_map.items(), key=lambda item: item[0])  # type: ignore[no-any-return]
+     sorted_version_map = {name: lst for name, lst in sorted_version_map_}
+ 
+@@ -379,7 +384,10 @@ def sort_upgrader(upgrader_list: List[Dict[str, Any]]) -> List[Dict[str, Any]]:
+ 
+ def main() -> None:
+ 
+-    upgrader_list = generate_upgraders_bytecode()
++    if len(sys.argv) < 2 or sys.argv[1] != "dummy":
++        upgrader_list = generate_upgraders_bytecode()
++    else:
++        upgrader_list = []
+     sorted_upgrader_list = sort_upgrader(upgrader_list)
+     for up in sorted_upgrader_list:
+         print("after sort upgrader : ", next(iter(up)))
+diff --git a/torchgen/shape_functions/gen_jit_shape_functions.py b/torchgen/shape_functions/gen_jit_shape_functions.py
+index c6336a6951..34e394d818 100644
+--- a/torchgen/shape_functions/gen_jit_shape_functions.py
++++ b/torchgen/shape_functions/gen_jit_shape_functions.py
+@@ -18,16 +18,20 @@ you are in the root directory of the Pytorch git repo"""
+ if not file_path.exists():
+     raise Exception(err_msg)
+ 
+-spec = importlib.util.spec_from_file_location(module_name, file_path)
+-assert spec is not None
+-module = importlib.util.module_from_spec(spec)
+-sys.modules[module_name] = module
+-assert spec.loader is not None
+-assert module is not None
+-spec.loader.exec_module(module)
+-
+-bounded_compute_graph_mapping = module.bounded_compute_graph_mapping
+-shape_compute_graph_mapping = module.shape_compute_graph_mapping
++if len(sys.argv) < 2 or sys.argv[1] != "dummy":
++    spec = importlib.util.spec_from_file_location(module_name, file_path)
++    assert spec is not None
++    module = importlib.util.module_from_spec(spec)
++    sys.modules[module_name] = module
++    assert spec.loader is not None
++    assert module is not None
++    spec.loader.exec_module(module)
++
++    bounded_compute_graph_mapping = module.bounded_compute_graph_mapping
++    shape_compute_graph_mapping = module.shape_compute_graph_mapping
++else:
++    bounded_compute_graph_mapping = {}
++    shape_compute_graph_mapping = {}
+ 
+ 
+ SHAPE_HEADER = r"""
diff --git a/gnu/packages/patches/python-pytorch-for-r-torch-system-libraries.patch b/gnu/packages/patches/python-pytorch-for-r-torch-system-libraries.patch
new file mode 100644
index 0000000000..6e448ce5c5
--- /dev/null
+++ b/gnu/packages/patches/python-pytorch-for-r-torch-system-libraries.patch
@@ -0,0 +1,390 @@
+Patch build files to also system libraries instead of bundled ones for the
+libraries not supported or working only by specifying USE_SYSTEM_LIBS.  This
+includes using the clog, cpuinfo, fbgemm, foxi, fp16, fxdiv, googletest,
+ideep, miniz, nnpack, oneapi-dnnl, pocketfft, pthreadpool, qnnpack,
+qnnpack-pytorch, tensorpipe, valgrind and xnnpack packages.
+For QNNPACK, two versions were bundled and are required: The upstream one and
+an internal fork (now in the package qnnpack-pytorch).
+
+diff --git a/aten/src/ATen/CMakeLists.txt b/aten/src/ATen/CMakeLists.txt
+index 96fc29782b..7f27b6654b 100644
+--- a/aten/src/ATen/CMakeLists.txt
++++ b/aten/src/ATen/CMakeLists.txt
+@@ -362,9 +362,9 @@ if(AT_NNPACK_ENABLED)
+   list(APPEND ATen_CPU_DEPENDENCY_LIBS nnpack) # cpuinfo is added below
+ endif()
+ 
+-if(MKLDNN_FOUND)
+-  list(APPEND ATen_CPU_DEPENDENCY_LIBS ${MKLDNN_LIBRARIES})
+-endif(MKLDNN_FOUND)
++if(USE_MKLDNN)
++  list(APPEND ATen_CPU_DEPENDENCY_LIBS DNNL::dnnl)
++endif(USE_MKLDNN)
+ 
+ list(APPEND ATen_CPU_DEPENDENCY_LIBS cpuinfo)
+ 
+diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt
+index 221e3f32b2..3bad9d2f9e 100644
+--- a/caffe2/CMakeLists.txt
++++ b/caffe2/CMakeLists.txt
+@@ -110,9 +110,6 @@ if(NOT MSVC AND USE_XNNPACK)
+   if(NOT TARGET fxdiv)
+     set(FXDIV_BUILD_TESTS OFF CACHE BOOL "")
+     set(FXDIV_BUILD_BENCHMARKS OFF CACHE BOOL "")
+-    add_subdirectory(
+-      "${FXDIV_SOURCE_DIR}"
+-      "${CMAKE_BINARY_DIR}/FXdiv")
+   endif()
+ endif()
+ 
+@@ -975,7 +972,6 @@ elseif(USE_CUDA)
+ endif()
+ 
+ if(NOT MSVC AND USE_XNNPACK)
+-  TARGET_LINK_LIBRARIES(torch_cpu PRIVATE fxdiv)
+ endif()
+ 
+ # ==========================================================
+@@ -1314,6 +1310,7 @@ target_link_libraries(torch_cpu PUBLIC c10)
+ target_link_libraries(torch_cpu PUBLIC ${Caffe2_PUBLIC_DEPENDENCY_LIBS})
+ target_link_libraries(torch_cpu PRIVATE ${Caffe2_DEPENDENCY_LIBS})
+ target_link_libraries(torch_cpu PRIVATE ${Caffe2_DEPENDENCY_WHOLE_LINK_LIBS})
++target_link_libraries(torch_cpu PRIVATE miniz clog)
+ target_include_directories(torch_cpu INTERFACE $<INSTALL_INTERFACE:include>)
+ target_include_directories(torch_cpu PRIVATE ${Caffe2_CPU_INCLUDE})
+ target_include_directories(torch_cpu SYSTEM PRIVATE "${Caffe2_DEPENDENCY_INCLUDE}")
+@@ -1570,7 +1567,7 @@ if(BUILD_STATIC_RUNTIME_BENCHMARK)
+   add_executable(static_runtime_bench "${STATIC_RUNTIME_BENCHMARK_SRCS}")
+   add_executable(static_runtime_test "${STATIC_RUNTIME_TEST_SRCS}")
+   target_link_libraries(static_runtime_bench torch_library benchmark)
+-  target_link_libraries(static_runtime_test torch_library gtest_main)
++  target_link_libraries(static_runtime_test torch_library gtest_main gtest)
+ endif()
+ 
+ if(BUILD_TENSOREXPR_BENCHMARK)
+@@ -1601,7 +1598,7 @@ if(BUILD_MOBILE_TEST)
+   foreach(test_src ${ATen_MOBILE_TEST_SRCS})
+     get_filename_component(test_name ${test_src} NAME_WE)
+     add_executable(${test_name} "${test_src}")
+-    target_link_libraries(${test_name} torch_library gtest_main)
++    target_link_libraries(${test_name} torch_library gtest_main gtest)
+     target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
+     target_include_directories(${test_name} PRIVATE $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>)
+     target_include_directories(${test_name} PRIVATE ${ATen_CPU_INCLUDE})
+@@ -1622,13 +1619,13 @@ if(BUILD_TEST)
+         if(NOT MSVC)
+           add_executable(${test_name}_${CPU_CAPABILITY} "${test_src}" ../aten/src/ATen/native/quantized/AffineQuantizerBase.cpp)
+           # TODO: Get rid of c10 dependency (which is only needed for the implementation of AT_ERROR)
+-          target_link_libraries(${test_name}_${CPU_CAPABILITY} c10 sleef gtest_main)
++          target_link_libraries(${test_name}_${CPU_CAPABILITY} c10 sleef gtest_main gtest)
+           if(USE_FBGEMM)
+             target_link_libraries(${test_name}_${CPU_CAPABILITY} fbgemm)
+           endif()
+         else()
+           add_executable(${test_name}_${CPU_CAPABILITY} "${test_src}")
+-          target_link_libraries(${test_name}_${CPU_CAPABILITY} torch_library gtest_main)
++          target_link_libraries(${test_name}_${CPU_CAPABILITY} torch_library gtest_main gtest)
+         endif()
+         target_include_directories(${test_name}_${CPU_CAPABILITY} PRIVATE $<INSTALL_INTERFACE:include>)
+         target_include_directories(${test_name}_${CPU_CAPABILITY} PRIVATE $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>)
+@@ -1645,7 +1642,7 @@ if(BUILD_TEST)
+   foreach(test_src ${Caffe2_CPU_TEST_SRCS})
+     get_filename_component(test_name ${test_src} NAME_WE)
+     add_executable(${test_name} "${test_src}")
+-    target_link_libraries(${test_name} torch_library gtest_main)
++    target_link_libraries(${test_name} torch_library gtest_main gtest)
+     target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
+     target_include_directories(${test_name} PRIVATE $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>)
+     target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE})
+diff --git a/caffe2/serialize/CMakeLists.txt b/caffe2/serialize/CMakeLists.txt
+index 1552b59d0d..67e1a9a1a3 100644
+--- a/caffe2/serialize/CMakeLists.txt
++++ b/caffe2/serialize/CMakeLists.txt
+@@ -2,7 +2,6 @@ file(GLOB tmp *_test.cc)
+ 
+ set(Caffe2_CPU_TEST_SRCS ${Caffe2_CPU_TEST_SRCS} ${tmp})
+ list(APPEND Caffe2_CPU_SRCS
+-  ${PROJECT_SOURCE_DIR}/third_party/miniz-2.1.0/miniz.c
+   ${CMAKE_CURRENT_SOURCE_DIR}/inline_container.cc
+   ${CMAKE_CURRENT_SOURCE_DIR}/istream_adapter.cc
+   ${CMAKE_CURRENT_SOURCE_DIR}/file_adapter.cc
+diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
+index 8c0e3c24bc..d65576ada2 100644
+--- a/cmake/Dependencies.cmake
++++ b/cmake/Dependencies.cmake
+@@ -298,7 +298,7 @@ endif()
+ # --- [ PocketFFT
+ set(AT_POCKETFFT_ENABLED 0)
+ if(NOT AT_MKL_ENABLED)
+-  set(POCKETFFT_INCLUDE_DIR "${Torch_SOURCE_DIR}/third_party/pocketfft/")
++  set(POCKETFFT_INCLUDE_DIR "#POCKETFFT_INCLUDE_DIR")
+   if(NOT EXISTS "${POCKETFFT_INCLUDE_DIR}")
+     message(FATAL_ERROR "pocketfft directory not found, expected ${POCKETFFT_INCLUDE_DIR}")
+   elif(NOT EXISTS "${POCKETFFT_INCLUDE_DIR}/pocketfft_hdronly.h")
+@@ -501,19 +501,6 @@ if(USE_QNNPACK)
+     set(QNNPACK_BUILD_TESTS OFF CACHE BOOL "")
+     set(QNNPACK_BUILD_BENCHMARKS OFF CACHE BOOL "")
+     set(QNNPACK_LIBRARY_TYPE "static" CACHE STRING "")
+-    add_subdirectory(
+-      "${QNNPACK_SOURCE_DIR}"
+-      "${CONFU_DEPENDENCIES_BINARY_DIR}/QNNPACK")
+-
+-    # TODO: See https://github.com/pytorch/pytorch/issues/56285
+-    if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+-      target_compile_options(qnnpack PRIVATE -Wno-deprecated-declarations)
+-    endif()
+-
+-    # We build static versions of QNNPACK and pthreadpool but link
+-    # them into a shared library for Caffe2, so they need PIC.
+-    set_property(TARGET qnnpack PROPERTY POSITION_INDEPENDENT_CODE ON)
+-    set_property(TARGET cpuinfo PROPERTY POSITION_INDEPENDENT_CODE ON)
+ 
+     if(QNNPACK_CUSTOM_THREADPOOL)
+       target_compile_definitions(
+@@ -562,13 +549,6 @@ if(USE_PYTORCH_QNNPACK)
+       set(PYTORCH_QNNPACK_BUILD_TESTS OFF CACHE BOOL "")
+       set(PYTORCH_QNNPACK_BUILD_BENCHMARKS OFF CACHE BOOL "")
+       set(PYTORCH_QNNPACK_LIBRARY_TYPE "static" CACHE STRING "")
+-      add_subdirectory(
+-        "${PYTORCH_QNNPACK_SOURCE_DIR}"
+-        "${CONFU_DEPENDENCIES_BINARY_DIR}/pytorch_qnnpack")
+-      # We build static versions of QNNPACK and pthreadpool but link
+-      # them into a shared library for Caffe2, so they need PIC.
+-      set_property(TARGET pytorch_qnnpack PROPERTY POSITION_INDEPENDENT_CODE ON)
+-      set_property(TARGET cpuinfo PROPERTY POSITION_INDEPENDENT_CODE ON)
+ 
+       if(PYTORCH_QNNPACK_CUSTOM_THREADPOOL)
+         target_compile_definitions(
+@@ -750,11 +730,6 @@ if(BUILD_TEST OR BUILD_MOBILE_BENCHMARK OR BUILD_MOBILE_TEST)
+   # this shouldn't be necessary anymore.
+   get_property(INC_DIR_temp DIRECTORY PROPERTY INCLUDE_DIRECTORIES)
+   set_property(DIRECTORY PROPERTY INCLUDE_DIRECTORIES "")
+-  add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../third_party/googletest)
+-  set_property(DIRECTORY PROPERTY INCLUDE_DIRECTORIES ${INC_DIR_temp})
+-
+-  include_directories(BEFORE SYSTEM ${CMAKE_CURRENT_LIST_DIR}/../third_party/googletest/googletest/include)
+-  include_directories(BEFORE SYSTEM ${CMAKE_CURRENT_LIST_DIR}/../third_party/googletest/googlemock/include)
+ 
+   # We will not need to test benchmark lib itself.
+   set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "Disable benchmark testing as we don't need it.")
+@@ -829,16 +804,6 @@ if(USE_FBGEMM)
+     else()
+       set(FBGEMM_LIBRARY_TYPE "static" CACHE STRING "")
+     endif()
+-    add_subdirectory("${FBGEMM_SOURCE_DIR}")
+-    set_property(TARGET fbgemm_generic PROPERTY POSITION_INDEPENDENT_CODE ON)
+-    set_property(TARGET fbgemm_avx2 PROPERTY POSITION_INDEPENDENT_CODE ON)
+-    set_property(TARGET fbgemm_avx512 PROPERTY POSITION_INDEPENDENT_CODE ON)
+-    set_property(TARGET fbgemm PROPERTY POSITION_INDEPENDENT_CODE ON)
+-    if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 13.0.0)
+-      # See https://github.com/pytorch/pytorch/issues/74352
+-      target_compile_options_if_supported(asmjit -Wno-deprecated-copy)
+-      target_compile_options_if_supported(asmjit -Wno-unused-but-set-variable)
+-    endif()
+   endif()
+ 
+   if(USE_FBGEMM)
+@@ -1001,7 +966,7 @@ if(NOT TARGET fp16 AND NOT USE_SYSTEM_FP16)
+     "${FP16_SOURCE_DIR}"
+     "${CONFU_DEPENDENCIES_BINARY_DIR}/FP16")
+ elseif(NOT TARGET fp16 AND USE_SYSTEM_FP16)
+-  add_library(fp16 STATIC "/usr/include/fp16.h")
++  add_library(fp16 STATIC "#FP16_INCLUDE_DIR")
+   set_target_properties(fp16 PROPERTIES LINKER_LANGUAGE C)
+ endif()
+ list(APPEND Caffe2_DEPENDENCY_LIBS fp16)
+@@ -1395,7 +1360,6 @@ if(USE_DISTRIBUTED AND USE_TENSORPIPE)
+ 
+     # Tensorpipe uses cuda_add_library
+     torch_update_find_cuda_flags()
+-    add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/tensorpipe)
+ 
+     list(APPEND Caffe2_DEPENDENCY_LIBS tensorpipe)
+     if(USE_CUDA)
+@@ -1551,7 +1515,6 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX)
+       set_target_properties(onnx_proto PROPERTIES CXX_STANDARD 17)
+     endif()
+   endif()
+-  add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../third_party/foxi EXCLUDE_FROM_ALL)
+ 
+   add_definitions(-DONNX_NAMESPACE=${ONNX_NAMESPACE})
+   if(NOT USE_SYSTEM_ONNX)
+@@ -1582,7 +1545,7 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX)
+     endif()
+     set_property(TARGET onnx_proto PROPERTY IMPORTED_LOCATION ${ONNX_PROTO_LIBRARY})
+     message("-- Found onnx: ${ONNX_LIBRARY} ${ONNX_PROTO_LIBRARY}")
+-    list(APPEND Caffe2_DEPENDENCY_LIBS onnx_proto onnx)
++    list(APPEND Caffe2_DEPENDENCY_LIBS onnx_proto onnx onnx_optimizer)
+   endif()
+   include_directories(${FOXI_INCLUDE_DIRS})
+   list(APPEND Caffe2_DEPENDENCY_LIBS foxi_loader)
+@@ -1752,9 +1715,8 @@ if(NOT INTERN_BUILD_MOBILE)
+   endif()
+   if(USE_MKLDNN)
+     include(${CMAKE_CURRENT_LIST_DIR}/public/mkldnn.cmake)
+-    if(MKLDNN_FOUND)
++    if(DNNL_FOUND)
+       set(AT_MKLDNN_ENABLED 1)
+-      include_directories(AFTER SYSTEM ${MKLDNN_INCLUDE_DIR})
+       if(BUILD_CAFFE2_OPS)
+         list(APPEND Caffe2_DEPENDENCY_LIBS caffe2::mkldnn)
+       endif(BUILD_CAFFE2_OPS)
+@@ -1819,7 +1781,7 @@ endif()
+ #
+ set(TEMP_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})
+ set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libs" FORCE)
+-add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/fmt)
++find_package(fmt)
+ 
+ # Disable compiler feature checks for `fmt`.
+ #
+@@ -1828,7 +1790,6 @@ add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/fmt)
+ # CMAKE_CXX_FLAGS in ways that break feature checks. Since we already know
+ # `fmt` is compatible with a superset of the compilers that PyTorch is, it
+ # shouldn't be too bad to just disable the checks.
+-set_target_properties(fmt-header-only PROPERTIES INTERFACE_COMPILE_FEATURES "")
+ 
+ list(APPEND Caffe2_DEPENDENCY_LIBS fmt::fmt-header-only)
+ set(BUILD_SHARED_LIBS ${TEMP_BUILD_SHARED_LIBS} CACHE BOOL "Build shared libs" FORCE)
+diff --git a/cmake/External/nnpack.cmake b/cmake/External/nnpack.cmake
+index a41343cbb5..6075bdd0a4 100644
+--- a/cmake/External/nnpack.cmake
++++ b/cmake/External/nnpack.cmake
+@@ -40,7 +40,7 @@ endif()
+ # (3) Android, iOS, Linux, macOS - supported
+ ##############################################################################
+ 
+-if(ANDROID OR IOS OR ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
++if(FALSE)
+   message(STATUS "Brace yourself, we are building NNPACK")
+   set(CAFFE2_THIRD_PARTY_ROOT ${PROJECT_SOURCE_DIR}/third_party)
+ 
+@@ -114,6 +114,5 @@ endif()
+ # (4) Catch-all: not supported.
+ ##############################################################################
+ 
+-message(WARNING "Unknown platform - I don't know how to build NNPACK. "
+-                "See cmake/External/nnpack.cmake for details.")
+-set(USE_NNPACK OFF)
++set(NNPACK_FOUND TRUE)
++set(USE_NNPACK ON)
+diff --git a/cmake/public/mkldnn.cmake b/cmake/public/mkldnn.cmake
+index 50404d3b30..ca067f0087 100644
+--- a/cmake/public/mkldnn.cmake
++++ b/cmake/public/mkldnn.cmake
+@@ -4,7 +4,7 @@ if(CPU_AARCH64)
+   include(${CMAKE_CURRENT_LIST_DIR}/ComputeLibrary.cmake)
+ endif()
+ 
+-find_package(MKLDNN QUIET)
++find_package(DNNL REQUIRED)
+ 
+ if(NOT TARGET caffe2::mkldnn)
+   add_library(caffe2::mkldnn INTERFACE IMPORTED)
+@@ -15,7 +15,7 @@ set_property(
+   ${MKLDNN_INCLUDE_DIR})
+ set_property(
+   TARGET caffe2::mkldnn PROPERTY INTERFACE_LINK_LIBRARIES
+-  ${MKLDNN_LIBRARIES})
++  DNNL::dnnl)
+ if(BUILD_ONEDNN_GRAPH)
+   if(NOT TARGET caffe2::dnnl_graph)
+     add_library(caffe2::dnnl_graph INTERFACE IMPORTED)
+diff --git a/setup.py b/setup.py
+index 34b2854747..5db117f8e7 100644
+--- a/setup.py
++++ b/setup.py
+@@ -418,13 +418,9 @@ def build_deps():
+     # Windows has very poor support for them.
+     sym_files = [
+         'tools/shared/_utils_internal.py',
+-        'torch/utils/benchmark/utils/valgrind_wrapper/callgrind.h',
+-        'torch/utils/benchmark/utils/valgrind_wrapper/valgrind.h',
+     ]
+     orig_files = [
+         'torch/_utils_internal.py',
+-        'third_party/valgrind-headers/callgrind.h',
+-        'third_party/valgrind-headers/valgrind.h',
+     ]
+     for sym_file, orig_file in zip(sym_files, orig_files):
+         same = False
+diff --git a/test/cpp/c10d/CMakeLists.txt b/test/cpp/c10d/CMakeLists.txt
+index 89c6b9155f..0c60d08452 100644
+--- a/test/cpp/c10d/CMakeLists.txt
++++ b/test/cpp/c10d/CMakeLists.txt
+@@ -16,14 +16,14 @@ function(c10d_add_test test_src)
+   add_test(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}>)
+ endfunction()
+ 
+-c10d_add_test(FileStoreTest.cpp torch_cpu gtest_main)
+-c10d_add_test(TCPStoreTest.cpp torch_cpu gtest_main)
++c10d_add_test(FileStoreTest.cpp torch_cpu gtest_main gtest)
++c10d_add_test(TCPStoreTest.cpp torch_cpu gtest_main gtest)
+ if(INSTALL_TEST)
+   install(TARGETS FileStoreTest DESTINATION bin)
+   install(TARGETS TCPStoreTest DESTINATION bin)
+ endif()
+ if(NOT WIN32)
+-  c10d_add_test(HashStoreTest.cpp torch_cpu gtest_main)
++  c10d_add_test(HashStoreTest.cpp torch_cpu gtest_main gtest)
+   if(INSTALL_TEST)
+     install(TARGETS HashStoreTest DESTINATION bin)
+   endif()
+@@ -31,11 +31,11 @@ endif()
+ 
+ if(USE_CUDA)
+   if(USE_GLOO AND USE_C10D_GLOO)
+-    c10d_add_test(ProcessGroupGlooTest.cpp torch_cpu c10d_cuda_test gtest_main)
++    c10d_add_test(ProcessGroupGlooTest.cpp torch_cpu c10d_cuda_test gtest_main gtest)
+     if(INSTALL_TEST)
+       install(TARGETS ProcessGroupGlooTest DESTINATION bin)
+     endif()
+-    c10d_add_test(ProcessGroupGlooAsyncTest.cpp torch_cpu c10d_cuda_test gtest_main)
++    c10d_add_test(ProcessGroupGlooAsyncTest.cpp torch_cpu c10d_cuda_test gtest_main gtest)
+   endif()
+   if(USE_NCCL AND USE_C10D_NCCL)
+     # NCCL is a private dependency of libtorch, but the tests include some
+@@ -44,10 +44,10 @@ if(USE_CUDA)
+     # a private dependency of the tests as well.
+     c10d_add_test(
+       ProcessGroupNCCLTest.cpp
+-      torch_cpu c10d_cuda_test gtest_main __caffe2_nccl)
++      torch_cpu c10d_cuda_test gtest_main gtest __caffe2_nccl)
+     c10d_add_test(
+       ProcessGroupNCCLErrorsTest.cpp
+-      torch_cpu c10d_cuda_test gtest_main __caffe2_nccl)
++      torch_cpu c10d_cuda_test gtest_main gtest __caffe2_nccl)
+     if(INSTALL_TEST)
+       install(TARGETS ProcessGroupNCCLTest DESTINATION bin)
+       install(TARGETS ProcessGroupNCCLErrorsTest DESTINATION bin)
+@@ -61,7 +61,7 @@ if(USE_CUDA)
+     # a private dependency of the tests as well.
+     c10d_add_test(
+       ProcessGroupUCCTest.cpp
+-      torch_cpu c10d_cuda_test gtest_main __caffe2_ucc)
++      torch_cpu c10d_cuda_test gtest_main gtest __caffe2_ucc)
+     if(INSTALL_TEST)
+       install(TARGETS ProcessGroupUCCTest DESTINATION bin)
+       install(TARGETS c10d_cuda_test DESTINATION lib)
+@@ -69,7 +69,7 @@ if(USE_CUDA)
+   endif()
+ else()
+   if(USE_GLOO AND USE_C10D_GLOO)
+-    c10d_add_test(ProcessGroupGlooTest.cpp torch_cpu gtest_main)
++    c10d_add_test(ProcessGroupGlooTest.cpp torch_cpu gtest_main gtest)
+   endif()
+ endif()
+ 
+diff --git a/test/cpp/tensorexpr/CMakeLists.txt b/test/cpp/tensorexpr/CMakeLists.txt
+index 7dff70630d..90b1003591 100644
+--- a/test/cpp/tensorexpr/CMakeLists.txt
++++ b/test/cpp/tensorexpr/CMakeLists.txt
+@@ -54,7 +54,7 @@ target_include_directories(tutorial_tensorexpr PRIVATE ${ATen_CPU_INCLUDE})
+ # pthreadpool header. For some build environment we need add the dependency
+ # explicitly.
+ if(USE_PTHREADPOOL)
+-  target_link_libraries(test_tensorexpr PRIVATE pthreadpool_interface)
++  target_link_libraries(test_tensorexpr PRIVATE pthreadpool)
+ endif()
+ if(USE_CUDA)
+   target_link_libraries(test_tensorexpr PRIVATE
diff --git a/gnu/packages/patches/python-pytorch2-system-libraries.patch b/gnu/packages/patches/python-pytorch2-system-libraries.patch
deleted file mode 100644
index c2c44badbb..0000000000
--- a/gnu/packages/patches/python-pytorch2-system-libraries.patch
+++ /dev/null
@@ -1,156 +0,0 @@
-Use our own googletest rather than the bundled one.
-Get NNPACK to use our own PeachPy rather than the bundled one.
-
-diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt
---- a/caffe2/CMakeLists.txt	2023-12-27 12:14:24.308751288 +0100
-+++ b/caffe2/CMakeLists.txt	2023-12-27 12:30:15.941562126 +0100
-@@ -1570,7 +1570,7 @@
-   add_executable(static_runtime_bench "${STATIC_RUNTIME_BENCHMARK_SRCS}")
-   add_executable(static_runtime_test "${STATIC_RUNTIME_TEST_SRCS}")
-   target_link_libraries(static_runtime_bench torch_library benchmark)
--  target_link_libraries(static_runtime_test torch_library gtest_main)
-+  target_link_libraries(static_runtime_test torch_library gtest_main gtest)
- endif()
- 
- if(BUILD_TENSOREXPR_BENCHMARK)
-@@ -1601,7 +1601,7 @@
-   foreach(test_src ${ATen_MOBILE_TEST_SRCS})
-     get_filename_component(test_name ${test_src} NAME_WE)
-     add_executable(${test_name} "${test_src}")
--    target_link_libraries(${test_name} torch_library gtest_main)
-+    target_link_libraries(${test_name} torch_library gtest_main gtest)
-     target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
-     target_include_directories(${test_name} PRIVATE $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>)
-     target_include_directories(${test_name} PRIVATE ${ATen_CPU_INCLUDE})
-@@ -1628,7 +1628,7 @@
-           endif()
-         else()
-           add_executable(${test_name}_${CPU_CAPABILITY} "${test_src}")
--          target_link_libraries(${test_name}_${CPU_CAPABILITY} torch_library gtest_main)
-+          target_link_libraries(${test_name}_${CPU_CAPABILITY} torch_library gtest_main gtest)
-         endif()
-         target_include_directories(${test_name}_${CPU_CAPABILITY} PRIVATE $<INSTALL_INTERFACE:include>)
-         target_include_directories(${test_name}_${CPU_CAPABILITY} PRIVATE $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>)
-@@ -1645,7 +1645,7 @@
-   foreach(test_src ${Caffe2_CPU_TEST_SRCS})
-     get_filename_component(test_name ${test_src} NAME_WE)
-     add_executable(${test_name} "${test_src}")
--    target_link_libraries(${test_name} torch_library gtest_main)
-+    target_link_libraries(${test_name} torch_library gtest_main gtest)
-     target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
-     target_include_directories(${test_name} PRIVATE $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>)
-     target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE})
-@@ -1666,7 +1666,7 @@
-     foreach(test_src ${Caffe2_MPS_TEST_SRCS})
-       get_filename_component(test_name ${test_src} NAME_WE)
-       add_executable(${test_name} "${test_src}")
--      target_link_libraries(${test_name} torch_library gtest_main)
-+      target_link_libraries(${test_name} torch_library gtest_main gtest)
-       target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
-       target_include_directories(${test_name} PRIVATE $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>)
-       target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE})
-diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
-index 557ab649..ee9cf410 100644
---- a/cmake/Dependencies.cmake
-+++ b/cmake/Dependencies.cmake
-@@ -732,11 +732,6 @@ if(BUILD_TEST OR BUILD_MOBILE_BENCHMARK OR BUILD_MOBILE_TEST)
-   # this shouldn't be necessary anymore.
-   get_property(INC_DIR_temp DIRECTORY PROPERTY INCLUDE_DIRECTORIES)
-   set_property(DIRECTORY PROPERTY INCLUDE_DIRECTORIES "")
--  add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../third_party/googletest)
--  set_property(DIRECTORY PROPERTY INCLUDE_DIRECTORIES ${INC_DIR_temp})
--
--  include_directories(BEFORE SYSTEM ${CMAKE_CURRENT_LIST_DIR}/../third_party/googletest/googletest/include)
--  include_directories(BEFORE SYSTEM ${CMAKE_CURRENT_LIST_DIR}/../third_party/googletest/googlemock/include)
- 
-   # We will not need to test benchmark lib itself.
-   set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "Disable benchmark testing as we don't need it.")
-@@ -1543,7 +1538,7 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX)
-     endif()
-     set_property(TARGET onnx_proto PROPERTY IMPORTED_LOCATION ${ONNX_PROTO_LIBRARY})
-     message("-- Found onnx: ${ONNX_LIBRARY} ${ONNX_PROTO_LIBRARY}")
--    list(APPEND Caffe2_DEPENDENCY_LIBS onnx_proto onnx)
-+    list(APPEND Caffe2_DEPENDENCY_LIBS onnx_proto onnx onnx_optimizer)
-   endif()
-   include_directories(${FOXI_INCLUDE_DIRS})
-   list(APPEND Caffe2_DEPENDENCY_LIBS foxi_loader)
-diff --git a/cmake/External/nnpack.cmake b/cmake/External/nnpack.cmake
-index a41343cb..6075bdd0 100644
---- a/cmake/External/nnpack.cmake
-+++ b/cmake/External/nnpack.cmake
-@@ -40,7 +40,7 @@ endif()
- # (3) Android, iOS, Linux, macOS - supported
- ##############################################################################
- 
--if(ANDROID OR IOS OR ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
-+if(FALSE)
-   message(STATUS "Brace yourself, we are building NNPACK")
-   set(CAFFE2_THIRD_PARTY_ROOT ${PROJECT_SOURCE_DIR}/third_party)
- 
-@@ -114,6 +114,5 @@ endif()
- # (4) Catch-all: not supported.
- ##############################################################################
- 
--message(WARNING "Unknown platform - I don't know how to build NNPACK. "
--                "See cmake/External/nnpack.cmake for details.")
--set(USE_NNPACK OFF)
-+set(NNPACK_FOUND TRUE)
-+set(USE_NNPACK ON)
-diff --git a/test/cpp/c10d/CMakeLists.txt b/test/cpp/c10d/CMakeLists.txt
-index bf91460c..ef56948f 100644
---- a/test/cpp/c10d/CMakeLists.txt
-+++ b/test/cpp/c10d/CMakeLists.txt
-@@ -16,14 +16,14 @@ function(c10d_add_test test_src)
-   add_test(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}>)
- endfunction()
- 
--c10d_add_test(FileStoreTest.cpp torch_cpu gtest_main)
--c10d_add_test(TCPStoreTest.cpp torch_cpu gtest_main)
-+c10d_add_test(FileStoreTest.cpp torch_cpu gtest_main gtest)
-+c10d_add_test(TCPStoreTest.cpp torch_cpu gtest_main gtest)
- if(INSTALL_TEST)
-   install(TARGETS FileStoreTest DESTINATION bin)
-   install(TARGETS TCPStoreTest DESTINATION bin)
- endif()
- if(NOT WIN32)
--  c10d_add_test(HashStoreTest.cpp torch_cpu gtest_main)
-+  c10d_add_test(HashStoreTest.cpp torch_cpu gtest_main gtest)
-   if(INSTALL_TEST)
-     install(TARGETS HashStoreTest DESTINATION bin)
-   endif()
-@@ -31,11 +31,11 @@ endif()
- 
- if(USE_CUDA)
-   if(USE_GLOO AND USE_C10D_GLOO)
--    c10d_add_test(ProcessGroupGlooTest.cpp torch_cpu c10d_cuda_test gtest_main)
-+    c10d_add_test(ProcessGroupGlooTest.cpp torch_cpu c10d_cuda_test gtest_main gtest)
-     if(INSTALL_TEST)
-       install(TARGETS ProcessGroupGlooTest DESTINATION bin)
-     endif()
--    c10d_add_test(ProcessGroupGlooAsyncTest.cpp torch_cpu c10d_cuda_test gtest_main)
-+    c10d_add_test(ProcessGroupGlooAsyncTest.cpp torch_cpu c10d_cuda_test gtest_main gtest)
-   endif()
-   if(USE_NCCL AND USE_C10D_NCCL)
-     # NCCL is a private dependency of libtorch, but the tests include some
-@@ -56,7 +56,7 @@ if(USE_CUDA)
-   endif()
- else()
-   if(USE_GLOO AND USE_C10D_GLOO)
--    c10d_add_test(ProcessGroupGlooTest.cpp torch_cpu gtest_main)
-+    c10d_add_test(ProcessGroupGlooTest.cpp torch_cpu gtest_main gtest)
-   endif()
- endif()
- 
-diff --git a/test/cpp/tensorexpr/CMakeLists.txt b/test/cpp/tensorexpr/CMakeLists.txt
-index 8fc5a0a1..643202f6 100644
---- a/test/cpp/tensorexpr/CMakeLists.txt
-+++ b/test/cpp/tensorexpr/CMakeLists.txt
-@@ -53,7 +53,7 @@ target_include_directories(tutorial_tensorexpr PRIVATE ${ATen_CPU_INCLUDE})
- # pthreadpool header. For some build environment we need add the dependency
- # explicitly.
- if(USE_PTHREADPOOL)
--  target_link_libraries(test_tensorexpr PRIVATE pthreadpool_interface)
-+  target_link_libraries(test_tensorexpr PRIVATE pthreadpool)
- endif()
- if(USE_CUDA)
-   target_link_libraries(test_tensorexpr PRIVATE
-- 
2.41.0






Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:42:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:42:48 2024
Received: from localhost ([127.0.0.1]:51592 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhxA5-0008IS-3i
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:48 -0500
Received: from mout01.posteo.de ([185.67.36.65]:33059)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx9F-0008CQ-Eu
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:57 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id D0BD6240028
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:41:16 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754076; bh=IYj9s+AOxbf/KOxw3zxo/0bSq0js9/k+PSzG9FXrvyM=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=GbRFR/vvEkvxHHCT/UX8DiENAbQszlpEygtWHqkxs/QxtD2tYudCIAPsWiU3+o1v/
 2F9OwUIkVUOeBkrbkb5Qh0sVZtiW5cC8jmGrF37roDGHfNcGX+tFNPraEBBt6A0hlD
 eTLft6/ns6ZC27H6CT4+n2l12tdnBfd1SLN0k43ZBAPJl5cbtIQCFQvsqji4AugPXw
 ge4AUB6pSROl5pQEuy9CMxsvC2FN5lmRQc03NoG7B2EREpKZSkLnNOhSB0pTnL8Uxs
 yc6FHdHiL1ZTrIfUbddKchdFr0mjWXI30/DG+KmTFOG/DQJvDTPGNy+8ByfbTG+mXT
 Vu40wByznph3w==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjV43BBsz6twc;
 Wed,  6 Mar 2024 20:41:16 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 28/31] gnu: Add ideep-pytorch-for-r-torch.
Date: Wed,  6 Mar 2024 19:40:34 +0000
Message-ID: <20240306194037.17992-28-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/machine-learning.scm (ideep-pytorch-for-r-torch): New variable.
---
 gnu/packages/machine-learning.scm | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 02e9d6758f..64b62e86d4 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -4312,6 +4312,21 @@ (define-public ideep-pytorch
 PyTorch.")
     (license license:expat)))
 
+(define-public ideep-pytorch-for-r-torch
+  (package
+    (inherit ideep-pytorch)
+    (version "2.7.3-1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/intel/ideep")
+             (commit (string-append "pytorch-rls-v" version))))
+       (file-name (git-file-name (package-name ideep-pytorch) version))
+       (sha256
+        (base32
+         "0hdpkhcjry22fjx2zg2r48v7f4ljrclzj0li2pgk76kvyblfbyvm"))))))
+
 (define %python-pytorch-version "2.2.1")
 
 (define %python-pytorch-src
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:42:45 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:42:45 2024
Received: from localhost ([127.0.0.1]:51590 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhxA2-0008IH-Vm
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:45 -0500
Received: from mout02.posteo.de ([185.67.36.66]:46335)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx9G-0008CZ-9e
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:57 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id AC23B240101
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:41:17 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754077; bh=YdNKKTMPwkGMSBAQD2NktAMkX/GQTKpFYhogXZtUmx4=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=CSSNBdN9bc2uTvL36frwR7dll3H7NCdpQp7czPa9R/rqcnk/oe22VZceYzah2aolj
 BwEVsS79gfFYbSSg8BZK13O+4mlUTK/QbP6+tCobyAFCKkWbwGsblob7qp5Xf0sOAN
 kUhmcuBj3G9Pa4yakxVTNXtjY9Y9mXnI9dqqV2JbaRlMJtHlGrn1wXjkGV9GgfUocp
 5C28iiivkwqmTci5ljdmxbL9xRsN2W0Esg8MmK4X1zj/kG+zGEupf6iRBq15kIPX/d
 yi17Qx5xZEGdP0I/59VVrL9c+hNtxiRJyz3CjCsvXT+Jt3yJQubyTz/dUpBt7nFrXO
 w644GNLCWbgzA==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjV529DPz6ty1;
 Wed,  6 Mar 2024 20:41:17 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 29/31] gnu: Add oneapi-dnnl-for-r-torch.
Date: Wed,  6 Mar 2024 19:40:35 +0000
Message-ID: <20240306194037.17992-29-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/machine-learning.scm (oneapi-dnnl-for-r-torch): New variable.
---
 gnu/packages/machine-learning.scm | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 64b62e86d4..0c46a1ba1f 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -5833,6 +5833,20 @@ (define-public oneapi-dnnl
     (supported-systems %64bit-supported-systems)
     (license license:asl2.0)))
 
+(define-public oneapi-dnnl-for-r-torch
+  (package
+    (inherit oneapi-dnnl)
+    (version "2.7.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/oneapi-src/oneDNN")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name (package-name oneapi-dnnl) version))
+       (sha256
+        (base32 "1zyw5rd8x346bb7gac9a7x3saviw3zvp6aqz2z1l9sv163vmjfz6"))))))
+
 (define-public python-gguf
   (package
     (name "python-gguf")
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:42:42 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:42:42 2024
Received: from localhost ([127.0.0.1]:51588 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhxA1-0008I5-DC
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:42 -0500
Received: from mout01.posteo.de ([185.67.36.65]:48027)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx9E-0008CP-IY
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:56 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id EDD56240027
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:41:15 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754076; bh=hXEOxILklelsVPcOsOoRnqusX7aGy6WCylHfvc10gi0=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=X6qVdhSHxYxgJ0jN8jfW1qCab1tGM97T4fq9rI1eBvAd8n7x8dLQZ3oSpX6X8UJTr
 HXcR/SxXRkaR+y88yl80Tbt1u7zzQDDJjoOX0amjNRdslr8W6+dg3tdCDlzto3MLXs
 zLQxc2sMAg8o5kcpeVhiIh+9BDxii3tBPLAe4y+YXz9/8bwg4LLvFQggNwAVbh5umB
 qOr7vnNLAQ+1/X5IUIqc3YQJvtIhx9ksVWRCJZQgnVA1FWiEz/4lUGUBLyBXMK37c1
 r/8KyU5/jpy6dOZz+c6d/pv5LxF6p9rzefUJkn5txi6dUeecYlMXjdhl3u1CrDWA42
 9z9zEzYOAxZMw==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjV34B49z6tm8;
 Wed,  6 Mar 2024 20:41:15 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 27/31] gnu: python-torchvision: Update to 0.17.1.
Date: Wed,  6 Mar 2024 19:40:33 +0000
Message-ID: <20240306194037.17992-27-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/machine-learning.scm (python-torchvision): Update to 0.17.1.
[source]: Add snippet to remove "android" and "ios" directories.
---
 gnu/packages/machine-learning.scm | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index f5e19bcaff..02e9d6758f 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -5118,7 +5118,7 @@ (define-public python-torchmetrics
 (define-public python-torchvision
   (package
     (name "python-torchvision")
-    (version "0.15.2")
+    (version "0.17.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -5128,7 +5128,12 @@ (define-public python-torchvision
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1cq2s13vkgg9rljjbrm4g33yxq7q5zqp7f4xm5cq624gvs0wxmi8"))))
+                "094jz0ryzh0yjxf687r61r482fdh3bax8ix2csghraps0z1sns1b"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (delete-file-recursively "android")
+                  (delete-file-recursively "ios")))))
     (build-system pyproject-build-system)
     (arguments
      (list #:tests? #false)) ;the test suite is expensive and there is no easy
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:42:41 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:42:41 2024
Received: from localhost ([127.0.0.1]:51586 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx9x-0008Hz-U1
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:41 -0500
Received: from mout01.posteo.de ([185.67.36.65]:56815)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx9D-0008CB-PP
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:56 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 2BC7D240027
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:41:15 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754075; bh=zmXrYI1dz8CofcT+uhME2U3Q9ttyF8rMTyPhNeJn0a8=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=J6xTISxiWP6FmWL+/gvnRhjfxyowJLflgQpAmb7fmOB0dQ7jFH1bWgwSpXoNHnPQn
 uxFHYxCacPcUpMjGa5OvJdtFkccAH196U5aHifD/qgdyy7speFCra7beCEsJGmF65W
 u5eTsB8sadgBpiQRcEjNmvOtTOiniqX3+qd1/udCCVXS+0v/OyqJF78qWqm6WVdIqA
 eGJcxf2X3+EIrZGpkAiWN+6EXFfO56mdRWNoJo3zH8rKIX/wC+M9WFF1j4caeiuiJ9
 aiRfCTG1AbmI8hF4Smu9H8hRHAk6CV0uMz3qAh6P2nfZddaTqJgmhI44wkG/+FkejV
 zcQ9X3cOASQBw==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjV24pkgz6tyf;
 Wed,  6 Mar 2024 20:41:14 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 26/31] gnu: python-pytorch: Update to 2.2.1 and unbundle
 dependencies.
Date: Wed,  6 Mar 2024 19:40:32 +0000
Message-ID: <20240306194037.17992-26-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -1.6 (-)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.6 (--)

Autogenerated files are also regenerated. The tests can be run, but are
disabled, as they require a long time.

* gnu/packages/machine-learning.scm (python-pytorch): Update to 2.2.1.
[version]: Use %python-pytorch-version.
[source]: Use %python-pytorch-src.
[arguments]: Remove 'make-things-writable phase.  Add 'cmake-patches,
'set-max-jobs, 'codegen1, 'codegen2, 'build2, 'install2 phases. Adjust
'use-system-libraries and 'check phases.
[native-inputs]: Add doxygen, ideep-pytorch, pocketfft-cpp, python-expecttest,
python-pytest-flakefinder, python-pytest-rerunfailures-13,
python-pytest-shard, python-pytest-xdist, python-hypothesis,
python-types-dataclasses, python-typing-extensions-4.10 and valgrind.
[inputs]: Add asmjit, clog, flatbuffers-next, foxi, fxdiv, libuv,
miniz-for-pytorch, qnnpack, qnnpack-pytorch, fbgemm and oneapi-dnnl. Use
nnpack, fbgemm and oneapi-dnnl only for supported systems.
[propagated-inputs]: Add python-filelock, python-fsspec, python-jinja2,
python-networkx, python-optree, python-packaging, python-psutil and
python-sympy. Remove python-cffi and python-six.
(%python-pytorch-src)[source]: Add patches.
* gnu/packages/patches/python-pytorch-runpath.patch: Adjust patch.
* gnu/packages/patches/python-pytorch-system-libraries.patch: Adjust patch.
* gnu/packages/patches/python-pytorch-1.9.0-system-libraries.patch: Remove file.
* gnu/packages/patches/python-pytorch-fix-codegen.patch: New file.
* gnu/packages/patches/python-pytorch-without-kineto: New file.
* gnu/local.mk (dist_patch_DATA): Register them.
---
 gnu/local.mk                                  |   2 +-
 gnu/packages/machine-learning.scm             | 318 ++++++++++-------
 ...ython-pytorch-1.9.0-system-libraries.patch | 139 --------
 .../patches/python-pytorch-fix-codegen.patch  | 167 +++++++++
 .../patches/python-pytorch-runpath.patch      |  19 +-
 .../python-pytorch-system-libraries.patch     | 324 +++++++++++++++---
 .../python-pytorch-without-kineto.patch       |  60 ++++
 7 files changed, 720 insertions(+), 309 deletions(-)
 delete mode 100644 gnu/packages/patches/python-pytorch-1.9.0-system-libraries.patch
 create mode 100644 gnu/packages/patches/python-pytorch-fix-codegen.patch
 create mode 100644 gnu/packages/patches/python-pytorch-without-kineto.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index bba56e7ebe..84eeb39c8b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1927,7 +1927,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch	\
   %D%/packages/patches/python-pytorch-runpath.patch		\
   %D%/packages/patches/python-pytorch-system-libraries.patch	\
-  %D%/packages/patches/python-pytorch-1.9.0-system-libraries.patch \
+  %D%/packages/patches/python-pytorch-without-kineto.patch	\
   %D%/packages/patches/python-robotframework-atest.patch	\
   %D%/packages/patches/python-robotframework-source-date-epoch.patch \
   %D%/packages/patches/python-robotframework-sshlibrary-rf5-compat.patch \
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index eed649f118..f5e19bcaff 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -104,6 +104,7 @@ (define-module (gnu packages machine-learning)
   #:use-module (gnu packages parallel)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pretty-print)
   #:use-module (gnu packages protobuf)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
@@ -122,6 +123,7 @@ (define-module (gnu packages machine-learning)
   #:use-module (gnu packages swig)
   #:use-module (gnu packages time)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages valgrind)
   #:use-module (gnu packages vulkan)
   #:use-module (gnu packages video)
   #:use-module (gnu packages web)
@@ -4322,6 +4324,13 @@ (define %python-pytorch-src
     (sha256
      (base32
       "03mm0pwwb5lxdsmmiw3cch9fijgjw81kmmc4ln9rlyazkm7l1r48"))
+    (patches (search-patches "python-pytorch-system-libraries.patch"
+                             "python-pytorch-runpath.patch"
+                             "python-pytorch-without-kineto.patch"
+                             ;; Some autogeneration scripts depend on the
+                             ;; compile PyTorch library. Therefore, we create
+                             ;; dummy versions which are regenerated later.
+                             "python-pytorch-fix-codegen.patch"))
     (modules '((guix build utils)))
     (snippet
      '(begin
@@ -4441,135 +4450,204 @@ (define-public qnnpack-pytorch
 (define-public python-pytorch
   (package
     (name "python-pytorch")
-    (version "1.13.1")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/pytorch/pytorch")
-                    (commit (string-append "v" version))
-                    (recursive? #t)))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "17yxjzwp4zp75fz7czgz9acijzw7dpyqcza50v8y1x7hfg2gw369"))
-              (patches (search-patches "python-pytorch-system-libraries.patch"
-                                       "python-pytorch-runpath.patch"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  ;; XXX: Let's be clear: this package is a bundling fest.  We
-                  ;; delete as much as we can, but there's still a lot left.
-                  (for-each (lambda (directory)
-                              (delete-file-recursively
-                               (string-append "third_party/" directory)))
-                            '("benchmark" "cpuinfo" "eigen"
-
-                              ;; FIXME: QNNPACK (of which XNNPACK is a fork)
-                              ;; needs these.
-                              ;; "FP16" "FXdiv" "gemmlowp" "psimd"
-
-                              "gloo" "googletest" "ios-cmake" "NNPACK"
-                              "onnx" "protobuf" "pthreadpool"
-                              "pybind11" "python-enum" "python-peachpy"
-                              "python-six" "tbb" "XNNPACK" "zstd"))
-                  (substitute* "functorch/CMakeLists.txt"
-                    (("\\$\\{_rpath_portable_origin\\}/../torch/lib")
-                     "$ORIGIN/../torch/lib"))))))
+    (version %python-pytorch-version)
+    (source %python-pytorch-src)
     (build-system python-build-system)
     (arguments
-     '(#:phases (modify-phases %standard-phases
-                  (add-before 'build 'use-system-libraries
-                    (lambda* (#:key outputs #:allow-other-keys)
-                      ;; Tell 'setup.py' to let 'CMakeLists.txt' know that we
-                      ;; want to use "system libraries" instead of the bundled
-                      ;; ones.
-                      (setenv "USE_SYSTEM_LIBS" "1")
-
-                      (substitute* "cmake/Dependencies.cmake"
-                        (("if\\(USE_SYSTEM_BIND11\\)")
-                         "if(TRUE)"))
-
-                      ;; XXX: Disable that for simplicity for now.
-                      (setenv "USE_FBGEMM" "0")))
-                  (add-before 'build 'make-things-writable
-                    (lambda _
-                      ;; The 'build_caffe2' function in
-                      ;; 'tools/build_pytorch_libs.py', called from the
-                      ;; top-level 'setup.py', needs write access to this
-                      ;; directory.
-                      (for-each make-file-writable
-                                (find-files "caffe2/proto" "."
-                                            #:directories? #t))))
-                  (replace 'check
-                    (lambda* (#:key inputs outputs tests? #:allow-other-keys)
-                      ;; Run the test suite following the instructions in
-                      ;; 'CONTRIBUTING.md'.  XXX: Unfortunately this doesn't
-                      ;; work, unless you set GUIX_PYTHONPATH presumably.
-                      (when tests?
-                        (add-installed-pythonpath inputs outputs)
-                        (invoke "python" "test/run_test.py"))))
-                  (add-after 'install 'remove-test-executables
-                    (lambda* (#:key inputs outputs #:allow-other-keys)
-                      ;; Remove test executables, but keep other executables
-                      ;; such as 'torch_shm_manager' and and .so files such as
-                      ;; 'libtorch_global_deps.so'.
-                      (let ((python-site (site-packages inputs outputs)))
-                        (for-each delete-file
-                                  (find-files python-site
-                                              "(^test_cpp_rpc|_test)$")))))
-                  (add-after 'install 'remove-caffe2-onnx-scripts
-                    (lambda* (#:key outputs #:allow-other-keys)
-                      (let* ((out (assoc-ref outputs "out"))
-                             (bin (string-append out "/bin")))
-                        ;; Remove 'convert-caffe2-to-onnx' and
-                        ;; 'convert-onnx-to-caffe2': they seem to be
-                        ;; deprecated and they cause a failure of the
-                        ;; 'sanity-check' phase:
-                        ;;
-                        ;; ImportError: cannot import name 'metanet_pb2' from partially initialized module 'caffe2.proto' (most likely due to a circular import)
-                        (for-each delete-file
-                                  (find-files bin "^convert-.*caffe2"))
-
-                        (substitute* (find-files out "^entry_points\\.txt$")
-                          (("^convert-.*" all)
-                           (string-append "# " all "\n")))))))
-
-       ;; XXX: Tests attempt to download data such as
-       ;; <https://raw.githubusercontent.com/pytorch/test-infra/master/stats/slow-tests.json>.
-       ;; We're also missing some Python modules, such as expecttest.
-       #:tests? #f))
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'cmake-patches
+            (lambda _
+              (substitute* "cmake/Dependencies.cmake"
+                (("#POCKETFFT_INCLUDE_DIR")
+                 (string-append
+                  #$(this-package-native-input "pocketfft-cpp") "/include"))
+                (("#FP16_INCLUDE_DIR")
+                 (string-append
+                  #$(this-package-input "fp16") "/include")))))
+          (add-before 'build 'use-system-libraries
+            (lambda _
+              (substitute* '("caffe2/serialize/crc.cc"
+                             "caffe2/serialize/inline_container.cc")
+                (("\"miniz\\.h\"") "<miniz/miniz.h>"))
+              (substitute*
+                  (cons*
+                   "torch/csrc/Module.cpp"
+                   (map
+                    (lambda (name)
+                      (string-append
+                       "torch/utils/benchmark/utils/valgrind_wrapper/"
+                       name))
+                    '("compat_bindings.cpp" "timer_callgrind_template.cpp")))
+                (("<callgrind.h>") "<valgrind/callgrind.h>"))
+              ;; Tell 'setup.py' to let 'CMakeLists.txt' know that we
+              ;; want to use "system libraries" instead of the bundled
+              ;; ones.
+              (setenv "USE_SYSTEM_LIBS" "1")
+              ;; For oneDNN
+              (setenv "USE_MKLDNN" "1")
+              ;; Only works with CUPTI
+              (setenv "USE_KINETO" "0")
+              ;; Prevent CMake error by disabling explicitely
+              (setenv "USE_ITT" "0")))
+          (add-after 'use-system-libraries 'set-max-jobs
+            (lambda _
+              (setenv "MAX_JOBS" (number->string (parallel-job-count)))))
+          (add-after 'set-max-jobs 'codegen1
+            (lambda _
+              (with-directory-excursion "torch/csrc/jit/tensorexpr"
+                (setenv "PYTHONPATH" "../../../..")
+                (invoke "python3" "codegen_external.py")
+                (setenv "PYTHONPATH" #f))
+
+              (invoke "python3" "aten/src/ATen/nnapi/codegen.py")
+
+              (invoke "bash" "tools/gen_flatbuffers.sh")
+
+              ;; Generate dummy files as the generation depends on the compiled
+              ;; library. They are regenerated later.
+              (setenv "PYTHONPATH" ".")
+              (invoke "python3"
+                      "torchgen/operator_versions/gen_mobile_upgraders.py"
+                      "dummy")
+              (setenv "PYTHONPATH" #f)
+
+              (invoke "python3"
+                      "torchgen/shape_functions/gen_jit_shape_functions.py"
+                      "dummy")
+
+              (invoke "python3"
+                      "torchgen/decompositions/gen_jit_decompositions.py"
+                      "dummy")))
+          ;; Properly generate autogenerated files ...
+          (add-after 'install 'codegen2
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (add-installed-pythonpath inputs outputs)
+              (invoke "python3"
+                      "torchgen/operator_versions/gen_mobile_upgraders.py")
+              (invoke "python3"
+                      "torchgen/shape_functions/gen_jit_shape_functions.py")
+              (invoke "python3"
+                      "torchgen/decompositions/gen_jit_decompositions.py")))
+          ;; ... rebuild their dependencies ...
+          (add-after 'codegen2 'build2
+            (lambda _
+              (invoke "python3" "setup.py" "build")))
+          ;; ... and install again.
+          (add-after 'build2 'install2
+            (lambda _
+              (invoke "python3" "setup.py" "install" (string-append "--prefix=" #$output)
+                      "--no-compile" "--single-version-externally-managed" "--root=/")
+              (invoke "python" "-m" "compileall"
+                      "--invalidation-mode=unchecked-hash" #$output)))
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              ;; Run the test suite following the instructions in
+              ;; 'CONTRIBUTING.md'. Unfortunately this doesn't work, unless
+              ;; you set PYTHONPATH or GUIX_PYTHONPATH, but this is done in
+              ;; the codegen2 phase already.
+              (when tests?
+                (invoke "python3" "test/run_test.py" "--core"))))
+          (add-after 'install2 'remove-test-executables
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              ;; Remove test executables, but keep other executables
+              ;; such as 'torch_shm_manager' and and .so files such as
+              ;; 'libtorch_global_deps.so'.
+              (let ((python-site (site-packages inputs outputs)))
+                (for-each delete-file
+                          (find-files python-site
+                                      "(^test_cpp_rpc|_test)$")))))
+          (add-after 'install2 'remove-caffe2-onnx-scripts
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let* ((out (assoc-ref outputs "out"))
+                     (bin (string-append out "/bin")))
+                ;; Remove 'convert-caffe2-to-onnx' and
+                ;; 'convert-onnx-to-caffe2': they seem to be
+                ;; deprecated and they cause a failure of the
+                ;; 'sanity-check' phase:
+                ;;
+                ;; ImportError: cannot import name 'metanet_pb2' from partially initialized module 'caffe2.proto' (most likely due to a circular import)
+                (for-each delete-file
+                          (find-files bin "^convert-.*caffe2"))
+
+                (substitute* (find-files out "^entry_points\\.txt$")
+                  (("^convert-.*" all)
+                   (string-append "# " all "\n")))))))
+
+      ;; Even only the core tests take a very long time to run.
+      #:tests? #f))
     (native-inputs
-     (list cmake ninja))
+     (list cmake
+           doxygen
+           ideep-pytorch
+           ninja
+           pocketfft-cpp
+           python-expecttest
+           python-pytest-flakefinder
+           python-pytest-rerunfailures-13
+           python-pytest-shard
+           python-pytest-xdist
+           python-hypothesis
+           python-types-dataclasses
+           python-typing-extensions-4.10
+           valgrind))
     (inputs
-     (list eigen
-           ;; ("fmt" ,fmt)
-           fp16
-           gemmlowp
-           googletest
-           googlebenchmark
-           gloo
-           nnpack
-           openblas
-           openmpi
-           pthreadpool
-           protobuf
-           pybind11
-           sleef
-           xnnpack
-           zstd))
+     (append
+      (list asmjit
+            clog
+            eigen
+            flatbuffers-next
+            fmt
+            foxi
+            fp16
+            fxdiv
+            gemmlowp
+            googletest
+            googlebenchmark
+            gloo
+            libuv
+            miniz-for-pytorch
+            openblas
+            openmpi
+            pthreadpool
+            protobuf
+            pybind11
+            qnnpack
+            qnnpack-pytorch
+            sleef
+            tensorpipe
+            xnnpack
+            zstd)
+      ;; TODO: fix build on 32 bit systems
+      (filter
+       (lambda (pkg)
+         (member (or (%current-target-system)
+                     (%current-system))
+                 (package-transitive-supported-systems pkg)))
+       (list
+        nnpack
+        fbgemm
+        oneapi-dnnl))))
     (propagated-inputs
-     (list python-astunparse
+     (list cpuinfo
+           onnx ;propagated for its Python modules
+           onnx-optimizer
+           python-astunparse
            python-click
+           python-filelock
+           python-fsspec
+           python-future
+           python-jinja2
+           python-networkx
            python-numpy
+           python-optree
+           python-packaging
+           python-psutil
            python-pyyaml
-           python-cffi
-           python-typing-extensions
-           python-future
-           python-six
            python-requests
-           onnx                             ;propagated for its Python modules
-           onnx-optimizer
-           cpuinfo))
+           python-sympy
+           python-typing-extensions))
     (home-page "https://pytorch.org/")
     (synopsis "Python library for tensor computation and deep neural networks")
     (description
diff --git a/gnu/packages/patches/python-pytorch-1.9.0-system-libraries.patch b/gnu/packages/patches/python-pytorch-1.9.0-system-libraries.patch
deleted file mode 100644
index 76c06520f0..0000000000
--- a/gnu/packages/patches/python-pytorch-1.9.0-system-libraries.patch
+++ /dev/null
@@ -1,139 +0,0 @@
-Use our own googletest rather than the bundled one.
-Get NNPACK to use our own PeachPy rather than the bundled one.
-
-diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
-index 5d57b9ca78..620cca4e60 100644
---- a/cmake/Dependencies.cmake
-+++ b/cmake/Dependencies.cmake
-@@ -644,11 +644,6 @@ if(BUILD_TEST OR BUILD_MOBILE_BENCHMARK OR BUILD_MOBILE_TEST)
-   # this shouldn't be necessary anymore.
-   get_property(INC_DIR_temp DIRECTORY PROPERTY INCLUDE_DIRECTORIES)
-   set_property(DIRECTORY PROPERTY INCLUDE_DIRECTORIES "")
--  add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../third_party/googletest)
--  set_property(DIRECTORY PROPERTY INCLUDE_DIRECTORIES ${INC_DIR_temp})
--
--  include_directories(BEFORE SYSTEM ${CMAKE_CURRENT_LIST_DIR}/../third_party/googletest/googletest/include)
--  include_directories(BEFORE SYSTEM ${CMAKE_CURRENT_LIST_DIR}/../third_party/googletest/googlemock/include)
- 
-   # We will not need to test benchmark lib itself.
-   set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "Disable benchmark testing as we don't need it.")
-@@ -1485,7 +1480,7 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX)
-     endif()
-     set_property(TARGET onnx_proto PROPERTY IMPORTED_LOCATION ${ONNX_PROTO_LIBRARY})
-     message("-- Found onnx: ${ONNX_LIBRARY} ${ONNX_PROTO_LIBRARY}")
--    list(APPEND Caffe2_DEPENDENCY_LIBS onnx_proto onnx)
-+    list(APPEND Caffe2_DEPENDENCY_LIBS onnx_proto onnx onnx_optimizer)
-   endif()
-   include_directories(${FOXI_INCLUDE_DIRS})
-   list(APPEND Caffe2_DEPENDENCY_LIBS foxi_loader)
-
-diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt
-index 50ebb224ce..5953d9ddf7 100644
---- a/caffe2/CMakeLists.txt
-+++ b/caffe2/CMakeLists.txt
-@@ -1632,7 +1632,7 @@ if(BUILD_TEST)
-         if(NOT MSVC)
-           add_executable(${test_name}_${CPU_CAPABILITY} "${test_src}" ../aten/src/ATen/native/quantized/affine_quantizer_base.cpp)
-           # TODO: Get rid of c10 dependency (which is only needed for the implementation of AT_ERROR)
--          target_link_libraries(${test_name}_${CPU_CAPABILITY} c10 sleef gtest_main)
-+          target_link_libraries(${test_name}_${CPU_CAPABILITY} c10 sleef gtest_main gtest)
-           if(USE_FBGEMM)
-             target_link_libraries(${test_name}_${CPU_CAPABILITY} fbgemm)
-           endif()
-@@ -1655,7 +1655,7 @@ if(BUILD_TEST)
-   foreach(test_src ${Caffe2_CPU_TEST_SRCS})
-     get_filename_component(test_name ${test_src} NAME_WE)
-     add_executable(${test_name} "${test_src}")
--    target_link_libraries(${test_name} torch_library gtest_main)
-+    target_link_libraries(${test_name} torch_library gtest_main gtest)
-     target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
-     target_include_directories(${test_name} PRIVATE $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>)
-     target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE})
-@@ -1673,7 +1673,7 @@ if(BUILD_TEST)
-     foreach(test_src ${Caffe2_GPU_TEST_SRCS})
-       get_filename_component(test_name ${test_src} NAME_WE)
-       cuda_add_executable(${test_name} "${test_src}")
--      target_link_libraries(${test_name} torch_library gtest_main)
-+      target_link_libraries(${test_name} torch_library gtest_main gtest)
-       target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
-       target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE})
-       add_test(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}>)
-@@ -1691,7 +1691,7 @@ if(BUILD_TEST)
-     foreach(test_src ${Caffe2_VULKAN_TEST_SRCS})
-       get_filename_component(test_name ${test_src} NAME_WE)
-       add_executable(${test_name} "${test_src}")
--      target_link_libraries(${test_name} torch_library gtest_main)
-+      target_link_libraries(${test_name} torch_library gtest_main gtest)
-       target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
-       target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE})
-       add_test(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}>)
-@@ -1709,7 +1709,7 @@ if(BUILD_TEST)
-     foreach(test_src ${Caffe2_HIP_TEST_SRCS})
-       get_filename_component(test_name ${test_src} NAME_WE)
-       add_executable(${test_name} "${test_src}")
--      target_link_libraries(${test_name} torch_library gtest_main)
-+      target_link_libraries(${test_name} torch_library gtest_main gtest)
-       target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
-       target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE} ${Caffe2_HIP_INCLUDE})
-       target_compile_options(${test_name} PRIVATE ${HIP_CXX_FLAGS})
-
-diff --git a/torch/lib/c10d/test/CMakeLists.txt b/torch/lib/c10d/test/CMakeLists.txt
-index b74d4b65f7..fc7c207505 100644
---- a/torch/lib/c10d/test/CMakeLists.txt
-+++ b/torch/lib/c10d/test/CMakeLists.txt
-@@ -16,24 +16,24 @@ function(c10d_add_test test_src)
-   add_test(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}>)
- endfunction()
- 
--c10d_add_test(FileStoreTest.cpp c10d gtest_main)
--c10d_add_test(TCPStoreTest.cpp c10d gtest_main)
-+c10d_add_test(FileStoreTest.cpp c10d gtest_main gtest)
-+c10d_add_test(TCPStoreTest.cpp c10d gtest_main gtest)
- if(NOT WIN32)
--  c10d_add_test(HashStoreTest.cpp c10d gtest_main)
-+  c10d_add_test(HashStoreTest.cpp c10d gtest_main gtest)
- endif()
- 
- if(USE_CUDA)
-   if(USE_C10D_GLOO)
--    c10d_add_test(ProcessGroupGlooTest.cpp c10d c10d_cuda_test gtest_main)
--    c10d_add_test(ProcessGroupGlooAsyncTest.cpp c10d c10d_cuda_test gtest_main)
-+    c10d_add_test(ProcessGroupGlooTest.cpp c10d c10d_cuda_test gtest_main gtest)
-+    c10d_add_test(ProcessGroupGlooAsyncTest.cpp c10d c10d_cuda_test gtest_main gtest)
-   endif()
-   if(USE_C10D_NCCL)
--    c10d_add_test(ProcessGroupNCCLTest.cpp c10d c10d_cuda_test gtest_main)
-+    c10d_add_test(ProcessGroupNCCLTest.cpp c10d c10d_cuda_test gtest_main gtest)
-     c10d_add_test(ProcessGroupNCCLErrorsTest.cpp c10d c10d_cuda_test
--        gtest_main)
-+        gtest_main gtest)
-   endif()
- else()
-   if(USE_C10D_GLOO)
--    c10d_add_test(ProcessGroupGlooTest.cpp c10d gtest_main)
-+    c10d_add_test(ProcessGroupGlooTest.cpp c10d gtest_main gtest)
-   endif()
- endif()
-
-diff --git a/cmake/External/nnpack.cmake b/cmake/External/nnpack.cmake
-index a41343cbb5..6075bdd0a4 100644
---- a/cmake/External/nnpack.cmake
-+++ b/cmake/External/nnpack.cmake
-@@ -40,7 +40,7 @@ endif()
- # (3) Android, iOS, Linux, macOS - supported
- ##############################################################################
- 
--if(ANDROID OR IOS OR ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
-+if(FALSE)
-   message(STATUS "Brace yourself, we are building NNPACK")
-   set(CAFFE2_THIRD_PARTY_ROOT ${PROJECT_SOURCE_DIR}/third_party)
- 
-@@ -114,6 +114,5 @@ endif()
- # (4) Catch-all: not supported.
- ##############################################################################
- 
--message(WARNING "Unknown platform - I don't know how to build NNPACK. "
--                "See cmake/External/nnpack.cmake for details.")
--set(USE_NNPACK OFF)
-+set(NNPACK_FOUND TRUE)
-+set(USE_NNPACK ON)
diff --git a/gnu/packages/patches/python-pytorch-fix-codegen.patch b/gnu/packages/patches/python-pytorch-fix-codegen.patch
new file mode 100644
index 0000000000..cb246b25de
--- /dev/null
+++ b/gnu/packages/patches/python-pytorch-fix-codegen.patch
@@ -0,0 +1,167 @@
+This patch fixes some scripts for generating source files.  For
+gen_jit_decompositions.py, gen_mobile_upgraders.py and
+gen_jit_shape_functions.py, which depend on the compiled PyTorch library, the
+option to generate "dummy" source files is added for the initial build, which
+is later corrected.  codegen_external.py is patched to avoid duplicate
+functions and add the static keyword as in the existing generated file.
+
+diff --git a/tools/gen_flatbuffers.sh b/tools/gen_flatbuffers.sh
+index cc0263dbbf..ac34e84b82 100644
+--- a/tools/gen_flatbuffers.sh
++++ b/tools/gen_flatbuffers.sh
+@@ -1,13 +1,13 @@
+ #!/bin/bash
+ ROOT=$(pwd)
+-FF_LOCATION="$ROOT/third_party/flatbuffers"
+-cd "$FF_LOCATION" || exit
+-mkdir build
+-cd build || exit
+-cmake ..
+-cmake --build . --target flatc
+-mkdir -p "$ROOT/build/torch/csrc/jit/serialization"
+-./flatc --cpp --gen-mutable --scoped-enums \
++#FF_LOCATION="$ROOT/third_party/flatbuffers"
++#cd "$FF_LOCATION" || exit
++#mkdir build
++#cd build || exit
++#cmake ..
++#cmake --build . --target flatc
++#mkdir -p "$ROOT/build/torch/csrc/jit/serialization"
++flatc --cpp --gen-mutable --scoped-enums \
+      -o "$ROOT/torch/csrc/jit/serialization" \
+      -c "$ROOT/torch/csrc/jit/serialization/mobile_bytecode.fbs"
+ echo '// @generated' >> "$ROOT/torch/csrc/jit/serialization/mobile_bytecode_generated.h"
+diff --git a/torch/csrc/jit/tensorexpr/codegen_external.py b/torch/csrc/jit/tensorexpr/codegen_external.py
+index bc69b05162..0f8df81de3 100644
+--- a/torch/csrc/jit/tensorexpr/codegen_external.py
++++ b/torch/csrc/jit/tensorexpr/codegen_external.py
+@@ -20,9 +20,14 @@ def gen_external(native_functions_path, tags_path, external_path):
+     native_functions = parse_native_yaml(native_functions_path, tags_path)
+     func_decls = []
+     func_registrations = []
+-    for func in native_functions:
++    done_names = set()
++    for func in native_functions[0]:
+         schema = func.func
+         name = schema.name.name.base
++        if name in done_names:
++            continue
++        else:
++            done_names.add(name)
+         args = schema.arguments
+         # Only supports extern calls for functions with out variants
+         if not schema.is_out_fn():
+@@ -62,7 +67,7 @@ def gen_external(native_functions_path, tags_path, external_path):
+ 
+         # print(tensor_decls, name, arg_names)
+         func_decl = f"""\
+-void nnc_aten_{name}(
++static void nnc_aten_{name}(
+     int64_t bufs_num,
+     void** buf_data,
+     int64_t* buf_ranks,
+diff --git a/torchgen/decompositions/gen_jit_decompositions.py b/torchgen/decompositions/gen_jit_decompositions.py
+index 7cfbb803f9..2e69bb1868 100644
+--- a/torchgen/decompositions/gen_jit_decompositions.py
++++ b/torchgen/decompositions/gen_jit_decompositions.py
+@@ -1,8 +1,12 @@
+ #!/usr/bin/env python3
+ import os
+ from pathlib import Path
++import sys
+ 
+-from torch.jit._decompositions import decomposition_table
++if len(sys.argv) < 2 or sys.argv[1] != "dummy":
++    from torch.jit._decompositions import decomposition_table
++else:
++    decomposition_table = {}
+ 
+ # from torchgen.code_template import CodeTemplate
+ 
+@@ -85,7 +89,7 @@ def write_decomposition_util_file(path: str) -> None:
+ 
+ 
+ def main() -> None:
+-    pytorch_dir = Path(__file__).resolve().parents[3]
++    pytorch_dir = Path(__file__).resolve().parents[2]
+     upgrader_path = pytorch_dir / "torch" / "csrc" / "jit" / "runtime"
+     write_decomposition_util_file(str(upgrader_path))
+ 
+diff --git a/torchgen/operator_versions/gen_mobile_upgraders.py b/torchgen/operator_versions/gen_mobile_upgraders.py
+index dab1568580..55c58715fc 100644
+--- a/torchgen/operator_versions/gen_mobile_upgraders.py
++++ b/torchgen/operator_versions/gen_mobile_upgraders.py
+@@ -2,10 +2,12 @@
+ import os
+ from enum import Enum
+ from pathlib import Path
++import sys
+ from typing import Any, Dict, List
+ 
+-import torch
+-from torch.jit.generate_bytecode import generate_upgraders_bytecode
++if len(sys.argv) < 2 or sys.argv[1] != "dummy":
++    import torch
++    from torch.jit.generate_bytecode import generate_upgraders_bytecode
+ 
+ from torchgen.code_template import CodeTemplate
+ from torchgen.operator_versions.gen_mobile_upgraders_constant import (
+@@ -262,7 +264,10 @@ def construct_register_size(register_size_from_yaml: int) -> str:
+ def construct_version_maps(
+     upgrader_bytecode_function_to_index_map: Dict[str, Any]
+ ) -> str:
+-    version_map = torch._C._get_operator_version_map()
++    if len(sys.argv) < 2 or sys.argv[1] != "dummy":
++        version_map = torch._C._get_operator_version_map()
++    else:
++        version_map = {}
+     sorted_version_map_ = sorted(version_map.items(), key=lambda item: item[0])  # type: ignore[no-any-return]
+     sorted_version_map = dict(sorted_version_map_)
+ 
+@@ -378,7 +383,10 @@ def sort_upgrader(upgrader_list: List[Dict[str, Any]]) -> List[Dict[str, Any]]:
+ 
+ 
+ def main() -> None:
+-    upgrader_list = generate_upgraders_bytecode()
++    if len(sys.argv) < 2 or sys.argv[1] != "dummy":
++        upgrader_list = generate_upgraders_bytecode()
++    else:
++        upgrader_list = []
+     sorted_upgrader_list = sort_upgrader(upgrader_list)
+     for up in sorted_upgrader_list:
+         print("after sort upgrader : ", next(iter(up)))
+diff --git a/torchgen/shape_functions/gen_jit_shape_functions.py b/torchgen/shape_functions/gen_jit_shape_functions.py
+index c6336a6951..34e394d818 100644
+--- a/torchgen/shape_functions/gen_jit_shape_functions.py
++++ b/torchgen/shape_functions/gen_jit_shape_functions.py
+@@ -18,16 +18,20 @@ you are in the root directory of the Pytorch git repo"""
+ if not file_path.exists():
+     raise Exception(err_msg)
+ 
+-spec = importlib.util.spec_from_file_location(module_name, file_path)
+-assert spec is not None
+-module = importlib.util.module_from_spec(spec)
+-sys.modules[module_name] = module
+-assert spec.loader is not None
+-assert module is not None
+-spec.loader.exec_module(module)
+-
+-bounded_compute_graph_mapping = module.bounded_compute_graph_mapping
+-shape_compute_graph_mapping = module.shape_compute_graph_mapping
++if len(sys.argv) < 2 or sys.argv[1] != "dummy":
++    spec = importlib.util.spec_from_file_location(module_name, file_path)
++    assert spec is not None
++    module = importlib.util.module_from_spec(spec)
++    sys.modules[module_name] = module
++    assert spec.loader is not None
++    assert module is not None
++    spec.loader.exec_module(module)
++
++    bounded_compute_graph_mapping = module.bounded_compute_graph_mapping
++    shape_compute_graph_mapping = module.shape_compute_graph_mapping
++else:
++    bounded_compute_graph_mapping = {}
++    shape_compute_graph_mapping = {}
+ 
+ 
+ SHAPE_HEADER = r"""
diff --git a/gnu/packages/patches/python-pytorch-runpath.patch b/gnu/packages/patches/python-pytorch-runpath.patch
index 7f95b88a2b..2c1724cdb0 100644
--- a/gnu/packages/patches/python-pytorch-runpath.patch
+++ b/gnu/packages/patches/python-pytorch-runpath.patch
@@ -3,10 +3,10 @@ get installed, quite surprisingly, to 'lib/python3.8/site-packages/{bin,lib}'.
 Make sure RUNPATH matches that.
 
 diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt
-index 5b5622f0..30d27e57 100644
+index 74836372..c8eb69d1 100644
 --- a/caffe2/CMakeLists.txt
 +++ b/caffe2/CMakeLists.txt
-@@ -1909,7 +1909,7 @@ if(BUILD_PYTHON)
+@@ -1910,7 +1910,7 @@ if(BUILD_PYTHON)
    if(${BUILDING_WITH_TORCH_LIBS})
      # site-packages/caffe2/python/caffe2_pybind11_state
      # site-packages/torch/lib
@@ -16,7 +16,7 @@ index 5b5622f0..30d27e57 100644
  
    # Must also include `CMAKE_SHARED_LINKER_FLAGS` in linker flags for
 diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
-index ee9cf410..f190e69b 100644
+index acc95842..8f8fb7d7 100644
 --- a/cmake/Dependencies.cmake
 +++ b/cmake/Dependencies.cmake
 @@ -4,7 +4,7 @@ if(APPLE)
@@ -28,3 +28,16 @@ index ee9cf410..f190e69b 100644
  endif(APPLE)
  # Use separate rpaths during build and install phases
  set(CMAKE_SKIP_BUILD_RPATH  FALSE)
+diff --git a/functorch/CMakeLists.txt b/functorch/CMakeLists.txt
+index f2f32745..db21b656 100644
+--- a/functorch/CMakeLists.txt
++++ b/functorch/CMakeLists.txt
+@@ -21,7 +21,7 @@ target_link_libraries(${PROJECT_NAME} PRIVATE pybind::pybind11)
+ 
+ set_target_properties(${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY
+       ${CMAKE_BINARY_DIR}/functorch)
+-set_target_properties(${PROJECT_NAME} PROPERTIES INSTALL_RPATH "${_rpath_portable_origin}/../torch/lib")
++set_target_properties(${PROJECT_NAME} PROPERTIES INSTALL_RPATH "$ORIGIN/../torch/lib")
+ 
+ # Copy-pasted prefix/suffix logic for Python extensions from
+ # https://github.com/pytorch/pytorch/blob/33bb8ae350611760139457b85842b1d7edf9aa11/caffe2/CMakeLists.txt#L1975
diff --git a/gnu/packages/patches/python-pytorch-system-libraries.patch b/gnu/packages/patches/python-pytorch-system-libraries.patch
index fd849fd9e2..676b96eb71 100644
--- a/gnu/packages/patches/python-pytorch-system-libraries.patch
+++ b/gnu/packages/patches/python-pytorch-system-libraries.patch
@@ -1,60 +1,163 @@
-Use our own googletest rather than the bundled one.
-Get NNPACK to use our own PeachPy rather than the bundled one.
+Patch build files to also system libraries instead of bundled ones for the
+libraries not supported or working only by specifying USE_SYSTEM_LIBS.  This
+includes using the clog, cpuinfo, fbgemm, foxi, fp16, fxdiv, googletest,
+ideep, miniz, nnpack, oneapi-dnnl, pocketfft, pthreadpool, qnnpack,
+qnnpack-pytorch, tensorpipe, valgrind and xnnpack packages.
+For QNNPACK, two versions were bundled and are required: The upstream one and
+an internal fork (now in the package qnnpack-pytorch).
 
+diff --git a/aten/src/ATen/CMakeLists.txt b/aten/src/ATen/CMakeLists.txt
+index 2c2b9674..5ac5fa6e 100644
+--- a/aten/src/ATen/CMakeLists.txt
++++ b/aten/src/ATen/CMakeLists.txt
+@@ -371,9 +371,9 @@ if(AT_NNPACK_ENABLED)
+   list(APPEND ATen_CPU_DEPENDENCY_LIBS nnpack) # cpuinfo is added below
+ endif()
+ 
+-if(MKLDNN_FOUND)
+-  list(APPEND ATen_CPU_DEPENDENCY_LIBS ${MKLDNN_LIBRARIES})
+-endif(MKLDNN_FOUND)
++if(USE_MKLDNN)
++  list(APPEND ATen_CPU_DEPENDENCY_LIBS DNNL::dnnl)
++endif(USE_MKLDNN)
+ 
+ if(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(s390x|ppc64le)$")
+   list(APPEND ATen_CPU_DEPENDENCY_LIBS cpuinfo)
 diff --git a/caffe2/CMakeLists.txt b/caffe2/CMakeLists.txt
-index d57d7ebb..5b5622f0 100644
+index 74836372..b01fd143 100644
 --- a/caffe2/CMakeLists.txt
 +++ b/caffe2/CMakeLists.txt
-@@ -1736,7 +1736,7 @@ if(BUILD_TEST)
+@@ -111,9 +111,6 @@ if(NOT MSVC AND USE_XNNPACK)
+   if(NOT TARGET fxdiv)
+     set(FXDIV_BUILD_TESTS OFF CACHE BOOL "")
+     set(FXDIV_BUILD_BENCHMARKS OFF CACHE BOOL "")
+-    add_subdirectory(
+-      "${FXDIV_SOURCE_DIR}"
+-      "${CMAKE_BINARY_DIR}/FXdiv")
+   endif()
+ endif()
+ 
+@@ -1055,7 +1052,6 @@ elseif(USE_CUDA)
+ endif()
+ 
+ if(NOT MSVC AND USE_XNNPACK)
+-  TARGET_LINK_LIBRARIES(torch_cpu PRIVATE fxdiv)
+ endif()
+ 
+ # ==========================================================
+@@ -1396,6 +1392,7 @@ target_link_libraries(torch_cpu PUBLIC c10)
+ target_link_libraries(torch_cpu PUBLIC ${Caffe2_PUBLIC_DEPENDENCY_LIBS})
+ target_link_libraries(torch_cpu PRIVATE ${Caffe2_DEPENDENCY_LIBS})
+ target_link_libraries(torch_cpu PRIVATE ${Caffe2_DEPENDENCY_WHOLE_LINK_LIBS})
++target_link_libraries(torch_cpu PRIVATE miniz clog)
+ if(USE_MPI)
+   target_link_libraries(torch_cpu PRIVATE MPI::MPI_CXX)
+ endif()
+@@ -1653,7 +1650,7 @@ if(BUILD_STATIC_RUNTIME_BENCHMARK)
+   add_executable(static_runtime_bench "${STATIC_RUNTIME_BENCHMARK_SRCS}")
+   add_executable(static_runtime_test "${STATIC_RUNTIME_TEST_SRCS}")
+   target_link_libraries(static_runtime_bench torch_library benchmark)
+-  target_link_libraries(static_runtime_test torch_library gtest_main)
++  target_link_libraries(static_runtime_test torch_library gtest_main gtest)
+ endif()
+ 
+ if(BUILD_TENSOREXPR_BENCHMARK)
+@@ -1680,7 +1677,7 @@ if(BUILD_MOBILE_TEST)
+   foreach(test_src ${ATen_MOBILE_TEST_SRCS})
+     get_filename_component(test_name ${test_src} NAME_WE)
+     add_executable(${test_name} "${test_src}")
+-    target_link_libraries(${test_name} torch_library gtest_main)
++    target_link_libraries(${test_name} torch_library gtest_main gtest)
+     target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
+     target_include_directories(${test_name} PRIVATE $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>)
+     target_include_directories(${test_name} PRIVATE ${ATen_CPU_INCLUDE})
+@@ -1701,7 +1698,7 @@ if(BUILD_TEST)
          if(NOT MSVC)
-           add_executable(${test_name}_${CPU_CAPABILITY} "${test_src}" ../aten/src/ATen/native/quantized/affine_quantizer_base.cpp)
+           add_executable(${test_name}_${CPU_CAPABILITY} "${test_src}" ../aten/src/ATen/native/quantized/AffineQuantizerBase.cpp)
            # TODO: Get rid of c10 dependency (which is only needed for the implementation of AT_ERROR)
 -          target_link_libraries(${test_name}_${CPU_CAPABILITY} c10 sleef gtest_main)
 +          target_link_libraries(${test_name}_${CPU_CAPABILITY} c10 sleef gtest_main gtest)
            if(USE_FBGEMM)
              target_link_libraries(${test_name}_${CPU_CAPABILITY} fbgemm)
            endif()
-@@ -1759,7 +1759,7 @@ if(BUILD_TEST)
+@@ -1715,7 +1712,7 @@ if(BUILD_TEST)
+           endif()
+         else()
+           add_executable(${test_name}_${CPU_CAPABILITY} "${test_src}")
+-          target_link_libraries(${test_name}_${CPU_CAPABILITY} torch_library gtest_main)
++          target_link_libraries(${test_name}_${CPU_CAPABILITY} torch_library gtest_main gtest)
+         endif()
+         target_include_directories(${test_name}_${CPU_CAPABILITY} PRIVATE $<INSTALL_INTERFACE:include>)
+         target_include_directories(${test_name}_${CPU_CAPABILITY} PRIVATE $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>)
+@@ -1732,7 +1729,7 @@ if(BUILD_TEST)
    foreach(test_src ${Caffe2_CPU_TEST_SRCS})
      get_filename_component(test_name ${test_src} NAME_WE)
      add_executable(${test_name} "${test_src}")
 -    target_link_libraries(${test_name} torch_library gtest_main)
 +    target_link_libraries(${test_name} torch_library gtest_main gtest)
-     if(USE_OPENMP)
-       # -fopenmp is a compile time flag and as result not guaranteed
-       # to link executable against OpenMP runtime library
-@@ -1785,7 +1785,7 @@ if(BUILD_TEST)
-     foreach(test_src ${Caffe2_GPU_TEST_SRCS})
-       get_filename_component(test_name ${test_src} NAME_WE)
-       add_executable(${test_name} "${test_src}")
--      target_link_libraries(${test_name} torch_library gtest_main)
-+      target_link_libraries(${test_name} torch_library gtest_main gtest)
-       target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
-       target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE})
-       add_test(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}>)
-@@ -1803,7 +1803,7 @@ if(BUILD_TEST)
-     foreach(test_src ${Caffe2_VULKAN_TEST_SRCS})
-       get_filename_component(test_name ${test_src} NAME_WE)
-       add_executable(${test_name} "${test_src}")
--      target_link_libraries(${test_name} torch_library gtest_main)
-+      target_link_libraries(${test_name} torch_library gtest_main gtest)
-       target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
-       target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE})
-       add_test(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}>)
-@@ -1821,7 +1821,7 @@ if(BUILD_TEST)
-     foreach(test_src ${Caffe2_HIP_TEST_SRCS})
-       get_filename_component(test_name ${test_src} NAME_WE)
-       add_executable(${test_name} "${test_src}")
--      target_link_libraries(${test_name} torch_library gtest_main)
-+      target_link_libraries(${test_name} torch_library gtest_main gtest)
-       target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
-       target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE} ${Caffe2_HIP_INCLUDE})
-       target_compile_options(${test_name} PRIVATE ${HIP_CXX_FLAGS})
+     target_include_directories(${test_name} PRIVATE $<INSTALL_INTERFACE:include>)
+     target_include_directories(${test_name} PRIVATE $<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include>)
+     target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE})
+diff --git a/caffe2/serialize/CMakeLists.txt b/caffe2/serialize/CMakeLists.txt
+index 1552b59d..67e1a9a1 100644
+--- a/caffe2/serialize/CMakeLists.txt
++++ b/caffe2/serialize/CMakeLists.txt
+@@ -2,7 +2,6 @@ file(GLOB tmp *_test.cc)
+ 
+ set(Caffe2_CPU_TEST_SRCS ${Caffe2_CPU_TEST_SRCS} ${tmp})
+ list(APPEND Caffe2_CPU_SRCS
+-  ${PROJECT_SOURCE_DIR}/third_party/miniz-2.1.0/miniz.c
+   ${CMAKE_CURRENT_SOURCE_DIR}/inline_container.cc
+   ${CMAKE_CURRENT_SOURCE_DIR}/istream_adapter.cc
+   ${CMAKE_CURRENT_SOURCE_DIR}/file_adapter.cc
 diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
-index 557ab649..ee9cf410 100644
+index acc95842..97275bfe 100644
 --- a/cmake/Dependencies.cmake
 +++ b/cmake/Dependencies.cmake
-@@ -732,11 +732,6 @@ if(BUILD_TEST OR BUILD_MOBILE_BENCHMARK OR BUILD_MOBILE_TEST)
+@@ -283,7 +283,7 @@ endif()
+ # --- [ PocketFFT
+ set(AT_POCKETFFT_ENABLED 0)
+ if(NOT AT_MKL_ENABLED)
+-  set(POCKETFFT_INCLUDE_DIR "${Torch_SOURCE_DIR}/third_party/pocketfft/")
++  set(POCKETFFT_INCLUDE_DIR "#POCKETFFT_INCLUDE_DIR")
+   if(NOT EXISTS "${POCKETFFT_INCLUDE_DIR}")
+     message(FATAL_ERROR "pocketfft directory not found, expected ${POCKETFFT_INCLUDE_DIR}")
+   elif(NOT EXISTS "${POCKETFFT_INCLUDE_DIR}/pocketfft_hdronly.h")
+@@ -489,19 +489,6 @@ if(USE_QNNPACK)
+     set(QNNPACK_BUILD_TESTS OFF CACHE BOOL "")
+     set(QNNPACK_BUILD_BENCHMARKS OFF CACHE BOOL "")
+     set(QNNPACK_LIBRARY_TYPE "static" CACHE STRING "")
+-    add_subdirectory(
+-      "${QNNPACK_SOURCE_DIR}"
+-      "${CONFU_DEPENDENCIES_BINARY_DIR}/QNNPACK")
+-
+-    # TODO: See https://github.com/pytorch/pytorch/issues/56285
+-    if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+-      target_compile_options(qnnpack PRIVATE -Wno-deprecated-declarations)
+-    endif()
+-
+-    # We build static versions of QNNPACK and pthreadpool but link
+-    # them into a shared library for Caffe2, so they need PIC.
+-    set_property(TARGET qnnpack PROPERTY POSITION_INDEPENDENT_CODE ON)
+-    set_property(TARGET cpuinfo PROPERTY POSITION_INDEPENDENT_CODE ON)
+ 
+     if(QNNPACK_CUSTOM_THREADPOOL)
+       target_compile_definitions(
+@@ -550,13 +537,6 @@ if(USE_PYTORCH_QNNPACK)
+       set(PYTORCH_QNNPACK_BUILD_TESTS OFF CACHE BOOL "")
+       set(PYTORCH_QNNPACK_BUILD_BENCHMARKS OFF CACHE BOOL "")
+       set(PYTORCH_QNNPACK_LIBRARY_TYPE "static" CACHE STRING "")
+-      add_subdirectory(
+-        "${PYTORCH_QNNPACK_SOURCE_DIR}"
+-        "${CONFU_DEPENDENCIES_BINARY_DIR}/pytorch_qnnpack")
+-      # We build static versions of QNNPACK and pthreadpool but link
+-      # them into a shared library for Caffe2, so they need PIC.
+-      set_property(TARGET pytorch_qnnpack PROPERTY POSITION_INDEPENDENT_CODE ON)
+-      set_property(TARGET cpuinfo PROPERTY POSITION_INDEPENDENT_CODE ON)
+ 
+       if(PYTORCH_QNNPACK_CUSTOM_THREADPOOL)
+         target_compile_definitions(
+@@ -728,11 +708,6 @@ if(BUILD_TEST OR BUILD_MOBILE_BENCHMARK OR BUILD_MOBILE_TEST)
    # this shouldn't be necessary anymore.
    get_property(INC_DIR_temp DIRECTORY PROPERTY INCLUDE_DIRECTORIES)
    set_property(DIRECTORY PROPERTY INCLUDE_DIRECTORIES "")
@@ -66,7 +169,49 @@ index 557ab649..ee9cf410 100644
  
    # We will not need to test benchmark lib itself.
    set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "Disable benchmark testing as we don't need it.")
-@@ -1543,7 +1538,7 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX)
+@@ -810,16 +785,6 @@ if(USE_FBGEMM)
+     if(USE_ASAN)
+       set(USE_SANITIZER "address,undefined" CACHE STRING "-fsanitize options for FBGEMM")
+     endif()
+-    add_subdirectory("${FBGEMM_SOURCE_DIR}")
+-    set_property(TARGET fbgemm_generic PROPERTY POSITION_INDEPENDENT_CODE ON)
+-    set_property(TARGET fbgemm_avx2 PROPERTY POSITION_INDEPENDENT_CODE ON)
+-    set_property(TARGET fbgemm_avx512 PROPERTY POSITION_INDEPENDENT_CODE ON)
+-    set_property(TARGET fbgemm PROPERTY POSITION_INDEPENDENT_CODE ON)
+-    if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 13.0.0)
+-      # See https://github.com/pytorch/pytorch/issues/74352
+-      target_compile_options_if_supported(asmjit -Wno-deprecated-copy)
+-      target_compile_options_if_supported(asmjit -Wno-unused-but-set-variable)
+-    endif()
+   endif()
+ 
+   if(USE_FBGEMM)
+@@ -979,7 +944,7 @@ if(NOT TARGET fp16 AND NOT USE_SYSTEM_FP16)
+     "${FP16_SOURCE_DIR}"
+     "${CONFU_DEPENDENCIES_BINARY_DIR}/FP16")
+ elseif(NOT TARGET fp16 AND USE_SYSTEM_FP16)
+-  add_library(fp16 STATIC "/usr/include/fp16.h")
++  add_library(fp16 STATIC "#FP16_INCLUDE_DIR")
+   set_target_properties(fp16 PROPERTIES LINKER_LANGUAGE C)
+ endif()
+ list(APPEND Caffe2_DEPENDENCY_LIBS fp16)
+@@ -1362,7 +1327,6 @@ if(USE_DISTRIBUTED AND USE_TENSORPIPE)
+ 
+     # Tensorpipe uses cuda_add_library
+     torch_update_find_cuda_flags()
+-    add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/tensorpipe)
+ 
+     list(APPEND Caffe2_DEPENDENCY_LIBS tensorpipe)
+     if(USE_CUDA)
+@@ -1529,7 +1493,6 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX)
+       set_target_properties(onnx_proto PROPERTIES CXX_STANDARD 17)
+     endif()
+   endif()
+-  add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../third_party/foxi EXCLUDE_FROM_ALL)
+ 
+   add_definitions(-DONNX_NAMESPACE=${ONNX_NAMESPACE})
+   if(NOT USE_SYSTEM_ONNX)
+@@ -1560,7 +1523,7 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX)
      endif()
      set_property(TARGET onnx_proto PROPERTY IMPORTED_LOCATION ${ONNX_PROTO_LIBRARY})
      message("-- Found onnx: ${ONNX_LIBRARY} ${ONNX_PROTO_LIBRARY}")
@@ -75,8 +220,36 @@ index 557ab649..ee9cf410 100644
    endif()
    include_directories(${FOXI_INCLUDE_DIRS})
    list(APPEND Caffe2_DEPENDENCY_LIBS foxi_loader)
+@@ -1739,9 +1702,8 @@ if(NOT INTERN_BUILD_MOBILE)
+   endif()
+   if(USE_MKLDNN)
+     include(${CMAKE_CURRENT_LIST_DIR}/public/mkldnn.cmake)
+-    if(MKLDNN_FOUND)
++    if(DNNL_FOUND)
+       set(AT_MKLDNN_ENABLED 1)
+-      include_directories(AFTER SYSTEM ${MKLDNN_INCLUDE_DIR})
+       if(BUILD_CAFFE2_OPS)
+         list(APPEND Caffe2_DEPENDENCY_LIBS caffe2::mkldnn)
+       endif(BUILD_CAFFE2_OPS)
+@@ -1796,7 +1758,7 @@ endif()
+ #
+ set(TEMP_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})
+ set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libs" FORCE)
+-add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/fmt)
++find_package(fmt)
+ 
+ # Disable compiler feature checks for `fmt`.
+ #
+@@ -1805,7 +1767,6 @@ add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/fmt)
+ # CMAKE_CXX_FLAGS in ways that break feature checks. Since we already know
+ # `fmt` is compatible with a superset of the compilers that PyTorch is, it
+ # shouldn't be too bad to just disable the checks.
+-set_target_properties(fmt-header-only PROPERTIES INTERFACE_COMPILE_FEATURES "")
+ 
+ list(APPEND Caffe2_DEPENDENCY_LIBS fmt::fmt-header-only)
+ set(BUILD_SHARED_LIBS ${TEMP_BUILD_SHARED_LIBS} CACHE BOOL "Build shared libs" FORCE)
 diff --git a/cmake/External/nnpack.cmake b/cmake/External/nnpack.cmake
-index a41343cb..6075bdd0 100644
+index 9d5f0643..c3624e58 100644
 --- a/cmake/External/nnpack.cmake
 +++ b/cmake/External/nnpack.cmake
 @@ -40,7 +40,7 @@ endif()
@@ -88,7 +261,7 @@ index a41343cb..6075bdd0 100644
    message(STATUS "Brace yourself, we are building NNPACK")
    set(CAFFE2_THIRD_PARTY_ROOT ${PROJECT_SOURCE_DIR}/third_party)
  
-@@ -114,6 +114,5 @@ endif()
+@@ -112,6 +112,5 @@ endif()
  # (4) Catch-all: not supported.
  ##############################################################################
  
@@ -97,8 +270,45 @@ index a41343cb..6075bdd0 100644
 -set(USE_NNPACK OFF)
 +set(NNPACK_FOUND TRUE)
 +set(USE_NNPACK ON)
+diff --git a/cmake/public/mkldnn.cmake b/cmake/public/mkldnn.cmake
+index 87935625..9f8fa3df 100644
+--- a/cmake/public/mkldnn.cmake
++++ b/cmake/public/mkldnn.cmake
+@@ -4,7 +4,7 @@ if(CPU_AARCH64)
+   include(${CMAKE_CURRENT_LIST_DIR}/ComputeLibrary.cmake)
+ endif()
+ 
+-find_package(MKLDNN QUIET)
++find_package(DNNL REQUIRED)
+ 
+ if(NOT TARGET caffe2::mkldnn)
+   add_library(caffe2::mkldnn INTERFACE IMPORTED)
+@@ -15,4 +15,4 @@ set_property(
+   ${MKLDNN_INCLUDE_DIR})
+ set_property(
+   TARGET caffe2::mkldnn PROPERTY INTERFACE_LINK_LIBRARIES
+-  ${MKLDNN_LIBRARIES})
++  DNNL::dnnl)
+diff --git a/setup.py b/setup.py
+index 81f3c6cb..3251cab5 100644
+--- a/setup.py
++++ b/setup.py
+@@ -482,13 +482,9 @@ def build_deps():
+     # Windows has very poor support for them.
+     sym_files = [
+         "tools/shared/_utils_internal.py",
+-        "torch/utils/benchmark/utils/valgrind_wrapper/callgrind.h",
+-        "torch/utils/benchmark/utils/valgrind_wrapper/valgrind.h",
+     ]
+     orig_files = [
+         "torch/_utils_internal.py",
+-        "third_party/valgrind-headers/callgrind.h",
+-        "third_party/valgrind-headers/valgrind.h",
+     ]
+     for sym_file, orig_file in zip(sym_files, orig_files):
+         same = False
 diff --git a/test/cpp/c10d/CMakeLists.txt b/test/cpp/c10d/CMakeLists.txt
-index bf91460c..ef56948f 100644
+index 5c897483..ef84c571 100644
 --- a/test/cpp/c10d/CMakeLists.txt
 +++ b/test/cpp/c10d/CMakeLists.txt
 @@ -16,14 +16,14 @@ function(c10d_add_test test_src)
@@ -133,7 +343,29 @@ index bf91460c..ef56948f 100644
    endif()
    if(USE_NCCL AND USE_C10D_NCCL)
      # NCCL is a private dependency of libtorch, but the tests include some
-@@ -56,7 +56,7 @@ if(USE_CUDA)
+@@ -44,10 +44,10 @@ if(USE_CUDA)
+     # a private dependency of the tests as well.
+     c10d_add_test(
+       ProcessGroupNCCLTest.cpp
+-      torch_cpu c10d_cuda_test gtest_main __caffe2_nccl)
++      torch_cpu c10d_cuda_test gtest_main gtest __caffe2_nccl)
+     c10d_add_test(
+       ProcessGroupNCCLErrorsTest.cpp
+-      torch_cpu c10d_cuda_test gtest_main __caffe2_nccl)
++      torch_cpu c10d_cuda_test gtest_main gtest __caffe2_nccl)
+     if(INSTALL_TEST)
+       install(TARGETS ProcessGroupNCCLTest DESTINATION bin)
+       install(TARGETS ProcessGroupNCCLErrorsTest DESTINATION bin)
+@@ -61,7 +61,7 @@ if(USE_CUDA)
+     # a private dependency of the tests as well.
+     c10d_add_test(
+       ProcessGroupUCCTest.cpp
+-      torch_cpu c10d_cuda_test gtest_main __caffe2_ucc)
++      torch_cpu c10d_cuda_test gtest_main gtest __caffe2_ucc)
+     if(INSTALL_TEST)
+       install(TARGETS ProcessGroupUCCTest DESTINATION bin)
+       install(TARGETS c10d_cuda_test DESTINATION lib)
+@@ -69,7 +69,7 @@ if(USE_CUDA)
    endif()
  else()
    if(USE_GLOO AND USE_C10D_GLOO)
@@ -143,10 +375,10 @@ index bf91460c..ef56948f 100644
  endif()
  
 diff --git a/test/cpp/tensorexpr/CMakeLists.txt b/test/cpp/tensorexpr/CMakeLists.txt
-index 8fc5a0a1..643202f6 100644
+index 012471d0..d39b625e 100644
 --- a/test/cpp/tensorexpr/CMakeLists.txt
 +++ b/test/cpp/tensorexpr/CMakeLists.txt
-@@ -53,7 +53,7 @@ target_include_directories(tutorial_tensorexpr PRIVATE ${ATen_CPU_INCLUDE})
+@@ -54,7 +54,7 @@ target_include_directories(tutorial_tensorexpr PRIVATE ${ATen_CPU_INCLUDE})
  # pthreadpool header. For some build environment we need add the dependency
  # explicitly.
  if(USE_PTHREADPOOL)
@@ -154,4 +386,4 @@ index 8fc5a0a1..643202f6 100644
 +  target_link_libraries(test_tensorexpr PRIVATE pthreadpool)
  endif()
  if(USE_CUDA)
-   target_link_libraries(test_tensorexpr PRIVATE
+   target_compile_definitions(test_tensorexpr PRIVATE USE_CUDA)
diff --git a/gnu/packages/patches/python-pytorch-without-kineto.patch b/gnu/packages/patches/python-pytorch-without-kineto.patch
new file mode 100644
index 0000000000..f956316866
--- /dev/null
+++ b/gnu/packages/patches/python-pytorch-without-kineto.patch
@@ -0,0 +1,60 @@
+Even when building without Kineto, the <ActivityType.h> header is still
+imported and the ActivityType type is used. This patch was copied from
+https://github.com/pytorch/pytorch/pull/111048.
+
+diff --git a/torch/csrc/profiler/kineto_shim.h b/torch/csrc/profiler/kineto_shim.h
+index e92cbf00..68985ab7 100644
+--- a/torch/csrc/profiler/kineto_shim.h
++++ b/torch/csrc/profiler/kineto_shim.h
+@@ -12,7 +12,51 @@
+ #undef USE_KINETO
+ #endif
+ 
++#ifdef USE_KINETO
+ #include <ActivityType.h>
++#else
++namespace libkineto {
++// copied from header
++/*
++ * Copyright (c) Meta Platforms, Inc. and affiliates.
++ * All rights reserved.
++ *
++ * This source code is licensed under the BSD-style license found in the
++ * LICENSE file in the root directory of this source tree.
++ */
++
++// Note : All activity types are not enabled by default. Please add them
++// at correct position in the enum
++enum class ActivityType {
++    // Activity types enabled by default
++    CPU_OP = 0, // cpu side ops
++    USER_ANNOTATION,
++    GPU_USER_ANNOTATION,
++    GPU_MEMCPY,
++    GPU_MEMSET,
++    CONCURRENT_KERNEL, // on-device kernels
++    EXTERNAL_CORRELATION,
++    CUDA_RUNTIME, // host side cuda runtime events
++    CUDA_DRIVER, // host side cuda driver events
++    CPU_INSTANT_EVENT, // host side point-like events
++    PYTHON_FUNCTION,
++    OVERHEAD, // CUPTI induced overhead events sampled from its overhead API.
++
++    // Optional Activity types
++    CUDA_SYNC, // synchronization events between runtime and kernels
++    GLOW_RUNTIME, // host side glow runtime events
++    MTIA_RUNTIME, // host side MTIA runtime events
++    CUDA_PROFILER_RANGE, // CUPTI Profiler range for performance metrics
++    MTIA_CCP_EVENTS, // MTIA ondevice CCP events
++    HPU_OP, // HPU host side runtime event
++    XPU_RUNTIME, // host side xpu runtime events
++
++    ENUM_COUNT, // This is to add buffer and not used for any profiling logic. Add your new type before it.
++    OPTIONAL_ACTIVITY_TYPE_START = CUDA_SYNC,
++};
++}
++
++#endif
+ 
+ #include <torch/csrc/Export.h>
+ #include <torch/csrc/profiler/api.h>
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:42:38 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:42:37 2024
Received: from localhost ([127.0.0.1]:51584 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx9w-0008Hm-0f
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:37 -0500
Received: from mout02.posteo.de ([185.67.36.66]:51563)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx9C-0008AS-2l
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:53 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id A6140240105
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:41:18 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754078; bh=QC+1q4BCsMjrH/s3I+gsZRhuwIQCRyiV141HJjctBFA=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=XcdaaXkZSibf5UMDUSNtQMuzeemBOoA01kAwkA/hgDsyhfIbr8R8eXklkszwsVqmj
 U+xS2elE097ahtPdAtbSOdOWmB165zigr02YZuHcuNlc5ao0/EaJcV3MEBUayLnchJ
 zrqGzERXZSgRBaOy+eMq5F+WcSRbgXOOflAoqzxRLM8CuYSjLNOJrjqAHgk/cSTsvH
 /SWMsm36TQ0PkJW9soStXW1jEim7X0QuezvuqwFrkfS1k5V9QVF/J88Zsm8ymZhY0Y
 XnQBfdWJjhO1fbdrXHTDTU2TMvL+tiDPe3cjiiyE+j6gzrVWu014/k7IgcFAsvSqmt
 aav+QdzHY2p1A==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjV626jpz6txQ;
 Wed,  6 Mar 2024 20:41:18 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 30/31] gnu: Add qnnpack-pytorch-for-r-torch.
Date: Wed,  6 Mar 2024 19:40:36 +0000
Message-ID: <20240306194037.17992-30-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/machine-learning.scm (%python-pytorch-for-r-torch-version): New
variable.
(%python-pytorch-for-r-torch-src): New variable.
(qnnpack-pytorch-for-r-torch): New variable.
---
 gnu/packages/machine-learning.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 0c46a1ba1f..4413ecad13 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -4679,6 +4679,34 @@ (define-public python-pytorch
 Note: currently this package does not provide GPU support.")
     (license license:bsd-3)))
 
+(define %python-pytorch-for-r-torch-version "2.0.1")
+
+(define %python-pytorch-for-r-torch-src
+  (origin
+    (inherit %python-pytorch-src)
+    (uri (git-reference
+          (url "https://github.com/pytorch/pytorch")
+          (commit (string-append "v" %python-pytorch-for-r-torch-version))))
+    (file-name (git-file-name "python-pytorch"
+                              %python-pytorch-for-r-torch-version))
+    (sha256
+     (base32
+      "0iirrn687i7sfv0p0i7dn89x3rf13a7l8y1y5h190h51yjxpxqxa"))))
+
+(define-public qnnpack-pytorch-for-r-torch
+  (package
+    (inherit qnnpack-pytorch)
+    (version (string-append "pytorch-" %python-pytorch-for-r-torch-version))
+    (source
+     (origin
+       (inherit %python-pytorch-for-r-torch-src)
+       (patches '())
+       (modules '((guix build utils)
+                  (srfi srfi-26)
+                  (ice-9 ftw)))
+       (snippet
+        (origin-snippet (package-source qnnpack-pytorch)))))))
+
 (define-public python-pytorch-for-r-torch
   (package
     (inherit python-pytorch)
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:42:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:42:36 2024
Received: from localhost ([127.0.0.1]:51583 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx9v-0008He-T7
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:35 -0500
Received: from mout01.posteo.de ([185.67.36.65]:56847)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx9B-0008By-Fh
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:49 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id C0146240027
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:41:12 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754072; bh=QcluXmeftEUDcCGC01RS2n8g1A4ScA7h0zRre+fBe9M=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=SuOEX/adUv70iZi7px8sb5keJNENHkcInm0AI2a+M8bmSMufvof+fMtVZN+O8MBj3
 09aBJ+A9XFHq6k73MbT5kerw2mNx6yKjbETzraOJQVjJHkJCKRsHdB8SQ8mva1sEsk
 PFvwq0kdwi8lKC4+O2nKm7vBMUlP8E4Wqu41mZmOACFPUUlryRxNm53w0AYMuhvKcl
 +EtHKcEXwQ287xV9uKlQ5uANk9bNSol6Yq5BRxCHTUdTjiz3+OhNF0RHJ8rtWpW/+t
 ccE4xtnozG+Io8MmTYF216jqiDRcy0pd2A6noDumkZ/XF+0AU4gRBu0LDbiyMe/sJ3
 Mi233QVWKwyTw==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjV018X9z6tm8;
 Wed,  6 Mar 2024 20:41:12 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 24/31] gnu: Remove xnnpack-for-torch2.
Date: Wed,  6 Mar 2024 19:40:30 +0000
Message-ID: <20240306194037.17992-24-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

* gnu/packages/machine-learning.scm (xnnpack-for-torch2): Delete variable.
* gnu/packages/patches/xnnpack-for-torch2-system-libraries.patch: Remove file.
* gnu/local.mk (dist_patch_DATA): Remove it.
---
 gnu/local.mk                                  |    1 -
 gnu/packages/machine-learning.scm             |   28 -
 .../xnnpack-for-torch2-system-libraries.patch | 2660 -----------------
 3 files changed, 2689 deletions(-)
 delete mode 100644 gnu/packages/patches/xnnpack-for-torch2-system-libraries.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 7b87bf93e5..bba56e7ebe 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2200,7 +2200,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/xmonad-dynamic-linking.patch		\
   %D%/packages/patches/xnnpack-remove-broken-tests.patch	\
   %D%/packages/patches/xnnpack-system-libraries.patch		\
-  %D%/packages/patches/xnnpack-for-torch2-system-libraries.patch	\
   %D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch		\
   %D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch	\
   %D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch	\
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 35d96ac012..0cab068fbd 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -4190,34 +4190,6 @@ (define-public xnnpack
 TensorFlow.js, PyTorch, and MediaPipe.")
       (license license:bsd-3))))
 
-(define-public xnnpack-for-torch2
-  ;; There's currently no tag on this repo.
-  (let ((version "0.0")
-        (commit "51a987591a6fc9f0fc0707077f53d763ac132cbf")
-        (revision "3"))
-    (package
-      (inherit xnnpack)
-      (name "xnnpack")
-      (version (git-version version revision commit))
-      (home-page "https://github.com/google/XNNPACK") ;fork of QNNPACK
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference (url home-page) (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "1rzby82xq8d0rl1d148yz88jh9cpsw5c8b2yw7yg39mi7qmr55rm"))
-                (patches (search-patches "xnnpack-for-torch2-system-libraries.patch"))))
-      (arguments
-       (list
-        #:tests? #false
-        #:configure-flags '(list "-DXNNPACK_USE_SYSTEM_LIBS=YES"
-                                 "-DBUILD_SHARED_LIBS=ON"
-                                 "-DCMAKE_POSITION_INDEPENDENT_CODE=ON"
-                                 "-DXNNPACK_LIBRARY_TYPE=shared"
-                                 "-DXNNPACK_BUILD_TESTS=FALSE" ;FIXME: see below
-                                 "-DXNNPACK_BUILD_BENCHMARKS=FALSE"))))))
-
 (define-public fbgemm
   (package
     (name "fbgemm")
diff --git a/gnu/packages/patches/xnnpack-for-torch2-system-libraries.patch b/gnu/packages/patches/xnnpack-for-torch2-system-libraries.patch
deleted file mode 100644
index a711aa0d6c..0000000000
--- a/gnu/packages/patches/xnnpack-for-torch2-system-libraries.patch
+++ /dev/null
@@ -1,2660 +0,0 @@
-This patch allows the build process to use the provided dependencies instead
-of adding their source as CMake sub-directories (in which case "make install"
-would install googletest's and googlebenchmark's libraries and headers).
-
-diff a/CMakeLists.txt b/CMakeLists.txt
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt	2023-12-27 13:29:04.608138355 +0100
-@@ -850,25 +850,8 @@
-     SET_PROPERTY(TARGET pthreadpool PROPERTY IMPORTED_IMPLIB "${PTHREADPOOL_LIBRARY}")
-   ENDIF()
- ENDIF()
--TARGET_LINK_LIBRARIES(microkernels-all PRIVATE pthreadpool)
--TARGET_LINK_LIBRARIES(microkernels-prod PRIVATE pthreadpool)
--TARGET_LINK_LIBRARIES(hardware-config PRIVATE pthreadpool)
--TARGET_LINK_LIBRARIES(indirection PRIVATE pthreadpool)
--TARGET_LINK_LIBRARIES(jit PRIVATE pthreadpool)
--TARGET_LINK_LIBRARIES(logging PRIVATE pthreadpool)
--TARGET_LINK_LIBRARIES(microparams-init PRIVATE pthreadpool)
--TARGET_LINK_LIBRARIES(normalization PRIVATE pthreadpool)
--TARGET_LINK_LIBRARIES(packing PRIVATE pthreadpool)
- IF(XNNPACK_BUILD_LIBRARY)
-   TARGET_LINK_LIBRARIES(XNNPACK PUBLIC pthreadpool)
--  TARGET_LINK_LIBRARIES(allocator PRIVATE pthreadpool)
--  TARGET_LINK_LIBRARIES(cache PRIVATE memory pthreadpool)
--  TARGET_LINK_LIBRARIES(subgraph PRIVATE pthreadpool)
--  TARGET_LINK_LIBRARIES(operators PRIVATE pthreadpool)
--  TARGET_LINK_LIBRARIES(operator-run PRIVATE pthreadpool)
--  TARGET_LINK_LIBRARIES(operator-utils PRIVATE pthreadpool)
--  TARGET_LINK_LIBRARIES(mutex PRIVATE pthreadpool)
--  TARGET_LINK_LIBRARIES(memory PRIVATE pthreadpool)
-   TARGET_LINK_LIBRARIES(post-operation PUBLIC pthreadpool allocator)
- ENDIF()
- 
-@@ -889,12 +872,6 @@
-     SET_PROPERTY(TARGET fxdiv PROPERTY LINKER_LANGUAGE C)
-   ENDIF()
- ENDIF()
--TARGET_LINK_LIBRARIES(microkernels-all PRIVATE fxdiv)
--TARGET_LINK_LIBRARIES(microkernels-prod PRIVATE fxdiv)
--TARGET_LINK_LIBRARIES(indirection PRIVATE fxdiv)
--IF(XNNPACK_BUILD_LIBRARY)
--  TARGET_LINK_LIBRARIES(XNNPACK PRIVATE fxdiv)
--ENDIF()
- 
- # ---[ Configure FP16
- IF(NOT TARGET fp16)
-@@ -913,17 +890,7 @@
-     SET_PROPERTY(TARGET fp16 PROPERTY LINKER_LANGUAGE C)
-   ENDIF()
- ENDIF()
--TARGET_LINK_LIBRARIES(microkernels-all PRIVATE fp16)
--TARGET_LINK_LIBRARIES(microkernels-prod PRIVATE fp16)
--TARGET_LINK_LIBRARIES(microparams-init PRIVATE fp16)
--TARGET_LINK_LIBRARIES(packing PRIVATE fp16)
--TARGET_LINK_LIBRARIES(indirection PRIVATE fp16)
- IF(XNNPACK_BUILD_LIBRARY)
--  TARGET_LINK_LIBRARIES(subgraph PRIVATE fp16)
--  TARGET_LINK_LIBRARIES(operators PRIVATE fp16)
--  TARGET_LINK_LIBRARIES(operator-run PRIVATE fp16)
--
--  TARGET_LINK_LIBRARIES(XNNPACK PRIVATE fp16)
-   INSTALL(TARGETS XNNPACK
-       LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-       ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-@@ -943,7 +910,7 @@
-   # Helper libraries
-   ADD_LIBRARY(gemm-microkernel-tester STATIC test/gemm-microkernel-tester.cc)
-   TARGET_INCLUDE_DIRECTORIES(gemm-microkernel-tester PRIVATE . include src test)
--  TARGET_LINK_LIBRARIES(gemm-microkernel-tester PRIVATE fp16 pthreadpool gtest)
-+  TARGET_LINK_LIBRARIES(gemm-microkernel-tester PRIVATE gtest)
-   TARGET_LINK_LIBRARIES(gemm-microkernel-tester PRIVATE jit packing)
-   IF(XNNPACK_BUILD_LIBRARY)
-     TARGET_LINK_LIBRARIES(gemm-microkernel-tester PRIVATE XNNPACK post-operation)
-@@ -960,22 +927,22 @@
-     # ---[ Build operator-level unit tests
-     ADD_EXECUTABLE(abs-nc-test test/abs-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(abs-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(abs-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(abs-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME abs-nc-test COMMAND abs-nc-test)
- 
-     ADD_EXECUTABLE(abs-nc-eager-test test/abs-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(abs-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(abs-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(abs-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME abs-nc-eager-test COMMAND abs-nc-eager-test)
- 
-     ADD_EXECUTABLE(add-nd-test test/add-nd.cc)
-     TARGET_INCLUDE_DIRECTORIES(add-nd-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(add-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(add-nd-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME add-nd-test COMMAND add-nd-test)
- 
-     ADD_EXECUTABLE(add-nd-eager-test test/add-nd-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(add-nd-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(add-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(add-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME add-nd-eager-test COMMAND add-nd-eager-test)
- 
-     ADD_EXECUTABLE(argmax-pooling-nhwc-test test/argmax-pooling-nhwc.cc)
-@@ -985,27 +952,27 @@
- 
-     ADD_EXECUTABLE(average-pooling-nhwc-test test/average-pooling-nhwc.cc)
-     TARGET_INCLUDE_DIRECTORIES(average-pooling-nhwc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(average-pooling-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(average-pooling-nhwc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME average-pooling-nhwc-test COMMAND average-pooling-nhwc-test)
- 
-     ADD_EXECUTABLE(bankers-rounding-nc-test test/bankers-rounding-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(bankers-rounding-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(bankers-rounding-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(bankers-rounding-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME bankers-rounding-nc-test COMMAND bankers-rounding-nc-test)
- 
-     ADD_EXECUTABLE(bankers-rounding-nc-eager-test test/bankers-rounding-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(bankers-rounding-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(bankers-rounding-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(bankers-rounding-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME bankers-rounding-nc-eager-test COMMAND bankers-rounding-nc-eager-test)
- 
-     ADD_EXECUTABLE(ceiling-nc-test test/ceiling-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(ceiling-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(ceiling-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(ceiling-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME ceiling-nc-test COMMAND ceiling-nc-test)
- 
-     ADD_EXECUTABLE(ceiling-nc-eager-test test/ceiling-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(ceiling-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(ceiling-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(ceiling-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME ceiling-nc-eager-test COMMAND ceiling-nc-eager-test)
- 
-     ADD_EXECUTABLE(channel-shuffle-nc-test test/channel-shuffle-nc.cc)
-@@ -1015,12 +982,12 @@
- 
-     ADD_EXECUTABLE(clamp-nc-test test/clamp-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(clamp-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(clamp-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(clamp-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME clamp-nc-test COMMAND clamp-nc-test)
- 
-     ADD_EXECUTABLE(clamp-nc-eager-test test/clamp-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(clamp-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(clamp-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(clamp-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME clamp-nc-eager-test COMMAND clamp-nc-eager-test)
- 
-     ADD_EXECUTABLE(constant-pad-nd-test test/constant-pad-nd.cc)
-@@ -1035,25 +1002,25 @@
- 
-     ADD_EXECUTABLE(convert-nc-test test/convert-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(convert-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(convert-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(convert-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME convert-nc-test COMMAND convert-nc-test)
- 
-     ADD_EXECUTABLE(convert-nc-eager-test test/convert-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(convert-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(convert-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(convert-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME convert-nc-eager-test COMMAND convert-nc-eager-test)
- 
-     ADD_EXECUTABLE(convolution-nhwc-test test/convolution-nhwc.cc)
-     SET_TARGET_PROPERTIES(convolution-nhwc-test PROPERTIES CXX_EXTENSIONS YES)
-     TARGET_INCLUDE_DIRECTORIES(convolution-nhwc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(convolution-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(convolution-nhwc-test PRIVATE XNNPACK gtest gtest_main)
-     TARGET_LINK_LIBRARIES(convolution-nhwc-test PRIVATE convolution-test-helpers)
-     ADD_TEST(NAME convolution-nhwc-test COMMAND convolution-nhwc-test)
- 
-     ADD_EXECUTABLE(convolution-nchw-test test/convolution-nchw.cc)
-     SET_TARGET_PROPERTIES(convolution-nchw-test PROPERTIES CXX_EXTENSIONS YES)
-     TARGET_INCLUDE_DIRECTORIES(convolution-nchw-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(convolution-nchw-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(convolution-nchw-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME convolution-nchw-test COMMAND convolution-nchw-test)
- 
-     ADD_EXECUTABLE(copy-nc-test test/copy-nc.cc)
-@@ -1068,7 +1035,7 @@
- 
-     ADD_EXECUTABLE(deconvolution-nhwc-test test/deconvolution-nhwc.cc)
-     TARGET_INCLUDE_DIRECTORIES(deconvolution-nhwc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(deconvolution-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(deconvolution-nhwc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME deconvolution-nhwc-test COMMAND deconvolution-nhwc-test)
- 
-     ADD_EXECUTABLE(depth-to-space-nchw2nhwc-test test/depth-to-space-nchw2nhwc.cc)
-@@ -1083,197 +1050,197 @@
- 
-     ADD_EXECUTABLE(divide-nd-test test/divide-nd.cc)
-     TARGET_INCLUDE_DIRECTORIES(divide-nd-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(divide-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(divide-nd-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME divide-nd-test COMMAND divide-nd-test)
- 
-     ADD_EXECUTABLE(divide-nd-eager-test test/divide-nd-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(divide-nd-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(divide-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(divide-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME divide-nd-eager-test COMMAND divide-nd-eager-test)
- 
-     ADD_EXECUTABLE(elu-nc-test test/elu-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(elu-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(elu-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(elu-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME elu-nc-test COMMAND elu-nc-test)
- 
-     ADD_EXECUTABLE(elu-nc-eager-test test/elu-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(elu-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(elu-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(elu-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME elu-nc-eager-test COMMAND elu-nc-eager-test)
- 
-     ADD_EXECUTABLE(fully-connected-nc-test test/fully-connected-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(fully-connected-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(fully-connected-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(fully-connected-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME fully-connected-nc-test COMMAND fully-connected-nc-test)
- 
-     ADD_EXECUTABLE(floor-nc-test test/floor-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(floor-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(floor-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(floor-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME floor-nc-test COMMAND floor-nc-test)
- 
-     ADD_EXECUTABLE(floor-nc-eager-test test/floor-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(floor-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(floor-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(floor-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME floor-nc-eager-test COMMAND floor-nc-eager-test)
- 
-     ADD_EXECUTABLE(global-average-pooling-nwc-test test/global-average-pooling-nwc.cc)
-     TARGET_INCLUDE_DIRECTORIES(global-average-pooling-nwc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(global-average-pooling-nwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(global-average-pooling-nwc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME global-average-pooling-nwc-test COMMAND global-average-pooling-nwc-test)
- 
-     ADD_EXECUTABLE(global-average-pooling-ncw-test test/global-average-pooling-ncw.cc)
-     TARGET_INCLUDE_DIRECTORIES(global-average-pooling-ncw-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(global-average-pooling-ncw-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(global-average-pooling-ncw-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME global-average-pooling-ncw-test COMMAND global-average-pooling-ncw-test)
- 
-     ADD_EXECUTABLE(hardswish-nc-test test/hardswish-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(hardswish-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(hardswish-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(hardswish-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME hardswish-nc-test COMMAND hardswish-nc-test)
- 
-     ADD_EXECUTABLE(hardswish-nc-eager-test test/hardswish-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(hardswish-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(hardswish-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(hardswish-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME hardswish-nc-eager-test COMMAND hardswish-nc-eager-test)
- 
-     ADD_EXECUTABLE(leaky-relu-nc-test test/leaky-relu-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(leaky-relu-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(leaky-relu-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(leaky-relu-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME leaky-relu-nc-test COMMAND leaky-relu-nc-test)
- 
-     ADD_EXECUTABLE(leaky-relu-nc-eager-test test/leaky-relu-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(leaky-relu-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(leaky-relu-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(leaky-relu-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME leaky-relu-nc-eager-test COMMAND leaky-relu-nc-eager-test)
- 
-     ADD_EXECUTABLE(max-pooling-nhwc-test test/max-pooling-nhwc.cc)
-     TARGET_INCLUDE_DIRECTORIES(max-pooling-nhwc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(max-pooling-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(max-pooling-nhwc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME max-pooling-nhwc-test COMMAND max-pooling-nhwc-test)
- 
-     ADD_EXECUTABLE(maximum-nd-test test/maximum-nd.cc)
-     TARGET_INCLUDE_DIRECTORIES(maximum-nd-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(maximum-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(maximum-nd-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME maximum-nd-test COMMAND maximum-nd-test)
- 
-     ADD_EXECUTABLE(maximum-nd-eager-test test/maximum-nd-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(maximum-nd-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(maximum-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(maximum-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME maximum-nd-eager-test COMMAND maximum-nd-eager-test)
- 
-     ADD_EXECUTABLE(minimum-nd-test test/minimum-nd.cc)
-     TARGET_INCLUDE_DIRECTORIES(minimum-nd-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(minimum-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(minimum-nd-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME minimum-nd-test COMMAND minimum-nd-test)
- 
-     ADD_EXECUTABLE(minimum-nd-eager-test test/minimum-nd-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(minimum-nd-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(minimum-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(minimum-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME minimum-nd-eager-test COMMAND minimum-nd-eager-test)
- 
-     ADD_EXECUTABLE(multiply-nd-test test/multiply-nd.cc)
-     TARGET_INCLUDE_DIRECTORIES(multiply-nd-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(multiply-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(multiply-nd-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME multiply-nd-test COMMAND multiply-nd-test)
- 
-     ADD_EXECUTABLE(multiply-nd-eager-test test/multiply-nd-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(multiply-nd-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(multiply-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(multiply-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME multiply-nd-eager-test COMMAND multiply-nd-eager-test)
- 
-     ADD_EXECUTABLE(negate-nc-test test/negate-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(negate-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(negate-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(negate-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME negate-nc-test COMMAND negate-nc-test)
- 
-     ADD_EXECUTABLE(negate-nc-eager-test test/negate-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(negate-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(negate-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(negate-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME negate-nc-eager-test COMMAND negate-nc-eager-test)
- 
-     ADD_EXECUTABLE(prelu-nc-test test/prelu-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(prelu-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(prelu-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(prelu-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME prelu-nc-test COMMAND prelu-nc-test)
- 
-     ADD_EXECUTABLE(resize-bilinear-nhwc-test test/resize-bilinear-nhwc.cc)
-     TARGET_INCLUDE_DIRECTORIES(resize-bilinear-nhwc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(resize-bilinear-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(resize-bilinear-nhwc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME resize-bilinear-nhwc-test COMMAND resize-bilinear-nhwc-test)
- 
-     ADD_EXECUTABLE(resize-bilinear-nchw-test test/resize-bilinear-nchw.cc)
-     TARGET_INCLUDE_DIRECTORIES(resize-bilinear-nchw-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(resize-bilinear-nchw-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(resize-bilinear-nchw-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME resize-bilinear-nchw-test COMMAND resize-bilinear-nchw-test)
- 
-     ADD_EXECUTABLE(sigmoid-nc-test test/sigmoid-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(sigmoid-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(sigmoid-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(sigmoid-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME sigmoid-nc-test COMMAND sigmoid-nc-test)
- 
-     ADD_EXECUTABLE(sigmoid-nc-eager-test test/sigmoid-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(sigmoid-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(sigmoid-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(sigmoid-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME sigmoid-nc-eager-test COMMAND sigmoid-nc-eager-test)
- 
-     ADD_EXECUTABLE(slice-nd-test test/slice-nd.cc)
-     TARGET_INCLUDE_DIRECTORIES(slice-nd-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(slice-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(slice-nd-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME slice-nd-test COMMAND slice-nd-test)
- 
-     ADD_EXECUTABLE(slice-nd-eager-test test/slice-nd-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(slice-nd-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(slice-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(slice-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME slice-nd-eager-test COMMAND slice-nd-eager-test)
- 
-     ADD_EXECUTABLE(softmax-nc-test test/softmax-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(softmax-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(softmax-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(softmax-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME softmax-nc-test COMMAND softmax-nc-test)
- 
-     ADD_EXECUTABLE(space-to-depth-nhwc-test test/space-to-depth-nhwc.cc)
-     TARGET_INCLUDE_DIRECTORIES(space-to-depth-nhwc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(space-to-depth-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(space-to-depth-nhwc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME space-to-depth-nhwc-test COMMAND space-to-depth-nhwc-test)
- 
-     ADD_EXECUTABLE(square-nc-test test/square-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(square-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(square-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(square-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME square-nc-test COMMAND square-nc-test)
- 
-     ADD_EXECUTABLE(square-nc-eager-test test/square-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(square-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(square-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(square-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME square-nc-eager-test COMMAND square-nc-eager-test)
- 
-     ADD_EXECUTABLE(square-root-nc-test test/square-root-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(square-root-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(square-root-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(square-root-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME square-root-nc-test COMMAND square-root-nc-test)
- 
-     ADD_EXECUTABLE(square-root-nc-eager-test test/square-root-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(square-root-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(square-root-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(square-root-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME square-root-nc-eager-test COMMAND square-root-nc-eager-test)
- 
-     ADD_EXECUTABLE(squared-difference-nd-test test/squared-difference-nd.cc)
-     TARGET_INCLUDE_DIRECTORIES(squared-difference-nd-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(squared-difference-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(squared-difference-nd-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME squared-difference-nd-test COMMAND squared-difference-nd-test)
- 
-     ADD_EXECUTABLE(squared-difference-nd-eager-test test/squared-difference-nd-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(squared-difference-nd-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(squared-difference-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(squared-difference-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME squared-difference-nd-eager-test COMMAND squared-difference-nd-eager-test)
- 
-     ADD_EXECUTABLE(subtract-nd-test test/subtract-nd.cc)
-     TARGET_INCLUDE_DIRECTORIES(subtract-nd-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(subtract-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(subtract-nd-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME subtract-nd-test COMMAND subtract-nd-test)
- 
-     ADD_EXECUTABLE(subtract-nd-eager-test test/subtract-nd-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(subtract-nd-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(subtract-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(subtract-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME subtract-nd-eager-test COMMAND subtract-nd-eager-test)
- 
-     ADD_EXECUTABLE(tanh-nc-test test/tanh-nc.cc)
-@@ -1293,12 +1260,12 @@
- 
-     ADD_EXECUTABLE(truncation-nc-test test/truncation-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(truncation-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(truncation-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(truncation-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME truncation-nc-test COMMAND truncation-nc-test)
- 
-     ADD_EXECUTABLE(truncation-nc-eager-test test/truncation-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(truncation-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(truncation-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(truncation-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME truncation-nc-eager-test COMMAND truncation-nc-eager-test)
- 
-     ADD_EXECUTABLE(unpooling-nhwc-test test/unpooling-nhwc.cc)
-@@ -1350,22 +1317,22 @@
- 
-     ADD_EXECUTABLE(average-pooling-2d-test test/average-pooling-2d.cc)
-     TARGET_INCLUDE_DIRECTORIES(average-pooling-2d-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(average-pooling-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(average-pooling-2d-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME average-pooling-2d-test COMMAND average-pooling-2d-test)
- 
-     ADD_EXECUTABLE(bankers-rounding-test test/bankers-rounding.cc)
-     TARGET_INCLUDE_DIRECTORIES(bankers-rounding-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(bankers-rounding-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(bankers-rounding-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME bankers-rounding-test COMMAND bankers-rounding-test)
- 
-     ADD_EXECUTABLE(ceiling-test test/ceiling.cc)
-     TARGET_INCLUDE_DIRECTORIES(ceiling-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(ceiling-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(ceiling-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME ceiling-test COMMAND ceiling-test)
- 
-     ADD_EXECUTABLE(clamp-test test/clamp.cc)
-     TARGET_INCLUDE_DIRECTORIES(clamp-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(clamp-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(clamp-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME clamp-test COMMAND clamp-test)
- 
-     ADD_EXECUTABLE(concatenate2-test test/concatenate2.cc)
-@@ -1385,187 +1352,187 @@
- 
-     ADD_EXECUTABLE(convert-test test/convert.cc)
-     TARGET_INCLUDE_DIRECTORIES(convert-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(convert-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(convert-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME convert-test COMMAND convert-test)
- 
-     ADD_EXECUTABLE(convolution-2d-test test/convolution-2d.cc)
-     SET_TARGET_PROPERTIES(convolution-2d-test PROPERTIES CXX_EXTENSIONS YES)
-     TARGET_INCLUDE_DIRECTORIES(convolution-2d-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(convolution-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph convolution-test-helpers)
-+    TARGET_LINK_LIBRARIES(convolution-2d-test PRIVATE XNNPACK gtest gtest_main subgraph convolution-test-helpers)
-     ADD_TEST(NAME convolution-2d-test COMMAND convolution-2d-test)
- 
-     ADD_EXECUTABLE(copy-test test/copy.cc)
-     TARGET_INCLUDE_DIRECTORIES(copy-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(copy-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(copy-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME copy-test COMMAND copy-test)
- 
-     ADD_EXECUTABLE(deconvolution-2d-test test/deconvolution-2d.cc)
-     SET_TARGET_PROPERTIES(deconvolution-2d-test PROPERTIES CXX_EXTENSIONS YES)
-     TARGET_INCLUDE_DIRECTORIES(deconvolution-2d-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(deconvolution-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph convolution-test-helpers)
-+    TARGET_LINK_LIBRARIES(deconvolution-2d-test PRIVATE XNNPACK gtest gtest_main subgraph convolution-test-helpers)
-     ADD_TEST(NAME deconvolution-2d-test COMMAND deconvolution-2d-test)
- 
-     ADD_EXECUTABLE(depth-to-space-test test/depth-to-space.cc)
-     TARGET_INCLUDE_DIRECTORIES(depth-to-space-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(depth-to-space-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(depth-to-space-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME depth-to-space-test COMMAND depth-to-space-test)
- 
-     ADD_EXECUTABLE(depthwise-convolution-2d-test test/depthwise-convolution-2d.cc)
-     SET_TARGET_PROPERTIES(depthwise-convolution-2d-test PROPERTIES CXX_EXTENSIONS YES)
-     TARGET_INCLUDE_DIRECTORIES(depthwise-convolution-2d-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(depthwise-convolution-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph convolution-test-helpers)
-+    TARGET_LINK_LIBRARIES(depthwise-convolution-2d-test PRIVATE XNNPACK gtest gtest_main subgraph convolution-test-helpers)
-     ADD_TEST(NAME depthwise-convolution-2d-test COMMAND depthwise-convolution-2d-test)
- 
-     ADD_EXECUTABLE(divide2-test test/divide2.cc)
-     TARGET_INCLUDE_DIRECTORIES(divide2-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(divide2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(divide2-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME divide2-test COMMAND divide2-test)
- 
-     ADD_EXECUTABLE(elu-test test/elu.cc)
-     TARGET_INCLUDE_DIRECTORIES(elu-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(elu-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(elu-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME elu-test COMMAND elu-test)
- 
-     ADD_EXECUTABLE(even-split2-test test/even-split2.cc)
-     TARGET_INCLUDE_DIRECTORIES(even-split2-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(even-split2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(even-split2-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME even-split2-test COMMAND even-split2-test)
- 
-     ADD_EXECUTABLE(even-split3-test test/even-split3.cc)
-     TARGET_INCLUDE_DIRECTORIES(even-split3-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(even-split3-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(even-split3-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME even-split3-test COMMAND even-split3-test)
- 
-     ADD_EXECUTABLE(even-split4-test test/even-split4.cc)
-     TARGET_INCLUDE_DIRECTORIES(even-split4-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(even-split4-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(even-split4-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME even-split4-test COMMAND even-split4-test)
- 
-     ADD_EXECUTABLE(floor-test test/floor.cc)
-     TARGET_INCLUDE_DIRECTORIES(floor-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(floor-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(floor-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME floor-test COMMAND floor-test)
- 
-     ADD_EXECUTABLE(fully-connected-test test/fully-connected.cc)
-     TARGET_INCLUDE_DIRECTORIES(fully-connected-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(fully-connected-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(fully-connected-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME fully-connected-test COMMAND fully-connected-test)
- 
-     ADD_EXECUTABLE(global-average-pooling-1d-test test/global-average-pooling-1d.cc)
-     TARGET_INCLUDE_DIRECTORIES(global-average-pooling-1d-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(global-average-pooling-1d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(global-average-pooling-1d-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME global-average-pooling-1d-test COMMAND global-average-pooling-1d-test)
- 
-     ADD_EXECUTABLE(global-average-pooling-2d-test test/global-average-pooling-2d.cc)
-     TARGET_INCLUDE_DIRECTORIES(global-average-pooling-2d-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(global-average-pooling-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(global-average-pooling-2d-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME global-average-pooling-2d-test COMMAND global-average-pooling-2d-test)
- 
-     ADD_EXECUTABLE(hardswish-test test/hardswish.cc)
-     TARGET_INCLUDE_DIRECTORIES(hardswish-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(hardswish-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(hardswish-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME hardswish-test COMMAND hardswish-test)
- 
-     ADD_EXECUTABLE(leaky-relu-test test/leaky-relu.cc)
-     TARGET_INCLUDE_DIRECTORIES(leaky-relu-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(leaky-relu-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(leaky-relu-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME leaky-relu-test COMMAND leaky-relu-test)
- 
-     ADD_EXECUTABLE(max-pooling-2d-test test/max-pooling-2d.cc)
-     TARGET_INCLUDE_DIRECTORIES(max-pooling-2d-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(max-pooling-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(max-pooling-2d-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME max-pooling-2d-test COMMAND max-pooling-2d-test)
- 
-     ADD_EXECUTABLE(maximum2-test test/maximum2.cc)
-     TARGET_INCLUDE_DIRECTORIES(maximum2-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(maximum2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(maximum2-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME maximum2-test COMMAND maximum2-test)
- 
-     ADD_EXECUTABLE(minimum2-test test/minimum2.cc)
-     TARGET_INCLUDE_DIRECTORIES(minimum2-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(minimum2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(minimum2-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME minimum2-test COMMAND minimum2-test)
- 
-     ADD_EXECUTABLE(multiply2-test test/multiply2.cc)
-     TARGET_INCLUDE_DIRECTORIES(multiply2-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(multiply2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(multiply2-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME multiply2-test COMMAND multiply2-test)
- 
-     ADD_EXECUTABLE(negate-test test/negate.cc)
-     TARGET_INCLUDE_DIRECTORIES(negate-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(negate-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(negate-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME negate-test COMMAND negate-test)
- 
-     ADD_EXECUTABLE(prelu-test test/prelu.cc)
-     TARGET_INCLUDE_DIRECTORIES(prelu-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(prelu-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(prelu-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME prelu-test COMMAND prelu-test)
- 
-     ADD_EXECUTABLE(sigmoid-test test/sigmoid.cc)
-     SET_TARGET_PROPERTIES(sigmoid-test PROPERTIES CXX_EXTENSIONS YES)
-     TARGET_INCLUDE_DIRECTORIES(sigmoid-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(sigmoid-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(sigmoid-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME sigmoid-test COMMAND sigmoid-test)
- 
-     ADD_EXECUTABLE(static-slice-test test/static-slice.cc)
-     SET_TARGET_PROPERTIES(static-slice-test PROPERTIES CXX_EXTENSIONS YES)
-     TARGET_INCLUDE_DIRECTORIES(static-slice-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(static-slice-test PRIVATE XNNPACK fp16 gmock gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(static-slice-test PRIVATE XNNPACK gmock gtest gtest_main subgraph)
-     ADD_TEST(NAME static-slice-test COMMAND static-slice-test)
- 
-     ADD_EXECUTABLE(softmax-test test/softmax.cc)
-     TARGET_INCLUDE_DIRECTORIES(softmax-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(softmax-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(softmax-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME softmax-test COMMAND softmax-test)
- 
-     ADD_EXECUTABLE(space-to-depth-2d-test test/space-to-depth-2d.cc)
-     TARGET_INCLUDE_DIRECTORIES(space-to-depth-2d-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(space-to-depth-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(space-to-depth-2d-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME space-to-depth-2d-test COMMAND space-to-depth-2d-test)
- 
-     ADD_EXECUTABLE(square-test test/square.cc)
-     TARGET_INCLUDE_DIRECTORIES(square-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(square-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(square-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME square-test COMMAND square-test)
- 
-     ADD_EXECUTABLE(square-root-test test/square.cc)
-     TARGET_INCLUDE_DIRECTORIES(square-root-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(square-root-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(square-root-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME square-root-test COMMAND square-root-test)
- 
-     ADD_EXECUTABLE(squared-difference-test test/squared-difference.cc)
-     TARGET_INCLUDE_DIRECTORIES(squared-difference-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(squared-difference-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(squared-difference-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME squared-difference-test COMMAND squared-difference-test)
- 
-     ADD_EXECUTABLE(static-constant-pad-test test/static-constant-pad.cc)
-     TARGET_INCLUDE_DIRECTORIES(static-constant-pad-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(static-constant-pad-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(static-constant-pad-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME static-constant-pad-test COMMAND static-constant-pad-test)
- 
-     ADD_EXECUTABLE(static-reshape-test test/static-reshape.cc)
-     TARGET_INCLUDE_DIRECTORIES(static-reshape-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(static-reshape-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(static-reshape-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME static-reshape-test COMMAND static-reshape-test)
- 
-     ADD_EXECUTABLE(static-resize-bilinear-2d-test test/static-resize-bilinear-2d.cc)
-     TARGET_INCLUDE_DIRECTORIES(static-resize-bilinear-2d-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(static-resize-bilinear-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(static-resize-bilinear-2d-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME static-resize-bilinear-2d-test COMMAND static-resize-bilinear-2d-test)
- 
-     ADD_EXECUTABLE(static-transpose-test test/static-transpose.cc)
-     TARGET_INCLUDE_DIRECTORIES(static-transpose-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(static-transpose-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(static-transpose-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME static-transpose-test COMMAND static-transpose-test)
- 
-     ADD_EXECUTABLE(subtract2-test test/subtract2.cc)
-     TARGET_INCLUDE_DIRECTORIES(subtract2-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(subtract2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(subtract2-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME subtract2-test COMMAND subtract2-test)
- 
-     ADD_EXECUTABLE(unpooling-2d-test test/unpooling-2d.cc)
-     TARGET_INCLUDE_DIRECTORIES(unpooling-2d-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(unpooling-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(unpooling-2d-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME unpooling-2d-test COMMAND unpooling-2d-test)
-   ENDIF()
- 
-@@ -1591,355 +1558,355 @@
- 
-   ADD_EXECUTABLE(f16-f32-vcvt-test test/f16-f32-vcvt.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-f32-vcvt-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-f32-vcvt-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-f32-vcvt-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-f32-vcvt-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-f32-vcvt-test COMMAND f16-f32-vcvt-test)
- 
-   ADD_EXECUTABLE(f16-gavgpool-cw-test test/f16-gavgpool-cw.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-gavgpool-cw-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-gavgpool-cw-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-gavgpool-cw-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-gavgpool-cw-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-gavgpool-cw-test COMMAND f16-gavgpool-cw-test)
- 
-   ADD_EXECUTABLE(f16-avgpool-minmax-test test/f16-avgpool-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-avgpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-avgpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-avgpool-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-avgpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-avgpool-minmax-test COMMAND f16-avgpool-minmax-test)
- 
-   ADD_EXECUTABLE(f16-conv-hwc2chw-test test/f16-conv-hwc2chw.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-conv-hwc2chw-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-conv-hwc2chw-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-conv-hwc2chw-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-conv-hwc2chw-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
-   ADD_TEST(NAME f16-conv-hwc2chw-test COMMAND f16-conv-hwc2chw-test)
- 
-   ADD_EXECUTABLE(f16-dwconv-unipass-minmax-test test/f16-dwconv-unipass-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-dwconv-unipass-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-dwconv-unipass-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-dwconv-unipass-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-dwconv-unipass-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
-   ADD_TEST(NAME f16-dwconv-unipass-minmax-test COMMAND f16-dwconv-unipass-minmax-test)
- 
-   ADD_EXECUTABLE(f16-dwconv2d-chw-test test/f16-dwconv2d-chw.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-dwconv2d-chw-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-dwconv2d-chw-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-dwconv2d-chw-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-dwconv2d-chw-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
-   ADD_TEST(NAME f16-dwconv2d-chw-test COMMAND f16-dwconv2d-chw-test)
- 
-   ADD_EXECUTABLE(f16-gavgpool-minmax-test test/f16-gavgpool-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-gavgpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-gavgpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-gavgpool-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-gavgpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-gavgpool-minmax-test COMMAND f16-gavgpool-minmax-test)
- 
-   ADD_EXECUTABLE(f16-gemm-minmax-test test/f16-gemm-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-gemm-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-gemm-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-gemm-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-gemm-minmax-test PRIVATE gemm-microkernel-tester hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-gemm-minmax-test COMMAND f16-gemm-minmax-test)
- 
-   ADD_EXECUTABLE(f16-ibilinear-chw-test test/f16-ibilinear-chw.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-ibilinear-chw-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-ibilinear-chw-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-ibilinear-chw-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-ibilinear-chw-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-ibilinear-chw-test COMMAND f16-ibilinear-chw-test)
- 
-   ADD_EXECUTABLE(f16-ibilinear-test test/f16-ibilinear.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-ibilinear-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-ibilinear-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-ibilinear-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-ibilinear-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-ibilinear-test COMMAND f16-ibilinear-test)
- 
-   ADD_EXECUTABLE(f16-igemm-minmax-test test/f16-igemm-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-igemm-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-igemm-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-igemm-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-igemm-minmax-test PRIVATE gemm-microkernel-tester hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-igemm-minmax-test COMMAND f16-igemm-minmax-test)
- 
-   ADD_EXECUTABLE(f16-maxpool-minmax-test test/f16-maxpool-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-maxpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-maxpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-maxpool-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-maxpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-maxpool-minmax-test COMMAND f16-maxpool-minmax-test)
- 
-   ADD_EXECUTABLE(f16-spmm-minmax-test test/f16-spmm-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-spmm-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-spmm-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-spmm-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-spmm-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-spmm-minmax-test COMMAND f16-spmm-minmax-test)
- 
-   ADD_EXECUTABLE(f16-rmax-test test/f16-rmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-rmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-rmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-rmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-rmax-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-rmax-test COMMAND f16-rmax-test)
- 
-   ADD_EXECUTABLE(f16-vabs-test test/f16-vabs.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vabs-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vabs-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vabs-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vabs-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vabs-test COMMAND f16-vabs-test)
- 
-   ADD_EXECUTABLE(f16-vadd-minmax-test test/f16-vadd-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vadd-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vadd-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vadd-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vadd-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vadd-minmax-test COMMAND f16-vadd-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vaddc-minmax-test test/f16-vaddc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vaddc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vaddc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vaddc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vaddc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vaddc-minmax-test COMMAND f16-vaddc-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vclamp-test test/f16-vclamp.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vclamp-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vclamp-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vclamp-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vclamp-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vclamp-test COMMAND f16-vclamp-test)
- 
-   ADD_EXECUTABLE(f16-vdiv-minmax-test test/f16-vdiv-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vdiv-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vdiv-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vdiv-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vdiv-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vdiv-minmax-test COMMAND f16-vdiv-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vdivc-minmax-test test/f16-vdivc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vdivc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vdivc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vdivc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vdivc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vdivc-minmax-test COMMAND f16-vdivc-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vrdivc-minmax-test test/f16-vrdivc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vrdivc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vrdivc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vrdivc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vrdivc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vrdivc-minmax-test COMMAND f16-vrdivc-minmax-test)
- 
-   ADD_EXECUTABLE(f16-velu-test test/f16-velu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-velu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-velu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-velu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-velu-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-velu-test COMMAND f16-velu-test)
- 
-   ADD_EXECUTABLE(f16-vhswish-test test/f16-vhswish.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vhswish-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vhswish-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vhswish-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vhswish-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vhswish-test COMMAND f16-vhswish-test)
- 
-   ADD_EXECUTABLE(f16-vlrelu-test test/f16-vlrelu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vlrelu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vlrelu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vlrelu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vlrelu-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vlrelu-test COMMAND f16-vlrelu-test)
- 
-   ADD_EXECUTABLE(f16-vmax-test test/f16-vmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vmax-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-vmax-test COMMAND f16-vmax-test)
- 
-   ADD_EXECUTABLE(f16-vmaxc-test test/f16-vmaxc.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vmaxc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vmaxc-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vmaxc-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vmaxc-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-vmaxc-test COMMAND f16-vmaxc-test)
- 
-   ADD_EXECUTABLE(f16-vmin-test test/f16-vmin.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vmin-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vmin-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vmin-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vmin-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-vmin-test COMMAND f16-vmin-test)
- 
-   ADD_EXECUTABLE(f16-vminc-test test/f16-vminc.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vminc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vminc-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vminc-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vminc-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-vminc-test COMMAND f16-vminc-test)
- 
-   ADD_EXECUTABLE(f16-vmul-minmax-test test/f16-vmul-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vmul-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vmul-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vmul-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vmul-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vmul-minmax-test COMMAND f16-vmul-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vmulc-minmax-test test/f16-vmulc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vmulc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vmulc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vmulc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vmulc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vmulc-minmax-test COMMAND f16-vmulc-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vmulcaddc-minmax-test test/f16-vmulcaddc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vmulcaddc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vmulcaddc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vmulcaddc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vmulcaddc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
-   ADD_TEST(NAME f16-vmulcaddc-minmax-test COMMAND f16-vmulcaddc-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vneg-test test/f16-vneg.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vneg-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vneg-test PRIVATE fp16 pthreadpool gtest gtest_main microparams-init)
-+  TARGET_LINK_LIBRARIES(f16-vneg-test PRIVATE gtest gtest_main microparams-init)
-   TARGET_LINK_LIBRARIES(f16-vneg-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vneg-test COMMAND f16-vneg-test)
- 
-   ADD_EXECUTABLE(f16-pavgpool-minmax-test test/f16-pavgpool-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-pavgpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-pavgpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-pavgpool-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-pavgpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-pavgpool-minmax-test COMMAND f16-pavgpool-minmax-test)
- 
-   ADD_EXECUTABLE(f16-prelu-test test/f16-prelu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-prelu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-prelu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-prelu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-prelu-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-prelu-test COMMAND f16-prelu-test)
- 
-   ADD_EXECUTABLE(f16-raddstoreexpminusmax-test test/f16-raddstoreexpminusmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-raddstoreexpminusmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-raddstoreexpminusmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-raddstoreexpminusmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-raddstoreexpminusmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-raddstoreexpminusmax-test COMMAND f16-raddstoreexpminusmax-test)
- 
-   ADD_EXECUTABLE(f16-vrndne-test test/f16-vrndne.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vrndne-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vrndne-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vrndne-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vrndne-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-vrndne-test COMMAND f16-vrndne-test)
- 
-   ADD_EXECUTABLE(f16-vrndz-test test/f16-vrndz.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vrndz-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vrndz-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vrndz-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vrndz-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-vrndz-test COMMAND f16-vrndz-test)
- 
-   ADD_EXECUTABLE(f16-vrndu-test test/f16-vrndu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vrndu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vrndu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vrndu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vrndu-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-vrndu-test COMMAND f16-vrndu-test)
- 
-   ADD_EXECUTABLE(f16-vrndd-test test/f16-vrndd.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vrndd-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vrndd-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vrndd-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vrndd-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-vrndd-test COMMAND f16-vrndd-test)
- 
-   ADD_EXECUTABLE(f16-vsigmoid-test test/f16-vsigmoid.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vsigmoid-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vsigmoid-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vsigmoid-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vsigmoid-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vsigmoid-test COMMAND f16-vsigmoid-test)
- 
-   ADD_EXECUTABLE(f16-vsqr-test test/f16-vsqr.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vsqr-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vsqr-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vsqr-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vsqr-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-vsqr-test COMMAND f16-vsqr-test)
- 
-   ADD_EXECUTABLE(f16-vsqrt-test test/f16-vsqrt.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vsqrt-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vsqrt-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vsqrt-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vsqrt-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-vsqrt-test COMMAND f16-vsqrt-test)
- 
-   ADD_EXECUTABLE(f16-vsub-minmax-test test/f16-vsub-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vsub-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vsub-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vsub-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vsub-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vsub-minmax-test COMMAND f16-vsub-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vsubc-minmax-test test/f16-vsubc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vsubc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vsubc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vsubc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vsubc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vsubc-minmax-test COMMAND f16-vsubc-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vrsubc-minmax-test test/f16-vrsubc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vrsubc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vrsubc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vrsubc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vrsubc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vrsubc-minmax-test COMMAND f16-vrsubc-minmax-test)
- 
-   ADD_EXECUTABLE(f32-argmaxpool-test test/f32-argmaxpool.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-argmaxpool-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-argmaxpool-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-argmaxpool-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-argmaxpool-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-argmaxpool-test COMMAND f32-argmaxpool-test)
- 
-   ADD_EXECUTABLE(f32-avgpool-minmax-test test/f32-avgpool-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-avgpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-avgpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-avgpool-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-avgpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-avgpool-minmax-test COMMAND f32-avgpool-minmax-test)
- 
-   ADD_EXECUTABLE(f32-conv-hwc-test test/f32-conv-hwc.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-conv-hwc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-conv-hwc-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-conv-hwc-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-conv-hwc-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
-   ADD_TEST(NAME f32-conv-hwc-test COMMAND f32-conv-hwc-test)
- 
-   ADD_EXECUTABLE(f32-conv-hwc2chw-test test/f32-conv-hwc2chw.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-conv-hwc2chw-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-conv-hwc2chw-test PRIVATE fp16 pthreadpool gtest gtest_main microparams-init)
-+  TARGET_LINK_LIBRARIES(f32-conv-hwc2chw-test PRIVATE gtest gtest_main microparams-init)
-   TARGET_LINK_LIBRARIES(f32-conv-hwc2chw-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
-   ADD_TEST(NAME f32-conv-hwc2chw-test COMMAND f32-conv-hwc2chw-test)
- 
-   ADD_EXECUTABLE(f32-dwconv2d-chw-test test/f32-dwconv2d-chw.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-dwconv2d-chw-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-dwconv2d-chw-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-dwconv2d-chw-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-dwconv2d-chw-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-dwconv2d-chw-test COMMAND f32-dwconv2d-chw-test)
- 
-   ADD_EXECUTABLE(f32-dwconv-multipass-test test/f32-dwconv-multipass.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-dwconv-multipass-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-dwconv-multipass-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-dwconv-multipass-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-dwconv-multipass-test PRIVATE hardware-config logging microkernel-utils microkernels-all microparams-init packing)
-   ADD_TEST(NAME f32-dwconv-multipass-test COMMAND f32-dwconv-multipass-test)
- 
-   ADD_EXECUTABLE(f32-dwconv-multipass-minmax-test test/f32-dwconv-multipass-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-dwconv-multipass-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-dwconv-multipass-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-dwconv-multipass-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-dwconv-multipass-minmax-test PRIVATE hardware-config logging microkernel-utils microkernels-all microparams-init packing)
-   ADD_TEST(NAME f32-dwconv-multipass-minmax-test COMMAND f32-dwconv-multipass-minmax-test)
- 
-   ADD_EXECUTABLE(f32-dwconv-unipass-test test/f32-dwconv-unipass.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-dwconv-unipass-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-dwconv-unipass-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-dwconv-unipass-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-dwconv-unipass-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
-   ADD_TEST(NAME f32-dwconv-unipass-test COMMAND f32-dwconv-unipass-test)
- 
-   ADD_EXECUTABLE(f32-dwconv-unipass-minmax-test test/f32-dwconv-unipass-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-dwconv-unipass-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-dwconv-unipass-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-dwconv-unipass-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-dwconv-unipass-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
-   ADD_TEST(NAME f32-dwconv-unipass-minmax-test COMMAND f32-dwconv-unipass-minmax-test)
- 
-   ADD_EXECUTABLE(f32-f16-vcvt-test test/f32-f16-vcvt.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-f16-vcvt-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-f16-vcvt-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-f16-vcvt-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-f16-vcvt-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-f16-vcvt-test COMMAND f32-f16-vcvt-test)
- 
-   ADD_EXECUTABLE(f32-qs8-vcvt-test test/f32-qs8-vcvt.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-qs8-vcvt-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-qs8-vcvt-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-qs8-vcvt-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-qs8-vcvt-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-qs8-vcvt-test COMMAND f32-qs8-vcvt-test)
- 
-   ADD_EXECUTABLE(f32-qu8-vcvt-test test/f32-qu8-vcvt.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-qu8-vcvt-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-qu8-vcvt-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-qu8-vcvt-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-qu8-vcvt-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-qu8-vcvt-test COMMAND f32-qu8-vcvt-test)
- 
-   ADD_EXECUTABLE(f32-gavgpool-cw-test test/f32-gavgpool-cw.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-gavgpool-cw-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-gavgpool-cw-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-gavgpool-cw-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-gavgpool-cw-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-gavgpool-cw-test COMMAND f32-gavgpool-cw-test)
- 
-   ADD_EXECUTABLE(f32-gavgpool-minmax-test test/f32-gavgpool-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-gavgpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-gavgpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-gavgpool-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-gavgpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-gavgpool-minmax-test COMMAND f32-gavgpool-minmax-test)
- 
-@@ -1975,13 +1942,13 @@
- 
-   ADD_EXECUTABLE(f32-ibilinear-test test/f32-ibilinear.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-ibilinear-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-ibilinear-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-ibilinear-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-ibilinear-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-ibilinear-test COMMAND f32-ibilinear-test)
- 
-   ADD_EXECUTABLE(f32-ibilinear-chw-test test/f32-ibilinear-chw.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-ibilinear-chw-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-ibilinear-chw-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-ibilinear-chw-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-ibilinear-chw-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-ibilinear-chw-test COMMAND f32-ibilinear-chw-test)
- 
-@@ -2016,13 +1983,13 @@
- 
-   ADD_EXECUTABLE(f32-maxpool-minmax-test test/f32-maxpool-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-maxpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-maxpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-maxpool-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-maxpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-maxpool-minmax-test COMMAND f32-maxpool-minmax-test)
- 
-   ADD_EXECUTABLE(f32-pavgpool-minmax-test test/f32-pavgpool-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-pavgpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-pavgpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-pavgpool-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-pavgpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-pavgpool-minmax-test COMMAND f32-pavgpool-minmax-test)
- 
-@@ -2034,259 +2001,259 @@
- 
-   ADD_EXECUTABLE(f32-prelu-test test/f32-prelu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-prelu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-prelu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-prelu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-prelu-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-prelu-test COMMAND f32-prelu-test)
- 
-   ADD_EXECUTABLE(f32-raddexpminusmax-test test/f32-raddexpminusmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-raddexpminusmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-raddexpminusmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-raddexpminusmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-raddexpminusmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-raddexpminusmax-test COMMAND f32-raddexpminusmax-test)
- 
-   ADD_EXECUTABLE(f32-raddextexp-test test/f32-raddextexp.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-raddextexp-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-raddextexp-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-raddextexp-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-raddextexp-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-raddextexp-test COMMAND f32-raddextexp-test)
- 
-   ADD_EXECUTABLE(f32-raddstoreexpminusmax-test test/f32-raddstoreexpminusmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-raddstoreexpminusmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-raddstoreexpminusmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-raddstoreexpminusmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-raddstoreexpminusmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-raddstoreexpminusmax-test COMMAND f32-raddstoreexpminusmax-test)
- 
-   ADD_EXECUTABLE(f32-rmax-test test/f32-rmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-rmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-rmax-test PRIVATE fp16 pthreadpool gtest gtest_main microparams-init)
-+  TARGET_LINK_LIBRARIES(f32-rmax-test PRIVATE gtest gtest_main microparams-init)
-   TARGET_LINK_LIBRARIES(f32-rmax-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-rmax-test COMMAND f32-rmax-test)
- 
-   ADD_EXECUTABLE(f32-spmm-minmax-test test/f32-spmm-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-spmm-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-spmm-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-spmm-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-spmm-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-spmm-minmax-test COMMAND f32-spmm-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vabs-test test/f32-vabs.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vabs-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vabs-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vabs-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vabs-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vabs-test COMMAND f32-vabs-test)
- 
-   ADD_EXECUTABLE(f32-vadd-test test/f32-vadd.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vadd-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vadd-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vadd-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vadd-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-vadd-test COMMAND f32-vadd-test)
- 
-   ADD_EXECUTABLE(f32-vadd-minmax-test test/f32-vadd-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vadd-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vadd-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vadd-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vadd-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vadd-minmax-test COMMAND f32-vadd-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vadd-relu-test test/f32-vadd-relu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vadd-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vadd-relu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vadd-relu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vadd-relu-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-vadd-relu-test COMMAND f32-vadd-relu-test)
- 
-   ADD_EXECUTABLE(f32-vaddc-test test/f32-vaddc.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vaddc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vaddc-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vaddc-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vaddc-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-vaddc-test COMMAND f32-vaddc-test)
- 
-   ADD_EXECUTABLE(f32-vaddc-minmax-test test/f32-vaddc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vaddc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vaddc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vaddc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vaddc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vaddc-minmax-test COMMAND f32-vaddc-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vaddc-relu-test test/f32-vaddc-relu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vaddc-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vaddc-relu-test PRIVATE fp16 pthreadpool gtest gtest_main microparams-init)
-+  TARGET_LINK_LIBRARIES(f32-vaddc-relu-test PRIVATE gtest gtest_main microparams-init)
-   TARGET_LINK_LIBRARIES(f32-vaddc-relu-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-vaddc-relu-test COMMAND f32-vaddc-relu-test)
- 
-   ADD_EXECUTABLE(f32-vclamp-test test/f32-vclamp.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vclamp-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vclamp-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vclamp-test PRIVATE test gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vclamp-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vclamp-test COMMAND f32-vclamp-test)
- 
-   ADD_EXECUTABLE(f32-vhswish-test test/f32-vhswish.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vhswish-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vhswish-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vhswish-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vhswish-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vhswish-test COMMAND f32-vhswish-test)
- 
-   ADD_EXECUTABLE(f32-vdiv-test test/f32-vdiv.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vdiv-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vdiv-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vdiv-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vdiv-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-vdiv-test COMMAND f32-vdiv-test)
- 
-   ADD_EXECUTABLE(f32-vdiv-minmax-test test/f32-vdiv-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vdiv-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vdiv-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vdiv-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vdiv-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vdiv-minmax-test COMMAND f32-vdiv-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vdiv-relu-test test/f32-vdiv-relu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vdiv-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vdiv-relu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vdiv-relu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vdiv-relu-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-vdiv-relu-test COMMAND f32-vdiv-relu-test)
- 
-   ADD_EXECUTABLE(f32-vdivc-test test/f32-vdivc.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vdivc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vdivc-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vdivc-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vdivc-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-vdivc-test COMMAND f32-vdivc-test)
- 
-   ADD_EXECUTABLE(f32-vdivc-minmax-test test/f32-vdivc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vdivc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vdivc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vdivc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vdivc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vdivc-minmax-test COMMAND f32-vdivc-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vdivc-relu-test test/f32-vdivc-relu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vdivc-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vdivc-relu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vdivc-relu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vdivc-relu-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-vdivc-relu-test COMMAND f32-vdivc-relu-test)
- 
-   ADD_EXECUTABLE(f32-vrdivc-test test/f32-vrdivc.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vrdivc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrdivc-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrdivc-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vrdivc-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-vrdivc-test COMMAND f32-vrdivc-test)
- 
-   ADD_EXECUTABLE(f32-vrdivc-minmax-test test/f32-vrdivc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vrdivc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrdivc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrdivc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vrdivc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vrdivc-minmax-test COMMAND f32-vrdivc-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vrdivc-relu-test test/f32-vrdivc-relu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vrdivc-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrdivc-relu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrdivc-relu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vrdivc-relu-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-vrdivc-relu-test COMMAND f32-vrdivc-relu-test)
- 
-   ADD_EXECUTABLE(f32-velu-test test/f32-velu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-velu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-velu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-velu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-velu-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-velu-test COMMAND f32-velu-test)
- 
-   ADD_EXECUTABLE(f32-vlrelu-test test/f32-vlrelu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vlrelu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vlrelu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vlrelu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vlrelu-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vlrelu-test COMMAND f32-vlrelu-test)
- 
-   ADD_EXECUTABLE(f32-vmax-test test/f32-vmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vmax-test COMMAND f32-vmax-test)
- 
-   ADD_EXECUTABLE(f32-vmaxc-test test/f32-vmaxc.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vmaxc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vmaxc-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vmaxc-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vmaxc-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vmaxc-test COMMAND f32-vmaxc-test)
- 
-   ADD_EXECUTABLE(f32-vmin-test test/f32-vmin.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vmin-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vmin-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vmin-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vmin-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vmin-test COMMAND f32-vmin-test)
- 
-   ADD_EXECUTABLE(f32-vminc-test test/f32-vminc.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vminc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vminc-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vminc-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vminc-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vminc-test COMMAND f32-vminc-test)
- 
-   ADD_EXECUTABLE(f32-vmul-test test/f32-vmul.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vmul-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vmul-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vmul-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vmul-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vmul-test COMMAND f32-vmul-test)
- 
-   ADD_EXECUTABLE(f32-vmul-minmax-test test/f32-vmul-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vmul-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vmul-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vmul-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vmul-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vmul-minmax-test COMMAND f32-vmul-minmax-test microparams-init)
- 
-   ADD_EXECUTABLE(f32-vmul-relu-test test/f32-vmul-relu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vmul-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vmul-relu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vmul-relu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vmul-relu-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vmul-relu-test COMMAND f32-vmul-relu-test)
- 
-   ADD_EXECUTABLE(f32-vmulc-test test/f32-vmulc.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vmulc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vmulc-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vmulc-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vmulc-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vmulc-test COMMAND f32-vmulc-test)
- 
-   ADD_EXECUTABLE(f32-vmulc-minmax-test test/f32-vmulc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vmulc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vmulc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vmulc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vmulc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vmulc-minmax-test COMMAND f32-vmulc-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vmulc-relu-test test/f32-vmulc-relu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vmulc-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vmulc-relu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vmulc-relu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vmulc-relu-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vmulc-relu-test COMMAND f32-vmulc-relu-test)
- 
-   ADD_EXECUTABLE(f32-vmulcaddc-minmax-test test/f32-vmulcaddc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vmulcaddc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vmulcaddc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vmulcaddc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vmulcaddc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
-   ADD_TEST(NAME f32-vmulcaddc-minmax-test COMMAND f32-vmulcaddc-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vneg-test test/f32-vneg.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vneg-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vneg-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vneg-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vneg-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vneg-test COMMAND f32-vneg-test)
- 
-   ADD_EXECUTABLE(f32-vrelu-test test/f32-vrelu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vrelu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrelu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrelu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vrelu-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-vrelu-test COMMAND f32-vrelu-test)
- 
-   ADD_EXECUTABLE(f32-vrndne-test test/f32-vrndne.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vrndne-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrndne-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrndne-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vrndne-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vrndne-test COMMAND f32-vrndne-test)
- 
-   ADD_EXECUTABLE(f32-vrndz-test test/f32-vrndz.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vrndz-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrndz-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrndz-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vrndz-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vrndz-test COMMAND f32-vrndz-test)
- 
-   ADD_EXECUTABLE(f32-vrndu-test test/f32-vrndu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vrndu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrndu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrndu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vrndu-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vrndu-test COMMAND f32-vrndu-test)
- 
-   ADD_EXECUTABLE(f32-vrndd-test test/f32-vrndd.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vrndd-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrndd-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrndd-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vrndd-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vrndd-test COMMAND f32-vrndd-test)
- 
-@@ -2304,91 +2271,91 @@
- 
-   ADD_EXECUTABLE(f32-vsigmoid-test test/f32-vsigmoid.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vsigmoid-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsigmoid-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vsigmoid-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vsigmoid-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vsigmoid-test COMMAND f32-vsigmoid-test)
- 
-   ADD_EXECUTABLE(f32-vsqr-test test/f32-vsqr.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vsqr-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsqr-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vsqr-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vsqr-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vsqr-test COMMAND f32-vsqr-test)
- 
-   ADD_EXECUTABLE(f32-vsqrdiff-test test/f32-vsqrdiff.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vsqrdiff-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsqrdiff-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vsqrdiff-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vsqrdiff-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vsqrdiff-test COMMAND f32-vsqrdiff-test)
- 
-   ADD_EXECUTABLE(f32-vsqrdiffc-test test/f32-vsqrdiffc.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vsqrdiffc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsqrdiffc-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vsqrdiffc-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vsqrdiffc-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vsqrdiffc-test COMMAND f32-vsqrdiffc-test)
- 
-   ADD_EXECUTABLE(f32-vsqrt-test test/f32-vsqrt.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vsqrt-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsqrt-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vsqrt-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vsqrt-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vsqrt-test COMMAND f32-vsqrt-test)
- 
-   ADD_EXECUTABLE(f32-vsub-test test/f32-vsub.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vsub-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsub-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vsub-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vsub-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-vsub-test COMMAND f32-vsub-test)
- 
-   ADD_EXECUTABLE(f32-vsub-minmax-test test/f32-vsub-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vsub-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsub-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vsub-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vsub-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vsub-minmax-test COMMAND f32-vsub-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vsub-relu-test test/f32-vsub-relu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vsub-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsub-relu-test PRIVATE fp16 pthreadpool gtest gtest_main microparams-init)
-+  TARGET_LINK_LIBRARIES(f32-vsub-relu-test PRIVATE gtest gtest_main microparams-init)
-   TARGET_LINK_LIBRARIES(f32-vsub-relu-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-vsub-relu-test COMMAND f32-vsub-relu-test)
- 
-   ADD_EXECUTABLE(f32-vsubc-test test/f32-vsubc.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vsubc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsubc-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vsubc-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vsubc-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-vsubc-test COMMAND f32-vsubc-test)
- 
-   ADD_EXECUTABLE(f32-vsubc-minmax-test test/f32-vsubc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vsubc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsubc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vsubc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vsubc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vsubc-minmax-test COMMAND f32-vsubc-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vsubc-relu-test test/f32-vsubc-relu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vsubc-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsubc-relu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vsubc-relu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vsubc-relu-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-vsubc-relu-test COMMAND f32-vsubc-relu-test)
- 
-   ADD_EXECUTABLE(f32-vrsubc-test test/f32-vrsubc.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vrsubc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrsubc-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrsubc-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vrsubc-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-vrsubc-test COMMAND f32-vrsubc-test)
- 
-   ADD_EXECUTABLE(f32-vrsubc-minmax-test test/f32-vrsubc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vrsubc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrsubc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrsubc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vrsubc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-vrsubc-minmax-test COMMAND f32-vrsubc-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vrsubc-relu-test test/f32-vrsubc-relu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vrsubc-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrsubc-relu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrsubc-relu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-vrsubc-relu-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-vrsubc-relu-test COMMAND f32-vrsubc-relu-test)
- 
-   ADD_EXECUTABLE(qc8-dwconv-unipass-minmax-fp32-test test/qc8-dwconv-unipass-minmax-fp32.cc)
-   TARGET_INCLUDE_DIRECTORIES(qc8-dwconv-unipass-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qc8-dwconv-unipass-minmax-fp32-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qc8-dwconv-unipass-minmax-fp32-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qc8-dwconv-unipass-minmax-fp32-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
-   ADD_TEST(NAME qc8-dwconv-unipass-minmax-fp32-test COMMAND qc8-dwconv-unipass-minmax-fp32-test)
- 
-@@ -2406,31 +2373,31 @@
- 
-   ADD_EXECUTABLE(qs8-dwconv-unipass-minmax-fp32-test test/qs8-dwconv-unipass-minmax-fp32.cc)
-   TARGET_INCLUDE_DIRECTORIES(qs8-dwconv-unipass-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-dwconv-unipass-minmax-fp32-test PRIVATE fp16 pthreadpool gtest gtest_main microparams-init)
-+  TARGET_LINK_LIBRARIES(qs8-dwconv-unipass-minmax-fp32-test PRIVATE gtest gtest_main microparams-init)
-   TARGET_LINK_LIBRARIES(qs8-dwconv-unipass-minmax-fp32-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
-   ADD_TEST(NAME qs8-dwconv-unipass-minmax-fp32-test COMMAND qs8-dwconv-unipass-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qs8-dwconv-unipass-minmax-rndnu-test test/qs8-dwconv-unipass-minmax-rndnu.cc)
-   TARGET_INCLUDE_DIRECTORIES(qs8-dwconv-unipass-minmax-rndnu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-dwconv-unipass-minmax-rndnu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-dwconv-unipass-minmax-rndnu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qs8-dwconv-unipass-minmax-rndnu-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
-   ADD_TEST(NAME qs8-dwconv-unipass-minmax-rndnu-test COMMAND qs8-dwconv-unipass-minmax-rndnu-test)
- 
-   ADD_EXECUTABLE(qs8-f32-vcvt-test test/f32-f16-vcvt.cc)
-   TARGET_INCLUDE_DIRECTORIES(qs8-f32-vcvt-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-f32-vcvt-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-f32-vcvt-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qs8-f32-vcvt-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME qs8-f32-vcvt-test COMMAND qs8-f32-vcvt-test)
- 
-   ADD_EXECUTABLE(qs8-gavgpool-minmax-fp32-test test/qs8-gavgpool-minmax-fp32.cc)
-   TARGET_INCLUDE_DIRECTORIES(qs8-gavgpool-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-gavgpool-minmax-fp32-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-gavgpool-minmax-fp32-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qs8-gavgpool-minmax-fp32-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME qs8-gavgpool-minmax-fp32-test COMMAND qs8-gavgpool-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qs8-gavgpool-minmax-rndnu-test test/qs8-gavgpool-minmax-rndnu.cc)
-   TARGET_INCLUDE_DIRECTORIES(qs8-gavgpool-minmax-rndnu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-gavgpool-minmax-rndnu-test PRIVATE fp16 pthreadpool gtest gtest_main microparams-init)
-+  TARGET_LINK_LIBRARIES(qs8-gavgpool-minmax-rndnu-test PRIVATE gtest gtest_main microparams-init)
-   TARGET_LINK_LIBRARIES(qs8-gavgpool-minmax-rndnu-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME qs8-gavgpool-minmax-rndnu-test COMMAND qs8-gavgpool-minmax-rndnu-test)
- 
-@@ -2461,81 +2428,81 @@
-   ADD_EXECUTABLE(qs8-requantization-test test/qs8-requantization.cc)
-   SET_TARGET_PROPERTIES(qs8-requantization-test PROPERTIES CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qs8-requantization-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-requantization-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-requantization-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qs8-requantization-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME qs8-requantization-test COMMAND qs8-requantization-test)
- 
-   ADD_EXECUTABLE(qs8-vadd-minmax-test test/qs8-vadd-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(qs8-vadd-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-vadd-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-vadd-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qs8-vadd-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME qs8-vadd-minmax-test COMMAND qs8-vadd-minmax-test)
- 
-   ADD_EXECUTABLE(qs8-vaddc-minmax-test test/qs8-vaddc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(qs8-vaddc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-vaddc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-vaddc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qs8-vaddc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME qs8-vaddc-minmax-test COMMAND qs8-vaddc-minmax-test)
- 
-   ADD_EXECUTABLE(qs8-vcvt-test test/qs8-vcvt.cc)
-   TARGET_INCLUDE_DIRECTORIES(qs8-vcvt-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-vcvt-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-vcvt-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qs8-vcvt-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME qs8-vcvt-test COMMAND qs8-vcvt-test)
- 
-   ADD_EXECUTABLE(qs8-vlrelu-test test/qs8-vlrelu.cc)
-   TARGET_INCLUDE_DIRECTORIES(qs8-vlrelu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-vlrelu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-vlrelu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qs8-vlrelu-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME qs8-vlrelu-test COMMAND qs8-vlrelu-test)
- 
-   ADD_EXECUTABLE(qs8-vmul-minmax-fp32-test test/qs8-vmul-minmax-fp32.cc)
-   SET_TARGET_PROPERTIES(qs8-vmul-minmax-fp32-test PROPERTIES CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qs8-vmul-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-vmul-minmax-fp32-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-vmul-minmax-fp32-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qs8-vmul-minmax-fp32-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME qs8-vmul-minmax-fp32-test COMMAND qs8-vmul-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qs8-vmulc-minmax-fp32-test test/qs8-vmulc-minmax-fp32.cc)
-   SET_TARGET_PROPERTIES(qs8-vmulc-minmax-fp32-test PROPERTIES CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qs8-vmulc-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-vmulc-minmax-fp32-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-vmulc-minmax-fp32-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qs8-vmulc-minmax-fp32-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME qs8-vmulc-minmax-fp32-test COMMAND qs8-vmulc-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qu8-avgpool-minmax-fp32-test test/qu8-avgpool-minmax-fp32.cc)
-   TARGET_INCLUDE_DIRECTORIES(qu8-avgpool-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-avgpool-minmax-fp32-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-avgpool-minmax-fp32-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qu8-avgpool-minmax-fp32-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME qu8-avgpool-minmax-fp32-test COMMAND qu8-avgpool-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qu8-dwconv-unipass-minmax-fp32-test test/qu8-dwconv-unipass-minmax-fp32.cc)
-   TARGET_INCLUDE_DIRECTORIES(qu8-dwconv-unipass-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-dwconv-unipass-minmax-fp32-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-dwconv-unipass-minmax-fp32-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qu8-dwconv-unipass-minmax-fp32-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
-   ADD_TEST(NAME qu8-dwconv-unipass-minmax-fp32-test COMMAND qu8-dwconv-unipass-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qu8-dwconv-unipass-minmax-rndnu-test test/qu8-dwconv-unipass-minmax-rndnu.cc)
-   TARGET_INCLUDE_DIRECTORIES(qu8-dwconv-unipass-minmax-rndnu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-dwconv-unipass-minmax-rndnu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-dwconv-unipass-minmax-rndnu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qu8-dwconv-unipass-minmax-rndnu-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
-   ADD_TEST(NAME qu8-dwconv-unipass-minmax-rndnu-test COMMAND qu8-dwconv-unipass-minmax-rndnu-test)
- 
-   ADD_EXECUTABLE(qu8-f32-vcvt-test test/f32-f16-vcvt.cc)
-   TARGET_INCLUDE_DIRECTORIES(qu8-f32-vcvt-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-f32-vcvt-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-f32-vcvt-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qu8-f32-vcvt-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME qu8-f32-vcvt-test COMMAND qu8-f32-vcvt-test)
- 
-   ADD_EXECUTABLE(qu8-gavgpool-minmax-fp32-test test/qu8-gavgpool-minmax-fp32.cc)
-   TARGET_INCLUDE_DIRECTORIES(qu8-gavgpool-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-gavgpool-minmax-fp32-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-gavgpool-minmax-fp32-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qu8-gavgpool-minmax-fp32-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME qu8-gavgpool-minmax-fp32-test COMMAND qu8-gavgpool-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qu8-gavgpool-minmax-rndnu-test test/qu8-gavgpool-minmax-rndnu.cc)
-   TARGET_INCLUDE_DIRECTORIES(qu8-gavgpool-minmax-rndnu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-gavgpool-minmax-rndnu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-gavgpool-minmax-rndnu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qu8-gavgpool-minmax-rndnu-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME qu8-gavgpool-minmax-rndnu-test COMMAND qu8-gavgpool-minmax-rndnu-test)
- 
-@@ -2566,161 +2533,161 @@
-   ADD_EXECUTABLE(qu8-requantization-test test/qu8-requantization.cc)
-   SET_TARGET_PROPERTIES(qu8-requantization-test PROPERTIES CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qu8-requantization-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-requantization-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-requantization-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qu8-requantization-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME qu8-requantization-test COMMAND qu8-requantization-test)
- 
-   ADD_EXECUTABLE(qu8-vadd-minmax-test test/qu8-vadd-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(qu8-vadd-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-vadd-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main microparams-init)
-+  TARGET_LINK_LIBRARIES(qu8-vadd-minmax-test PRIVATE gtest gtest_main microparams-init)
-   TARGET_LINK_LIBRARIES(qu8-vadd-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME qu8-vadd-minmax-test COMMAND qu8-vadd-minmax-test)
- 
-   ADD_EXECUTABLE(qu8-vaddc-minmax-test test/qu8-vaddc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(qu8-vaddc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-vaddc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-vaddc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qu8-vaddc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME qu8-vaddc-minmax-test COMMAND qu8-vaddc-minmax-test)
- 
-   ADD_EXECUTABLE(qu8-vcvt-test test/qu8-vcvt.cc)
-   TARGET_INCLUDE_DIRECTORIES(qu8-vcvt-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-vcvt-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-vcvt-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qu8-vcvt-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME qu8-vcvt-test COMMAND qu8-vcvt-test)
- 
-   ADD_EXECUTABLE(qu8-vlrelu-test test/qu8-vlrelu.cc)
-   TARGET_INCLUDE_DIRECTORIES(qu8-vlrelu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-vlrelu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-vlrelu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qu8-vlrelu-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME qu8-vlrelu-test COMMAND qu8-vlrelu-test)
- 
-   ADD_EXECUTABLE(qu8-vmul-minmax-fp32-test test/qu8-vmul-minmax-fp32.cc)
-   SET_TARGET_PROPERTIES(qu8-vmul-minmax-fp32-test PROPERTIES CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qu8-vmul-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-vmul-minmax-fp32-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-vmul-minmax-fp32-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qu8-vmul-minmax-fp32-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME qu8-vmul-minmax-fp32-test COMMAND qu8-vmul-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qu8-vmul-minmax-rndnu-test test/qu8-vmul-minmax-rndnu.cc)
-   SET_TARGET_PROPERTIES(qu8-vmul-minmax-rndnu-test PROPERTIES CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qu8-vmul-minmax-rndnu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-vmul-minmax-rndnu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-vmul-minmax-rndnu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qu8-vmul-minmax-rndnu-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME qu8-vmul-minmax-rndnu-test COMMAND qu8-vmul-minmax-rndnu-test)
- 
-   ADD_EXECUTABLE(qu8-vmulc-minmax-fp32-test test/qu8-vmulc-minmax-fp32.cc)
-   SET_TARGET_PROPERTIES(qu8-vmulc-minmax-fp32-test PROPERTIES CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qu8-vmulc-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-vmulc-minmax-fp32-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-vmulc-minmax-fp32-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qu8-vmulc-minmax-fp32-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME qu8-vmulc-minmax-fp32-test COMMAND qu8-vmulc-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qu8-vmulc-minmax-rndnu-test test/qu8-vmulc-minmax-rndnu.cc)
-   SET_TARGET_PROPERTIES(qu8-vmulc-minmax-rndnu-test PROPERTIES CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qu8-vmulc-minmax-rndnu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-vmulc-minmax-rndnu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-vmulc-minmax-rndnu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(qu8-vmulc-minmax-rndnu-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME qu8-vmulc-minmax-rndnu-test COMMAND qu8-vmulc-minmax-rndnu-test)
- 
-   ADD_EXECUTABLE(s16-rmaxabs-test test/s16-rmaxabs.cc)
-   TARGET_INCLUDE_DIRECTORIES(s16-rmaxabs-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(s16-rmaxabs-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(s16-rmaxabs-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(s16-rmaxabs-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME s16-rmaxabs-test COMMAND s16-rmaxabs-test)
- 
-   ADD_EXECUTABLE(s16-window-test test/s16-window.cc)
-   TARGET_INCLUDE_DIRECTORIES(s16-window-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(s16-window-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(s16-window-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(s16-window-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME s16-window-test COMMAND s16-window-test)
- 
-   ADD_EXECUTABLE(u32-filterbank-accumulate-test test/u32-filterbank-accumulate.cc)
-   TARGET_INCLUDE_DIRECTORIES(u32-filterbank-accumulate-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(u32-filterbank-accumulate-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(u32-filterbank-accumulate-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(u32-filterbank-accumulate-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME u32-filterbank-accumulate-test COMMAND u32-filterbank-accumulate-test)
- 
-   ADD_EXECUTABLE(u32-filterbank-subtract-test test/u32-filterbank-subtract.cc)
-   TARGET_INCLUDE_DIRECTORIES(u32-filterbank-subtract-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(u32-filterbank-subtract-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(u32-filterbank-subtract-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(u32-filterbank-subtract-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME u32-filterbank-subtract-test COMMAND u32-filterbank-subtract-test)
- 
-   ADD_EXECUTABLE(u32-vlog-test test/u32-vlog.cc)
-   TARGET_INCLUDE_DIRECTORIES(u32-vlog-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(u32-vlog-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(u32-vlog-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(u32-vlog-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME u32-vlog-test COMMAND u32-vlog-test)
- 
-   ADD_EXECUTABLE(i16-vlshift-test test/i16-vlshift.cc)
-   TARGET_INCLUDE_DIRECTORIES(i16-vlshift-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(i16-vlshift-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(i16-vlshift-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(i16-vlshift-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME i16-vlshift-test COMMAND i16-vlshift-test)
- 
-   ADD_EXECUTABLE(cs16-vsquareabs-test test/cs16-vsquareabs.cc)
-   TARGET_INCLUDE_DIRECTORIES(cs16-vsquareabs-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(cs16-vsquareabs-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(cs16-vsquareabs-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(cs16-vsquareabs-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME cs16-vsquareabs-test COMMAND cs16-vsquareabs-test)
- 
-   ADD_EXECUTABLE(cs16-bfly4-test test/cs16-bfly4.cc)
-   TARGET_INCLUDE_DIRECTORIES(cs16-bfly4-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(cs16-bfly4-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(cs16-bfly4-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(cs16-bfly4-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME cs16-bfly4-test COMMAND cs16-bfly4-test)
- 
-   ADD_EXECUTABLE(cs16-fftr-test test/cs16-fftr.cc)
-   TARGET_INCLUDE_DIRECTORIES(cs16-fftr-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(cs16-fftr-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(cs16-fftr-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(cs16-fftr-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME cs16-fftr-test COMMAND cs16-fftr-test)
- 
-   ADD_EXECUTABLE(s8-ibilinear-test test/s8-ibilinear.cc)
-   TARGET_INCLUDE_DIRECTORIES(s8-ibilinear-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(s8-ibilinear-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(s8-ibilinear-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(s8-ibilinear-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME s8-ibilinear-test COMMAND s8-ibilinear-test)
- 
-   ADD_EXECUTABLE(s8-maxpool-minmax-test test/s8-maxpool-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(s8-maxpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(s8-maxpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(s8-maxpool-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(s8-maxpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME s8-maxpool-minmax-test COMMAND s8-maxpool-minmax-test)
- 
-   ADD_EXECUTABLE(s8-vclamp-test test/s8-vclamp.cc)
-   TARGET_INCLUDE_DIRECTORIES(s8-vclamp-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(s8-vclamp-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(s8-vclamp-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(s8-vclamp-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME s8-vclamp-test COMMAND s8-vclamp-test)
- 
-   ADD_EXECUTABLE(u8-lut32norm-test test/u8-lut32norm.cc)
-   TARGET_INCLUDE_DIRECTORIES(u8-lut32norm-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(u8-lut32norm-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(u8-lut32norm-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(u8-lut32norm-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME u8-lut32norm-test COMMAND u8-lut32norm-test)
- 
-   ADD_EXECUTABLE(u8-ibilinear-test test/u8-ibilinear.cc)
-   TARGET_INCLUDE_DIRECTORIES(u8-ibilinear-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(u8-ibilinear-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(u8-ibilinear-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(u8-ibilinear-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME u8-ibilinear-test COMMAND u8-ibilinear-test)
- 
-   ADD_EXECUTABLE(u8-maxpool-minmax-test test/u8-maxpool-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(u8-maxpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(u8-maxpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main microparams-init)
-+  TARGET_LINK_LIBRARIES(u8-maxpool-minmax-test PRIVATE gtest gtest_main microparams-init)
-   TARGET_LINK_LIBRARIES(u8-maxpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME u8-maxpool-minmax-test COMMAND u8-maxpool-minmax-test)
- 
-   ADD_EXECUTABLE(u8-rmax-test test/u8-rmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(u8-rmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(u8-rmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(u8-rmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(u8-rmax-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME u8-rmax-test COMMAND u8-rmax-test)
- 
-   ADD_EXECUTABLE(u8-vclamp-test test/u8-vclamp.cc)
-   TARGET_INCLUDE_DIRECTORIES(u8-vclamp-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(u8-vclamp-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(u8-vclamp-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(u8-vclamp-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME u8-vclamp-test COMMAND u8-vclamp-test)
- 
-@@ -2762,25 +2729,25 @@
- 
-   ADD_EXECUTABLE(x32-zip-test test/x32-zip.cc)
-   TARGET_INCLUDE_DIRECTORIES(x32-zip-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(x32-zip-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(x32-zip-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(x32-zip-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME x32-zip-test COMMAND x32-zip-test)
- 
-   ADD_EXECUTABLE(x64-transpose-test test/x64-transpose.cc)
-   TARGET_INCLUDE_DIRECTORIES(x64-transpose-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(x64-transpose-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(x64-transpose-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(x64-transpose-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME x64-transpose-test COMMAND x64-transpose-test)
- 
-   ADD_EXECUTABLE(x8-lut-test test/x8-lut.cc)
-   TARGET_INCLUDE_DIRECTORIES(x8-lut-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(x8-lut-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(x8-lut-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(x8-lut-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME x8-lut-test COMMAND x8-lut-test)
- 
-   ADD_EXECUTABLE(x8-zip-test test/x8-zip.cc)
-   TARGET_INCLUDE_DIRECTORIES(x8-zip-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(x8-zip-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(x8-zip-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(x8-zip-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME x8-zip-test COMMAND x8-zip-test)
- 
-@@ -2842,12 +2809,12 @@
- 
-   ADD_EXECUTABLE(packing-test test/packing.cc)
-   TARGET_INCLUDE_DIRECTORIES(packing-test PRIVATE include src)
--  TARGET_LINK_LIBRARIES(packing-test PRIVATE fp16 gtest gtest_main pthreadpool)
-+  TARGET_LINK_LIBRARIES(packing-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(packing-test PRIVATE XNNPACK microkernel-utils operator-utils packing)
- 
-   ADD_EXECUTABLE(indirection-test test/indirection.cc)
-   TARGET_INCLUDE_DIRECTORIES(indirection-test PRIVATE include src)
--  TARGET_LINK_LIBRARIES(indirection-test PRIVATE gtest gtest_main pthreadpool)
-+  TARGET_LINK_LIBRARIES(indirection-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(indirection-test PRIVATE XNNPACK indirection)
- ENDIF()
- 
-@@ -2864,7 +2831,7 @@
-   ADD_LIBRARY(bench-utils STATIC bench/utils.cc)
-   TARGET_INCLUDE_DIRECTORIES(bench-utils PRIVATE .)
-   TARGET_INCLUDE_DIRECTORIES(bench-utils PUBLIC include src)
--  TARGET_LINK_LIBRARIES(bench-utils PRIVATE benchmark cpuinfo pthreadpool)
-+  TARGET_LINK_LIBRARIES(bench-utils PRIVATE benchmark cpuinfo)
-   TARGET_LINK_LIBRARIES(bench-utils PRIVATE hardware-config)
-   IF(XNNPACK_BUILD_LIBRARY)
-     TARGET_LINK_LIBRARIES(bench-utils PRIVATE logging memory)
-@@ -2873,134 +2840,134 @@
-   # ---[ Build accuracy microbenchmarks
-   ADD_EXECUTABLE(f16-exp-ulp-eval eval/f16-exp-ulp.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-exp-ulp-eval PRIVATE . src)
--  TARGET_LINK_LIBRARIES(f16-exp-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f16-exp-ulp-eval PRIVATE benchmark cpuinfo)
-   TARGET_LINK_LIBRARIES(f16-exp-ulp-eval PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(f16-expminus-ulp-eval eval/f16-expminus-ulp.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-expminus-ulp-eval PRIVATE . src)
--  TARGET_LINK_LIBRARIES(f16-expminus-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f16-expminus-ulp-eval PRIVATE benchmark cpuinfo)
-   TARGET_LINK_LIBRARIES(f16-expminus-ulp-eval PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(f16-expm1minus-ulp-eval eval/f16-expm1minus-ulp.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-expm1minus-ulp-eval PRIVATE . src)
--  TARGET_LINK_LIBRARIES(f16-expm1minus-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f16-expm1minus-ulp-eval PRIVATE benchmark cpuinfo)
-   TARGET_LINK_LIBRARIES(f16-expm1minus-ulp-eval PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(f16-sigmoid-ulp-eval eval/f16-sigmoid-ulp.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-sigmoid-ulp-eval PRIVATE . src)
--  TARGET_LINK_LIBRARIES(f16-sigmoid-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f16-sigmoid-ulp-eval PRIVATE benchmark cpuinfo)
-   TARGET_LINK_LIBRARIES(f16-sigmoid-ulp-eval PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(f16-sqrt-ulp-eval eval/f16-sqrt-ulp.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-sqrt-ulp-eval PRIVATE . src)
--  TARGET_LINK_LIBRARIES(f16-sqrt-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f16-sqrt-ulp-eval PRIVATE benchmark cpuinfo)
-   TARGET_LINK_LIBRARIES(f16-sqrt-ulp-eval PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(f32-exp-ulp-eval eval/f32-exp-ulp.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-exp-ulp-eval PRIVATE . src)
--  TARGET_LINK_LIBRARIES(f32-exp-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-exp-ulp-eval PRIVATE benchmark cpuinfo)
-   TARGET_LINK_LIBRARIES(f32-exp-ulp-eval PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(f32-expminus-ulp-eval eval/f32-expminus-ulp.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-expminus-ulp-eval PRIVATE . src)
--  TARGET_LINK_LIBRARIES(f32-expminus-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-expminus-ulp-eval PRIVATE benchmark cpuinfo)
-   TARGET_LINK_LIBRARIES(f32-expminus-ulp-eval PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(f32-expm1minus-ulp-eval eval/f32-expm1minus-ulp.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-expm1minus-ulp-eval PRIVATE . src)
--  TARGET_LINK_LIBRARIES(f32-expm1minus-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-expm1minus-ulp-eval PRIVATE benchmark cpuinfo)
-   TARGET_LINK_LIBRARIES(f32-expm1minus-ulp-eval PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(f32-extexp-ulp-eval eval/f32-extexp-ulp.cc)
-   SET_TARGET_PROPERTIES(f32-extexp-ulp-eval PROPERTIES CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(f32-extexp-ulp-eval PRIVATE . src)
--  TARGET_LINK_LIBRARIES(f32-extexp-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-extexp-ulp-eval PRIVATE benchmark cpuinfo)
-   TARGET_LINK_LIBRARIES(f32-extexp-ulp-eval PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(f32-sigmoid-ulp-eval eval/f32-sigmoid-ulp.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-sigmoid-ulp-eval PRIVATE . src)
--  TARGET_LINK_LIBRARIES(f32-sigmoid-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-sigmoid-ulp-eval PRIVATE benchmark cpuinfo)
-   TARGET_LINK_LIBRARIES(f32-sigmoid-ulp-eval PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(f32-sqrt-ulp-eval eval/f32-sqrt-ulp.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-sqrt-ulp-eval PRIVATE . src)
--  TARGET_LINK_LIBRARIES(f32-sqrt-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-sqrt-ulp-eval PRIVATE benchmark cpuinfo)
-   TARGET_LINK_LIBRARIES(f32-sqrt-ulp-eval PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(f32-tanh-ulp-eval eval/f32-tanh-ulp.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-tanh-ulp-eval PRIVATE . src)
--  TARGET_LINK_LIBRARIES(f32-tanh-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-tanh-ulp-eval PRIVATE benchmark cpuinfo)
-   TARGET_LINK_LIBRARIES(f32-tanh-ulp-eval PRIVATE bench-utils microkernels-all)
- 
-   # ---[ Build accuracy tests
-   ADD_EXECUTABLE(f16-sqrt-eval eval/f16-sqrt.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-sqrt-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f16-sqrt-eval PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-sqrt-eval PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-sqrt-eval PRIVATE hardware-config logging microkernels-all)
- 
-   ADD_EXECUTABLE(f16-f32-cvt-eval eval/f16-f32-cvt.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-f32-cvt-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f16-f32-cvt-eval PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-f32-cvt-eval PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-f32-cvt-eval PRIVATE hardware-config logging microkernels-all)
- 
-   ADD_EXECUTABLE(f32-f16-cvt-eval eval/f32-f16-cvt.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-f16-cvt-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f32-f16-cvt-eval PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-f16-cvt-eval PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-f16-cvt-eval PRIVATE hardware-config logging microkernels-all)
- 
-   ADD_EXECUTABLE(f32-qs8-cvt-eval eval/f32-qs8-cvt.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-qs8-cvt-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f32-qs8-cvt-eval PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-qs8-cvt-eval PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-qs8-cvt-eval PRIVATE hardware-config logging microkernels-all)
- 
-   ADD_EXECUTABLE(f32-qu8-cvt-eval eval/f32-qu8-cvt.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-qu8-cvt-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f32-qu8-cvt-eval PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-qu8-cvt-eval PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-qu8-cvt-eval PRIVATE hardware-config logging microkernels-all)
- 
-   ADD_EXECUTABLE(f32-exp-eval eval/f32-exp.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-exp-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f32-exp-eval PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-exp-eval PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-exp-eval PRIVATE hardware-config logging microkernels-all)
- 
-   ADD_EXECUTABLE(f32-expm1minus-eval eval/f32-expm1minus.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-expm1minus-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f32-expm1minus-eval PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-expm1minus-eval PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-expm1minus-eval PRIVATE hardware-config logging microkernels-all)
- 
-   ADD_EXECUTABLE(f32-expminus-eval eval/f32-expminus.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-expminus-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f32-expminus-eval PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-expminus-eval PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-expminus-eval PRIVATE hardware-config logging microkernels-all)
- 
-   ADD_EXECUTABLE(f32-roundne-eval eval/f32-roundne.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-roundne-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f32-roundne-eval PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-roundne-eval PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-roundne-eval PRIVATE hardware-config logging microkernels-all)
- 
-   ADD_EXECUTABLE(f32-roundd-eval eval/f32-roundd.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-roundd-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f32-roundd-eval PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-roundd-eval PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-roundd-eval PRIVATE hardware-config logging microkernels-all)
- 
-   ADD_EXECUTABLE(f32-roundu-eval eval/f32-roundu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-roundu-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f32-roundu-eval PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-roundu-eval PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-roundu-eval PRIVATE hardware-config logging microkernels-all)
- 
-   ADD_EXECUTABLE(f32-roundz-eval eval/f32-roundz.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-roundz-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f32-roundz-eval PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-roundz-eval PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-roundz-eval PRIVATE hardware-config logging microkernels-all)
- 
-   ADD_EXECUTABLE(u32-sqrt-eval eval/u32-sqrt.cc)
-   TARGET_INCLUDE_DIRECTORIES(u32-sqrt-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(u32-sqrt-eval PRIVATE pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(u32-sqrt-eval PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(u32-sqrt-eval PRIVATE hardware-config logging microkernels-all)
- 
-   ADD_EXECUTABLE(u64-sqrt-eval eval/u64-sqrt.cc)
-   TARGET_INCLUDE_DIRECTORIES(u64-sqrt-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(u64-sqrt-eval PRIVATE pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(u64-sqrt-eval PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(u64-sqrt-eval PRIVATE hardware-config logging microkernels-all)
- 
-   IF(XNNPACK_BUILD_LIBRARY)
-@@ -3030,7 +2997,7 @@
-       models/qu8-mobilenet-v2.cc)
-     SET_TARGET_PROPERTIES(bench-models PROPERTIES CXX_EXTENSIONS YES)
-     TARGET_INCLUDE_DIRECTORIES(bench-models PRIVATE .)
--    TARGET_LINK_LIBRARIES(bench-models PRIVATE fp16 benchmark)
-+    TARGET_LINK_LIBRARIES(bench-models PRIVATE benchmark)
-     TARGET_LINK_LIBRARIES(bench-models PRIVATE XNNPACK bench-utils)
- 
-     ADD_EXECUTABLE(end2end-bench bench/end2end.cc)
-@@ -3039,7 +3006,7 @@
- 
-     ADD_EXECUTABLE(f16-gemm-e2e-bench bench/f16-gemm-e2e.cc)
-     TARGET_INCLUDE_DIRECTORIES(f16-gemm-e2e-bench PRIVATE . src)
--    TARGET_LINK_LIBRARIES(f16-gemm-e2e-bench PRIVATE fp16 benchmark)
-+    TARGET_LINK_LIBRARIES(f16-gemm-e2e-bench PRIVATE benchmark)
-     TARGET_LINK_LIBRARIES(f16-gemm-e2e-bench PRIVATE XNNPACK bench-models bench-utils hardware-config logging microkernels-all microparams-init)
- 
-     ADD_EXECUTABLE(f32-dwconv-e2e-bench bench/f32-dwconv-e2e.cc)
-@@ -3049,33 +3016,33 @@
- 
-     ADD_EXECUTABLE(f32-gemm-e2e-bench bench/f32-gemm-e2e.cc)
-     TARGET_INCLUDE_DIRECTORIES(f32-gemm-e2e-bench PRIVATE . src)
--    TARGET_LINK_LIBRARIES(f32-gemm-e2e-bench PRIVATE fp16 benchmark)
-+    TARGET_LINK_LIBRARIES(f32-gemm-e2e-bench PRIVATE benchmark)
-     TARGET_LINK_LIBRARIES(f32-gemm-e2e-bench PRIVATE XNNPACK bench-models bench-utils hardware-config logging microkernels-all microparams-init)
- 
-     ADD_EXECUTABLE(qs8-dwconv-e2e-bench bench/qs8-dwconv-e2e.cc)
-     TARGET_INCLUDE_DIRECTORIES(qs8-dwconv-e2e-bench PRIVATE . src)
--    TARGET_LINK_LIBRARIES(qs8-dwconv-e2e-bench PRIVATE fp16 benchmark)
-+    TARGET_LINK_LIBRARIES(qs8-dwconv-e2e-bench PRIVATE benchmark)
-     TARGET_LINK_LIBRARIES(qs8-dwconv-e2e-bench PRIVATE XNNPACK bench-models bench-utils hardware-config logging microkernels-all microparams-init)
- 
-     ADD_EXECUTABLE(qs8-gemm-e2e-bench bench/qs8-gemm-e2e.cc)
-     TARGET_INCLUDE_DIRECTORIES(qs8-gemm-e2e-bench PRIVATE . src)
--    TARGET_LINK_LIBRARIES(qs8-gemm-e2e-bench PRIVATE fp16 benchmark)
-+    TARGET_LINK_LIBRARIES(qs8-gemm-e2e-bench PRIVATE benchmark)
-     TARGET_LINK_LIBRARIES(qs8-gemm-e2e-bench PRIVATE XNNPACK bench-models bench-utils hardware-config logging microkernels-all microparams-init)
- 
-     ADD_EXECUTABLE(qu8-gemm-e2e-bench bench/qu8-gemm-e2e.cc)
-     TARGET_INCLUDE_DIRECTORIES(qu8-gemm-e2e-bench PRIVATE . src)
--    TARGET_LINK_LIBRARIES(qu8-gemm-e2e-bench PRIVATE fp16 benchmark)
-+    TARGET_LINK_LIBRARIES(qu8-gemm-e2e-bench PRIVATE benchmark)
-     TARGET_LINK_LIBRARIES(qu8-gemm-e2e-bench PRIVATE XNNPACK bench-models bench-utils hardware-config logging microkernels-all microparams-init)
- 
-     ADD_EXECUTABLE(qu8-dwconv-e2e-bench bench/qu8-dwconv-e2e.cc)
-     TARGET_INCLUDE_DIRECTORIES(qu8-dwconv-e2e-bench PRIVATE . src)
--    TARGET_LINK_LIBRARIES(qu8-dwconv-e2e-bench PRIVATE fp16 benchmark)
-+    TARGET_LINK_LIBRARIES(qu8-dwconv-e2e-bench PRIVATE benchmark)
-     TARGET_LINK_LIBRARIES(qu8-dwconv-e2e-bench PRIVATE XNNPACK bench-models bench-utils hardware-config logging microkernels-all microparams-init)
- 
-     # ---[ Build operator-level microbenchmarks
-     ADD_EXECUTABLE(abs-bench bench/abs.cc)
-     TARGET_INCLUDE_DIRECTORIES(abs-bench PRIVATE .)
--    TARGET_LINK_LIBRARIES(abs-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
-+    TARGET_LINK_LIBRARIES(abs-bench PRIVATE XNNPACK benchmark bench-utils)
- 
-     ADD_EXECUTABLE(average-pooling-bench bench/average-pooling.cc)
-     TARGET_INCLUDE_DIRECTORIES(average-pooling-bench PRIVATE .)
-@@ -3083,11 +3050,11 @@
- 
-     ADD_EXECUTABLE(bankers-rounding-bench bench/bankers-rounding.cc)
-     TARGET_INCLUDE_DIRECTORIES(bankers-rounding-bench PRIVATE .)
--    TARGET_LINK_LIBRARIES(bankers-rounding-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
-+    TARGET_LINK_LIBRARIES(bankers-rounding-bench PRIVATE XNNPACK benchmark bench-utils)
- 
-     ADD_EXECUTABLE(ceiling-bench bench/ceiling.cc)
-     TARGET_INCLUDE_DIRECTORIES(ceiling-bench PRIVATE .)
--    TARGET_LINK_LIBRARIES(ceiling-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
-+    TARGET_LINK_LIBRARIES(ceiling-bench PRIVATE XNNPACK benchmark bench-utils)
- 
-     ADD_EXECUTABLE(channel-shuffle-bench bench/channel-shuffle.cc)
-     TARGET_INCLUDE_DIRECTORIES(channel-shuffle-bench PRIVATE .)
-@@ -3095,11 +3062,11 @@
- 
-     ADD_EXECUTABLE(convert-bench bench/convert.cc)
-     TARGET_INCLUDE_DIRECTORIES(convert-bench PRIVATE .)
--    TARGET_LINK_LIBRARIES(convert-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
-+    TARGET_LINK_LIBRARIES(convert-bench PRIVATE XNNPACK benchmark bench-utils)
- 
-     ADD_EXECUTABLE(convolution-bench bench/convolution.cc)
-     TARGET_INCLUDE_DIRECTORIES(convolution-bench PRIVATE .)
--    TARGET_LINK_LIBRARIES(convolution-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
-+    TARGET_LINK_LIBRARIES(convolution-bench PRIVATE XNNPACK benchmark bench-utils)
- 
-     ADD_EXECUTABLE(deconvolution-bench bench/deconvolution.cc)
-     TARGET_INCLUDE_DIRECTORIES(deconvolution-bench PRIVATE .)
-@@ -3107,23 +3074,23 @@
- 
-     ADD_EXECUTABLE(elu-bench bench/elu.cc)
-     TARGET_INCLUDE_DIRECTORIES(elu-bench PRIVATE .)
--    TARGET_LINK_LIBRARIES(elu-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
-+    TARGET_LINK_LIBRARIES(elu-bench PRIVATE XNNPACK benchmark bench-utils)
- 
-     ADD_EXECUTABLE(floor-bench bench/floor.cc)
-     TARGET_INCLUDE_DIRECTORIES(floor-bench PRIVATE .)
--    TARGET_LINK_LIBRARIES(floor-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
-+    TARGET_LINK_LIBRARIES(floor-bench PRIVATE XNNPACK benchmark bench-utils)
- 
-     ADD_EXECUTABLE(global-average-pooling-bench bench/global-average-pooling.cc)
-     TARGET_INCLUDE_DIRECTORIES(global-average-pooling-bench PRIVATE .)
--    TARGET_LINK_LIBRARIES(global-average-pooling-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
-+    TARGET_LINK_LIBRARIES(global-average-pooling-bench PRIVATE XNNPACK benchmark bench-utils)
- 
-     ADD_EXECUTABLE(hardswish-bench bench/hardswish.cc)
-     TARGET_INCLUDE_DIRECTORIES(hardswish-bench PRIVATE .)
--    TARGET_LINK_LIBRARIES(hardswish-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
-+    TARGET_LINK_LIBRARIES(hardswish-bench PRIVATE XNNPACK benchmark bench-utils)
- 
-     ADD_EXECUTABLE(leaky-relu-bench bench/leaky-relu.cc)
-     TARGET_INCLUDE_DIRECTORIES(leaky-relu-bench PRIVATE .)
--    TARGET_LINK_LIBRARIES(leaky-relu-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
-+    TARGET_LINK_LIBRARIES(leaky-relu-bench PRIVATE XNNPACK benchmark bench-utils)
- 
-     ADD_EXECUTABLE(max-pooling-bench bench/max-pooling.cc)
-     TARGET_INCLUDE_DIRECTORIES(max-pooling-bench PRIVATE .)
-@@ -3139,7 +3106,7 @@
- 
-     ADD_EXECUTABLE(sigmoid-bench bench/sigmoid.cc)
-     TARGET_INCLUDE_DIRECTORIES(sigmoid-bench PRIVATE .)
--    TARGET_LINK_LIBRARIES(sigmoid-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
-+    TARGET_LINK_LIBRARIES(sigmoid-bench PRIVATE XNNPACK benchmark bench-utils)
- 
-     ADD_EXECUTABLE(softmax-bench bench/softmax.cc)
-     TARGET_INCLUDE_DIRECTORIES(softmax-bench PRIVATE .)
-@@ -3161,378 +3128,378 @@
-   # ---[ Build microkernel-level microbenchmarks
-   ADD_EXECUTABLE(bf16-gemm-bench bench/bf16-gemm.cc)
-   TARGET_INCLUDE_DIRECTORIES(bf16-gemm-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(bf16-gemm-bench PRIVATE benchmark fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(bf16-gemm-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(bf16-gemm-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init packing)
- 
-   ADD_EXECUTABLE(f16-conv-hwc2chw-bench bench/f16-conv-hwc2chw.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-conv-hwc2chw-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f16-conv-hwc2chw-bench PRIVATE benchmark fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f16-conv-hwc2chw-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f16-conv-hwc2chw-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init packing)
- 
-   ADD_EXECUTABLE(f16-dwconv-bench bench/f16-dwconv.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-dwconv-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f16-dwconv-bench PRIVATE benchmark fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f16-dwconv-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f16-dwconv-bench PRIVATE bench-utils indirection hardware-config logging microkernels-all microparams-init packing)
- 
-   ADD_EXECUTABLE(f16-dwconv2d-chw-bench bench/f16-dwconv2d-chw.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-dwconv2d-chw-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f16-dwconv2d-chw-bench PRIVATE benchmark fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f16-dwconv2d-chw-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f16-dwconv2d-chw-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init packing)
- 
-   ADD_EXECUTABLE(f16-gavgpool-cw-bench bench/f16-gavgpool-cw.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-gavgpool-cw-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f16-gavgpool-cw-bench PRIVATE benchmark fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f16-gavgpool-cw-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f16-gavgpool-cw-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f16-gemm-bench bench/f16-gemm.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-gemm-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f16-gemm-bench PRIVATE benchmark fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f16-gemm-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f16-gemm-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init packing)
- 
-   ADD_EXECUTABLE(f16-igemm-bench bench/f16-igemm.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-igemm-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f16-igemm-bench PRIVATE benchmark fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f16-igemm-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f16-igemm-bench PRIVATE bench-utils indirection hardware-config logging microkernels-all microparams-init packing)
- 
-   ADD_EXECUTABLE(f16-raddstoreexpminusmax-bench bench/f16-raddstoreexpminusmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-raddstoreexpminusmax-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f16-raddstoreexpminusmax-bench PRIVATE benchmark fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f16-raddstoreexpminusmax-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f16-raddstoreexpminusmax-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f16-spmm-bench bench/f16-spmm.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-spmm-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f16-spmm-bench PRIVATE benchmark fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f16-spmm-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f16-spmm-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f16-velu-bench bench/f16-velu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-velu-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f16-velu-bench PRIVATE benchmark fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f16-velu-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f16-velu-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f16-vsigmoid-bench bench/f16-vsigmoid.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vsigmoid-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f16-vsigmoid-bench PRIVATE benchmark fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f16-vsigmoid-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f16-vsigmoid-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f16-vsqrt-bench bench/f16-vsqrt.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vsqrt-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f16-vsqrt-bench PRIVATE benchmark fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f16-vsqrt-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f16-vsqrt-bench PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(f16-f32-vcvt-bench bench/f16-f32-vcvt.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-f32-vcvt-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f16-f32-vcvt-bench PRIVATE benchmark fp16 pthreadpool)
-+  TARGET_LINK_LIBRARIES(f16-f32-vcvt-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f16-f32-vcvt-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f32-conv-hwc-bench bench/f32-conv-hwc.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-conv-hwc-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-conv-hwc-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-conv-hwc-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-conv-hwc-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init packing)
- 
-   ADD_EXECUTABLE(f32-conv-hwc2chw-bench bench/f32-conv-hwc2chw.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-conv-hwc2chw-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-conv-hwc2chw-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-conv-hwc2chw-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-conv-hwc2chw-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init packing)
- 
-   ADD_EXECUTABLE(f32-dwconv-bench bench/f32-dwconv.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-dwconv-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-dwconv-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-dwconv-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-dwconv-bench PRIVATE bench-utils indirection hardware-config logging microkernel-utils microkernels-all microparams-init packing)
- 
-   ADD_EXECUTABLE(f32-dwconv2d-chw-bench bench/f32-dwconv2d-chw.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-dwconv2d-chw-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-dwconv2d-chw-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-dwconv2d-chw-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-dwconv2d-chw-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f32-f16-vcvt-bench bench/f32-f16-vcvt.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-f16-vcvt-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-f16-vcvt-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-f16-vcvt-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-f16-vcvt-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f32-gavgpool-cw-bench bench/f32-gavgpool-cw.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-gavgpool-cw-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-gavgpool-cw-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-gavgpool-cw-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-gavgpool-cw-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f32-gemm-bench bench/f32-gemm.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-gemm-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-gemm-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-gemm-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-gemm-bench PRIVATE jit bench-utils hardware-config logging microkernels-all microparams-init packing)
- 
-   ADD_EXECUTABLE(f32-igemm-bench bench/f32-igemm.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-igemm-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-igemm-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-igemm-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-igemm-bench PRIVATE jit bench-utils indirection hardware-config logging microkernels-all microparams-init packing)
- 
-   ADD_EXECUTABLE(f32-im2col-gemm-bench bench/f32-im2col-gemm.cc src/im2col.c)
-   TARGET_INCLUDE_DIRECTORIES(f32-im2col-gemm-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-im2col-gemm-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-im2col-gemm-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-im2col-gemm-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init packing)
- 
-   ADD_EXECUTABLE(f32-qs8-vcvt-bench bench/f32-qs8-vcvt.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-qs8-vcvt-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-qs8-vcvt-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-qs8-vcvt-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-qs8-vcvt-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f32-qu8-vcvt-bench bench/f32-qu8-vcvt.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-qu8-vcvt-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-qu8-vcvt-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-qu8-vcvt-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-qu8-vcvt-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f32-raddstoreexpminusmax-bench bench/f32-raddstoreexpminusmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-raddstoreexpminusmax-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-raddstoreexpminusmax-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-raddstoreexpminusmax-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-raddstoreexpminusmax-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f32-raddexpminusmax-bench bench/f32-raddexpminusmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-raddexpminusmax-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-raddexpminusmax-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-raddexpminusmax-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-raddexpminusmax-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f32-raddextexp-bench bench/f32-raddextexp.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-raddextexp-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-raddextexp-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-raddextexp-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-raddextexp-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f32-vscaleexpminusmax-bench bench/f32-vscaleexpminusmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vscaleexpminusmax-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-vscaleexpminusmax-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-vscaleexpminusmax-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-vscaleexpminusmax-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f32-vscaleextexp-bench bench/f32-vscaleextexp.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vscaleextexp-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-vscaleextexp-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-vscaleextexp-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-vscaleextexp-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f32-rmax-bench bench/f32-rmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-rmax-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-rmax-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-rmax-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-rmax-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f32-spmm-bench bench/f32-spmm.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-spmm-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-spmm-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-spmm-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-spmm-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f32-softmax-bench bench/f32-softmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-softmax-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-softmax-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-softmax-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-softmax-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f32-velu-bench bench/f32-velu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-velu-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-velu-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-velu-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-velu-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f32-vhswish-bench bench/f32-vhswish.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vhswish-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-vhswish-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-vhswish-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-vhswish-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f32-vlrelu-bench bench/f32-vlrelu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vlrelu-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-vlrelu-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-vlrelu-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-vlrelu-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f32-vrelu-bench bench/f32-vrelu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vrelu-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-vrelu-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-vrelu-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-vrelu-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f32-vsigmoid-bench bench/f32-vsigmoid.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vsigmoid-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-vsigmoid-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-vsigmoid-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-vsigmoid-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(f32-vsqrt-bench bench/f32-vsqrt.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-vsqrt-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(f32-vsqrt-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(f32-vsqrt-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(f32-vsqrt-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(qs8-dwconv-bench bench/qs8-dwconv.cc)
-   TARGET_INCLUDE_DIRECTORIES(qs8-dwconv-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(qs8-dwconv-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(qs8-dwconv-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(qs8-dwconv-bench PRIVATE bench-utils indirection hardware-config logging microkernels-all microparams-init packing)
- 
-   ADD_EXECUTABLE(qs8-f32-vcvt-bench bench/qs8-f32-vcvt.cc)
-   TARGET_INCLUDE_DIRECTORIES(qs8-f32-vcvt-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(qs8-f32-vcvt-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(qs8-f32-vcvt-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(qs8-f32-vcvt-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(qs8-gemm-bench bench/qs8-gemm.cc)
-   TARGET_INCLUDE_DIRECTORIES(qs8-gemm-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(qs8-gemm-bench PRIVATE benchmark pthreadpool jit microparams-init)
-+  TARGET_LINK_LIBRARIES(qs8-gemm-bench PRIVATE benchmark jit microparams-init)
-   TARGET_LINK_LIBRARIES(qs8-gemm-bench PRIVATE bench-utils jit hardware-config logging microkernels-all microparams-init packing)
- 
-   ADD_EXECUTABLE(qs8-requantization-bench bench/qs8-requantization.cc)
-   SET_TARGET_PROPERTIES(qs8-requantization-bench PROPERTIES CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qs8-requantization-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(qs8-requantization-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(qs8-requantization-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(qs8-requantization-bench PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(qs8-vadd-bench bench/qs8-vadd.cc)
-   TARGET_INCLUDE_DIRECTORIES(qs8-vadd-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(qs8-vadd-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(qs8-vadd-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(qs8-vadd-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(qs8-vaddc-bench bench/qs8-vaddc.cc)
-   TARGET_INCLUDE_DIRECTORIES(qs8-vaddc-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(qs8-vaddc-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(qs8-vaddc-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(qs8-vaddc-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(qs8-vcvt-bench bench/qs8-vcvt.cc)
-   TARGET_INCLUDE_DIRECTORIES(qs8-vcvt-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(qs8-vcvt-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(qs8-vcvt-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(qs8-vcvt-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(qs8-vlrelu-bench bench/qs8-vlrelu.cc)
-   TARGET_INCLUDE_DIRECTORIES(qs8-vlrelu-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(qs8-vlrelu-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(qs8-vlrelu-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(qs8-vlrelu-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(qs8-vmul-bench bench/qs8-vmul.cc)
-   TARGET_INCLUDE_DIRECTORIES(qs8-vmul-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(qs8-vmul-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(qs8-vmul-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(qs8-vmul-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(qs8-vmulc-bench bench/qs8-vmulc.cc)
-   TARGET_INCLUDE_DIRECTORIES(qs8-vmulc-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(qs8-vmulc-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(qs8-vmulc-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(qs8-vmulc-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(qu8-f32-vcvt-bench bench/qu8-f32-vcvt.cc)
-   TARGET_INCLUDE_DIRECTORIES(qu8-f32-vcvt-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(qu8-f32-vcvt-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(qu8-f32-vcvt-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(qu8-f32-vcvt-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(qu8-gemm-bench bench/qu8-gemm.cc)
-   TARGET_INCLUDE_DIRECTORIES(qu8-gemm-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(qu8-gemm-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(qu8-gemm-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(qu8-gemm-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init packing)
- 
-   ADD_EXECUTABLE(qu8-requantization-bench bench/qu8-requantization.cc)
-   SET_TARGET_PROPERTIES(qu8-requantization-bench PROPERTIES CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qu8-requantization-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(qu8-requantization-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(qu8-requantization-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(qu8-requantization-bench PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(qu8-vadd-bench bench/qu8-vadd.cc)
-   TARGET_INCLUDE_DIRECTORIES(qu8-vadd-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(qu8-vadd-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(qu8-vadd-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(qu8-vadd-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(qu8-vaddc-bench bench/qu8-vaddc.cc)
-   TARGET_INCLUDE_DIRECTORIES(qu8-vaddc-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(qu8-vaddc-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(qu8-vaddc-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(qu8-vaddc-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(qu8-vcvt-bench bench/qu8-vcvt.cc)
-   TARGET_INCLUDE_DIRECTORIES(qu8-vcvt-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(qu8-vcvt-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(qu8-vcvt-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(qu8-vcvt-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(qu8-vlrelu-bench bench/qu8-vlrelu.cc)
-   TARGET_INCLUDE_DIRECTORIES(qu8-vlrelu-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(qu8-vlrelu-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(qu8-vlrelu-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(qu8-vlrelu-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(qu8-vmul-bench bench/qu8-vmul.cc)
-   TARGET_INCLUDE_DIRECTORIES(qu8-vmul-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(qu8-vmul-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(qu8-vmul-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(qu8-vmul-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(qu8-vmulc-bench bench/qu8-vmulc.cc)
-   TARGET_INCLUDE_DIRECTORIES(qu8-vmulc-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(qu8-vmulc-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(qu8-vmulc-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(qu8-vmulc-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(rounding-bench bench/rounding.cc)
-   TARGET_INCLUDE_DIRECTORIES(rounding-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(rounding-bench PRIVATE benchmark cpuinfo pthreadpool)
-+  TARGET_LINK_LIBRARIES(rounding-bench PRIVATE benchmark cpuinfo)
-   TARGET_LINK_LIBRARIES(rounding-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(s16-rmaxabs-bench bench/s16-rmaxabs.cc)
-   TARGET_INCLUDE_DIRECTORIES(s16-rmaxabs-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(s16-rmaxabs-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(s16-rmaxabs-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(s16-rmaxabs-bench PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(s16-window-bench bench/s16-window.cc)
-   TARGET_INCLUDE_DIRECTORIES(s16-window-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(s16-window-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(s16-window-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(s16-window-bench PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(u32-filterbank-accumulate-bench bench/u32-filterbank-accumulate.cc)
-   TARGET_INCLUDE_DIRECTORIES(u32-filterbank-accumulate-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(u32-filterbank-accumulate-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(u32-filterbank-accumulate-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(u32-filterbank-accumulate-bench PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(u32-filterbank-subtract-bench bench/u32-filterbank-subtract.cc)
-   TARGET_INCLUDE_DIRECTORIES(u32-filterbank-subtract-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(u32-filterbank-subtract-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(u32-filterbank-subtract-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(u32-filterbank-subtract-bench PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(u32-vlog-bench bench/u32-vlog.cc)
-   TARGET_INCLUDE_DIRECTORIES(u32-vlog-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(u32-vlog-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(u32-vlog-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(u32-vlog-bench PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(u64-u32-vsqrtshift-bench bench/u64-u32-vsqrtshift.cc)
-   TARGET_INCLUDE_DIRECTORIES(u64-u32-vsqrtshift-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(u64-u32-vsqrtshift-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(u64-u32-vsqrtshift-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(u64-u32-vsqrtshift-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(i16-vlshift-bench bench/i16-vlshift.cc)
-   TARGET_INCLUDE_DIRECTORIES(i16-vlshift-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(i16-vlshift-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(i16-vlshift-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(i16-vlshift-bench PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(cs16-vsquareabs-bench bench/cs16-vsquareabs.cc)
-   TARGET_INCLUDE_DIRECTORIES(cs16-vsquareabs-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(cs16-vsquareabs-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(cs16-vsquareabs-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(cs16-vsquareabs-bench PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(cs16-bfly4-bench bench/cs16-bfly4.cc)
-   TARGET_INCLUDE_DIRECTORIES(cs16-bfly4-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(cs16-bfly4-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(cs16-bfly4-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(cs16-bfly4-bench PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(cs16-fftr-bench bench/cs16-fftr.cc)
-   TARGET_INCLUDE_DIRECTORIES(cs16-fftr-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(cs16-fftr-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(cs16-fftr-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(cs16-fftr-bench PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(xx-transpose-bench bench/xx-transpose.cc)
-   TARGET_INCLUDE_DIRECTORIES(xx-transpose-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(xx-transpose-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(xx-transpose-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(xx-transpose-bench PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(x8-lut-bench bench/x8-lut.cc)
-   TARGET_INCLUDE_DIRECTORIES(x8-lut-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(x8-lut-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(x8-lut-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(x8-lut-bench PRIVATE bench-utils microkernels-all)
- 
-   ADD_EXECUTABLE(x8-transpose-bench bench/x32-transpose.cc)
-   TARGET_INCLUDE_DIRECTORIES(x8-transpose-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(x8-transpose-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(x8-transpose-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(x8-transpose-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(x16-transpose-bench bench/x16-transpose.cc)
-   TARGET_INCLUDE_DIRECTORIES(x16-transpose-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(x16-transpose-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(x16-transpose-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(x16-transpose-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(x24-transpose-bench bench/x16-transpose.cc)
-   TARGET_INCLUDE_DIRECTORIES(x24-transpose-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(x24-transpose-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(x24-transpose-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(x24-transpose-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(x32-transpose-bench bench/x32-transpose.cc)
-   TARGET_INCLUDE_DIRECTORIES(x32-transpose-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(x32-transpose-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(x32-transpose-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(x32-transpose-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- 
-   ADD_EXECUTABLE(x64-transpose-bench bench/x64-transpose.cc)
-   TARGET_INCLUDE_DIRECTORIES(x64-transpose-bench PRIVATE . include src)
--  TARGET_LINK_LIBRARIES(x64-transpose-bench PRIVATE benchmark pthreadpool)
-+  TARGET_LINK_LIBRARIES(x64-transpose-bench PRIVATE benchmark)
-   TARGET_LINK_LIBRARIES(x64-transpose-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
- ENDIF()
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:42:35 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:42:35 2024
Received: from localhost ([127.0.0.1]:51581 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx9t-0008HV-UM
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:35 -0500
Received: from mout02.posteo.de ([185.67.36.66]:51563)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx97-0008AS-Hc
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:49 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 20D00240105
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:41:14 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754074; bh=uUiv7+ui0AaFAyriYNuNBLb5IJgTDPBqVn+9osV2/rQ=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=Ti3oHA86mrZtPFKcql/b7IGaoaOX+lbNOdwDsGb0mMWJw+BCJL96VEBWJ22yJ1cbZ
 RM+CaD6eKW0vq9sr3ot84UbqaQBMESHEXbXOyro1Zz3b9a66a6rmstvhwZ328Cbk3a
 pP0fkQnsvW0QO6G0kL95HHYrXm6s56un5rcmvuqpAifXTXHJeaet7Z6ZHxe9sz6ADK
 2ONv09NyG2D3wPH46srCnjhmKejddLo7TuahvI1kFFT0HY1cCHzKvTL+tsPx4k0GlV
 KYvBBlrJ2t5pjqB0NC74KcsXcoZDtUXu6F0iM+RG5DhH94WjqNIdq2ZPG3hT1OJlXy
 S2oS7tWKD4CWw==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjV153Jkz6tyd;
 Wed,  6 Mar 2024 20:41:13 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 25/31] gnu: Add qnnpack-pytorch.
Date: Wed,  6 Mar 2024 19:40:31 +0000
Message-ID: <20240306194037.17992-25-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

This is an internal fork of QNNPACK in the PyTorch source tree.

* gnu/packages/machine-learning.scm (%python-pytorch-version): New variable.
(%python-pytorch-src): New variable.
(qnnpack-pytorch): New variable.
---
 gnu/packages/machine-learning.scm | 127 ++++++++++++++++++++++++++++++
 1 file changed, 127 insertions(+)

diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 0cab068fbd..eed649f118 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -4310,6 +4310,133 @@ (define-public ideep-pytorch
 PyTorch.")
     (license license:expat)))
 
+(define %python-pytorch-version "2.2.1")
+
+(define %python-pytorch-src
+  (origin
+    (method git-fetch)
+    (uri (git-reference
+          (url "https://github.com/pytorch/pytorch")
+          (commit (string-append "v" %python-pytorch-version))))
+    (file-name (git-file-name "python-pytorch" %python-pytorch-version))
+    (sha256
+     (base32
+      "03mm0pwwb5lxdsmmiw3cch9fijgjw81kmmc4ln9rlyazkm7l1r48"))
+    (modules '((guix build utils)))
+    (snippet
+     '(begin
+        ;; Bundled or unused code
+        (for-each
+         (lambda (dir)
+           (when (file-exists? dir)
+             (delete-file-recursively dir)))
+         '("android"
+           "aten/src/ATen/native/cuda/cutlass_extensions"
+           "aten/src/ATen/native/quantized/cpu/qnnpack"
+           "caffe2/mobile/contrib/libopencl-stub"
+           "caffe2/mobile/contrib/libvulkan-stub"
+           "third_party"))
+
+        ;; Autogenerated files
+        (for-each
+         delete-file
+         '("aten/src/ATen/nnapi/nnapi_wrapper.cpp"
+           "aten/src/ATen/nnapi/nnapi_wrapper.h"
+           "caffe2/mobile/contrib/ios/mpscnn/mpscnn_kernels.h"
+           "caffe2/proto/caffe2_legacy_pb2.pyi"
+           "caffe2/proto/caffe2_pb2.pyi"
+           "caffe2/proto/hsm_pb2.pyi"
+           "caffe2/proto/metanet_pb2.pyi"
+           "caffe2/proto/predictor_consts_pb2.pyi"
+           "caffe2/proto/prof_dag_pb2.pyi"
+           "caffe2/proto/torch_pb2.pyi"
+           ;; These files contain just lists of floating point values and
+           ;; might be as well hand-written.
+           ;; "test/cpp/api/init_baseline.h"
+           ;; "test/cpp/api/optim_baseline.h"
+           "test/mobile/test_upgrader_bytecode_table_example.cpp"
+           "torch/csrc/jit/mobile/upgrader_mobile.cpp"
+           "torch/csrc/jit/runtime/decomposition_registry_util.cpp"
+           "torch/csrc/jit/runtime/serialized_shape_function_registry.cpp"
+           "torch/csrc/jit/tensorexpr/external_functions_codegen.cpp"
+           "torch/csrc/jit/serialization/mobile_bytecode_generated.h"))
+        (delete-file-recursively ".github")
+        (for-each
+         (lambda (dir)
+           (for-each
+            delete-file
+            (find-files dir "\\.cu$")))
+         '("aten/src/ATen/native/transformers/cuda/flash_attn/kernels"
+           "aten/src/ATen/native/transformers/cuda/mem_eff_attention/kernels"))))))
+
+(define-public qnnpack-pytorch
+  (package
+    (inherit qnnpack)
+    (name "qnnpack-pytorch")
+    (version (string-append "pytorch-" %python-pytorch-version))
+    (source
+     (origin
+       (inherit %python-pytorch-src)
+       (patches '())
+       (modules '((guix build utils)
+                  (srfi srfi-26)
+                  (ice-9 ftw)))
+       (snippet
+        '(begin
+           (rename-file "aten/src/ATen/native/quantized/cpu/qnnpack"
+                        "../qnnpack")
+           (let ((outdir (getcwd)))
+             (chdir "..")
+             (rename-file outdir "dummy")
+             (rename-file "qnnpack" outdir)
+             (chdir outdir)
+             (delete-file-recursively "deps"))))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments qnnpack)
+       ((#:phases phases #~%standard-phases)
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'patch-cmake
+              (lambda _
+                (substitute* "CMakeLists.txt"
+                  (("project\\(.*" orig)
+                   (apply
+                    string-append
+                    orig "\n"
+                    (map (lambda (name)
+                           (string-append
+                            "option(" name " \"\" ON)\n"))
+                         '("USE_SYSTEM_CPUINFO" "USE_SYSTEM_FP16" "USE_SYSTEM_FXDIV"
+                           "USE_SYSTEM_PSIMD" "USE_SYSTEM_PTHREADPOOL"))))
+                  (("if.*SOURCE_DIR.*")
+                   "if(FALSE)\n")
+                  (("if\\(NOT TARGET (clog|gtest|benchmark).*")
+                   "if(FALSE)\n")
+                  (("target_link_libraries.*(fxdiv|psimd|fp16)\\).*")
+                   "")
+                  (("(target_link_libraries.*) fp16 (.*)" _ before after)
+                   (string-append before " " after)))))
+            (add-after 'unpack 'fix-cstring-include
+              (lambda _
+                (substitute* "include/pack_block_sparse.h"
+                  (("#include.*<vector>.*" orig)
+                   (string-append orig "\n#include <cstring>\n")))))
+            (add-after 'install 'install-missing-headers
+              (lambda _
+                (for-each
+                 (lambda (name)
+                   (install-file (string-append "../source/include/" name)
+                                 (string-append #$output "/include")))
+                 '("pack_block_sparse.h"
+                   "pytorch_qnnpack.h"
+                   "qnnpack_func.h"))
+                (copy-recursively
+                 "../source/src/qnnpack"
+                 (string-append #$output "/include/qnnpack"))))))
+       ;; Some tests occasionally fail on i686 due to floating point rounding.
+       ((#:tests? _ #t)
+        (not (string-prefix? "i686" (or (%current-target-system)
+                                        (%current-system)))))))))
+
 ;; Please also update python-torchvision when updating this package.
 (define-public python-pytorch
   (package
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:42:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:42:33 2024
Received: from localhost ([127.0.0.1]:51579 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx9q-0008HK-BP
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:33 -0500
Received: from mout02.posteo.de ([185.67.36.66]:56743)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx94-0008Ax-VM
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:46 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 58FC3240104
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:41:06 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754066; bh=N6+5RGf5GvicUL1q0VxXPMuZ1Cf8cJERB05lMmoCt2M=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=ormTPkXCB5CSzqDqVu/kNpmzKM8bDGUjdnO/nEAPJnZFcge/54gTQqf0XlgCyML1E
 jICyZiKWVemaW3pj8WGwlahXmWLzOGZL+XzH0DFtKOin5XQ7wTcKj+kDXNBVl3qUOZ
 9Au1d9xvFDgkzoj/X5sjjtkzItZSuvgACh3U+OywKu3Bx1IWhkshLxcMztUqhTvid0
 boA2cMr2Wf6cs86m8KozRQic5yTbOuqfCAh09vtdMTig6z1F3ZfcIDlzEfPMDnFf/g
 /y4Iz/s6TQav2p13qPoR7wxffyp9JUXZCVHZUNwoGHB2bg+/CJGbIiIf0PbRIc4pnd
 hv6JLxQGE8PuA==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTt0BWSz6tvk;
 Wed,  6 Mar 2024 20:41:06 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 21/31] gnu: Add foxi.
Date: Wed,  6 Mar 2024 19:40:27 +0000
Message-ID: <20240306194037.17992-21-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/machine-learning.scm (foxi): New variable.
* gnu/packages/patches/foxi-fix-build.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
---
 gnu/local.mk                              |  1 +
 gnu/packages/machine-learning.scm         | 29 ++++++++++++
 gnu/packages/patches/foxi-fix-build.patch | 55 +++++++++++++++++++++++
 3 files changed, 85 insertions(+)
 create mode 100644 gnu/packages/patches/foxi-fix-build.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index f81ea13031..c88c21ac60 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1204,6 +1204,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/foobillard++-pkg-config.patch		\
   %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch	\
   %D%/packages/patches/foomatic-filters-CVE-2015-8560.patch	\
+  %D%/packages/patches/foxi-fix-build.patch			\
   %D%/packages/patches/fp16-implicit-double.patch		\
   %D%/packages/patches/fp16-system-libraries.patch		\
   %D%/packages/patches/fpc-reproducibility.patch		\
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index c883af54d9..5c21e4ed46 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -4215,6 +4215,35 @@ (define-public tensorpipe
 the tensors contained therein.")
       (license license:bsd-3))))
 
+(define-public foxi
+  (let
+      ((commit "c278588e34e535f0bb8f00df3880d26928038cad")
+       (revision "0"))
+    (package
+      (name "foxi")
+      (version (git-version "1.4.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/houseroad/foxi")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0q3ssm5hmmvwfwx87mnnajbavzgpahybw6rpn8ysr9r095dwgq5a"))
+                (patches (search-patches "foxi-fix-build.patch"))))
+      (build-system cmake-build-system)
+      (arguments
+       (list
+        ;; No tests
+        #:tests? #f))
+      (home-page "https://github.com/houseroad/foxi")
+      (synopsis "ONNXIFI with Facebook Extension")
+      (description "ONNX Interface for Framework Integration is a cross-platform
+API for loading and executing ONNX graphs on optimized backends.  This package
+contains facebook extensions and is used by PyTorch.")
+      (license license:expat))))
+
 ;; Please also update python-torchvision when updating this package.
 (define-public python-pytorch
   (package
diff --git a/gnu/packages/patches/foxi-fix-build.patch b/gnu/packages/patches/foxi-fix-build.patch
new file mode 100644
index 0000000000..d82090ad38
--- /dev/null
+++ b/gnu/packages/patches/foxi-fix-build.patch
@@ -0,0 +1,55 @@
+Taken from https://github.com/houseroad/foxi/pull/25.
+
+diff --git a/foxi/onnxifi_dummy.c b/foxi/onnxifi_dummy.c
+index 2115af9..73e25fc 100644
+--- a/foxi/onnxifi_dummy.c
++++ b/foxi/onnxifi_dummy.c
+@@ -103,7 +103,10 @@ ONNXIFI_PUBLIC ONNXIFI_CHECK_RESULT onnxStatus ONNXIFI_ABI onnxInitGraph(
+     const void* onnxModel,
+     uint32_t weightCount,
+     const onnxTensorDescriptorV1* weightDescriptors,
+-    onnxGraph* graph) {
++    onnxGraph* graph,
++    uint32_t maxSeqLength,
++    void* deferredWeightReader) {
++
+   if (graph == NULL) {
+     return ONNXIFI_STATUS_INVALID_POINTER;
+   }
+@@ -215,6 +218,8 @@ ONNXIFI_PUBLIC ONNXIFI_CHECK_RESULT onnxStatus ONNXIFI_ABI
+ onnxWaitEventFor(onnxEvent event,
+                  uint32_t timeoutMs,
+                  onnxEventState* eventState,
+-                 onnxStatus* eventStatus) {
++		  onnxStatus* eventStatus,
++		  char* message,
++		  size_t* messageLength) {
+   return ONNXIFI_STATUS_SUCCESS;
+ }
+\ No newline at end of file
+diff --git a/foxi/onnxifi_wrapper.c b/foxi/onnxifi_wrapper.c
+index 98a9325..abe1440 100644
+--- a/foxi/onnxifi_wrapper.c
++++ b/foxi/onnxifi_wrapper.c
+@@ -761,7 +761,9 @@ ONNXIFI_PUBLIC onnxStatus ONNXIFI_ABI onnxInitGraph(
+     const void* onnxModel,
+     uint32_t weightsCount,
+     const onnxTensorDescriptorV1* weightDescriptors,
+-    onnxGraph* graph)
++    onnxGraph* graph,
++    uint32_t maxSeqLength,
++    void* deferredWeightReader)
+ {
+   if (graph == NULL) {
+     return ONNXIFI_STATUS_INVALID_POINTER;
+@@ -797,7 +799,9 @@ ONNXIFI_PUBLIC onnxStatus ONNXIFI_ABI onnxInitGraph(
+     onnxModel,
+     weightsCount,
+     weightDescriptors,
+-    &graph_wrapper->graph);
++    &graph_wrapper->graph,
++    maxSeqLength,
++    deferredWeightReader);
+   switch (status) {
+     case ONNXIFI_STATUS_SUCCESS:
+     case ONNXIFI_STATUS_FALLBACK:
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:42:30 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:42:30 2024
Received: from localhost ([127.0.0.1]:51577 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx9o-0008HE-G7
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:30 -0500
Received: from mout02.posteo.de ([185.67.36.66]:50447)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx94-0008Ar-Hy
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:45 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id E49BF240105
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:41:05 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754065; bh=5IGdkFKt71YUpvt65pGqiprIwp4EQF9iMQ9U5dR3yuc=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=QOa4wUUHzKb1g7rwEGUdi8R4LmDZczwNnKsnsqEnrFXL8xaRW0xhj9cscs5fb7zXU
 r5jzC06DYzAgao4QEPzvjuQ+NdgrOjE9ReVheLZ3Pd/Xq8rAH8rB4/Q4BQEfJ7edcQ
 8eazjokJtIKHM6wyc7jwiVUuXf5CCeDM89ULlS92zLLzxQMdK6/GES0VNTqEepzjeg
 sHxDBk1wNH1oBd+vSxbpIKOtlYnnsYAxjJC40bG0DDxVIP8ie5nRmkmN+lJLff587s
 kxm4ULn173mUhloApZlV12sP3oHrsIgG9TP4vKjHUw1729qfUL1RvDjx3Y7s586I3u
 +2HHvgiRnknrg==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTs0sKTz6twD;
 Wed,  6 Mar 2024 20:41:05 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 20/31] gnu: Add qnnpack.
Date: Wed,  6 Mar 2024 19:40:26 +0000
Message-ID: <20240306194037.17992-20-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/machine-learning.scm (qnnpack): New variable.
---
 gnu/packages/machine-learning.scm | 49 +++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 5825955d3e..c883af54d9 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -4024,6 +4024,55 @@ (define-public nnpack
       (supported-systems '("x86_64-linux" "armhf-linux" "aarch64-linux"))
       (license license:bsd-2))))
 
+(define-public qnnpack
+  (let ((commit "7d2a4e9931a82adc3814275b6219a03e24e36b4c")
+        (revision "0"))
+    (package
+      (name "qnnpack")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/pytorch/qnnpack")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1dgzriiaz9arsrfwhx42y4l74wbzn6xvdmllfb66v4pmvi5gpxc5"))
+         (modules '((guix build utils)))
+         (snippet
+          '(delete-file-recursively "deps"))))
+      (build-system cmake-build-system)
+      (arguments
+       (list
+        ;; The shared library build fails with linker errors, so we build the
+        ;; static library with -fPIC as in the bundled PyTorch version.
+        #:configure-flags
+        ''("-DQNNPACK_LIBRARY_TYPE=static"
+           "-DCMAKE_POSITION_INDEPENDENT_CODE=ON")
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'patch-cmake
+              (lambda _
+                (substitute* "CMakeLists.txt"
+                  (("IF.*SOURCE_DIR.*")
+                   "IF(FALSE)\n")
+                  (("IF\\(NOT TARGET.*")
+                   "IF(FALSE)\n")
+                  (("TARGET_LINK_LIBRARIES.*(fxdiv|psimd|fp16)\\).*")
+                   "")
+                  (("(TARGET_LINK_LIBRARIES.*) fp16 (.*)" _ before after)
+                   (string-append before " " after))))))))
+      (inputs (list clog cpuinfo fp16 fxdiv psimd pthreadpool))
+      (native-inputs (list googletest googlebenchmark))
+      (home-page "https://github.com/pytorch/qnnpack")
+      (synopsis "Quantized Neural Network PACKage")
+      (description "QNNPACK is a library for low-precision neural network
+inference.  It contains the implementation of common neural network operators
+on quantized 8-bit tensors.")
+      (license license:bsd-3))))
+
 (define-public xnnpack
   ;; There's currently no tag on this repo.
   (let ((version "0.0")
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:42:28 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:42:28 2024
Received: from localhost ([127.0.0.1]:51575 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx9m-0008H6-LH
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:28 -0500
Received: from mout02.posteo.de ([185.67.36.66]:40203)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx93-0008Ag-7a
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:44 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 9B79E240104
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:41:04 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754064; bh=9+Hnz6Fhu7wyWjP8S6SYKQNuWPWQUsZ23O2WjAE5i84=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=P7hTO4dT0mgrpGHl1hKiiWfxFGNOfZmlZ26Zttu61L3YwaosJ8qzg4qW2XxOX1tBQ
 tu3dEtT3r9ideO1KBU8n5wucJpA2pdP72rhEEdFHviQjU7kW05rW8g1bexWt/jBpL9
 pK7ygOZCkE4x2IsIu6G8CbdE3Sul5Y7M8Nj8sUvspYvjE+QBpupn4N/eUbr04pX++b
 5ID+fAcAbFrfYreEi3j4wXX4lSxT87DK6533MO5BYE+dF5a0p7kir/fwV98ZvrWhgQ
 VvJATxT0LSX6w7WtvguhhDQnfTwNZkzC73ZpoWcdPL16KAG/lKgrN8rfuzJmTUVjaM
 pgayUlpFJnRhw==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTr15Hvz6twD;
 Wed,  6 Mar 2024 20:41:04 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 19/31] gnu: Add fbgemm.
Date: Wed,  6 Mar 2024 19:40:25 +0000
Message-ID: <20240306194037.17992-19-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/machine-learning.scm (fbgemm): New variable.
* gnu/packages/patches/fbgemm-use-system-libraries.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/machine-learning.scm             | 31 ++++++++++
 .../patches/fbgemm-use-system-libraries.patch | 62 +++++++++++++++++++
 3 files changed, 94 insertions(+)
 create mode 100644 gnu/packages/patches/fbgemm-use-system-libraries.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index c290d91cbb..f81ea13031 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1172,6 +1172,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/fasthenry-spUtils.patch			\
   %D%/packages/patches/fasthenry-spSolve.patch			\
   %D%/packages/patches/fasthenry-spFactor.patch			\
+  %D%/packages/patches/fbgemm-use-system-libraries.patch	\
   %D%/packages/patches/fbreader-curl-7.62.patch		\
   %D%/packages/patches/fbreader-fix-icon.patch		\
   %D%/packages/patches/fenics-dolfin-algorithm.patch		\
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index a58ccfbd5c..5825955d3e 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -4100,6 +4100,37 @@ (define-public xnnpack-for-torch2
                                  "-DXNNPACK_BUILD_TESTS=FALSE" ;FIXME: see below
                                  "-DXNNPACK_BUILD_BENCHMARKS=FALSE"))))))
 
+(define-public fbgemm
+  (package
+    (name "fbgemm")
+    (version "0.6.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/pytorch/fbgemm")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0mw30v55aicqdbh3xwfj9p8f38nw70ks5cxiwpgwjsk0dylah9rf"))
+              (patches (search-patches "fbgemm-use-system-libraries.patch"))
+              (modules '((guix build utils)))
+              (snippet
+               '(delete-file-recursively "third_party"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:configure-flags
+      ''("-DFBGEMM_LIBRARY_TYPE=shared")))
+    (inputs (list asmjit cpuinfo))
+    (native-inputs (list pkg-config python googletest))
+    (home-page "https://github.com/pytorch/fbgemm")
+    (synopsis "Facebook GEneral Matrix Multiplication")
+    (description "Low-precision, high-performance matrix-matrix
+multiplications and convolution library for server-side inference.")
+    (supported-systems '("x86_64-linux"))
+    (license license:bsd-3)))
+
 (define-public tensorpipe
   (let ((commit "bb1473a4b38b18268e8693044afdb8635bc8351b")
         (revision "0"))
diff --git a/gnu/packages/patches/fbgemm-use-system-libraries.patch b/gnu/packages/patches/fbgemm-use-system-libraries.patch
new file mode 100644
index 0000000000..456bc3021c
--- /dev/null
+++ b/gnu/packages/patches/fbgemm-use-system-libraries.patch
@@ -0,0 +1,62 @@
+Use the asmjit and cpuinfo packages.
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 134523e..b88b0e7 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -235,7 +235,7 @@ message(WARNING "CMAKE_CXX_FLAGS_DEBUG is ${CMAKE_CXX_FLAGS_DEBUG}")
+ message(WARNING "CMAKE_CXX_FLAGS_RELEASE is ${CMAKE_CXX_FLAGS_RELEASE}")
+ message(WARNING "==========")
+ 
+-if(NOT TARGET asmjit)
++if(FALSE)
+   #Download asmjit from github if ASMJIT_SRC_DIR is not specified.
+   if(NOT DEFINED ASMJIT_SRC_DIR)
+     set(ASMJIT_SRC_DIR "${FBGEMM_SOURCE_DIR}/third_party/asmjit"
+@@ -264,7 +264,7 @@ if(NOT TARGET asmjit)
+   endif()
+ endif()
+ 
+-if(NOT TARGET cpuinfo)
++if(FALSE)
+   #Download cpuinfo from github if CPUINFO_SOURCE_DIR is not specified.
+   if(NOT DEFINED CPUINFO_SOURCE_DIR)
+     set(CPUINFO_SOURCE_DIR "${FBGEMM_SOURCE_DIR}/third_party/cpuinfo"
+@@ -340,9 +340,12 @@ target_include_directories(fbgemm BEFORE
+ target_link_libraries(fbgemm
+   $<BUILD_INTERFACE:asmjit>
+   $<BUILD_INTERFACE:cpuinfo>)
+-add_dependencies(fbgemm
+-  asmjit
+-  cpuinfo)
++
++find_package(asmjit)
++find_package(PkgConfig REQUIRED)
++pkg_check_modules(libcpuinfo REQUIRED IMPORTED_TARGET libcpuinfo)
++
++target_link_libraries(fbgemm asmjit::asmjit PkgConfig::libcpuinfo)
+ 
+ if(OpenMP_FOUND)
+   target_link_libraries(fbgemm OpenMP::OpenMP_CXX)
+diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
+index 2cffddf..bd4d409 100644
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -14,7 +14,7 @@ set(CMAKE_C_STANDARD 11)
+ set(CMAKE_C_EXTENSIONS OFF)
+ set(CMAKE_C_STANDARD_REQUIRED ON)
+ 
+-if(FBGEMM_BUILD_TESTS AND NOT TARGET gtest)
++if(FALSE)
+   #Download Googletest framework from github if
+   #GOOGLETEST_SOURCE_DIR is not specified.
+   if(NOT DEFINED GOOGLETEST_SOURCE_DIR)
+@@ -78,7 +78,7 @@ macro(add_gtest TESTNAME)
+     target_link_libraries(${TESTNAME} ${OpenMP_CXX_LIBRARIES})
+   endif()
+ 
+-  add_dependencies(${TESTNAME} gtest fbgemm)
++  add_dependencies(${TESTNAME} fbgemm)
+   add_test(${TESTNAME} ${TESTNAME})
+   set_target_properties(${TESTNAME} PROPERTIES FOLDER test)
+ endmacro()
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:42:26 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:42:26 2024
Received: from localhost ([127.0.0.1]:51573 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx9k-0008Gw-O7
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:26 -0500
Received: from mout02.posteo.de ([185.67.36.66]:51563)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx92-0008AS-9T
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:44 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id A74B6240104
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:41:03 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754063; bh=u9IN6g1bBWb+T8vu9lw7ovqE283Rw1wYXVxk26niHaA=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=ZCbQ5xPDCRS0doBlFTI0siofQHW9QVG0d7GRGYwbkMGv5NrClcJj7quykeo2RCh4v
 DPFZHYCEFl5IiFkHO2pr66AsyAFqCayhq7UjgIq3SABl9gWk+nhCsYE4qvr0YYSAEr
 6aNvRvI1Sqd21DdQfAdZ9ZyDTnzHiRLC1NGQF213B2oQYGcbSHuBFVpmhByfCRSMRg
 oFZG3ny8Qo6oFySOceWwMPv+98Zyj0U4uHwUKzoC/KrXA87woi7JIcJsaoxvGWjdTC
 mcLmScjb6fwrZB9VHcpdqlCdfzK/oL96YekxhcXdltp65VpcJG+RuL6a1Uq5sF7XJ/
 cTnSr6nFffwfA==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTq27kbz6txV;
 Wed,  6 Mar 2024 20:41:03 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 18/31] gnu: Add tensorpipe.
Date: Wed,  6 Mar 2024 19:40:24 +0000
Message-ID: <20240306194037.17992-18-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/machine-learning.scm (tensorpipe): New variable.
---
 gnu/packages/machine-learning.scm | 36 +++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 99d7399c12..a58ccfbd5c 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -90,6 +90,7 @@ (define-module (gnu packages machine-learning)
   #:use-module (gnu packages image-processing)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages jupyter)
+  #:use-module (gnu packages libevent)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
@@ -4099,6 +4100,41 @@ (define-public xnnpack-for-torch2
                                  "-DXNNPACK_BUILD_TESTS=FALSE" ;FIXME: see below
                                  "-DXNNPACK_BUILD_BENCHMARKS=FALSE"))))))
 
+(define-public tensorpipe
+  (let ((commit "bb1473a4b38b18268e8693044afdb8635bc8351b")
+        (revision "0"))
+    (package
+      (name "tensorpipe")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/pytorch/tensorpipe")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0sbpkd69rzybw2j89sjkf4s0j8vkk96d51bsps28894989a75j6v"))
+                (modules '((guix build utils)))
+                (snippet
+                 '(delete-file-recursively "third_party"))))
+      (build-system cmake-build-system)
+      (arguments
+       (list
+        #:configure-flags
+        ''("-DBUILD_SHARED_LIBS=ON")
+        ;; There are no tests
+        #:tests? #f))
+      (inputs (list libuv))
+      (native-inputs (list googletest pkg-config pybind11 libnop))
+      (home-page "https://github.com/pytorch/tensorpipe")
+      (synopsis "Tensor-aware point-to-point communication primitive for
+machine learning")
+      (description "TensorPipe provides a tensor-aware channel to transfer
+rich objects from one process to another while using the fastest transport for
+the tensors contained therein.")
+      (license license:bsd-3))))
+
 ;; Please also update python-torchvision when updating this package.
 (define-public python-pytorch
   (package
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:42:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:42:24 2024
Received: from localhost ([127.0.0.1]:51572 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx9k-0008Gl-JH
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:24 -0500
Received: from mout02.posteo.de ([185.67.36.66]:59041)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx94-00089w-Aq
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:42 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id E25A0240101
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:41:10 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754070; bh=hV2Wh0hPnsebT39k2mhsZkXRBsreaMSboiVTZ/wyt7w=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=bJNI4SOr1IvSIj0VTY9qNXFaWhmdSbpBytECMttd30eJ3siDEAHIdDM2XdzXibfsi
 pt5Jq5ueOrX+GUe0LFNTksT4+d8aheinrJZjplC67reX6kN66n2mgIQQaWRrd2+aae
 vuNYGVJdzc0QUuy/CF4H7LR5USbLTyjXOYvjm2pP/KN+XY+Y4YIa0KfcUr+76LpOJT
 kjT6KEp1lsiJJm0Ne88bvO9jJdh7BThhPs19r9mJejuh712XCGMYqiYxx/uS/6IgjQ
 HwmlPdvqDmedPkeYaeQKOMuAXIgxzjooXPFWhAIHnUCKeWyZIzw4VoVqc8iZCtfcEW
 oJS/awMLq5Uww==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTy0lrkz6tw3;
 Wed,  6 Mar 2024 20:41:10 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 23/31] gnu: xnnpack: Update to commit 51a9875.
Date: Wed,  6 Mar 2024 19:40:29 +0000
Message-ID: <20240306194037.17992-23-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

The tests which fail to build if building the shared library are removed by a
patch. Autogenerated files are removed by a snippet and generated in a
separate build phase.

* gnu/packages/machine-learning.scm (xnnpack): Update to commit 51a9875.
[source]: Add patch for tests. Add snippet to remove autogenerated files.
[arguments]: New modules and phase arguments.
[inputs]: Add clog and cpuinfo.
[native-inputs]: New field.
* gnu/packages/patches/xnnpack-remove-broken-tests.patch: Add file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/patches/xnnpack-system-libraries.patch: Update patch.
---
 gnu/local.mk                                  |    1 +
 gnu/packages/machine-learning.scm             |  106 +-
 .../patches/xnnpack-remove-broken-tests.patch |  335 ++
 .../patches/xnnpack-system-libraries.patch    | 4133 ++++++++++-------
 4 files changed, 2922 insertions(+), 1653 deletions(-)
 create mode 100644 gnu/packages/patches/xnnpack-remove-broken-tests.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index c88c21ac60..7b87bf93e5 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2198,6 +2198,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/xfce4-settings-defaults.patch		\
   %D%/packages/patches/xgboost-use-system-dmlc-core.patch       \
   %D%/packages/patches/xmonad-dynamic-linking.patch		\
+  %D%/packages/patches/xnnpack-remove-broken-tests.patch	\
   %D%/packages/patches/xnnpack-system-libraries.patch		\
   %D%/packages/patches/xnnpack-for-torch2-system-libraries.patch	\
   %D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch		\
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index bfad33eadb..35d96ac012 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -4077,41 +4077,109 @@ (define-public qnnpack
 (define-public xnnpack
   ;; There's currently no tag on this repo.
   (let ((version "0.0")
-        (commit "ae108ef49aa5623b896fc93d4298c49d1750d9ba")
-        (revision "2"))
+        (commit "51a987591a6fc9f0fc0707077f53d763ac132cbf")
+        (revision "3"))
     (package
       (name "xnnpack")
       (version (git-version version revision commit))
       (home-page "https://github.com/google/XNNPACK") ;fork of QNNPACK
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference (url home-page) (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "0q68q2jxiiiblx45q4337k13ppgh5vqjwrwznchcnpb8hawjj3zl"))
-                (patches (search-patches "xnnpack-system-libraries.patch"))))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference (url home-page) (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1rzby82xq8d0rl1d148yz88jh9cpsw5c8b2yw7yg39mi7qmr55rm"))
+         ;; Some tests fail to link as they use internal symbols, which are
+         ;; not included in the shared library.
+         ;; XXX: Additionally, these tests fail on i686 due to incorrect results:
+         ;; 171 - f32-vlrelu-test (Failed)
+         ;; 211 - qs8-gavgpool-minmax-fp32-test (Failed)
+         ;; 224 - qu8-avgpool-minmax-fp32-test (Failed)
+         ;; 228 - qu8-gavgpool-minmax-fp32-test (Failed)
+         ;; 263 - x32-packx-test (Failed)
+         (patches (search-patches "xnnpack-remove-broken-tests.patch"))
+         (modules '((guix build utils)
+                    (ice-9 ftw)
+                    (ice-9 textual-ports)
+                    (srfi srfi-26)))
+         (snippet
+          '(begin
+             ;; Remove autogenerated files
+             (for-each
+              (lambda (dir)
+                (let ((gendir (string-append "src/" dir "/gen")))
+                  (when (file-exists? gendir)
+                    (delete-file-recursively gendir)
+                    ;; Needed for the scripts generating the files
+                    (mkdir gendir))))
+              (scandir "src" (negate (cut member <> '("." "..")))))
+             (delete-file-recursively "google3")
+             (delete-file "cmake/microkernels.cmake")
+             ;; Additional autogenerated files which contain the string "Auto-generated file"
+             (for-each
+              (lambda (dir)
+                (for-each
+                 (lambda (name)
+                   (let ((path (string-append dir "/" name)))
+                     (when (call-with-input-file path
+                             (lambda (port)
+                               (string-contains
+                                (get-string-all port)
+                                "Auto-generated file")))
+                       (delete-file path))))
+                 (scandir dir (negate (cut member <> '("." ".."))))))
+              '("test" "bench" "eval" "models" "src/enums" "src/xnnpack"))))))
       (build-system cmake-build-system)
       (arguments
-       '(#:configure-flags '("-DXNNPACK_USE_SYSTEM_LIBS=YES"
+       (list
+        #:build-type "Release" ;; Debugging symbols require a lot of disk space
+        #:configure-flags ''("-DXNNPACK_USE_SYSTEM_LIBS=YES"
                              "-DBUILD_SHARED_LIBS=ON"
+                             "-DCMAKE_POSITION_INDEPENDENT_CODE=ON"
                              "-DXNNPACK_LIBRARY_TYPE=shared"
-                             "-DXNNPACK_BUILD_TESTS=FALSE" ;FIXME: see below
                              "-DXNNPACK_BUILD_BENCHMARKS=FALSE")
-
-         ;; FIXME: Building tests leads to a CMake error:
-         ;;
-         ;;   ADD_LIBRARY cannot create target "all_microkernels" because
-         ;;   another target with the same name already exists.
-         #:tests? #f))
+        #:modules '((ice-9 ftw)
+                    (guix build cmake-build-system)
+                    (guix build utils))
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'fix-cmake
+              (lambda _
+                (substitute* "CMakeLists.txt"
+                  (("TARGET_INCLUDE_DIRECTORIES\\((pthreadpool|cpuinfo).*") "")
+                  ((".*IF\\(NOT TARGET gtest\\).*")
+                   "IF(FALSE)\n")
+                  (("SET\\(CMAKE_CXX_STANDARD 11\\)")
+                   "SET(CMAKE_CXX_STANDARD 14)")
+                  (("AMD64") "x86_64"))))
+            (add-after 'patch-source-shebangs 'generate-files
+              (lambda _
+                (for-each
+                 (lambda (name)
+                   (when (and (string-prefix? "generate" name)
+                              (string-suffix? ".sh" name)
+                              (not (equal? "generate-amalgamation.sh" name)))
+                     (display (string-append name "\n"))
+                     (invoke "bash" (string-append "scripts/" name))))
+                 (scandir "scripts"))
+                ;; These need to run after the above scripts
+                (display "Remaining files\n")
+                (invoke "python3" "tools/update-microkernels.py")
+                (substitute* "tools/amalgamate-microkernels.py"
+                  (("BUILD") "BUILD.bazel"))
+                (invoke "bash" "scripts/generate-amalgamation.sh"))))))
       (inputs
-       (list cpuinfo
+       (list clog
+             cpuinfo
              pthreadpool
              googletest
              googlebenchmark
              fxdiv
              fp16
              psimd))
+      (native-inputs (list python-pyyaml python-wrapper))
       (synopsis "Optimized floating-point neural network inference operators")
       (description
        "XNNPACK is a highly optimized library of floating-point neural network
diff --git a/gnu/packages/patches/xnnpack-remove-broken-tests.patch b/gnu/packages/patches/xnnpack-remove-broken-tests.patch
new file mode 100644
index 0000000000..529dd2590c
--- /dev/null
+++ b/gnu/packages/patches/xnnpack-remove-broken-tests.patch
@@ -0,0 +1,335 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 95df99eae..ab57d5efa 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -978,16 +978,6 @@ IF(XNNPACK_BUILD_TESTS)
+     TARGET_LINK_LIBRARIES(add-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
+     ADD_TEST(NAME add-nd-eager-test COMMAND add-nd-eager-test)
+ 
+-    ADD_EXECUTABLE(argmax-pooling-nhwc-test test/argmax-pooling-nhwc.cc)
+-    TARGET_INCLUDE_DIRECTORIES(argmax-pooling-nhwc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(argmax-pooling-nhwc-test PRIVATE XNNPACK gtest gtest_main)
+-    ADD_TEST(NAME argmax-pooling-nhwc-test COMMAND argmax-pooling-nhwc-test)
+-
+-    ADD_EXECUTABLE(average-pooling-nhwc-test test/average-pooling-nhwc.cc)
+-    TARGET_INCLUDE_DIRECTORIES(average-pooling-nhwc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(average-pooling-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
+-    ADD_TEST(NAME average-pooling-nhwc-test COMMAND average-pooling-nhwc-test)
+-
+     ADD_EXECUTABLE(bankers-rounding-nc-test test/bankers-rounding-nc.cc)
+     TARGET_INCLUDE_DIRECTORIES(bankers-rounding-nc-test PRIVATE src test)
+     TARGET_LINK_LIBRARIES(bankers-rounding-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
+@@ -1066,11 +1056,6 @@ IF(XNNPACK_BUILD_TESTS)
+     TARGET_LINK_LIBRARIES(copy-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME copy-nc-eager-test COMMAND copy-nc-eager-test)
+ 
+-    ADD_EXECUTABLE(deconvolution-nhwc-test test/deconvolution-nhwc.cc)
+-    TARGET_INCLUDE_DIRECTORIES(deconvolution-nhwc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(deconvolution-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
+-    ADD_TEST(NAME deconvolution-nhwc-test COMMAND deconvolution-nhwc-test)
+-
+     ADD_EXECUTABLE(depth-to-space-nchw2nhwc-test test/depth-to-space-nchw2nhwc.cc)
+     TARGET_INCLUDE_DIRECTORIES(depth-to-space-nchw2nhwc-test PRIVATE src test)
+     TARGET_LINK_LIBRARIES(depth-to-space-nchw2nhwc-test PRIVATE XNNPACK gtest gtest_main)
+@@ -1116,11 +1101,6 @@ IF(XNNPACK_BUILD_TESTS)
+     TARGET_LINK_LIBRARIES(floor-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
+     ADD_TEST(NAME floor-nc-eager-test COMMAND floor-nc-eager-test)
+ 
+-    ADD_EXECUTABLE(global-average-pooling-nwc-test test/global-average-pooling-nwc.cc)
+-    TARGET_INCLUDE_DIRECTORIES(global-average-pooling-nwc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(global-average-pooling-nwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
+-    ADD_TEST(NAME global-average-pooling-nwc-test COMMAND global-average-pooling-nwc-test)
+-
+     ADD_EXECUTABLE(global-average-pooling-ncw-test test/global-average-pooling-ncw.cc)
+     TARGET_INCLUDE_DIRECTORIES(global-average-pooling-ncw-test PRIVATE src test)
+     TARGET_LINK_LIBRARIES(global-average-pooling-ncw-test PRIVATE XNNPACK fp16 gtest gtest_main)
+@@ -1146,11 +1126,6 @@ IF(XNNPACK_BUILD_TESTS)
+     TARGET_LINK_LIBRARIES(leaky-relu-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
+     ADD_TEST(NAME leaky-relu-nc-eager-test COMMAND leaky-relu-nc-eager-test)
+ 
+-    ADD_EXECUTABLE(max-pooling-nhwc-test test/max-pooling-nhwc.cc)
+-    TARGET_INCLUDE_DIRECTORIES(max-pooling-nhwc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(max-pooling-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
+-    ADD_TEST(NAME max-pooling-nhwc-test COMMAND max-pooling-nhwc-test)
+-
+     ADD_EXECUTABLE(maximum-nd-test test/maximum-nd.cc)
+     TARGET_INCLUDE_DIRECTORIES(maximum-nd-test PRIVATE src test)
+     TARGET_LINK_LIBRARIES(maximum-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
+@@ -1191,11 +1166,6 @@ IF(XNNPACK_BUILD_TESTS)
+     TARGET_LINK_LIBRARIES(negate-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
+     ADD_TEST(NAME negate-nc-eager-test COMMAND negate-nc-eager-test)
+ 
+-    ADD_EXECUTABLE(prelu-nc-test test/prelu-nc.cc)
+-    TARGET_INCLUDE_DIRECTORIES(prelu-nc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(prelu-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
+-    ADD_TEST(NAME prelu-nc-test COMMAND prelu-nc-test)
+-
+     ADD_EXECUTABLE(resize-bilinear-nhwc-test test/resize-bilinear-nhwc.cc)
+     TARGET_INCLUDE_DIRECTORIES(resize-bilinear-nhwc-test PRIVATE src test)
+     TARGET_LINK_LIBRARIES(resize-bilinear-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
+@@ -1312,16 +1282,6 @@ IF(XNNPACK_BUILD_TESTS)
+     TARGET_LINK_LIBRARIES(fusion-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME fusion-test COMMAND fusion-test)
+ 
+-    ADD_EXECUTABLE(memory-planner-test test/memory-planner-test.cc)
+-    TARGET_INCLUDE_DIRECTORIES(memory-planner-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(memory-planner-test PRIVATE XNNPACK gtest gtest_main)
+-    ADD_TEST(NAME memory-planner-test COMMAND memory-planner-test)
+-
+-    ADD_EXECUTABLE(subgraph-fp16-test test/subgraph-fp16.cc)
+-    TARGET_INCLUDE_DIRECTORIES(subgraph-fp16-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(subgraph-fp16-test PRIVATE XNNPACK gtest gtest_main)
+-    ADD_TEST(NAME subgraph-fp16-test COMMAND subgraph-fp16-test)
+-
+     ADD_EXECUTABLE(subgraph-nchw-test test/subgraph-nchw.cc)
+     TARGET_INCLUDE_DIRECTORIES(subgraph-nchw-test PRIVATE src test)
+     TARGET_LINK_LIBRARIES(subgraph-nchw-test PRIVATE XNNPACK gtest gtest_main)
+@@ -1347,226 +1307,6 @@ IF(XNNPACK_BUILD_TESTS)
+     TARGET_INCLUDE_DIRECTORIES(argmax-pooling-2d-test PRIVATE src test)
+     TARGET_LINK_LIBRARIES(argmax-pooling-2d-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME argmax-pooling-2d-test COMMAND argmax-pooling-2d-test)
+-
+-    ADD_EXECUTABLE(average-pooling-2d-test test/average-pooling-2d.cc)
+-    TARGET_INCLUDE_DIRECTORIES(average-pooling-2d-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(average-pooling-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME average-pooling-2d-test COMMAND average-pooling-2d-test)
+-
+-    ADD_EXECUTABLE(bankers-rounding-test test/bankers-rounding.cc)
+-    TARGET_INCLUDE_DIRECTORIES(bankers-rounding-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(bankers-rounding-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME bankers-rounding-test COMMAND bankers-rounding-test)
+-
+-    ADD_EXECUTABLE(ceiling-test test/ceiling.cc)
+-    TARGET_INCLUDE_DIRECTORIES(ceiling-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(ceiling-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME ceiling-test COMMAND ceiling-test)
+-
+-    ADD_EXECUTABLE(clamp-test test/clamp.cc)
+-    TARGET_INCLUDE_DIRECTORIES(clamp-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(clamp-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME clamp-test COMMAND clamp-test)
+-
+-    ADD_EXECUTABLE(concatenate2-test test/concatenate2.cc)
+-    TARGET_INCLUDE_DIRECTORIES(concatenate2-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(concatenate2-test PRIVATE XNNPACK gtest gtest_main subgraph)
+-    ADD_TEST(NAME concatenate2-test COMMAND concatenate2-test)
+-
+-    ADD_EXECUTABLE(concatenate3-test test/concatenate3.cc)
+-    TARGET_INCLUDE_DIRECTORIES(concatenate3-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(concatenate3-test PRIVATE XNNPACK gtest gtest_main subgraph)
+-    ADD_TEST(NAME concatenate3-test COMMAND concatenate3-test)
+-
+-    ADD_EXECUTABLE(concatenate4-test test/concatenate4.cc)
+-    TARGET_INCLUDE_DIRECTORIES(concatenate4-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(concatenate4-test PRIVATE XNNPACK gtest gtest_main subgraph)
+-    ADD_TEST(NAME concatenate4-test COMMAND concatenate4-test)
+-
+-    ADD_EXECUTABLE(convert-test test/convert.cc)
+-    TARGET_INCLUDE_DIRECTORIES(convert-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(convert-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME convert-test COMMAND convert-test)
+-
+-    ADD_EXECUTABLE(convolution-2d-test test/convolution-2d.cc)
+-    SET_TARGET_PROPERTIES(convolution-2d-test PROPERTIES CXX_EXTENSIONS YES)
+-    TARGET_INCLUDE_DIRECTORIES(convolution-2d-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(convolution-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph convolution-test-helpers)
+-    ADD_TEST(NAME convolution-2d-test COMMAND convolution-2d-test)
+-
+-    ADD_EXECUTABLE(copy-test test/copy.cc)
+-    TARGET_INCLUDE_DIRECTORIES(copy-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(copy-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME copy-test COMMAND copy-test)
+-
+-    ADD_EXECUTABLE(deconvolution-2d-test test/deconvolution-2d.cc)
+-    SET_TARGET_PROPERTIES(deconvolution-2d-test PROPERTIES CXX_EXTENSIONS YES)
+-    TARGET_INCLUDE_DIRECTORIES(deconvolution-2d-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(deconvolution-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph convolution-test-helpers)
+-    ADD_TEST(NAME deconvolution-2d-test COMMAND deconvolution-2d-test)
+-
+-    ADD_EXECUTABLE(depth-to-space-test test/depth-to-space.cc)
+-    TARGET_INCLUDE_DIRECTORIES(depth-to-space-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(depth-to-space-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME depth-to-space-test COMMAND depth-to-space-test)
+-
+-    ADD_EXECUTABLE(depthwise-convolution-2d-test test/depthwise-convolution-2d.cc)
+-    SET_TARGET_PROPERTIES(depthwise-convolution-2d-test PROPERTIES CXX_EXTENSIONS YES)
+-    TARGET_INCLUDE_DIRECTORIES(depthwise-convolution-2d-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(depthwise-convolution-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph convolution-test-helpers)
+-    ADD_TEST(NAME depthwise-convolution-2d-test COMMAND depthwise-convolution-2d-test)
+-
+-    ADD_EXECUTABLE(divide2-test test/divide2.cc)
+-    TARGET_INCLUDE_DIRECTORIES(divide2-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(divide2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME divide2-test COMMAND divide2-test)
+-
+-    ADD_EXECUTABLE(elu-test test/elu.cc)
+-    TARGET_INCLUDE_DIRECTORIES(elu-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(elu-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME elu-test COMMAND elu-test)
+-
+-    ADD_EXECUTABLE(even-split2-test test/even-split2.cc)
+-    TARGET_INCLUDE_DIRECTORIES(even-split2-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(even-split2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME even-split2-test COMMAND even-split2-test)
+-
+-    ADD_EXECUTABLE(even-split3-test test/even-split3.cc)
+-    TARGET_INCLUDE_DIRECTORIES(even-split3-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(even-split3-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME even-split3-test COMMAND even-split3-test)
+-
+-    ADD_EXECUTABLE(even-split4-test test/even-split4.cc)
+-    TARGET_INCLUDE_DIRECTORIES(even-split4-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(even-split4-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME even-split4-test COMMAND even-split4-test)
+-
+-    ADD_EXECUTABLE(floor-test test/floor.cc)
+-    TARGET_INCLUDE_DIRECTORIES(floor-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(floor-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME floor-test COMMAND floor-test)
+-
+-    ADD_EXECUTABLE(fully-connected-test test/fully-connected.cc)
+-    TARGET_INCLUDE_DIRECTORIES(fully-connected-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(fully-connected-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME fully-connected-test COMMAND fully-connected-test)
+-
+-    ADD_EXECUTABLE(global-average-pooling-1d-test test/global-average-pooling-1d.cc)
+-    TARGET_INCLUDE_DIRECTORIES(global-average-pooling-1d-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(global-average-pooling-1d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME global-average-pooling-1d-test COMMAND global-average-pooling-1d-test)
+-
+-    ADD_EXECUTABLE(global-average-pooling-2d-test test/global-average-pooling-2d.cc)
+-    TARGET_INCLUDE_DIRECTORIES(global-average-pooling-2d-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(global-average-pooling-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME global-average-pooling-2d-test COMMAND global-average-pooling-2d-test)
+-
+-    ADD_EXECUTABLE(hardswish-test test/hardswish.cc)
+-    TARGET_INCLUDE_DIRECTORIES(hardswish-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(hardswish-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME hardswish-test COMMAND hardswish-test)
+-
+-    ADD_EXECUTABLE(leaky-relu-test test/leaky-relu.cc)
+-    TARGET_INCLUDE_DIRECTORIES(leaky-relu-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(leaky-relu-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME leaky-relu-test COMMAND leaky-relu-test)
+-
+-    ADD_EXECUTABLE(max-pooling-2d-test test/max-pooling-2d.cc)
+-    TARGET_INCLUDE_DIRECTORIES(max-pooling-2d-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(max-pooling-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME max-pooling-2d-test COMMAND max-pooling-2d-test)
+-
+-    ADD_EXECUTABLE(maximum2-test test/maximum2.cc)
+-    TARGET_INCLUDE_DIRECTORIES(maximum2-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(maximum2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME maximum2-test COMMAND maximum2-test)
+-
+-    ADD_EXECUTABLE(minimum2-test test/minimum2.cc)
+-    TARGET_INCLUDE_DIRECTORIES(minimum2-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(minimum2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME minimum2-test COMMAND minimum2-test)
+-
+-    ADD_EXECUTABLE(multiply2-test test/multiply2.cc)
+-    TARGET_INCLUDE_DIRECTORIES(multiply2-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(multiply2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME multiply2-test COMMAND multiply2-test)
+-
+-    ADD_EXECUTABLE(negate-test test/negate.cc)
+-    TARGET_INCLUDE_DIRECTORIES(negate-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(negate-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME negate-test COMMAND negate-test)
+-
+-    ADD_EXECUTABLE(prelu-test test/prelu.cc)
+-    TARGET_INCLUDE_DIRECTORIES(prelu-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(prelu-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME prelu-test COMMAND prelu-test)
+-
+-    ADD_EXECUTABLE(sigmoid-test test/sigmoid.cc)
+-    SET_TARGET_PROPERTIES(sigmoid-test PROPERTIES CXX_EXTENSIONS YES)
+-    TARGET_INCLUDE_DIRECTORIES(sigmoid-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(sigmoid-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME sigmoid-test COMMAND sigmoid-test)
+-
+-    ADD_EXECUTABLE(static-slice-test test/static-slice.cc)
+-    SET_TARGET_PROPERTIES(static-slice-test PROPERTIES CXX_EXTENSIONS YES)
+-    TARGET_INCLUDE_DIRECTORIES(static-slice-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(static-slice-test PRIVATE XNNPACK fp16 gmock gtest gtest_main subgraph)
+-    ADD_TEST(NAME static-slice-test COMMAND static-slice-test)
+-
+-    ADD_EXECUTABLE(softmax-test test/softmax.cc)
+-    TARGET_INCLUDE_DIRECTORIES(softmax-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(softmax-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME softmax-test COMMAND softmax-test)
+-
+-    ADD_EXECUTABLE(space-to-depth-2d-test test/space-to-depth-2d.cc)
+-    TARGET_INCLUDE_DIRECTORIES(space-to-depth-2d-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(space-to-depth-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME space-to-depth-2d-test COMMAND space-to-depth-2d-test)
+-
+-    ADD_EXECUTABLE(square-test test/square.cc)
+-    TARGET_INCLUDE_DIRECTORIES(square-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(square-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME square-test COMMAND square-test)
+-
+-    ADD_EXECUTABLE(square-root-test test/square.cc)
+-    TARGET_INCLUDE_DIRECTORIES(square-root-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(square-root-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME square-root-test COMMAND square-root-test)
+-
+-    ADD_EXECUTABLE(squared-difference-test test/squared-difference.cc)
+-    TARGET_INCLUDE_DIRECTORIES(squared-difference-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(squared-difference-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME squared-difference-test COMMAND squared-difference-test)
+-
+-    ADD_EXECUTABLE(static-constant-pad-test test/static-constant-pad.cc)
+-    TARGET_INCLUDE_DIRECTORIES(static-constant-pad-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(static-constant-pad-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME static-constant-pad-test COMMAND static-constant-pad-test)
+-
+-    ADD_EXECUTABLE(static-reshape-test test/static-reshape.cc)
+-    TARGET_INCLUDE_DIRECTORIES(static-reshape-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(static-reshape-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME static-reshape-test COMMAND static-reshape-test)
+-
+-    ADD_EXECUTABLE(static-resize-bilinear-2d-test test/static-resize-bilinear-2d.cc)
+-    TARGET_INCLUDE_DIRECTORIES(static-resize-bilinear-2d-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(static-resize-bilinear-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME static-resize-bilinear-2d-test COMMAND static-resize-bilinear-2d-test)
+-
+-    ADD_EXECUTABLE(static-transpose-test test/static-transpose.cc)
+-    TARGET_INCLUDE_DIRECTORIES(static-transpose-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(static-transpose-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME static-transpose-test COMMAND static-transpose-test)
+-
+-    ADD_EXECUTABLE(subtract2-test test/subtract2.cc)
+-    TARGET_INCLUDE_DIRECTORIES(subtract2-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(subtract2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME subtract2-test COMMAND subtract2-test)
+-
+-    ADD_EXECUTABLE(unpooling-2d-test test/unpooling-2d.cc)
+-    TARGET_INCLUDE_DIRECTORIES(unpooling-2d-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(unpooling-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
+-    ADD_TEST(NAME unpooling-2d-test COMMAND unpooling-2d-test)
+   ENDIF()
+ 
+   # ---[ Normalization unit tests
+@@ -2834,21 +2574,7 @@ IF(XNNPACK_BUILD_TESTS)
+     ADD_EXECUTABLE(microkernel-utils-test test/microkernel-utils.cc)
+     TARGET_INCLUDE_DIRECTORIES(microkernel-utils-test PRIVATE include src)
+     TARGET_LINK_LIBRARIES(microkernel-utils-test PRIVATE microkernel-utils gtest gtest_main pthreadpool)
+-
+-    ADD_EXECUTABLE(operator-utils-test test/operator-utils.cc)
+-    TARGET_INCLUDE_DIRECTORIES(operator-utils-test PRIVATE include src)
+-    TARGET_LINK_LIBRARIES(operator-utils-test PRIVATE XNNPACK gtest gtest_main pthreadpool)
+   ENDIF()
+-
+-  ADD_EXECUTABLE(packing-test test/packing.cc)
+-  TARGET_INCLUDE_DIRECTORIES(packing-test PRIVATE include src)
+-  TARGET_LINK_LIBRARIES(packing-test PRIVATE fp16 gtest gtest_main pthreadpool)
+-  TARGET_LINK_LIBRARIES(packing-test PRIVATE XNNPACK microkernel-utils operator-utils packing)
+-
+-  ADD_EXECUTABLE(indirection-test test/indirection.cc)
+-  TARGET_INCLUDE_DIRECTORIES(indirection-test PRIVATE include src)
+-  TARGET_LINK_LIBRARIES(indirection-test PRIVATE gtest gtest_main pthreadpool)
+-  TARGET_LINK_LIBRARIES(indirection-test PRIVATE XNNPACK indirection)
+ ENDIF()
+ 
+ # ---[ XNNPACK microbenchmarks
diff --git a/gnu/packages/patches/xnnpack-system-libraries.patch b/gnu/packages/patches/xnnpack-system-libraries.patch
index bc9225e927..a711aa0d6c 100644
--- a/gnu/packages/patches/xnnpack-system-libraries.patch
+++ b/gnu/packages/patches/xnnpack-system-libraries.patch
@@ -2,1794 +2,2659 @@ This patch allows the build process to use the provided dependencies instead
 of adding their source as CMake sub-directories (in which case "make install"
 would install googletest's and googlebenchmark's libraries and headers).
 
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 177b98d5..937385c3 100755
---- CMakeLists.txt	2022-07-06 22:35:09.748104656 +0200
-+++ CMakeLists.txt	2022-07-06 22:47:34.504666953 +0200
-@@ -6608,10 +6608,6 @@
+diff a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt	2023-12-27 13:29:04.608138355 +0100
+@@ -850,25 +850,8 @@
+     SET_PROPERTY(TARGET pthreadpool PROPERTY IMPORTED_IMPLIB "${PTHREADPOOL_LIBRARY}")
    ENDIF()
  ENDIF()
- TARGET_LINK_LIBRARIES(XNNPACK PUBLIC pthreadpool)
--TARGET_LINK_LIBRARIES(all_microkernels PRIVATE pthreadpool)
+-TARGET_LINK_LIBRARIES(microkernels-all PRIVATE pthreadpool)
+-TARGET_LINK_LIBRARIES(microkernels-prod PRIVATE pthreadpool)
+-TARGET_LINK_LIBRARIES(hardware-config PRIVATE pthreadpool)
 -TARGET_LINK_LIBRARIES(indirection PRIVATE pthreadpool)
 -TARGET_LINK_LIBRARIES(jit PRIVATE pthreadpool)
+-TARGET_LINK_LIBRARIES(logging PRIVATE pthreadpool)
+-TARGET_LINK_LIBRARIES(microparams-init PRIVATE pthreadpool)
+-TARGET_LINK_LIBRARIES(normalization PRIVATE pthreadpool)
 -TARGET_LINK_LIBRARIES(packing PRIVATE pthreadpool)
+ IF(XNNPACK_BUILD_LIBRARY)
+   TARGET_LINK_LIBRARIES(XNNPACK PUBLIC pthreadpool)
+-  TARGET_LINK_LIBRARIES(allocator PRIVATE pthreadpool)
+-  TARGET_LINK_LIBRARIES(cache PRIVATE memory pthreadpool)
+-  TARGET_LINK_LIBRARIES(subgraph PRIVATE pthreadpool)
+-  TARGET_LINK_LIBRARIES(operators PRIVATE pthreadpool)
+-  TARGET_LINK_LIBRARIES(operator-run PRIVATE pthreadpool)
+-  TARGET_LINK_LIBRARIES(operator-utils PRIVATE pthreadpool)
+-  TARGET_LINK_LIBRARIES(mutex PRIVATE pthreadpool)
+-  TARGET_LINK_LIBRARIES(memory PRIVATE pthreadpool)
+   TARGET_LINK_LIBRARIES(post-operation PUBLIC pthreadpool allocator)
+ ENDIF()
  
- # ---[ Configure FXdiv
- IF(NOT TARGET fxdiv)
-@@ -6630,9 +6626,6 @@
+@@ -889,12 +872,6 @@
      SET_PROPERTY(TARGET fxdiv PROPERTY LINKER_LANGUAGE C)
    ENDIF()
  ENDIF()
--TARGET_LINK_LIBRARIES(XNNPACK PRIVATE fxdiv)
--TARGET_LINK_LIBRARIES(all_microkernels PRIVATE fxdiv)
+-TARGET_LINK_LIBRARIES(microkernels-all PRIVATE fxdiv)
+-TARGET_LINK_LIBRARIES(microkernels-prod PRIVATE fxdiv)
 -TARGET_LINK_LIBRARIES(indirection PRIVATE fxdiv)
+-IF(XNNPACK_BUILD_LIBRARY)
+-  TARGET_LINK_LIBRARIES(XNNPACK PRIVATE fxdiv)
+-ENDIF()
  
  # ---[ Configure FP16
  IF(NOT TARGET fp16)
-@@ -6651,10 +6644,6 @@
+@@ -913,17 +890,7 @@
      SET_PROPERTY(TARGET fp16 PROPERTY LINKER_LANGUAGE C)
    ENDIF()
  ENDIF()
--TARGET_LINK_LIBRARIES(XNNPACK PRIVATE fp16)
--TARGET_LINK_LIBRARIES(all_microkernels PRIVATE fp16)
+-TARGET_LINK_LIBRARIES(microkernels-all PRIVATE fp16)
+-TARGET_LINK_LIBRARIES(microkernels-prod PRIVATE fp16)
+-TARGET_LINK_LIBRARIES(microparams-init PRIVATE fp16)
 -TARGET_LINK_LIBRARIES(packing PRIVATE fp16)
 -TARGET_LINK_LIBRARIES(indirection PRIVATE fp16)
+ IF(XNNPACK_BUILD_LIBRARY)
+-  TARGET_LINK_LIBRARIES(subgraph PRIVATE fp16)
+-  TARGET_LINK_LIBRARIES(operators PRIVATE fp16)
+-  TARGET_LINK_LIBRARIES(operator-run PRIVATE fp16)
+-
+-  TARGET_LINK_LIBRARIES(XNNPACK PRIVATE fp16)
+   INSTALL(TARGETS XNNPACK
+       LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+       ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+@@ -943,7 +910,7 @@
+   # Helper libraries
+   ADD_LIBRARY(gemm-microkernel-tester STATIC test/gemm-microkernel-tester.cc)
+   TARGET_INCLUDE_DIRECTORIES(gemm-microkernel-tester PRIVATE . include src test)
+-  TARGET_LINK_LIBRARIES(gemm-microkernel-tester PRIVATE fp16 pthreadpool gtest)
++  TARGET_LINK_LIBRARIES(gemm-microkernel-tester PRIVATE gtest)
+   TARGET_LINK_LIBRARIES(gemm-microkernel-tester PRIVATE jit packing)
+   IF(XNNPACK_BUILD_LIBRARY)
+     TARGET_LINK_LIBRARIES(gemm-microkernel-tester PRIVATE XNNPACK post-operation)
+@@ -960,22 +927,22 @@
+     # ---[ Build operator-level unit tests
+     ADD_EXECUTABLE(abs-nc-test test/abs-nc.cc)
+     TARGET_INCLUDE_DIRECTORIES(abs-nc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(abs-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(abs-nc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME abs-nc-test COMMAND abs-nc-test)
+ 
+     ADD_EXECUTABLE(abs-nc-eager-test test/abs-nc-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(abs-nc-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(abs-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(abs-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME abs-nc-eager-test COMMAND abs-nc-eager-test)
+ 
+     ADD_EXECUTABLE(add-nd-test test/add-nd.cc)
+     TARGET_INCLUDE_DIRECTORIES(add-nd-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(add-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(add-nd-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME add-nd-test COMMAND add-nd-test)
+ 
+     ADD_EXECUTABLE(add-nd-eager-test test/add-nd-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(add-nd-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(add-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(add-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME add-nd-eager-test COMMAND add-nd-eager-test)
+ 
+     ADD_EXECUTABLE(argmax-pooling-nhwc-test test/argmax-pooling-nhwc.cc)
+@@ -985,27 +952,27 @@
+ 
+     ADD_EXECUTABLE(average-pooling-nhwc-test test/average-pooling-nhwc.cc)
+     TARGET_INCLUDE_DIRECTORIES(average-pooling-nhwc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(average-pooling-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(average-pooling-nhwc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME average-pooling-nhwc-test COMMAND average-pooling-nhwc-test)
+ 
+     ADD_EXECUTABLE(bankers-rounding-nc-test test/bankers-rounding-nc.cc)
+     TARGET_INCLUDE_DIRECTORIES(bankers-rounding-nc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(bankers-rounding-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(bankers-rounding-nc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME bankers-rounding-nc-test COMMAND bankers-rounding-nc-test)
+ 
+     ADD_EXECUTABLE(bankers-rounding-nc-eager-test test/bankers-rounding-nc-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(bankers-rounding-nc-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(bankers-rounding-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(bankers-rounding-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME bankers-rounding-nc-eager-test COMMAND bankers-rounding-nc-eager-test)
+ 
+     ADD_EXECUTABLE(ceiling-nc-test test/ceiling-nc.cc)
+     TARGET_INCLUDE_DIRECTORIES(ceiling-nc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(ceiling-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(ceiling-nc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME ceiling-nc-test COMMAND ceiling-nc-test)
+ 
+     ADD_EXECUTABLE(ceiling-nc-eager-test test/ceiling-nc-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(ceiling-nc-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(ceiling-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(ceiling-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME ceiling-nc-eager-test COMMAND ceiling-nc-eager-test)
+ 
+     ADD_EXECUTABLE(channel-shuffle-nc-test test/channel-shuffle-nc.cc)
+@@ -1015,12 +982,12 @@
+ 
+     ADD_EXECUTABLE(clamp-nc-test test/clamp-nc.cc)
+     TARGET_INCLUDE_DIRECTORIES(clamp-nc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(clamp-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(clamp-nc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME clamp-nc-test COMMAND clamp-nc-test)
+ 
+     ADD_EXECUTABLE(clamp-nc-eager-test test/clamp-nc-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(clamp-nc-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(clamp-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(clamp-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME clamp-nc-eager-test COMMAND clamp-nc-eager-test)
+ 
+     ADD_EXECUTABLE(constant-pad-nd-test test/constant-pad-nd.cc)
+@@ -1035,25 +1002,25 @@
+ 
+     ADD_EXECUTABLE(convert-nc-test test/convert-nc.cc)
+     TARGET_INCLUDE_DIRECTORIES(convert-nc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(convert-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(convert-nc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME convert-nc-test COMMAND convert-nc-test)
+ 
+     ADD_EXECUTABLE(convert-nc-eager-test test/convert-nc-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(convert-nc-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(convert-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(convert-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME convert-nc-eager-test COMMAND convert-nc-eager-test)
+ 
+     ADD_EXECUTABLE(convolution-nhwc-test test/convolution-nhwc.cc)
+     SET_TARGET_PROPERTIES(convolution-nhwc-test PROPERTIES CXX_EXTENSIONS YES)
+     TARGET_INCLUDE_DIRECTORIES(convolution-nhwc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(convolution-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(convolution-nhwc-test PRIVATE XNNPACK gtest gtest_main)
+     TARGET_LINK_LIBRARIES(convolution-nhwc-test PRIVATE convolution-test-helpers)
+     ADD_TEST(NAME convolution-nhwc-test COMMAND convolution-nhwc-test)
+ 
+     ADD_EXECUTABLE(convolution-nchw-test test/convolution-nchw.cc)
+     SET_TARGET_PROPERTIES(convolution-nchw-test PROPERTIES CXX_EXTENSIONS YES)
+     TARGET_INCLUDE_DIRECTORIES(convolution-nchw-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(convolution-nchw-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(convolution-nchw-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME convolution-nchw-test COMMAND convolution-nchw-test)
+ 
+     ADD_EXECUTABLE(copy-nc-test test/copy-nc.cc)
+@@ -1068,7 +1035,7 @@
+ 
+     ADD_EXECUTABLE(deconvolution-nhwc-test test/deconvolution-nhwc.cc)
+     TARGET_INCLUDE_DIRECTORIES(deconvolution-nhwc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(deconvolution-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(deconvolution-nhwc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME deconvolution-nhwc-test COMMAND deconvolution-nhwc-test)
+ 
+     ADD_EXECUTABLE(depth-to-space-nchw2nhwc-test test/depth-to-space-nchw2nhwc.cc)
+@@ -1083,197 +1050,197 @@
+ 
+     ADD_EXECUTABLE(divide-nd-test test/divide-nd.cc)
+     TARGET_INCLUDE_DIRECTORIES(divide-nd-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(divide-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(divide-nd-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME divide-nd-test COMMAND divide-nd-test)
+ 
+     ADD_EXECUTABLE(divide-nd-eager-test test/divide-nd-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(divide-nd-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(divide-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(divide-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME divide-nd-eager-test COMMAND divide-nd-eager-test)
+ 
+     ADD_EXECUTABLE(elu-nc-test test/elu-nc.cc)
+     TARGET_INCLUDE_DIRECTORIES(elu-nc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(elu-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(elu-nc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME elu-nc-test COMMAND elu-nc-test)
+ 
+     ADD_EXECUTABLE(elu-nc-eager-test test/elu-nc-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(elu-nc-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(elu-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(elu-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME elu-nc-eager-test COMMAND elu-nc-eager-test)
+ 
+     ADD_EXECUTABLE(fully-connected-nc-test test/fully-connected-nc.cc)
+     TARGET_INCLUDE_DIRECTORIES(fully-connected-nc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(fully-connected-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(fully-connected-nc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME fully-connected-nc-test COMMAND fully-connected-nc-test)
+ 
+     ADD_EXECUTABLE(floor-nc-test test/floor-nc.cc)
+     TARGET_INCLUDE_DIRECTORIES(floor-nc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(floor-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(floor-nc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME floor-nc-test COMMAND floor-nc-test)
+ 
+     ADD_EXECUTABLE(floor-nc-eager-test test/floor-nc-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(floor-nc-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(floor-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(floor-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME floor-nc-eager-test COMMAND floor-nc-eager-test)
+ 
+     ADD_EXECUTABLE(global-average-pooling-nwc-test test/global-average-pooling-nwc.cc)
+     TARGET_INCLUDE_DIRECTORIES(global-average-pooling-nwc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(global-average-pooling-nwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(global-average-pooling-nwc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME global-average-pooling-nwc-test COMMAND global-average-pooling-nwc-test)
+ 
+     ADD_EXECUTABLE(global-average-pooling-ncw-test test/global-average-pooling-ncw.cc)
+     TARGET_INCLUDE_DIRECTORIES(global-average-pooling-ncw-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(global-average-pooling-ncw-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(global-average-pooling-ncw-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME global-average-pooling-ncw-test COMMAND global-average-pooling-ncw-test)
+ 
+     ADD_EXECUTABLE(hardswish-nc-test test/hardswish-nc.cc)
+     TARGET_INCLUDE_DIRECTORIES(hardswish-nc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(hardswish-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(hardswish-nc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME hardswish-nc-test COMMAND hardswish-nc-test)
+ 
+     ADD_EXECUTABLE(hardswish-nc-eager-test test/hardswish-nc-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(hardswish-nc-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(hardswish-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(hardswish-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME hardswish-nc-eager-test COMMAND hardswish-nc-eager-test)
+ 
+     ADD_EXECUTABLE(leaky-relu-nc-test test/leaky-relu-nc.cc)
+     TARGET_INCLUDE_DIRECTORIES(leaky-relu-nc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(leaky-relu-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(leaky-relu-nc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME leaky-relu-nc-test COMMAND leaky-relu-nc-test)
+ 
+     ADD_EXECUTABLE(leaky-relu-nc-eager-test test/leaky-relu-nc-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(leaky-relu-nc-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(leaky-relu-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(leaky-relu-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME leaky-relu-nc-eager-test COMMAND leaky-relu-nc-eager-test)
+ 
+     ADD_EXECUTABLE(max-pooling-nhwc-test test/max-pooling-nhwc.cc)
+     TARGET_INCLUDE_DIRECTORIES(max-pooling-nhwc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(max-pooling-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(max-pooling-nhwc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME max-pooling-nhwc-test COMMAND max-pooling-nhwc-test)
+ 
+     ADD_EXECUTABLE(maximum-nd-test test/maximum-nd.cc)
+     TARGET_INCLUDE_DIRECTORIES(maximum-nd-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(maximum-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(maximum-nd-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME maximum-nd-test COMMAND maximum-nd-test)
+ 
+     ADD_EXECUTABLE(maximum-nd-eager-test test/maximum-nd-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(maximum-nd-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(maximum-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(maximum-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME maximum-nd-eager-test COMMAND maximum-nd-eager-test)
+ 
+     ADD_EXECUTABLE(minimum-nd-test test/minimum-nd.cc)
+     TARGET_INCLUDE_DIRECTORIES(minimum-nd-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(minimum-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(minimum-nd-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME minimum-nd-test COMMAND minimum-nd-test)
+ 
+     ADD_EXECUTABLE(minimum-nd-eager-test test/minimum-nd-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(minimum-nd-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(minimum-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(minimum-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME minimum-nd-eager-test COMMAND minimum-nd-eager-test)
+ 
+     ADD_EXECUTABLE(multiply-nd-test test/multiply-nd.cc)
+     TARGET_INCLUDE_DIRECTORIES(multiply-nd-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(multiply-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(multiply-nd-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME multiply-nd-test COMMAND multiply-nd-test)
+ 
+     ADD_EXECUTABLE(multiply-nd-eager-test test/multiply-nd-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(multiply-nd-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(multiply-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(multiply-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME multiply-nd-eager-test COMMAND multiply-nd-eager-test)
+ 
+     ADD_EXECUTABLE(negate-nc-test test/negate-nc.cc)
+     TARGET_INCLUDE_DIRECTORIES(negate-nc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(negate-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(negate-nc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME negate-nc-test COMMAND negate-nc-test)
+ 
+     ADD_EXECUTABLE(negate-nc-eager-test test/negate-nc-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(negate-nc-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(negate-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(negate-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME negate-nc-eager-test COMMAND negate-nc-eager-test)
+ 
+     ADD_EXECUTABLE(prelu-nc-test test/prelu-nc.cc)
+     TARGET_INCLUDE_DIRECTORIES(prelu-nc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(prelu-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(prelu-nc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME prelu-nc-test COMMAND prelu-nc-test)
+ 
+     ADD_EXECUTABLE(resize-bilinear-nhwc-test test/resize-bilinear-nhwc.cc)
+     TARGET_INCLUDE_DIRECTORIES(resize-bilinear-nhwc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(resize-bilinear-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(resize-bilinear-nhwc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME resize-bilinear-nhwc-test COMMAND resize-bilinear-nhwc-test)
+ 
+     ADD_EXECUTABLE(resize-bilinear-nchw-test test/resize-bilinear-nchw.cc)
+     TARGET_INCLUDE_DIRECTORIES(resize-bilinear-nchw-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(resize-bilinear-nchw-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(resize-bilinear-nchw-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME resize-bilinear-nchw-test COMMAND resize-bilinear-nchw-test)
+ 
+     ADD_EXECUTABLE(sigmoid-nc-test test/sigmoid-nc.cc)
+     TARGET_INCLUDE_DIRECTORIES(sigmoid-nc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(sigmoid-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(sigmoid-nc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME sigmoid-nc-test COMMAND sigmoid-nc-test)
+ 
+     ADD_EXECUTABLE(sigmoid-nc-eager-test test/sigmoid-nc-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(sigmoid-nc-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(sigmoid-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(sigmoid-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME sigmoid-nc-eager-test COMMAND sigmoid-nc-eager-test)
+ 
+     ADD_EXECUTABLE(slice-nd-test test/slice-nd.cc)
+     TARGET_INCLUDE_DIRECTORIES(slice-nd-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(slice-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(slice-nd-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME slice-nd-test COMMAND slice-nd-test)
+ 
+     ADD_EXECUTABLE(slice-nd-eager-test test/slice-nd-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(slice-nd-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(slice-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(slice-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME slice-nd-eager-test COMMAND slice-nd-eager-test)
+ 
+     ADD_EXECUTABLE(softmax-nc-test test/softmax-nc.cc)
+     TARGET_INCLUDE_DIRECTORIES(softmax-nc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(softmax-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(softmax-nc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME softmax-nc-test COMMAND softmax-nc-test)
+ 
+     ADD_EXECUTABLE(space-to-depth-nhwc-test test/space-to-depth-nhwc.cc)
+     TARGET_INCLUDE_DIRECTORIES(space-to-depth-nhwc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(space-to-depth-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(space-to-depth-nhwc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME space-to-depth-nhwc-test COMMAND space-to-depth-nhwc-test)
+ 
+     ADD_EXECUTABLE(square-nc-test test/square-nc.cc)
+     TARGET_INCLUDE_DIRECTORIES(square-nc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(square-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(square-nc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME square-nc-test COMMAND square-nc-test)
+ 
+     ADD_EXECUTABLE(square-nc-eager-test test/square-nc-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(square-nc-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(square-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(square-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME square-nc-eager-test COMMAND square-nc-eager-test)
+ 
+     ADD_EXECUTABLE(square-root-nc-test test/square-root-nc.cc)
+     TARGET_INCLUDE_DIRECTORIES(square-root-nc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(square-root-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(square-root-nc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME square-root-nc-test COMMAND square-root-nc-test)
+ 
+     ADD_EXECUTABLE(square-root-nc-eager-test test/square-root-nc-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(square-root-nc-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(square-root-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(square-root-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME square-root-nc-eager-test COMMAND square-root-nc-eager-test)
+ 
+     ADD_EXECUTABLE(squared-difference-nd-test test/squared-difference-nd.cc)
+     TARGET_INCLUDE_DIRECTORIES(squared-difference-nd-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(squared-difference-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(squared-difference-nd-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME squared-difference-nd-test COMMAND squared-difference-nd-test)
+ 
+     ADD_EXECUTABLE(squared-difference-nd-eager-test test/squared-difference-nd-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(squared-difference-nd-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(squared-difference-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(squared-difference-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME squared-difference-nd-eager-test COMMAND squared-difference-nd-eager-test)
+ 
+     ADD_EXECUTABLE(subtract-nd-test test/subtract-nd.cc)
+     TARGET_INCLUDE_DIRECTORIES(subtract-nd-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(subtract-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(subtract-nd-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME subtract-nd-test COMMAND subtract-nd-test)
+ 
+     ADD_EXECUTABLE(subtract-nd-eager-test test/subtract-nd-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(subtract-nd-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(subtract-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(subtract-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME subtract-nd-eager-test COMMAND subtract-nd-eager-test)
+ 
+     ADD_EXECUTABLE(tanh-nc-test test/tanh-nc.cc)
+@@ -1293,12 +1260,12 @@
+ 
+     ADD_EXECUTABLE(truncation-nc-test test/truncation-nc.cc)
+     TARGET_INCLUDE_DIRECTORIES(truncation-nc-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(truncation-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(truncation-nc-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME truncation-nc-test COMMAND truncation-nc-test)
+ 
+     ADD_EXECUTABLE(truncation-nc-eager-test test/truncation-nc-eager.cc)
+     TARGET_INCLUDE_DIRECTORIES(truncation-nc-eager-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(truncation-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
++    TARGET_LINK_LIBRARIES(truncation-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
+     ADD_TEST(NAME truncation-nc-eager-test COMMAND truncation-nc-eager-test)
+ 
+     ADD_EXECUTABLE(unpooling-nhwc-test test/unpooling-nhwc.cc)
+@@ -1350,22 +1317,22 @@
+ 
+     ADD_EXECUTABLE(average-pooling-2d-test test/average-pooling-2d.cc)
+     TARGET_INCLUDE_DIRECTORIES(average-pooling-2d-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(average-pooling-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(average-pooling-2d-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME average-pooling-2d-test COMMAND average-pooling-2d-test)
+ 
+     ADD_EXECUTABLE(bankers-rounding-test test/bankers-rounding.cc)
+     TARGET_INCLUDE_DIRECTORIES(bankers-rounding-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(bankers-rounding-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(bankers-rounding-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME bankers-rounding-test COMMAND bankers-rounding-test)
+ 
+     ADD_EXECUTABLE(ceiling-test test/ceiling.cc)
+     TARGET_INCLUDE_DIRECTORIES(ceiling-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(ceiling-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(ceiling-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME ceiling-test COMMAND ceiling-test)
+ 
+     ADD_EXECUTABLE(clamp-test test/clamp.cc)
+     TARGET_INCLUDE_DIRECTORIES(clamp-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(clamp-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(clamp-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME clamp-test COMMAND clamp-test)
+ 
+     ADD_EXECUTABLE(concatenate2-test test/concatenate2.cc)
+@@ -1385,187 +1352,187 @@
+ 
+     ADD_EXECUTABLE(convert-test test/convert.cc)
+     TARGET_INCLUDE_DIRECTORIES(convert-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(convert-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(convert-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME convert-test COMMAND convert-test)
+ 
+     ADD_EXECUTABLE(convolution-2d-test test/convolution-2d.cc)
+     SET_TARGET_PROPERTIES(convolution-2d-test PROPERTIES CXX_EXTENSIONS YES)
+     TARGET_INCLUDE_DIRECTORIES(convolution-2d-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(convolution-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph convolution-test-helpers)
++    TARGET_LINK_LIBRARIES(convolution-2d-test PRIVATE XNNPACK gtest gtest_main subgraph convolution-test-helpers)
+     ADD_TEST(NAME convolution-2d-test COMMAND convolution-2d-test)
+ 
+     ADD_EXECUTABLE(copy-test test/copy.cc)
+     TARGET_INCLUDE_DIRECTORIES(copy-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(copy-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(copy-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME copy-test COMMAND copy-test)
+ 
+     ADD_EXECUTABLE(deconvolution-2d-test test/deconvolution-2d.cc)
+     SET_TARGET_PROPERTIES(deconvolution-2d-test PROPERTIES CXX_EXTENSIONS YES)
+     TARGET_INCLUDE_DIRECTORIES(deconvolution-2d-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(deconvolution-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph convolution-test-helpers)
++    TARGET_LINK_LIBRARIES(deconvolution-2d-test PRIVATE XNNPACK gtest gtest_main subgraph convolution-test-helpers)
+     ADD_TEST(NAME deconvolution-2d-test COMMAND deconvolution-2d-test)
+ 
+     ADD_EXECUTABLE(depth-to-space-test test/depth-to-space.cc)
+     TARGET_INCLUDE_DIRECTORIES(depth-to-space-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(depth-to-space-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(depth-to-space-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME depth-to-space-test COMMAND depth-to-space-test)
+ 
+     ADD_EXECUTABLE(depthwise-convolution-2d-test test/depthwise-convolution-2d.cc)
+     SET_TARGET_PROPERTIES(depthwise-convolution-2d-test PROPERTIES CXX_EXTENSIONS YES)
+     TARGET_INCLUDE_DIRECTORIES(depthwise-convolution-2d-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(depthwise-convolution-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph convolution-test-helpers)
++    TARGET_LINK_LIBRARIES(depthwise-convolution-2d-test PRIVATE XNNPACK gtest gtest_main subgraph convolution-test-helpers)
+     ADD_TEST(NAME depthwise-convolution-2d-test COMMAND depthwise-convolution-2d-test)
+ 
+     ADD_EXECUTABLE(divide2-test test/divide2.cc)
+     TARGET_INCLUDE_DIRECTORIES(divide2-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(divide2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(divide2-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME divide2-test COMMAND divide2-test)
+ 
+     ADD_EXECUTABLE(elu-test test/elu.cc)
+     TARGET_INCLUDE_DIRECTORIES(elu-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(elu-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(elu-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME elu-test COMMAND elu-test)
+ 
+     ADD_EXECUTABLE(even-split2-test test/even-split2.cc)
+     TARGET_INCLUDE_DIRECTORIES(even-split2-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(even-split2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(even-split2-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME even-split2-test COMMAND even-split2-test)
+ 
+     ADD_EXECUTABLE(even-split3-test test/even-split3.cc)
+     TARGET_INCLUDE_DIRECTORIES(even-split3-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(even-split3-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(even-split3-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME even-split3-test COMMAND even-split3-test)
+ 
+     ADD_EXECUTABLE(even-split4-test test/even-split4.cc)
+     TARGET_INCLUDE_DIRECTORIES(even-split4-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(even-split4-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(even-split4-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME even-split4-test COMMAND even-split4-test)
+ 
+     ADD_EXECUTABLE(floor-test test/floor.cc)
+     TARGET_INCLUDE_DIRECTORIES(floor-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(floor-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(floor-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME floor-test COMMAND floor-test)
+ 
+     ADD_EXECUTABLE(fully-connected-test test/fully-connected.cc)
+     TARGET_INCLUDE_DIRECTORIES(fully-connected-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(fully-connected-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(fully-connected-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME fully-connected-test COMMAND fully-connected-test)
+ 
+     ADD_EXECUTABLE(global-average-pooling-1d-test test/global-average-pooling-1d.cc)
+     TARGET_INCLUDE_DIRECTORIES(global-average-pooling-1d-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(global-average-pooling-1d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(global-average-pooling-1d-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME global-average-pooling-1d-test COMMAND global-average-pooling-1d-test)
+ 
+     ADD_EXECUTABLE(global-average-pooling-2d-test test/global-average-pooling-2d.cc)
+     TARGET_INCLUDE_DIRECTORIES(global-average-pooling-2d-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(global-average-pooling-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(global-average-pooling-2d-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME global-average-pooling-2d-test COMMAND global-average-pooling-2d-test)
+ 
+     ADD_EXECUTABLE(hardswish-test test/hardswish.cc)
+     TARGET_INCLUDE_DIRECTORIES(hardswish-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(hardswish-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(hardswish-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME hardswish-test COMMAND hardswish-test)
+ 
+     ADD_EXECUTABLE(leaky-relu-test test/leaky-relu.cc)
+     TARGET_INCLUDE_DIRECTORIES(leaky-relu-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(leaky-relu-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(leaky-relu-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME leaky-relu-test COMMAND leaky-relu-test)
+ 
+     ADD_EXECUTABLE(max-pooling-2d-test test/max-pooling-2d.cc)
+     TARGET_INCLUDE_DIRECTORIES(max-pooling-2d-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(max-pooling-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(max-pooling-2d-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME max-pooling-2d-test COMMAND max-pooling-2d-test)
+ 
+     ADD_EXECUTABLE(maximum2-test test/maximum2.cc)
+     TARGET_INCLUDE_DIRECTORIES(maximum2-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(maximum2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(maximum2-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME maximum2-test COMMAND maximum2-test)
+ 
+     ADD_EXECUTABLE(minimum2-test test/minimum2.cc)
+     TARGET_INCLUDE_DIRECTORIES(minimum2-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(minimum2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(minimum2-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME minimum2-test COMMAND minimum2-test)
+ 
+     ADD_EXECUTABLE(multiply2-test test/multiply2.cc)
+     TARGET_INCLUDE_DIRECTORIES(multiply2-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(multiply2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(multiply2-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME multiply2-test COMMAND multiply2-test)
+ 
+     ADD_EXECUTABLE(negate-test test/negate.cc)
+     TARGET_INCLUDE_DIRECTORIES(negate-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(negate-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(negate-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME negate-test COMMAND negate-test)
+ 
+     ADD_EXECUTABLE(prelu-test test/prelu.cc)
+     TARGET_INCLUDE_DIRECTORIES(prelu-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(prelu-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(prelu-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME prelu-test COMMAND prelu-test)
+ 
+     ADD_EXECUTABLE(sigmoid-test test/sigmoid.cc)
+     SET_TARGET_PROPERTIES(sigmoid-test PROPERTIES CXX_EXTENSIONS YES)
+     TARGET_INCLUDE_DIRECTORIES(sigmoid-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(sigmoid-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(sigmoid-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME sigmoid-test COMMAND sigmoid-test)
+ 
+     ADD_EXECUTABLE(static-slice-test test/static-slice.cc)
+     SET_TARGET_PROPERTIES(static-slice-test PROPERTIES CXX_EXTENSIONS YES)
+     TARGET_INCLUDE_DIRECTORIES(static-slice-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(static-slice-test PRIVATE XNNPACK fp16 gmock gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(static-slice-test PRIVATE XNNPACK gmock gtest gtest_main subgraph)
+     ADD_TEST(NAME static-slice-test COMMAND static-slice-test)
+ 
+     ADD_EXECUTABLE(softmax-test test/softmax.cc)
+     TARGET_INCLUDE_DIRECTORIES(softmax-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(softmax-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(softmax-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME softmax-test COMMAND softmax-test)
+ 
+     ADD_EXECUTABLE(space-to-depth-2d-test test/space-to-depth-2d.cc)
+     TARGET_INCLUDE_DIRECTORIES(space-to-depth-2d-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(space-to-depth-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(space-to-depth-2d-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME space-to-depth-2d-test COMMAND space-to-depth-2d-test)
+ 
+     ADD_EXECUTABLE(square-test test/square.cc)
+     TARGET_INCLUDE_DIRECTORIES(square-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(square-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(square-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME square-test COMMAND square-test)
+ 
+     ADD_EXECUTABLE(square-root-test test/square.cc)
+     TARGET_INCLUDE_DIRECTORIES(square-root-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(square-root-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(square-root-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME square-root-test COMMAND square-root-test)
+ 
+     ADD_EXECUTABLE(squared-difference-test test/squared-difference.cc)
+     TARGET_INCLUDE_DIRECTORIES(squared-difference-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(squared-difference-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(squared-difference-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME squared-difference-test COMMAND squared-difference-test)
+ 
+     ADD_EXECUTABLE(static-constant-pad-test test/static-constant-pad.cc)
+     TARGET_INCLUDE_DIRECTORIES(static-constant-pad-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(static-constant-pad-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(static-constant-pad-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME static-constant-pad-test COMMAND static-constant-pad-test)
+ 
+     ADD_EXECUTABLE(static-reshape-test test/static-reshape.cc)
+     TARGET_INCLUDE_DIRECTORIES(static-reshape-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(static-reshape-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(static-reshape-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME static-reshape-test COMMAND static-reshape-test)
+ 
+     ADD_EXECUTABLE(static-resize-bilinear-2d-test test/static-resize-bilinear-2d.cc)
+     TARGET_INCLUDE_DIRECTORIES(static-resize-bilinear-2d-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(static-resize-bilinear-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(static-resize-bilinear-2d-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME static-resize-bilinear-2d-test COMMAND static-resize-bilinear-2d-test)
+ 
+     ADD_EXECUTABLE(static-transpose-test test/static-transpose.cc)
+     TARGET_INCLUDE_DIRECTORIES(static-transpose-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(static-transpose-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(static-transpose-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME static-transpose-test COMMAND static-transpose-test)
+ 
+     ADD_EXECUTABLE(subtract2-test test/subtract2.cc)
+     TARGET_INCLUDE_DIRECTORIES(subtract2-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(subtract2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(subtract2-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME subtract2-test COMMAND subtract2-test)
+ 
+     ADD_EXECUTABLE(unpooling-2d-test test/unpooling-2d.cc)
+     TARGET_INCLUDE_DIRECTORIES(unpooling-2d-test PRIVATE src test)
+-    TARGET_LINK_LIBRARIES(unpooling-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
++    TARGET_LINK_LIBRARIES(unpooling-2d-test PRIVATE XNNPACK gtest gtest_main subgraph)
+     ADD_TEST(NAME unpooling-2d-test COMMAND unpooling-2d-test)
+   ENDIF()
+ 
+@@ -1591,355 +1558,355 @@
  
- INSTALL(TARGETS XNNPACK
-     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-@@ -6705,7 +6694,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
-   TARGET_INCLUDE_DIRECTORIES(add-nd-test PRIVATE src test)
--  TARGET_LINK_LIBRARIES(add-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(add-nd-test PRIVATE XNNPACK gtest gtest_main)
-   ADD_TEST(add-nd-test add-nd-test)
- 
-   ADD_EXECUTABLE(argmax-pooling-nhwc-test test/argmax-pooling-nhwc.cc)
-@@ -6759,7 +6748,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
-   TARGET_INCLUDE_DIRECTORIES(clamp-nc-test PRIVATE src test)
--  TARGET_LINK_LIBRARIES(clamp-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(clamp-nc-test PRIVATE XNNPACK gtest gtest_main)
-   ADD_TEST(clamp-nc-test clamp-nc-test)
- 
-   ADD_EXECUTABLE(constant-pad-nd-test test/constant-pad-nd.cc)
-@@ -6777,7 +6766,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(convert-nc-test PRIVATE src test)
--  TARGET_LINK_LIBRARIES(convert-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(convert-nc-test PRIVATE XNNPACK gtest gtest_main)
-   ADD_TEST(convert-nc-test convert-nc-test)
- 
-   ADD_EXECUTABLE(convolution-nhwc-test test/convolution-nhwc.cc)
-@@ -6786,7 +6775,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(convolution-nhwc-test PRIVATE src test)
--  TARGET_LINK_LIBRARIES(convolution-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(convolution-nhwc-test PRIVATE XNNPACK gtest gtest_main)
-   ADD_TEST(convolution-nhwc-test convolution-nhwc-test)
- 
-   ADD_EXECUTABLE(convolution-nchw-test test/convolution-nchw.cc)
-@@ -6795,7 +6784,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(convolution-nchw-test PRIVATE src test)
--  TARGET_LINK_LIBRARIES(convolution-nchw-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(convolution-nchw-test PRIVATE XNNPACK gtest gtest_main)
-   ADD_TEST(convolution-nchw-test convolution-nchw-test)
- 
-   ADD_EXECUTABLE(copy-nc-test test/copy-nc.cc)
-@@ -6813,7 +6802,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
-   TARGET_INCLUDE_DIRECTORIES(deconvolution-nhwc-test PRIVATE src test)
--  TARGET_LINK_LIBRARIES(deconvolution-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(deconvolution-nhwc-test PRIVATE XNNPACK gtest gtest_main)
-   ADD_TEST(deconvolution-nhwc-test deconvolution-nhwc-test)
- 
-   ADD_EXECUTABLE(depth-to-space-nchw2nhwc-test test/depth-to-space-nchw2nhwc.cc)
-@@ -6840,7 +6829,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
-   TARGET_INCLUDE_DIRECTORIES(divide-nd-test PRIVATE src test)
--  TARGET_LINK_LIBRARIES(divide-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(divide-nd-test PRIVATE XNNPACK gtest gtest_main)
-   ADD_TEST(divide-nd-test divide-nd-test)
- 
-   ADD_EXECUTABLE(elu-nc-test test/elu-nc.cc)
-@@ -6858,7 +6847,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
-   TARGET_INCLUDE_DIRECTORIES(fully-connected-nc-test PRIVATE src test)
--  TARGET_LINK_LIBRARIES(fully-connected-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(fully-connected-nc-test PRIVATE XNNPACK gtest gtest_main)
-   ADD_TEST(fully-connected-nc-test fully-connected-nc-test)
- 
-   ADD_EXECUTABLE(floor-nc-test test/floor-nc.cc)
-@@ -6876,7 +6865,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
-   TARGET_INCLUDE_DIRECTORIES(global-average-pooling-nwc-test PRIVATE src test)
--  TARGET_LINK_LIBRARIES(global-average-pooling-nwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(global-average-pooling-nwc-test PRIVATE XNNPACK gtest gtest_main)
-   ADD_TEST(global-average-pooling-nwc-test global-average-pooling-nwc-test)
- 
-   ADD_EXECUTABLE(global-average-pooling-ncw-test test/global-average-pooling-ncw.cc)
-@@ -6885,7 +6874,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
-   TARGET_INCLUDE_DIRECTORIES(global-average-pooling-ncw-test PRIVATE src test)
--  TARGET_LINK_LIBRARIES(global-average-pooling-ncw-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(global-average-pooling-ncw-test PRIVATE XNNPACK gtest gtest_main)
-   ADD_TEST(global-average-pooling-ncw-test global-average-pooling-ncw-test)
- 
-   ADD_EXECUTABLE(hardswish-nc-test test/hardswish-nc.cc)
-@@ -6894,7 +6883,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
-   TARGET_INCLUDE_DIRECTORIES(hardswish-nc-test PRIVATE src test)
--  TARGET_LINK_LIBRARIES(hardswish-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(hardswish-nc-test PRIVATE XNNPACK gtest gtest_main)
-   ADD_TEST(hardswish-nc-test hardswish-nc-test)
- 
-   ADD_EXECUTABLE(leaky-relu-nc-test test/leaky-relu-nc.cc)
-@@ -6903,7 +6892,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
-   TARGET_INCLUDE_DIRECTORIES(leaky-relu-nc-test PRIVATE src test)
--  TARGET_LINK_LIBRARIES(leaky-relu-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(leaky-relu-nc-test PRIVATE XNNPACK gtest gtest_main)
-   ADD_TEST(leaky-relu-nc-test leaky-relu-nc-test)
- 
-   ADD_EXECUTABLE(max-pooling-nhwc-test test/max-pooling-nhwc.cc)
-@@ -6912,7 +6901,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
-   TARGET_INCLUDE_DIRECTORIES(max-pooling-nhwc-test PRIVATE src test)
--  TARGET_LINK_LIBRARIES(max-pooling-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(max-pooling-nhwc-test PRIVATE XNNPACK gtest gtest_main)
-   ADD_TEST(max-pooling-nhwc-test max-pooling-nhwc-test)
- 
-   ADD_EXECUTABLE(maximum-nd-test test/maximum-nd.cc)
-@@ -6921,7 +6910,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
-   TARGET_INCLUDE_DIRECTORIES(maximum-nd-test PRIVATE src test)
--  TARGET_LINK_LIBRARIES(maximum-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(maximum-nd-test PRIVATE XNNPACK gtest gtest_main)
-   ADD_TEST(maximum-nd-test maximum-nd-test)
- 
-   ADD_EXECUTABLE(minimum-nd-test test/minimum-nd.cc)
-@@ -6930,7 +6919,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
-   TARGET_INCLUDE_DIRECTORIES(minimum-nd-test PRIVATE src test)
--  TARGET_LINK_LIBRARIES(minimum-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(minimum-nd-test PRIVATE XNNPACK gtest gtest_main)
-   ADD_TEST(minimum-nd-test minimum-nd-test)
- 
-   ADD_EXECUTABLE(multiply-nd-test test/multiply-nd.cc)
-@@ -6939,7 +6928,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
-   TARGET_INCLUDE_DIRECTORIES(multiply-nd-test PRIVATE src test)
--  TARGET_LINK_LIBRARIES(multiply-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(multiply-nd-test PRIVATE XNNPACK gtest gtest_main)
-   ADD_TEST(multiply-nd-test multiply-nd-test)
- 
-   ADD_EXECUTABLE(negate-nc-test test/negate-nc.cc)
-@@ -6957,7 +6946,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
-   TARGET_INCLUDE_DIRECTORIES(prelu-nc-test PRIVATE src test)
--  TARGET_LINK_LIBRARIES(prelu-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(prelu-nc-test PRIVATE XNNPACK gtest gtest_main)
-   ADD_TEST(prelu-nc-test prelu-nc-test)
- 
-   ADD_EXECUTABLE(resize-bilinear-nhwc-test test/resize-bilinear-nhwc.cc)
-@@ -6966,7 +6955,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
-   TARGET_INCLUDE_DIRECTORIES(resize-bilinear-nhwc-test PRIVATE src test)
--  TARGET_LINK_LIBRARIES(resize-bilinear-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(resize-bilinear-nhwc-test PRIVATE XNNPACK gtest gtest_main)
-   ADD_TEST(resize-bilinear-nhwc-test resize-bilinear-nhwc-test)
- 
-   ADD_EXECUTABLE(resize-bilinear-nchw-test test/resize-bilinear-nchw.cc)
-@@ -6975,7 +6964,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
-   TARGET_INCLUDE_DIRECTORIES(resize-bilinear-nchw-test PRIVATE src test)
--  TARGET_LINK_LIBRARIES(resize-bilinear-nchw-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(resize-bilinear-nchw-test PRIVATE XNNPACK gtest gtest_main)
-   ADD_TEST(resize-bilinear-nchw-test resize-bilinear-nchw-test)
- 
-   ADD_EXECUTABLE(sigmoid-nc-test test/sigmoid-nc.cc)
-@@ -7029,7 +7018,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
-   TARGET_INCLUDE_DIRECTORIES(subtract-nd-test PRIVATE src test)
--  TARGET_LINK_LIBRARIES(subtract-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(subtract-nd-test PRIVATE XNNPACK gtest gtest_main)
-   ADD_TEST(subtract-nd-test subtract-nd-test)
- 
-   ADD_EXECUTABLE(tanh-nc-test test/tanh-nc.cc)
-@@ -7084,7 +7073,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+   ADD_EXECUTABLE(f16-f32-vcvt-test test/f16-f32-vcvt.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-f32-vcvt-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-f32-vcvt-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-f32-vcvt-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-f32-vcvt-test f16-f32-vcvt-test)
- 
-   ADD_EXECUTABLE(f16-dwconv-minmax-test test/f16-dwconv-minmax.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -7093,7 +7082,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(f16-dwconv-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-dwconv-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-dwconv-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-dwconv-minmax-test f16-dwconv-minmax-test)
- 
-   ADD_EXECUTABLE(f16-gavgpool-minmax-test test/f16-gavgpool-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7102,7 +7091,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-f32-vcvt-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-f32-vcvt-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-f32-vcvt-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-f32-vcvt-test COMMAND f16-f32-vcvt-test)
+ 
+   ADD_EXECUTABLE(f16-gavgpool-cw-test test/f16-gavgpool-cw.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-gavgpool-cw-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f16-gavgpool-cw-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-gavgpool-cw-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-gavgpool-cw-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-gavgpool-cw-test COMMAND f16-gavgpool-cw-test)
+ 
+   ADD_EXECUTABLE(f16-avgpool-minmax-test test/f16-avgpool-minmax.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-avgpool-minmax-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f16-avgpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-avgpool-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-avgpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-avgpool-minmax-test COMMAND f16-avgpool-minmax-test)
+ 
+   ADD_EXECUTABLE(f16-conv-hwc2chw-test test/f16-conv-hwc2chw.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-conv-hwc2chw-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f16-conv-hwc2chw-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-conv-hwc2chw-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-conv-hwc2chw-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
+   ADD_TEST(NAME f16-conv-hwc2chw-test COMMAND f16-conv-hwc2chw-test)
+ 
+   ADD_EXECUTABLE(f16-dwconv-unipass-minmax-test test/f16-dwconv-unipass-minmax.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-dwconv-unipass-minmax-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f16-dwconv-unipass-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-dwconv-unipass-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-dwconv-unipass-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
+   ADD_TEST(NAME f16-dwconv-unipass-minmax-test COMMAND f16-dwconv-unipass-minmax-test)
+ 
+   ADD_EXECUTABLE(f16-dwconv2d-chw-test test/f16-dwconv2d-chw.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-dwconv2d-chw-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f16-dwconv2d-chw-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-dwconv2d-chw-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-dwconv2d-chw-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
+   ADD_TEST(NAME f16-dwconv2d-chw-test COMMAND f16-dwconv2d-chw-test)
+ 
+   ADD_EXECUTABLE(f16-gavgpool-minmax-test test/f16-gavgpool-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-gavgpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-gavgpool-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-gavgpool-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-gavgpool-minmax-test f16-gavgpool-minmax-test)
- 
-   ADD_EXECUTABLE(f16-gemm-minmax-test test/f16-gemm-minmax.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -7111,7 +7100,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-gavgpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-gavgpool-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-gavgpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-gavgpool-minmax-test COMMAND f16-gavgpool-minmax-test)
+ 
+   ADD_EXECUTABLE(f16-gemm-minmax-test test/f16-gemm-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-gemm-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-gemm-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main gemm-microkernel-tester)
-+  TARGET_LINK_LIBRARIES(f16-gemm-minmax-test PRIVATE cpuinfo gtest gtest_main gemm-microkernel-tester)
-   ADD_TEST(f16-gemm-minmax-test f16-gemm-minmax-test)
- 
-   ADD_EXECUTABLE(f16-ibilinear-test test/f16-ibilinear.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7120,7 +7109,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-gemm-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-gemm-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-gemm-minmax-test PRIVATE gemm-microkernel-tester hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-gemm-minmax-test COMMAND f16-gemm-minmax-test)
+ 
+   ADD_EXECUTABLE(f16-ibilinear-chw-test test/f16-ibilinear-chw.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-ibilinear-chw-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f16-ibilinear-chw-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-ibilinear-chw-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-ibilinear-chw-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f16-ibilinear-chw-test COMMAND f16-ibilinear-chw-test)
+ 
+   ADD_EXECUTABLE(f16-ibilinear-test test/f16-ibilinear.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-ibilinear-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-ibilinear-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-ibilinear-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-ibilinear-test f16-ibilinear-test)
- 
-   ADD_EXECUTABLE(f16-igemm-minmax-test test/f16-igemm-minmax.cc $<TARGET_OBJECTS:all_microkernels>  $<TARGET_OBJECTS:packing>)
-@@ -7129,7 +7118,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-ibilinear-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-ibilinear-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-ibilinear-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f16-ibilinear-test COMMAND f16-ibilinear-test)
+ 
+   ADD_EXECUTABLE(f16-igemm-minmax-test test/f16-igemm-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-igemm-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-igemm-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main gemm-microkernel-tester)
-+  TARGET_LINK_LIBRARIES(f16-igemm-minmax-test PRIVATE cpuinfo gtest gtest_main gemm-microkernel-tester)
-   ADD_TEST(f16-igemm-minmax-test f16-igemm-minmax-test)
- 
-   ADD_EXECUTABLE(f16-maxpool-minmax-test test/f16-maxpool-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7138,7 +7127,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-igemm-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-igemm-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-igemm-minmax-test PRIVATE gemm-microkernel-tester hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-igemm-minmax-test COMMAND f16-igemm-minmax-test)
+ 
+   ADD_EXECUTABLE(f16-maxpool-minmax-test test/f16-maxpool-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-maxpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-maxpool-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-maxpool-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-maxpool-minmax-test f16-maxpool-minmax-test)
- 
-   ADD_EXECUTABLE(f16-spmm-minmax-test test/f16-spmm-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7147,7 +7136,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-maxpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-maxpool-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-maxpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-maxpool-minmax-test COMMAND f16-maxpool-minmax-test)
+ 
+   ADD_EXECUTABLE(f16-spmm-minmax-test test/f16-spmm-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-spmm-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-spmm-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-spmm-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-spmm-minmax-test f16-spmm-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vadd-minmax-test test/f16-vadd-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7156,7 +7145,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-spmm-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-spmm-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-spmm-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-spmm-minmax-test COMMAND f16-spmm-minmax-test)
+ 
+   ADD_EXECUTABLE(f16-rmax-test test/f16-rmax.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-rmax-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f16-rmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-rmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-rmax-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f16-rmax-test COMMAND f16-rmax-test)
+ 
+   ADD_EXECUTABLE(f16-vabs-test test/f16-vabs.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-vabs-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f16-vabs-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vabs-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vabs-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-vabs-test COMMAND f16-vabs-test)
+ 
+   ADD_EXECUTABLE(f16-vadd-minmax-test test/f16-vadd-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-vadd-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vadd-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vadd-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-vadd-minmax-test f16-vadd-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vaddc-minmax-test test/f16-vaddc-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7165,7 +7154,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-vadd-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vadd-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vadd-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-vadd-minmax-test COMMAND f16-vadd-minmax-test)
+ 
+   ADD_EXECUTABLE(f16-vaddc-minmax-test test/f16-vaddc-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-vaddc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vaddc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vaddc-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-vaddc-minmax-test f16-vaddc-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vclamp-test test/f16-vclamp.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7174,7 +7163,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-vaddc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vaddc-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vaddc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-vaddc-minmax-test COMMAND f16-vaddc-minmax-test)
+ 
+   ADD_EXECUTABLE(f16-vclamp-test test/f16-vclamp.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-vclamp-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vclamp-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vclamp-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-vclamp-test f16-vclamp-test)
- 
-   ADD_EXECUTABLE(f16-vdiv-minmax-test test/f16-vdiv-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7183,7 +7172,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-vclamp-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vclamp-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vclamp-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-vclamp-test COMMAND f16-vclamp-test)
+ 
+   ADD_EXECUTABLE(f16-vdiv-minmax-test test/f16-vdiv-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-vdiv-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vdiv-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vdiv-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-vdiv-minmax-test f16-vdiv-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vdivc-minmax-test test/f16-vdivc-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7192,7 +7181,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-vdiv-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vdiv-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vdiv-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-vdiv-minmax-test COMMAND f16-vdiv-minmax-test)
+ 
+   ADD_EXECUTABLE(f16-vdivc-minmax-test test/f16-vdivc-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-vdivc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vdivc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vdivc-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-vdivc-minmax-test f16-vdivc-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vrdivc-minmax-test test/f16-vrdivc-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7201,7 +7190,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-vdivc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vdivc-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vdivc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-vdivc-minmax-test COMMAND f16-vdivc-minmax-test)
+ 
+   ADD_EXECUTABLE(f16-vrdivc-minmax-test test/f16-vrdivc-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-vrdivc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vrdivc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vrdivc-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-vrdivc-minmax-test f16-vrdivc-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vhswish-test test/f16-vhswish.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7210,7 +7199,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-vrdivc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vrdivc-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vrdivc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-vrdivc-minmax-test COMMAND f16-vrdivc-minmax-test)
+ 
+   ADD_EXECUTABLE(f16-velu-test test/f16-velu.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-velu-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f16-velu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-velu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-velu-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-velu-test COMMAND f16-velu-test)
+ 
+   ADD_EXECUTABLE(f16-vhswish-test test/f16-vhswish.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-vhswish-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vhswish-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vhswish-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-vhswish-test f16-vhswish-test)
- 
-   ADD_EXECUTABLE(f16-vlrelu-test test/f16-vlrelu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7219,7 +7208,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-vhswish-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vhswish-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vhswish-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-vhswish-test COMMAND f16-vhswish-test)
+ 
+   ADD_EXECUTABLE(f16-vlrelu-test test/f16-vlrelu.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-vlrelu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vlrelu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vlrelu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-vlrelu-test f16-vlrelu-test)
- 
-   ADD_EXECUTABLE(f16-vmax-test test/f16-vmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7228,7 +7217,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-vlrelu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vlrelu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vlrelu-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-vlrelu-test COMMAND f16-vlrelu-test)
+ 
+   ADD_EXECUTABLE(f16-vmax-test test/f16-vmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-vmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-vmax-test f16-vmax-test)
- 
-   ADD_EXECUTABLE(f16-vmaxc-test test/f16-vmaxc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7237,7 +7226,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-vmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vmax-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f16-vmax-test COMMAND f16-vmax-test)
+ 
+   ADD_EXECUTABLE(f16-vmaxc-test test/f16-vmaxc.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-vmaxc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vmaxc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vmaxc-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-vmaxc-test f16-vmaxc-test)
- 
-   ADD_EXECUTABLE(f16-vmin-test test/f16-vmin.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7246,7 +7235,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-vmaxc-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vmaxc-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vmaxc-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f16-vmaxc-test COMMAND f16-vmaxc-test)
+ 
+   ADD_EXECUTABLE(f16-vmin-test test/f16-vmin.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-vmin-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vmin-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vmin-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-vmin-test f16-vmin-test)
- 
-   ADD_EXECUTABLE(f16-vminc-test test/f16-vminc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7255,7 +7244,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-vmin-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vmin-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vmin-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f16-vmin-test COMMAND f16-vmin-test)
+ 
+   ADD_EXECUTABLE(f16-vminc-test test/f16-vminc.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-vminc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vminc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vminc-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-vminc-test f16-vminc-test)
- 
-   ADD_EXECUTABLE(f16-vmul-minmax-test test/f16-vmul-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7264,7 +7253,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-vminc-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vminc-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vminc-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f16-vminc-test COMMAND f16-vminc-test)
+ 
+   ADD_EXECUTABLE(f16-vmul-minmax-test test/f16-vmul-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-vmul-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vmul-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vmul-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-vmul-minmax-test f16-vmul-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vmulc-minmax-test test/f16-vmulc-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7273,7 +7262,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-vmul-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vmul-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vmul-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-vmul-minmax-test COMMAND f16-vmul-minmax-test)
+ 
+   ADD_EXECUTABLE(f16-vmulc-minmax-test test/f16-vmulc-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-vmulc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vmulc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vmulc-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-vmulc-minmax-test f16-vmulc-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vmulcaddc-minmax-test test/f16-vmulcaddc-minmax.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -7282,7 +7271,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-vmulc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vmulc-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vmulc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-vmulc-minmax-test COMMAND f16-vmulc-minmax-test)
+ 
+   ADD_EXECUTABLE(f16-vmulcaddc-minmax-test test/f16-vmulcaddc-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-vmulcaddc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vmulcaddc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vmulcaddc-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-vmulcaddc-minmax-test f16-vmulcaddc-minmax-test)
- 
-   ADD_EXECUTABLE(f16-prelu-test test/f16-prelu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7291,7 +7280,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-vmulcaddc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vmulcaddc-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vmulcaddc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
+   ADD_TEST(NAME f16-vmulcaddc-minmax-test COMMAND f16-vmulcaddc-minmax-test)
+ 
+   ADD_EXECUTABLE(f16-vneg-test test/f16-vneg.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-vneg-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f16-vneg-test PRIVATE fp16 pthreadpool gtest gtest_main microparams-init)
++  TARGET_LINK_LIBRARIES(f16-vneg-test PRIVATE gtest gtest_main microparams-init)
+   TARGET_LINK_LIBRARIES(f16-vneg-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-vneg-test COMMAND f16-vneg-test)
+ 
+   ADD_EXECUTABLE(f16-pavgpool-minmax-test test/f16-pavgpool-minmax.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-pavgpool-minmax-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f16-pavgpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-pavgpool-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-pavgpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-pavgpool-minmax-test COMMAND f16-pavgpool-minmax-test)
+ 
+   ADD_EXECUTABLE(f16-prelu-test test/f16-prelu.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-prelu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-prelu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-prelu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-prelu-test f16-prelu-test)
- 
-   ADD_EXECUTABLE(f16-vsub-minmax-test test/f16-vsub-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7300,7 +7289,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-prelu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-prelu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-prelu-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f16-prelu-test COMMAND f16-prelu-test)
+ 
+   ADD_EXECUTABLE(f16-raddstoreexpminusmax-test test/f16-raddstoreexpminusmax.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-raddstoreexpminusmax-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f16-raddstoreexpminusmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-raddstoreexpminusmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-raddstoreexpminusmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-raddstoreexpminusmax-test COMMAND f16-raddstoreexpminusmax-test)
+ 
+   ADD_EXECUTABLE(f16-vrndne-test test/f16-vrndne.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-vrndne-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f16-vrndne-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vrndne-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vrndne-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f16-vrndne-test COMMAND f16-vrndne-test)
+ 
+   ADD_EXECUTABLE(f16-vrndz-test test/f16-vrndz.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-vrndz-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f16-vrndz-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vrndz-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vrndz-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f16-vrndz-test COMMAND f16-vrndz-test)
+ 
+   ADD_EXECUTABLE(f16-vrndu-test test/f16-vrndu.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-vrndu-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f16-vrndu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vrndu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vrndu-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f16-vrndu-test COMMAND f16-vrndu-test)
+ 
+   ADD_EXECUTABLE(f16-vrndd-test test/f16-vrndd.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-vrndd-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f16-vrndd-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vrndd-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vrndd-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f16-vrndd-test COMMAND f16-vrndd-test)
+ 
+   ADD_EXECUTABLE(f16-vsigmoid-test test/f16-vsigmoid.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-vsigmoid-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f16-vsigmoid-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vsigmoid-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vsigmoid-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-vsigmoid-test COMMAND f16-vsigmoid-test)
+ 
+   ADD_EXECUTABLE(f16-vsqr-test test/f16-vsqr.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-vsqr-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f16-vsqr-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vsqr-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vsqr-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f16-vsqr-test COMMAND f16-vsqr-test)
+ 
+   ADD_EXECUTABLE(f16-vsqrt-test test/f16-vsqrt.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-vsqrt-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f16-vsqrt-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vsqrt-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vsqrt-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f16-vsqrt-test COMMAND f16-vsqrt-test)
+ 
+   ADD_EXECUTABLE(f16-vsub-minmax-test test/f16-vsub-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-vsub-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vsub-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vsub-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-vsub-minmax-test f16-vsub-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vsubc-minmax-test test/f16-vsubc-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7309,7 +7298,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-vsub-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vsub-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vsub-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-vsub-minmax-test COMMAND f16-vsub-minmax-test)
+ 
+   ADD_EXECUTABLE(f16-vsubc-minmax-test test/f16-vsubc-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-vsubc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vsubc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vsubc-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-vsubc-minmax-test f16-vsubc-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vrsubc-minmax-test test/f16-vrsubc-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7318,7 +7307,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-vsubc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vsubc-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vsubc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-vsubc-minmax-test COMMAND f16-vsubc-minmax-test)
+ 
+   ADD_EXECUTABLE(f16-vrsubc-minmax-test test/f16-vrsubc-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-vrsubc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vrsubc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vrsubc-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f16-vrsubc-minmax-test f16-vrsubc-minmax-test)
- 
-   ADD_EXECUTABLE(f32-argmaxpool-test test/f32-argmaxpool.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7327,7 +7316,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f16-vrsubc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-vrsubc-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-vrsubc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f16-vrsubc-minmax-test COMMAND f16-vrsubc-minmax-test)
+ 
+   ADD_EXECUTABLE(f32-argmaxpool-test test/f32-argmaxpool.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-argmaxpool-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-argmaxpool-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-argmaxpool-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-argmaxpool-test f32-argmaxpool-test)
- 
-   ADD_EXECUTABLE(f32-avgpool-minmax-test test/f32-avgpool-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7336,7 +7325,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-argmaxpool-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-argmaxpool-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-argmaxpool-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-argmaxpool-test COMMAND f32-argmaxpool-test)
+ 
+   ADD_EXECUTABLE(f32-avgpool-minmax-test test/f32-avgpool-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-avgpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-avgpool-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-avgpool-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-avgpool-minmax-test f32-avgpool-minmax-test)
- 
-   ADD_EXECUTABLE(f32-conv-hwc-test test/f32-conv-hwc.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -7345,7 +7334,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-avgpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-avgpool-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-avgpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-avgpool-minmax-test COMMAND f32-avgpool-minmax-test)
+ 
+   ADD_EXECUTABLE(f32-conv-hwc-test test/f32-conv-hwc.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-conv-hwc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-conv-hwc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-conv-hwc-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-conv-hwc-test f32-conv-hwc-test)
- 
-   ADD_EXECUTABLE(f32-conv-hwc2chw-test test/f32-conv-hwc2chw.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -7354,7 +7343,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-conv-hwc-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-conv-hwc-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-conv-hwc-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
+   ADD_TEST(NAME f32-conv-hwc-test COMMAND f32-conv-hwc-test)
+ 
+   ADD_EXECUTABLE(f32-conv-hwc2chw-test test/f32-conv-hwc2chw.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-conv-hwc2chw-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-conv-hwc2chw-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-conv-hwc2chw-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-conv-hwc2chw-test f32-conv-hwc2chw-test)
- 
-   ADD_EXECUTABLE(f32-dwconv-test test/f32-dwconv.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -7363,7 +7352,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(f32-dwconv-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-dwconv-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-dwconv-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-dwconv-test f32-dwconv-test)
- 
-   ADD_EXECUTABLE(f32-dwconv2d-chw-test test/f32-dwconv2d-chw.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7372,7 +7361,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-conv-hwc2chw-test PRIVATE fp16 pthreadpool gtest gtest_main microparams-init)
++  TARGET_LINK_LIBRARIES(f32-conv-hwc2chw-test PRIVATE gtest gtest_main microparams-init)
+   TARGET_LINK_LIBRARIES(f32-conv-hwc2chw-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
+   ADD_TEST(NAME f32-conv-hwc2chw-test COMMAND f32-conv-hwc2chw-test)
+ 
+   ADD_EXECUTABLE(f32-dwconv2d-chw-test test/f32-dwconv2d-chw.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-dwconv2d-chw-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-dwconv2d-chw-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-dwconv2d-chw-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-dwconv2d-chw-test f32-dwconv2d-chw-test)
- 
-   ADD_EXECUTABLE(f32-dwconv-minmax-test test/f32-dwconv-minmax.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -7381,7 +7370,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(f32-dwconv-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-dwconv-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-dwconv-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-dwconv-minmax-test f32-dwconv-minmax-test)
- 
-   ADD_EXECUTABLE(f32-f16-vcvt-test test/f32-f16-vcvt.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7390,7 +7379,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-dwconv2d-chw-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-dwconv2d-chw-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-dwconv2d-chw-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-dwconv2d-chw-test COMMAND f32-dwconv2d-chw-test)
+ 
+   ADD_EXECUTABLE(f32-dwconv-multipass-test test/f32-dwconv-multipass.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-dwconv-multipass-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f32-dwconv-multipass-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-dwconv-multipass-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-dwconv-multipass-test PRIVATE hardware-config logging microkernel-utils microkernels-all microparams-init packing)
+   ADD_TEST(NAME f32-dwconv-multipass-test COMMAND f32-dwconv-multipass-test)
+ 
+   ADD_EXECUTABLE(f32-dwconv-multipass-minmax-test test/f32-dwconv-multipass-minmax.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-dwconv-multipass-minmax-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f32-dwconv-multipass-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-dwconv-multipass-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-dwconv-multipass-minmax-test PRIVATE hardware-config logging microkernel-utils microkernels-all microparams-init packing)
+   ADD_TEST(NAME f32-dwconv-multipass-minmax-test COMMAND f32-dwconv-multipass-minmax-test)
+ 
+   ADD_EXECUTABLE(f32-dwconv-unipass-test test/f32-dwconv-unipass.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-dwconv-unipass-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f32-dwconv-unipass-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-dwconv-unipass-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-dwconv-unipass-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
+   ADD_TEST(NAME f32-dwconv-unipass-test COMMAND f32-dwconv-unipass-test)
+ 
+   ADD_EXECUTABLE(f32-dwconv-unipass-minmax-test test/f32-dwconv-unipass-minmax.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-dwconv-unipass-minmax-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(f32-dwconv-unipass-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-dwconv-unipass-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-dwconv-unipass-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
+   ADD_TEST(NAME f32-dwconv-unipass-minmax-test COMMAND f32-dwconv-unipass-minmax-test)
+ 
+   ADD_EXECUTABLE(f32-f16-vcvt-test test/f32-f16-vcvt.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-f16-vcvt-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-f16-vcvt-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-f16-vcvt-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-f16-vcvt-test f32-f16-vcvt-test)
- 
-   ADD_EXECUTABLE(f32-qs8-vcvt-test test/f32-f16-vcvt.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7399,7 +7388,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-f16-vcvt-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-f16-vcvt-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-f16-vcvt-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-f16-vcvt-test COMMAND f32-f16-vcvt-test)
+ 
+   ADD_EXECUTABLE(f32-qs8-vcvt-test test/f32-qs8-vcvt.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-qs8-vcvt-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-qs8-vcvt-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-qs8-vcvt-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-qs8-vcvt-test f32-qs8-vcvt-test)
- 
-   ADD_EXECUTABLE(f32-qu8-vcvt-test test/f32-f16-vcvt.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7408,7 +7397,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-qs8-vcvt-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-qs8-vcvt-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-qs8-vcvt-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-qs8-vcvt-test COMMAND f32-qs8-vcvt-test)
+ 
+   ADD_EXECUTABLE(f32-qu8-vcvt-test test/f32-qu8-vcvt.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-qu8-vcvt-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-qu8-vcvt-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-qu8-vcvt-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-qu8-vcvt-test f32-qu8-vcvt-test)
- 
-   ADD_EXECUTABLE(f32-gavgpool-cw-test test/f32-gavgpool-cw.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7417,7 +7406,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-qu8-vcvt-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-qu8-vcvt-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-qu8-vcvt-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-qu8-vcvt-test COMMAND f32-qu8-vcvt-test)
+ 
+   ADD_EXECUTABLE(f32-gavgpool-cw-test test/f32-gavgpool-cw.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-gavgpool-cw-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-gavgpool-cw-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-gavgpool-cw-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-gavgpool-cw-test f32-gavgpool-cw-test)
- 
-   ADD_EXECUTABLE(f32-gavgpool-minmax-test test/f32-gavgpool-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7426,7 +7415,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-gavgpool-cw-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-gavgpool-cw-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-gavgpool-cw-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-gavgpool-cw-test COMMAND f32-gavgpool-cw-test)
+ 
+   ADD_EXECUTABLE(f32-gavgpool-minmax-test test/f32-gavgpool-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-gavgpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-gavgpool-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-gavgpool-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-gavgpool-minmax-test f32-gavgpool-minmax-test)
- 
-   ADD_EXECUTABLE(f32-gemm-test test/f32-gemm.cc test/f32-gemm-2.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -7435,7 +7424,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(f32-gemm-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-gemm-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main gemm-microkernel-tester)
-+  TARGET_LINK_LIBRARIES(f32-gemm-test PRIVATE cpuinfo gtest gtest_main gemm-microkernel-tester)
-   ADD_TEST(f32-gemm-test f32-gemm-test)
- 
-   ADD_EXECUTABLE(f32-gemm-relu-test test/f32-gemm-relu.cc test/f32-gemm-relu-2.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -7444,7 +7433,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(f32-gemm-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-gemm-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main gemm-microkernel-tester)
-+  TARGET_LINK_LIBRARIES(f32-gemm-relu-test PRIVATE cpuinfo gtest gtest_main gemm-microkernel-tester)
-   ADD_TEST(f32-gemm-relu-test f32-gemm-relu-test)
- 
-   ADD_EXECUTABLE(f32-gemm-minmax-test test/f32-gemm-minmax.cc test/f32-gemm-minmax-2.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -7453,7 +7442,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(f32-gemm-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-gemm-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main jit gemm-microkernel-tester)
-+  TARGET_LINK_LIBRARIES(f32-gemm-minmax-test PRIVATE cpuinfo gtest gtest_main jit gemm-microkernel-tester)
-   ADD_TEST(f32-gemm-minmax-test f32-gemm-minmax-test)
- 
-   ADD_EXECUTABLE(f32-gemminc-minmax-test test/f32-gemminc-minmax.cc test/f32-gemminc-minmax-2.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -7462,7 +7451,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(f32-gemminc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-gemminc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main gemm-microkernel-tester)
-+  TARGET_LINK_LIBRARIES(f32-gemminc-minmax-test PRIVATE cpuinfo gtest gtest_main gemm-microkernel-tester)
-   ADD_TEST(f32-gemminc-minmax-test f32-gemminc-minmax-test)
- 
-   ADD_EXECUTABLE(f32-ibilinear-test test/f32-ibilinear.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7471,7 +7460,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-gavgpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-gavgpool-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-gavgpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-gavgpool-minmax-test COMMAND f32-gavgpool-minmax-test)
+ 
+@@ -1975,13 +1942,13 @@
+ 
+   ADD_EXECUTABLE(f32-ibilinear-test test/f32-ibilinear.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-ibilinear-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-ibilinear-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-ibilinear-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-ibilinear-test f32-ibilinear-test)
- 
-   ADD_EXECUTABLE(f32-ibilinear-chw-test test/f32-ibilinear-chw.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7480,7 +7469,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-ibilinear-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-ibilinear-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-ibilinear-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-ibilinear-test COMMAND f32-ibilinear-test)
+ 
+   ADD_EXECUTABLE(f32-ibilinear-chw-test test/f32-ibilinear-chw.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-ibilinear-chw-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-ibilinear-chw-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-ibilinear-chw-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-ibilinear-chw-test f32-ibilinear-chw-test)
- 
-   ADD_EXECUTABLE(f32-igemm-test test/f32-igemm.cc test/f32-igemm-2.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -7489,7 +7478,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(f32-igemm-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-igemm-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main gemm-microkernel-tester)
-+  TARGET_LINK_LIBRARIES(f32-igemm-test PRIVATE cpuinfo gtest gtest_main gemm-microkernel-tester)
-   ADD_TEST(f32-igemm-test f32-igemm-test)
- 
-   ADD_EXECUTABLE(f32-igemm-relu-test test/f32-igemm-relu.cc test/f32-igemm-relu-2.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -7498,7 +7487,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(f32-igemm-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-igemm-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main gemm-microkernel-tester)
-+  TARGET_LINK_LIBRARIES(f32-igemm-relu-test PRIVATE cpuinfo gtest gtest_main gemm-microkernel-tester)
-   ADD_TEST(f32-igemm-relu-test f32-igemm-relu-test)
- 
-   ADD_EXECUTABLE(f32-igemm-minmax-test test/f32-igemm-minmax.cc test/f32-igemm-minmax-2.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -7511,7 +7500,7 @@
-     # Work-around for "too many sections" error
-     TARGET_COMPILE_OPTIONS(f32-igemm-minmax-test PRIVATE "$<$<NOT:$<OR:$<CONFIG:Release>,$<CONFIG:MinSizeRel>>>:-Wa,-mbig-obj>")
-   ENDIF()
--  TARGET_LINK_LIBRARIES(f32-igemm-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main jit gemm-microkernel-tester)
-+  TARGET_LINK_LIBRARIES(f32-igemm-minmax-test PRIVATE cpuinfo gtest gtest_main jit gemm-microkernel-tester)
-   ADD_TEST(f32-igemm-minmax-test f32-igemm-minmax-test)
- 
-   ADD_EXECUTABLE(f32-maxpool-minmax-test test/f32-maxpool-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7520,7 +7509,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-ibilinear-chw-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-ibilinear-chw-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-ibilinear-chw-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-ibilinear-chw-test COMMAND f32-ibilinear-chw-test)
+ 
+@@ -2016,13 +1983,13 @@
+ 
+   ADD_EXECUTABLE(f32-maxpool-minmax-test test/f32-maxpool-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-maxpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-maxpool-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-maxpool-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-maxpool-minmax-test f32-maxpool-minmax-test)
- 
-   ADD_EXECUTABLE(f32-pavgpool-minmax-test test/f32-pavgpool-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7529,7 +7518,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-maxpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-maxpool-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-maxpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-maxpool-minmax-test COMMAND f32-maxpool-minmax-test)
+ 
+   ADD_EXECUTABLE(f32-pavgpool-minmax-test test/f32-pavgpool-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-pavgpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-pavgpool-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-pavgpool-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-pavgpool-minmax-test f32-pavgpool-minmax-test)
- 
-   ADD_EXECUTABLE(f32-ppmm-minmax-test test/f32-ppmm-minmax.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -7538,7 +7527,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(f32-ppmm-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-ppmm-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main gemm-microkernel-tester)
-+  TARGET_LINK_LIBRARIES(f32-ppmm-minmax-test PRIVATE cpuinfo gtest gtest_main gemm-microkernel-tester)
-   ADD_TEST(f32-ppmm-minmax-test f32-ppmm-minmax-test)
- 
-   ADD_EXECUTABLE(f32-prelu-test test/f32-prelu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7547,7 +7536,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-pavgpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-pavgpool-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-pavgpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-pavgpool-minmax-test COMMAND f32-pavgpool-minmax-test)
+ 
+@@ -2034,259 +2001,259 @@
+ 
+   ADD_EXECUTABLE(f32-prelu-test test/f32-prelu.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-prelu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-prelu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-prelu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-prelu-test f32-prelu-test)
- 
-   ADD_EXECUTABLE(f32-raddexpminusmax-test test/f32-raddexpminusmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7556,7 +7545,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-prelu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-prelu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-prelu-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-prelu-test COMMAND f32-prelu-test)
+ 
+   ADD_EXECUTABLE(f32-raddexpminusmax-test test/f32-raddexpminusmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-raddexpminusmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-raddexpminusmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-raddexpminusmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-raddexpminusmax-test f32-raddexpminusmax-test)
- 
-   ADD_EXECUTABLE(f32-raddextexp-test test/f32-raddextexp.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7565,7 +7554,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-raddexpminusmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-raddexpminusmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-raddexpminusmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-raddexpminusmax-test COMMAND f32-raddexpminusmax-test)
+ 
+   ADD_EXECUTABLE(f32-raddextexp-test test/f32-raddextexp.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-raddextexp-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-raddextexp-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-raddextexp-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-raddextexp-test f32-raddextexp-test)
- 
-   ADD_EXECUTABLE(f32-raddstoreexpminusmax-test test/f32-raddstoreexpminusmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7574,7 +7563,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-raddextexp-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-raddextexp-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-raddextexp-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-raddextexp-test COMMAND f32-raddextexp-test)
+ 
+   ADD_EXECUTABLE(f32-raddstoreexpminusmax-test test/f32-raddstoreexpminusmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-raddstoreexpminusmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-raddstoreexpminusmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-raddstoreexpminusmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-raddstoreexpminusmax-test f32-raddstoreexpminusmax-test)
- 
-   ADD_EXECUTABLE(f32-rmax-test test/f32-rmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7583,7 +7572,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-raddstoreexpminusmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-raddstoreexpminusmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-raddstoreexpminusmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-raddstoreexpminusmax-test COMMAND f32-raddstoreexpminusmax-test)
+ 
+   ADD_EXECUTABLE(f32-rmax-test test/f32-rmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-rmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-rmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-rmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-rmax-test f32-rmax-test)
- 
-   ADD_EXECUTABLE(f32-spmm-minmax-test test/f32-spmm-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7592,7 +7581,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-rmax-test PRIVATE fp16 pthreadpool gtest gtest_main microparams-init)
++  TARGET_LINK_LIBRARIES(f32-rmax-test PRIVATE gtest gtest_main microparams-init)
+   TARGET_LINK_LIBRARIES(f32-rmax-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-rmax-test COMMAND f32-rmax-test)
+ 
+   ADD_EXECUTABLE(f32-spmm-minmax-test test/f32-spmm-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-spmm-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-spmm-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-spmm-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-spmm-minmax-test f32-spmm-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vabs-test test/f32-vabs.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7601,7 +7590,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-spmm-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-spmm-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-spmm-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-spmm-minmax-test COMMAND f32-spmm-minmax-test)
+ 
+   ADD_EXECUTABLE(f32-vabs-test test/f32-vabs.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vabs-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vabs-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vabs-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vabs-test f32-vabs-test)
- 
-   ADD_EXECUTABLE(f32-vadd-test test/f32-vadd.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7610,7 +7599,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vabs-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vabs-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vabs-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vabs-test COMMAND f32-vabs-test)
+ 
+   ADD_EXECUTABLE(f32-vadd-test test/f32-vadd.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vadd-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vadd-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vadd-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vadd-test f32-vadd-test)
- 
-   ADD_EXECUTABLE(f32-vadd-minmax-test test/f32-vadd-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7619,7 +7608,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vadd-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vadd-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vadd-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-vadd-test COMMAND f32-vadd-test)
+ 
+   ADD_EXECUTABLE(f32-vadd-minmax-test test/f32-vadd-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vadd-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vadd-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vadd-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vadd-minmax-test f32-vadd-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vadd-relu-test test/f32-vadd-relu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7628,7 +7617,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vadd-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vadd-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vadd-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vadd-minmax-test COMMAND f32-vadd-minmax-test)
+ 
+   ADD_EXECUTABLE(f32-vadd-relu-test test/f32-vadd-relu.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vadd-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vadd-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vadd-relu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vadd-relu-test f32-vadd-relu-test)
- 
-   ADD_EXECUTABLE(f32-vaddc-test test/f32-vaddc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7637,7 +7626,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vadd-relu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vadd-relu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vadd-relu-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-vadd-relu-test COMMAND f32-vadd-relu-test)
+ 
+   ADD_EXECUTABLE(f32-vaddc-test test/f32-vaddc.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vaddc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vaddc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vaddc-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vaddc-test f32-vaddc-test)
- 
-   ADD_EXECUTABLE(f32-vaddc-minmax-test test/f32-vaddc-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7646,7 +7635,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vaddc-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vaddc-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vaddc-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-vaddc-test COMMAND f32-vaddc-test)
+ 
+   ADD_EXECUTABLE(f32-vaddc-minmax-test test/f32-vaddc-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vaddc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vaddc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vaddc-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vaddc-minmax-test f32-vaddc-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vaddc-relu-test test/f32-vaddc-relu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7655,7 +7644,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vaddc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vaddc-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vaddc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vaddc-minmax-test COMMAND f32-vaddc-minmax-test)
+ 
+   ADD_EXECUTABLE(f32-vaddc-relu-test test/f32-vaddc-relu.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vaddc-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vaddc-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vaddc-relu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vaddc-relu-test f32-vaddc-relu-test)
- 
-   ADD_EXECUTABLE(f32-vclamp-test test/f32-vclamp.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7664,7 +7653,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vaddc-relu-test PRIVATE fp16 pthreadpool gtest gtest_main microparams-init)
++  TARGET_LINK_LIBRARIES(f32-vaddc-relu-test PRIVATE gtest gtest_main microparams-init)
+   TARGET_LINK_LIBRARIES(f32-vaddc-relu-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-vaddc-relu-test COMMAND f32-vaddc-relu-test)
+ 
+   ADD_EXECUTABLE(f32-vclamp-test test/f32-vclamp.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vclamp-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vclamp-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vclamp-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vclamp-test f32-vclamp-test)
- 
-   ADD_EXECUTABLE(f32-vhswish-test test/f32-vhswish.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7673,7 +7662,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vclamp-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vclamp-test PRIVATE test gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vclamp-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vclamp-test COMMAND f32-vclamp-test)
+ 
+   ADD_EXECUTABLE(f32-vhswish-test test/f32-vhswish.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vhswish-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vhswish-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vhswish-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vhswish-test f32-vhswish-test)
- 
-   ADD_EXECUTABLE(f32-vdiv-test test/f32-vdiv.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7682,7 +7671,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vhswish-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vhswish-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vhswish-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vhswish-test COMMAND f32-vhswish-test)
+ 
+   ADD_EXECUTABLE(f32-vdiv-test test/f32-vdiv.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vdiv-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vdiv-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vdiv-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vdiv-test f32-vdiv-test)
- 
-   ADD_EXECUTABLE(f32-vdiv-minmax-test test/f32-vdiv-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7691,7 +7680,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vdiv-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vdiv-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vdiv-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-vdiv-test COMMAND f32-vdiv-test)
+ 
+   ADD_EXECUTABLE(f32-vdiv-minmax-test test/f32-vdiv-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vdiv-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vdiv-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vdiv-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vdiv-minmax-test f32-vdiv-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vdiv-relu-test test/f32-vdiv-relu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7700,7 +7689,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vdiv-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vdiv-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vdiv-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vdiv-minmax-test COMMAND f32-vdiv-minmax-test)
+ 
+   ADD_EXECUTABLE(f32-vdiv-relu-test test/f32-vdiv-relu.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vdiv-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vdiv-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vdiv-relu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vdiv-relu-test f32-vdiv-relu-test)
- 
-   ADD_EXECUTABLE(f32-vdivc-test test/f32-vdivc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7709,7 +7698,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vdiv-relu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vdiv-relu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vdiv-relu-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-vdiv-relu-test COMMAND f32-vdiv-relu-test)
+ 
+   ADD_EXECUTABLE(f32-vdivc-test test/f32-vdivc.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vdivc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vdivc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vdivc-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vdivc-test f32-vdivc-test)
- 
-   ADD_EXECUTABLE(f32-vdivc-minmax-test test/f32-vdivc-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7718,7 +7707,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vdivc-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vdivc-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vdivc-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-vdivc-test COMMAND f32-vdivc-test)
+ 
+   ADD_EXECUTABLE(f32-vdivc-minmax-test test/f32-vdivc-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vdivc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vdivc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vdivc-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vdivc-minmax-test f32-vdivc-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vdivc-relu-test test/f32-vdivc-relu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7727,7 +7716,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vdivc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vdivc-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vdivc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vdivc-minmax-test COMMAND f32-vdivc-minmax-test)
+ 
+   ADD_EXECUTABLE(f32-vdivc-relu-test test/f32-vdivc-relu.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vdivc-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vdivc-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vdivc-relu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vdivc-relu-test f32-vdivc-relu-test)
- 
-   ADD_EXECUTABLE(f32-vrdivc-test test/f32-vrdivc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7736,7 +7725,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vdivc-relu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vdivc-relu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vdivc-relu-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-vdivc-relu-test COMMAND f32-vdivc-relu-test)
+ 
+   ADD_EXECUTABLE(f32-vrdivc-test test/f32-vrdivc.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vrdivc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrdivc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrdivc-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vrdivc-test f32-vrdivc-test)
- 
-   ADD_EXECUTABLE(f32-vrdivc-minmax-test test/f32-vrdivc-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7745,7 +7734,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vrdivc-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vrdivc-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vrdivc-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-vrdivc-test COMMAND f32-vrdivc-test)
+ 
+   ADD_EXECUTABLE(f32-vrdivc-minmax-test test/f32-vrdivc-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vrdivc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrdivc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrdivc-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vrdivc-minmax-test f32-vrdivc-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vrdivc-relu-test test/f32-vrdivc-relu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7754,7 +7743,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vrdivc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vrdivc-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vrdivc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vrdivc-minmax-test COMMAND f32-vrdivc-minmax-test)
+ 
+   ADD_EXECUTABLE(f32-vrdivc-relu-test test/f32-vrdivc-relu.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vrdivc-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrdivc-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrdivc-relu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vrdivc-relu-test f32-vrdivc-relu-test)
- 
-   ADD_EXECUTABLE(f32-velu-test test/f32-velu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7763,7 +7752,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vrdivc-relu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vrdivc-relu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vrdivc-relu-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-vrdivc-relu-test COMMAND f32-vrdivc-relu-test)
+ 
+   ADD_EXECUTABLE(f32-velu-test test/f32-velu.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-velu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-velu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-velu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-velu-test f32-velu-test)
- 
-   ADD_EXECUTABLE(f32-vlrelu-test test/f32-vlrelu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7772,7 +7761,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-velu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-velu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-velu-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-velu-test COMMAND f32-velu-test)
+ 
+   ADD_EXECUTABLE(f32-vlrelu-test test/f32-vlrelu.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vlrelu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vlrelu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vlrelu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vlrelu-test f32-vlrelu-test)
- 
-   ADD_EXECUTABLE(f32-vmax-test test/f32-vmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7781,7 +7770,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vlrelu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vlrelu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vlrelu-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vlrelu-test COMMAND f32-vlrelu-test)
+ 
+   ADD_EXECUTABLE(f32-vmax-test test/f32-vmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vmax-test f32-vmax-test)
- 
-   ADD_EXECUTABLE(f32-vmaxc-test test/f32-vmaxc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7790,7 +7779,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vmax-test COMMAND f32-vmax-test)
+ 
+   ADD_EXECUTABLE(f32-vmaxc-test test/f32-vmaxc.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vmaxc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vmaxc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vmaxc-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vmaxc-test f32-vmaxc-test)
- 
-   ADD_EXECUTABLE(f32-vmin-test test/f32-vmin.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7799,7 +7788,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vmaxc-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vmaxc-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vmaxc-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vmaxc-test COMMAND f32-vmaxc-test)
+ 
+   ADD_EXECUTABLE(f32-vmin-test test/f32-vmin.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vmin-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vmin-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vmin-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vmin-test f32-vmin-test)
- 
-   ADD_EXECUTABLE(f32-vminc-test test/f32-vminc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7808,7 +7797,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vmin-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vmin-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vmin-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vmin-test COMMAND f32-vmin-test)
+ 
+   ADD_EXECUTABLE(f32-vminc-test test/f32-vminc.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vminc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vminc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vminc-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vminc-test f32-vminc-test)
- 
-   ADD_EXECUTABLE(f32-vmul-test test/f32-vmul.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7817,7 +7806,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vminc-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vminc-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vminc-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vminc-test COMMAND f32-vminc-test)
+ 
+   ADD_EXECUTABLE(f32-vmul-test test/f32-vmul.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vmul-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vmul-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vmul-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vmul-test f32-vmul-test)
- 
-   ADD_EXECUTABLE(f32-vmul-minmax-test test/f32-vmul-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7826,7 +7815,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vmul-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vmul-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vmul-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vmul-test COMMAND f32-vmul-test)
+ 
+   ADD_EXECUTABLE(f32-vmul-minmax-test test/f32-vmul-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vmul-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vmul-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vmul-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vmul-minmax-test f32-vmul-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vmul-relu-test test/f32-vmul-relu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7835,7 +7824,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vmul-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vmul-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vmul-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vmul-minmax-test COMMAND f32-vmul-minmax-test microparams-init)
+ 
+   ADD_EXECUTABLE(f32-vmul-relu-test test/f32-vmul-relu.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vmul-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vmul-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vmul-relu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vmul-relu-test f32-vmul-relu-test)
- 
-   ADD_EXECUTABLE(f32-vmulc-test test/f32-vmulc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7844,7 +7833,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vmul-relu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vmul-relu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vmul-relu-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vmul-relu-test COMMAND f32-vmul-relu-test)
+ 
+   ADD_EXECUTABLE(f32-vmulc-test test/f32-vmulc.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vmulc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vmulc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vmulc-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vmulc-test f32-vmulc-test)
- 
-   ADD_EXECUTABLE(f32-vmulc-minmax-test test/f32-vmulc-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7853,7 +7842,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vmulc-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vmulc-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vmulc-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vmulc-test COMMAND f32-vmulc-test)
+ 
+   ADD_EXECUTABLE(f32-vmulc-minmax-test test/f32-vmulc-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vmulc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vmulc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vmulc-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vmulc-minmax-test f32-vmulc-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vmulc-relu-test test/f32-vmulc-relu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7862,7 +7851,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vmulc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vmulc-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vmulc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vmulc-minmax-test COMMAND f32-vmulc-minmax-test)
+ 
+   ADD_EXECUTABLE(f32-vmulc-relu-test test/f32-vmulc-relu.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vmulc-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vmulc-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vmulc-relu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vmulc-relu-test f32-vmulc-relu-test)
- 
-   ADD_EXECUTABLE(f32-vmulcaddc-minmax-test test/f32-vmulcaddc-minmax.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -7871,7 +7860,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vmulc-relu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vmulc-relu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vmulc-relu-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vmulc-relu-test COMMAND f32-vmulc-relu-test)
+ 
+   ADD_EXECUTABLE(f32-vmulcaddc-minmax-test test/f32-vmulcaddc-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vmulcaddc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vmulcaddc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vmulcaddc-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vmulcaddc-minmax-test f32-vmulcaddc-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vneg-test test/f32-vneg.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7880,7 +7869,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vmulcaddc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vmulcaddc-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vmulcaddc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
+   ADD_TEST(NAME f32-vmulcaddc-minmax-test COMMAND f32-vmulcaddc-minmax-test)
+ 
+   ADD_EXECUTABLE(f32-vneg-test test/f32-vneg.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vneg-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vneg-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vneg-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vneg-test f32-vneg-test)
- 
-   ADD_EXECUTABLE(f32-vrelu-test test/f32-vrelu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7889,7 +7878,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vneg-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vneg-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vneg-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vneg-test COMMAND f32-vneg-test)
+ 
+   ADD_EXECUTABLE(f32-vrelu-test test/f32-vrelu.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vrelu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrelu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrelu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vrelu-test f32-vrelu-test)
- 
-   ADD_EXECUTABLE(f32-vrndne-test test/f32-vrndne.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7898,7 +7887,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vrelu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vrelu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vrelu-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-vrelu-test COMMAND f32-vrelu-test)
+ 
+   ADD_EXECUTABLE(f32-vrndne-test test/f32-vrndne.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vrndne-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrndne-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrndne-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vrndne-test f32-vrndne-test)
- 
-   ADD_EXECUTABLE(f32-vrndz-test test/f32-vrndz.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7907,7 +7896,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vrndne-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vrndne-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vrndne-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vrndne-test COMMAND f32-vrndne-test)
+ 
+   ADD_EXECUTABLE(f32-vrndz-test test/f32-vrndz.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vrndz-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrndz-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrndz-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vrndz-test f32-vrndz-test)
- 
-   ADD_EXECUTABLE(f32-vrndu-test test/f32-vrndu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7916,7 +7905,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vrndz-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vrndz-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vrndz-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vrndz-test COMMAND f32-vrndz-test)
+ 
+   ADD_EXECUTABLE(f32-vrndu-test test/f32-vrndu.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vrndu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrndu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrndu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vrndu-test f32-vrndu-test)
- 
-   ADD_EXECUTABLE(f32-vrndd-test test/f32-vrndd.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7925,7 +7914,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vrndu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vrndu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vrndu-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vrndu-test COMMAND f32-vrndu-test)
+ 
+   ADD_EXECUTABLE(f32-vrndd-test test/f32-vrndd.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vrndd-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrndd-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrndd-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vrndd-test f32-vrndd-test)
- 
-   ADD_EXECUTABLE(f32-vscaleexpminusmax-test test/f32-vscaleexpminusmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7934,7 +7923,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(f32-vscaleexpminusmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vscaleexpminusmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vscaleexpminusmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vscaleexpminusmax-test f32-vscaleexpminusmax-test)
- 
-   ADD_EXECUTABLE(f32-vscaleextexp-test test/f32-vscaleextexp.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7943,7 +7932,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(f32-vscaleextexp-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vscaleextexp-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vscaleextexp-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vscaleextexp-test f32-vscaleextexp-test)
- 
-   ADD_EXECUTABLE(f32-vsigmoid-test test/f32-vsigmoid.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7952,7 +7941,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vrndd-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vrndd-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vrndd-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vrndd-test COMMAND f32-vrndd-test)
+ 
+@@ -2304,91 +2271,91 @@
+ 
+   ADD_EXECUTABLE(f32-vsigmoid-test test/f32-vsigmoid.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vsigmoid-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsigmoid-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vsigmoid-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vsigmoid-test f32-vsigmoid-test)
- 
-   ADD_EXECUTABLE(f32-vsqr-test test/f32-vsqr.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7961,7 +7950,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vsigmoid-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vsigmoid-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vsigmoid-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vsigmoid-test COMMAND f32-vsigmoid-test)
+ 
+   ADD_EXECUTABLE(f32-vsqr-test test/f32-vsqr.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vsqr-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsqr-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vsqr-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vsqr-test f32-vsqr-test)
- 
-   ADD_EXECUTABLE(f32-vsqrdiff-test test/f32-vsqrdiff.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7970,7 +7959,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vsqr-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vsqr-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vsqr-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vsqr-test COMMAND f32-vsqr-test)
+ 
+   ADD_EXECUTABLE(f32-vsqrdiff-test test/f32-vsqrdiff.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vsqrdiff-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsqrdiff-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vsqrdiff-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vsqrdiff-test f32-vsqrdiff-test)
- 
-   ADD_EXECUTABLE(f32-vsqrdiffc-test test/f32-vsqrdiffc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7979,7 +7968,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vsqrdiff-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vsqrdiff-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vsqrdiff-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vsqrdiff-test COMMAND f32-vsqrdiff-test)
+ 
+   ADD_EXECUTABLE(f32-vsqrdiffc-test test/f32-vsqrdiffc.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vsqrdiffc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsqrdiffc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vsqrdiffc-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vsqrdiffc-test f32-vsqrdiffc-test)
- 
-   ADD_EXECUTABLE(f32-vsqrt-test test/f32-vsqrt.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7988,7 +7977,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vsqrdiffc-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vsqrdiffc-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vsqrdiffc-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vsqrdiffc-test COMMAND f32-vsqrdiffc-test)
+ 
+   ADD_EXECUTABLE(f32-vsqrt-test test/f32-vsqrt.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vsqrt-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsqrt-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vsqrt-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vsqrt-test f32-vsqrt-test)
- 
-   ADD_EXECUTABLE(f32-vsub-test test/f32-vsub.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -7997,7 +7986,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vsqrt-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vsqrt-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vsqrt-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vsqrt-test COMMAND f32-vsqrt-test)
+ 
+   ADD_EXECUTABLE(f32-vsub-test test/f32-vsub.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vsub-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsub-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vsub-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vsub-test f32-vsub-test)
- 
-   ADD_EXECUTABLE(f32-vsub-minmax-test test/f32-vsub-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8006,7 +7995,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vsub-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vsub-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vsub-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-vsub-test COMMAND f32-vsub-test)
+ 
+   ADD_EXECUTABLE(f32-vsub-minmax-test test/f32-vsub-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vsub-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsub-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vsub-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vsub-minmax-test f32-vsub-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vsub-relu-test test/f32-vsub-relu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8015,7 +8004,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vsub-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vsub-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vsub-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vsub-minmax-test COMMAND f32-vsub-minmax-test)
+ 
+   ADD_EXECUTABLE(f32-vsub-relu-test test/f32-vsub-relu.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vsub-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsub-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vsub-relu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vsub-relu-test f32-vsub-relu-test)
- 
-   ADD_EXECUTABLE(f32-vsubc-test test/f32-vsubc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8024,7 +8013,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vsub-relu-test PRIVATE fp16 pthreadpool gtest gtest_main microparams-init)
++  TARGET_LINK_LIBRARIES(f32-vsub-relu-test PRIVATE gtest gtest_main microparams-init)
+   TARGET_LINK_LIBRARIES(f32-vsub-relu-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-vsub-relu-test COMMAND f32-vsub-relu-test)
+ 
+   ADD_EXECUTABLE(f32-vsubc-test test/f32-vsubc.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vsubc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsubc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vsubc-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vsubc-test f32-vsubc-test)
- 
-   ADD_EXECUTABLE(f32-vsubc-minmax-test test/f32-vsubc-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8033,7 +8022,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vsubc-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vsubc-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vsubc-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-vsubc-test COMMAND f32-vsubc-test)
+ 
+   ADD_EXECUTABLE(f32-vsubc-minmax-test test/f32-vsubc-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vsubc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsubc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vsubc-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vsubc-minmax-test f32-vsubc-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vsubc-relu-test test/f32-vsubc-relu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8042,7 +8031,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vsubc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vsubc-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vsubc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vsubc-minmax-test COMMAND f32-vsubc-minmax-test)
+ 
+   ADD_EXECUTABLE(f32-vsubc-relu-test test/f32-vsubc-relu.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vsubc-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vsubc-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vsubc-relu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vsubc-relu-test f32-vsubc-relu-test)
- 
-   ADD_EXECUTABLE(f32-vrsubc-test test/f32-vrsubc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8051,7 +8040,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vsubc-relu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vsubc-relu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vsubc-relu-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-vsubc-relu-test COMMAND f32-vsubc-relu-test)
+ 
+   ADD_EXECUTABLE(f32-vrsubc-test test/f32-vrsubc.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vrsubc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrsubc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrsubc-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vrsubc-test f32-vrsubc-test)
- 
-   ADD_EXECUTABLE(f32-vrsubc-minmax-test test/f32-vrsubc-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8060,7 +8049,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vrsubc-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vrsubc-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vrsubc-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-vrsubc-test COMMAND f32-vrsubc-test)
+ 
+   ADD_EXECUTABLE(f32-vrsubc-minmax-test test/f32-vrsubc-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vrsubc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrsubc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrsubc-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vrsubc-minmax-test f32-vrsubc-minmax-test)
- 
-   ADD_EXECUTABLE(f32-vrsubc-relu-test test/f32-vrsubc-relu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8069,7 +8058,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vrsubc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vrsubc-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vrsubc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME f32-vrsubc-minmax-test COMMAND f32-vrsubc-minmax-test)
+ 
+   ADD_EXECUTABLE(f32-vrsubc-relu-test test/f32-vrsubc-relu.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-vrsubc-relu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-vrsubc-relu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-vrsubc-relu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(f32-vrsubc-relu-test f32-vrsubc-relu-test)
- 
-   ADD_EXECUTABLE(qc8-dwconv-minmax-fp32-test test/qc8-dwconv-minmax-fp32.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -8078,7 +8067,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qc8-dwconv-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qc8-dwconv-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qc8-dwconv-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qc8-dwconv-minmax-fp32-test qc8-dwconv-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qc8-gemm-minmax-fp32-test test/qc8-gemm-minmax-fp32.cc test/qc8-gemm-minmax-fp32-2.cc test/qc8-gemm-minmax-fp32-3.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -8087,7 +8076,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qc8-gemm-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qc8-gemm-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main jit gemm-microkernel-tester)
-+  TARGET_LINK_LIBRARIES(qc8-gemm-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main jit gemm-microkernel-tester)
-   ADD_TEST(qc8-gemm-minmax-fp32-test qc8-gemm-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qc8-igemm-minmax-fp32-test test/qc8-igemm-minmax-fp32.cc test/qc8-igemm-minmax-fp32-2.cc test/qc8-igemm-minmax-fp32-3.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -8096,7 +8085,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qc8-igemm-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qc8-igemm-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main jit gemm-microkernel-tester)
-+  TARGET_LINK_LIBRARIES(qc8-igemm-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main jit gemm-microkernel-tester)
-   ADD_TEST(qc8-igemm-minmax-fp32-test qc8-igemm-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qs8-dwconv-minmax-fp32-test test/qs8-dwconv-minmax-fp32.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -8105,7 +8094,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qs8-dwconv-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-dwconv-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-dwconv-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qs8-dwconv-minmax-fp32-test qs8-dwconv-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qs8-dwconv-minmax-rndnu-test test/qs8-dwconv-minmax-rndnu.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -8114,7 +8103,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qs8-dwconv-minmax-rndnu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-dwconv-minmax-rndnu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-dwconv-minmax-rndnu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qs8-dwconv-minmax-rndnu-test qs8-dwconv-minmax-rndnu-test)
- 
-   ADD_EXECUTABLE(qs8-f32-vcvt-test test/f32-f16-vcvt.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8123,7 +8112,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(f32-vrsubc-relu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-vrsubc-relu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-vrsubc-relu-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME f32-vrsubc-relu-test COMMAND f32-vrsubc-relu-test)
+ 
+   ADD_EXECUTABLE(qc8-dwconv-unipass-minmax-fp32-test test/qc8-dwconv-unipass-minmax-fp32.cc)
+   TARGET_INCLUDE_DIRECTORIES(qc8-dwconv-unipass-minmax-fp32-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(qc8-dwconv-unipass-minmax-fp32-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qc8-dwconv-unipass-minmax-fp32-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qc8-dwconv-unipass-minmax-fp32-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
+   ADD_TEST(NAME qc8-dwconv-unipass-minmax-fp32-test COMMAND qc8-dwconv-unipass-minmax-fp32-test)
+ 
+@@ -2406,31 +2373,31 @@
+ 
+   ADD_EXECUTABLE(qs8-dwconv-unipass-minmax-fp32-test test/qs8-dwconv-unipass-minmax-fp32.cc)
+   TARGET_INCLUDE_DIRECTORIES(qs8-dwconv-unipass-minmax-fp32-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(qs8-dwconv-unipass-minmax-fp32-test PRIVATE fp16 pthreadpool gtest gtest_main microparams-init)
++  TARGET_LINK_LIBRARIES(qs8-dwconv-unipass-minmax-fp32-test PRIVATE gtest gtest_main microparams-init)
+   TARGET_LINK_LIBRARIES(qs8-dwconv-unipass-minmax-fp32-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
+   ADD_TEST(NAME qs8-dwconv-unipass-minmax-fp32-test COMMAND qs8-dwconv-unipass-minmax-fp32-test)
+ 
+   ADD_EXECUTABLE(qs8-dwconv-unipass-minmax-rndnu-test test/qs8-dwconv-unipass-minmax-rndnu.cc)
+   TARGET_INCLUDE_DIRECTORIES(qs8-dwconv-unipass-minmax-rndnu-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(qs8-dwconv-unipass-minmax-rndnu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qs8-dwconv-unipass-minmax-rndnu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qs8-dwconv-unipass-minmax-rndnu-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
+   ADD_TEST(NAME qs8-dwconv-unipass-minmax-rndnu-test COMMAND qs8-dwconv-unipass-minmax-rndnu-test)
+ 
+   ADD_EXECUTABLE(qs8-f32-vcvt-test test/f32-f16-vcvt.cc)
    TARGET_INCLUDE_DIRECTORIES(qs8-f32-vcvt-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-f32-vcvt-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-f32-vcvt-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qs8-f32-vcvt-test qs8-f32-vcvt-test)
- 
-   ADD_EXECUTABLE(qs8-gavgpool-minmax-fp32-test test/qs8-gavgpool-minmax-fp32.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8132,7 +8121,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(qs8-f32-vcvt-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qs8-f32-vcvt-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qs8-f32-vcvt-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME qs8-f32-vcvt-test COMMAND qs8-f32-vcvt-test)
+ 
+   ADD_EXECUTABLE(qs8-gavgpool-minmax-fp32-test test/qs8-gavgpool-minmax-fp32.cc)
    TARGET_INCLUDE_DIRECTORIES(qs8-gavgpool-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-gavgpool-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-gavgpool-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qs8-gavgpool-minmax-fp32-test qs8-gavgpool-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qs8-gavgpool-minmax-rndnu-test test/qs8-gavgpool-minmax-rndnu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8141,7 +8130,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(qs8-gavgpool-minmax-fp32-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qs8-gavgpool-minmax-fp32-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qs8-gavgpool-minmax-fp32-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME qs8-gavgpool-minmax-fp32-test COMMAND qs8-gavgpool-minmax-fp32-test)
+ 
+   ADD_EXECUTABLE(qs8-gavgpool-minmax-rndnu-test test/qs8-gavgpool-minmax-rndnu.cc)
    TARGET_INCLUDE_DIRECTORIES(qs8-gavgpool-minmax-rndnu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-gavgpool-minmax-rndnu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-gavgpool-minmax-rndnu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qs8-gavgpool-minmax-rndnu-test qs8-gavgpool-minmax-rndnu-test)
- 
-   ADD_EXECUTABLE(qs8-gemm-minmax-fp32-test test/qs8-gemm-minmax-fp32.cc test/qs8-gemm-minmax-fp32-2.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -8150,7 +8139,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qs8-gemm-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-gemm-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main gemm-microkernel-tester)
-+  TARGET_LINK_LIBRARIES(qs8-gemm-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main gemm-microkernel-tester)
-   ADD_TEST(qs8-gemm-minmax-fp32-test qs8-gemm-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qs8-gemm-minmax-rndnu-test test/qs8-gemm-minmax-rndnu.cc test/qs8-gemm-minmax-rndnu-2.cc test/qs8-gemm-minmax-rndnu-3.cc test/qs8-gemm-minmax-rndnu-4.cc test/qs8-gemm-minmax-rndnu-5.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -8159,7 +8148,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qs8-gemm-minmax-rndnu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-gemm-minmax-rndnu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main jit gemm-microkernel-tester)
-+  TARGET_LINK_LIBRARIES(qs8-gemm-minmax-rndnu-test PRIVATE cpuinfo gtest gtest_main jit gemm-microkernel-tester)
-   ADD_TEST(qs8-gemm-minmax-rndnu-test qs8-gemm-minmax-rndnu-test)
- 
-   ADD_EXECUTABLE(qs8-igemm-minmax-fp32-test test/qs8-igemm-minmax-fp32.cc test/qs8-igemm-minmax-fp32-2.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -8168,7 +8157,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qs8-igemm-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-igemm-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main gemm-microkernel-tester)
-+  TARGET_LINK_LIBRARIES(qs8-igemm-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main gemm-microkernel-tester)
-   ADD_TEST(qs8-igemm-minmax-fp32-test qs8-igemm-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qs8-igemm-minmax-rndnu-test test/qs8-igemm-minmax-rndnu.cc test/qs8-igemm-minmax-rndnu-2.cc test/qs8-igemm-minmax-rndnu-3.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -8177,7 +8166,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qs8-igemm-minmax-rndnu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-igemm-minmax-rndnu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main jit gemm-microkernel-tester)
-+  TARGET_LINK_LIBRARIES(qs8-igemm-minmax-rndnu-test PRIVATE cpuinfo gtest gtest_main jit gemm-microkernel-tester)
-   ADD_TEST(qs8-igemm-minmax-rndnu-test qs8-igemm-minmax-rndnu-test)
- 
-   ADD_EXECUTABLE(qs8-requantization-test test/qs8-requantization.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8186,7 +8175,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(qs8-gavgpool-minmax-rndnu-test PRIVATE fp16 pthreadpool gtest gtest_main microparams-init)
++  TARGET_LINK_LIBRARIES(qs8-gavgpool-minmax-rndnu-test PRIVATE gtest gtest_main microparams-init)
+   TARGET_LINK_LIBRARIES(qs8-gavgpool-minmax-rndnu-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME qs8-gavgpool-minmax-rndnu-test COMMAND qs8-gavgpool-minmax-rndnu-test)
+ 
+@@ -2461,81 +2428,81 @@
+   ADD_EXECUTABLE(qs8-requantization-test test/qs8-requantization.cc)
+   SET_TARGET_PROPERTIES(qs8-requantization-test PROPERTIES CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(qs8-requantization-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-requantization-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-requantization-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qs8-requantization-test qs8-requantization-test)
- 
-   ADD_EXECUTABLE(qs8-vadd-minmax-test test/qs8-vadd-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8195,7 +8184,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(qs8-requantization-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qs8-requantization-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qs8-requantization-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME qs8-requantization-test COMMAND qs8-requantization-test)
+ 
+   ADD_EXECUTABLE(qs8-vadd-minmax-test test/qs8-vadd-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(qs8-vadd-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-vadd-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-vadd-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qs8-vadd-minmax-test qs8-vadd-minmax-test)
- 
-   ADD_EXECUTABLE(qs8-vaddc-minmax-test test/qs8-vaddc-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8204,7 +8193,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(qs8-vadd-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qs8-vadd-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qs8-vadd-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME qs8-vadd-minmax-test COMMAND qs8-vadd-minmax-test)
+ 
+   ADD_EXECUTABLE(qs8-vaddc-minmax-test test/qs8-vaddc-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(qs8-vaddc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-vaddc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-vaddc-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qs8-vaddc-minmax-test qs8-vaddc-minmax-test)
- 
-   ADD_EXECUTABLE(qs8-vmul-minmax-fp32-test test/qs8-vmul-minmax-fp32.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8213,7 +8202,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(qs8-vaddc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qs8-vaddc-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qs8-vaddc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME qs8-vaddc-minmax-test COMMAND qs8-vaddc-minmax-test)
+ 
+   ADD_EXECUTABLE(qs8-vcvt-test test/qs8-vcvt.cc)
+   TARGET_INCLUDE_DIRECTORIES(qs8-vcvt-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(qs8-vcvt-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qs8-vcvt-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qs8-vcvt-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME qs8-vcvt-test COMMAND qs8-vcvt-test)
+ 
+   ADD_EXECUTABLE(qs8-vlrelu-test test/qs8-vlrelu.cc)
+   TARGET_INCLUDE_DIRECTORIES(qs8-vlrelu-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(qs8-vlrelu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qs8-vlrelu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qs8-vlrelu-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME qs8-vlrelu-test COMMAND qs8-vlrelu-test)
+ 
+   ADD_EXECUTABLE(qs8-vmul-minmax-fp32-test test/qs8-vmul-minmax-fp32.cc)
+   SET_TARGET_PROPERTIES(qs8-vmul-minmax-fp32-test PROPERTIES CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(qs8-vmul-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-vmul-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-vmul-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qs8-vmul-minmax-fp32-test qs8-vmul-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qs8-vmulc-minmax-fp32-test test/qs8-vmulc-minmax-fp32.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8222,7 +8211,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(qs8-vmul-minmax-fp32-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qs8-vmul-minmax-fp32-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qs8-vmul-minmax-fp32-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME qs8-vmul-minmax-fp32-test COMMAND qs8-vmul-minmax-fp32-test)
+ 
+   ADD_EXECUTABLE(qs8-vmulc-minmax-fp32-test test/qs8-vmulc-minmax-fp32.cc)
+   SET_TARGET_PROPERTIES(qs8-vmulc-minmax-fp32-test PROPERTIES CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(qs8-vmulc-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-vmulc-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-vmulc-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qs8-vmulc-minmax-fp32-test qs8-vmulc-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qu8-avgpool-minmax-test test/qu8-avgpool-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8231,7 +8220,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qu8-avgpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-avgpool-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-avgpool-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qu8-avgpool-minmax-test qu8-avgpool-minmax-test)
- 
-   ADD_EXECUTABLE(qu8-dwconv-minmax-fp32-test test/qu8-dwconv-minmax-fp32.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -8240,7 +8229,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qu8-dwconv-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-dwconv-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-dwconv-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qu8-dwconv-minmax-fp32-test qu8-dwconv-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qu8-dwconv-minmax-rndnu-test test/qu8-dwconv-minmax-rndnu.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -8249,7 +8238,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qu8-dwconv-minmax-rndnu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-dwconv-minmax-rndnu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-dwconv-minmax-rndnu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qu8-dwconv-minmax-rndnu-test qu8-dwconv-minmax-rndnu-test)
- 
-   ADD_EXECUTABLE(qu8-f32-vcvt-test test/f32-f16-vcvt.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8258,7 +8247,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(qs8-vmulc-minmax-fp32-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qs8-vmulc-minmax-fp32-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qs8-vmulc-minmax-fp32-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME qs8-vmulc-minmax-fp32-test COMMAND qs8-vmulc-minmax-fp32-test)
+ 
+   ADD_EXECUTABLE(qu8-avgpool-minmax-fp32-test test/qu8-avgpool-minmax-fp32.cc)
+   TARGET_INCLUDE_DIRECTORIES(qu8-avgpool-minmax-fp32-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(qu8-avgpool-minmax-fp32-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qu8-avgpool-minmax-fp32-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qu8-avgpool-minmax-fp32-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME qu8-avgpool-minmax-fp32-test COMMAND qu8-avgpool-minmax-fp32-test)
+ 
+   ADD_EXECUTABLE(qu8-dwconv-unipass-minmax-fp32-test test/qu8-dwconv-unipass-minmax-fp32.cc)
+   TARGET_INCLUDE_DIRECTORIES(qu8-dwconv-unipass-minmax-fp32-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(qu8-dwconv-unipass-minmax-fp32-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qu8-dwconv-unipass-minmax-fp32-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qu8-dwconv-unipass-minmax-fp32-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
+   ADD_TEST(NAME qu8-dwconv-unipass-minmax-fp32-test COMMAND qu8-dwconv-unipass-minmax-fp32-test)
+ 
+   ADD_EXECUTABLE(qu8-dwconv-unipass-minmax-rndnu-test test/qu8-dwconv-unipass-minmax-rndnu.cc)
+   TARGET_INCLUDE_DIRECTORIES(qu8-dwconv-unipass-minmax-rndnu-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(qu8-dwconv-unipass-minmax-rndnu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qu8-dwconv-unipass-minmax-rndnu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qu8-dwconv-unipass-minmax-rndnu-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
+   ADD_TEST(NAME qu8-dwconv-unipass-minmax-rndnu-test COMMAND qu8-dwconv-unipass-minmax-rndnu-test)
+ 
+   ADD_EXECUTABLE(qu8-f32-vcvt-test test/f32-f16-vcvt.cc)
    TARGET_INCLUDE_DIRECTORIES(qu8-f32-vcvt-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-f32-vcvt-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-f32-vcvt-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qu8-f32-vcvt-test qu8-f32-vcvt-test)
- 
-   ADD_EXECUTABLE(qu8-gavgpool-minmax-fp32-test test/qu8-gavgpool-minmax-fp32.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8267,7 +8256,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(qu8-f32-vcvt-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qu8-f32-vcvt-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qu8-f32-vcvt-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME qu8-f32-vcvt-test COMMAND qu8-f32-vcvt-test)
+ 
+   ADD_EXECUTABLE(qu8-gavgpool-minmax-fp32-test test/qu8-gavgpool-minmax-fp32.cc)
    TARGET_INCLUDE_DIRECTORIES(qu8-gavgpool-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-gavgpool-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-gavgpool-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qu8-gavgpool-minmax-fp32-test qu8-gavgpool-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qu8-gavgpool-minmax-rndnu-test test/qu8-gavgpool-minmax-rndnu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8276,7 +8265,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(qu8-gavgpool-minmax-fp32-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qu8-gavgpool-minmax-fp32-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qu8-gavgpool-minmax-fp32-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME qu8-gavgpool-minmax-fp32-test COMMAND qu8-gavgpool-minmax-fp32-test)
+ 
+   ADD_EXECUTABLE(qu8-gavgpool-minmax-rndnu-test test/qu8-gavgpool-minmax-rndnu.cc)
    TARGET_INCLUDE_DIRECTORIES(qu8-gavgpool-minmax-rndnu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-gavgpool-minmax-rndnu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-gavgpool-minmax-rndnu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qu8-gavgpool-minmax-rndnu-test qu8-gavgpool-minmax-rndnu-test)
- 
-   ADD_EXECUTABLE(qu8-gemm-minmax-fp32-test test/qu8-gemm-minmax-fp32.cc test/qu8-gemm-minmax-fp32-2.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -8285,7 +8274,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qu8-gemm-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-gemm-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main gemm-microkernel-tester)
-+  TARGET_LINK_LIBRARIES(qu8-gemm-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main gemm-microkernel-tester)
-   ADD_TEST(qu8-gemm-minmax-fp32-test qu8-gemm-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qu8-gemm-minmax-rndnu-test test/qu8-gemm-minmax-rndnu.cc test/qu8-gemm-minmax-rndnu-2.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -8294,7 +8283,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qu8-gemm-minmax-rndnu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-gemm-minmax-rndnu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main gemm-microkernel-tester)
-+  TARGET_LINK_LIBRARIES(qu8-gemm-minmax-rndnu-test PRIVATE cpuinfo gtest gtest_main gemm-microkernel-tester)
-   ADD_TEST(qu8-gemm-minmax-rndnu-test qu8-gemm-minmax-rndnu-test)
- 
-   ADD_EXECUTABLE(qu8-igemm-minmax-fp32-test test/qu8-igemm-minmax-fp32.cc test/qu8-igemm-minmax-fp32-2.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -8303,7 +8292,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qu8-igemm-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-igemm-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main gemm-microkernel-tester)
-+  TARGET_LINK_LIBRARIES(qu8-igemm-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main gemm-microkernel-tester)
-   ADD_TEST(qu8-igemm-minmax-fp32-test qu8-igemm-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qu8-igemm-minmax-rndnu-test test/qu8-igemm-minmax-rndnu.cc test/qu8-igemm-minmax-rndnu-2.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -8312,7 +8301,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qu8-igemm-minmax-rndnu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-igemm-minmax-rndnu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main gemm-microkernel-tester)
-+  TARGET_LINK_LIBRARIES(qu8-igemm-minmax-rndnu-test PRIVATE cpuinfo gtest gtest_main gemm-microkernel-tester)
-   ADD_TEST(qu8-igemm-minmax-rndnu-test qu8-igemm-minmax-rndnu-test)
- 
-   ADD_EXECUTABLE(qu8-requantization-test test/qu8-requantization.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8321,7 +8310,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(qu8-gavgpool-minmax-rndnu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qu8-gavgpool-minmax-rndnu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qu8-gavgpool-minmax-rndnu-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME qu8-gavgpool-minmax-rndnu-test COMMAND qu8-gavgpool-minmax-rndnu-test)
+ 
+@@ -2566,161 +2533,161 @@
+   ADD_EXECUTABLE(qu8-requantization-test test/qu8-requantization.cc)
+   SET_TARGET_PROPERTIES(qu8-requantization-test PROPERTIES CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(qu8-requantization-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-requantization-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-requantization-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qu8-requantization-test qu8-requantization-test)
- 
-   ADD_EXECUTABLE(qu8-vadd-minmax-test test/qu8-vadd-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8330,7 +8319,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(qu8-requantization-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qu8-requantization-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qu8-requantization-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME qu8-requantization-test COMMAND qu8-requantization-test)
+ 
+   ADD_EXECUTABLE(qu8-vadd-minmax-test test/qu8-vadd-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(qu8-vadd-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-vadd-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-vadd-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qu8-vadd-minmax-test qu8-vadd-minmax-test)
- 
-   ADD_EXECUTABLE(qu8-vaddc-minmax-test test/qu8-vaddc-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8339,7 +8328,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(qu8-vadd-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main microparams-init)
++  TARGET_LINK_LIBRARIES(qu8-vadd-minmax-test PRIVATE gtest gtest_main microparams-init)
+   TARGET_LINK_LIBRARIES(qu8-vadd-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME qu8-vadd-minmax-test COMMAND qu8-vadd-minmax-test)
+ 
+   ADD_EXECUTABLE(qu8-vaddc-minmax-test test/qu8-vaddc-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(qu8-vaddc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-vaddc-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-vaddc-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qu8-vaddc-minmax-test qu8-vaddc-minmax-test)
- 
-   ADD_EXECUTABLE(qu8-vmul-minmax-fp32-test test/qu8-vmul-minmax-fp32.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8348,7 +8337,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(qu8-vaddc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qu8-vaddc-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qu8-vaddc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME qu8-vaddc-minmax-test COMMAND qu8-vaddc-minmax-test)
+ 
+   ADD_EXECUTABLE(qu8-vcvt-test test/qu8-vcvt.cc)
+   TARGET_INCLUDE_DIRECTORIES(qu8-vcvt-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(qu8-vcvt-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qu8-vcvt-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qu8-vcvt-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME qu8-vcvt-test COMMAND qu8-vcvt-test)
+ 
+   ADD_EXECUTABLE(qu8-vlrelu-test test/qu8-vlrelu.cc)
+   TARGET_INCLUDE_DIRECTORIES(qu8-vlrelu-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(qu8-vlrelu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qu8-vlrelu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qu8-vlrelu-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME qu8-vlrelu-test COMMAND qu8-vlrelu-test)
+ 
+   ADD_EXECUTABLE(qu8-vmul-minmax-fp32-test test/qu8-vmul-minmax-fp32.cc)
+   SET_TARGET_PROPERTIES(qu8-vmul-minmax-fp32-test PROPERTIES CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(qu8-vmul-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-vmul-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-vmul-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qu8-vmul-minmax-fp32-test qu8-vmul-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qu8-vmul-minmax-rndnu-test test/qu8-vmul-minmax-rndnu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8357,7 +8346,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(qu8-vmul-minmax-fp32-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qu8-vmul-minmax-fp32-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qu8-vmul-minmax-fp32-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME qu8-vmul-minmax-fp32-test COMMAND qu8-vmul-minmax-fp32-test)
+ 
+   ADD_EXECUTABLE(qu8-vmul-minmax-rndnu-test test/qu8-vmul-minmax-rndnu.cc)
+   SET_TARGET_PROPERTIES(qu8-vmul-minmax-rndnu-test PROPERTIES CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(qu8-vmul-minmax-rndnu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-vmul-minmax-rndnu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-vmul-minmax-rndnu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qu8-vmul-minmax-rndnu-test qu8-vmul-minmax-rndnu-test)
- 
-   ADD_EXECUTABLE(qu8-vmulc-minmax-fp32-test test/qu8-vmulc-minmax-fp32.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8366,7 +8355,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(qu8-vmul-minmax-rndnu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qu8-vmul-minmax-rndnu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qu8-vmul-minmax-rndnu-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME qu8-vmul-minmax-rndnu-test COMMAND qu8-vmul-minmax-rndnu-test)
+ 
+   ADD_EXECUTABLE(qu8-vmulc-minmax-fp32-test test/qu8-vmulc-minmax-fp32.cc)
+   SET_TARGET_PROPERTIES(qu8-vmulc-minmax-fp32-test PROPERTIES CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(qu8-vmulc-minmax-fp32-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-vmulc-minmax-fp32-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-vmulc-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qu8-vmulc-minmax-fp32-test qu8-vmulc-minmax-fp32-test)
- 
-   ADD_EXECUTABLE(qu8-vmulc-minmax-rndnu-test test/qu8-vmulc-minmax-rndnu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8375,7 +8364,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(qu8-vmulc-minmax-fp32-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qu8-vmulc-minmax-fp32-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qu8-vmulc-minmax-fp32-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME qu8-vmulc-minmax-fp32-test COMMAND qu8-vmulc-minmax-fp32-test)
+ 
+   ADD_EXECUTABLE(qu8-vmulc-minmax-rndnu-test test/qu8-vmulc-minmax-rndnu.cc)
+   SET_TARGET_PROPERTIES(qu8-vmulc-minmax-rndnu-test PROPERTIES CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(qu8-vmulc-minmax-rndnu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-vmulc-minmax-rndnu-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-vmulc-minmax-rndnu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qu8-vmulc-minmax-rndnu-test qu8-vmulc-minmax-rndnu-test)
- 
-   ADD_EXECUTABLE(s8-ibilinear-test test/s8-ibilinear.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8384,7 +8373,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(qu8-vmulc-minmax-rndnu-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(qu8-vmulc-minmax-rndnu-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(qu8-vmulc-minmax-rndnu-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME qu8-vmulc-minmax-rndnu-test COMMAND qu8-vmulc-minmax-rndnu-test)
+ 
+   ADD_EXECUTABLE(s16-rmaxabs-test test/s16-rmaxabs.cc)
+   TARGET_INCLUDE_DIRECTORIES(s16-rmaxabs-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(s16-rmaxabs-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(s16-rmaxabs-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(s16-rmaxabs-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME s16-rmaxabs-test COMMAND s16-rmaxabs-test)
+ 
+   ADD_EXECUTABLE(s16-window-test test/s16-window.cc)
+   TARGET_INCLUDE_DIRECTORIES(s16-window-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(s16-window-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(s16-window-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(s16-window-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME s16-window-test COMMAND s16-window-test)
+ 
+   ADD_EXECUTABLE(u32-filterbank-accumulate-test test/u32-filterbank-accumulate.cc)
+   TARGET_INCLUDE_DIRECTORIES(u32-filterbank-accumulate-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(u32-filterbank-accumulate-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(u32-filterbank-accumulate-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(u32-filterbank-accumulate-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME u32-filterbank-accumulate-test COMMAND u32-filterbank-accumulate-test)
+ 
+   ADD_EXECUTABLE(u32-filterbank-subtract-test test/u32-filterbank-subtract.cc)
+   TARGET_INCLUDE_DIRECTORIES(u32-filterbank-subtract-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(u32-filterbank-subtract-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(u32-filterbank-subtract-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(u32-filterbank-subtract-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME u32-filterbank-subtract-test COMMAND u32-filterbank-subtract-test)
+ 
+   ADD_EXECUTABLE(u32-vlog-test test/u32-vlog.cc)
+   TARGET_INCLUDE_DIRECTORIES(u32-vlog-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(u32-vlog-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(u32-vlog-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(u32-vlog-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME u32-vlog-test COMMAND u32-vlog-test)
+ 
+   ADD_EXECUTABLE(i16-vlshift-test test/i16-vlshift.cc)
+   TARGET_INCLUDE_DIRECTORIES(i16-vlshift-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(i16-vlshift-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(i16-vlshift-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(i16-vlshift-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME i16-vlshift-test COMMAND i16-vlshift-test)
+ 
+   ADD_EXECUTABLE(cs16-vsquareabs-test test/cs16-vsquareabs.cc)
+   TARGET_INCLUDE_DIRECTORIES(cs16-vsquareabs-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(cs16-vsquareabs-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(cs16-vsquareabs-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(cs16-vsquareabs-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME cs16-vsquareabs-test COMMAND cs16-vsquareabs-test)
+ 
+   ADD_EXECUTABLE(cs16-bfly4-test test/cs16-bfly4.cc)
+   TARGET_INCLUDE_DIRECTORIES(cs16-bfly4-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(cs16-bfly4-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(cs16-bfly4-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(cs16-bfly4-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME cs16-bfly4-test COMMAND cs16-bfly4-test)
+ 
+   ADD_EXECUTABLE(cs16-fftr-test test/cs16-fftr.cc)
+   TARGET_INCLUDE_DIRECTORIES(cs16-fftr-test PRIVATE include src test)
+-  TARGET_LINK_LIBRARIES(cs16-fftr-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(cs16-fftr-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(cs16-fftr-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME cs16-fftr-test COMMAND cs16-fftr-test)
+ 
+   ADD_EXECUTABLE(s8-ibilinear-test test/s8-ibilinear.cc)
    TARGET_INCLUDE_DIRECTORIES(s8-ibilinear-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(s8-ibilinear-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(s8-ibilinear-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(s8-ibilinear-test s8-ibilinear-test)
- 
-   ADD_EXECUTABLE(s8-maxpool-minmax-test test/s8-maxpool-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8393,7 +8382,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(s8-ibilinear-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(s8-ibilinear-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(s8-ibilinear-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME s8-ibilinear-test COMMAND s8-ibilinear-test)
+ 
+   ADD_EXECUTABLE(s8-maxpool-minmax-test test/s8-maxpool-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(s8-maxpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(s8-maxpool-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(s8-maxpool-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(s8-maxpool-minmax-test s8-maxpool-minmax-test)
- 
-   ADD_EXECUTABLE(s8-vclamp-test test/s8-vclamp.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8402,7 +8391,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(s8-maxpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(s8-maxpool-minmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(s8-maxpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME s8-maxpool-minmax-test COMMAND s8-maxpool-minmax-test)
+ 
+   ADD_EXECUTABLE(s8-vclamp-test test/s8-vclamp.cc)
    TARGET_INCLUDE_DIRECTORIES(s8-vclamp-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(s8-vclamp-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(s8-vclamp-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(s8-vclamp-test s8-vclamp-test)
- 
-   ADD_EXECUTABLE(u8-lut32norm-test test/u8-lut32norm.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8411,7 +8400,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(s8-vclamp-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(s8-vclamp-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(s8-vclamp-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME s8-vclamp-test COMMAND s8-vclamp-test)
+ 
+   ADD_EXECUTABLE(u8-lut32norm-test test/u8-lut32norm.cc)
    TARGET_INCLUDE_DIRECTORIES(u8-lut32norm-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(u8-lut32norm-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(u8-lut32norm-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(u8-lut32norm-test u8-lut32norm-test)
- 
-   ADD_EXECUTABLE(u8-ibilinear-test test/u8-ibilinear.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8420,7 +8409,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(u8-lut32norm-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(u8-lut32norm-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(u8-lut32norm-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME u8-lut32norm-test COMMAND u8-lut32norm-test)
+ 
+   ADD_EXECUTABLE(u8-ibilinear-test test/u8-ibilinear.cc)
    TARGET_INCLUDE_DIRECTORIES(u8-ibilinear-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(u8-ibilinear-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(u8-ibilinear-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(u8-ibilinear-test u8-ibilinear-test)
- 
-   ADD_EXECUTABLE(u8-maxpool-minmax-test test/u8-maxpool-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8429,7 +8418,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(u8-ibilinear-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(u8-ibilinear-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(u8-ibilinear-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME u8-ibilinear-test COMMAND u8-ibilinear-test)
+ 
+   ADD_EXECUTABLE(u8-maxpool-minmax-test test/u8-maxpool-minmax.cc)
    TARGET_INCLUDE_DIRECTORIES(u8-maxpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(u8-maxpool-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(u8-maxpool-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(u8-maxpool-minmax-test u8-maxpool-minmax-test)
- 
-   ADD_EXECUTABLE(u8-rmax-test test/u8-rmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8438,7 +8427,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(u8-maxpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main microparams-init)
++  TARGET_LINK_LIBRARIES(u8-maxpool-minmax-test PRIVATE gtest gtest_main microparams-init)
+   TARGET_LINK_LIBRARIES(u8-maxpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME u8-maxpool-minmax-test COMMAND u8-maxpool-minmax-test)
+ 
+   ADD_EXECUTABLE(u8-rmax-test test/u8-rmax.cc)
    TARGET_INCLUDE_DIRECTORIES(u8-rmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(u8-rmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(u8-rmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(u8-rmax-test u8-rmax-test)
- 
-   ADD_EXECUTABLE(u8-vclamp-test test/u8-vclamp.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8447,7 +8436,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(u8-rmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(u8-rmax-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(u8-rmax-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME u8-rmax-test COMMAND u8-rmax-test)
+ 
+   ADD_EXECUTABLE(u8-vclamp-test test/u8-vclamp.cc)
    TARGET_INCLUDE_DIRECTORIES(u8-vclamp-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(u8-vclamp-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(u8-vclamp-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(u8-vclamp-test u8-vclamp-test)
- 
-   ADD_EXECUTABLE(x8-transpose-test test/x8-transpose.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8456,7 +8445,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(x8-transpose-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(x8-transpose-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(x8-transpose-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(x8-transpose-test x8-transpose-test)
- 
-   ADD_EXECUTABLE(x16-transpose-test test/x16-transpose.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8465,7 +8454,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(x16-transpose-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(x16-transpose-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(x16-transpose-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(x16-transpose-test x16-transpose-test)
- 
-   ADD_EXECUTABLE(x32-packx-test test/x32-packx.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8474,7 +8463,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(x32-packx-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(x32-packx-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(x32-packx-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(x32-packx-test x32-packx-test)
- 
-   ADD_EXECUTABLE(x32-unpool-test test/x32-unpool.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8483,7 +8472,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(x32-unpool-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(x32-unpool-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(x32-unpool-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(x32-unpool-test x32-unpool-test)
- 
-   ADD_EXECUTABLE(x32-depthtospace2d-chw2hwc-test test/x32-depthtospace2d-chw2hwc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8492,7 +8481,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(x32-depthtospace2d-chw2hwc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(x32-depthtospace2d-chw2hwc-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(x32-depthtospace2d-chw2hwc-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(x32-depthtospace2d-chw2hwc-test x32-depthtospace2d-chw2hwc-test)
- 
-   ADD_EXECUTABLE(x32-transpose-test test/x32-transpose.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8501,7 +8490,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(x32-transpose-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(x32-transpose-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(x32-transpose-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(x32-transpose-test x32-transpose-test)
- 
-   ADD_EXECUTABLE(x32-zip-test test/x32-zip.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8510,7 +8499,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(u8-vclamp-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(u8-vclamp-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(u8-vclamp-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME u8-vclamp-test COMMAND u8-vclamp-test)
+ 
+@@ -2762,25 +2729,25 @@
+ 
+   ADD_EXECUTABLE(x32-zip-test test/x32-zip.cc)
    TARGET_INCLUDE_DIRECTORIES(x32-zip-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(x32-zip-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(x32-zip-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(x32-zip-test x32-zip-test)
- 
-   ADD_EXECUTABLE(x64-transpose-test test/x64-transpose.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8519,7 +8508,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(x32-zip-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(x32-zip-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(x32-zip-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME x32-zip-test COMMAND x32-zip-test)
+ 
+   ADD_EXECUTABLE(x64-transpose-test test/x64-transpose.cc)
    TARGET_INCLUDE_DIRECTORIES(x64-transpose-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(x64-transpose-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(x64-transpose-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(x64-transpose-test x64-transpose-test)
- 
-   ADD_EXECUTABLE(x8-lut-test test/x8-lut.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8528,7 +8517,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(x64-transpose-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(x64-transpose-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(x64-transpose-test PRIVATE hardware-config logging microkernels-all microparams-init)
+   ADD_TEST(NAME x64-transpose-test COMMAND x64-transpose-test)
+ 
+   ADD_EXECUTABLE(x8-lut-test test/x8-lut.cc)
    TARGET_INCLUDE_DIRECTORIES(x8-lut-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(x8-lut-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(x8-lut-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(x8-lut-test x8-lut-test)
- 
-   ADD_EXECUTABLE(x8-zip-test test/x8-zip.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8537,7 +8526,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
+-  TARGET_LINK_LIBRARIES(x8-lut-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(x8-lut-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(x8-lut-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME x8-lut-test COMMAND x8-lut-test)
+ 
+   ADD_EXECUTABLE(x8-zip-test test/x8-zip.cc)
    TARGET_INCLUDE_DIRECTORIES(x8-zip-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(x8-zip-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(x8-zip-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(x8-zip-test x8-zip-test)
- 
-   ADD_EXECUTABLE(xx-fill-test test/xx-fill.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8546,7 +8535,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(xx-fill-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(xx-fill-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(xx-fill-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(xx-fill-test xx-fill-test)
- 
-   ADD_EXECUTABLE(xx-pad-test test/xx-pad.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -8555,7 +8544,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(xx-pad-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(xx-pad-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(xx-pad-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(xx-pad-test xx-pad-test)
- 
-   ADD_EXECUTABLE(jit-test test/jit.cc)
-@@ -8682,7 +8671,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
+-  TARGET_LINK_LIBRARIES(x8-zip-test PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(x8-zip-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(x8-zip-test PRIVATE hardware-config logging microkernels-all)
+   ADD_TEST(NAME x8-zip-test COMMAND x8-zip-test)
+ 
+@@ -2842,12 +2809,12 @@
+ 
+   ADD_EXECUTABLE(packing-test test/packing.cc)
+   TARGET_INCLUDE_DIRECTORIES(packing-test PRIVATE include src)
+-  TARGET_LINK_LIBRARIES(packing-test PRIVATE fp16 gtest gtest_main pthreadpool)
++  TARGET_LINK_LIBRARIES(packing-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(packing-test PRIVATE XNNPACK microkernel-utils operator-utils packing)
+ 
+   ADD_EXECUTABLE(indirection-test test/indirection.cc)
+   TARGET_INCLUDE_DIRECTORIES(indirection-test PRIVATE include src)
+-  TARGET_LINK_LIBRARIES(indirection-test PRIVATE gtest gtest_main pthreadpool)
++  TARGET_LINK_LIBRARIES(indirection-test PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(indirection-test PRIVATE XNNPACK indirection)
+ ENDIF()
+ 
+@@ -2864,7 +2831,7 @@
+   ADD_LIBRARY(bench-utils STATIC bench/utils.cc)
+   TARGET_INCLUDE_DIRECTORIES(bench-utils PRIVATE .)
+   TARGET_INCLUDE_DIRECTORIES(bench-utils PUBLIC include src)
+-  TARGET_LINK_LIBRARIES(bench-utils PRIVATE benchmark cpuinfo pthreadpool)
++  TARGET_LINK_LIBRARIES(bench-utils PRIVATE benchmark cpuinfo)
+   TARGET_LINK_LIBRARIES(bench-utils PRIVATE hardware-config)
+   IF(XNNPACK_BUILD_LIBRARY)
+     TARGET_LINK_LIBRARIES(bench-utils PRIVATE logging memory)
+@@ -2873,134 +2840,134 @@
+   # ---[ Build accuracy microbenchmarks
+   ADD_EXECUTABLE(f16-exp-ulp-eval eval/f16-exp-ulp.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-exp-ulp-eval PRIVATE . src)
+-  TARGET_LINK_LIBRARIES(f16-exp-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f16-exp-ulp-eval PRIVATE benchmark cpuinfo)
+   TARGET_LINK_LIBRARIES(f16-exp-ulp-eval PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(f16-expminus-ulp-eval eval/f16-expminus-ulp.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-expminus-ulp-eval PRIVATE . src)
+-  TARGET_LINK_LIBRARIES(f16-expminus-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f16-expminus-ulp-eval PRIVATE benchmark cpuinfo)
+   TARGET_LINK_LIBRARIES(f16-expminus-ulp-eval PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(f16-expm1minus-ulp-eval eval/f16-expm1minus-ulp.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-expm1minus-ulp-eval PRIVATE . src)
+-  TARGET_LINK_LIBRARIES(f16-expm1minus-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f16-expm1minus-ulp-eval PRIVATE benchmark cpuinfo)
+   TARGET_LINK_LIBRARIES(f16-expm1minus-ulp-eval PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(f16-sigmoid-ulp-eval eval/f16-sigmoid-ulp.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-sigmoid-ulp-eval PRIVATE . src)
+-  TARGET_LINK_LIBRARIES(f16-sigmoid-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f16-sigmoid-ulp-eval PRIVATE benchmark cpuinfo)
+   TARGET_LINK_LIBRARIES(f16-sigmoid-ulp-eval PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(f16-sqrt-ulp-eval eval/f16-sqrt-ulp.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-sqrt-ulp-eval PRIVATE . src)
+-  TARGET_LINK_LIBRARIES(f16-sqrt-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f16-sqrt-ulp-eval PRIVATE benchmark cpuinfo)
+   TARGET_LINK_LIBRARIES(f16-sqrt-ulp-eval PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(f32-exp-ulp-eval eval/f32-exp-ulp.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-exp-ulp-eval PRIVATE . src)
+-  TARGET_LINK_LIBRARIES(f32-exp-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-exp-ulp-eval PRIVATE benchmark cpuinfo)
+   TARGET_LINK_LIBRARIES(f32-exp-ulp-eval PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(f32-expminus-ulp-eval eval/f32-expminus-ulp.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-expminus-ulp-eval PRIVATE . src)
+-  TARGET_LINK_LIBRARIES(f32-expminus-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-expminus-ulp-eval PRIVATE benchmark cpuinfo)
+   TARGET_LINK_LIBRARIES(f32-expminus-ulp-eval PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(f32-expm1minus-ulp-eval eval/f32-expm1minus-ulp.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-expm1minus-ulp-eval PRIVATE . src)
+-  TARGET_LINK_LIBRARIES(f32-expm1minus-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-expm1minus-ulp-eval PRIVATE benchmark cpuinfo)
+   TARGET_LINK_LIBRARIES(f32-expm1minus-ulp-eval PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(f32-extexp-ulp-eval eval/f32-extexp-ulp.cc)
+   SET_TARGET_PROPERTIES(f32-extexp-ulp-eval PROPERTIES CXX_EXTENSIONS YES)
+   TARGET_INCLUDE_DIRECTORIES(f32-extexp-ulp-eval PRIVATE . src)
+-  TARGET_LINK_LIBRARIES(f32-extexp-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-extexp-ulp-eval PRIVATE benchmark cpuinfo)
+   TARGET_LINK_LIBRARIES(f32-extexp-ulp-eval PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(f32-sigmoid-ulp-eval eval/f32-sigmoid-ulp.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-sigmoid-ulp-eval PRIVATE . src)
+-  TARGET_LINK_LIBRARIES(f32-sigmoid-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-sigmoid-ulp-eval PRIVATE benchmark cpuinfo)
+   TARGET_LINK_LIBRARIES(f32-sigmoid-ulp-eval PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(f32-sqrt-ulp-eval eval/f32-sqrt-ulp.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-sqrt-ulp-eval PRIVATE . src)
+-  TARGET_LINK_LIBRARIES(f32-sqrt-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-sqrt-ulp-eval PRIVATE benchmark cpuinfo)
+   TARGET_LINK_LIBRARIES(f32-sqrt-ulp-eval PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(f32-tanh-ulp-eval eval/f32-tanh-ulp.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-tanh-ulp-eval PRIVATE . src)
+-  TARGET_LINK_LIBRARIES(f32-tanh-ulp-eval PRIVATE benchmark cpuinfo fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-tanh-ulp-eval PRIVATE benchmark cpuinfo)
+   TARGET_LINK_LIBRARIES(f32-tanh-ulp-eval PRIVATE bench-utils microkernels-all)
+ 
+   # ---[ Build accuracy tests
+   ADD_EXECUTABLE(f16-sqrt-eval eval/f16-sqrt.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-sqrt-eval PRIVATE include src)
+-  TARGET_LINK_LIBRARIES(f16-sqrt-eval PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-sqrt-eval PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-sqrt-eval PRIVATE hardware-config logging microkernels-all)
+ 
+   ADD_EXECUTABLE(f16-f32-cvt-eval eval/f16-f32-cvt.cc)
    TARGET_INCLUDE_DIRECTORIES(f16-f32-cvt-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f16-f32-cvt-eval PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-f32-cvt-eval PRIVATE cpuinfo gtest gtest_main)
- 
-   ADD_EXECUTABLE(f32-f16-cvt-eval eval/f32-f16-cvt.cc $<TARGET_OBJECTS:all_microkernels>)
-   SET_TARGET_PROPERTIES(f32-f16-cvt-eval PROPERTIES
-@@ -8690,7 +8679,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
+-  TARGET_LINK_LIBRARIES(f16-f32-cvt-eval PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f16-f32-cvt-eval PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f16-f32-cvt-eval PRIVATE hardware-config logging microkernels-all)
+ 
+   ADD_EXECUTABLE(f32-f16-cvt-eval eval/f32-f16-cvt.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-f16-cvt-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f32-f16-cvt-eval PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-f16-cvt-eval PRIVATE cpuinfo gtest gtest_main)
- 
-   ADD_EXECUTABLE(f32-qs8-cvt-eval eval/f32-qs8-cvt.cc $<TARGET_OBJECTS:all_microkernels>)
-   SET_TARGET_PROPERTIES(f32-qs8-cvt-eval PROPERTIES
-@@ -8698,7 +8687,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
+-  TARGET_LINK_LIBRARIES(f32-f16-cvt-eval PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-f16-cvt-eval PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-f16-cvt-eval PRIVATE hardware-config logging microkernels-all)
+ 
+   ADD_EXECUTABLE(f32-qs8-cvt-eval eval/f32-qs8-cvt.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-qs8-cvt-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f32-qs8-cvt-eval PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-qs8-cvt-eval PRIVATE cpuinfo gtest gtest_main)
- 
-   ADD_EXECUTABLE(f32-qu8-cvt-eval eval/f32-qu8-cvt.cc $<TARGET_OBJECTS:all_microkernels>)
-   SET_TARGET_PROPERTIES(f32-qu8-cvt-eval PROPERTIES
-@@ -8706,7 +8695,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
+-  TARGET_LINK_LIBRARIES(f32-qs8-cvt-eval PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-qs8-cvt-eval PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-qs8-cvt-eval PRIVATE hardware-config logging microkernels-all)
+ 
+   ADD_EXECUTABLE(f32-qu8-cvt-eval eval/f32-qu8-cvt.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-qu8-cvt-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f32-qu8-cvt-eval PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-qu8-cvt-eval PRIVATE cpuinfo gtest gtest_main)
- 
-   ADD_EXECUTABLE(f32-exp-eval eval/f32-exp.cc $<TARGET_OBJECTS:all_microkernels>)
-   SET_TARGET_PROPERTIES(f32-exp-eval PROPERTIES
-@@ -8714,7 +8703,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
+-  TARGET_LINK_LIBRARIES(f32-qu8-cvt-eval PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-qu8-cvt-eval PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-qu8-cvt-eval PRIVATE hardware-config logging microkernels-all)
+ 
+   ADD_EXECUTABLE(f32-exp-eval eval/f32-exp.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-exp-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f32-exp-eval PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-exp-eval PRIVATE cpuinfo gtest gtest_main)
- 
-   ADD_EXECUTABLE(f32-expm1minus-eval eval/f32-expm1minus.cc $<TARGET_OBJECTS:all_microkernels>)
-   SET_TARGET_PROPERTIES(f32-expm1minus-eval PROPERTIES
-@@ -8722,7 +8711,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
+-  TARGET_LINK_LIBRARIES(f32-exp-eval PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-exp-eval PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-exp-eval PRIVATE hardware-config logging microkernels-all)
+ 
+   ADD_EXECUTABLE(f32-expm1minus-eval eval/f32-expm1minus.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-expm1minus-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f32-expm1minus-eval PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-expm1minus-eval PRIVATE cpuinfo gtest gtest_main)
- 
-   ADD_EXECUTABLE(f32-expminus-eval eval/f32-expminus.cc $<TARGET_OBJECTS:all_microkernels>)
-   SET_TARGET_PROPERTIES(f32-expminus-eval PROPERTIES
-@@ -8730,7 +8719,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
+-  TARGET_LINK_LIBRARIES(f32-expm1minus-eval PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-expm1minus-eval PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-expm1minus-eval PRIVATE hardware-config logging microkernels-all)
+ 
+   ADD_EXECUTABLE(f32-expminus-eval eval/f32-expminus.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-expminus-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f32-expminus-eval PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-expminus-eval PRIVATE cpuinfo gtest gtest_main)
- 
-   ADD_EXECUTABLE(f32-roundne-eval eval/f32-roundne.cc $<TARGET_OBJECTS:all_microkernels>)
-   SET_TARGET_PROPERTIES(f32-roundne-eval PROPERTIES
-@@ -8738,7 +8727,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
+-  TARGET_LINK_LIBRARIES(f32-expminus-eval PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-expminus-eval PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-expminus-eval PRIVATE hardware-config logging microkernels-all)
+ 
+   ADD_EXECUTABLE(f32-roundne-eval eval/f32-roundne.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-roundne-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f32-roundne-eval PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-roundne-eval PRIVATE cpuinfo gtest gtest_main)
- 
-   ADD_EXECUTABLE(f32-roundd-eval eval/f32-roundd.cc $<TARGET_OBJECTS:all_microkernels>)
-   SET_TARGET_PROPERTIES(f32-roundd-eval PROPERTIES
-@@ -8746,7 +8735,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
+-  TARGET_LINK_LIBRARIES(f32-roundne-eval PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-roundne-eval PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-roundne-eval PRIVATE hardware-config logging microkernels-all)
+ 
+   ADD_EXECUTABLE(f32-roundd-eval eval/f32-roundd.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-roundd-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f32-roundd-eval PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-roundd-eval PRIVATE cpuinfo gtest gtest_main)
- 
-   ADD_EXECUTABLE(f32-roundu-eval eval/f32-roundu.cc $<TARGET_OBJECTS:all_microkernels>)
-   SET_TARGET_PROPERTIES(f32-roundu-eval PROPERTIES
-@@ -8754,7 +8743,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
+-  TARGET_LINK_LIBRARIES(f32-roundd-eval PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-roundd-eval PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-roundd-eval PRIVATE hardware-config logging microkernels-all)
+ 
+   ADD_EXECUTABLE(f32-roundu-eval eval/f32-roundu.cc)
    TARGET_INCLUDE_DIRECTORIES(f32-roundu-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f32-roundu-eval PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-roundu-eval PRIVATE cpuinfo gtest gtest_main)
- 
-   ADD_EXECUTABLE(f32-roundz-eval eval/f32-roundz.cc $<TARGET_OBJECTS:all_microkernels>)
-   SET_TARGET_PROPERTIES(f32-roundz-eval PROPERTIES
-@@ -8762,7 +8751,7 @@
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS NO)
-   TARGET_INCLUDE_DIRECTORIES(f32-roundz-eval PRIVATE include src)
--  TARGET_LINK_LIBRARIES(f32-roundz-eval PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-roundz-eval PRIVATE cpuinfo gtest gtest_main)
+-  TARGET_LINK_LIBRARIES(f32-roundu-eval PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-roundu-eval PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-roundu-eval PRIVATE hardware-config logging microkernels-all)
  
-   # ---[ Build end-to-end microbenchmarks
-   ADD_LIBRARY(bench-models STATIC
+   ADD_EXECUTABLE(f32-roundz-eval eval/f32-roundz.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-roundz-eval PRIVATE include src)
+-  TARGET_LINK_LIBRARIES(f32-roundz-eval PRIVATE fp16 pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(f32-roundz-eval PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(f32-roundz-eval PRIVATE hardware-config logging microkernels-all)
+ 
+   ADD_EXECUTABLE(u32-sqrt-eval eval/u32-sqrt.cc)
+   TARGET_INCLUDE_DIRECTORIES(u32-sqrt-eval PRIVATE include src)
+-  TARGET_LINK_LIBRARIES(u32-sqrt-eval PRIVATE pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(u32-sqrt-eval PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(u32-sqrt-eval PRIVATE hardware-config logging microkernels-all)
+ 
+   ADD_EXECUTABLE(u64-sqrt-eval eval/u64-sqrt.cc)
+   TARGET_INCLUDE_DIRECTORIES(u64-sqrt-eval PRIVATE include src)
+-  TARGET_LINK_LIBRARIES(u64-sqrt-eval PRIVATE pthreadpool gtest gtest_main)
++  TARGET_LINK_LIBRARIES(u64-sqrt-eval PRIVATE gtest gtest_main)
+   TARGET_LINK_LIBRARIES(u64-sqrt-eval PRIVATE hardware-config logging microkernels-all)
+ 
+   IF(XNNPACK_BUILD_LIBRARY)
+@@ -3030,7 +2997,7 @@
+       models/qu8-mobilenet-v2.cc)
+     SET_TARGET_PROPERTIES(bench-models PROPERTIES CXX_EXTENSIONS YES)
+     TARGET_INCLUDE_DIRECTORIES(bench-models PRIVATE .)
+-    TARGET_LINK_LIBRARIES(bench-models PRIVATE fp16 benchmark)
++    TARGET_LINK_LIBRARIES(bench-models PRIVATE benchmark)
+     TARGET_LINK_LIBRARIES(bench-models PRIVATE XNNPACK bench-utils)
+ 
+     ADD_EXECUTABLE(end2end-bench bench/end2end.cc)
+@@ -3039,7 +3006,7 @@
+ 
+     ADD_EXECUTABLE(f16-gemm-e2e-bench bench/f16-gemm-e2e.cc)
+     TARGET_INCLUDE_DIRECTORIES(f16-gemm-e2e-bench PRIVATE . src)
+-    TARGET_LINK_LIBRARIES(f16-gemm-e2e-bench PRIVATE fp16 benchmark)
++    TARGET_LINK_LIBRARIES(f16-gemm-e2e-bench PRIVATE benchmark)
+     TARGET_LINK_LIBRARIES(f16-gemm-e2e-bench PRIVATE XNNPACK bench-models bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+     ADD_EXECUTABLE(f32-dwconv-e2e-bench bench/f32-dwconv-e2e.cc)
+@@ -3049,33 +3016,33 @@
+ 
+     ADD_EXECUTABLE(f32-gemm-e2e-bench bench/f32-gemm-e2e.cc)
+     TARGET_INCLUDE_DIRECTORIES(f32-gemm-e2e-bench PRIVATE . src)
+-    TARGET_LINK_LIBRARIES(f32-gemm-e2e-bench PRIVATE fp16 benchmark)
++    TARGET_LINK_LIBRARIES(f32-gemm-e2e-bench PRIVATE benchmark)
+     TARGET_LINK_LIBRARIES(f32-gemm-e2e-bench PRIVATE XNNPACK bench-models bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+     ADD_EXECUTABLE(qs8-dwconv-e2e-bench bench/qs8-dwconv-e2e.cc)
+     TARGET_INCLUDE_DIRECTORIES(qs8-dwconv-e2e-bench PRIVATE . src)
+-    TARGET_LINK_LIBRARIES(qs8-dwconv-e2e-bench PRIVATE fp16 benchmark)
++    TARGET_LINK_LIBRARIES(qs8-dwconv-e2e-bench PRIVATE benchmark)
+     TARGET_LINK_LIBRARIES(qs8-dwconv-e2e-bench PRIVATE XNNPACK bench-models bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+     ADD_EXECUTABLE(qs8-gemm-e2e-bench bench/qs8-gemm-e2e.cc)
+     TARGET_INCLUDE_DIRECTORIES(qs8-gemm-e2e-bench PRIVATE . src)
+-    TARGET_LINK_LIBRARIES(qs8-gemm-e2e-bench PRIVATE fp16 benchmark)
++    TARGET_LINK_LIBRARIES(qs8-gemm-e2e-bench PRIVATE benchmark)
+     TARGET_LINK_LIBRARIES(qs8-gemm-e2e-bench PRIVATE XNNPACK bench-models bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+     ADD_EXECUTABLE(qu8-gemm-e2e-bench bench/qu8-gemm-e2e.cc)
+     TARGET_INCLUDE_DIRECTORIES(qu8-gemm-e2e-bench PRIVATE . src)
+-    TARGET_LINK_LIBRARIES(qu8-gemm-e2e-bench PRIVATE fp16 benchmark)
++    TARGET_LINK_LIBRARIES(qu8-gemm-e2e-bench PRIVATE benchmark)
+     TARGET_LINK_LIBRARIES(qu8-gemm-e2e-bench PRIVATE XNNPACK bench-models bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+     ADD_EXECUTABLE(qu8-dwconv-e2e-bench bench/qu8-dwconv-e2e.cc)
+     TARGET_INCLUDE_DIRECTORIES(qu8-dwconv-e2e-bench PRIVATE . src)
+-    TARGET_LINK_LIBRARIES(qu8-dwconv-e2e-bench PRIVATE fp16 benchmark)
++    TARGET_LINK_LIBRARIES(qu8-dwconv-e2e-bench PRIVATE benchmark)
+     TARGET_LINK_LIBRARIES(qu8-dwconv-e2e-bench PRIVATE XNNPACK bench-models bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+     # ---[ Build operator-level microbenchmarks
+     ADD_EXECUTABLE(abs-bench bench/abs.cc)
+     TARGET_INCLUDE_DIRECTORIES(abs-bench PRIVATE .)
+-    TARGET_LINK_LIBRARIES(abs-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
++    TARGET_LINK_LIBRARIES(abs-bench PRIVATE XNNPACK benchmark bench-utils)
+ 
+     ADD_EXECUTABLE(average-pooling-bench bench/average-pooling.cc)
+     TARGET_INCLUDE_DIRECTORIES(average-pooling-bench PRIVATE .)
+@@ -3083,11 +3050,11 @@
+ 
+     ADD_EXECUTABLE(bankers-rounding-bench bench/bankers-rounding.cc)
+     TARGET_INCLUDE_DIRECTORIES(bankers-rounding-bench PRIVATE .)
+-    TARGET_LINK_LIBRARIES(bankers-rounding-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
++    TARGET_LINK_LIBRARIES(bankers-rounding-bench PRIVATE XNNPACK benchmark bench-utils)
+ 
+     ADD_EXECUTABLE(ceiling-bench bench/ceiling.cc)
+     TARGET_INCLUDE_DIRECTORIES(ceiling-bench PRIVATE .)
+-    TARGET_LINK_LIBRARIES(ceiling-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
++    TARGET_LINK_LIBRARIES(ceiling-bench PRIVATE XNNPACK benchmark bench-utils)
+ 
+     ADD_EXECUTABLE(channel-shuffle-bench bench/channel-shuffle.cc)
+     TARGET_INCLUDE_DIRECTORIES(channel-shuffle-bench PRIVATE .)
+@@ -3095,11 +3062,11 @@
+ 
+     ADD_EXECUTABLE(convert-bench bench/convert.cc)
+     TARGET_INCLUDE_DIRECTORIES(convert-bench PRIVATE .)
+-    TARGET_LINK_LIBRARIES(convert-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
++    TARGET_LINK_LIBRARIES(convert-bench PRIVATE XNNPACK benchmark bench-utils)
+ 
+     ADD_EXECUTABLE(convolution-bench bench/convolution.cc)
+     TARGET_INCLUDE_DIRECTORIES(convolution-bench PRIVATE .)
+-    TARGET_LINK_LIBRARIES(convolution-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
++    TARGET_LINK_LIBRARIES(convolution-bench PRIVATE XNNPACK benchmark bench-utils)
+ 
+     ADD_EXECUTABLE(deconvolution-bench bench/deconvolution.cc)
+     TARGET_INCLUDE_DIRECTORIES(deconvolution-bench PRIVATE .)
+@@ -3107,23 +3074,23 @@
+ 
+     ADD_EXECUTABLE(elu-bench bench/elu.cc)
+     TARGET_INCLUDE_DIRECTORIES(elu-bench PRIVATE .)
+-    TARGET_LINK_LIBRARIES(elu-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
++    TARGET_LINK_LIBRARIES(elu-bench PRIVATE XNNPACK benchmark bench-utils)
+ 
+     ADD_EXECUTABLE(floor-bench bench/floor.cc)
+     TARGET_INCLUDE_DIRECTORIES(floor-bench PRIVATE .)
+-    TARGET_LINK_LIBRARIES(floor-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
++    TARGET_LINK_LIBRARIES(floor-bench PRIVATE XNNPACK benchmark bench-utils)
+ 
+     ADD_EXECUTABLE(global-average-pooling-bench bench/global-average-pooling.cc)
+     TARGET_INCLUDE_DIRECTORIES(global-average-pooling-bench PRIVATE .)
+-    TARGET_LINK_LIBRARIES(global-average-pooling-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
++    TARGET_LINK_LIBRARIES(global-average-pooling-bench PRIVATE XNNPACK benchmark bench-utils)
+ 
+     ADD_EXECUTABLE(hardswish-bench bench/hardswish.cc)
+     TARGET_INCLUDE_DIRECTORIES(hardswish-bench PRIVATE .)
+-    TARGET_LINK_LIBRARIES(hardswish-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
++    TARGET_LINK_LIBRARIES(hardswish-bench PRIVATE XNNPACK benchmark bench-utils)
+ 
+     ADD_EXECUTABLE(leaky-relu-bench bench/leaky-relu.cc)
+     TARGET_INCLUDE_DIRECTORIES(leaky-relu-bench PRIVATE .)
+-    TARGET_LINK_LIBRARIES(leaky-relu-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
++    TARGET_LINK_LIBRARIES(leaky-relu-bench PRIVATE XNNPACK benchmark bench-utils)
+ 
+     ADD_EXECUTABLE(max-pooling-bench bench/max-pooling.cc)
+     TARGET_INCLUDE_DIRECTORIES(max-pooling-bench PRIVATE .)
+@@ -3139,7 +3106,7 @@
+ 
+     ADD_EXECUTABLE(sigmoid-bench bench/sigmoid.cc)
+     TARGET_INCLUDE_DIRECTORIES(sigmoid-bench PRIVATE .)
+-    TARGET_LINK_LIBRARIES(sigmoid-bench PRIVATE XNNPACK fp16 benchmark bench-utils)
++    TARGET_LINK_LIBRARIES(sigmoid-bench PRIVATE XNNPACK benchmark bench-utils)
+ 
+     ADD_EXECUTABLE(softmax-bench bench/softmax.cc)
+     TARGET_INCLUDE_DIRECTORIES(softmax-bench PRIVATE .)
+@@ -3161,378 +3128,378 @@
+   # ---[ Build microkernel-level microbenchmarks
+   ADD_EXECUTABLE(bf16-gemm-bench bench/bf16-gemm.cc)
+   TARGET_INCLUDE_DIRECTORIES(bf16-gemm-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(bf16-gemm-bench PRIVATE benchmark fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(bf16-gemm-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(bf16-gemm-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init packing)
+ 
+   ADD_EXECUTABLE(f16-conv-hwc2chw-bench bench/f16-conv-hwc2chw.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-conv-hwc2chw-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f16-conv-hwc2chw-bench PRIVATE benchmark fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f16-conv-hwc2chw-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f16-conv-hwc2chw-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init packing)
+ 
+   ADD_EXECUTABLE(f16-dwconv-bench bench/f16-dwconv.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-dwconv-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f16-dwconv-bench PRIVATE benchmark fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f16-dwconv-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f16-dwconv-bench PRIVATE bench-utils indirection hardware-config logging microkernels-all microparams-init packing)
+ 
+   ADD_EXECUTABLE(f16-dwconv2d-chw-bench bench/f16-dwconv2d-chw.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-dwconv2d-chw-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f16-dwconv2d-chw-bench PRIVATE benchmark fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f16-dwconv2d-chw-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f16-dwconv2d-chw-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init packing)
+ 
+   ADD_EXECUTABLE(f16-gavgpool-cw-bench bench/f16-gavgpool-cw.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-gavgpool-cw-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f16-gavgpool-cw-bench PRIVATE benchmark fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f16-gavgpool-cw-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f16-gavgpool-cw-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f16-gemm-bench bench/f16-gemm.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-gemm-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f16-gemm-bench PRIVATE benchmark fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f16-gemm-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f16-gemm-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init packing)
+ 
+   ADD_EXECUTABLE(f16-igemm-bench bench/f16-igemm.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-igemm-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f16-igemm-bench PRIVATE benchmark fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f16-igemm-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f16-igemm-bench PRIVATE bench-utils indirection hardware-config logging microkernels-all microparams-init packing)
+ 
+   ADD_EXECUTABLE(f16-raddstoreexpminusmax-bench bench/f16-raddstoreexpminusmax.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-raddstoreexpminusmax-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f16-raddstoreexpminusmax-bench PRIVATE benchmark fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f16-raddstoreexpminusmax-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f16-raddstoreexpminusmax-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f16-spmm-bench bench/f16-spmm.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-spmm-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f16-spmm-bench PRIVATE benchmark fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f16-spmm-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f16-spmm-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f16-velu-bench bench/f16-velu.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-velu-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f16-velu-bench PRIVATE benchmark fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f16-velu-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f16-velu-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f16-vsigmoid-bench bench/f16-vsigmoid.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-vsigmoid-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f16-vsigmoid-bench PRIVATE benchmark fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f16-vsigmoid-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f16-vsigmoid-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f16-vsqrt-bench bench/f16-vsqrt.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-vsqrt-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f16-vsqrt-bench PRIVATE benchmark fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f16-vsqrt-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f16-vsqrt-bench PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(f16-f32-vcvt-bench bench/f16-f32-vcvt.cc)
+   TARGET_INCLUDE_DIRECTORIES(f16-f32-vcvt-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f16-f32-vcvt-bench PRIVATE benchmark fp16 pthreadpool)
++  TARGET_LINK_LIBRARIES(f16-f32-vcvt-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f16-f32-vcvt-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f32-conv-hwc-bench bench/f32-conv-hwc.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-conv-hwc-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-conv-hwc-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-conv-hwc-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-conv-hwc-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init packing)
+ 
+   ADD_EXECUTABLE(f32-conv-hwc2chw-bench bench/f32-conv-hwc2chw.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-conv-hwc2chw-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-conv-hwc2chw-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-conv-hwc2chw-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-conv-hwc2chw-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init packing)
+ 
+   ADD_EXECUTABLE(f32-dwconv-bench bench/f32-dwconv.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-dwconv-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-dwconv-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-dwconv-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-dwconv-bench PRIVATE bench-utils indirection hardware-config logging microkernel-utils microkernels-all microparams-init packing)
+ 
+   ADD_EXECUTABLE(f32-dwconv2d-chw-bench bench/f32-dwconv2d-chw.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-dwconv2d-chw-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-dwconv2d-chw-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-dwconv2d-chw-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-dwconv2d-chw-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f32-f16-vcvt-bench bench/f32-f16-vcvt.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-f16-vcvt-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-f16-vcvt-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-f16-vcvt-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-f16-vcvt-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f32-gavgpool-cw-bench bench/f32-gavgpool-cw.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-gavgpool-cw-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-gavgpool-cw-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-gavgpool-cw-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-gavgpool-cw-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f32-gemm-bench bench/f32-gemm.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-gemm-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-gemm-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-gemm-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-gemm-bench PRIVATE jit bench-utils hardware-config logging microkernels-all microparams-init packing)
+ 
+   ADD_EXECUTABLE(f32-igemm-bench bench/f32-igemm.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-igemm-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-igemm-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-igemm-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-igemm-bench PRIVATE jit bench-utils indirection hardware-config logging microkernels-all microparams-init packing)
+ 
+   ADD_EXECUTABLE(f32-im2col-gemm-bench bench/f32-im2col-gemm.cc src/im2col.c)
+   TARGET_INCLUDE_DIRECTORIES(f32-im2col-gemm-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-im2col-gemm-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-im2col-gemm-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-im2col-gemm-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init packing)
+ 
+   ADD_EXECUTABLE(f32-qs8-vcvt-bench bench/f32-qs8-vcvt.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-qs8-vcvt-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-qs8-vcvt-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-qs8-vcvt-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-qs8-vcvt-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f32-qu8-vcvt-bench bench/f32-qu8-vcvt.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-qu8-vcvt-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-qu8-vcvt-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-qu8-vcvt-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-qu8-vcvt-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f32-raddstoreexpminusmax-bench bench/f32-raddstoreexpminusmax.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-raddstoreexpminusmax-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-raddstoreexpminusmax-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-raddstoreexpminusmax-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-raddstoreexpminusmax-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f32-raddexpminusmax-bench bench/f32-raddexpminusmax.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-raddexpminusmax-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-raddexpminusmax-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-raddexpminusmax-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-raddexpminusmax-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f32-raddextexp-bench bench/f32-raddextexp.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-raddextexp-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-raddextexp-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-raddextexp-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-raddextexp-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f32-vscaleexpminusmax-bench bench/f32-vscaleexpminusmax.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-vscaleexpminusmax-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-vscaleexpminusmax-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-vscaleexpminusmax-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-vscaleexpminusmax-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f32-vscaleextexp-bench bench/f32-vscaleextexp.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-vscaleextexp-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-vscaleextexp-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-vscaleextexp-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-vscaleextexp-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f32-rmax-bench bench/f32-rmax.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-rmax-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-rmax-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-rmax-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-rmax-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f32-spmm-bench bench/f32-spmm.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-spmm-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-spmm-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-spmm-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-spmm-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f32-softmax-bench bench/f32-softmax.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-softmax-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-softmax-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-softmax-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-softmax-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f32-velu-bench bench/f32-velu.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-velu-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-velu-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-velu-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-velu-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f32-vhswish-bench bench/f32-vhswish.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-vhswish-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-vhswish-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-vhswish-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-vhswish-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f32-vlrelu-bench bench/f32-vlrelu.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-vlrelu-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-vlrelu-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-vlrelu-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-vlrelu-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f32-vrelu-bench bench/f32-vrelu.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-vrelu-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-vrelu-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-vrelu-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-vrelu-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f32-vsigmoid-bench bench/f32-vsigmoid.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-vsigmoid-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-vsigmoid-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-vsigmoid-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-vsigmoid-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(f32-vsqrt-bench bench/f32-vsqrt.cc)
+   TARGET_INCLUDE_DIRECTORIES(f32-vsqrt-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(f32-vsqrt-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(f32-vsqrt-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(f32-vsqrt-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(qs8-dwconv-bench bench/qs8-dwconv.cc)
+   TARGET_INCLUDE_DIRECTORIES(qs8-dwconv-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(qs8-dwconv-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(qs8-dwconv-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(qs8-dwconv-bench PRIVATE bench-utils indirection hardware-config logging microkernels-all microparams-init packing)
+ 
+   ADD_EXECUTABLE(qs8-f32-vcvt-bench bench/qs8-f32-vcvt.cc)
+   TARGET_INCLUDE_DIRECTORIES(qs8-f32-vcvt-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(qs8-f32-vcvt-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(qs8-f32-vcvt-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(qs8-f32-vcvt-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(qs8-gemm-bench bench/qs8-gemm.cc)
+   TARGET_INCLUDE_DIRECTORIES(qs8-gemm-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(qs8-gemm-bench PRIVATE benchmark pthreadpool jit microparams-init)
++  TARGET_LINK_LIBRARIES(qs8-gemm-bench PRIVATE benchmark jit microparams-init)
+   TARGET_LINK_LIBRARIES(qs8-gemm-bench PRIVATE bench-utils jit hardware-config logging microkernels-all microparams-init packing)
+ 
+   ADD_EXECUTABLE(qs8-requantization-bench bench/qs8-requantization.cc)
+   SET_TARGET_PROPERTIES(qs8-requantization-bench PROPERTIES CXX_EXTENSIONS YES)
+   TARGET_INCLUDE_DIRECTORIES(qs8-requantization-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(qs8-requantization-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(qs8-requantization-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(qs8-requantization-bench PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(qs8-vadd-bench bench/qs8-vadd.cc)
+   TARGET_INCLUDE_DIRECTORIES(qs8-vadd-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(qs8-vadd-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(qs8-vadd-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(qs8-vadd-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(qs8-vaddc-bench bench/qs8-vaddc.cc)
+   TARGET_INCLUDE_DIRECTORIES(qs8-vaddc-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(qs8-vaddc-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(qs8-vaddc-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(qs8-vaddc-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(qs8-vcvt-bench bench/qs8-vcvt.cc)
+   TARGET_INCLUDE_DIRECTORIES(qs8-vcvt-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(qs8-vcvt-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(qs8-vcvt-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(qs8-vcvt-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(qs8-vlrelu-bench bench/qs8-vlrelu.cc)
+   TARGET_INCLUDE_DIRECTORIES(qs8-vlrelu-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(qs8-vlrelu-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(qs8-vlrelu-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(qs8-vlrelu-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(qs8-vmul-bench bench/qs8-vmul.cc)
+   TARGET_INCLUDE_DIRECTORIES(qs8-vmul-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(qs8-vmul-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(qs8-vmul-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(qs8-vmul-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(qs8-vmulc-bench bench/qs8-vmulc.cc)
+   TARGET_INCLUDE_DIRECTORIES(qs8-vmulc-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(qs8-vmulc-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(qs8-vmulc-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(qs8-vmulc-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(qu8-f32-vcvt-bench bench/qu8-f32-vcvt.cc)
+   TARGET_INCLUDE_DIRECTORIES(qu8-f32-vcvt-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(qu8-f32-vcvt-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(qu8-f32-vcvt-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(qu8-f32-vcvt-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(qu8-gemm-bench bench/qu8-gemm.cc)
+   TARGET_INCLUDE_DIRECTORIES(qu8-gemm-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(qu8-gemm-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(qu8-gemm-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(qu8-gemm-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init packing)
+ 
+   ADD_EXECUTABLE(qu8-requantization-bench bench/qu8-requantization.cc)
+   SET_TARGET_PROPERTIES(qu8-requantization-bench PROPERTIES CXX_EXTENSIONS YES)
+   TARGET_INCLUDE_DIRECTORIES(qu8-requantization-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(qu8-requantization-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(qu8-requantization-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(qu8-requantization-bench PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(qu8-vadd-bench bench/qu8-vadd.cc)
+   TARGET_INCLUDE_DIRECTORIES(qu8-vadd-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(qu8-vadd-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(qu8-vadd-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(qu8-vadd-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(qu8-vaddc-bench bench/qu8-vaddc.cc)
+   TARGET_INCLUDE_DIRECTORIES(qu8-vaddc-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(qu8-vaddc-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(qu8-vaddc-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(qu8-vaddc-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(qu8-vcvt-bench bench/qu8-vcvt.cc)
+   TARGET_INCLUDE_DIRECTORIES(qu8-vcvt-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(qu8-vcvt-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(qu8-vcvt-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(qu8-vcvt-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(qu8-vlrelu-bench bench/qu8-vlrelu.cc)
+   TARGET_INCLUDE_DIRECTORIES(qu8-vlrelu-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(qu8-vlrelu-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(qu8-vlrelu-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(qu8-vlrelu-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(qu8-vmul-bench bench/qu8-vmul.cc)
+   TARGET_INCLUDE_DIRECTORIES(qu8-vmul-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(qu8-vmul-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(qu8-vmul-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(qu8-vmul-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(qu8-vmulc-bench bench/qu8-vmulc.cc)
+   TARGET_INCLUDE_DIRECTORIES(qu8-vmulc-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(qu8-vmulc-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(qu8-vmulc-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(qu8-vmulc-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(rounding-bench bench/rounding.cc)
+   TARGET_INCLUDE_DIRECTORIES(rounding-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(rounding-bench PRIVATE benchmark cpuinfo pthreadpool)
++  TARGET_LINK_LIBRARIES(rounding-bench PRIVATE benchmark cpuinfo)
+   TARGET_LINK_LIBRARIES(rounding-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(s16-rmaxabs-bench bench/s16-rmaxabs.cc)
+   TARGET_INCLUDE_DIRECTORIES(s16-rmaxabs-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(s16-rmaxabs-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(s16-rmaxabs-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(s16-rmaxabs-bench PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(s16-window-bench bench/s16-window.cc)
+   TARGET_INCLUDE_DIRECTORIES(s16-window-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(s16-window-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(s16-window-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(s16-window-bench PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(u32-filterbank-accumulate-bench bench/u32-filterbank-accumulate.cc)
+   TARGET_INCLUDE_DIRECTORIES(u32-filterbank-accumulate-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(u32-filterbank-accumulate-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(u32-filterbank-accumulate-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(u32-filterbank-accumulate-bench PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(u32-filterbank-subtract-bench bench/u32-filterbank-subtract.cc)
+   TARGET_INCLUDE_DIRECTORIES(u32-filterbank-subtract-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(u32-filterbank-subtract-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(u32-filterbank-subtract-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(u32-filterbank-subtract-bench PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(u32-vlog-bench bench/u32-vlog.cc)
+   TARGET_INCLUDE_DIRECTORIES(u32-vlog-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(u32-vlog-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(u32-vlog-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(u32-vlog-bench PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(u64-u32-vsqrtshift-bench bench/u64-u32-vsqrtshift.cc)
+   TARGET_INCLUDE_DIRECTORIES(u64-u32-vsqrtshift-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(u64-u32-vsqrtshift-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(u64-u32-vsqrtshift-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(u64-u32-vsqrtshift-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(i16-vlshift-bench bench/i16-vlshift.cc)
+   TARGET_INCLUDE_DIRECTORIES(i16-vlshift-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(i16-vlshift-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(i16-vlshift-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(i16-vlshift-bench PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(cs16-vsquareabs-bench bench/cs16-vsquareabs.cc)
+   TARGET_INCLUDE_DIRECTORIES(cs16-vsquareabs-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(cs16-vsquareabs-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(cs16-vsquareabs-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(cs16-vsquareabs-bench PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(cs16-bfly4-bench bench/cs16-bfly4.cc)
+   TARGET_INCLUDE_DIRECTORIES(cs16-bfly4-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(cs16-bfly4-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(cs16-bfly4-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(cs16-bfly4-bench PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(cs16-fftr-bench bench/cs16-fftr.cc)
+   TARGET_INCLUDE_DIRECTORIES(cs16-fftr-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(cs16-fftr-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(cs16-fftr-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(cs16-fftr-bench PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(xx-transpose-bench bench/xx-transpose.cc)
+   TARGET_INCLUDE_DIRECTORIES(xx-transpose-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(xx-transpose-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(xx-transpose-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(xx-transpose-bench PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(x8-lut-bench bench/x8-lut.cc)
+   TARGET_INCLUDE_DIRECTORIES(x8-lut-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(x8-lut-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(x8-lut-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(x8-lut-bench PRIVATE bench-utils microkernels-all)
+ 
+   ADD_EXECUTABLE(x8-transpose-bench bench/x32-transpose.cc)
+   TARGET_INCLUDE_DIRECTORIES(x8-transpose-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(x8-transpose-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(x8-transpose-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(x8-transpose-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(x16-transpose-bench bench/x16-transpose.cc)
+   TARGET_INCLUDE_DIRECTORIES(x16-transpose-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(x16-transpose-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(x16-transpose-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(x16-transpose-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(x24-transpose-bench bench/x16-transpose.cc)
+   TARGET_INCLUDE_DIRECTORIES(x24-transpose-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(x24-transpose-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(x24-transpose-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(x24-transpose-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(x32-transpose-bench bench/x32-transpose.cc)
+   TARGET_INCLUDE_DIRECTORIES(x32-transpose-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(x32-transpose-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(x32-transpose-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(x32-transpose-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ 
+   ADD_EXECUTABLE(x64-transpose-bench bench/x64-transpose.cc)
+   TARGET_INCLUDE_DIRECTORIES(x64-transpose-bench PRIVATE . include src)
+-  TARGET_LINK_LIBRARIES(x64-transpose-bench PRIVATE benchmark pthreadpool)
++  TARGET_LINK_LIBRARIES(x64-transpose-bench PRIVATE benchmark)
+   TARGET_LINK_LIBRARIES(x64-transpose-bench PRIVATE bench-utils hardware-config logging microkernels-all microparams-init)
+ ENDIF()
-- 
2.41.0






Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:42:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:42:24 2024
Received: from localhost ([127.0.0.1]:51570 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx9g-0008Ga-S7
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:24 -0500
Received: from mout01.posteo.de ([185.67.36.65]:56205)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx91-0008AD-Ek
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:41 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id D0D99240027
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:41:02 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754062; bh=XUJJPi1LgpfcxMIlJE1B95flsWczgYzqFqf4StB2CCc=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=E5S9Jm3C+20EABd8Vt2zE2qO+bPy0UIrdhxd8QNrMfmnz1rPKTMBPKZ5Kd4gm7Y1Q
 m9ALd/FzF+kM7dK/wkZ6XfeVXR8P6fLDBDF9RVgrffSdsGd780jj41JZmskLcm/TvN
 4JUMBe4g/3fweIMwiOxF1jDEl/StoedVC5DfUkL3ujrwOIhHmyD9UZ4Dh7eqKuD9Gy
 9vvQLRPgA53zR9EG+PvpaMPXeVuez2d0CdJWBzuR02ytE8N7v2L6ztzaBSKSAa8+i2
 KUaXy6F2/zHpDIfFqGaN/tyXCxaH0v7BXgD5qQuGLHkJZ+6UtjVIN326d5HzI3q385
 J8aBOAIQaa6Ww==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTp3Mwyz6ty6;
 Wed,  6 Mar 2024 20:41:02 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 17/31] gnu: oneapi-dnnl: Update to 3.3.5.
Date: Wed,  6 Mar 2024 19:40:23 +0000
Message-ID: <20240306194037.17992-17-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/machine-learning.scm (oneapi-dnnl): Update to 3.3.5.
[supported-systems]: New field.
---
 gnu/packages/machine-learning.scm | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 846fb7a718..99d7399c12 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -5375,7 +5375,7 @@ (define-public python-brian2tools
 (define-public oneapi-dnnl
   (package
     (name "oneapi-dnnl")
-    (version "3.1")
+    (version "3.3.5")
     (source
      (origin
        (method git-fetch)
@@ -5384,7 +5384,7 @@ (define-public oneapi-dnnl
              (commit (string-append "v" version))))
        (file-name (git-file-name name version))
        (sha256
-        (base32 "1jgmb5kl0bf4a2zfn94zlb117672r9lvvkkmwl86ihlyr1mpr3d0"))))
+        (base32 "05ra5zziys2hvn29y6ysiqzsf4jr9bf2bci5sc3swvf3bs2y5ihf"))))
     (build-system cmake-build-system)
     (arguments (if (target-riscv64?)
                    (list #:configure-flags #~'("-DDNNL_CPU_RUNTIME=SEQ"))
@@ -5394,6 +5394,7 @@ (define-public oneapi-dnnl
     (description
      "OneAPI Deep Neural Network Library (oneDNN) is a cross-platform
 performance library of basic building blocks for deep learning applications.")
+    (supported-systems %64bit-supported-systems)
     (license license:asl2.0)))
 
 (define-public python-gguf
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:42:21 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:42:20 2024
Received: from localhost ([127.0.0.1]:51568 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx9d-0008GP-GJ
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:20 -0500
Received: from mout02.posteo.de ([185.67.36.66]:59041)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx8z-00089w-LN
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:41 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 0E334240101
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:41:01 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754061; bh=bQEJfhcjwdtOAcsY+F17lRws+ZfD0SWLBfVKbOEvIbQ=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=MaS8spkEuqJd8/t15J9gt1vGKrqlRxdCBi/xg439KrHgLYvTNu9hOIbgCIGnq/wn1
 eknyp9sNBk4Wvncol/tVINW/KvPIOoP/bOhClX/uKL1M/dinKdGCh5tCfHc2eznrQa
 yYisbL4YfHUkJbRz+7OFUiLEpHsi9JhbzxTKK3kFrCXc61HriqRWo8981r8FG8QpQV
 PNFujMUVioqUUZI9GsSmYyynPo4ydxhnk6rUUdgXzeHX+DvalArIoNtoOn3pPt9fqK
 uslOSA0bUojnOGepMPMWTBiJpEG+gfX0GcPkOt+qNhj8ccI+EUYhuHBGGpdRKcDjB3
 cPLKMTNTMoClA==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTm4gqbz6tw3;
 Wed,  6 Mar 2024 20:41:00 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 15/31] gnu: clog: Add "-DUSE_SYSTEM_LIBS=ON" configure flag.
Date: Wed,  6 Mar 2024 19:40:21 +0000
Message-ID: <20240306194037.17992-15-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/parallel.scm (clog)[arguments]: Add "-DUSE_SYSTEM_LIBS=ON"
to #:configure-flags.
* gnu/packages/patches/clog-fix-shared-build.patch: Adjust patch.
---
 gnu/packages/parallel.scm                     | 13 ++++---
 .../patches/clog-fix-shared-build.patch       | 39 ++-----------------
 2 files changed, 12 insertions(+), 40 deletions(-)

diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 4dc0bee898..7d53f3a769 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -523,11 +523,14 @@ (define-public clog
               (inherit (package-source cpuinfo))
               (patches (search-patches "clog-fix-shared-build.patch"))))
     (arguments
-     (list #:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON")
-           #:phases #~(modify-phases %standard-phases
-                        (add-after 'unpack 'chdir
-                          (lambda _
-                            (chdir "deps/clog"))))))
+     (list
+      #:configure-flags
+      ''("-DBUILD_SHARED_LIBS=ON"
+         "-DUSE_SYSTEM_LIBS=ON")
+      #:phases #~(modify-phases %standard-phases
+                   (add-after 'unpack 'chdir
+                     (lambda _
+                       (chdir "deps/clog"))))))
     (native-inputs (list googletest))
     (inputs '())
     (synopsis "C-style logging library based on printf")
diff --git a/gnu/packages/patches/clog-fix-shared-build.patch b/gnu/packages/patches/clog-fix-shared-build.patch
index bf80544b90..eb305339f5 100644
--- a/gnu/packages/patches/clog-fix-shared-build.patch
+++ b/gnu/packages/patches/clog-fix-shared-build.patch
@@ -1,50 +1,19 @@
 Author: Antero Mejr <antero@HIDDEN>
-Notes: Disabled function visibility hacks and googletest download. Enabled
-non-static builds.
+Notes: Disabled function visibility hacks. Enabled non-static builds.
 
 diff --git a/deps/clog/CMakeLists.txt b/deps/clog/CMakeLists.txt
-index 083f519..b7b225a 100644
+index 6e50c41..db02e95 100644
 --- a/deps/clog/CMakeLists.txt
 +++ b/deps/clog/CMakeLists.txt
-@@ -38,20 +38,8 @@ SET(CONFU_DEPENDENCIES_SOURCE_DIR ${CMAKE_SOURCE_DIR}/deps
- SET(CONFU_DEPENDENCIES_BINARY_DIR ${CMAKE_BINARY_DIR}/deps
-   CACHE PATH "Confu-style dependencies binary directory")
+@@ -55,7 +55,7 @@ IF(CLOG_BUILD_TESTS)
+ ENDIF()
  
--IF(CLOG_BUILD_TESTS)
--  IF(NOT DEFINED GOOGLETEST_SOURCE_DIR)
--    MESSAGE(STATUS "Downloading Google Test to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest (define GOOGLETEST_SOURCE_DIR to avoid it)")
--    CONFIGURE_FILE(cmake/DownloadGoogleTest.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download/CMakeLists.txt")
--    EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
--      WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download")
--    EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" --build .
--      WORKING_DIRECTORY "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download")
--    SET(GOOGLETEST_SOURCE_DIR "${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest" CACHE STRING "Google Test source directory")
--  ENDIF()
--ENDIF()
--
  # ---[ clog library
 -ADD_LIBRARY(clog STATIC src/clog.c)
 +ADD_LIBRARY(clog src/clog.c)
  SET_TARGET_PROPERTIES(clog PROPERTIES
    C_STANDARD 99
    C_EXTENSIONS NO)
-@@ -74,16 +62,6 @@ INSTALL(TARGETS clog
- 
- # ---[ clog tests
- IF(CLOG_BUILD_TESTS)
--  # ---[ Build google test
--  IF(NOT TARGET gtest)
--    IF(MSVC AND NOT CLOG_RUNTIME_TYPE STREQUAL "static")
--      SET(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
--    ENDIF()
--    ADD_SUBDIRECTORY(
--      "${GOOGLETEST_SOURCE_DIR}"
--      "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest")
--  ENDIF()
--
-   ADD_EXECUTABLE(clog-test test/clog.cc)
-   SET_TARGET_PROPERTIES(clog-test PROPERTIES
-     CXX_STANDARD 11
 diff --git a/deps/clog/include/clog.h b/deps/clog/include/clog.h
 index 4143761..aa9000f 100644
 --- a/deps/clog/include/clog.h
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:42:17 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:42:17 2024
Received: from localhost ([127.0.0.1]:51566 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx9Z-0008GI-Ot
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:17 -0500
Received: from mout01.posteo.de ([185.67.36.65]:42109)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx90-00089A-Lk
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:41 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 3FFA5240028
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:41:07 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754067; bh=6rFk1HBXRN8lvWTSim8d78vOE9+A8gDXqm9Z0LKLobA=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=f2XbmvZYFFmB7257JElCbUeqi/CzFbqRan3XZqpw1beDOYZTVRPcbaCp90bht8LRq
 7hdm04GMH/+EBgm0ELwftWrfYkcrh8yPlUQKB1QOpvBoUzjgf9nuXbtQSy0pJtFbg+
 ECy6AWYUSKj5RYDJGhUYpNUh5eISr/p8WAwk8LJXzNOnyqzbRzJZsGwW9lpwN8PpNZ
 1Mt3kfkwM6HjbPmOEcxhtBjizSvvEVgIss2ykytpnIiBg9xUi2fxqhIXtVklNfUdvk
 td2u7RO05zAevw3ep23HCinMSB5RnVdL5I6dGFkXLwM0G5/id4HiaEtspM+T13wT7o
 tM/7ngkyAOJLA==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTt6RJlz6tvm;
 Wed,  6 Mar 2024 20:41:06 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 22/31] gnu: Add ideep-pytorch.
Date: Wed,  6 Mar 2024 19:40:28 +0000
Message-ID: <20240306194037.17992-22-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/machine-learning.scm (ideep-pytorch): New variable.
---
 gnu/packages/machine-learning.scm | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 5c21e4ed46..bfad33eadb 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -51,6 +51,7 @@ (define-module (gnu packages machine-learning)
   #:use-module (guix download)
   #:use-module (guix svn-download)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system ocaml)
   #:use-module (guix build-system pyproject)
@@ -4244,6 +4245,31 @@ (define-public foxi
 contains facebook extensions and is used by PyTorch.")
       (license license:expat))))
 
+(define-public ideep-pytorch
+  (package
+    (name "ideep-pytorch")
+    (version "3.3.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/intel/ideep")
+             (commit (string-append "pytorch-rls-v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "0y6r938qryi3bnf15rp0fbilsfimdcgmvsa0ygwrn3zifw6386rb"))))
+    (build-system copy-build-system)
+    (arguments
+     (list
+      #:install-plan
+      ''(("include" "include"))))
+    (home-page "https://github.com/intel/ideep")
+    (synopsis "Ideep headers for interal use by PyTorch")
+    (description "This library is used internally as header-only library by
+PyTorch.")
+    (license license:expat)))
+
 ;; Please also update python-torchvision when updating this package.
 (define-public python-pytorch
   (package
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:42:13 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:42:13 2024
Received: from localhost ([127.0.0.1]:51564 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx9V-0008G3-VR
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:13 -0500
Received: from mout02.posteo.de ([185.67.36.66]:51095)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx8w-00089c-Rz
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:40 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 4299F240101
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:40:58 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754058; bh=dvFrzjgKv82H0WyMpABScVnBCb4yOQGEcTX2re0ZXmE=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=arZQ2ZmLQmEWBETDAW69YnOLPcTMtdqdS2hC8BtXAhhEWO1ccjK6Xdu7kHZeXhzW0
 +xUfSoefIWFQomd9VN3rvEW45HbJxYQKScnfvk03KV3PlZ0myO7yy0xRQ7gu2Ddhk/
 BTPVrWGqX4glNJfl3kmOzXQW+lT6NLWzks5s9MBEWwxHBO9VZZ0BR53XgKN1ukYyjI
 vKyGeu8w8PCwolsW+J8fstLildHrEzA3pt8DUwVg7J/RrnjgGfPPxKLWx+hP/iWhQF
 BM6jnJbht+nBvJFzfo5d7npoPtV87VqlM7BC4BAwWQg+/KPsQJJwJUr45IAo/Qn/Sd
 tM3nKQVYKxhLw==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTj6HFDz6txY;
 Wed,  6 Mar 2024 20:40:57 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 12/31] gnu: python-flatbuffers-next: Update to 23.5.26.
Date: Wed,  6 Mar 2024 19:40:18 +0000
Message-ID: <20240306194037.17992-12-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/serialization.scm (python-flatbuffers-next): Update to 23.5.26.
---
 gnu/packages/serialization.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index 8f1d3dab17..b5b9669762 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -878,7 +878,7 @@ (define-public flatbuffers
 (define-public flatbuffers-next
   (package
     (inherit flatbuffers)
-    (version "23.1.21")
+    (version "23.5.26")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -887,7 +887,7 @@ (define-public flatbuffers-next
               (file-name (git-file-name "flatbuffers" version))
               (sha256
                (base32
-                "1z3a6l8g2y53i5xzraswfs2i0i3kk52zv7nzc2q3fgisbyiri3pz"))))))
+                "0cd12dvkzqdafz46q4302mzgpzbz589zmmiga7bq07f2sqy4vrvv"))))))
 
 (define-public python-flatbuffers
   (package
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:42:10 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:42:10 2024
Received: from localhost ([127.0.0.1]:51562 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx9T-0008Fk-SC
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:09 -0500
Received: from mout01.posteo.de ([185.67.36.65]:42761)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx8x-00089d-Pw
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:39 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 2FA65240028
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:40:59 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754059; bh=fwHORybWawKUrN9xD1FWtmyB3m0W8yiU/T/8rUUMZHM=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=VAGZbRwIuELymPBsqCFosZs0RPFAnBaQ04rvawsG0gzwqzXnfQKFIyS1FtzUcYAlZ
 UKVyU24pTl2kx6gfTxS/FfsFkjMs6WPdNSHs1Eg+sAm0z29uH7Wn8MkKDBelpfvDZn
 vs+O70bj7o9BXte5jIkaBoe2fR59/xQa0R2HsASbTDW/Sc0DsjfSNmkJlR5btphDtN
 K+/WVGZjoALoh22E3ihoxiXuH82KpRPzLlHVtMSYgEbqgAvETDTtlDESfWdzyebzj3
 NN4Mzfa7qjxJOvUBFdrD7cp0knyGcgB+pfuHwJvVpFZo9S0AFcFGYfmG9Pe6jCVmAe
 BETuPT6lchW+w==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTk5j6Hz6twn;
 Wed,  6 Mar 2024 20:40:58 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 13/31] gnu: pthreadpool: Update to commit 178e3e0.
Date: Wed,  6 Mar 2024 19:40:19 +0000
Message-ID: <20240306194037.17992-13-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/parallel.scm (pthreadpool): Update to commit 178e3e0.
---
 gnu/packages/parallel.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index ddf4ad016b..4e8ca9af35 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -449,9 +449,9 @@ (define-public python-slurm-magic
 (define-public pthreadpool
   ;; This repository has only one tag, 0.1, which is older than what users
   ;; such as XNNPACK expect.
-  (let ((commit "1787867f6183f056420e532eec640cba25efafea")
+  (let ((commit "178e3e0646cc671708bf78e77c273940130ac637")
         (version "0.1")
-        (revision "1"))
+        (revision "2"))
     (package
       (name "pthreadpool")
       (version (git-version version revision commit))
@@ -462,7 +462,7 @@ (define-public pthreadpool
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "02hdvxfn5krw8zivkgjx3b4rk9p02yr4mpdjlp75lsv6z1xf5yrx"))
+                  "1s86lnq9bahacf5wxn7y14w70jh3g9lq1l7y16ijwhifd01nc2km"))
                 (patches (search-patches "pthreadpool-system-libraries.patch"))))
       (build-system cmake-build-system)
       (arguments '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:42:08 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:42:07 2024
Received: from localhost ([127.0.0.1]:51555 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx9R-0008F4-7R
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:07 -0500
Received: from mout02.posteo.de ([185.67.36.66]:54269)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx8y-00089s-PT
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:39 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 2EBFA240101
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:41:00 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754060; bh=bafi+ZHdNByOMYupl5HA4SV/IxcxRrmuC0X9rKXq3aY=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=eTeWWenY4mQD/NKqkSF9SMgzViPD14az60DFNu7TA7OiNp2ega5VkapG3xqQr40Uz
 4mxX43eUV6te/IiSfOTKgD/bDN9dfjyqXpemkxfWGnM2cGtlFEDQn3cj5Q+ll68URk
 Cz5IZC7ZeApn1MQ2wmJ3IWOcmgplNJhf+F7Rr9b5reQcforKINPs3pAbNh1TG9jjmv
 3ZudjUEIcF78Q1W76fW6Cg2jQ9FdpsDwLaZtUDsjltKwSPIG5WQPp8Jcgdrg2fJvt0
 gTxDXUQDYXw+latwSwYiuqLs4WcW7bvg1wx5o3GwvJ9I1cEYqO2KyvTkOHBqXWB6KG
 jP5wLN4SQ7EXQ==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTl5J1Qz6tw3;
 Wed,  6 Mar 2024 20:40:59 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 14/31] gnu: cpuinfo: Update to commit aa4b216.
Date: Wed,  6 Mar 2024 19:40:20 +0000
Message-ID: <20240306194037.17992-14-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/parallel.scm (cpuinfo): Update to commit aa4b216.
[arguments]: Set the "-DUSE_SYSTEM_LIBS=ON" configure flag instead of using a
patch.
* gnu/packages/patches/cpuinfo-system-libraries.patch: Remove file.
* gnu/local.mk (dist_patch_DATA): Remove it.
---
 gnu/local.mk                                  |  1 -
 gnu/packages/parallel.scm                     | 11 ++--
 .../patches/cpuinfo-system-libraries.patch    | 50 -------------------
 3 files changed, 6 insertions(+), 56 deletions(-)
 delete mode 100644 gnu/packages/patches/cpuinfo-system-libraries.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 06b3238684..c290d91cbb 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1065,7 +1065,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/cool-retro-term-wctype.patch		\
   %D%/packages/patches/coreutils-gnulib-tests.patch		\
   %D%/packages/patches/cppcheck-disable-char-signedness-test.patch	\
-  %D%/packages/patches/cpuinfo-system-libraries.patch		\
   %D%/packages/patches/cpulimit-with-glib-2.32.patch		\
   %D%/packages/patches/crawl-upgrade-saves.patch		\
   %D%/packages/patches/crc32c-unbundle-googletest.patch		\
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index 4e8ca9af35..4dc0bee898 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -479,8 +479,8 @@ (define-public pthreadpool
 (define-public cpuinfo
   ;; There's currently no tag on this repo.
   (let ((version "0.0")
-        (revision "2")
-        (commit "53298db833c5c5a1598639e9b47cc1a602bbac26"))
+        (revision "3")
+        (commit "aa4b2163b99ac9534194520f70b93eeefb0b3b4e"))
     (package
       (name "cpuinfo")
       (version (git-version version revision commit))
@@ -491,12 +491,13 @@ (define-public cpuinfo
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "01kfgxya2w32dz9bd3qm3i2d6nffw0qfyql11rxl7d3g830brj5k"))
-                (patches (search-patches "cpuinfo-system-libraries.patch"))))
+                  "12x4krkyzxngf1l2ck33lnsp8pyzf6gyjj9mp9cnka9mw3h6617m"))))
       (build-system cmake-build-system)
       (arguments
        (list
-        #:configure-flags '(list "-DBUILD_SHARED_LIBS=ON")
+        #:configure-flags
+        '(list "-DBUILD_SHARED_LIBS=ON"
+               "-DUSE_SYSTEM_LIBS=ON")
         #:phases
         '(modify-phases %standard-phases
            (add-after 'unpack 'skip-bad-test
diff --git a/gnu/packages/patches/cpuinfo-system-libraries.patch b/gnu/packages/patches/cpuinfo-system-libraries.patch
deleted file mode 100644
index e25446e9da..0000000000
--- a/gnu/packages/patches/cpuinfo-system-libraries.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-This patch allows the build process to use the provided dependencies instead
-of adding their source as CMake sub-directories (in which case "make install"
-would install googletest's and googlebenchmark's libraries and headers).
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 57abc26..761c612 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -93,7 +93,7 @@ SET(CONFU_DEPENDENCIES_BINARY_DIR ${CMAKE_BINARY_DIR}/deps
-   CACHE PATH "Confu-style dependencies binary directory")
- 
- IF(CPUINFO_BUILD_MOCK_TESTS OR CPUINFO_BUILD_UNIT_TESTS)
--  IF(CPUINFO_SUPPORTED_PLATFORM AND NOT DEFINED GOOGLETEST_SOURCE_DIR)
-+  IF(FALSE)
-     MESSAGE(STATUS "Downloading Google Test to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest (define GOOGLETEST_SOURCE_DIR to avoid it)")
-     CONFIGURE_FILE(cmake/DownloadGoogleTest.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download/CMakeLists.txt")
-     EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
-@@ -105,7 +105,7 @@ IF(CPUINFO_BUILD_MOCK_TESTS OR CPUINFO_BUILD_UNIT_TESTS)
- ENDIF()
- 
- IF(CPUINFO_BUILD_BENCHMARKS)
--  IF(CPUINFO_SUPPORTED_PLATFORM AND NOT DEFINED GOOGLEBENCHMARK_SOURCE_DIR)
-+  IF(FALSE)
-     MESSAGE(STATUS "Downloading Google Benchmark to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googlebenchmark (define GOOGLEBENCHMARK_SOURCE_DIR to avoid it)")
-     CONFIGURE_FILE(cmake/DownloadGoogleBenchmark.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark-download/CMakeLists.txt")
-     EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
-@@ -271,14 +271,6 @@ INSTALL(TARGETS cpuinfo
- 
- # ---[ cpuinfo micro-benchmarks
- IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_BENCHMARKS)
--  # ---[ Build google benchmark
--  IF(NOT TARGET benchmark)
--    SET(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "")
--    ADD_SUBDIRECTORY(
--      "${GOOGLEBENCHMARK_SOURCE_DIR}"
--      "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark")
--  ENDIF()
--
-   IF(CMAKE_SYSTEM_NAME MATCHES "^(Linux|Android)$")
-     ADD_EXECUTABLE(get-current-bench bench/get-current.cc)
-     TARGET_LINK_LIBRARIES(get-current-bench cpuinfo benchmark)
-@@ -289,7 +281,7 @@ IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_BENCHMARKS)
- ENDIF()
- 
- IF(CPUINFO_SUPPORTED_PLATFORM)
--  IF(CPUINFO_BUILD_MOCK_TESTS OR CPUINFO_BUILD_UNIT_TESTS)
-+  IF(FALSE)
-     # ---[ Build google test
-     IF(NOT TARGET gtest)
-       IF(MSVC AND NOT CPUINFO_RUNTIME_TYPE STREQUAL "static")
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:42:05 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:42:05 2024
Received: from localhost ([127.0.0.1]:51546 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx9N-0008Dw-Dm
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:05 -0500
Received: from mout01.posteo.de ([185.67.36.65]:42109)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx8v-00089A-DW
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:37 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 03DA9240029
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:41:02 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754062; bh=XR2hmqlVTkid30eOGBoWGrnyAZjrXwb8pmFL8NwUyWA=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=sOm7+/NNaU7DysvDeByukSwAeerDLCrLlBQoEhunb9JSMSYNfcvyWh/zVVQ3sv16o
 cabGLTwgAjDkgw8HWsl9o3cvfStZoU2fmmPSEp0TUk5i2SrOXMLrfTjOBfwQ41VQ3c
 kay7DJ/kwB9i1Q5qS+P7fO5CPgPtJeg6YCTXUirLqZMQc9yZvckKBi9DoqIxQfcJ2C
 g2HHLd2EbmbVJEV2tIp1eCSsEju2orVAMM2fK287WzSePDpsSxnBlO8iuNfHMo79T7
 eo3F/xIqXFhs3Bf1UAXGKcFTvEttWKpx7U8zM5G5Eyf4X6O/eNQJG/aAxdeMONFs/u
 4TawyCP8hMWxg==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTn3kjzz6twn;
 Wed,  6 Mar 2024 20:41:01 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 16/31] gnu: nnpack: Update to commit 70a77f4.
Date: Wed,  6 Mar 2024 19:40:22 +0000
Message-ID: <20240306194037.17992-16-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/machine-learning.scm (nnpack): Update to commit 70a77f4.
[supported-systems]: New field.
---
 gnu/packages/machine-learning.scm | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 0a50049b6f..846fb7a718 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -3974,8 +3974,8 @@ (define-public python-umap-learn
 
 (define-public nnpack
   (let ((version "0.0")
-        (commit "c07e3a0400713d546e0dea2d5466dd22ea389c73")
-        (revision "1"))
+        (commit "70a77f485e8b934224f3a79efd8edcd84cd377b8")
+        (revision "2"))
     (package
       (name "nnpack")
       (version (git-version version revision commit))
@@ -3986,7 +3986,7 @@ (define-public nnpack
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0s0kk3a35w3yzf0q447p72350sbsh4qhg6vm3y2djbj4xpg7jc8v"))
+                  "0c4pw926279s3rlx7mg4l4vhnfy6dh374n6w7zqhcn0bxpym1hv1"))
                 (patches (search-patches "nnpack-system-libraries.patch"))))
       (build-system cmake-build-system)
       ;; XXX: The test suite runs but it's very expensive, and on x86_64 CPUs
@@ -4019,6 +4019,8 @@ (define-public nnpack
              googletest))
       (native-inputs
        (list python python-peachpy python-six))
+      ;; Supported for Linux
+      (supported-systems '("x86_64-linux" "armhf-linux" "aarch64-linux"))
       (license license:bsd-2))))
 
 (define-public xnnpack
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:42:01 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:42:01 2024
Received: from localhost ([127.0.0.1]:51544 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx9L-0008Dh-J3
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:42:01 -0500
Received: from mout02.posteo.de ([185.67.36.66]:59433)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx8w-00089S-0j
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:37 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 6673A240101
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:40:57 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754057; bh=tw+NBFMth806sADoTVbcsgFYctuk2ulsvzX7Fi1mTYM=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=erhuIt5u0QvRlWJUr7OxZ0yck69RBYyPL/4Ss2TGw570a3hxKUvG9xLZHqPE/L7y5
 t1TvIrQaq3nEl7rzJLjyKa4J0ufQ/hfQT69hcwalFVLo5VPZeEY0b0ivNEFHXinugQ
 CT4e5bjLmKib0wOzOASK/Kz/ga997UOI13oGmKfwTZy6NotOu/WghS1HvtfC4Btjpx
 meu8qdXPXLw8uodp82kXRXQ11CuGE3tMDbpsITAOwW67UeqPY6z+VYQj+PAbT8s5Xj
 o/CJG4P3zC9SvzDxU6z5cqFyfGFeURNa1pDJHoDA8n42LFiofyxf2Sg5rk+Jzl19dn
 pSwnZKlkfMEmQ==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTj00H8z6twn;
 Wed,  6 Mar 2024 20:40:56 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 11/31] gnu: Remove flatbuffers-next-shared.
Date: Wed,  6 Mar 2024 19:40:17 +0000
Message-ID: <20240306194037.17992-11-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/serialization.scm (flatbuffers-next-shared): Delete variable.
* gnu/packages/machine-learning.scm (tensorflow-lite)[arguments]: Use
flatbuffers-next instead of flatbuffers-next-shared.
---
 gnu/packages/machine-learning.scm |  4 ++--
 gnu/packages/serialization.scm    | 11 -----------
 2 files changed, 2 insertions(+), 13 deletions(-)

diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 5c18a2e9d5..0a50049b6f 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -3337,7 +3337,7 @@ (define-public tensorflow-lite
          (string-append "-DEigen3_DIR=" #$(this-package-input "eigen")
                         "/share/eigen3/cmake")
          (string-append "-DFlatBuffers_DIR="
-                        #$(this-package-input "flatbuffers-shared")
+                        #$(this-package-input "flatbuffers")
                         "/lib/cmake/flatbuffers")
          (string-append "-DNEON_2_SSE_DIR=" #$(this-package-input "neon2sse")
                         "/lib/cmake/NEON_2_SSE")
@@ -3424,7 +3424,7 @@ (define-public tensorflow-lite
        ("cpuinfo" ,cpuinfo)
        ("eigen" ,eigen)
        ("fp16" ,fp16)
-       ("flatbuffers-shared" ,flatbuffers-next-shared)
+       ("flatbuffers" ,flatbuffers-next)
        ("gemmlowp" ,gemmlowp)
        ("mesa-headers" ,mesa-headers)
        ("neon2sse" ,neon2sse)
diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index 93d12e714b..8f1d3dab17 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -889,17 +889,6 @@ (define-public flatbuffers-next
                (base32
                 "1z3a6l8g2y53i5xzraswfs2i0i3kk52zv7nzc2q3fgisbyiri3pz"))))))
 
-(define-public flatbuffers-next-shared
-  (package
-    (inherit flatbuffers-next)
-    (name "flatbuffers-shared")
-    (version "23.1.21")
-    (arguments
-     (substitute-keyword-arguments (package-arguments flatbuffers-next)
-       ((#:configure-flags  flags)
-        ;; Compile with -fPIC, needed for shared lib.
-        #~(cons "-DFLATBUFFERS_CXX_FLAGS=-fPIC" #$flags))))))
-
 (define-public python-flatbuffers
   (package
     (name "python-flatbuffers")
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:41:59 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:41:59 2024
Received: from localhost ([127.0.0.1]:51541 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx9H-0008DC-Ph
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:59 -0500
Received: from mout02.posteo.de ([185.67.36.66]:39975)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx8v-00089Q-38
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:35 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 77FCA240101
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:40:56 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754056; bh=xLyU7MrvRnL9bPNQm7B0voogc3EFUwWaEcH/gBYuiCg=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=qPi9/fE4YTSBlDVX1fgEP3wyjWhO+VSWVy2u1JJx6meeX92Aecf2UyvYZ8Ti14RUO
 ed1dR6Dq5PER6FcOLQRk4EL3GmmWORcDq7rtZ4HBLBk+LzrUtHUtZIJ9ZNprKA7UDT
 +Kd0RpdvHbsCiHJ0jc68v0zh5oliAfTBhFB4T4vUy2OHGUr9Af/96nggjmrn+P5mAd
 Ow6M3fOhQshlhTdtmNB3s7jkBZfgLRK0xPlm9cuCTkJG+HwC67omn2XZvvlNszEixS
 bWS0z6A3y3JZXf1g8aHqwH6+7Tqx2bFCxy6rPH9XjZycuJKy3XPNIWhrLJp+99bCqy
 mIBO6kX2h5ptA==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTh0lB5z6tw3;
 Wed,  6 Mar 2024 20:40:56 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 10/31] gnu: Add libnop.
Date: Wed,  6 Mar 2024 19:40:16 +0000
Message-ID: <20240306194037.17992-10-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/serialization.scm (libnop): New variable.
---
 gnu/packages/serialization.scm | 38 ++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index 331fae80cf..93d12e714b 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -936,3 +936,41 @@ (define-public python-feather-format
     (description "This package provides a Python wrapper library to the
 Apache Arrow-based Feather binary columnar serialization data frame format.")
     (license license:asl2.0)))
+
+(define-public libnop
+  (let ((commit "35e800d81f28c632956c5a592e3cbe8085ecd430")
+        (revision "0"))
+    (package
+      (name "libnop")
+      (version (git-version "0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/google/libnop")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0qqbaljq54qiq0dky9nj47igfcs065ry526jg9a0aafbfl9krpy2"))))
+      (build-system gnu-build-system)
+      (arguments
+       (list
+        #:test-target "test"
+        #:phases
+        #~(modify-phases %standard-phases
+            (delete 'configure)
+            (replace 'check
+              (lambda* (#:key tests? #:allow-other-keys)
+                (when tests?
+                  (invoke "out/test"))))
+            (replace 'install
+              (lambda _
+                (copy-recursively
+                 "include" (string-append #$output "/include")))))))
+      (native-inputs (list googletest))
+      (home-page "https://github.com/google/libnop")
+      (synopsis "C++ Native Object Protocols")
+      (description "@code{libnop} is a header-only library for serializing and
+deserializing C++ data types without external code generators or runtime
+support libraries.")
+      (license license:asl2.0))))
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:41:55 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:41:55 2024
Received: from localhost ([127.0.0.1]:51536 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx9E-0008Cs-Gb
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:55 -0500
Received: from mout01.posteo.de ([185.67.36.65]:39131)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx8u-00089H-5K
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:35 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 896C7240027
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:40:55 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754055; bh=5JD6ImUjgYsSUy7diRmHjkPTpUbmvV4a1NiExszaVXw=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=S62Ur+K2uKeKqMQ413uCaUH05FKTP73IAkqkU4tKdFnH0xsstQ1MnV1apgLkXiCJi
 eSoXLEeEoXlDGFkwxbp0hrx0Z736O1EuthwJ640norQn1N6fNOXiMfnRrl7aiHlqdF
 z4ZPj0vfOZJep1UN40NmCBO9sF9135Dv6pTRBCpLhjmlXy2/qhE3YcAxYGmC930Xs9
 +Z0OEIj3CndArBc4CbozbYJg2YLrw5KGfwC+9L6TwGyCTNFyIpJj8SfVZZ7MND7+6K
 qjio1gAn77aj/K0TbTu4evRdlDzpdeRzJn5tqH7Nr/zeExGe1HJPrtjmnDUasJ1zyT
 cI/cCbuY9/tmg==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTg1BjMz6twn;
 Wed,  6 Mar 2024 20:40:55 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 09/31] gnu: Add miniz-for-pytorch.
Date: Wed,  6 Mar 2024 19:40:15 +0000
Message-ID: <20240306194037.17992-9-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/compression.scm (miniz-for-pytorch): New variable.
* gnu/packages/patches/miniz-for-pytorch.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
---
 gnu/local.mk                                 |  1 +
 gnu/packages/compression.scm                 | 21 +++++++++
 gnu/packages/patches/miniz-for-pytorch.patch | 47 ++++++++++++++++++++
 3 files changed, 69 insertions(+)
 create mode 100644 gnu/packages/patches/miniz-for-pytorch.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 83937db4c8..06b3238684 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1687,6 +1687,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/mingw-w64-reproducible-gendef.patch	\
   %D%/packages/patches/minisat-friend-declaration.patch		\
   %D%/packages/patches/minisat-install.patch			\
+  %D%/packages/patches/miniz-for-pytorch.patch			\
   %D%/packages/patches/mit-krb5-hurd.patch			\
   %D%/packages/patches/mixxx-link-qtscriptbytearray-qtscript.patch	\
   %D%/packages/patches/mixxx-system-googletest-benchmark.patch	\
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 74075df0ee..dcea1f9ec7 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -2866,3 +2866,24 @@ (define-public miniz
 specification standards.  It supports the most commonly used functions
 exported by the zlib library.")
     (license license:expat)))
+
+(define-public miniz-for-pytorch
+  (package
+    (inherit miniz)
+    (version "pytorch-2.2.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/richgel999/miniz")
+                    (commit "2.2.0")))
+              (file-name (git-file-name (package-name miniz) version))
+              (sha256
+               (base32
+                "09j9ihigfsavgcmk8l36zmbjvdf1x1w7h2v4rkww1qk1sb43y5zf"))
+              (patches (search-patches "miniz-for-pytorch.patch"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments miniz)
+       ((#:configure-flags flags '())
+        ;; The changes break the examples.
+        `(cons "-DBUILD_EXAMPLES=OFF" ,flags))))
+    (properties '((hidden? . #t)))))
diff --git a/gnu/packages/patches/miniz-for-pytorch.patch b/gnu/packages/patches/miniz-for-pytorch.patch
new file mode 100644
index 0000000000..19fa705a31
--- /dev/null
+++ b/gnu/packages/patches/miniz-for-pytorch.patch
@@ -0,0 +1,47 @@
+Modifications from the internal fork of the python-pytorch package.
+
+diff --git a/miniz.h b/miniz.h
+index 42e1ea2..5869ab9 100644
+--- a/miniz.h
++++ b/miniz.h
+@@ -123,7 +123,7 @@
+ /* If MINIZ_NO_TIME is specified then the ZIP archive functions will not be able to get the current time, or */
+ /* get/set file times, and the C run-time funcs that get/set times won't be called. */
+ /* The current downside is the times written to your archives will be from 1979. */
+-/*#define MINIZ_NO_TIME */
++#define MINIZ_NO_TIME
+ 
+ /* Define MINIZ_NO_ARCHIVE_APIS to disable all ZIP archive API's. */
+ /*#define MINIZ_NO_ARCHIVE_APIS */
+@@ -135,7 +135,7 @@
+ /*#define MINIZ_NO_ZLIB_APIS */
+ 
+ /* Define MINIZ_NO_ZLIB_COMPATIBLE_NAME to disable zlib names, to prevent conflicts against stock zlib. */
+-/*#define MINIZ_NO_ZLIB_COMPATIBLE_NAMES */
++#define MINIZ_NO_ZLIB_COMPATIBLE_NAMES
+ 
+ /* Define MINIZ_NO_MALLOC to disable all calls to malloc, free, and realloc. 
+    Note if MINIZ_NO_MALLOC is defined then the user must always provide custom user alloc/free/realloc
+@@ -172,8 +172,7 @@
+ #if !defined(MINIZ_USE_UNALIGNED_LOADS_AND_STORES)
+ #if MINIZ_X86_OR_X64_CPU
+ /* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES to 1 on CPU's that permit efficient integer loads and stores from unaligned addresses. */
+-#define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 1
+-#define MINIZ_UNALIGNED_USE_MEMCPY
++#define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 0
+ #else
+ #define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 0
+ #endif
+diff --git a/miniz_zip.h b/miniz_zip.h
+index 82502bd..3d92255 100644
+--- a/miniz_zip.h
++++ b/miniz_zip.h
+@@ -150,7 +150,7 @@ typedef enum {
+     MZ_ZIP_TOTAL_ERRORS
+ } mz_zip_error;
+ 
+-typedef struct
++typedef struct mz_zip_archive
+ {
+     mz_uint64 m_archive_size;
+     mz_uint64 m_central_directory_file_ofs;
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:41:52 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:41:52 2024
Received: from localhost ([127.0.0.1]:51532 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx9A-0008CU-PB
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:52 -0500
Received: from mout01.posteo.de ([185.67.36.65]:41749)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx8t-00089E-9b
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:35 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id A54F7240027
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:40:54 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754054; bh=5MTuFIQOmt18rsknOMSUEp5+gwUALO6xW/IJWl0U9vo=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=InlMj+Dyjbnu2Hwn0tbkJemxYNKQPy83ksXRO/zbU6qiann96D4EsWkhZiYSu8u6n
 R8KnOj4/vClqbe87kfnpZhrnnid4JHvuBx81ubNMKzvPxHXXkmfPfR5LTZBMg9rbMH
 FFq6LuMwYigzwBNO2AZtCf6vEoEEAPIsvBw2vEsbQUkW74oryVYf6BIqKtyw6BsSIl
 CckDzar1Bmdcyd5071ElUFiLn0dZ+89xiX987YqkMQPTNUZxYi4uOiW8fYeNmcTJ7p
 7G5JYlzcCeBeBqj4JU4QupAut16VZb2sjTz+NEm/uLg+OvNqu9EoHOXM5J83/fw3nN
 oYeowOwVoAofg==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTf24vZz6twn;
 Wed,  6 Mar 2024 20:40:54 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 08/31] gnu: Add miniz.
Date: Wed,  6 Mar 2024 19:40:14 +0000
Message-ID: <20240306194037.17992-8-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/compression.scm (miniz): New variable.
---
 gnu/packages/compression.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 5de17b6b51..74075df0ee 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -2838,3 +2838,31 @@ (define-public unrar-free
 libarchive.  It does not rival the non-free @code{unrar} in terms of features,
 but special care has been taken to ensure it meets most user's needs.")
     (license license:gpl2+)))
+
+(define-public miniz
+  (package
+    (name "miniz")
+    (version "3.0.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/richgel999/miniz")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0672q35vjrpakmsr1gwj9k5fwv5ihzhahm19bq4y74wqpn91p7fw"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:configure-flags
+      ''("-DBUILD_SHARED_LIBS=ON")
+      ;; No tests
+      #:tests? #f))
+    (home-page "https://github.com/richgel999/miniz")
+    (synopsis "Independent implementation of zlib and Deflate compression")
+    (description "Miniz is a lossless data compression library that implements
+the zlib (RFC 1950) and Deflate (RFC 1951) compressed data format
+specification standards.  It supports the most commonly used functions
+exported by the zlib library.")
+    (license license:expat)))
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:41:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:41:48 2024
Received: from localhost ([127.0.0.1]:51530 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx98-0008CI-T7
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:48 -0500
Received: from mout01.posteo.de ([185.67.36.65]:58959)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx8s-00089D-Ay
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:34 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id B14BC240028
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:40:53 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754053; bh=Omjjeff63xTppe1nImA7xFggklj9ggXXGJWqMZibPpU=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=JtILJsPrvyeJY0yPiRSxvyANai66wCzmsr5/j/i2AstyDLQWbVoxvp8V0UdWG8f04
 hIUVdUfiO6pS1HgIk3w/JJvpen4tCMq05j7YTWWQzzecl80qCKL/Z1f8xMWjkxbo9J
 y+ITiPnummd/NrBTuzVzMCdZHnlCtHXmTbV0pi/cYnK2kyd1VgkL0J72R+C8N/ZY7R
 ROWBB8s40XTvc6j6zy9G+g1qGdE3IZUbpmAPMoGp46Pgs4B/RfZDjlQ1sSuJ55rKTT
 YiQoCrMx/laSmQlGMC3d14dch/zUW1w4jTytI62di8LUFRFkafiD5zC9S2afAjfPgm
 HyvXHi2Q4TLww==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTd2df1z6twn;
 Wed,  6 Mar 2024 20:40:53 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 07/31] gnu: Add python-pytest-rerunfailures-13.
Date: Wed,  6 Mar 2024 19:40:13 +0000
Message-ID: <20240306194037.17992-7-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/python-check.scm (python-pytest-rerunfailures-13): New variable.
---
 gnu/packages/python-check.scm | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 94694316ca..67822c4c50 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -2463,6 +2463,17 @@ (define-public python-pytest-rerunfailures
 eliminate flaky failures.")
     (license license:mpl2.0)))
 
+(define-public python-pytest-rerunfailures-13
+  (package
+    (inherit python-pytest-rerunfailures)
+    (version "13.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest-rerunfailures" version))
+       (sha256
+        (base32 "16cin0chv59w4rvnd6r0fisp0s8avmp07rwn9da6yixw43jdncp1"))))))
+
 (define-public python-xunitparser
   (package
     (name "python-xunitparser")
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:41:47 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:41:46 2024
Received: from localhost ([127.0.0.1]:51526 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx95-0008Bo-AV
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:46 -0500
Received: from mout01.posteo.de ([185.67.36.65]:42109)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx8r-00089A-Aw
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:33 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id B1C0124002A
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:40:52 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754052; bh=yOw8Ztsd5FRaatm9usq2QJFZs2dyCcYqPqBZ52QiX78=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=YC6iKk4mVw/6k6p8u6Yr2j+iB96aUhkL7OaUrPdNVaNEZBq8FUKJj8Vqs6AnCLTgr
 iRBjc/UafzI79vaS4TPiknKFQ0OZIjX5GynYqYnSatRjPe4c4ESWkps7EV8VKEnLJc
 q4FWZov7O6xA7llFYDv4ULM4JL/9sLY/Yks+KCghGfKq8/u0xWHUPsEUFiGRrF/vHo
 1BNrfaQ+Z7pFKFPA8f8wlp/J+JyvAYAXCcDTqzucGwEoL/RU7bzr0bpbN85t5Y7Hs0
 uriFXDdxkpT9IJR4O7koFR4C8bN407lmrdoDUlPpegUQt5RpSkUHWzacdQJg5QCRhP
 xQHTLDhrxGEyQ==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTc2qYRz6txY;
 Wed,  6 Mar 2024 20:40:52 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 06/31] gnu: Add python-expecttest.
Date: Wed,  6 Mar 2024 19:40:12 +0000
Message-ID: <20240306194037.17992-6-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/python-check.scm (python-expecttest): New variable.
---
 gnu/packages/python-check.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 2338f32801..94694316ca 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -2077,6 +2077,41 @@ (define-public python-eradicate
 valid Python syntax that are likely to be commented out code.")
     (license license:expat)))
 
+(define-public python-expecttest
+  (let ((commit "683b09a352cc426851adc2e3a9f46e0ab25e4dee")
+        (revision "0"))
+    (package
+      (name "python-expecttest")
+      (version (git-version "0.2.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ezyang/expecttest")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1djwxp9x1hczzxbimv1b1bmd083am88v27l82nmlkhvzyg2cmpvv"))))
+      (build-system pyproject-build-system)
+      (arguments
+       (list
+        #:phases
+        #~(modify-phases %standard-phases
+            (replace 'check
+              (lambda* (#:key tests? #:allow-other-keys)
+                (when tests?
+                  ;; The test runs tests expected to fail, so the output is
+                  ;; confusing
+                  (invoke "python3" "test_expecttest.py")))))))
+      (native-inputs (list python-hypothesis poetry))
+      (home-page "https://github.com/ezyang/expecttest")
+      (synopsis "Python module for expect tests")
+      (description "@code{expecttest} is a Python module for expect tests, where
+the initial expected value of a test can be automatically set by running the
+test itself.")
+      (license license:expat))))
+
 (define-public python-robber
   (package
     (name "python-robber")
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:41:43 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:41:43 2024
Received: from localhost ([127.0.0.1]:51518 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx91-0008B4-10
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:43 -0500
Received: from mout01.posteo.de ([185.67.36.65]:43139)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx8p-000891-Ho
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:31 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id E66FB240027
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:40:50 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754050; bh=8MU6TXZAPVlrhZMYBLa6tv/BVcE7glilujIwfJpSeCE=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=d6zsuwjqnxaz5rQAwzp39t6fmDlEd1yGGdeG727QCdJL4tr6J1dQ9HV2qPLrLTHOh
 dJBhZRB6bRqAR5+XzmJXiCs7hDIHL3lJxrRs2i+fu55HOBkPFy9P/XvVIAEST5fDq4
 OQVY/D944vWyx6EOryR/minOmfwS3rit0IEqf7Awe2i05RVCdiv5oxotKIjtSvct91
 CwPW1c9qhxoouLr7XpEwN9NPE94jLLpHZrp3s6nuQ942AeibqItaPQO+c85lM3ZZIt
 JUP3fzfB0mZfu2H12fyacy/hklq044kvNg9102zQxKbmAkHy/htY1x9vApqErqJsD5
 Iy7/OLJ4td3Hg==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTZ3lNfz6txL;
 Wed,  6 Mar 2024 20:40:50 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 04/31] gnu: Add python-pytest-flakefinder.
Date: Wed,  6 Mar 2024 19:40:10 +0000
Message-ID: <20240306194037.17992-4-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/python-check.scm (python-pytest-flakefinder): New variable.
---
 gnu/packages/python-check.scm | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 51a38bbcbe..36d4025b9d 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -191,6 +191,24 @@ (define-public python-pytest-csv
 it adds to the Pytest command line interface (CLI).")
     (license license:gpl3+)))
 
+(define-public python-pytest-flakefinder
+  (package
+    (name "python-pytest-flakefinder")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest-flakefinder" version))
+       (sha256
+        (base32 "03iy80xlkpgzjs2kxa9rrj8dbnp9awyhpcl3hy8fgf5x40cjlhg2"))))
+    (build-system pyproject-build-system)
+    (propagated-inputs (list python-pytest))
+    (home-page "https://github.com/dropbox/pytest-flakefinder")
+    (synopsis "Pytest plugin for finding flaky tests")
+    (description "This package provides a Pytest plugin to run tests multiple
+times and detect flakyness.")
+    (license license:asl2.0)))
+
 (define-public python-testfixtures
   (package
     (name "python-testfixtures")
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:41:39 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:41:39 2024
Received: from localhost ([127.0.0.1]:51511 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx8w-0008AJ-Mv
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:38 -0500
Received: from mout02.posteo.de ([185.67.36.66]:42533)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx8o-00088z-RA
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:31 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id DC9C0240101
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:40:49 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754049; bh=2jnVKrITabLjSvwYNrhfichhEJmTInJKllpuoWFBvrE=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=NlGRsCefssdfC6u7fGZKU1AQaJX1yd5kfhtbRpKnYVsIdo6uICjVPxekilnjiBhFm
 /xlfV8ufQ3u2aZiZiE9WU7wVf6xK36VLSJ5q0PYz1u5HHH9IVgtaU1DyjjFe384Dt+
 atKnd2X6mbQQMN0jjCbAy6Akexn3vgXV9yEeJncdnKd63TtLioBqvExpMZCpwqQkwJ
 M1YvVXMeQdXWvnaNQLI0cWh9G0XBEJGlh1USjCDuxeZ5oLD0aQVwiV9MoRglueQ8J6
 GGD8hVwTzEqL/ZI8qayHIfgYYQAZPf1Am1g0h191gnyrdfhxIhN8ixIJGeWrvtKwCB
 2s+bAFCZdLgqg==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTY2Qq8z6txL;
 Wed,  6 Mar 2024 20:40:49 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 03/31] gnu: Add python-optree.
Date: Wed,  6 Mar 2024 19:40:09 +0000
Message-ID: <20240306194037.17992-3-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/python-xyz.scm (python-optree): New variable.
---
 .../patches/python-optree-fix-32-bit.patch    | 122 ++++++++++++++++++
 gnu/packages/python-xyz.scm                   |  29 +++++
 2 files changed, 151 insertions(+)
 create mode 100644 gnu/packages/patches/python-optree-fix-32-bit.patch

diff --git a/gnu/packages/patches/python-optree-fix-32-bit.patch b/gnu/packages/patches/python-optree-fix-32-bit.patch
new file mode 100644
index 0000000000..6a32c39bd8
--- /dev/null
+++ b/gnu/packages/patches/python-optree-fix-32-bit.patch
@@ -0,0 +1,122 @@
+In include/utils.h, ssize_t is an alias for py::ssize_t, which is an alias for
+Py_ssize_t in Python, which is an alias for the system ssize_t.
+The latter is defined in glibc as int if __WORDSIZE == 32 and as long int if
+__WORDSIZE == 64.  Therefore, we need to remove the explicit template
+specialization for int in the first case.
+
+diff --git a/include/utils.h b/include/utils.h
+index 950a02b..82a9591 100644
+--- a/include/utils.h
++++ b/include/utils.h
+@@ -141,10 +141,12 @@ template <>
+ inline py::handle GET_ITEM_HANDLE<py::tuple>(const py::handle& container, const size_t& item) {
+     return PyTuple_GET_ITEM(container.ptr(), py::ssize_t_cast(item));
+ }
++#if __WORDSIZE != 32
+ template <>
+ inline py::handle GET_ITEM_HANDLE<py::tuple>(const py::handle& container, const int& item) {
+     return PyTuple_GET_ITEM(container.ptr(), py::ssize_t_cast(item));
+ }
++#endif
+ template <>
+ inline py::handle GET_ITEM_HANDLE<py::list>(const py::handle& container, const ssize_t& item) {
+     return PyList_GET_ITEM(container.ptr(), item);
+@@ -153,10 +155,12 @@ template <>
+ inline py::handle GET_ITEM_HANDLE<py::list>(const py::handle& container, const size_t& item) {
+     return PyList_GET_ITEM(container.ptr(), py::ssize_t_cast(item));
+ }
++#if __WORDSIZE != 32
+ template <>
+ inline py::handle GET_ITEM_HANDLE<py::list>(const py::handle& container, const int& item) {
+     return PyList_GET_ITEM(container.ptr(), py::ssize_t_cast(item));
+ }
++#endif
+ 
+ template <typename Container, typename Item>
+ inline py::object GET_ITEM_BORROW(const py::handle& container, const Item& item) {
+@@ -171,11 +175,13 @@ inline py::object GET_ITEM_BORROW<py::tuple>(const py::handle& container, const
+     return py::reinterpret_borrow<py::object>(
+         PyTuple_GET_ITEM(container.ptr(), py::ssize_t_cast(item)));
+ }
++#if __WORDSIZE != 32
+ template <>
+ inline py::object GET_ITEM_BORROW<py::tuple>(const py::handle& container, const int& item) {
+     return py::reinterpret_borrow<py::object>(
+         PyTuple_GET_ITEM(container.ptr(), py::ssize_t_cast(item)));
+ }
++#endif
+ template <>
+ inline py::object GET_ITEM_BORROW<py::list>(const py::handle& container, const ssize_t& item) {
+     return py::reinterpret_borrow<py::object>(PyList_GET_ITEM(container.ptr(), item));
+@@ -185,11 +191,13 @@ inline py::object GET_ITEM_BORROW<py::list>(const py::handle& container, const s
+     return py::reinterpret_borrow<py::object>(
+         PyList_GET_ITEM(container.ptr(), py::ssize_t_cast(item)));
+ }
++#if __WORDSIZE != 32
+ template <>
+ inline py::object GET_ITEM_BORROW<py::list>(const py::handle& container, const int& item) {
+     return py::reinterpret_borrow<py::object>(
+         PyList_GET_ITEM(container.ptr(), py::ssize_t_cast(item)));
+ }
++#endif
+ 
+ template <typename Container, typename Item>
+ inline py::object GET_ITEM_STEAL(const py::handle& container, const Item& item) {
+@@ -204,11 +212,13 @@ inline py::object GET_ITEM_STEAL<py::tuple>(const py::handle& container, const s
+     return py::reinterpret_steal<py::object>(
+         PyTuple_GET_ITEM(container.ptr(), py::ssize_t_cast(item)));
+ }
++#if __WORDSIZE != 32
+ template <>
+ inline py::object GET_ITEM_STEAL<py::tuple>(const py::handle& container, const int& item) {
+     return py::reinterpret_steal<py::object>(
+         PyTuple_GET_ITEM(container.ptr(), py::ssize_t_cast(item)));
+ }
++#endif
+ template <>
+ inline py::object GET_ITEM_STEAL<py::list>(const py::handle& container, const ssize_t& item) {
+     return py::reinterpret_steal<py::object>(PyList_GET_ITEM(container.ptr(), item));
+@@ -218,11 +228,13 @@ inline py::object GET_ITEM_STEAL<py::list>(const py::handle& container, const si
+     return py::reinterpret_steal<py::object>(
+         PyList_GET_ITEM(container.ptr(), py::ssize_t_cast(item)));
+ }
++#if __WORDSIZE != 32
+ template <>
+ inline py::object GET_ITEM_STEAL<py::list>(const py::handle& container, const int& item) {
+     return py::reinterpret_steal<py::object>(
+         PyList_GET_ITEM(container.ptr(), py::ssize_t_cast(item)));
+ }
++#endif
+ 
+ template <typename Container, typename Item>
+ inline void SET_ITEM(const py::handle& container, const Item& item, const py::handle& value) {
+@@ -240,12 +252,14 @@ inline void SET_ITEM<py::tuple>(const py::handle& container,
+                                 const py::handle& value) {
+     PyTuple_SET_ITEM(container.ptr(), py::ssize_t_cast(item), value.inc_ref().ptr());
+ }
++#if __WORDSIZE != 32
+ template <>
+ inline void SET_ITEM<py::tuple>(const py::handle& container,
+                                 const int& item,
+                                 const py::handle& value) {
+     PyTuple_SET_ITEM(container.ptr(), py::ssize_t_cast(item), value.inc_ref().ptr());
+ }
++#endif
+ template <>
+ inline void SET_ITEM<py::list>(const py::handle& container,
+                                const ssize_t& item,
+@@ -258,12 +272,14 @@ inline void SET_ITEM<py::list>(const py::handle& container,
+                                const py::handle& value) {
+     PyList_SET_ITEM(container.ptr(), py::ssize_t_cast(item), value.inc_ref().ptr());
+ }
++#if __WORDSIZE != 32
+ template <>
+ inline void SET_ITEM<py::list>(const py::handle& container,
+                                const int& item,
+                                const py::handle& value) {
+     PyList_SET_ITEM(container.ptr(), py::ssize_t_cast(item), value.inc_ref().ptr());
+ }
++#endif
+ 
+ template <typename PyType>
+ inline void AssertExact(const py::handle& object) {
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index fc6e997b6c..e1e68ca343 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -11635,6 +11635,35 @@ (define-public python-treelib
      "This package provides a Python implementation of a tree structure.")
     (license license:asl2.0)))
 
+(define-public python-optree
+  (package
+    (name "python-optree")
+    (version "0.10.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/metaopt/optree")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1q3wljk7cyl5rsam02sfsj8zjrqx4c3x9vic8j6xx13p8czpsisg"))
+       (patches (search-patches "python-optree-fix-32-bit.patch"))))
+    (build-system pyproject-build-system)
+    (propagated-inputs (list python-typing-extensions))
+    (native-inputs
+     (list python-pytest
+           python-pytest-cov
+           python-pytest-xdist
+           cmake
+           pybind11))
+    (home-page "https://github.com/metaopt/optree")
+    (synopsis "Optimized PyTree Utilities")
+    (description "This package contains operations on PyTrees (a tree made of
+container data structures in Python).")
+    (license license:asl2.0)))
+
 (define-public python-jupyter-core
   (package
     (name "python-jupyter-core")
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:41:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:41:34 2024
Received: from localhost ([127.0.0.1]:51505 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx8u-00089y-Ln
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:34 -0500
Received: from mout02.posteo.de ([185.67.36.66]:40933)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx8q-000898-KH
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:31 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id D3C59240104
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:40:51 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754051; bh=Lq5k1TGbizNmqQyh6tmLm44JoWMWgssqBVSZUo+rraY=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=OcHuhr8ug52M16VRScuXIECcfe5UpVyjtDbXIEpmK5xAvqTcaOpaW/REvbcmwDi3z
 5xYUxVHihgVjppZLnNJdP2c7XKTU1t97x8Qx/a8p6kp453Ut7aEnz3CJtLB0pH6NZG
 eTwdEdKWb3yJPvAOEG/SdDol+mglmvG3bb7fejyAoUbvVfs+OXwjUeoeaoXRCtk16r
 mZoY2KNp2Umj1vbB6PGcWnb06yltI0Wsv6iDszg7YT71tRuU+J5T47pmHSefvTHIyh
 g3H8OovO8O6ksUpGgdENgYywG+sFJm3eCSg5pGy/DpJebB1XyieFaBLIX/DOZ/mcjT
 /L9xo2yu7aZ2w==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTb3TPcz6txc;
 Wed,  6 Mar 2024 20:40:51 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 05/31] gnu: Add python-pytest-shard.
Date: Wed,  6 Mar 2024 19:40:11 +0000
Message-ID: <20240306194037.17992-5-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/python-check.scm (python-pytest-shard): New variable.
---
 gnu/packages/python-check.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 36d4025b9d..2338f32801 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -209,6 +209,30 @@ (define-public python-pytest-flakefinder
 times and detect flakyness.")
     (license license:asl2.0)))
 
+(define-public python-pytest-shard
+  (let ((commit "64610a08dac6b0511b6d51cf895d0e1040d162ad")
+        (revision "0"))
+    (package
+      (name "python-pytest-shard")
+      (version (git-version "0.1.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/AdamGleave/pytest-shard")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1h31m68igz670bzl307hazjrfbr8pk14mxflllar18ydmlrnl677"))))
+      (build-system pyproject-build-system)
+      (propagated-inputs (list python-pytest))
+      (home-page "https://github.com/AdamGleave/pytest-shard")
+      (synopsis "Pytest plugin for sharding tests")
+      (description "This package provides a Pytest extension for sharding
+tests at the granularity of individual test cases, which can be run in
+parallel and on multiple machines.")
+      (license license:expat))))
+
 (define-public python-testfixtures
   (package
     (name "python-testfixtures")
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:41:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:41:32 2024
Received: from localhost ([127.0.0.1]:51499 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx8q-00089U-UX
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:32 -0500
Received: from mout01.posteo.de ([185.67.36.65]:40137)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx8n-00088x-86
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:27 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 84233240028
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:40:48 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754048; bh=uzflMKk5wwg9fQ6RVw0FxjVtsW8TuEmYtlcuWOw95ts=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=ZtZYeThQ/TtnbiGFaXjracWasimr492KtqJPi9oChZjgbrUQeLagKtMLrw8u8IfEg
 Zn3fuz/2b2/8zXiupbLStEaZ8PnFfx8SlSKAO00BsFuFFrVNGWXdOFr6UHv92yQegL
 mQe76J+85y0BV3An+NZkqQD/yEPE6Pn8QAonQwtek9xUmbRNAglM5Ng+Pi3VvfH3I8
 R7XKtEvhZkfM5U+87ZoQTECf2F+GCO55o16Xys89SrF4RgHUnkmM3XyEL5lO/e/Jdp
 g3SUpxEJzsyVJ1xLdBAJ37d8mHUdzi6ofVbf+9A955EC9yDDieeXFjxCZJvQTr/F5R
 3jxRtkc7HWtjg==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTX0Hjvz6twn;
 Wed,  6 Mar 2024 20:40:48 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 02/31] gnu: Add python-typing-extensions-4.10.
Date: Wed,  6 Mar 2024 19:40:08 +0000
Message-ID: <20240306194037.17992-2-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/python-build.scm (python-typing-extensions-4.10): New variable.
---
 gnu/packages/python-build.scm | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/gnu/packages/python-build.scm b/gnu/packages/python-build.scm
index 2ea457cdba..21e7e422f9 100644
--- a/gnu/packages/python-build.scm
+++ b/gnu/packages/python-build.scm
@@ -252,6 +252,18 @@ (define-public python-typing-extensions
 @end enumerate\n")
     (license license:psfl)))
 
+(define-public python-typing-extensions-4.10
+  (package
+    (inherit python-typing-extensions)
+    (version "4.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "typing_extensions" version))
+       (sha256
+        (base32
+         "1jxkj4pni8pdyrn79sq441lsp40xzw363n0qvfc6zfcgkv4dgaxh"))))))
+
 
 ;;;
 ;;; Python builder packages.
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at 69591 <at> debbugs.gnu.org:


Received: (at 69591) by debbugs.gnu.org; 6 Mar 2024 19:41:29 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:41:28 2024
Received: from localhost ([127.0.0.1]:51493 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx8m-00089B-Jb
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:28 -0500
Received: from mout01.posteo.de ([185.67.36.65]:50383)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx8j-00088o-5X
 for 69591 <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:41:22 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 530F8240027
 for <69591 <at> debbugs.gnu.org>; Wed,  6 Mar 2024 20:40:44 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709754044; bh=GKFFFoFZ4nDM7YYyCvG5LRJCGmr0U8Ldo/7hoOYCVsA=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=qlFlCeYD+73Rb2NqFc14vqcNsn/JhX65RtEOuL8Cxuxdc4UpPL8GxHluZ1hOhuXHZ
 fz3CjD9g/808W+rRrS+veKsQCx8YaU/zI6nQour8UOw3wLF2TudSYAmHVafq7H24LS
 c1TWXVmnM4sIbkYRoUsuuJ+2wsofRQeFPgkylGA2ToL7ZxykM0wazzHuSSsU1YtddP
 IISQRYPM+I2yicAruqP0SC4OijuKJ3AFAtFRuzRxDou5734qzzIWe55whXV0vRBV56
 QVZgXnICfQx68J9YMlU8kAP1pTlx72OVX09+pbcQPu6UffYByiFmQlSVUTVzjITgGE
 IAmrfF9JXTtsg==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjTR6hKPz6txL;
 Wed,  6 Mar 2024 20:40:43 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH 01/31] gnu: asmjit: Update to commit 3ca5c18.
Date: Wed,  6 Mar 2024 19:40:07 +0000
Message-ID: <20240306194037.17992-1-david.elsing@HIDDEN>
In-Reply-To: <20240306193725.17463-1-david.elsing@HIDDEN>
References: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/packages/cpp.scm (asmjit): Update to commit 3ca5c18.
---
 gnu/packages/cpp.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 3b65ce9f4a..6f1df246cb 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -154,8 +154,8 @@ (define-public argagg
       (license license:expat))))
 
 (define-public asmjit
-  (let ((commit "4ec760a3d1f69e32ba460ecd2513f29b8428700b")
-        (revision "0"))
+  (let ((commit "3ca5c186bf8922e5fe3018432e93651fd2fa4053")
+        (revision "1"))
     (package
       (name "asmjit")
       (version (git-version "0.0.0" revision commit))
@@ -168,7 +168,7 @@ (define-public asmjit
            (commit commit)))
          (file-name (git-file-name name version))
          (sha256
-          (base32 "0skgccbpamcbg1byawfq5n6jzxgj64hnc7jznvk35nkskaaz1nlb"))))
+          (base32 "10k1zc0w8m0vnh52id9qlm1sb99qmpvr6k0ha8ag2h223n0d591g"))))
       (build-system cmake-build-system)
       (arguments
        (list #:configure-flags #~(list "-DASMJIT_TEST=TRUE")))
-- 
2.41.0





Information forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 6 Mar 2024 19:38:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 06 14:38:24 2024
Received: from localhost ([127.0.0.1]:51488 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rhx5o-00083T-RI
	for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:38:24 -0500
Received: from lists.gnu.org ([209.51.188.17]:43452)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rhx5k-00083G-3S
 for submit <at> debbugs.gnu.org; Wed, 06 Mar 2024 14:38:19 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <david.elsing@HIDDEN>)
 id 1rhx5E-00019s-RP
 for guix-patches@HIDDEN; Wed, 06 Mar 2024 14:37:44 -0500
Received: from mout01.posteo.de ([185.67.36.65])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <david.elsing@HIDDEN>)
 id 1rhx5C-0005PS-9w
 for guix-patches@HIDDEN; Wed, 06 Mar 2024 14:37:44 -0500
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 5FBB8240028
 for <guix-patches@HIDDEN>; Wed,  6 Mar 2024 20:37:38 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1709753858; bh=UtszHbtRuqDAXRr8BuGVCJHzEvT/t0o/9sn52hTMd8g=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=pVaAe2JMVl7VEVJxt81N8EWSxypIiccje8ONOZDYFVrLbzMjQgRVsIr/GAWNL3BZY
 wDEKrWN0GMdU85dmIkwkGcuTwjseV1VgM3/ELvL1PlWIYE6xI2+YxZis6YeuM2PCIb
 k/bnxaNT1YmhTolHaPAe2i1gV3JWsjDm7Ozxs29OKUiAjFwoFfMiqmGUBjqhlnagry
 6Sl5HsVhtZPpiiMFGtl7EweVjGHvpbgn1NXMZnamClGtdTiBR+pHj6BTgAuzehULtL
 MuZNxzso6bJklsMxSYwARmLQJouzvBr+Tp/14o++lujZKoPQWozYRByg5XEWPu5Myu
 NJ9StNUvfWN1w==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4TqjPs6b2dz9rxQ;
 Wed,  6 Mar 2024 20:37:37 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: guix-patches@HIDDEN
Subject: [PATCH 00/31] Unbundle and update python-pytorch
Date: Wed,  6 Mar 2024 19:37:23 +0000
Message-ID: <20240306193725.17463-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Received-SPF: pass client-ip=185.67.36.65;
 envelope-from=david.elsing@HIDDEN; helo=mout01.posteo.de
X-Spam_score_int: -43
X-Spam_score: -4.4
X-Spam_bar: ----
X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001,
 SPF_HELO_NONE=0.001, SPF_PASS=-0.001,
 T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.3 (-)
X-Debbugs-Envelope-To: submit
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.3 (--)

This patch series unbundles all dependencies of python-pytorch (updated to
version 2.2.1) and removes all* autogenerated files, completing the work by
Ludo' [1]. I also applied the unbundling to python-pytorch-for-r-torch
(version 2.0.1) and made sure that r-torch still builds.

Originally, I wanted to package PyTorch with ROCm, but decided that it would
be better to first update the package and complete the unbundling.  This was
more work than I initially thought though, so this patch series is quite long.

Caffe2 is heavily integrated in the PyTorch code, so unbundling it does
not make sense.

For QNNPACK, the situation is strange: There is an old version [2] and an
internal fork in aten/src/ATen/native/quantized/cpu/qnnpack, which PyTorch
both depends on (as well as XNNPACK). The internal fork does not depend on
other parts of the code currently, so I unbundled it as well as a package
variant of qnnpack.

ideep [3] has a separate branch for PyTorch (the master branch does not
seem maintained), which only contains header files without build
instructions. Therefore, I made a simple package with the header files.

miniz also requires a package variant for PyTorch.

Several scripts for autogenerated files depend on the compiled PyTorch
library. However, it was possible to patch the scripts with empty values
and later regenerate the files with the initial PyTorch version.
Therefore, I introduced the 'codegen2, 'build2 and 'install2 build
phases running after the initial library is installed. In 'codegen2, the
installed library is used to regenerate the files properly, which leads
to a recompilation of only 12 files in the 'build2 phase.

The core tests can be run as well, but I disabled them as they take
a long time after an already long build.

I also wanted to try and build python-pytorch on i686-linux, as it doesn't
require emulation on an x86_64 CPU, but it depends on Rust through
python-cryptography, for which there are no substitutes available currently.

Cheers,
David

* with the exception of test/cpp/api/init_baseline.h and
test/cpp/api/optim_baseline.h, which are just lists of previously
calculated numbers; or any other generated file I might have missed.

[1] https://hpc.guix.info/blog/2021/09/whats-in-a-package/
[2] https://github.com/pytorch/QNNPACK
[3] https://github.com/intel/ideep/tree/pytorch

David Elsing (31):
  gnu: asmjit: Update to commit 3ca5c18.
  gnu: Add python-typing-extensions-4.10.
  gnu: Add python-optree.
  gnu: Add python-pytest-flakefinder.
  gnu: Add python-pytest-shard.
  gnu: Add python-expecttest.
  gnu: Add python-pytest-rerunfailures-13.
  gnu: Add miniz.
  gnu: Add miniz-for-pytorch.
  gnu: Add libnop.
  gnu: Remove flatbuffers-next-shared.
  gnu: python-flatbuffers-next: Update to 23.5.26.
  gnu: pthreadpool: Update to commit 178e3e0.
  gnu: cpuinfo: Update to commit aa4b216.
  gnu: clog: Add "-DUSE_SYSTEM_LIBS=ON" configure flag.
  gnu: nnpack: Update to commit 70a77f4.
  gnu: oneapi-dnnl: Update to 3.3.5.
  gnu: Add tensorpipe.
  gnu: Add fbgemm.
  gnu: Add qnnpack.
  gnu: Add foxi.
  gnu: Add ideep-pytorch.
  gnu: xnnpack: Update to commit 51a9875.
  gnu: Remove xnnpack-for-torch2.
  gnu: Add qnnpack-pytorch.
  gnu: python-pytorch: Update to 2.2.1 and unbundle dependencies.
  gnu: python-torchvision: Update to 0.17.1.
  gnu: Add ideep-pytorch-for-r-torch.
  gnu: Add oneapi-dnnl-for-r-torch.
  gnu: Add qnnpack-pytorch-for-r-torch.
  gnu: python-pytorch-for-r-torch: Adjust to new python-pytorch.

 gnu/local.mk                                  |    9 +-
 gnu/packages/compression.scm                  |   49 +
 gnu/packages/cpp.scm                          |    6 +-
 gnu/packages/machine-learning.scm             |  874 +++-
 gnu/packages/parallel.scm                     |   30 +-
 .../patches/clog-fix-shared-build.patch       |   39 +-
 .../patches/cpuinfo-system-libraries.patch    |   50 -
 .../patches/fbgemm-use-system-libraries.patch |   62 +
 gnu/packages/patches/foxi-fix-build.patch     |   55 +
 gnu/packages/patches/miniz-for-pytorch.patch  |   47 +
 .../patches/python-optree-fix-32-bit.patch    |  122 +
 ...ython-pytorch-1.9.0-system-libraries.patch |  139 -
 .../patches/python-pytorch-fix-codegen.patch  |  167 +
 ...thon-pytorch-for-r-torch-fix-codegen.patch |  167 +
 ...pytorch-for-r-torch-system-libraries.patch |  390 ++
 .../patches/python-pytorch-runpath.patch      |   19 +-
 .../python-pytorch-system-libraries.patch     |  324 +-
 .../python-pytorch-without-kineto.patch       |   60 +
 .../python-pytorch2-system-libraries.patch    |  156 -
 .../xnnpack-for-torch2-system-libraries.patch | 2660 -----------
 .../patches/xnnpack-remove-broken-tests.patch |  335 ++
 .../patches/xnnpack-system-libraries.patch    | 4133 ++++++++++-------
 gnu/packages/python-build.scm                 |   12 +
 gnu/packages/python-check.scm                 |   88 +
 gnu/packages/python-xyz.scm                   |   29 +
 gnu/packages/serialization.scm                |   53 +-
 26 files changed, 5111 insertions(+), 4964 deletions(-)
 delete mode 100644 gnu/packages/patches/cpuinfo-system-libraries.patch
 create mode 100644 gnu/packages/patches/fbgemm-use-system-libraries.patch
 create mode 100644 gnu/packages/patches/foxi-fix-build.patch
 create mode 100644 gnu/packages/patches/miniz-for-pytorch.patch
 create mode 100644 gnu/packages/patches/python-optree-fix-32-bit.patch
 delete mode 100644 gnu/packages/patches/python-pytorch-1.9.0-system-libraries.patch
 create mode 100644 gnu/packages/patches/python-pytorch-fix-codegen.patch
 create mode 100644 gnu/packages/patches/python-pytorch-for-r-torch-fix-codegen.patch
 create mode 100644 gnu/packages/patches/python-pytorch-for-r-torch-system-libraries.patch
 create mode 100644 gnu/packages/patches/python-pytorch-without-kineto.patch
 delete mode 100644 gnu/packages/patches/python-pytorch2-system-libraries.patch
 delete mode 100644 gnu/packages/patches/xnnpack-for-torch2-system-libraries.patch
 create mode 100644 gnu/packages/patches/xnnpack-remove-broken-tests.patch

-- 
2.41.0





Acknowledgement sent to David Elsing <david.elsing@HIDDEN>:
New bug report received and forwarded. Copy sent to guix-patches@HIDDEN. Full text available.
Report forwarded to guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Wed, 6 Mar 2024 19:45:01 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.