summary refs log tree commit diff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2022-07-13 23:34:58 +0200
committerMarius Bakke <marius@gnu.org>2022-07-13 23:34:58 +0200
commit4442a5db773f79e05c37e014c63b4298e7de666b (patch)
tree880a6fdce7b288eaa506828b9b500191ca60ce24 /gnu/packages/patches
parent5b48591176a08bddfd0147bd854785fb4f6a62ba (diff)
parentb160795a0b65d67ff5d64447f1b97c2f009517a0 (diff)
downloadguix-4442a5db773f79e05c37e014c63b4298e7de666b.tar.gz
Merge branch 'master' into staging
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/abcl-fix-build-xml.patch12
-rw-r--r--gnu/packages/patches/clang-runtime-3.7-fix-build-with-python3.patch16
-rw-r--r--gnu/packages/patches/curl-easy-lock.patch31
-rw-r--r--gnu/packages/patches/docker-fix-tests.patch28
-rw-r--r--gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch86
-rw-r--r--gnu/packages/patches/llvm-3.x.1-fix-build-with-gcc.patch15
-rw-r--r--gnu/packages/patches/llvm-8-fix-build-with-gcc-10.patch34
-rw-r--r--gnu/packages/patches/mcrl2-fix-1687.patch337
-rw-r--r--gnu/packages/patches/mcrl2-fix-counterexample.patch32
-rw-r--r--gnu/packages/patches/mia-vtk9.patch64
-rw-r--r--gnu/packages/patches/pitivi-fix-build-with-meson-0.60.patch46
-rw-r--r--gnu/packages/patches/pokerth-boost.patch38
-rw-r--r--gnu/packages/patches/python-pytorch-runpath.patch25
-rw-r--r--gnu/packages/patches/python-pytorch-system-libraries.patch32
-rw-r--r--gnu/packages/patches/tbb-other-arches.patch41
-rw-r--r--gnu/packages/patches/xf86-video-mach64-bool-to-boolean.patch79
-rw-r--r--gnu/packages/patches/xf86-video-mach64-glibc-2.20.patch17
-rw-r--r--gnu/packages/patches/xnnpack-system-libraries.patch906
18 files changed, 1246 insertions, 593 deletions
diff --git a/gnu/packages/patches/abcl-fix-build-xml.patch b/gnu/packages/patches/abcl-fix-build-xml.patch
index dd315b4271..12f5cd4510 100644
--- a/gnu/packages/patches/abcl-fix-build-xml.patch
+++ b/gnu/packages/patches/abcl-fix-build-xml.patch
@@ -8,7 +8,7 @@ it non-deterministic.
 
 --- a/build.xml
 +++ b/build.xml
-@@ -327,7 +327,7 @@ from ${abcl.home.dir}
+@@ -338,7 +338,7 @@ from ${abcl.home.dir}
      <property name="abcl.build.path"
                value="${build.classes.dir}/org/armedbear/lisp/build"/>
      <target name="abcl.stamp" 
@@ -17,10 +17,10 @@ it non-deterministic.
        <mkdir dir="${abcl.build.path}/.."/>
        <loadfile property="abcl.version"
                  srcFile="${abcl.version.path}"/>
-@@ -455,11 +455,6 @@ from ${abcl.home.dir}
+@@ -479,11 +479,6 @@ Mercurial and Git.
                  value="${abcl.version}-${abcl.version.src}"/>
      </target>
- 
+
 -    <target name="abcl.stamp.hostname" if="unix">
 -      <exec executable="hostname" outputproperty="abcl.hostname"/>
 -      <echo>abcl.hostname: ${abcl.hostname}</echo>
@@ -29,16 +29,16 @@ it non-deterministic.
      <target name="abcl.system.uptodate">
        <condition property="abcl.system.needs-update.p">
          <and>
-@@ -500,8 +495,6 @@ from ${abcl.home.dir}
+@@ -524,8 +519,6 @@ Mercurial and Git.
                         value="ABCL"/>
              <attribute name="Implementation-Version"  
-                        value="${abcl.implementation.version}"/>
+                        value="${abcl.version}"/>
 -            <attribute name="Implementation-Build" 
 -                       value="${build}"/>
            </section>
          </manifest>
          <metainf dir="${src.dir}/META-INF"> 
-@@ -1019,8 +1012,7 @@ ${basedir}/../cl-bench
+@@ -1050,8 +1043,7 @@ ${basedir}/../cl-bench
        </unzip>
      </target>
          
diff --git a/gnu/packages/patches/clang-runtime-3.7-fix-build-with-python3.patch b/gnu/packages/patches/clang-runtime-3.7-fix-build-with-python3.patch
new file mode 100644
index 0000000000..042f0e025a
--- /dev/null
+++ b/gnu/packages/patches/clang-runtime-3.7-fix-build-with-python3.patch
@@ -0,0 +1,16 @@
+Patch based on changes from
+https://github.com/llvm/llvm-project/commit/c1fde4fa943fd03a3d40bc5d32b9e0045fd29208
+
+diff --git a/lib/sanitizer_common/scripts/gen_dynamic_list.py b/lib/sanitizer_common/scripts/gen_dynamic_list.py
+index 5ea2ca1..d7bc287 100755
+--- a/lib/sanitizer_common/scripts/gen_dynamic_list.py
++++ b/lib/sanitizer_common/scripts/gen_dynamic_list.py
+@@ -100,7 +100,7 @@ def main(argv):
+     print('global:')
+   result.sort()
+   for f in result:
+-    print('  ' + f.encode('utf-8') + ';')
++    print(u'  %s;' % f)
+   if args.version_list:
+     print('local:')
+     print('  *;')
diff --git a/gnu/packages/patches/curl-easy-lock.patch b/gnu/packages/patches/curl-easy-lock.patch
new file mode 100644
index 0000000000..137106f57c
--- /dev/null
+++ b/gnu/packages/patches/curl-easy-lock.patch
@@ -0,0 +1,31 @@
+This patch is taken from upstream master, and should probably be dropped
+with the next release.
+
+ihttps://github.com/curl/curl/commit/e2e7f54b7bea521fa8373095d0f43261a720cda0.patch
+
+From e2e7f54b7bea521fa8373095d0f43261a720cda0 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg <daniel@haxx.se>
+Date: Mon, 27 Jun 2022 08:46:21 +0200
+Subject: [PATCH] easy_lock.h: include sched.h if available to fix build
+
+Patched-by: Harry Sintonen
+
+Closes #9054
+---
+ lib/easy_lock.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/lib/easy_lock.h b/lib/easy_lock.h
+index 819f50ce815b8..1f54289ceb2d3 100644
+--- a/lib/easy_lock.h
++++ b/lib/easy_lock.h
+@@ -36,6 +36,9 @@
+ 
+ #elif defined (HAVE_ATOMIC)
+ #include <stdatomic.h>
++#if defined(HAVE_SCHED_YIELD)
++#include <sched.h>
++#endif
+ 
+ #define curl_simple_lock atomic_bool
+ #define CURL_SIMPLE_LOCK_INIT false
diff --git a/gnu/packages/patches/docker-fix-tests.patch b/gnu/packages/patches/docker-fix-tests.patch
deleted file mode 100644
index 3e3e318e25..0000000000
--- a/gnu/packages/patches/docker-fix-tests.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Author: Danny Milosavljevic <dannym@scratchpost.org>
-The socket name ended up too long inside the container.
-Use a shorter one.
---- a/pkg/authorization/authz_unix_test.go	2019-01-10 01:55:02.997985947 +0100
-+++ b/pkg/authorization/authz_unix_test.go	2019-01-10 02:03:21.177439757 +0100
-@@ -24,7 +24,7 @@
- )
- 
- const (
--	pluginAddress = "authz-test-plugin.sock"
-+	pluginAddress = "/tmp/authz-test-plugin.sock"
- )
- 
- func TestAuthZRequestPluginError(t *testing.T) {
-@@ -263,12 +263,7 @@
- 
- // createTestPlugin creates a new sample authorization plugin
- func createTestPlugin(t *testing.T) *authorizationPlugin {
--	pwd, err := os.Getwd()
--	if err != nil {
--		t.Fatal(err)
--	}
--
--	client, err := plugins.NewClient("unix:///"+path.Join(pwd, pluginAddress), &tlsconfig.Options{InsecureSkipVerify: true})
-+	client, err := plugins.NewClient("unix:///"+path.Join("/", pluginAddress), &tlsconfig.Options{InsecureSkipVerify: true})
- 	if err != nil {
- 		t.Fatalf("Failed to create client %v", err)
- 	}
diff --git a/gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch b/gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch
deleted file mode 100644
index ab66e1b389..0000000000
--- a/gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 6d5c587ec719e3309077c7d637b03b13db65c047 Mon Sep 17 00:00:00 2001
-From: Joseph LaFreniere <joseph@lafreniere.xyz>
-Date: Fri, 12 Jul 2019 12:43:46 -0500
-Subject: [PATCH] Move definition of hyperbole-toggle-messaging to hsettings
-
----
- hsettings.el | 25 +++++++++++++++++++++++++
- hyperbole.el | 26 --------------------------
- 2 files changed, 25 insertions(+), 26 deletions(-)
-
-diff --git a/hsettings.el b/hsettings.el
-index 6cdd1b8..9632067 100644
---- a/hsettings.el
-+++ b/hsettings.el
-@@ -163,6 +163,31 @@ package to display search results."
- 			      search-term)))
-       (user-error "(Hyperbole): Invalid web search service `%s'" service-name))))
- 
-+;;;###autoload
-+(defun hyperbole-toggle-messaging (&optional arg)
-+  "Toggle Hyperbole support for explicit buttons in mail and news buffers.
-+Toggles the boolean variable `inhibit-hyperbole-messaging’ and either
-+adds hooks (nil value) or removes them (t value).
-+
-+With optional prefix ARG > 0, enables support.  If ARG <= 0,
-+disables/inhibits support."
-+  (interactive "P")
-+  (setq inhibit-hyperbole-messaging (if (null arg)
-+					(not inhibit-hyperbole-messaging)
-+				      (<= (prefix-numeric-value arg) 0)))
-+  (if inhibit-hyperbole-messaging
-+      (var:remove-all)
-+    (var:append-all)
-+    ;; Add any hooks that were skipped when inhibit-hyperbole-messaging
-+    ;; was nil.
-+    (cond ((boundp 'hyperbole-loading))
-+	  ((not after-init-time)
-+	   (add-hook 'after-init-hook (lambda () (load "hyperbole"))))
-+	  (t (load "hyperbole"))))
-+  (if (called-interactively-p 'interactive)
-+      (message "Hyperbole messaging button support is %s"
-+	       (if inhibit-hyperbole-messaging "disabled" "enabled"))))
-+
- (defcustom inhibit-hyperbole-messaging t
-   "*Determines whether Hyperbole supports explicit buttons in mail and news buffers.
- The default of t means disable such support (work remains to
-diff --git a/hyperbole.el b/hyperbole.el
-index 4aa427d..872dbaf 100644
---- a/hyperbole.el
-+++ b/hyperbole.el
-@@ -121,32 +121,6 @@
- 			    t)))
-     (error "(Hyperbole): Startup failure: `hyperb:dir' must be manually added to `load-path' to fix.")))
- 
--;; This must be defined before the defcustom `inhbit-hyperbole-messaging'.
--;;;###autoload
--(defun hyperbole-toggle-messaging (&optional arg)
--  "Toggle Hyperbole support for explicit buttons in mail and news buffers.
--Toggles the boolean variable `inhibit-hyperbole-messaging’ and either
--adds hooks (nil value) or removes them (t value).
--
--With optional prefix ARG > 0, enables support.  If ARG <= 0,
--disables/inhibits support."
--  (interactive "P")
--  (setq inhibit-hyperbole-messaging (if (null arg)
--					(not inhibit-hyperbole-messaging)
--				      (<= (prefix-numeric-value arg) 0)))
--  (if inhibit-hyperbole-messaging
--      (var:remove-all)
--    (var:append-all)
--    ;; Add any hooks that were skipped when inhibit-hyperbole-messaging
--    ;; was nil.
--    (cond ((boundp 'hyperbole-loading))
--	  ((not after-init-time)
--	   (add-hook 'after-init-hook (lambda () (load "hyperbole"))))
--	  (t (load "hyperbole"))))
--  (if (called-interactively-p 'interactive)
--      (message "Hyperbole messaging button support is %s"
--	       (if inhibit-hyperbole-messaging "disabled" "enabled"))))
--
- (defgroup hyperbole-koutliner nil
-   "Hyperbole multi-level autonumbered outliner customizations."
-   :group 'hyperbole)
--- 
-2.22.0
-
diff --git a/gnu/packages/patches/llvm-3.x.1-fix-build-with-gcc.patch b/gnu/packages/patches/llvm-3.x.1-fix-build-with-gcc.patch
new file mode 100644
index 0000000000..75236c4069
--- /dev/null
+++ b/gnu/packages/patches/llvm-3.x.1-fix-build-with-gcc.patch
@@ -0,0 +1,15 @@
+Patch from https://github.com/digego/extempore/issues/318
+
+diff --git a/include/llvm/IR/ValueMap.h.orig b/include/llvm/IR/ValueMap.h
+index ad518ac..d928f6a 100644
+--- a/include/llvm/IR/ValueMap.h
++++ b/include/llvm/IR/ValueMap.h
+@@ -99,7 +99,7 @@
+   explicit ValueMap(const ExtraData &Data, unsigned NumInitBuckets = 64)
+       : Map(NumInitBuckets), Data(Data) {}
+ 
+-  bool hasMD() const { return MDMap; }
++  bool hasMD() const { return static_cast<bool>(MDMap); }
+   MDMapT &MD() {
+     if (!MDMap)
+       MDMap.reset(new MDMapT);
diff --git a/gnu/packages/patches/llvm-8-fix-build-with-gcc-10.patch b/gnu/packages/patches/llvm-8-fix-build-with-gcc-10.patch
new file mode 100644
index 0000000000..9b36cc772c
--- /dev/null
+++ b/gnu/packages/patches/llvm-8-fix-build-with-gcc-10.patch
@@ -0,0 +1,34 @@
+From b288d90b39f4b905c02092a9bfcfd6d78f99b191 Mon Sep 17 00:00:00 2001
+From: Than McIntosh <thanm@google.com>
+Date: Fri, 19 Jul 2019 13:13:54 +0000
+Subject: [PATCH] [NFC] include cstdint/string prior to using uint8_t/string
+
+Summary: include proper header prior to use of uint8_t typedef
+and std::string.
+
+Subscribers: llvm-commits
+
+Reviewers: cherry
+
+Tags: #llvm
+
+Differential Revision: https://reviews.llvm.org/D64937
+
+llvm-svn: 366572
+---
+ llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/include/llvm/Demangle/MicrosoftDemangleNodes.h b/include/llvm/Demangle/MicrosoftDemangleNodes.h
+index da9d9d5bfdc0c..3d47471f0ef0e 100644
+--- a/include/llvm/Demangle/MicrosoftDemangleNodes.h
++++ b/include/llvm/Demangle/MicrosoftDemangleNodes.h
+@@ -16,6 +16,8 @@
+ #include "llvm/Demangle/DemangleConfig.h"
+ #include "llvm/Demangle/StringView.h"
+ #include <array>
++#include <cstdint>
++#include <string>
+ 
+ namespace llvm {
+ namespace itanium_demangle {
diff --git a/gnu/packages/patches/mcrl2-fix-1687.patch b/gnu/packages/patches/mcrl2-fix-1687.patch
new file mode 100644
index 0000000000..449ecbf638
--- /dev/null
+++ b/gnu/packages/patches/mcrl2-fix-1687.patch
@@ -0,0 +1,337 @@
+Taken from upstream:
+    https://github.com/mCRL2org/mCRL2/commit/f38998be5198236bc5bf5a957b0e132d6d6d8bee
+
+Fixes bug in ltsconvert:
+    https://listserver.tue.nl/pipermail/mcrl2-users/2022-June/000395.html
+
+From f38998be5198236bc5bf5a957b0e132d6d6d8bee Mon Sep 17 00:00:00 2001
+From: Jan Friso Groote <J.F.Groote@tue.nl>
+Date: Tue, 28 Jun 2022 12:27:47 +0200
+Subject: [PATCH] Solved bug report #1687
+
+Hidden actions were not properly recognized in ltsconvert. Multiactions
+that were partly hidden compared with the default action label, and had
+to be compared with a tau-action. This caused multiple tau-actions to be
+listed in the list of actions of an lts, and this caused other tools to
+go astray.
+
+The code to rename actions has completely be rewritten.
+
+This should solve #1687.
+
+A test have been added.
+---
+ libraries/lts/include/mcrl2/lts/lts.h   | 95 ++++++++++++++++++++++---
+ libraries/lts/test/lts_test.cpp         | 61 ++++++++--------
+ tools/release/ltsconvert/ltsconvert.cpp |  3 +-
+ 3 files changed, 116 insertions(+), 43 deletions(-)
+
+diff --git a/libraries/lts/include/mcrl2/lts/lts.h b/libraries/lts/include/mcrl2/lts/lts.h
+index 095031e7c..8562eb900 100644
+--- a/libraries/lts/include/mcrl2/lts/lts.h
++++ b/libraries/lts/include/mcrl2/lts/lts.h
+@@ -25,6 +25,7 @@
+ #include <algorithm>
+ #include <cassert>
+ #include <set>
++#include <map>
+ #include "mcrl2/lts/transition.h"
+ #include "mcrl2/lts/lts_type.h"
+ 
+@@ -482,40 +483,112 @@ class lts: public LTS_BASE
+         return;
+       }
+ 
++      std::map<labels_size_type, labels_size_type> action_rename_map;
+       for (labels_size_type i=0; i< num_action_labels(); ++i)
+       {
+         ACTION_LABEL_T a=action_label(i);
+         a.hide_actions(tau_actions);
+-        if (a==ACTION_LABEL_T())  
++        if (a==ACTION_LABEL_T::tau_action())  
+         {
+-          m_hidden_label_set.insert(i);
++          if (i!=const_tau_label_index)
++          {
++            m_hidden_label_set.insert(i);
++          }
+         }
+         else if (a!=action_label(i))
+         {
+-          set_action_label(i,a);  
++          /* In this the action_label i is changed by the tau_actions but not renamed to tau.
++             We check whether a maps onto another action label index. If yes, it is added to 
++             the rename map, and we explicitly rename transition labels with this label afterwards.
++             If no, we rename the action label.
++          */
++          bool found=false;
++          for (labels_size_type j=0; !found && j< num_action_labels(); ++j)
++          {
++            if (a==action_label(j))
++            { 
++              if (i!=j)
++              {
++                action_rename_map[i]=j;
++              }
++              found=true;
++            }
++          }
++          if (!found) // a!=action_label(j) for any j, then rename action_label(i) to a. 
++          { 
++            set_action_label(i,a);
++          }
++        }
++      }
++
++      if (action_rename_map.size()>0)    // Check whether there are action labels that must be renamed, and
++      {
++        for(transition& t: m_transitions)
++        {
++          auto i = action_rename_map.find(t.label());
++          if (i!=action_rename_map.end())
++          { 
++            t=transition(t.from(),i->second,t.to());
++          }
+         }
+       }
+     }
+ 
+-    /** \brief Apply the recorded actions that are renamed to internal actions to the lts. 
+-     *  \details After hiding actions, it checks whether action labels are
+-     *           equal and merges actions with the same labels in the lts.
++    /** \brief Rename the hidden actions in the lts. 
++     *  \details Multiactions can be partially renamed. I.e. a|b becomes a if b is hidden.
++     *           In such a case the new action a is mapped onto an existing action a; if such
++     *           a label a does not exist, the action a|b is renamed to a. 
+      *  \param[in] tau_actions Vector with strings indicating which actions must be
+      *       transformed to tau's */
+-    void apply_hidden_actions(void)
++    void apply_hidden_actions(const std::vector<std::string>& tau_actions)
+     {
+-      if (m_hidden_label_set.size()>0)    // Check whether there is something to rename.
++      if (tau_actions.size()==0)
++      { 
++        return;
++      }
++      
++      std::map<labels_size_type, labels_size_type> action_rename_map;
++      for (labels_size_type i=0; i< num_action_labels(); ++i)
++      {
++        ACTION_LABEL_T a=action_label(i);
++        a.hide_actions(tau_actions);
++#ifndef NDEBUG
++        ACTION_LABEL_T b=a;
++        b.hide_actions(tau_actions);
++        assert(a==b); // hide_actions applied twice yields the same result as applying it once.
++#endif
++        bool found=false;
++        for (labels_size_type j=0; !found && j< num_action_labels(); ++j)
++        {
++          if (a==action_label(j))
++          { 
++            if (i!=j)
++            {
++              action_rename_map[i]=j;
++            }
++            found=true;
++          }
++        }
++        if (!found) // a!=action_label(j) for any j, then rename action_label(i) to a. 
++        { 
++          set_action_label(i,a);
++        }
++      }
++    
++
++      if (action_rename_map.size()>0)    // Check whether there is something to rename.
+       {
+         for(transition& t: m_transitions)
+         {
+-          if (m_hidden_label_set.count(t.label()))
++          auto i = action_rename_map.find(t.label());
++          if (i!=action_rename_map.end())
+           { 
+-            t=transition(t.from(),tau_label_index(),t.to());
++            t=transition(t.from(),i->second,t.to());
+           }
+         }
+-        m_hidden_label_set.clear();       // Empty the hidden label set. 
+       }
+     }
++
+     /** \brief Checks whether this LTS has state values associated with its states.
+      * \retval true if the LTS has state information;
+      * \retval false otherwise.
+diff --git a/libraries/lts/test/lts_test.cpp b/libraries/lts/test/lts_test.cpp
+index 5840393d9..ad69f6275 100644
+--- a/libraries/lts/test/lts_test.cpp
++++ b/libraries/lts/test/lts_test.cpp
+@@ -149,7 +149,7 @@ static void reduce_lts_in_various_ways(const std::string& test_description,
+   BOOST_CHECK(is_deterministic(l));
+ }
+ 
+-static void reduce_simple_loop()
++BOOST_AUTO_TEST_CASE(reduce_simple_loop)
+ {
+   std::string SIMPLE_AUT =
+     "des (0,2,2)\n"
+@@ -173,7 +173,7 @@ static void reduce_simple_loop()
+   reduce_lts_in_various_ways("Simple loop", SIMPLE_AUT, expected);
+ }
+ 
+-static void reduce_simple_loop_with_tau()
++BOOST_AUTO_TEST_CASE(reduce_simple_loop_with_tau)
+ {
+   std::string SIMPLE_AUT =
+     "des (0,2,2)\n"
+@@ -200,7 +200,7 @@ static void reduce_simple_loop_with_tau()
+ /* The example below was encountered by David Jansen. The problem is that
+  * for branching bisimulations the tau may supersede the b, not leading to the
+  * necessary splitting into two equivalence classes. */
+-static void tricky_example_for_branching_bisimulation()
++BOOST_AUTO_TEST_CASE(tricky_example_for_branching_bisimulation)
+ {
+   std::string TRICKY_BB =
+     "des (0,3,2)\n"
+@@ -226,7 +226,7 @@ static void tricky_example_for_branching_bisimulation()
+ }
+ 
+ 
+-static void reduce_abp()
++BOOST_AUTO_TEST_CASE(reduce_abp)
+ {
+   std::string ABP_AUT =
+     "des (0,92,74)\n"
+@@ -342,7 +342,7 @@ static void reduce_abp()
+ 
+ // Peterson's protocol has the interesting property that the number of states modulo branching bisimulation
+ // differs from the number of states modulo weak bisimulation, as observed by Rob van Glabbeek.
+-static void reduce_peterson()
++BOOST_AUTO_TEST_CASE(reduce_peterson)
+ {
+   std::string PETERSON_AUT =
+     "des (0,59,35)\n"
+@@ -423,7 +423,7 @@ static void reduce_peterson()
+   reduce_lts_in_various_ways("Peterson protocol", PETERSON_AUT, expected);
+ }
+ 
+-static void test_reachability()
++BOOST_AUTO_TEST_CASE(test_reachability)
+ {
+   std::string REACH =
+     "des (0,4,5)       \n"
+@@ -449,7 +449,7 @@ static void test_reachability()
+ 
+ // The example below caused failures in the GW mlogn branching bisimulation
+ // algorithm when cleaning the code up.
+-static void failing_test_groote_wijs_algorithm()
++BOOST_AUTO_TEST_CASE(failing_test_groote_wijs_algorithm)
+ {
+   std::string GWLTS =
+     "des(0,29,10)\n"
+@@ -511,7 +511,7 @@ static void failing_test_groote_wijs_algorithm()
+ // It has not been implemented fully. The problem is that it is difficult to
+ // prescribe the order in which refinements have to be done.
+ 
+-static void counterexample_jk_1(std::size_t k)
++void counterexample_jk_1(std::size_t k)
+ {
+     // numbering scheme of states:
+     // states 0..k-1 are the blue squares
+@@ -571,7 +571,7 @@ static void counterexample_jk_1(std::size_t k)
+ 
+ // In the meantime, the bug is corrected:  this is why the first part of the
+ // algorithm now follows a much simpler line than previously.
+-static void counterexample_postprocessing()
++BOOST_AUTO_TEST_CASE(counterexample_postprocessing)
+ {
+   std::string POSTPROCESS_AUT =
+     "des(0,33,13)\n"
+@@ -634,7 +634,7 @@ static void counterexample_postprocessing()
+   test_lts("postprocessing problem (branching bisimulation signature [Blom/Orzan 2003])",l,expected_label_count, expected_state_count, expected_transition_count);
+ }
+ 
+-static void regression_delete_old_bb_slice()
++BOOST_AUTO_TEST_CASE(regression_delete_old_bb_slice)
+ {
+   std::string POSTPROCESS_AUT =
+     "des(0,163,100)\n"
+@@ -824,7 +824,7 @@ static void regression_delete_old_bb_slice()
+   test_lts("regression test for GJKW bug (branching bisimulation signature [Blom/Orzan 2003])",l,expected_label_count, expected_state_count, expected_transition_count);
+ }
+ 
+-void is_deterministic_test1()
++BOOST_AUTO_TEST_CASE(is_deterministic_test1)
+ {
+   std::string automaton =
+     "des(0,2,2)\n"
+@@ -837,7 +837,7 @@ void is_deterministic_test1()
+   BOOST_CHECK(is_deterministic(l_det));
+ }
+ 
+-void is_deterministic_test2()
++BOOST_AUTO_TEST_CASE(is_deterministic_test2)
+ {
+   std::string automaton =
+     "des(0,2,2)\n"
+@@ -850,24 +850,25 @@ void is_deterministic_test2()
+   BOOST_CHECK(!is_deterministic(l_det));
+ }
+ 
+-void test_is_deterministic()
++BOOST_AUTO_TEST_CASE(hide_actions1)
+ {
+-  is_deterministic_test1();
+-  is_deterministic_test2();
+-}
++  std::string automaton =
++     "des (0,4,3)\n"
++     "(0,\"<state>\",1)\n"
++     "(1,\"return|hello\",2)\n"
++     "(1,\"return\",2)\n"
++     "(2,\"world\",1)\n";
++
++  std::istringstream is(automaton);
++  lts::lts_aut_t l;
++  l.load(is);
++  std::vector<std::string>hidden_actions(1,"hello");
++  l.apply_hidden_actions(hidden_actions);
++  reduce(l,lts::lts_eq_bisim);
++  std::size_t expected_label_count = 5;
++  std::size_t expected_state_count = 3;
++  std::size_t expected_transition_count = 3;
++  test_lts("regression test for GJKW bug (branching bisimulation [Jansen/Groote/Keiren/Wijs 2019])",l,expected_label_count, expected_state_count, expected_transition_count);
++
+ 
+-BOOST_AUTO_TEST_CASE(test_main)
+-{
+-  reduce_simple_loop();
+-  reduce_simple_loop_with_tau();
+-  tricky_example_for_branching_bisimulation();
+-  reduce_abp();
+-  reduce_peterson();
+-  test_reachability();
+-  test_is_deterministic();
+-  failing_test_groote_wijs_algorithm();
+-  counterexample_jk_1(3);
+-  counterexample_postprocessing();
+-  regression_delete_old_bb_slice();
+-  // TODO: Add groote wijs branching bisimulation and add weak bisimulation tests. For the last Peterson is a good candidate.
+ }
+diff --git a/tools/release/ltsconvert/ltsconvert.cpp b/tools/release/ltsconvert/ltsconvert.cpp
+index 231deabe2..5645d31d1 100644
+--- a/tools/release/ltsconvert/ltsconvert.cpp
++++ b/tools/release/ltsconvert/ltsconvert.cpp
+@@ -123,8 +123,7 @@ class ltsconvert_tool : public input_output_tool
+ 
+       LTS_TYPE l;
+       l.load(tool_options.infilename);
+-      l.record_hidden_actions(tool_options.tau_actions);
+-      l.apply_hidden_actions();
++      l.apply_hidden_actions(tool_options.tau_actions);
+ 
+       if (tool_options.check_reach)
+       {
+-- 
+2.35.1
+
diff --git a/gnu/packages/patches/mcrl2-fix-counterexample.patch b/gnu/packages/patches/mcrl2-fix-counterexample.patch
new file mode 100644
index 0000000000..abf541f50c
--- /dev/null
+++ b/gnu/packages/patches/mcrl2-fix-counterexample.patch
@@ -0,0 +1,32 @@
+Taken from upstream:
+    https://github.com/mCRL2org/mCRL2/commit/435421429dde9dcc5956e8a978597111a3947ec1
+
+Fixes bug in ltscompare:
+    https://listserver.tue.nl/pipermail/mcrl2-users/2022-June/000396.html
+
+From 435421429dde9dcc5956e8a978597111a3947ec1 Mon Sep 17 00:00:00 2001
+From: Maurice Laveaux <m.laveaux@tue.nl>
+Date: Wed, 29 Jun 2022 10:27:58 +0200
+Subject: [PATCH] Write counterexample's structured output trace on single
+ line.
+
+---
+ libraries/lts/include/mcrl2/lts/detail/counter_example.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libraries/lts/include/mcrl2/lts/detail/counter_example.h b/libraries/lts/include/mcrl2/lts/detail/counter_example.h
+index c339cfde4..ca3967768 100644
+--- a/libraries/lts/include/mcrl2/lts/detail/counter_example.h
++++ b/libraries/lts/include/mcrl2/lts/detail/counter_example.h
+@@ -139,7 +139,7 @@ class counter_example_constructor
+       if (m_structured_output)
+       {
+         std::cout << m_name << ": ";
+-        result.save("", mcrl2::lts::trace::tfPlain);   // Write to stdout. 
++        result.save("", mcrl2::lts::trace::tfLine);   // Write to stdout.
+       }
+       else
+       {
+-- 
+2.35.1
+
diff --git a/gnu/packages/patches/mia-vtk9.patch b/gnu/packages/patches/mia-vtk9.patch
new file mode 100644
index 0000000000..a8f1adab6c
--- /dev/null
+++ b/gnu/packages/patches/mia-vtk9.patch
@@ -0,0 +1,64 @@
+This patch has been taken from
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1012689
+--- a/addons/vtk/CMakeLists.txt
++++ b/addons/vtk/CMakeLists.txt
+@@ -20,9 +20,9 @@
+ 
+ IF(WITH_VTKIO)
+   if (STRICT_DEPENDECIES)
+-    FIND_PACKAGE(VTK REQUIRED COMPONENTS  vtkIOImage  vtkIOXML vtkIOLegacy)
++    FIND_PACKAGE(VTK REQUIRED COMPONENTS  IOImage IOXML IOLegacy)
+   else (STRICT_DEPENDECIES)
+-    FIND_PACKAGE(VTK COMPONENTS vtkIOImage vtkIOXML vtkIOLegacy)
++    FIND_PACKAGE(VTK COMPONENTS IOImage IOXML IOLegacy)
+   endif (STRICT_DEPENDECIES)
+   IF(VTK_FOUND)
+     DEFINE_PROPERTY(GLOBAL PROPERTY HAVE_VTK_PROP BRIEF_DOCS "yeah" FULL_DOCS "yeah")
+@@ -41,8 +41,17 @@
+     SET(VTK_LINK_LIBS_3D ${SELECTED_VTK_LIBS} mia3d)
+ 
+     PLUGIN_WITH_TEST_AND_PREFIX2("mesh" "io" vtkmesh "${VTK_LINK_LIBS_MESH}")
++    target_link_libraries(mesh-io-vtkmesh ${VTK_LIBRARIES})
++    target_link_libraries(mesh-io-vtkmesh-common ${VTK_LIBRARIES})
++    target_link_libraries(test-mesh-io-vtkmesh ${VTK_LIBRARIES})
+     PLUGIN_WITH_TEST_AND_PREFIX2("3dvf" "io" vtkvf "${VTK_LINK_LIBS_3D}")
++    target_link_libraries(3dvf-io-vtkvf ${VTK_LIBRARIES})
++    target_link_libraries(3dvf-io-vtkvf-common ${VTK_LIBRARIES})
++    target_link_libraries(test-3dvf-io-vtkvf ${VTK_LIBRARIES})
+     PLUGIN_WITH_TEST_AND_PREFIX2("3dimage" "io" vtkimage "${VTK_LINK_LIBS_3D}")
++    target_link_libraries(3dimage-io-vtkimage ${VTK_LIBRARIES})
++    target_link_libraries(3dimage-io-vtkimage-common ${VTK_LIBRARIES})
++    target_link_libraries(test-3dimage-io-vtkimage ${VTK_LIBRARIES})
+ 
+   ELSEIF(VTK_FOUND)
+     MESSAGE(MESSAGE "VTK not found, disabled")
+--- a/addons/vtk/vtkmesh.cc
++++ b/addons/vtk/vtkmesh.cc
+@@ -78,7 +78,8 @@
+        // read all cells, if a cell is formed of more than 3 corners, then triangulate,
+        // if it hes less then 3 corners, ignore it (no wireframes supported here
+        auto triangles = CVtkMeshIO::PTrianglefield(new CVtkMeshIO::CTrianglefield ());
+-       vtkIdType npts, *pts;
++       vtkIdType npts;
++       vtkIdType const *pts;
+        auto strips = mesh.GetStrips();
+ 
+        while (strips->GetNextCell(npts, pts)) {
+@@ -183,7 +184,7 @@
+        auto is = mesh.normals_begin();
+ 
+        for (auto i = 0; i < n_normals; ++i, ++is) {
+-              normals->GetTupleValue(i, &is->x);
++              normals->GetTypedTuple(i, &is->x);
+               cvdebug() << i << ": read normal " << *is << "\n";
+        }
+ }
+@@ -217,7 +218,7 @@
+        auto is = mesh.color_begin();
+ 
+        for (auto i = 0; i < n_colors; ++i, ++is)
+-              colors->GetTupleValue(i, &is->x);
++              colors->GetTypedTuple(i, &is->x);
+ }
+ 
+ PTriangleMesh CVtkMeshIO::do_load(string const&   filename) const
diff --git a/gnu/packages/patches/pitivi-fix-build-with-meson-0.60.patch b/gnu/packages/patches/pitivi-fix-build-with-meson-0.60.patch
deleted file mode 100644
index 652a86bff7..0000000000
--- a/gnu/packages/patches/pitivi-fix-build-with-meson-0.60.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From b54da52289f9578d7021f466d731cfd48330e5fe Mon Sep 17 00:00:00 2001
-From: Leo Famulari <leo@famulari.name>
-Date: Thu, 25 Nov 2021 18:56:44 -0500
-Subject: [PATCH] Fix build with Meson 0.60.
-
-https://gitlab.gnome.org/GNOME/pitivi/-/issues/2593
-
-* data/meson.build: Adjust to changes in Meson 0.60.
----
- data/meson.build | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/data/meson.build b/data/meson.build
-index 2ea82cf..60d2316 100644
---- a/data/meson.build
-+++ b/data/meson.build
-@@ -6,7 +6,7 @@ install_subdir('audiopresets', install_dir: pkgdatadir)
- install_subdir('videopresets', install_dir: pkgdatadir)
- install_subdir('gstpresets', install_dir: pkgdatadir)
- 
--desktop_file = i18n.merge_file('org.pitivi.Pitivi.desktop',
-+desktop_file = i18n.merge_file(
-     type: 'desktop',
-     output : 'org.pitivi.Pitivi.desktop',
-     input : 'org.pitivi.Pitivi.desktop.in',
-@@ -25,7 +25,7 @@ if desktop_file_validate.found()
-   )
- endif
- 
--appdata_file = i18n.merge_file('org.pitivi.Pitivi.appdata.xml',
-+appdata_file = i18n.merge_file(
-     type: 'xml',
-     output : 'org.pitivi.Pitivi.appdata.xml',
-     input : 'org.pitivi.Pitivi.appdata.xml.in',
-@@ -43,7 +43,7 @@ if appstream_util.found()
-   )
- endif
- 
--i18n.merge_file('org.pitivi.Pitivi-mime.xml',
-+i18n.merge_file(
-     output : 'org.pitivi.Pitivi-mime.xml',
-     input : 'org.pitivi.Pitivi-mime.xml.in',
-     po_dir: podir,
--- 
-2.33.1
-
diff --git a/gnu/packages/patches/pokerth-boost.patch b/gnu/packages/patches/pokerth-boost.patch
new file mode 100644
index 0000000000..85d32df299
--- /dev/null
+++ b/gnu/packages/patches/pokerth-boost.patch
@@ -0,0 +1,38 @@
+Retrieved from https://patch-diff.githubusercontent.com/raw/pokerth/pokerth/pull/396.patch
+
+From a769887330a317d55e7f64c71a32ad130ffb9307 Mon Sep 17 00:00:00 2001
+From: Stefan Strogin <steils@gentoo.org>
+Date: Mon, 18 May 2020 03:30:53 +0300
+Subject: [PATCH] Fix using boost placeholders (#395)
+
+---
+ src/net/common/serveracceptwebhelper.cpp | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/src/net/common/serveracceptwebhelper.cpp b/src/net/common/serveracceptwebhelper.cpp
+index f61d4d779..8701e1e99 100644
+--- a/src/net/common/serveracceptwebhelper.cpp
++++ b/src/net/common/serveracceptwebhelper.cpp
+@@ -29,6 +29,7 @@
+  * as that of the covered work.                                              *
+  *****************************************************************************/
+ 
++#include <boost/bind/bind.hpp>
+ #include <net/serveracceptwebhelper.h>
+ #include <net/sessiondata.h>
+ #include <net/webreceivebuffer.h>
+@@ -58,10 +59,10 @@ ServerAcceptWebHelper::Listen(unsigned serverPort, bool /*ipv6*/, const std::str
+ 
+ 	m_webSocketServer->init_asio(m_ioService.get());
+ 
+-	m_webSocketServer->set_validate_handler(boost::bind(boost::mem_fn(&ServerAcceptWebHelper::validate), this, _1));
+-	m_webSocketServer->set_open_handler(boost::bind(boost::mem_fn(&ServerAcceptWebHelper::on_open), this, _1));
+-	m_webSocketServer->set_close_handler(boost::bind(boost::mem_fn(&ServerAcceptWebHelper::on_close), this, _1));
+-	m_webSocketServer->set_message_handler(boost::bind(boost::mem_fn(&ServerAcceptWebHelper::on_message), this, _1, _2));
++	m_webSocketServer->set_validate_handler(boost::bind(boost::mem_fn(&ServerAcceptWebHelper::validate), this, boost::placeholders::_1));
++	m_webSocketServer->set_open_handler(boost::bind(boost::mem_fn(&ServerAcceptWebHelper::on_open), this, boost::placeholders::_1));
++	m_webSocketServer->set_close_handler(boost::bind(boost::mem_fn(&ServerAcceptWebHelper::on_close), this, boost::placeholders::_1));
++	m_webSocketServer->set_message_handler(boost::bind(boost::mem_fn(&ServerAcceptWebHelper::on_message), this, boost::placeholders::_1, boost::placeholders::_2));
+ 
+ 	m_webSocketServer->listen(serverPort);
+ 	m_webSocketServer->start_accept();
diff --git a/gnu/packages/patches/python-pytorch-runpath.patch b/gnu/packages/patches/python-pytorch-runpath.patch
index 6f270ef9b1..7f95b88a2b 100644
--- a/gnu/packages/patches/python-pytorch-runpath.patch
+++ b/gnu/packages/patches/python-pytorch-runpath.patch
@@ -2,6 +2,21 @@ Libraries (such as 'libtorch_cpu.so') and executables (such as 'torch_shm_manage
 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
+--- a/caffe2/CMakeLists.txt
++++ b/caffe2/CMakeLists.txt
+@@ -1909,7 +1909,7 @@ if(BUILD_PYTHON)
+   if(${BUILDING_WITH_TORCH_LIBS})
+     # site-packages/caffe2/python/caffe2_pybind11_state
+     # site-packages/torch/lib
+-    set(caffe2_pybind11_rpath "${_rpath_portable_origin}/../../torch/lib")
++    set(caffe2_pybind11_rpath $ORIGIN/../../torch/lib)
+   endif(${BUILDING_WITH_TORCH_LIBS})
+ 
+   # 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
 --- a/cmake/Dependencies.cmake
 +++ b/cmake/Dependencies.cmake
 @@ -4,7 +4,7 @@ if(APPLE)
@@ -13,13 +28,3 @@ Make sure RUNPATH matches that.
  endif(APPLE)
  # Use separate rpaths during build and install phases
  set(CMAKE_SKIP_BUILD_RPATH  FALSE)
-
---- a/caffe2/CMakeLists.txt
-+++ b/caffe2/CMakeLists.txt
-@@ -1797,5 +1797,5 @@ if(BUILD_PYTHON)
-   if(${BUILDING_WITH_TORCH_LIBS})
-     # site-packages/caffe2/python/caffe2_pybind11_state
-     # site-packages/torch/lib
--    set(caffe2_pybind11_rpath "${_rpath_portable_origin}/../../torch/lib")
-+    set(caffe2_pybind11_rpath $ORIGIN/../../torch/lib)
-   endif(${BUILDING_WITH_TORCH_LIBS})
diff --git a/gnu/packages/patches/python-pytorch-system-libraries.patch b/gnu/packages/patches/python-pytorch-system-libraries.patch
index ae872cfd84..fd849fd9e2 100644
--- a/gnu/packages/patches/python-pytorch-system-libraries.patch
+++ b/gnu/packages/patches/python-pytorch-system-libraries.patch
@@ -2,10 +2,10 @@ 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
-index 26210cb5..18b6df27 100644
+index d57d7ebb..5b5622f0 100644
 --- a/caffe2/CMakeLists.txt
 +++ b/caffe2/CMakeLists.txt
-@@ -1723,7 +1723,7 @@ if(BUILD_TEST)
+@@ -1736,7 +1736,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)
@@ -14,7 +14,7 @@ index 26210cb5..18b6df27 100644
            if(USE_FBGEMM)
              target_link_libraries(${test_name}_${CPU_CAPABILITY} fbgemm)
            endif()
-@@ -1746,7 +1746,7 @@ if(BUILD_TEST)
+@@ -1759,7 +1759,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}")
@@ -23,16 +23,16 @@ index 26210cb5..18b6df27 100644
      if(USE_OPENMP)
        # -fopenmp is a compile time flag and as result not guaranteed
        # to link executable against OpenMP runtime library
-@@ -1769,7 +1769,7 @@ if(BUILD_TEST)
+@@ -1785,7 +1785,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}")
+       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}>)
-@@ -1787,7 +1787,7 @@ if(BUILD_TEST)
+@@ -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}")
@@ -41,7 +41,7 @@ index 26210cb5..18b6df27 100644
        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}>)
-@@ -1805,7 +1805,7 @@ if(BUILD_TEST)
+@@ -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}")
@@ -51,10 +51,10 @@ index 26210cb5..18b6df27 100644
        target_include_directories(${test_name} PRIVATE ${Caffe2_CPU_INCLUDE} ${Caffe2_HIP_INCLUDE})
        target_compile_options(${test_name} PRIVATE ${HIP_CXX_FLAGS})
 diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
-index ca560288..c0696e53 100644
+index 557ab649..ee9cf410 100644
 --- a/cmake/Dependencies.cmake
 +++ b/cmake/Dependencies.cmake
-@@ -684,11 +684,6 @@ if(BUILD_TEST OR BUILD_MOBILE_BENCHMARK OR BUILD_MOBILE_TEST)
+@@ -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 "")
@@ -66,7 +66,7 @@ index ca560288..c0696e53 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.")
-@@ -1537,7 +1532,7 @@ if(CAFFE2_CMAKE_BUILDING_WITH_MAIN_REPO AND NOT INTERN_DISABLE_ONNX)
+@@ -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}")
@@ -98,10 +98,10 @@ index a41343cb..6075bdd0 100644
 +set(NNPACK_FOUND TRUE)
 +set(USE_NNPACK ON)
 diff --git a/test/cpp/c10d/CMakeLists.txt b/test/cpp/c10d/CMakeLists.txt
-index 2e48773a..a70506ce 100644
+index bf91460c..ef56948f 100644
 --- a/test/cpp/c10d/CMakeLists.txt
 +++ b/test/cpp/c10d/CMakeLists.txt
-@@ -17,14 +17,14 @@ function(c10d_add_test test_src)
+@@ -16,14 +16,14 @@ function(c10d_add_test test_src)
    add_test(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}>)
  endfunction()
  
@@ -119,7 +119,7 @@ index 2e48773a..a70506ce 100644
    if(INSTALL_TEST)
      install(TARGETS HashStoreTest DESTINATION bin)
    endif()
-@@ -32,11 +32,11 @@ endif()
+@@ -31,11 +31,11 @@ endif()
  
  if(USE_CUDA)
    if(USE_GLOO AND USE_C10D_GLOO)
@@ -133,7 +133,7 @@ index 2e48773a..a70506ce 100644
    endif()
    if(USE_NCCL AND USE_C10D_NCCL)
      # NCCL is a private dependency of libtorch, but the tests include some
-@@ -57,7 +57,7 @@ if(USE_CUDA)
+@@ -56,7 +56,7 @@ if(USE_CUDA)
    endif()
  else()
    if(USE_GLOO AND USE_C10D_GLOO)
@@ -143,10 +143,10 @@ index 2e48773a..a70506ce 100644
  endif()
  
 diff --git a/test/cpp/tensorexpr/CMakeLists.txt b/test/cpp/tensorexpr/CMakeLists.txt
-index 213e99bd..ecaae840 100644
+index 8fc5a0a1..643202f6 100644
 --- a/test/cpp/tensorexpr/CMakeLists.txt
 +++ b/test/cpp/tensorexpr/CMakeLists.txt
-@@ -46,7 +46,7 @@ target_include_directories(tutorial_tensorexpr PRIVATE ${ATen_CPU_INCLUDE})
+@@ -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)
diff --git a/gnu/packages/patches/tbb-other-arches.patch b/gnu/packages/patches/tbb-other-arches.patch
new file mode 100644
index 0000000000..b649eb3eb8
--- /dev/null
+++ b/gnu/packages/patches/tbb-other-arches.patch
@@ -0,0 +1,41 @@
+diff --git a/src/tbb/tools_api/ittnotify_config.h b/src/tbb/tools_api/ittnotify_config.h
+index 8ecc2378..0cf26f85 100644
+--- a/src/tbb/tools_api/ittnotify_config.h
++++ b/src/tbb/tools_api/ittnotify_config.h
+@@ -159,6 +159,11 @@
+ #  define ITT_ARCH_ARM64  6
+ #endif /* ITT_ARCH_ARM64 */
+ 
++/* Fallback for other architectures */
++#ifndef ITT_ARCH_GENERIC
++#  define ITT_ARCH_GENERIC 99
++#endif /* ITT_ARCH_GENERIC */
++
+ #ifndef ITT_ARCH
+ #  if defined _M_IX86 || defined __i386__
+ #    define ITT_ARCH ITT_ARCH_IA32
+@@ -172,6 +177,8 @@
+ #    define ITT_ARCH ITT_ARCH_ARM64
+ #  elif defined __powerpc64__
+ #    define ITT_ARCH ITT_ARCH_PPC64
++#  else
++#    define ITT_ARCH ITT_ARCH_GENERIC
+ #  endif
+ #endif
+ 
+diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
+index 9534dce8..51a79331 100644
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -387,7 +387,10 @@ if (TARGET TBB::tbb)
+     tbb_add_test(SUBDIR tbb NAME test_eh_algorithms DEPENDENCIES TBB::tbb)
+     tbb_add_test(SUBDIR tbb NAME test_blocked_range DEPENDENCIES TBB::tbb)
+     tbb_add_test(SUBDIR tbb NAME test_concurrent_vector DEPENDENCIES TBB::tbb)
+-    tbb_add_test(SUBDIR tbb NAME test_task_group DEPENDENCIES TBB::tbb)
++    if (NOT "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "riscv64")
++        # TODO: This test hangs forever on riscv64.
++        tbb_add_test(SUBDIR tbb NAME test_task_group DEPENDENCIES TBB::tbb)
++    endif()
+     tbb_add_test(SUBDIR tbb NAME test_concurrent_hash_map DEPENDENCIES TBB::tbb)
+     tbb_add_test(SUBDIR tbb NAME test_task_arena DEPENDENCIES TBB::tbb)
+     tbb_add_test(SUBDIR tbb NAME test_enumerable_thread_specific DEPENDENCIES TBB::tbb)
diff --git a/gnu/packages/patches/xf86-video-mach64-bool-to-boolean.patch b/gnu/packages/patches/xf86-video-mach64-bool-to-boolean.patch
deleted file mode 100644
index b85acdd401..0000000000
--- a/gnu/packages/patches/xf86-video-mach64-bool-to-boolean.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From ff1a69144735298d1a190fa23b3ae5747e914859 Mon Sep 17 00:00:00 2001
-From: Josselin Poiret <dev@jpoiret.xyz>
-Date: Thu, 18 Nov 2021 13:18:25 +0000
-Subject: [PATCH] Rename bool to boolean for OptionInfoRec.
-
-* src/aticonfig.c: Change uses of .value.bool to .value.boolean
----
- src/aticonfig.c | 38 +++++++++++++++++++-------------------
- 1 file changed, 19 insertions(+), 19 deletions(-)
-
-diff --git a/src/aticonfig.c b/src/aticonfig.c
-index 621e79e..8ea0c6e 100644
---- a/src/aticonfig.c
-+++ b/src/aticonfig.c
-@@ -311,42 +311,42 @@ ATIProcessOptions
- 
-     (void)memcpy(PublicOption, ATIPublicOptions, ATIPublicOptionSize);
- 
--#   define ProbeSparse   PublicOption[ATI_OPTION_PROBE_SPARSE].value.bool
--#   define Accel         PublicOption[ATI_OPTION_ACCEL].value.bool
--#   define BIOSDisplay   PrivateOption[ATI_OPTION_BIOS_DISPLAY].value.bool
--#   define Blend         PrivateOption[ATI_OPTION_BLEND].value.bool
--#   define CRTDisplay    PublicOption[ATI_OPTION_CRT_DISPLAY].value.bool
--#   define CRTScreen     PrivateOption[ATI_OPTION_CRT_SCREEN].value.bool
--#   define CSync         PublicOption[ATI_OPTION_CSYNC].value.bool
--#   define Devel         PrivateOption[ATI_OPTION_DEVEL].value.bool
--#   define HWCursor      PublicOption[ATI_OPTION_HWCURSOR].value.bool
-+#   define ProbeSparse   PublicOption[ATI_OPTION_PROBE_SPARSE].value.boolean
-+#   define Accel         PublicOption[ATI_OPTION_ACCEL].value.boolean
-+#   define BIOSDisplay   PrivateOption[ATI_OPTION_BIOS_DISPLAY].value.boolean
-+#   define Blend         PrivateOption[ATI_OPTION_BLEND].value.boolean
-+#   define CRTDisplay    PublicOption[ATI_OPTION_CRT_DISPLAY].value.boolean
-+#   define CRTScreen     PrivateOption[ATI_OPTION_CRT_SCREEN].value.boolean
-+#   define CSync         PublicOption[ATI_OPTION_CSYNC].value.boolean
-+#   define Devel         PrivateOption[ATI_OPTION_DEVEL].value.boolean
-+#   define HWCursor      PublicOption[ATI_OPTION_HWCURSOR].value.boolean
- 
- #ifdef XF86DRI_DEVEL
- 
--#   define IsPCI       PublicOption[ATI_OPTION_IS_PCI].value.bool
-+#   define IsPCI       PublicOption[ATI_OPTION_IS_PCI].value.boolean
- #   define DMAMode     PublicOption[ATI_OPTION_DMA_MODE].value.str
- #   define AGPMode     PublicOption[ATI_OPTION_AGP_MODE].value.num
- #   define AGPSize     PublicOption[ATI_OPTION_AGP_SIZE].value.num
--#   define LocalTex    PublicOption[ATI_OPTION_LOCAL_TEXTURES].value.bool
-+#   define LocalTex    PublicOption[ATI_OPTION_LOCAL_TEXTURES].value.boolean
- #   define BufferSize  PublicOption[ATI_OPTION_BUFFER_SIZE].value.num
- 
- #endif /* XF86DRI_DEVEL */
- 
- #ifdef TV_OUT
- 
--#   define TvOut        PublicOption[ATI_OPTION_TV_OUT].value.bool
-+#   define TvOut        PublicOption[ATI_OPTION_TV_OUT].value.boolean
- #   define TvStd        PublicOption[ATI_OPTION_TV_STD].value.str
- 
- #endif /* TV_OUT */
- 
--#   define CacheMMIO     PublicOption[ATI_OPTION_MMIO_CACHE].value.bool
--#   define TestCacheMMIO PublicOption[ATI_OPTION_TEST_MMIO_CACHE].value.bool
--#   define PanelDisplay  PublicOption[ATI_OPTION_PANEL_DISPLAY].value.bool
--#   define ShadowFB      PublicOption[ATI_OPTION_SHADOW_FB].value.bool
--#   define SWCursor      PublicOption[ATI_OPTION_SWCURSOR].value.bool
-+#   define CacheMMIO     PublicOption[ATI_OPTION_MMIO_CACHE].value.boolean
-+#   define TestCacheMMIO PublicOption[ATI_OPTION_TEST_MMIO_CACHE].value.boolean
-+#   define PanelDisplay  PublicOption[ATI_OPTION_PANEL_DISPLAY].value.boolean
-+#   define ShadowFB      PublicOption[ATI_OPTION_SHADOW_FB].value.boolean
-+#   define SWCursor      PublicOption[ATI_OPTION_SWCURSOR].value.boolean
- #   define AccelMethod   PublicOption[ATI_OPTION_ACCELMETHOD].value.str
--#   define RenderAccel   PublicOption[ATI_OPTION_RENDER_ACCEL].value.bool
--#   define LCDSync       PrivateOption[ATI_OPTION_LCDSYNC].value.bool
-+#   define RenderAccel   PublicOption[ATI_OPTION_RENDER_ACCEL].value.boolean
-+#   define LCDSync       PrivateOption[ATI_OPTION_LCDSYNC].value.boolean
- 
- #   define ReferenceClock \
-         PublicOption[ATI_OPTION_REFERENCE_CLOCK].value.freq.freq
--- 
-2.33.1
-
diff --git a/gnu/packages/patches/xf86-video-mach64-glibc-2.20.patch b/gnu/packages/patches/xf86-video-mach64-glibc-2.20.patch
deleted file mode 100644
index 7fb1452c20..0000000000
--- a/gnu/packages/patches/xf86-video-mach64-glibc-2.20.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Fix test compilation with exa.h in configure when using glibc 2.20.
-Inspired by a patch by Peter Hutterer <peter.hutterer@who-t.net>.
-See <https://raw.githubusercontent.com/openembedded/oe-core/master/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/always_include_xorg_server.h.patch>.
-
---- xf86-video-mach64-6.9.4/configure.~1~	2012-12-20 01:16:10.000000000 -0500
-+++ xf86-video-mach64-6.9.4/configure	2014-12-19 02:48:18.040097554 -0500
-@@ -18370,7 +18370,9 @@
- 
-         SAVE_CPPFLAGS="$CPPFLAGS"
-         CPPFLAGS="$CPPFLAGS $XORG_CFLAGS"
--        ac_fn_c_check_header_mongrel "$LINENO" "exa.h" "ac_cv_header_exa_h" "$ac_includes_default"
-+        ac_fn_c_check_header_mongrel "$LINENO" "exa.h" "ac_cv_header_exa_h" "$ac_includes_default
-+#include <xorg-server.h>
-+"
- if test "x$ac_cv_header_exa_h" = xyes; then :
-   have_exa_h="yes"
- else
diff --git a/gnu/packages/patches/xnnpack-system-libraries.patch b/gnu/packages/patches/xnnpack-system-libraries.patch
index ed4a5d93d3..bc9225e927 100644
--- a/gnu/packages/patches/xnnpack-system-libraries.patch
+++ b/gnu/packages/patches/xnnpack-system-libraries.patch
@@ -4,19 +4,20 @@ would install googletest's and googlebenchmark's libraries and headers).
 
 diff --git a/CMakeLists.txt b/CMakeLists.txt
 index 177b98d5..937385c3 100755
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -4972,9 +4972,6 @@ IF(NOT TARGET pthreadpool)
+--- CMakeLists.txt	2022-07-06 22:35:09.748104656 +0200
++++ CMakeLists.txt	2022-07-06 22:47:34.504666953 +0200
+@@ -6608,10 +6608,6 @@
    ENDIF()
  ENDIF()
  TARGET_LINK_LIBRARIES(XNNPACK PUBLIC pthreadpool)
 -TARGET_LINK_LIBRARIES(all_microkernels PRIVATE pthreadpool)
--TARGET_LINK_LIBRARIES(packing PRIVATE pthreadpool)
 -TARGET_LINK_LIBRARIES(indirection PRIVATE pthreadpool)
+-TARGET_LINK_LIBRARIES(jit PRIVATE pthreadpool)
+-TARGET_LINK_LIBRARIES(packing PRIVATE pthreadpool)
  
  # ---[ Configure FXdiv
  IF(NOT TARGET fxdiv)
-@@ -4993,9 +4990,6 @@ IF(NOT TARGET fxdiv)
+@@ -6630,9 +6626,6 @@
      SET_PROPERTY(TARGET fxdiv PROPERTY LINKER_LANGUAGE C)
    ENDIF()
  ENDIF()
@@ -26,16 +27,18 @@ index 177b98d5..937385c3 100755
  
  # ---[ Configure FP16
  IF(NOT TARGET fp16)
-@@ -5014,8 +5008,6 @@ IF(NOT TARGET fp16)
+@@ -6651,10 +6644,6 @@
      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(packing PRIVATE fp16)
+-TARGET_LINK_LIBRARIES(indirection PRIVATE fp16)
  
  INSTALL(TARGETS XNNPACK
      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-@@ -5062,7 +5054,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -6705,7 +6694,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS NO)
    TARGET_INCLUDE_DIRECTORIES(add-nd-test PRIVATE src test)
@@ -44,7 +47,25 @@ index 177b98d5..937385c3 100755
    ADD_TEST(add-nd-test add-nd-test)
  
    ADD_EXECUTABLE(argmax-pooling-nhwc-test test/argmax-pooling-nhwc.cc)
-@@ -5134,7 +5126,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -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)
@@ -53,7 +74,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(convolution-nhwc-test convolution-nhwc-test)
  
    ADD_EXECUTABLE(convolution-nchw-test test/convolution-nchw.cc)
-@@ -5143,7 +5135,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -6795,7 +6784,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(convolution-nchw-test PRIVATE src test)
@@ -62,7 +83,16 @@ index 177b98d5..937385c3 100755
    ADD_TEST(convolution-nchw-test convolution-nchw-test)
  
    ADD_EXECUTABLE(copy-nc-test test/copy-nc.cc)
-@@ -5188,7 +5180,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -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)
@@ -71,7 +101,16 @@ index 177b98d5..937385c3 100755
    ADD_TEST(divide-nd-test divide-nd-test)
  
    ADD_EXECUTABLE(elu-nc-test test/elu-nc.cc)
-@@ -5224,7 +5216,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -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)
@@ -80,7 +119,7 @@ index 177b98d5..937385c3 100755
    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)
-@@ -5233,7 +5225,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -6885,7 +6874,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS NO)
    TARGET_INCLUDE_DIRECTORIES(global-average-pooling-ncw-test PRIVATE src test)
@@ -89,7 +128,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(global-average-pooling-ncw-test global-average-pooling-ncw-test)
  
    ADD_EXECUTABLE(hardswish-nc-test test/hardswish-nc.cc)
-@@ -5242,7 +5234,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -6894,7 +6883,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS NO)
    TARGET_INCLUDE_DIRECTORIES(hardswish-nc-test PRIVATE src test)
@@ -98,7 +137,25 @@ index 177b98d5..937385c3 100755
    ADD_TEST(hardswish-nc-test hardswish-nc-test)
  
    ADD_EXECUTABLE(leaky-relu-nc-test test/leaky-relu-nc.cc)
-@@ -5269,7 +5261,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -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)
@@ -107,7 +164,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(maximum-nd-test maximum-nd-test)
  
    ADD_EXECUTABLE(minimum-nd-test test/minimum-nd.cc)
-@@ -5278,7 +5270,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -6930,7 +6919,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS NO)
    TARGET_INCLUDE_DIRECTORIES(minimum-nd-test PRIVATE src test)
@@ -116,7 +173,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(minimum-nd-test minimum-nd-test)
  
    ADD_EXECUTABLE(multiply-nd-test test/multiply-nd.cc)
-@@ -5287,7 +5279,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -6939,7 +6928,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS NO)
    TARGET_INCLUDE_DIRECTORIES(multiply-nd-test PRIVATE src test)
@@ -125,16 +182,34 @@ index 177b98d5..937385c3 100755
    ADD_TEST(multiply-nd-test multiply-nd-test)
  
    ADD_EXECUTABLE(negate-nc-test test/negate-nc.cc)
-@@ -5368,7 +5360,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -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(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(squared-difference-nd-test squared-difference-nd-test)
+   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(subtract-nd-test test/subtract-nd.cc)
-@@ -5377,7 +5369,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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)
@@ -142,8 +217,17 @@ index 177b98d5..937385c3 100755
 +  TARGET_LINK_LIBRARIES(subtract-nd-test PRIVATE XNNPACK gtest gtest_main)
    ADD_TEST(subtract-nd-test subtract-nd-test)
  
-   ADD_EXECUTABLE(truncation-nc-test test/truncation-nc.cc)
-@@ -5423,7 +5415,7 @@ IF(XNNPACK_BUILD_TESTS)
+   ADD_EXECUTABLE(tanh-nc-test test/tanh-nc.cc)
+@@ -7084,7 +7073,7 @@
+     CXX_STANDARD_REQUIRED YES
+     CXX_EXTENSIONS YES)
+   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)
@@ -152,7 +236,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -5432,7 +5424,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7102,7 +7091,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f16-gavgpool-minmax-test PRIVATE include src test)
@@ -161,25 +245,43 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -5441,7 +5433,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7111,7 +7100,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    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)
-+  TARGET_LINK_LIBRARIES(f16-gemm-minmax-test PRIVATE cpuinfo gtest gtest_main)
+-  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_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>)
-@@ -5450,7 +5442,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7129,7 +7118,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    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)
-+  TARGET_LINK_LIBRARIES(f16-igemm-minmax-test PRIVATE cpuinfo gtest gtest_main)
+-  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_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>)
-@@ -5459,7 +5451,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7147,7 +7136,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f16-spmm-minmax-test PRIVATE include src test)
@@ -188,7 +290,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -5468,7 +5460,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7156,7 +7145,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f16-vadd-minmax-test PRIVATE include src test)
@@ -197,7 +299,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -5477,7 +5469,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7165,7 +7154,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f16-vaddc-minmax-test PRIVATE include src test)
@@ -206,16 +308,25 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f16-vaddc-minmax-test f16-vaddc-minmax-test)
  
    ADD_EXECUTABLE(f16-vclamp-test test/f16-vclamp.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5486,7 +5478,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7174,7 +7163,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    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_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>)
-@@ -5504,7 +5496,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7183,7 +7172,7 @@
+     CXX_STANDARD_REQUIRED YES
+     CXX_EXTENSIONS YES)
+   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_INCLUDE_DIRECTORIES(f16-vdivc-minmax-test PRIVATE include src test)
@@ -224,7 +335,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -5513,7 +5505,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7201,7 +7190,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f16-vrdivc-minmax-test PRIVATE include src test)
@@ -233,7 +344,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f16-vrdivc-minmax-test f16-vrdivc-minmax-test)
  
    ADD_EXECUTABLE(f16-vhswish-test test/f16-vhswish.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5522,7 +5514,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7210,7 +7199,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f16-vhswish-test PRIVATE include src test)
@@ -241,8 +352,17 @@ index 177b98d5..937385c3 100755
 +  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_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>)
-@@ -5531,7 +5523,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7228,7 +7217,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f16-vmax-test PRIVATE include src test)
@@ -251,7 +371,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f16-vmax-test f16-vmax-test)
  
    ADD_EXECUTABLE(f16-vmaxc-test test/f16-vmaxc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5540,7 +5532,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7237,7 +7226,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f16-vmaxc-test PRIVATE include src test)
@@ -260,7 +380,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f16-vmaxc-test f16-vmaxc-test)
  
    ADD_EXECUTABLE(f16-vmin-test test/f16-vmin.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5549,7 +5541,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7246,7 +7235,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f16-vmin-test PRIVATE include src test)
@@ -269,7 +389,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f16-vmin-test f16-vmin-test)
  
    ADD_EXECUTABLE(f16-vminc-test test/f16-vminc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5558,7 +5550,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7255,7 +7244,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f16-vminc-test PRIVATE include src test)
@@ -278,7 +398,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f16-vminc-test f16-vminc-test)
  
    ADD_EXECUTABLE(f16-vmul-minmax-test test/f16-vmul-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5567,7 +5559,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7264,7 +7253,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f16-vmul-minmax-test PRIVATE include src test)
@@ -287,7 +407,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -5576,7 +5568,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7273,7 +7262,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f16-vmulc-minmax-test PRIVATE include src test)
@@ -296,7 +416,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -5585,7 +5577,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7282,7 +7271,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f16-vmulcaddc-minmax-test PRIVATE include src test)
@@ -305,7 +425,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f16-vmulcaddc-minmax-test f16-vmulcaddc-minmax-test)
  
    ADD_EXECUTABLE(f16-prelu-test test/f16-prelu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5594,7 +5586,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7291,7 +7280,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f16-prelu-test PRIVATE include src test)
@@ -314,7 +434,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f16-prelu-test f16-prelu-test)
  
    ADD_EXECUTABLE(f16-vsub-minmax-test test/f16-vsub-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5603,7 +5595,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7300,7 +7289,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f16-vsub-minmax-test PRIVATE include src test)
@@ -323,7 +443,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -5612,7 +5604,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7309,7 +7298,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f16-vsubc-minmax-test PRIVATE include src test)
@@ -332,7 +452,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -5621,7 +5613,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7318,7 +7307,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f16-vrsubc-minmax-test PRIVATE include src test)
@@ -341,7 +461,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f16-vrsubc-minmax-test f16-vrsubc-minmax-test)
  
    ADD_EXECUTABLE(f32-argmaxpool-test test/f32-argmaxpool.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5630,7 +5622,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7327,7 +7316,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-argmaxpool-test PRIVATE include src test)
@@ -350,7 +470,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-argmaxpool-test f32-argmaxpool-test)
  
    ADD_EXECUTABLE(f32-avgpool-minmax-test test/f32-avgpool-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5639,7 +5631,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7336,7 +7325,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-avgpool-minmax-test PRIVATE include src test)
@@ -359,7 +479,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -5648,7 +5640,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7345,7 +7334,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-conv-hwc-test PRIVATE include src test)
@@ -368,7 +488,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -5657,7 +5649,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7354,7 +7343,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-conv-hwc2chw-test PRIVATE include src test)
@@ -377,7 +497,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -5666,7 +5658,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7363,7 +7352,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-dwconv-test PRIVATE include src test)
@@ -386,7 +506,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-dwconv-test f32-dwconv-test)
  
    ADD_EXECUTABLE(f32-dwconv2d-chw-test test/f32-dwconv2d-chw.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5675,7 +5667,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7372,7 +7361,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-dwconv2d-chw-test PRIVATE include src test)
@@ -395,7 +515,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -5684,7 +5676,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7381,7 +7370,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-dwconv-minmax-test PRIVATE include src test)
@@ -403,8 +523,35 @@ index 177b98d5..937385c3 100755
 +  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_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_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_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>)
-@@ -5693,7 +5685,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7417,7 +7406,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-gavgpool-cw-test PRIVATE include src test)
@@ -413,7 +560,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -5702,7 +5694,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7426,7 +7415,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-gavgpool-minmax-test PRIVATE include src test)
@@ -421,44 +568,44 @@ index 177b98d5..937385c3 100755
 +  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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -5711,7 +5703,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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)
-+  TARGET_LINK_LIBRARIES(f32-gemm-test PRIVATE cpuinfo gtest gtest_main)
+-  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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -5720,7 +5712,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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)
-+  TARGET_LINK_LIBRARIES(f32-gemm-relu-test PRIVATE cpuinfo gtest gtest_main)
+-  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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -5729,7 +5721,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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)
-+  TARGET_LINK_LIBRARIES(f32-gemm-minmax-test PRIVATE cpuinfo gtest gtest_main)
+-  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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -5738,7 +5730,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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)
-+  TARGET_LINK_LIBRARIES(f32-gemminc-minmax-test PRIVATE cpuinfo gtest gtest_main)
+-  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>)
-@@ -5747,7 +5739,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7471,7 +7460,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-ibilinear-test PRIVATE include src test)
@@ -467,7 +614,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-ibilinear-test f32-ibilinear-test)
  
    ADD_EXECUTABLE(f32-ibilinear-chw-test test/f32-ibilinear-chw.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5756,7 +5748,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7480,7 +7469,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-ibilinear-chw-test PRIVATE include src test)
@@ -475,35 +622,35 @@ index 177b98d5..937385c3 100755
 +  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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -5765,7 +5757,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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)
-+  TARGET_LINK_LIBRARIES(f32-igemm-test PRIVATE cpuinfo gtest gtest_main)
+-  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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -5774,7 +5766,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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)
-+  TARGET_LINK_LIBRARIES(f32-igemm-relu-test PRIVATE cpuinfo gtest gtest_main)
+-  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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -5787,7 +5779,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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)
-+  TARGET_LINK_LIBRARIES(f32-igemm-minmax-test PRIVATE cpuinfo gtest gtest_main)
+-  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>)
-@@ -5796,7 +5788,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7520,7 +7509,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-maxpool-minmax-test PRIVATE include src test)
@@ -512,7 +659,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -5805,7 +5797,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7529,7 +7518,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-pavgpool-minmax-test PRIVATE include src test)
@@ -521,16 +668,16 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -5814,7 +5806,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -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)
-+  TARGET_LINK_LIBRARIES(f32-ppmm-minmax-test PRIVATE cpuinfo gtest gtest_main)
+-  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>)
-@@ -5823,7 +5815,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7547,7 +7536,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-prelu-test PRIVATE include src test)
@@ -539,7 +686,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-prelu-test f32-prelu-test)
  
    ADD_EXECUTABLE(f32-raddexpminusmax-test test/f32-raddexpminusmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5832,7 +5824,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7556,7 +7545,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-raddexpminusmax-test PRIVATE include src test)
@@ -548,7 +695,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-raddexpminusmax-test f32-raddexpminusmax-test)
  
    ADD_EXECUTABLE(f32-raddextexp-test test/f32-raddextexp.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5841,7 +5833,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7565,7 +7554,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-raddextexp-test PRIVATE include src test)
@@ -557,7 +704,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-raddextexp-test f32-raddextexp-test)
  
    ADD_EXECUTABLE(f32-raddstoreexpminusmax-test test/f32-raddstoreexpminusmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5850,7 +5842,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7574,7 +7563,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-raddstoreexpminusmax-test PRIVATE include src test)
@@ -566,7 +713,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-raddstoreexpminusmax-test f32-raddstoreexpminusmax-test)
  
    ADD_EXECUTABLE(f32-rmax-test test/f32-rmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5859,7 +5851,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7583,7 +7572,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-rmax-test PRIVATE include src test)
@@ -575,7 +722,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-rmax-test f32-rmax-test)
  
    ADD_EXECUTABLE(f32-spmm-minmax-test test/f32-spmm-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5868,7 +5860,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7592,7 +7581,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-spmm-minmax-test PRIVATE include src test)
@@ -584,7 +731,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-spmm-minmax-test f32-spmm-minmax-test)
  
    ADD_EXECUTABLE(f32-vabs-test test/f32-vabs.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5877,7 +5869,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7601,7 +7590,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vabs-test PRIVATE include src test)
@@ -593,7 +740,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vabs-test f32-vabs-test)
  
    ADD_EXECUTABLE(f32-vadd-test test/f32-vadd.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5886,7 +5878,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7610,7 +7599,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vadd-test PRIVATE include src test)
@@ -602,7 +749,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vadd-test f32-vadd-test)
  
    ADD_EXECUTABLE(f32-vadd-minmax-test test/f32-vadd-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5895,7 +5887,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7619,7 +7608,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vadd-minmax-test PRIVATE include src test)
@@ -611,7 +758,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -5904,7 +5896,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7628,7 +7617,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vadd-relu-test PRIVATE include src test)
@@ -620,7 +767,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vadd-relu-test f32-vadd-relu-test)
  
    ADD_EXECUTABLE(f32-vaddc-test test/f32-vaddc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5913,7 +5905,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7637,7 +7626,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vaddc-test PRIVATE include src test)
@@ -629,7 +776,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vaddc-test f32-vaddc-test)
  
    ADD_EXECUTABLE(f32-vaddc-minmax-test test/f32-vaddc-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5922,7 +5914,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7646,7 +7635,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vaddc-minmax-test PRIVATE include src test)
@@ -638,7 +785,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -5931,7 +5923,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7655,7 +7644,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vaddc-relu-test PRIVATE include src test)
@@ -647,7 +794,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vaddc-relu-test f32-vaddc-relu-test)
  
    ADD_EXECUTABLE(f32-vclamp-test test/f32-vclamp.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5940,7 +5932,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7664,7 +7653,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vclamp-test PRIVATE include src test)
@@ -656,7 +803,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vclamp-test f32-vclamp-test)
  
    ADD_EXECUTABLE(f32-vhswish-test test/f32-vhswish.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5949,7 +5941,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7673,7 +7662,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vhswish-test PRIVATE include src test)
@@ -665,7 +812,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vhswish-test f32-vhswish-test)
  
    ADD_EXECUTABLE(f32-vdiv-test test/f32-vdiv.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5958,7 +5950,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7682,7 +7671,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vdiv-test PRIVATE include src test)
@@ -674,7 +821,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vdiv-test f32-vdiv-test)
  
    ADD_EXECUTABLE(f32-vdiv-minmax-test test/f32-vdiv-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5967,7 +5959,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7691,7 +7680,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vdiv-minmax-test PRIVATE include src test)
@@ -683,7 +830,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -5976,7 +5968,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7700,7 +7689,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vdiv-relu-test PRIVATE include src test)
@@ -692,7 +839,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vdiv-relu-test f32-vdiv-relu-test)
  
    ADD_EXECUTABLE(f32-vdivc-test test/f32-vdivc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5985,7 +5977,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7709,7 +7698,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vdivc-test PRIVATE include src test)
@@ -701,7 +848,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vdivc-test f32-vdivc-test)
  
    ADD_EXECUTABLE(f32-vdivc-minmax-test test/f32-vdivc-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -5994,7 +5986,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7718,7 +7707,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vdivc-minmax-test PRIVATE include src test)
@@ -710,7 +857,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -6003,7 +5995,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7727,7 +7716,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vdivc-relu-test PRIVATE include src test)
@@ -719,7 +866,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vdivc-relu-test f32-vdivc-relu-test)
  
    ADD_EXECUTABLE(f32-vrdivc-test test/f32-vrdivc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6012,7 +6004,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7736,7 +7725,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vrdivc-test PRIVATE include src test)
@@ -728,7 +875,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vrdivc-test f32-vrdivc-test)
  
    ADD_EXECUTABLE(f32-vrdivc-minmax-test test/f32-vrdivc-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6021,7 +6013,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7745,7 +7734,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vrdivc-minmax-test PRIVATE include src test)
@@ -737,7 +884,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -6030,7 +6022,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7754,7 +7743,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vrdivc-relu-test PRIVATE include src test)
@@ -746,7 +893,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vrdivc-relu-test f32-vrdivc-relu-test)
  
    ADD_EXECUTABLE(f32-velu-test test/f32-velu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6039,7 +6031,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7763,7 +7752,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-velu-test PRIVATE include src test)
@@ -755,7 +902,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-velu-test f32-velu-test)
  
    ADD_EXECUTABLE(f32-vlrelu-test test/f32-vlrelu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6048,7 +6040,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7772,7 +7761,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vlrelu-test PRIVATE include src test)
@@ -764,7 +911,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vlrelu-test f32-vlrelu-test)
  
    ADD_EXECUTABLE(f32-vmax-test test/f32-vmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6057,7 +6049,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7781,7 +7770,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vmax-test PRIVATE include src test)
@@ -773,7 +920,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vmax-test f32-vmax-test)
  
    ADD_EXECUTABLE(f32-vmaxc-test test/f32-vmaxc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6066,7 +6058,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7790,7 +7779,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vmaxc-test PRIVATE include src test)
@@ -782,7 +929,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vmaxc-test f32-vmaxc-test)
  
    ADD_EXECUTABLE(f32-vmin-test test/f32-vmin.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6075,7 +6067,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7799,7 +7788,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vmin-test PRIVATE include src test)
@@ -791,7 +938,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vmin-test f32-vmin-test)
  
    ADD_EXECUTABLE(f32-vminc-test test/f32-vminc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6084,7 +6076,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7808,7 +7797,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vminc-test PRIVATE include src test)
@@ -800,7 +947,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vminc-test f32-vminc-test)
  
    ADD_EXECUTABLE(f32-vmul-test test/f32-vmul.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6093,7 +6085,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7817,7 +7806,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vmul-test PRIVATE include src test)
@@ -809,7 +956,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vmul-test f32-vmul-test)
  
    ADD_EXECUTABLE(f32-vmul-minmax-test test/f32-vmul-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6102,7 +6094,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7826,7 +7815,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vmul-minmax-test PRIVATE include src test)
@@ -818,7 +965,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -6111,7 +6103,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7835,7 +7824,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vmul-relu-test PRIVATE include src test)
@@ -827,7 +974,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vmul-relu-test f32-vmul-relu-test)
  
    ADD_EXECUTABLE(f32-vmulc-test test/f32-vmulc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6120,7 +6112,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7844,7 +7833,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vmulc-test PRIVATE include src test)
@@ -836,7 +983,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vmulc-test f32-vmulc-test)
  
    ADD_EXECUTABLE(f32-vmulc-minmax-test test/f32-vmulc-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6129,7 +6121,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7853,7 +7842,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vmulc-minmax-test PRIVATE include src test)
@@ -845,7 +992,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -6138,7 +6130,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7862,7 +7851,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vmulc-relu-test PRIVATE include src test)
@@ -854,7 +1001,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -6147,7 +6139,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7871,7 +7860,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vmulcaddc-minmax-test PRIVATE include src test)
@@ -863,7 +1010,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vmulcaddc-minmax-test f32-vmulcaddc-minmax-test)
  
    ADD_EXECUTABLE(f32-vneg-test test/f32-vneg.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6156,7 +6148,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7880,7 +7869,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vneg-test PRIVATE include src test)
@@ -872,7 +1019,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vneg-test f32-vneg-test)
  
    ADD_EXECUTABLE(f32-vrelu-test test/f32-vrelu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6165,7 +6157,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7889,7 +7878,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vrelu-test PRIVATE include src test)
@@ -881,7 +1028,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vrelu-test f32-vrelu-test)
  
    ADD_EXECUTABLE(f32-vrndne-test test/f32-vrndne.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6174,7 +6166,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7898,7 +7887,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vrndne-test PRIVATE include src test)
@@ -890,7 +1037,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vrndne-test f32-vrndne-test)
  
    ADD_EXECUTABLE(f32-vrndz-test test/f32-vrndz.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6183,7 +6175,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7907,7 +7896,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vrndz-test PRIVATE include src test)
@@ -899,7 +1046,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vrndz-test f32-vrndz-test)
  
    ADD_EXECUTABLE(f32-vrndu-test test/f32-vrndu.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6192,7 +6184,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7916,7 +7905,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vrndu-test PRIVATE include src test)
@@ -908,7 +1055,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vrndu-test f32-vrndu-test)
  
    ADD_EXECUTABLE(f32-vrndd-test test/f32-vrndd.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6201,7 +6193,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7925,7 +7914,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vrndd-test PRIVATE include src test)
@@ -917,7 +1064,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vrndd-test f32-vrndd-test)
  
    ADD_EXECUTABLE(f32-vscaleexpminusmax-test test/f32-vscaleexpminusmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6210,7 +6202,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7934,7 +7923,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vscaleexpminusmax-test PRIVATE include src test)
@@ -926,7 +1073,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vscaleexpminusmax-test f32-vscaleexpminusmax-test)
  
    ADD_EXECUTABLE(f32-vscaleextexp-test test/f32-vscaleextexp.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6219,7 +6211,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7943,7 +7932,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vscaleextexp-test PRIVATE include src test)
@@ -935,7 +1082,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vscaleextexp-test f32-vscaleextexp-test)
  
    ADD_EXECUTABLE(f32-vsigmoid-test test/f32-vsigmoid.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6228,7 +6220,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7952,7 +7941,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vsigmoid-test PRIVATE include src test)
@@ -944,7 +1091,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vsigmoid-test f32-vsigmoid-test)
  
    ADD_EXECUTABLE(f32-vsqr-test test/f32-vsqr.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6237,7 +6229,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7961,7 +7950,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vsqr-test PRIVATE include src test)
@@ -953,7 +1100,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vsqr-test f32-vsqr-test)
  
    ADD_EXECUTABLE(f32-vsqrdiff-test test/f32-vsqrdiff.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6246,7 +6238,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7970,7 +7959,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vsqrdiff-test PRIVATE include src test)
@@ -962,7 +1109,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vsqrdiff-test f32-vsqrdiff-test)
  
    ADD_EXECUTABLE(f32-vsqrdiffc-test test/f32-vsqrdiffc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6255,7 +6247,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7979,7 +7968,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vsqrdiffc-test PRIVATE include src test)
@@ -971,7 +1118,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vsqrdiffc-test f32-vsqrdiffc-test)
  
    ADD_EXECUTABLE(f32-vsqrt-test test/f32-vsqrt.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6264,7 +6256,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7988,7 +7977,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vsqrt-test PRIVATE include src test)
@@ -980,7 +1127,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vsqrt-test f32-vsqrt-test)
  
    ADD_EXECUTABLE(f32-vsub-test test/f32-vsub.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6273,7 +6265,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -7997,7 +7986,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vsub-test PRIVATE include src test)
@@ -989,7 +1136,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vsub-test f32-vsub-test)
  
    ADD_EXECUTABLE(f32-vsub-minmax-test test/f32-vsub-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6282,7 +6274,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8006,7 +7995,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vsub-minmax-test PRIVATE include src test)
@@ -998,7 +1145,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -6291,7 +6283,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8015,7 +8004,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vsub-relu-test PRIVATE include src test)
@@ -1007,7 +1154,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vsub-relu-test f32-vsub-relu-test)
  
    ADD_EXECUTABLE(f32-vsubc-test test/f32-vsubc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6300,7 +6292,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8024,7 +8013,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vsubc-test PRIVATE include src test)
@@ -1016,7 +1163,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vsubc-test f32-vsubc-test)
  
    ADD_EXECUTABLE(f32-vsubc-minmax-test test/f32-vsubc-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6309,7 +6301,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8033,7 +8022,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vsubc-minmax-test PRIVATE include src test)
@@ -1025,7 +1172,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -6318,7 +6310,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8042,7 +8031,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vsubc-relu-test PRIVATE include src test)
@@ -1034,7 +1181,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vsubc-relu-test f32-vsubc-relu-test)
  
    ADD_EXECUTABLE(f32-vrsubc-test test/f32-vrsubc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6327,7 +6319,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8051,7 +8040,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vrsubc-test PRIVATE include src test)
@@ -1043,7 +1190,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(f32-vrsubc-test f32-vrsubc-test)
  
    ADD_EXECUTABLE(f32-vrsubc-minmax-test test/f32-vrsubc-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6336,7 +6328,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8060,7 +8049,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vrsubc-minmax-test PRIVATE include src test)
@@ -1052,7 +1199,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -6345,7 +6337,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8069,7 +8058,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(f32-vrsubc-relu-test PRIVATE include src test)
@@ -1061,7 +1208,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -6354,7 +6346,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8078,7 +8067,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(qc8-dwconv-minmax-fp32-test PRIVATE include src test)
@@ -1069,26 +1216,26 @@ index 177b98d5..937385c3 100755
 +  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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -6363,7 +6355,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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)
-+  TARGET_LINK_LIBRARIES(qc8-gemm-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main)
+-  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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -6372,7 +6364,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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)
-+  TARGET_LINK_LIBRARIES(qc8-igemm-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main)
+-  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>)
-@@ -6381,7 +6373,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8105,7 +8094,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(qs8-dwconv-minmax-fp32-test PRIVATE include src test)
@@ -1096,17 +1243,8 @@ index 177b98d5..937385c3 100755
 +  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-gemmlowp-test test/qs8-dwconv-minmax-gemmlowp.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -6390,7 +6382,7 @@ IF(XNNPACK_BUILD_TESTS)
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qs8-dwconv-minmax-gemmlowp-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-dwconv-minmax-gemmlowp-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-dwconv-minmax-gemmlowp-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qs8-dwconv-minmax-gemmlowp-test qs8-dwconv-minmax-gemmlowp-test)
- 
    ADD_EXECUTABLE(qs8-dwconv-minmax-rndnu-test test/qs8-dwconv-minmax-rndnu.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -6399,7 +6391,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8114,7 +8103,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(qs8-dwconv-minmax-rndnu-test PRIVATE include src test)
@@ -1114,71 +1252,80 @@ index 177b98d5..937385c3 100755
 +  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-gavgpool-minmax-test test/qs8-gavgpool-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6408,7 +6400,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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_INCLUDE_DIRECTORIES(qs8-gavgpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-gavgpool-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-gavgpool-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qs8-gavgpool-test qs8-gavgpool-minmax-test)
+   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-gemm-minmax-fp32-test test/qs8-gemm-minmax-fp32.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -6417,7 +6409,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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_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)
-+  TARGET_LINK_LIBRARIES(qs8-gemm-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qs8-gemm-minmax-fp32-test qs8-gemm-minmax-fp32-test)
+   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-gemm-minmax-gemmlowp-test test/qs8-gemm-minmax-gemmlowp.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -6426,7 +6418,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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_INCLUDE_DIRECTORIES(qs8-gemm-minmax-gemmlowp-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-gemm-minmax-gemmlowp-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-gemm-minmax-gemmlowp-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qs8-gemm-minmax-gemmlowp-test qs8-gemm-minmax-gemmlowp-test)
+   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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -6435,7 +6427,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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)
-+  TARGET_LINK_LIBRARIES(qs8-gemm-minmax-rndnu-test PRIVATE cpuinfo gtest gtest_main)
+-  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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -6444,7 +6436,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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)
-+  TARGET_LINK_LIBRARIES(qs8-igemm-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main)
+-  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-gemmlowp-test test/qs8-igemm-minmax-gemmlowp.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -6453,7 +6445,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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-gemmlowp-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qs8-igemm-minmax-gemmlowp-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qs8-igemm-minmax-gemmlowp-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qs8-igemm-minmax-gemmlowp-test qs8-igemm-minmax-gemmlowp-test)
+   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-igemm-minmax-rndnu-test test/qs8-igemm-minmax-rndnu.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -6462,7 +6454,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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_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)
-+  TARGET_LINK_LIBRARIES(qs8-igemm-minmax-rndnu-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qs8-igemm-minmax-rndnu-test qs8-igemm-minmax-rndnu-test)
+   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>)
-@@ -6471,7 +6463,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8195,7 +8184,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(qs8-vadd-minmax-test PRIVATE include src test)
@@ -1187,7 +1334,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -6480,7 +6472,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8204,7 +8193,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(qs8-vaddc-minmax-test PRIVATE include src test)
@@ -1195,8 +1342,26 @@ index 177b98d5..937385c3 100755
 +  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_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_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>)
-@@ -6489,7 +6481,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8231,7 +8220,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(qu8-avgpool-minmax-test PRIVATE include src test)
@@ -1205,7 +1370,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -6498,7 +6490,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8240,7 +8229,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(qu8-dwconv-minmax-fp32-test PRIVATE include src test)
@@ -1214,7 +1379,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -6507,7 +6499,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8249,7 +8238,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(qu8-dwconv-minmax-rndnu-test PRIVATE include src test)
@@ -1222,71 +1387,71 @@ index 177b98d5..937385c3 100755
 +  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-gavgpool-minmax-test test/qu8-gavgpool-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6516,7 +6508,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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_INCLUDE_DIRECTORIES(qu8-gavgpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-gavgpool-minmax-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-gavgpool-minmax-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qu8-gavgpool-test qu8-gavgpool-minmax-test)
+   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-gemm-minmax-fp32-test test/qu8-gemm-minmax-fp32.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -6525,7 +6517,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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_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)
-+  TARGET_LINK_LIBRARIES(qu8-gemm-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qu8-gemm-minmax-fp32-test qu8-gemm-minmax-fp32-test)
+   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-gemm-minmax-gemmlowp-test test/qu8-gemm-minmax-gemmlowp.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -6534,7 +6526,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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_INCLUDE_DIRECTORIES(qu8-gemm-minmax-gemmlowp-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-gemm-minmax-gemmlowp-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-gemm-minmax-gemmlowp-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qu8-gemm-minmax-gemmlowp-test qu8-gemm-minmax-gemmlowp-test)
+   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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -6543,7 +6535,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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)
-+  TARGET_LINK_LIBRARIES(qu8-gemm-minmax-rndnu-test PRIVATE cpuinfo gtest gtest_main)
+-  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 $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -6552,7 +6544,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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)
-+  TARGET_LINK_LIBRARIES(qu8-igemm-minmax-fp32-test PRIVATE cpuinfo gtest gtest_main)
+-  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-gemmlowp-test test/qu8-igemm-minmax-gemmlowp.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -6561,7 +6553,7 @@ IF(XNNPACK_BUILD_TESTS)
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(qu8-igemm-minmax-gemmlowp-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(qu8-igemm-minmax-gemmlowp-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(qu8-igemm-minmax-gemmlowp-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(qu8-igemm-minmax-gemmlowp-test qu8-igemm-minmax-gemmlowp-test)
- 
-   ADD_EXECUTABLE(qu8-igemm-minmax-rndnu-test test/qu8-igemm-minmax-rndnu.cc $<TARGET_OBJECTS:all_microkernels> $<TARGET_OBJECTS:packing>)
-@@ -6570,7 +6562,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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)
-+  TARGET_LINK_LIBRARIES(qu8-igemm-minmax-rndnu-test PRIVATE cpuinfo gtest gtest_main)
+-  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>)
-@@ -6579,7 +6571,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8321,7 +8310,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(qu8-requantization-test PRIVATE include src test)
@@ -1295,7 +1460,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(qu8-requantization-test qu8-requantization-test)
  
    ADD_EXECUTABLE(qu8-vadd-minmax-test test/qu8-vadd-minmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6588,7 +6580,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8330,7 +8319,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(qu8-vadd-minmax-test PRIVATE include src test)
@@ -1304,7 +1469,7 @@ index 177b98d5..937385c3 100755
    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>)
-@@ -6597,7 +6589,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8339,7 +8328,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(qu8-vaddc-minmax-test PRIVATE include src test)
@@ -1312,8 +1477,71 @@ index 177b98d5..937385c3 100755
 +  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_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_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_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_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_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_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_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>)
-@@ -6606,7 +6598,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8411,7 +8400,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(u8-lut32norm-test PRIVATE include src test)
@@ -1321,8 +1549,17 @@ index 177b98d5..937385c3 100755
 +  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_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>)
-@@ -6615,7 +6607,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8429,7 +8418,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(u8-maxpool-minmax-test PRIVATE include src test)
@@ -1331,7 +1568,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(u8-maxpool-minmax-test u8-maxpool-minmax-test)
  
    ADD_EXECUTABLE(u8-rmax-test test/u8-rmax.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6624,7 +6616,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8438,7 +8427,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(u8-rmax-test PRIVATE include src test)
@@ -1340,7 +1577,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(u8-rmax-test u8-rmax-test)
  
    ADD_EXECUTABLE(u8-vclamp-test test/u8-vclamp.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6633,7 +6625,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8447,7 +8436,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(u8-vclamp-test PRIVATE include src test)
@@ -1348,17 +1585,26 @@ index 177b98d5..937385c3 100755
 +  TARGET_LINK_LIBRARIES(u8-vclamp-test PRIVATE cpuinfo gtest gtest_main)
    ADD_TEST(u8-vclamp-test u8-vclamp-test)
  
-   ADD_EXECUTABLE(x32-fill-test test/x32-fill.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6642,7 +6634,7 @@ IF(XNNPACK_BUILD_TESTS)
+   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(x32-fill-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(x32-fill-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(x32-fill-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(x32-fill-test x32-fill-test)
+   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>)
-@@ -6651,7 +6643,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8474,7 +8463,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(x32-packx-test PRIVATE include src test)
@@ -1366,17 +1612,8 @@ index 177b98d5..937385c3 100755
 +  TARGET_LINK_LIBRARIES(x32-packx-test PRIVATE cpuinfo gtest gtest_main)
    ADD_TEST(x32-packx-test x32-packx-test)
  
-   ADD_EXECUTABLE(x32-pad-test test/x32-pad.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6660,7 +6652,7 @@ IF(XNNPACK_BUILD_TESTS)
-     CXX_STANDARD_REQUIRED YES
-     CXX_EXTENSIONS YES)
-   TARGET_INCLUDE_DIRECTORIES(x32-pad-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(x32-pad-test PRIVATE cpuinfo fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(x32-pad-test PRIVATE cpuinfo gtest gtest_main)
-   ADD_TEST(x32-pad-test x32-pad-test)
- 
    ADD_EXECUTABLE(x32-unpool-test test/x32-unpool.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6669,7 +6661,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8483,7 +8472,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(x32-unpool-test PRIVATE include src test)
@@ -1385,7 +1622,7 @@ index 177b98d5..937385c3 100755
    ADD_TEST(x32-unpool-test x32-unpool-test)
  
    ADD_EXECUTABLE(x32-depthtospace2d-chw2hwc-test test/x32-depthtospace2d-chw2hwc.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6678,7 +6670,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8492,7 +8481,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(x32-depthtospace2d-chw2hwc-test PRIVATE include src test)
@@ -1393,8 +1630,17 @@ index 177b98d5..937385c3 100755
 +  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>)
-@@ -6687,7 +6679,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8510,7 +8499,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(x32-zip-test PRIVATE include src test)
@@ -1402,8 +1648,17 @@ index 177b98d5..937385c3 100755
 +  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_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>)
-@@ -6696,7 +6688,7 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8528,7 +8517,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    TARGET_INCLUDE_DIRECTORIES(x8-lut-test PRIVATE include src test)
@@ -1412,29 +1667,70 @@ index 177b98d5..937385c3 100755
    ADD_TEST(x8-lut-test x8-lut-test)
  
    ADD_EXECUTABLE(x8-zip-test test/x8-zip.cc $<TARGET_OBJECTS:all_microkernels>)
-@@ -6705,20 +6697,12 @@ IF(XNNPACK_BUILD_TESTS)
+@@ -8537,7 +8526,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS YES)
    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)
- ENDIF()
  
- # ---[ XNNPACK microbenchmarks
- IF(XNNPACK_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()
--
-   ADD_LIBRARY(bench-utils bench/utils.cc)
-   SET_TARGET_PROPERTIES(bench-utils PROPERTIES
-     CXX_STANDARD 11
-@@ -6783,7 +6767,7 @@ IF(XNNPACK_BUILD_BENCHMARKS)
+   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_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_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_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_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_INCLUDE_DIRECTORIES(f32-exp-eval PRIVATE include src)
@@ -1443,7 +1739,7 @@ index 177b98d5..937385c3 100755
  
    ADD_EXECUTABLE(f32-expm1minus-eval eval/f32-expm1minus.cc $<TARGET_OBJECTS:all_microkernels>)
    SET_TARGET_PROPERTIES(f32-expm1minus-eval PROPERTIES
-@@ -6791,7 +6775,7 @@ IF(XNNPACK_BUILD_BENCHMARKS)
+@@ -8722,7 +8711,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS NO)
    TARGET_INCLUDE_DIRECTORIES(f32-expm1minus-eval PRIVATE include src)
@@ -1452,7 +1748,7 @@ index 177b98d5..937385c3 100755
  
    ADD_EXECUTABLE(f32-expminus-eval eval/f32-expminus.cc $<TARGET_OBJECTS:all_microkernels>)
    SET_TARGET_PROPERTIES(f32-expminus-eval PROPERTIES
-@@ -6799,7 +6783,7 @@ IF(XNNPACK_BUILD_BENCHMARKS)
+@@ -8730,7 +8719,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS NO)
    TARGET_INCLUDE_DIRECTORIES(f32-expminus-eval PRIVATE include src)
@@ -1461,7 +1757,7 @@ index 177b98d5..937385c3 100755
  
    ADD_EXECUTABLE(f32-roundne-eval eval/f32-roundne.cc $<TARGET_OBJECTS:all_microkernels>)
    SET_TARGET_PROPERTIES(f32-roundne-eval PROPERTIES
-@@ -6807,7 +6791,7 @@ IF(XNNPACK_BUILD_BENCHMARKS)
+@@ -8738,7 +8727,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS NO)
    TARGET_INCLUDE_DIRECTORIES(f32-roundne-eval PRIVATE include src)
@@ -1470,7 +1766,7 @@ index 177b98d5..937385c3 100755
  
    ADD_EXECUTABLE(f32-roundd-eval eval/f32-roundd.cc $<TARGET_OBJECTS:all_microkernels>)
    SET_TARGET_PROPERTIES(f32-roundd-eval PROPERTIES
-@@ -6815,7 +6799,7 @@ IF(XNNPACK_BUILD_BENCHMARKS)
+@@ -8746,7 +8735,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS NO)
    TARGET_INCLUDE_DIRECTORIES(f32-roundd-eval PRIVATE include src)
@@ -1479,7 +1775,7 @@ index 177b98d5..937385c3 100755
  
    ADD_EXECUTABLE(f32-roundu-eval eval/f32-roundu.cc $<TARGET_OBJECTS:all_microkernels>)
    SET_TARGET_PROPERTIES(f32-roundu-eval PROPERTIES
-@@ -6823,7 +6807,7 @@ IF(XNNPACK_BUILD_BENCHMARKS)
+@@ -8754,7 +8743,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS NO)
    TARGET_INCLUDE_DIRECTORIES(f32-roundu-eval PRIVATE include src)
@@ -1488,7 +1784,7 @@ index 177b98d5..937385c3 100755
  
    ADD_EXECUTABLE(f32-roundz-eval eval/f32-roundz.cc $<TARGET_OBJECTS:all_microkernels>)
    SET_TARGET_PROPERTIES(f32-roundz-eval PROPERTIES
-@@ -6831,7 +6815,7 @@ IF(XNNPACK_BUILD_BENCHMARKS)
+@@ -8762,7 +8751,7 @@
      CXX_STANDARD_REQUIRED YES
      CXX_EXTENSIONS NO)
    TARGET_INCLUDE_DIRECTORIES(f32-roundz-eval PRIVATE include src)