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

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

Package: guix-patches; Reported by: David Elsing <david.elsing@HIDDEN>; Keywords: patch; Done: Ludovic Courtès <ludo@HIDDEN>; Maintainer for guix-patches is guix-patches@HIDDEN.
bug closed, send any further explanations to 69591 <at> debbugs.gnu.org and David Elsing <david.elsing@HIDDEN> Request was from Ludovic Courtès <ludo@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

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


Received: (at 69591) by debbugs.gnu.org; 26 Jun 2024 22:21:52 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jun 26 18:21:52 2024
Received: from localhost ([127.0.0.1]:40541 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sMb1T-00038P-PD
	for submit <at> debbugs.gnu.org; Wed, 26 Jun 2024 18:21:51 -0400
Received: from eggs.gnu.org ([209.51.188.92]:56656)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>)
 id 1sMb1R-000388-K5; Wed, 26 Jun 2024 18:21:50 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ludo@HIDDEN>)
 id 1sMb1I-00028e-Rg; Wed, 26 Jun 2024 18:21:40 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To:
 From; bh=/ChmS6UqA23kmUZRevTj3GOLd3zM5e/1SixyyZyw2bs=; b=i4kPTYH/eVxoTmW80UKj
 GOxG97PtPDs+/NEro9NvFKli9YjbYsFfxzY7pJ0BovhWGa9FvsbHaeeVGRfBzF2Jer4gyyY8h3ObN
 wINXtGZGtHs+J3xC+rrHCoNCzKG9ElU5jn4yovf0A2yW6za89GBN7lAOemQSqHrzF+kRiTAmBYmco
 885WqeYJ7lQ7kETund/8KoIASUjWTXx6Ajl6Huy7VyhvjRlwHN9DoV+x0YelAGC1pUREVVsqODzJx
 9TdDxbgD9bo56eJ1HiEZtRRxzhJLeuQoTNCGHixUYEIjvX0mmmQLkCKaVDN4+AQII9fqcAmg6/bcj
 D1J00YPCS6J7bQ==;
From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN>
To: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Subject: Re: [bug#71739] [bug#69591] [PATCH] services: shepherd: Support
 =?utf-8?B?4oCcZnJlZS1mb3Jt4oCd?= services.
In-Reply-To: <87pls5btae.fsf@HIDDEN> (Maxim Cournoyer's message of "Mon, 24
 Jun 2024 23:22:33 -0400")
References: <20240306193725.17463-1-david.elsing@HIDDEN>
 <7501182c5831ba86d4e600967fb944e9e1124352.1719066498.git.ludo@HIDDEN>
 <8734p3b2c6.fsf@HIDDEN> <87pls6ij5b.fsf@HIDDEN>
 <87pls5btae.fsf@HIDDEN>
Date: Thu, 27 Jun 2024 00:21:37 +0200
Message-ID: <87jzib9wge.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: 71739-done <at> debbugs.gnu.org, 69591 <at> debbugs.gnu.org,
 David Elsing <david.elsing@HIDDEN>, Matthew Trzcinski <matt@HIDDEN>,
 Florian Pelz <pelzflorian@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Maxim Cournoyer <maxim.cournoyer@HIDDEN> skribis:

> Thanks for the extra explanation and example.  The extra flexibility
> sounds good to me!
>
> Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail>

Pushed as 0a220c1599613b7bee38c0bf8bc1bb3e9cbcaeb8, thanks!

Ludo=E2=80=99.




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

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


Received: (at 69591) by debbugs.gnu.org; 25 Jun 2024 03:23:44 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 24 23:23:44 2024
Received: from localhost ([127.0.0.1]:35918 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sLwmV-0007b7-W4
	for submit <at> debbugs.gnu.org; Mon, 24 Jun 2024 23:23:44 -0400
Received: from mail-qk1-f177.google.com ([209.85.222.177]:46540)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <maxim.cournoyer@HIDDEN>)
 id 1sLwmU-0007ap-8w; Mon, 24 Jun 2024 23:23:43 -0400
Received: by mail-qk1-f177.google.com with SMTP id
 af79cd13be357-79767180a15so295732285a.1; 
 Mon, 24 Jun 2024 20:23:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1719285755; x=1719890555; darn=debbugs.gnu.org;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=fMN+M8wdKusV7MxVzy7evaRE6EmtyJryOQiCnnh6v5M=;
 b=av2MMosKVG1s299+yf3B3J5pY/H/GoaMPAaUGg1TjAP3jGthXzbTHlGw6FKZJ1tukf
 lzxSFp2ttyARNkTXsB+CON9GdRJ34Ecerd443EQhoiQ+3jOHyr3UfT1RufIy33loESkW
 tKhGvpS9LChtTTWQFxcJ+YTOWsjkm18AyDUJExPmIgMJz0l1k3O6qlIQ9rYcGQld4Quu
 E9bUvslrNRkLDcv2UC3NLqxR7LNfXiuMxPwWDIjxfUE+FM4E4usJ1WB6v22sviUVvjYN
 +sn9FdOK0XBf1z7/MuFXaz4M1tn8tg4zpYg/z1ywTV3paIJfzNVgDAXotS1kmBiKPl1W
 rz+g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1719285755; x=1719890555;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from
 :to:cc:subject:date:message-id:reply-to;
 bh=fMN+M8wdKusV7MxVzy7evaRE6EmtyJryOQiCnnh6v5M=;
 b=j5qhMTbvc4lbFNQtRFnlZ+aontzIjzi/NJw/Cw2EWXCK1sgir5ny5S5cP/lDgxOcGP
 0G2Z5TscCNAzMJqAGZ/60/NAMnVpnfJRCiRDD1DXwg+UC20DJN4S5x2EEGC3o/dUgJrA
 IFY9zl2z7E7LATKZcYn7L+70L1gb4/uk/VBgNis2lRiNNByiDFd8axBHYMxniWhorOWO
 Wd+x67M142Me2q6lLUK+HHR3Oxe5lBOYhFwvImzbdX5InKMFAfuzKDWxuLAznsO+4vMv
 IoDJfl/wnyNWmADHCL3+nu3UgDYlM/mrQ559g1RX2o2hdyZJaoikHZr2QCk+veQZbA3c
 54Fw==
X-Forwarded-Encrypted: i=1;
 AJvYcCXOSkIrKPs7y7WZfOc16eGKTJGv10S4BdAed3aUd+CSSoFKxuouRrPcrKCt22d8uxvKKiNotFEt5+Hvbd2l7Qq3199uGzw=
X-Gm-Message-State: AOJu0Yx1JFTKUIxD490iBVKUxCj+dI0UqZgIa67gPj47RtMGiHKcDz6D
 EC37qH2roA+50kx52biLmJ5Z13PpjDkf0OmUwLFW1I3wa8mazcis
X-Google-Smtp-Source: AGHT+IHiWdHMxdE0JMyvQMgFs+Xi/JUmTJ6wYQhGyhbdaYtmyrrRpgpVGnLqlcvzLRxBirnmUl3aVQ==
X-Received: by 2002:a05:6214:17c8:b0:6b5:6a1:f899 with SMTP id
 6a1803df08f44-6b53bbbece7mr57814806d6.10.1719285755219; 
 Mon, 24 Jun 2024 20:22:35 -0700 (PDT)
Received: from hurd (dsl-141-243.b2b2c.ca. [66.158.141.243])
 by smtp.gmail.com with ESMTPSA id
 6a1803df08f44-6b51ef30e6fsm40321276d6.84.2024.06.24.20.22.33
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 24 Jun 2024 20:22:34 -0700 (PDT)
From: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
To: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Subject: Re: [bug#69591] [PATCH] services: shepherd: Support
 =?utf-8?B?4oCcZnJlZS1mb3Jt4oCd?= services.
In-Reply-To: <87pls6ij5b.fsf@HIDDEN> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?=
 =?utf-8?Q?s?= message of "Mon, 24 Jun 2024 15:07:28 +0200")
References: <20240306193725.17463-1-david.elsing@HIDDEN>
 <7501182c5831ba86d4e600967fb944e9e1124352.1719066498.git.ludo@HIDDEN>
 <8734p3b2c6.fsf@HIDDEN> <87pls6ij5b.fsf@HIDDEN>
Date: Mon, 24 Jun 2024 23:22:33 -0400
Message-ID: <87pls5btae.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 69591
Cc: 71739 <at> debbugs.gnu.org, 69591 <at> debbugs.gnu.org,
 David Elsing <david.elsing@HIDDEN>, Matthew Trzcinski <matt@HIDDEN>,
 Florian Pelz <pelzflorian@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hi Ludovic,

Ludovic Court=C3=A8s <ludo@HIDDEN> writes:

[...]

>> Hm, if free-form is expected to be a built-in procedure provided by
>> Shepherd, should we call it 'built-in' instead of 'free-form' ?
>
> I view it as something more generic: it=E2=80=99s typically, but not just=
, for
> when the service comes from a procedure defined in the Shepherd itself.
>
> Other use case is when as a service author you need more freedom that
> what you get with the =E2=80=98start=E2=80=99 and =E2=80=98stop=E2=80=99 =
fields, like:
>
>   (shepherd-service
>     ;; =E2=80=A6
>     (free-from #~(let ((whatever (spawn-fiber =E2=80=A6)))
>                    (service '(foo) #:start =E2=80=A6))))
>
> It=E2=80=99s probably going to be a relatively marginal use case, but it=
=E2=80=99s good
> to have that extra level of flexibility.
>
> WDYT?

Thanks for the extra explanation and example.  The extra flexibility
sounds good to me!

Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail>

--=20
Thanks,
Maxim




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

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


Received: (at 69591) by debbugs.gnu.org; 24 Jun 2024 13:07:42 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jun 24 09:07:42 2024
Received: from localhost ([127.0.0.1]:57000 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sLjQ6-0002lf-Dm
	for submit <at> debbugs.gnu.org; Mon, 24 Jun 2024 09:07:42 -0400
Received: from eggs.gnu.org ([209.51.188.92]:52782)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>)
 id 1sLjQ4-0002lH-2N; Mon, 24 Jun 2024 09:07:40 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ludo@HIDDEN>)
 id 1sLjPw-0002yD-D7; Mon, 24 Jun 2024 09:07:32 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To:
 From; bh=Uj8AAFv/x/7496ZLBdm7bnUk01say4e0Su/mLQOAs/Q=; b=GVvxH2rUUTgDPW4HE52+
 llPDqCSb2qpAWKtgy00cfJFMEenrz1VqqRn+jqFbmQYE2n/xKPJknsyEDG4UvuHGdvU7R1Esu7/+t
 KgR2GqoXY9j3/6ysljWWAtUb05e0pAD2O6J1IuESFfua1GqceBcUXoIgwtQ92GBTzzCL9GcONejUW
 cyr4GUMPMPRUMkoW2E6BSSobHo8T+T+ljWmmHMM8jc096rMLdBZdZw1QDWnXc0TUzwyLs16NxylCC
 DlGgO4MBwt62YM9rDv6CFxB2b3YiE8s7Fie0BssL8Yq95ZPl7c03xkinWVldoVrZzQcsJBz79BllP
 rYtjE/jde9eQzA==;
From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN>
To: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Subject: Re: [bug#69591] [PATCH] services: shepherd: Support
 =?utf-8?B?4oCcZnJlZS1mb3Jt4oCd?= services.
In-Reply-To: <8734p3b2c6.fsf@HIDDEN> (Maxim Cournoyer's message of "Sun, 23
 Jun 2024 20:40:09 -0400")
References: <20240306193725.17463-1-david.elsing@HIDDEN>
 <7501182c5831ba86d4e600967fb944e9e1124352.1719066498.git.ludo@HIDDEN>
 <8734p3b2c6.fsf@HIDDEN>
X-URL: http://www.fdn.fr/~lcourtes/
X-Revolutionary-Date: Septidi 7 Messidor an 232 de la =?utf-8?Q?R=C3=A9vol?=
 =?utf-8?Q?ution=2C?= jour du Concombre
X-PGP-Key-ID: 0x090B11993D9AEBB5
X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc
X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4  0CFB 090B 1199 3D9A EBB5
X-OS: x86_64-pc-linux-gnu
Date: Mon, 24 Jun 2024 15:07:28 +0200
Message-ID: <87pls6ij5b.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: 71739 <at> debbugs.gnu.org, 69591 <at> debbugs.gnu.org,
 David Elsing <david.elsing@HIDDEN>, Matthew Trzcinski <matt@HIDDEN>,
 Florian Pelz <pelzflorian@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Hi Maxim,

(Cc=E2=80=99ing 71739, which is actually the right one.  :-))

Maxim Cournoyer <maxim.cournoyer@HIDDEN> skribis:

> Ludovic Court=C3=A8s <ludo@HIDDEN> writes:

[...]

>> +@item @code{free-form} (default: @code{#f})
>> +When set, this field replaces the @code{start}, @code{stop}, and
>> +@code{actions} fields.  It is meant to be used when the service
>> +definition comes from some other source, typically the service
>> +collection provided by the Shepherd proper (@pxref{Service Collection,,,
>> +shepherd, The GNU Shepherd Manual}).
>> +
>> +@cindex REPL service, for shepherd
>> +For example, the snippet below defines a service for the Shepherd's
>> +built-in @acronym{REPL, read-eval-print loop} service (@pxref{REPL
>> +Service,,, shepherd, The GNU Shepherd Manual}):
>> +
>> +@lisp
>> +(shepherd-service
>> +  (provision '(repl))
>> +  (modules '((shepherd service repl)))
>> +  (free-form #~(repl-service)))
>> +@end lisp

[...]

> Hm, if free-form is expected to be a built-in procedure provided by
> Shepherd, should we call it 'built-in' instead of 'free-form' ?

I view it as something more generic: it=E2=80=99s typically, but not just, =
for
when the service comes from a procedure defined in the Shepherd itself.

Other use case is when as a service author you need more freedom that
what you get with the =E2=80=98start=E2=80=99 and =E2=80=98stop=E2=80=99 fi=
elds, like:

  (shepherd-service
    ;; =E2=80=A6
    (free-from #~(let ((whatever (spawn-fiber =E2=80=A6)))
                   (service '(foo) #:start =E2=80=A6))))

It=E2=80=99s probably going to be a relatively marginal use case, but it=E2=
=80=99s good
to have that extra level of flexibility.

WDYT?

Thanks!

Ludo=E2=80=99.




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

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


Received: (at 69591) by debbugs.gnu.org; 24 Jun 2024 00:41:19 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 23 20:41:19 2024
Received: from localhost ([127.0.0.1]:58778 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sLXln-0003IN-E4
	for submit <at> debbugs.gnu.org; Sun, 23 Jun 2024 20:41:19 -0400
Received: from mail-qk1-f178.google.com ([209.85.222.178]:44497)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <maxim.cournoyer@HIDDEN>) id 1sLXll-0003Hx-St
 for 69591 <at> debbugs.gnu.org; Sun, 23 Jun 2024 20:41:18 -0400
Received: by mail-qk1-f178.google.com with SMTP id
 af79cd13be357-795502843ccso208036885a.1
 for <69591 <at> debbugs.gnu.org>; Sun, 23 Jun 2024 17:41:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1719189611; x=1719794411; darn=debbugs.gnu.org;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=AcR3DcyjF8FJ5ZGcmkLzNQA9PhgPrrLa/ooy2ukfm0g=;
 b=nVU75qnqs1ERYHMjgszUXavQjEw7MC1D+yRQONCUpsrLnCp5sNaPT4zJPBxYSWYZy8
 gs5cPz948m+5BrO5eJhKaHz+bAnfw98RoP2xBsxC9ZfP0E+OsEENeA+HOrOtnkZ6Z/KD
 4Qvny7XBaZzpj1ORg3dY0dFJJbdgB+TsleojGAdmvpROeQcwS6Q/xTDER254KtMoS04t
 iEKMTYeEQ9GYOSutkv1CfI1Oz8rL9Ro7IcNK7zzcsJ0Xu81GImd1CZ5FSPyijEha0TtW
 Txr0FYmPNw4XR0zvbPU4MGenJg9Mqg7zcKjh5b6X9hxoPY+EcFWRjUfjdcT0/w8Xfv8g
 kLXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1719189611; x=1719794411;
 h=content-transfer-encoding:mime-version:user-agent:message-id:date
 :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from
 :to:cc:subject:date:message-id:reply-to;
 bh=AcR3DcyjF8FJ5ZGcmkLzNQA9PhgPrrLa/ooy2ukfm0g=;
 b=OtUZduFxuSNJEfXDVhBCA5uA1KctHj27Wk5dkdQYaYMMR2syv82a7sItQG38/kHUog
 V79YNbci9rVZy0iQ4AJKbSwpacY7bk6kWaQfr4w4JjQcAYM97XrTCayXcjGHglQwjYY4
 pxhjBW0oPpRDFCFxEdgjmnd52jSP6F75tl8VcEe7VAjJSwKohASTCNtrNoA5HfhTUHew
 TSTP6eYeV91NSIoZO2sscY3Sow2pS/x9aaYxExqq9TO2qAwl5Pl4kCycqvSQpKYxTVrR
 5S9QBh4389JRPEpUOHdZHwkfWn5UJ6Y69dF+/o1Mu9Y5a8aV8s4VuiKQMhKXdBQATym0
 OxHQ==
X-Gm-Message-State: AOJu0YwkwhTUOLA+xBUECWUZSyZc9P2qaG8FP4wjiP2d4ujRQfskMAyo
 MtLw00CSomY5wkzf9UG2UUL8phJieXI7bxjaJSTd7LdY0xMgNvmg
X-Google-Smtp-Source: AGHT+IGHuwRoH4bPAEmZEccbvyCd7utrJ402JJaKVkHWyCR55uD/a3eyofklj2SWXIJDKriX/6w6Og==
X-Received: by 2002:a05:620a:2688:b0:79b:e2c0:951c with SMTP id
 af79cd13be357-79be2c09663mr447770785a.73.1719189611593; 
 Sun, 23 Jun 2024 17:40:11 -0700 (PDT)
Received: from hurd (dsl-205-233-124-241.b2b2c.ca. [205.233.124.241])
 by smtp.gmail.com with ESMTPSA id
 af79cd13be357-79bce89be37sm267887685a.17.2024.06.23.17.40.10
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Sun, 23 Jun 2024 17:40:11 -0700 (PDT)
From: Maxim Cournoyer <maxim.cournoyer@HIDDEN>
To: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Subject: Re: [bug#69591] [PATCH] services: shepherd: Support
 =?utf-8?B?4oCcZnJlZS1mb3Jt4oCd?= services.
In-Reply-To: <7501182c5831ba86d4e600967fb944e9e1124352.1719066498.git.ludo@HIDDEN>
 ("Ludovic =?utf-8?Q?Court=C3=A8s=22's?= message of "Sat, 22 Jun 2024
 16:28:56 +0200")
References: <20240306193725.17463-1-david.elsing@HIDDEN>
 <7501182c5831ba86d4e600967fb944e9e1124352.1719066498.git.ludo@HIDDEN>
Date: Sun, 23 Jun 2024 20:40:09 -0400
Message-ID: <8734p3b2c6.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>, 69591 <at> debbugs.gnu.org,
 Ludovic =?utf-8?Q?Court=C3=A8s?= <ludovic.courtes@HIDDEN>,
 Florian Pelz <pelzflorian@HIDDEN>,
 Matthew Trzcinski <matt@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hi Ludovic,

Ludovic Court=C3=A8s <ludo@HIDDEN> writes:

> * gnu/services/shepherd.scm (<shepherd-service>)[free-form]: New field.
> [start]: Add default value.
> (shepherd-service-file): Rename to=E2=80=A6
> (shepherd-service-file/regular): =E2=80=A6 this.
> (shepherd-service-file/free-form): New procedure.
> (shepherd-service-file): Dispatch to one of the two procedures above.
> * doc/guix.texi (Shepherd Services): Document the =E2=80=98free-form=E2=
=80=99 field.
>
> Change-Id: I206374e950ef6d1e4a996c0f507fb5fcd9cadde3
> ---
>  doc/guix.texi             | 26 +++++++++++++++++++++++++-
>  gnu/services/shepherd.scm | 25 ++++++++++++++++++++++---
>  2 files changed, 47 insertions(+), 4 deletions(-)
>
> Hi!
>
> This patch fixes a limitation that became apparent with Shepherd 0.10,
> where users could not instantiate services from the built-in service
> collection for which they do not explicitly specify the =E2=80=98start=E2=
=80=99
> and =E2=80=98stop=E2=80=99 methods (see REPL service example below).
>
> Thoughts?
>
> Ludo=E2=80=99.
>
> diff --git a/doc/guix.texi b/doc/guix.texi
> index 0102fd0fad3..4d9145445cc 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -43909,7 +43909,7 @@ Shepherd Services
>  When true, this is the delay in seconds before restarting a failed
>  service.
>=20=20
> -@item @code{start}
> +@item @code{start} (default: @code{#~(const #t)})
>  @itemx @code{stop} (default: @code{#~(const #f)})
>  The @code{start} and @code{stop} fields refer to the Shepherd's
>  facilities to start and stop processes (@pxref{Service De- and
> @@ -43928,6 +43928,30 @@ Shepherd Services
>  herd @var{action} @var{service} [@var{arguments}@dots{}]
>  @end example
>=20=20
> +@item @code{free-form} (default: @code{#f})
> +When set, this field replaces the @code{start}, @code{stop}, and
> +@code{actions} fields.  It is meant to be used when the service
> +definition comes from some other source, typically the service
> +collection provided by the Shepherd proper (@pxref{Service Collection,,,
> +shepherd, The GNU Shepherd Manual}).
> +
> +@cindex REPL service, for shepherd
> +For example, the snippet below defines a service for the Shepherd's
> +built-in @acronym{REPL, read-eval-print loop} service (@pxref{REPL
> +Service,,, shepherd, The GNU Shepherd Manual}):
> +
> +@lisp
> +(shepherd-service
> +  (provision '(repl))
> +  (modules '((shepherd service repl)))
> +  (free-form #~(repl-service)))
> +@end lisp
> +
> +In this case, the service object is returned by the @code{repl-service}
> +procedure of the Shepherd, so all the @code{free-form} G-expression does
> +is call that procedure.  Note that the @code{provision} field must be
> +consistent with the actual service provision.

Hm, if free-form is expected to be a built-in procedure provided by
Shepherd, should we call it 'built-in' instead of 'free-form' ?  Or
could it have a more general use that I'm not seeing.  It seems the
contract is that it could be any code used 'provision' a shepherd
service object, overriding e.g. the start and stop slots.  I guess
that's more flexibility, and that its 'free-form' name is OK if that's
so.

The rest LGTM.

--=20
Thanks,
Maxim




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

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


Received: (at 69591) by debbugs.gnu.org; 23 Jun 2024 21:58:09 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 23 17:58:09 2024
Received: from localhost ([127.0.0.1]:53076 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sLVDt-00033F-B9
	for submit <at> debbugs.gnu.org; Sun, 23 Jun 2024 17:58:09 -0400
Received: from eggs.gnu.org ([209.51.188.92]:39486)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1sLVDr-00032n-M1
 for 69591 <at> debbugs.gnu.org; Sun, 23 Jun 2024 17:58:08 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ludo@HIDDEN>)
 id 1sLVDl-0005c1-Lx; Sun, 23 Jun 2024 17:58:01 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To:
 From; bh=pqD4iXd9nITaFHrtNNzxUg0x9KhEGvLjzMNtgbHP73U=; b=dxBjERJDX5/YK/p/FjHu
 xdH3YtCia8CLQhR+XUIeJL9zrzfE9O247Xd+PfojPoRBMGvvetu5Np2Uy95ApqX9EzFwGmD5F0Nz4
 +byRa0Qff6lSby4FXJz+dkngJxOehylRIUfXjmdcbtiArCIB+1nSQrI0bxFHnf5KVlvhnKb5iW7o/
 fsWIHhN4iiAREsU+i/jxU3uFYDPfLxBjH5ekoQcTsOvy8Wcnj1UE1MPjOZ37jMZgapgd9P0g8hFd7
 FqUlulnmuDn6Kl/QV65lIW4BVNZVeyFU2kXW4osBrAMWacxuR+m68p2RNwOa+VX3Nou3wHbDfra+3
 7awr43h/FhOHRw==;
From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: Re: [bug#69591] [PATCH] services: shepherd: Support
 =?utf-8?B?4oCcZnJlZS1mb3Jt4oCd?= services.
In-Reply-To: <7501182c5831ba86d4e600967fb944e9e1124352.1719066498.git.ludo@HIDDEN>
 ("Ludovic =?utf-8?Q?Court=C3=A8s=22's?= message of "Sat, 22 Jun 2024
 16:28:56 +0200")
References: <20240306193725.17463-1-david.elsing@HIDDEN>
 <7501182c5831ba86d4e600967fb944e9e1124352.1719066498.git.ludo@HIDDEN>
Date: Sun, 23 Jun 2024 23:57:59 +0200
Message-ID: <875xtz9va0.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>,
 Maxim Cournoyer <maxim.cournoyer@HIDDEN>,
 Florian Pelz <pelzflorian@HIDDEN>,
 Matthew Trzcinski <matt@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Ludovic Court=C3=A8s <ludo@HIDDEN> skribis:

> * gnu/services/shepherd.scm (<shepherd-service>)[free-form]: New field.
> [start]: Add default value.
> (shepherd-service-file): Rename to=E2=80=A6
> (shepherd-service-file/regular): =E2=80=A6 this.
> (shepherd-service-file/free-form): New procedure.
> (shepherd-service-file): Dispatch to one of the two procedures above.
> * doc/guix.texi (Shepherd Services): Document the =E2=80=98free-form=E2=
=80=99 field.
>
> Change-Id: I206374e950ef6d1e4a996c0f507fb5fcd9cadde3

Oops, wrong issue!  (I used =E2=80=98mumi send-email=E2=80=99 while this is=
sue was
current=E2=80=A6)




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

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


Received: (at 69591) by debbugs.gnu.org; 23 Jun 2024 21:57:09 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 23 17:57:09 2024
Received: from localhost ([127.0.0.1]:53025 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sLVCu-00030p-BE
	for submit <at> debbugs.gnu.org; Sun, 23 Jun 2024 17:57:09 -0400
Received: from eggs.gnu.org ([209.51.188.92]:54990)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1sLVCs-00030D-33
 for 69591 <at> debbugs.gnu.org; Sun, 23 Jun 2024 17:57:06 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ludo@HIDDEN>)
 id 1sLVCh-0005VO-58; Sun, 23 Jun 2024 17:56:57 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To:
 From; bh=miaxaFVscIC5iqX57Po26nkYO46QnrD3mjJjgSqxfWU=; b=oKfcQ4ActCahkXbengVc
 sspoyd+1pHtsWhagA1o2tpINWWiSlE7QCj4AHSg2fIIcATv7Cn1keOxoWPv2G7+jcpzigxWrsqd6Y
 vrzbIRwMc/9jGjx2qvBKTaMfnfHDRICUjZf6gLll6KI+aL8vI5/3gilUOCF+k7YpprJNOOWKlmAsp
 eKj3gXJDpE1ZDEKZK9JZ9G18L1f4yj1bWCLHBZ5lia58fyMNEElID8ykxQ1bNN92BWkPKlTqcyTvW
 mzF0843K3CopuvCkDvAq5ATo26AuD05OjU28sZQyxAy8RTyENT6Dd05sfBZUEvRn22xvJSA6uH/7g
 PNwFTrkKeisLBw==;
From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN>
To: David Elsing <david.elsing@HIDDEN>
Subject: Re: [bug#69591] [PATCH v4 00/32] Unbundle and update python-pytorch
In-Reply-To: <7yv81zyctr.fsf@HIDDEN> (David Elsing's message of "Sun, 23
 Jun 2024 14:05:04 +0000")
References: <20240320223737.12883-1-david.elsing@HIDDEN>
 <20240323214040.20221-1-david.elsing@HIDDEN>
 <874j9q4k6f.fsf@HIDDEN> <7yv81zyctr.fsf@HIDDEN>
Date: Sun, 23 Jun 2024 23:56:46 +0200
Message-ID: <87a5jb9vc1.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: 69591 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Hi David,

David Elsing <david.elsing@HIDDEN> skribis:

> I plan to try and fix the build also for other architectures when
> updating the packages. For aarch64, the problem is that cpuinfo fails in
> the build container [1,2], but maybe this is only an issue for running
> the tests.
> On 32-bit systems, some Python packages used for the tests depend
> transitively on Rust. The tests are disabled anyway however as they take
> a long time, so they can be removed from the native inputs for these
> architectures.

OK.

I also found that the upgrade triggered build failures in 5 dependent
packages:

  https://ci.guix.gnu.org/eval/1414456?status=3Dnewly-failed

Perhaps it=E2=80=99s just a matter of upgrading them as well?

Thanks,
Ludo=E2=80=99.




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

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


Received: (at 69591) by debbugs.gnu.org; 23 Jun 2024 14:05:19 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 23 10:05:18 2024
Received: from localhost ([127.0.0.1]:33831 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sLNqI-00058B-G9
	for submit <at> debbugs.gnu.org; Sun, 23 Jun 2024 10:05:18 -0400
Received: from mout01.posteo.de ([185.67.36.65]:44451)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1sLNqD-00057V-Cy
 for 69591 <at> debbugs.gnu.org; Sun, 23 Jun 2024 10:05:14 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id D152F240027
 for <69591 <at> debbugs.gnu.org>; Sun, 23 Jun 2024 16:05:05 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1719151505; bh=KGdrisLk5fC9p2uNhXTyXSU6aSMP0nl8xAoNvdn8/rE=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type:
 Content-Transfer-Encoding:From;
 b=ekTPa/IknXtL6O43fYvtbWk1gUJzLlmXhQrvTWq4GVAd7BRng3+8pTNMzBJVElmbx
 kFhQTrt905z7eUrWNNtD9ETYwLUwi29+FufWH9sBI5llJzxm8rFbujI+PoPl6UvZB7
 GilecNdnhVGxhwIGFCC+3RvXv+6vEmI7dvmYfVp2few20Xy0rJAJrF4NIVhG6PsbzG
 EcjiAYfEgBJMLGPzy6YVmMZWSb5g/B94Xg5pzycnfXDK9n5/ii2sKWfo/VkF/b8pCs
 eoVHT01T1Kp2SDtfVrwE11CGzQuC4nshLE7zris/dTY580FYHovIVDD+PsWZL40gcc
 eDpFvneZ4Z7jA==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4W6Xsr6TnGz9rxG;
 Sun, 23 Jun 2024 16:05:04 +0200 (CEST)
From: David Elsing <david.elsing@HIDDEN>
To: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludovic.courtes@HIDDEN>
Subject: Re: [bug#69591] [PATCH v4 00/32] Unbundle and update python-pytorch
In-Reply-To: <874j9q4k6f.fsf@HIDDEN>
References: <20240320223737.12883-1-david.elsing@HIDDEN>
 <20240323214040.20221-1-david.elsing@HIDDEN> <874j9q4k6f.fsf@HIDDEN>
Date: Sun, 23 Jun 2024 14:05:04 +0000
Message-ID: <7yv81zyctr.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: 69591 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Hi Ludo',

Ludovic Court=C3=A8s <ludovic.courtes@HIDDEN> writes:

> This is impressive work.  I feel bad that it took 3 months to merge it,
> but here we are!
>
> I pushed the whole series as 2aeb37def258ad4dd23aaf57ed32f0be44d1bea5.

No problem, thank you for merging it!

> There were a couple of trivial merge conflicts, and in one case a patch
> that was missing from =E2=80=98gnu/local.mk=E2=80=99, so I added it.  (BT=
W, =E2=80=98mumi am=E2=80=99
> made apply the patches quite smooth, highly recommended!)

Oh sorry, I thought I had checked them, thanks.

> qa.guix hadn=E2=80=99t caught up so I built =E2=80=98r-torch=E2=80=99 and=
 =E2=80=98python-pytorch=E2=80=99
> locally to confirm that it still builds fine.

I plan to try and fix the build also for other architectures when
updating the packages. For aarch64, the problem is that cpuinfo fails in
the build container [1,2], but maybe this is only an issue for running
the tests.
On 32-bit systems, some Python packages used for the tests depend
transitively on Rust. The tests are disabled anyway however as they take
a long time, so they can be removed from the native inputs for these
architectures.

Cheers,
David

[1] https://github.com/pytorch/cpuinfo/issues/143
[2] https://github.com/NixOS/nixpkgs/pull/319053




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

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


Received: (at 69591) by debbugs.gnu.org; 22 Jun 2024 14:29:25 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jun 22 10:29:25 2024
Received: from localhost ([127.0.0.1]:47984 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sL1k4-0007OG-Vf
	for submit <at> debbugs.gnu.org; Sat, 22 Jun 2024 10:29:25 -0400
Received: from eggs.gnu.org ([209.51.188.92]:50234)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1sL1k2-0007Nv-Ue
 for 69591 <at> debbugs.gnu.org; Sat, 22 Jun 2024 10:29:23 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <ludo@HIDDEN>)
 id 1sL1jx-0008Vl-FZ; Sat, 22 Jun 2024 10:29:17 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:Date:Subject:To:From:in-reply-to:
 references; bh=nLRi1sleptdKRENL8H/eVhUC8arre3b/oXNR+s4lKFs=; b=C+7bPxgARgmuyk
 mhOnoLI+qlrigiQp1wwK/sTP+tlEqt/fBtM2cZlwWgWDWvazHOUI2/wVMLb6Uje7Ix8q7JFClXYO+
 BXWrxrs4Jq0MPbL/4RcurEZ3tW7NEp48ic+a47Y3c5ZwFxd3XV+PFLEQfaXDhyXMeodfny9f+4ufE
 WR3yOOirBobqb5DtJOTL1ySU+VwiffRA7UHbg0UtwkQK+QlWu+rXnvXLmFAEJFCcghUKzu0tkqLzR
 nJsE1u7sMB2/R3usnm0ZHDv3SGNIzDp4+GosO82vne3rif5UUCbxcjNpKrMg88GGa1VXJWZWKsmei
 xgx2g0mj0z/qjE2lfjFg==;
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH] =?UTF-8?q?services:=20shepherd:=20Support=20=E2=80=9Cfree?=
 =?UTF-8?q?-form=E2=80=9D=20services.?=
Date: Sat, 22 Jun 2024 16:28:56 +0200
Message-ID: <7501182c5831ba86d4e600967fb944e9e1124352.1719066498.git.ludo@HIDDEN>
X-Mailer: git-send-email 2.45.1
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-Debbugs-Cc: David Elsing <david.elsing@HIDDEN>, Ludovic Courtès <ludovic.courtes@HIDDEN>, Florian Pelz <pelzflorian@HIDDEN>, Ludovic Courtès <ludo@HIDDEN>, Matthew Trzcinski <matt@HIDDEN>, Maxim Cournoyer <maxim.cournoyer@HIDDEN>
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

* gnu/services/shepherd.scm (<shepherd-service>)[free-form]: New field.
[start]: Add default value.
(shepherd-service-file): Rename to…
(shepherd-service-file/regular): … this.
(shepherd-service-file/free-form): New procedure.
(shepherd-service-file): Dispatch to one of the two procedures above.
* doc/guix.texi (Shepherd Services): Document the ‘free-form’ field.

Change-Id: I206374e950ef6d1e4a996c0f507fb5fcd9cadde3
---
 doc/guix.texi             | 26 +++++++++++++++++++++++++-
 gnu/services/shepherd.scm | 25 ++++++++++++++++++++++---
 2 files changed, 47 insertions(+), 4 deletions(-)

Hi!

This patch fixes a limitation that became apparent with Shepherd 0.10,
where users could not instantiate services from the built-in service
collection for which they do not explicitly specify the ‘start’
and ‘stop’ methods (see REPL service example below).

Thoughts?

Ludo’.

diff --git a/doc/guix.texi b/doc/guix.texi
index 0102fd0fad3..4d9145445cc 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -43909,7 +43909,7 @@ Shepherd Services
 When true, this is the delay in seconds before restarting a failed
 service.
 
-@item @code{start}
+@item @code{start} (default: @code{#~(const #t)})
 @itemx @code{stop} (default: @code{#~(const #f)})
 The @code{start} and @code{stop} fields refer to the Shepherd's
 facilities to start and stop processes (@pxref{Service De- and
@@ -43928,6 +43928,30 @@ Shepherd Services
 herd @var{action} @var{service} [@var{arguments}@dots{}]
 @end example
 
+@item @code{free-form} (default: @code{#f})
+When set, this field replaces the @code{start}, @code{stop}, and
+@code{actions} fields.  It is meant to be used when the service
+definition comes from some other source, typically the service
+collection provided by the Shepherd proper (@pxref{Service Collection,,,
+shepherd, The GNU Shepherd Manual}).
+
+@cindex REPL service, for shepherd
+For example, the snippet below defines a service for the Shepherd's
+built-in @acronym{REPL, read-eval-print loop} service (@pxref{REPL
+Service,,, shepherd, The GNU Shepherd Manual}):
+
+@lisp
+(shepherd-service
+  (provision '(repl))
+  (modules '((shepherd service repl)))
+  (free-form #~(repl-service)))
+@end lisp
+
+In this case, the service object is returned by the @code{repl-service}
+procedure of the Shepherd, so all the @code{free-form} G-expression does
+is call that procedure.  Note that the @code{provision} field must be
+consistent with the actual service provision.
+
 @item @code{auto-start?} (default: @code{#t})
 Whether this service should be started automatically by the Shepherd.  If it
 is @code{#f} the service has to be started manually with @code{herd start}.
diff --git a/gnu/services/shepherd.scm b/gnu/services/shepherd.scm
index ccc8e61a33c..05534ab3173 100644
--- a/gnu/services/shepherd.scm
+++ b/gnu/services/shepherd.scm
@@ -60,6 +60,7 @@ (define-module (gnu services shepherd)
             shepherd-service-respawn?
             shepherd-service-start
             shepherd-service-stop
+            shepherd-service-free-form
             shepherd-service-auto-start?
             shepherd-service-modules
 
@@ -217,7 +218,10 @@ (define-record-type* <shepherd-service>
                  (default #f))
   (respawn-delay shepherd-service-respawn-delay
                  (default #f))
-  (start         shepherd-service-start)               ;g-expression (procedure)
+  (free-form     shepherd-service-free-form            ;#f | g-expression (service)
+                 (default #f))
+  (start         shepherd-service-start                ;g-expression (procedure)
+                 (default #~(const #t)))
   (stop          shepherd-service-stop                 ;g-expression (procedure)
                  (default #~(const #f)))
   (actions       shepherd-service-actions              ;list of <shepherd-action>
@@ -298,8 +302,8 @@ (define (shepherd-service-file-name service)
                                provisions)
                    ".scm")))
 
-(define (shepherd-service-file service)
-  "Return a file defining SERVICE."
+(define (shepherd-service-file/regular service)
+  "Return a file defining SERVICE, a service whose 'free-form' field is #f."
   (scheme-file (shepherd-service-file-name service)
                (with-imported-modules %default-imported-modules
                  #~(begin
@@ -332,6 +336,21 @@ (define (shepherd-service-file service)
                                    #~(#$name #$doc #$proc)))
                                 (shepherd-service-actions service))))))))
 
+(define (shepherd-service-file/free-form service)
+  "Return a file defining SERVICE, a service whose 'free-form' field is set."
+  (scheme-file (shepherd-service-file-name service)
+               (with-imported-modules %default-imported-modules
+                 #~(begin
+                     (use-modules #$@(shepherd-service-modules service))
+
+                     #$(shepherd-service-free-form service)))))
+
+(define (shepherd-service-file service)
+  "Return a file defining SERVICE."
+  (if (shepherd-service-free-form service)
+      (shepherd-service-file/free-form service)
+      (shepherd-service-file/regular service)))
+
 (define (scm->go file shepherd)
   "Compile FILE, which contains code to be loaded by shepherd's config file,
 and return the resulting '.go' file. SHEPHERD is used as shepherd package."

base-commit: 2aeb37def258ad4dd23aaf57ed32f0be44d1bea5
-- 
2.45.1





Information forwarded to david.elsing@HIDDEN, ludovic.courtes@HIDDEN, pelzflorian@HIDDEN, ludo@HIDDEN, matt@HIDDEN, maxim.cournoyer@HIDDEN, guix-patches@HIDDEN:
bug#69591; Package guix-patches. Full text available.

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


Received: (at 69591) by debbugs.gnu.org; 18 Jun 2024 10:31:02 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jun 18 06:31:02 2024
Received: from localhost ([127.0.0.1]:42015 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sJW7C-0004DG-6B
	for submit <at> debbugs.gnu.org; Tue, 18 Jun 2024 06:31:02 -0400
Received: from mail2-relais-roc.national.inria.fr ([192.134.164.83]:5400)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludovic.courtes@HIDDEN>) id 1sJW78-0004Cp-Q7
 for 69591 <at> debbugs.gnu.org; Tue, 18 Jun 2024 06:31:00 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inria.fr; s=dc;
 h=from:to:cc:subject:in-reply-to:references:date:
 message-id:mime-version:content-transfer-encoding;
 bh=HarAbLCPEdzPztD3zoG42n4+I9vofG01UboMEsrFSUY=;
 b=rFNt5sFYvd/BPhMHO8cMuaeMjOVrnCewxr8wnEj3VCjgIs7njjnQaRnF
 uPaUeA9nQBrKahjorpnkEW1Hslk5cRaBOwbx/Or9uSWP1pw5NLNOTPFi+
 1K7d+630AdThxu4I8ttutfX8ODWowqefmqOIrS4rK04M4BVkl3Gj24mXT o=;
Authentication-Results: mail2-relais-roc.national.inria.fr;
 dkim=none (message not signed) header.i=none;
 spf=SoftFail smtp.mailfrom=ludovic.courtes@HIDDEN;
 dmarc=fail (p=none dis=none) d=inria.fr
X-IronPort-AV: E=Sophos;i="6.08,247,1712613600"; d="scan'208";a="171228639"
Received: from 231.red-83-43-93.dynamicip.rima-tde.net (HELO ribbon)
 ([83.43.93.231]) by mail2-relais-roc.national.inria.fr with
 ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jun 2024 12:30:49 +0200
From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludovic.courtes@HIDDEN>
To: David Elsing <david.elsing@HIDDEN>
Subject: Re: [bug#69591] [PATCH v4 00/32] Unbundle and update python-pytorch
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN> (David Elsing's
 message of "Sat, 23 Mar 2024 21:40:29 +0000")
References: <20240320223737.12883-1-david.elsing@HIDDEN>
 <20240323214040.20221-1-david.elsing@HIDDEN>
Date: Tue, 18 Jun 2024 12:30:48 +0200
Message-ID: <874j9q4k6f.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: 69591 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Hi David,

David Elsing <david.elsing@HIDDEN> skribis:

> This is a rebase to master, where the python-pytorch2 package was added. I
> removed it again, as this patch series updates the python-pytorch package=
 to
> version 2.
> I also added the python-opt-einsum package to the propagated inputs like
> Ricardo did in the python-pytorch2 package, as I had missed it before.

This is impressive work.  I feel bad that it took 3 months to merge it,
but here we are!

I pushed the whole series as 2aeb37def258ad4dd23aaf57ed32f0be44d1bea5.

There were a couple of trivial merge conflicts, and in one case a patch
that was missing from =E2=80=98gnu/local.mk=E2=80=99, so I added it.  (BTW,=
 =E2=80=98mumi am=E2=80=99
made apply the patches quite smooth, highly recommended!)

qa.guix hadn=E2=80=99t caught up so I built =E2=80=98r-torch=E2=80=99 and =
=E2=80=98python-pytorch=E2=80=99
locally to confirm that it still builds fine.

Thanks!

Ludo=E2=80=99.




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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:40:31 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:40:31 2024
Received: from localhost ([127.0.0.1]:58201 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1roA2R-0007sQ-AD
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:40:31 -0400
Received: from mout01.posteo.de ([185.67.36.65]:50167)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9dM-0006lI-SS
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:14:37 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 21E3C240028
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:30 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231530; bh=w7d7enRIOmY7Lzy2LDUZ8cXLaqXdkRXeedSWLLjqXhQ=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=QwBm7dBgvCO7TodnVeUPmnMA8tbFUgZZ5aHsMk/0Q9oHPKDToVzIc+/EZ6XIA3/fg
 k6ho7gUz7fF/LkU3FpS5WIXGfNjVsONeNrc4SalGr280m8kHYLEiN5tyQ0DH/Obkvz
 +Q0ZCG+TOm3x9v0Zx50c/gIkfbvgWnPdjLRGtU7bBwkzYRamvve+JqZ+ZXfU3BsAwa
 QHX7OnetYZKBp4gAOUbnScW7LWQgSajT2wUGF/xFaaXqyaJcJwhXRbG8clDVE/tq9B
 ehOPeT/fS18Y96OqiWEHMFhq6RquX243KAHyZNWRxIcyZWdD0N5Y1aXlXDIkDF56YL
 2wYyLT7BvVxhQ==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2Ctd5kb5z6tx0;
 Sat, 23 Mar 2024 23:05:29 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 18/32] gnu: Add tensorpipe.
Date: Sat, 23 Mar 2024 22:04:57 +0000
Message-ID: <20240323220518.25063-18-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:40:31 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:40:31 2024
Received: from localhost ([127.0.0.1]:58199 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1roA2Q-0007sH-P7
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:40:31 -0400
Received: from mout01.posteo.de ([185.67.36.65]:57381)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9dM-0006lK-TU
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:14:37 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 08628240027
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:25 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231525; bh=f+d2Z9FGqKKSWV9UKP4SQq3coAjHBGChJgTQzpZ8xM8=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type:
 Content-Transfer-Encoding:From;
 b=OqUjBYnIVtc54HjueydkMypNNYZZ9ZtV2JXsyPgiMuupg78YDpwY1X77AHAmNo9FS
 7vFv/sWQYqCoFtI7BNhTmjp2z3mBnmYWgromRvxuVumhYlMrOYy+WVEqQXhr8g3J5k
 fKvrU/hYhCHyZIuiHHlV8RGmQ4cDyeXrWy7dcl86YnhqvGMstiAvQABuiVCNYBpg50
 PYwDf4FuQSzPi03JFmnHXS8Qe8UnuCJ0Z63wdGtIhfpHdxzdrCs3c+AyANiyEmHwGN
 +XRsK4Le18HijkYmCEo5YHNH/kuqpZrNbFFVMaCA88RJfi75A7Fisf07D6II/1se7k
 vAj+oclqrMzeg==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2CtX4yw2z6tx0;
 Sat, 23 Mar 2024 23:05:24 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 08/32] gnu: Add miniz.
Date: Sat, 23 Mar 2024 22:04:47 +0000
Message-ID: <20240323220518.25063-8-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 5de17b6b51..fcfc2c30f3 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -38,6 +38,7 @@
 ;;; Copyright © 2022 Greg Hogan <code@HIDDEN>
 ;;; Copyright © 2022 Zhu Zihao <all_but_last@HIDDEN>
 ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@HIDDEN>
+;;; Copyright © 2024 David Elsing <david.elsing@HIDDEN>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2838,3 +2839,31 @@ (define-public unrar-free
 libarchive.  It does not rival the non-free @code{unrar} in terms of features,
 but special care has been taken to ensure it meets most user's needs.")
     (license license:gpl2+)))
+
+(define-public miniz
+  (package
+    (name "miniz")
+    (version "3.0.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/richgel999/miniz")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0672q35vjrpakmsr1gwj9k5fwv5ihzhahm19bq4y74wqpn91p7fw"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:configure-flags
+      ''("-DBUILD_SHARED_LIBS=ON")
+      ;; No tests
+      #:tests? #f))
+    (home-page "https://github.com/richgel999/miniz")
+    (synopsis "Independent implementation of zlib and Deflate compression")
+    (description "Miniz is a lossless data compression library that implements
+the zlib (RFC 1950) and Deflate (RFC 1951) compressed data format
+specification standards.  It supports the most commonly used functions
+exported by the zlib library.")
+    (license license:expat)))
-- 
2.41.0





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:40:30 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:40:30 2024
Received: from localhost ([127.0.0.1]:58197 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1roA2Q-0007sA-BV
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:40:30 -0400
Received: from mout02.posteo.de ([185.67.36.66]:41901)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9d7-0006jy-Em
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:14:22 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 7858B240103
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:23 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231523; bh=bulN+Gpgsiv5WBF6bs3jIyCUrRdwTykkxh53Vxaa3dE=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=POVMvFL9pg/aER3qZ0S4s+G4lwA1iO8lJBjgASWduJ7WnrWNCfz/EirKedbKQYW9F
 DBvDlY7G/yR+fT+po9bKqJXZ4vf59cLWyNU8TyeFoAJXvTX78LdFfN2f7TovNl9TZ+
 cykdkic4JBuWIncSnLfv2odcjbiGcH+UEUVmiBrEkR3KECtVRAXJVYciPMNaj7W81V
 t52EnmOyZlHoU9pncrXnTJcU9d4YQVVbIYW0qWA3ReZqrUS4IbxaWKy0eGSx13xWY+
 b4znYMTVy0abCSvPlESFbNMjoDDhnoDXq0V/mCmM2ku2YHUoaHid347Y4ULXJ2uaDb
 /TbvfAVTV3S0A==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2CtW17G5z6trs;
 Sat, 23 Mar 2024 23:05:23 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 05/32] gnu: Add python-pytest-shard.
Date: Sat, 23 Mar 2024 22:04:44 +0000
Message-ID: <20240323220518.25063-5-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:40:30 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:40:30 2024
Received: from localhost ([127.0.0.1]:58193 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1roA2P-0007s1-SG
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:40:30 -0400
Received: from mout01.posteo.de ([185.67.36.65]:59383)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9VJ-0006OG-Mo
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:18 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 95FD0240027
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:29 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231529; bh=Kw/Y6HjIi3hN1og6HdcoIGQoTZaUMyaxoe+Qvx4W+Fw=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=TIJISl9PRVsPRKqNXJF6/oC8khmAhJSSQaTFOhgzP4S7OQWLI1WY81yb/PrTQ0pru
 Ll/8Djkk+xKfo+3FTZlsDM9oM4sLNB/6xkKp33qWr/Yosfg4GThpGd1YKKlb7JTOl3
 LB9PGfU4KWzSgwd8N4NBbz89+2XmAgVmpgeAdWZLOQgjv2PW1ShYL2H+Qpoec+qUqc
 NbfQryBpyJY5O+GYTw/E+Ej/4tn2icfYY/LeC7apaCzfrePs3spEGEFFoxv3HYdr2F
 XKShmqx5k/+TRQbQ9Eg4PcYNejM/1i3k3svqFWneQTJ8iEQLifq9Z0TyDlescb6JC6
 mE/05M5XE5VgA==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2Ctd24lMz6tx0;
 Sat, 23 Mar 2024 23:05:29 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 17/32] gnu: oneapi-dnnl: Update to 3.3.5.
Date: Sat, 23 Mar 2024 22:04:56 +0000
Message-ID: <20240323220518.25063-17-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:40:29 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:40:29 2024
Received: from localhost ([127.0.0.1]:58191 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1roA2P-0007rw-Ay
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:40:29 -0400
Received: from mout01.posteo.de ([185.67.36.65]:46227)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9VG-0006O4-KJ
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:15 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 931E1240028
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:27 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231527; bh=9WlYblJEmtJ/FkG6RobtErEAhpEe175SE/EJEWLadJA=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type:
 Content-Transfer-Encoding:From;
 b=DxpUiWleX25L5xy2cg+F9THw1MTdLH2lV6YoTmEMywflcw0lxSRBrdr1C+iV3ipyd
 8+1Y2f4if8WjlZYbpNKUZao8t3osY+0UyNnjhSWTJh5vKYucBB4XeoepkXf9Xq9k+t
 8b03OGVycH54snduCNP+FLaTXsVcB870uKrP+4754U+fjG/czAXIyMenhH+p1EkxJo
 bln1iITjpu4VUTYWs1NDWMNC1JA8uDNwfu1dKyWt2WNEfQSeApKN19zT2b4iqdQCPB
 +0cBAAqTeOYvSzROOIidX/xEZPSMZUgIyyEQikMWQqn+qyqPOAJN+YFAHdh73yF2xy
 5nmQxJ2W1lQGw==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2Ctb1vKYz6ty7;
 Sat, 23 Mar 2024 23:05:27 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 13/32] gnu: pthreadpool: Update to commit 178e3e0.
Date: Sat, 23 Mar 2024 22:04:52 +0000
Message-ID: <20240323220518.25063-13-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index ddf4ad016b..e1cbe52934 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2019-2023 Ludovic Courtès <ludo@HIDDEN>
 ;;; Copyright © 2020 Roel Janssen <roel@HIDDEN>
 ;;; Copyright © 2021 Stefan Reichör <stefan@HIDDEN>
+;;; Copyright © 2024 David Elsing <david.elsing@HIDDEN>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -449,9 +450,9 @@ (define-public python-slurm-magic
 (define-public pthreadpool
   ;; This repository has only one tag, 0.1, which is older than what users
   ;; such as XNNPACK expect.
-  (let ((commit "1787867f6183f056420e532eec640cba25efafea")
+  (let ((commit "178e3e0646cc671708bf78e77c273940130ac637")
         (version "0.1")
-        (revision "1"))
+        (revision "2"))
     (package
       (name "pthreadpool")
       (version (git-version version revision commit))
@@ -462,7 +463,7 @@ (define-public pthreadpool
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "02hdvxfn5krw8zivkgjx3b4rk9p02yr4mpdjlp75lsv6z1xf5yrx"))
+                  "1s86lnq9bahacf5wxn7y14w70jh3g9lq1l7y16ijwhifd01nc2km"))
                 (patches (search-patches "pthreadpool-system-libraries.patch"))))
       (build-system cmake-build-system)
       (arguments '(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
-- 
2.41.0





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:40:29 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:40:29 2024
Received: from localhost ([127.0.0.1]:58188 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1roA2O-0007rk-8d
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:40:29 -0400
Received: from mout02.posteo.de ([185.67.36.66]:41367)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9VB-0006No-VZ
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:13 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id EE85B240101
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:22 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231523; bh=oX9SCAHKKSECx68oiG25aprabOHRQHxMXZPZRHcLBdQ=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type:
 Content-Transfer-Encoding:From;
 b=DoI+D0rH0MZS0qNZ+ymG0+1OJQ4QYAKvG9JEap69EWRqCW/EivJHW5aTZJvSa+eN8
 d5cmWAOmzYkYWaN4GABIo1927j7cdWXAcH4P4aYnvgUo5XGd0B0fVQNE+vDyDRM1t6
 C7Lcd2X8nUHBAYWQuNNexrw99ZQYha0wXkW9lXbixoIhR2Its8YtOuWHS9u618l60U
 jsZKTnCcbVGdC92f9xdhQIoQB3Ye/NeYGOUP+eB3s5nwjj42mgN6mBGVE0suez2aTU
 wXKbsg89O3400Gx1tGhgQfH9OWkOJk9lXD039Hp8kEkIPFtxxLq9mo3ZSMyYFsm7ZQ
 wrA8K4ftEqaDQ==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2CtV4YgPz6trs;
 Sat, 23 Mar 2024 23:05:22 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 04/32] gnu: Add python-pytest-flakefinder.
Date: Sat, 23 Mar 2024 22:04:43 +0000
Message-ID: <20240323220518.25063-4-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 51a38bbcbe..247f8af98b 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -18,6 +18,7 @@
 ;;; Copyright © 2022 Tomasz Jeneralczyk <tj@HIDDEN>
 ;;; Copyright © 2022 jgart <jgart@HIDDEN>
 ;;; Copyright © 2024 Troy Figiel <troy@HIDDEN>
+;;; Copyright © 2024 David Elsing <david.elsing@HIDDEN>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -191,6 +192,24 @@ (define-public python-pytest-csv
 it adds to the Pytest command line interface (CLI).")
     (license license:gpl3+)))
 
+(define-public python-pytest-flakefinder
+  (package
+    (name "python-pytest-flakefinder")
+    (version "1.1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "pytest-flakefinder" version))
+       (sha256
+        (base32 "03iy80xlkpgzjs2kxa9rrj8dbnp9awyhpcl3hy8fgf5x40cjlhg2"))))
+    (build-system pyproject-build-system)
+    (propagated-inputs (list python-pytest))
+    (home-page "https://github.com/dropbox/pytest-flakefinder")
+    (synopsis "Pytest plugin for finding flaky tests")
+    (description "This package provides a Pytest plugin to run tests multiple
+times and detect flakyness.")
+    (license license:asl2.0)))
+
 (define-public python-testfixtures
   (package
     (name "python-testfixtures")
-- 
2.41.0





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:40:28 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:40:28 2024
Received: from localhost ([127.0.0.1]:58185 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1roA2M-0007rc-R3
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:40:28 -0400
Received: from mout01.posteo.de ([185.67.36.65]:58543)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9VD-0006Nr-MQ
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:12 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 503E0240028
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:23 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231524; bh=yx4mr88ZNH5uC1bwX/SeZB2PHGyj/MaLFFJd3cxYz98=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=rGJXlp8uey/h2dqyX9zwqNGxvuun1JYqysFsBGSgudYluvlCPKdITOCZe/2xbxxr6
 /c5oJnfef+31OntYwwaLrDxkFM7uyLdL0O+gg5h5gCt+kSn9zVWxQVzSpTY0JpIxCH
 yhL3ozXEIFyL9zYoh0DTvJ+5Qt5X97hH7LvC5nhTwGclkKecfbyU3mB7GkD3u5ZOcl
 4bWFCrYIxyhTCQ3z87wpGPTqVStVhMrll2kMKwuhAGB6i+jXmwzkQIpcEoinpV/gqu
 amY1/7XGRKDjafGiXfCYRcwx913UhYsua3WcOlrBcgeFIaB/Imkt7PmEyzqPE5awiq
 XaemHaVXtDx0g==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2CtW4lF0z6trs;
 Sat, 23 Mar 2024 23:05:23 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 06/32] gnu: Add python-expecttest.
Date: Sat, 23 Mar 2024 22:04:45 +0000
Message-ID: <20240323220518.25063-6-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:40:27 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:40:26 2024
Received: from localhost ([127.0.0.1]:58178 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1roA2H-0007rH-B1
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:40:26 -0400
Received: from mout02.posteo.de ([185.67.36.66]:48581)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9VA-0006Nk-3Q
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:09 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 8F2E1240101
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:20 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231520; bh=+fkPc+qid1JCMgoY6fXoEs7MwOzRCdUA2T/bQDjmCyQ=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=n91b1EXZuoS/xFxJZQ6XFxg6xS0YR3+O7qxXav6/50oHDX8pWH9yYITBK+3ULtV2c
 jg/LWLq+a9M7pMjlFAfv9jmt/vVOZsrKC6LDm8OcXJllNkXxdhuWrNAMdD71e5scJD
 Ci+ln4rfLeJyLTm2ozgxdSswjNXKxfCL58oHpBNnZIma9ST/YA4DDKj/ID1Jt/UCl1
 Ek2At6vJopatil81jF9T3/StWfAcFiVfkhCXFj51bDLbyzDnl1vVE1gZyn5O+NZxRD
 1VCoHWQYEc5CxbDhzq2rxzbzb6NKm3Ktw8YRfp/x3lgDXsW52YgORMq0uALkrR8/3u
 rbDpcmZDQ4XTw==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2CtR6RdBz6trs;
 Sat, 23 Mar 2024 23:05:19 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 01/32] gnu: asmjit: Update to commit 3ca5c18.
Date: Sat, 23 Mar 2024 22:04:40 +0000
Message-ID: <20240323220518.25063-1-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:25:22 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:25:22 2024
Received: from localhost ([127.0.0.1]:57484 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9nl-0007Dq-JF
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:25:22 -0400
Received: from mout01.posteo.de ([185.67.36.65]:54563)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9dM-0006lL-SR
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:14:38 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 192BE240027
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:28 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231528; bh=DaiUBW+x58c0jsoKdIveCaRofAAIYagdmwvRSfc6O4Y=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=UndJcqIfaJkYYrPCx0HqL+TapfB4uGmatZvgtRWgwEAhbhV9J3X9hqg61MbzW8G9L
 l0Lms/GE1x7OLnFTEJ5eF+G+uhIeK1SWj3NfgAb9y9BtCkOnZhwX/sQrl7kOhz06J9
 LewWhBfH9Thl5LcAFFc9G2RKtNGkv3Yh10r5DwkqdSreyhwqILHmufREwCAQ+A/GVX
 bCCJ+q9Nm0nqKU5Ljz5ae2X0FIRVWru8bTqW1PuQ6JNO4j4MTgvbQD1aJpimtV1Q7R
 9Y04I+vUYLbF1ryr55H+Q7uuCijfU0zkX0k07x+qH8ijrjDQsEEG2n9gwTXXLXZR/E
 Lo278KhV/vyNQ==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2Ctb5Xzgz6tx0;
 Sat, 23 Mar 2024 23:05:27 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 14/32] gnu: cpuinfo: Update to commit aa4b216.
Date: Sat, 23 Mar 2024 22:04:53 +0000
Message-ID: <20240323220518.25063-14-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

diff --git a/gnu/local.mk b/gnu/local.mk
index ca83a84ea2..474260b764 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1068,7 +1068,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/cool-retro-term-wctype.patch		\
   %D%/packages/patches/coreutils-gnulib-tests.patch		\
   %D%/packages/patches/cppcheck-disable-char-signedness-test.patch	\
-  %D%/packages/patches/cpuinfo-system-libraries.patch		\
   %D%/packages/patches/cpulimit-with-glib-2.32.patch		\
   %D%/packages/patches/crawl-upgrade-saves.patch		\
   %D%/packages/patches/crc32c-unbundle-googletest.patch		\
diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm
index e1cbe52934..4238312367 100644
--- a/gnu/packages/parallel.scm
+++ b/gnu/packages/parallel.scm
@@ -480,8 +480,8 @@ (define-public pthreadpool
 (define-public cpuinfo
   ;; There's currently no tag on this repo.
   (let ((version "0.0")
-        (revision "2")
-        (commit "53298db833c5c5a1598639e9b47cc1a602bbac26"))
+        (revision "3")
+        (commit "aa4b2163b99ac9534194520f70b93eeefb0b3b4e"))
     (package
       (name "cpuinfo")
       (version (git-version version revision commit))
@@ -492,12 +492,13 @@ (define-public cpuinfo
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "01kfgxya2w32dz9bd3qm3i2d6nffw0qfyql11rxl7d3g830brj5k"))
-                (patches (search-patches "cpuinfo-system-libraries.patch"))))
+                  "12x4krkyzxngf1l2ck33lnsp8pyzf6gyjj9mp9cnka9mw3h6617m"))))
       (build-system cmake-build-system)
       (arguments
        (list
-        #:configure-flags '(list "-DBUILD_SHARED_LIBS=ON")
+        #:configure-flags
+        '(list "-DBUILD_SHARED_LIBS=ON"
+               "-DUSE_SYSTEM_LIBS=ON")
         #:phases
         '(modify-phases %standard-phases
            (add-after 'unpack 'skip-bad-test
@@ -513,6 +514,9 @@ (define-public cpuinfo
        "The cpuinfo library provides a C/C++ and a command-line interface to
 obtain information about the CPU being used: supported instruction set,
 processor name, cache information, and topology information.")
+      ;; On aarch64-linux, there is a bug reported upstream:
+      ;; https://github.com/pytorch/cpuinfo/issues/14
+      (supported-systems '("armv7-linux" "i686-linux" "x86_64-linux"))
       (license license:bsd-2))))
 
 (define-public clog
diff --git a/gnu/packages/patches/cpuinfo-system-libraries.patch b/gnu/packages/patches/cpuinfo-system-libraries.patch
deleted file mode 100644
index e25446e9da..0000000000
--- a/gnu/packages/patches/cpuinfo-system-libraries.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-This patch allows the build process to use the provided dependencies instead
-of adding their source as CMake sub-directories (in which case "make install"
-would install googletest's and googlebenchmark's libraries and headers).
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 57abc26..761c612 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -93,7 +93,7 @@ SET(CONFU_DEPENDENCIES_BINARY_DIR ${CMAKE_BINARY_DIR}/deps
-   CACHE PATH "Confu-style dependencies binary directory")
- 
- IF(CPUINFO_BUILD_MOCK_TESTS OR CPUINFO_BUILD_UNIT_TESTS)
--  IF(CPUINFO_SUPPORTED_PLATFORM AND NOT DEFINED GOOGLETEST_SOURCE_DIR)
-+  IF(FALSE)
-     MESSAGE(STATUS "Downloading Google Test to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googletest (define GOOGLETEST_SOURCE_DIR to avoid it)")
-     CONFIGURE_FILE(cmake/DownloadGoogleTest.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googletest-download/CMakeLists.txt")
-     EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
-@@ -105,7 +105,7 @@ IF(CPUINFO_BUILD_MOCK_TESTS OR CPUINFO_BUILD_UNIT_TESTS)
- ENDIF()
- 
- IF(CPUINFO_BUILD_BENCHMARKS)
--  IF(CPUINFO_SUPPORTED_PLATFORM AND NOT DEFINED GOOGLEBENCHMARK_SOURCE_DIR)
-+  IF(FALSE)
-     MESSAGE(STATUS "Downloading Google Benchmark to ${CONFU_DEPENDENCIES_SOURCE_DIR}/googlebenchmark (define GOOGLEBENCHMARK_SOURCE_DIR to avoid it)")
-     CONFIGURE_FILE(cmake/DownloadGoogleBenchmark.cmake "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark-download/CMakeLists.txt")
-     EXECUTE_PROCESS(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" .
-@@ -271,14 +271,6 @@ INSTALL(TARGETS cpuinfo
- 
- # ---[ cpuinfo micro-benchmarks
- IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_BENCHMARKS)
--  # ---[ Build google benchmark
--  IF(NOT TARGET benchmark)
--    SET(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "")
--    ADD_SUBDIRECTORY(
--      "${GOOGLEBENCHMARK_SOURCE_DIR}"
--      "${CONFU_DEPENDENCIES_BINARY_DIR}/googlebenchmark")
--  ENDIF()
--
-   IF(CMAKE_SYSTEM_NAME MATCHES "^(Linux|Android)$")
-     ADD_EXECUTABLE(get-current-bench bench/get-current.cc)
-     TARGET_LINK_LIBRARIES(get-current-bench cpuinfo benchmark)
-@@ -289,7 +281,7 @@ IF(CPUINFO_SUPPORTED_PLATFORM AND CPUINFO_BUILD_BENCHMARKS)
- ENDIF()
- 
- IF(CPUINFO_SUPPORTED_PLATFORM)
--  IF(CPUINFO_BUILD_MOCK_TESTS OR CPUINFO_BUILD_UNIT_TESTS)
-+  IF(FALSE)
-     # ---[ Build google test
-     IF(NOT TARGET gtest)
-       IF(MSVC AND NOT CPUINFO_RUNTIME_TYPE STREQUAL "static")
-- 
2.41.0





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:24:51 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:24:51 2024
Received: from localhost ([127.0.0.1]:57454 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9nD-0007C4-Pr
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:24:51 -0400
Received: from mout01.posteo.de ([185.67.36.65]:50703)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9n2-0007BA-9n
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:24:41 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id BEC2E240028
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:34 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231534; bh=RmXA4KQLHNTeaoXLtf3ZLzucYCRA+Gw8EqsliazGUXU=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=eONNMG+ujTUgD0Tczhw2SDHZ3mIJSjFpb6azbVQ16zx4RFLI6brMKocErvCmzDtG0
 MkUIEzg0btlPgGRSOCl5bR92c0UYWSNePbLBaWQG1vip3D/QkwcOHIPtHMh9oN5J+5
 YptP89iMKha5olWHhh7DLcxUNak9xApjjNpCuZEgMlmp7BjqZMFjm7GTdBgZxO+yPz
 dLJnEHTmC2cOPpy7D+KAgzslmmNuQYkQvOYV2TmZr/zLqHRWwg69nnNon9Z6BoZj9f
 Okzbo5NEO5pRsBv3g4tp/jsZstmwM8igsSqah+Da1Ma9804F82x9lKSlOjDGzvSqDf
 Qp7iBYAijbfTg==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2Ctk2N0gz6tm4;
 Sat, 23 Mar 2024 23:05:34 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 26/32] gnu: python-pytorch: Update to 2.2.1 and unbundle
 dependencies.
Date: Sat, 23 Mar 2024 22:05:05 +0000
Message-ID: <20240323220518.25063-26-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -1.6 (-)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.6 (--)

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

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:24:40 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:24:40 2024
Received: from localhost ([127.0.0.1]:57446 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9n5-0007Ba-8L
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:24:40 -0400
Received: from mout01.posteo.de ([185.67.36.65]:57547)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9n2-0007BB-7Q
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:24:37 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 8745A240028
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:22 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231522; bh=ZiC8+Bdr2GOKIJUEuMkrkyWc8vKaDUV0z/pklwALHuk=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type:
 Content-Transfer-Encoding:From;
 b=IUxh3J2lKhnVOS4cGvX6jBiUjmqFxyUokAnkj4fu8JYtwEEasPHSQ9UiJ3KK3JGyt
 vp93zMmC4BKIIVmrPJHV1rG+jxNbmwdpxPVnGvNvWL5jB0+1G2+wCVMkSnVj8CgbpH
 N07KMbBOd+KdiPJwDig3YGFiXQ7Nk4DqyOqY543ko9qFAYeB6rHMec2nQODMrLFhjg
 +/RF1SMHsFnGGGR0QW8nnmrXYXWFr3KFVrgD6sZVw1RXk8BIaljF5aII20YhEbelDl
 In5d6ASQ16MZOrE9fmEZzlXDu7iAfgsdq5UCzVO1AF4EQqBwXmKvF8TQ1HC5aHqJJd
 6x5b3SHRuwK0g==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2CtV0ZDLz6trs;
 Sat, 23 Mar 2024 23:05:22 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 03/32] gnu: Add python-optree.
Date: Sat, 23 Mar 2024 22:04:42 +0000
Message-ID: <20240323220518.25063-3-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:24:25 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:24:25 2024
Received: from localhost ([127.0.0.1]:57430 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9mq-0007Al-Jg
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:24:25 -0400
Received: from mout02.posteo.de ([185.67.36.66]:47349)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9mn-0007AJ-DM
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:24:22 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 878E1240103
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:25 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231525; bh=E4wIn7qn7CCbSI86fGLYbuVGf0twXWiPv3T8+ISg4Oc=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=qc4/ctdTpZ2DH9xzz4AVSO1ivRPePKI0SKUhaMIE+jTCzIlSSinn6UYnuDr9JCZw8
 VlDmdEBz3nan92jbeW2/dV69GJlV1wvgHWpqURXEsKTrkNP/0pibZBWuvFqX+KJlHC
 oJC7ecoKflTFp7lns5u4FORxQL/uTtOwT5Ok/MNtAXjc+UrliAfq+GZLnFuy5/fItL
 /tlA5uJKXSkOpFxPEZtSzzXJZTpmo/iQj9hm6P9Na5B96cpEzCmUvJR9BwCat7vHcs
 IX7KQKjPZicU0QmQF+7b+taYpzouPa0ub22FlICQioDJf1ymji6py9KaOXl/cipxBQ
 fggiJUfAnLNdg==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2CtY1ZlYz6tx0;
 Sat, 23 Mar 2024 23:05:25 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 09/32] gnu: Add miniz-for-pytorch.
Date: Sat, 23 Mar 2024 22:04:48 +0000
Message-ID: <20240323220518.25063-9-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:24:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:24:24 2024
Received: from localhost ([127.0.0.1]:57427 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9mp-0007Ai-T5
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:24:24 -0400
Received: from mout02.posteo.de ([185.67.36.66]:50537)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9mn-0007AI-EF
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:24:22 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 8C20D240101
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:26 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231526; bh=aIisXm8T0hsg+K7iP/NvnCqFi8aWx7iJ8o8Mvctx5Vo=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type:
 Content-Transfer-Encoding:From;
 b=cH5RX0jX+j3z6XBrp1USXY/dl+I34YLVipxuxnEwPoW2dEzdlz11M3bWgRQ2frgex
 RAIWJmnNTivPlQiMoiQqDXwYbgMvlKYzStDGKynFsRrsiMd/26YJnYUm/GvgKHAmXO
 A+9FnY01RwexkAtbKEhTPhSWmNgltG3vBWrs+9z9SQpBHCrHXMpcznSKwVghebmuWT
 hu5FLICKV7/M1Kg2DcFH3S2yjBrlHvWm9G4EB8Hfmn3G51dqw3xC/DwUeqBWs5rDx5
 nSTD1GqAGKi99qiQI2lSIURM9UhYV30kmN9oUSonT6Ksa0LwjMOWpgl+KKGPaRyd/l
 A7RzFjC8uGzeA==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2CtZ1lnkz6tx0;
 Sat, 23 Mar 2024 23:05:26 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 11/32] gnu: Remove flatbuffers-next-shared.
Date: Sat, 23 Mar 2024 22:04:50 +0000
Message-ID: <20240323220518.25063-11-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 003be7e3c6..c6aa394fbc 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -27,6 +27,7 @@
 ;;; Copyright © 2024 David Pflug <david@HIDDEN>
 ;;; Copyright © 2024 Timothee Mathieu <timothee.mathieu@HIDDEN>
 ;;; Copyright © 2024 Spencer King <spencer.king@HIDDEN>
+;;; Copyright © 2024 David Elsing <david.elsing@HIDDEN>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -3337,7 +3338,7 @@ (define-public tensorflow-lite
          (string-append "-DEigen3_DIR=" #$(this-package-input "eigen")
                         "/share/eigen3/cmake")
          (string-append "-DFlatBuffers_DIR="
-                        #$(this-package-input "flatbuffers-shared")
+                        #$(this-package-input "flatbuffers")
                         "/lib/cmake/flatbuffers")
          (string-append "-DNEON_2_SSE_DIR=" #$(this-package-input "neon2sse")
                         "/lib/cmake/NEON_2_SSE")
@@ -3424,7 +3425,7 @@ (define-public tensorflow-lite
        ("cpuinfo" ,cpuinfo)
        ("eigen" ,eigen)
        ("fp16" ,fp16)
-       ("flatbuffers-shared" ,flatbuffers-next-shared)
+       ("flatbuffers" ,flatbuffers-next)
        ("gemmlowp" ,gemmlowp)
        ("mesa-headers" ,mesa-headers)
        ("neon2sse" ,neon2sse)
diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm
index bfee0dbfc6..405c4211da 100644
--- a/gnu/packages/serialization.scm
+++ b/gnu/packages/serialization.scm
@@ -890,17 +890,6 @@ (define-public flatbuffers-next
                (base32
                 "1z3a6l8g2y53i5xzraswfs2i0i3kk52zv7nzc2q3fgisbyiri3pz"))))))
 
-(define-public flatbuffers-next-shared
-  (package
-    (inherit flatbuffers-next)
-    (name "flatbuffers-shared")
-    (version "23.1.21")
-    (arguments
-     (substitute-keyword-arguments (package-arguments flatbuffers-next)
-       ((#:configure-flags  flags)
-        ;; Compile with -fPIC, needed for shared lib.
-        #~(cons "-DFLATBUFFERS_CXX_FLAGS=-fPIC" #$flags))))))
-
 (define-public python-flatbuffers
   (package
     (name "python-flatbuffers")
-- 
2.41.0





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:14:37 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:14:36 2024
Received: from localhost ([127.0.0.1]:57013 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9dM-0006m8-Q7
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:14:36 -0400
Received: from mout02.posteo.de ([185.67.36.66]:47923)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9dF-0006kb-FJ
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:14:30 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 33477240101
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:33 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231533; bh=9ti1H4m5qOhahUq6Af4NqUY1E2VAm2gjJbghWRei9TA=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=AK6OIBfsoA1VD/tvSQhBlF3Wj5GD1mVo0c5kZrn9zzyxvz2qAaS3CtxdGaK7ANtjq
 OOHwY9byRTE69/YlgkEzUhZhBra8f1m2Zk/Q1eNxR0Qdpu11Hj/odJM0dp/AnI5ME+
 3bD6sUFuFm2oz/DfX5UO2qo2qKjQWUkVRFyBp5FXW2uHENNetb6ygSksvkDzbxAp5A
 sKYkSZ9LMhFeIYUIZ++uVk0qxHfmHAyEB+TUSj4L/DscFbTrXrz9Dz26zHMu1bAeOo
 tQIWwYScH6CR2JW2hDbdBcTqefsrnapS5tYPbtaOhIqTsAbjLxoNt+2Cf8ktI4AHEg
 bQJetjMTz/KNw==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2Cth2dxjz6tm4;
 Sat, 23 Mar 2024 23:05:32 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 23/32] gnu: xnnpack: Update to commit 51a9875.
Date: Sat, 23 Mar 2024 22:05:02 +0000
Message-ID: <20240323220518.25063-23-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

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

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

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






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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:14:37 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:14:36 2024
Received: from localhost ([127.0.0.1]:57011 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9dM-0006m1-EO
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:14:36 -0400
Received: from mout02.posteo.de ([185.67.36.66]:56577)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9dE-0006kN-Au
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:14:29 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 135F3240101
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:27 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231527; bh=e/U59QEfJ19cguY160n+TUJSqRoZ8GqrhhheggQUTYQ=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=n0tQFNM0rorM0/+PDeC15nea+UlsSpR2qLn2hd/OwMAXSojwZz9BHMx8RH01HK4U7
 UDq28IU+HKfeI+AA+KXjS+latlkl/u9V50aD4RV9OmPE58FD7ufounZiQuQqHQCBF/
 4V9NYE+sSph5N6R8ha/qjxqldjcn03RFLKtdI1lTuxKTe+PzFiWbgWYtwtPgdCUzfU
 tE8tIIdaTDLFm8wMd/TKVCrZG/gcrlOnYVX7q5pN0JTqMK6FTDXUirZJcSvA2eUE+0
 kaAQDemwI8yYBUAsFcs5JYDObHb2AMeHdII/mbq0LTwXxdtaaq93Q9yYI5i2kcrk1I
 +HWLJ6kNfvWfg==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2CtZ5KwKz6tx0;
 Sat, 23 Mar 2024 23:05:26 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 12/32] gnu: python-flatbuffers-next: Update to 23.5.26.
Date: Sat, 23 Mar 2024 22:04:51 +0000
Message-ID: <20240323220518.25063-12-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:14:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:14:36 2024
Received: from localhost ([127.0.0.1]:57009 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9dL-0006lq-PQ
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:14:36 -0400
Received: from mout02.posteo.de ([185.67.36.66]:59773)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9dE-0006kO-Ar
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:14:29 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 0F6F2240101
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:26 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231526; bh=D306KLEO238w/zPmU3FkbUhCwrvVZXNI8rwoEBvhtvs=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type:
 Content-Transfer-Encoding:From;
 b=MafMo/M/ngjflkk1olPmK/0GKgD9Vmli9qz7XOJCuzVYSpDkcX3NUJWiR5D0isAFS
 FHfgdq8oz9gRiLJzRQdEnwPuPdJSlN9mWz/yC5lirLXpoZrUt3tPk7Bvnmm51qkmRk
 vdHQenz1tQ0nz+xzGGbO4vJn6fAZhaCfBtvMgvGNoKgZtlM9jZ37mEZbfURPZvnd/8
 WB93qbgtqH0RavZuu9EgpsPvdf8HCg6As4/nm3yyj6y2uR6BqFWpIi5+ruzvc1UZeD
 6aPLUSdLQxdZ79yDIZwosViXGdIfbVH6QnT2vQbldHlr+mAWA7cdbmH5NSWGNAWwJR
 WB7DkDjAqvoNw==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2CtY5B2yz6ty7;
 Sat, 23 Mar 2024 23:05:25 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 10/32] gnu: Add libnop.
Date: Sat, 23 Mar 2024 22:04:49 +0000
Message-ID: <20240323220518.25063-10-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:14:35 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:14:35 2024
Received: from localhost ([127.0.0.1]:57005 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9dJ-0006lf-LQ
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:14:35 -0400
Received: from mout02.posteo.de ([185.67.36.66]:38949)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9d7-0006jv-EM
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:14:24 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 26F65240103
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:38 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231538; bh=AN8ZX8sitKa1xoeKt/mSoDX5m/oZWm2rT+SQUqZ7yk8=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=GWWYhRkERBbFiYLWIpcdZuRs8AIz8lmGTB2W9M2VqBQrmnF2tpaWQjh6le68NCN3L
 GHUXggbHo7S6ZGuhDOze3cjx3NCXj9PgVIK5ov8ckdT7ZABAq2XJBToxVqVwFVuF68
 8lbziXPxpYNYqnjKplN+i/LGjHBVtwGT2XgRQ7yu1eyxW8FY+CNtfvQ49HJ3riEgK7
 mYa0r58A2d9B66BiVgRlEY6cwq2Sduozcu6VT52SdmPCtKqzRzf//wRTNOT1m687xZ
 K29Fa3D4X5Cxu+t1XG3FeCZHOwU2FSgcOnm5Ke9JyT3G7jjf9P39uotKuDV9kQVmSw
 AF0C9VsToly+A==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2Ctn4zkNz6twD;
 Sat, 23 Mar 2024 23:05:37 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 32/32] gnu: python-pytorch-for-r-torch: Adjust to new
 python-pytorch.
Date: Sat, 23 Mar 2024 22:05:11 +0000
Message-ID: <20240323220518.25063-32-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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






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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:14:33 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:14:33 2024
Received: from localhost ([127.0.0.1]:57003 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9dJ-0006lZ-5v
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:14:33 -0400
Received: from mout02.posteo.de ([185.67.36.66]:48649)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9d7-0006jx-Em
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:14:24 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 960FC240101
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:28 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231528; bh=46JZETtr3S9WOsXOtdEyqWRlNQF/Hiz+UVAAeR/PRGE=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=VMbwVXS+wQIDNxUgGgKGtycf3KoML8eRkJG2ZxZTG9xDYkO1jxkz0eBWoZLSfszUl
 2CFXBi+afkir68jLliXsQFaFRrm0APhhkzpwSRngC2EsrMOA8AETSNOuETvWT0Jkq5
 C6nwEDRkoLX0uJ4kLozyGEBbxj+/3c9GAtnHEXKatLpZcbGTNkqz3InrrFFarGRWRI
 QGa7FnnNc+qula/f6h5KlH7hndhrAPl6PMm/XRmjs+O2tqA9UySDj1EnKA8cGmLmwD
 Pm2UIj3sSKlPY3kZiWzQNo1v7Qvo2g/uLpQzQQ4q5ZqPZU+FkM4zsKQSkrR1MGXLBQ
 JLKGiLf1s/iXA==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2Ctc1znxz6tx0;
 Sat, 23 Mar 2024 23:05:28 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 15/32] gnu: clog: Add "-DUSE_SYSTEM_LIBS=ON" configure flag.
Date: Sat, 23 Mar 2024 22:04:54 +0000
Message-ID: <20240323220518.25063-15-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:14:33 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:14:33 2024
Received: from localhost ([127.0.0.1]:57001 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9dI-0006lQ-Oi
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:14:33 -0400
Received: from mout02.posteo.de ([185.67.36.66]:53199)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9d7-0006jw-Ey
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:14:24 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id DCB97240104
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:21 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231521; bh=P8U0tGSEoonbSVCdIN0R1YqZQPLmOnKh11xbUr5p72I=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type:
 Content-Transfer-Encoding:From;
 b=bfC3tp7X7ZY0zXqfet+EgWfI09brphcvdn20RZZ43W9l0rr44pGCFsCIpZYux92jQ
 sjFgTq1mUw2vzYn+IUH4NAEF5fUGUMWMliBsx75UKForZVU+3QJXgPkLyOGoGKj6Vk
 zkogccYNZ5DAczFATRQ4vKZDJzxUk+BX5jzuHiEqxLaGsSqyPY/JL5r09oiBduu//g
 l0iKj3YpKpTwPYM2dQjXLEodmHVnfZFE3ifOVqnSv1I8z2pkoqj7+tKSzSo3noBM5/
 DM7wSXpOFbIwppqMnxitSeENI/7wXz9QFzEnXb8TYsuPG0Fzcd8QnkZumIeekyxfcF
 +x9PUT0bxVs4g==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2CtT40pXz6tvx;
 Sat, 23 Mar 2024 23:05:21 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 02/32] gnu: Add python-typing-extensions-4.10.
Date: Sat, 23 Mar 2024 22:04:41 +0000
Message-ID: <20240323220518.25063-2-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

diff --git a/gnu/packages/python-build.scm b/gnu/packages/python-build.scm
index 2ea457cdba..dfd59d5e25 100644
--- a/gnu/packages/python-build.scm
+++ b/gnu/packages/python-build.scm
@@ -10,7 +10,7 @@
 ;;; Copyright © 2020, 2021, 2022, 2023 Ricardo Wurmus <rekado@HIDDEN>
 ;;; Copyright © 2022 Garek Dyszel <garekdyszel@HIDDEN>
 ;;; Copyright © 2022 Greg Hogan <code@HIDDEN>
-
+;;; Copyright © 2024 David Elsing <david.elsing@HIDDEN>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -252,6 +252,18 @@ (define-public python-typing-extensions
 @end enumerate\n")
     (license license:psfl)))
 
+(define-public python-typing-extensions-4.10
+  (package
+    (inherit python-typing-extensions)
+    (version "4.10.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (pypi-uri "typing_extensions" version))
+       (sha256
+        (base32
+         "1jxkj4pni8pdyrn79sq441lsp40xzw363n0qvfc6zfcgkv4dgaxh"))))))
+
 
 ;;;
 ;;; Python builder packages.
-- 
2.41.0





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:14:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:14:32 2024
Received: from localhost ([127.0.0.1]:56999 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9dI-0006lO-FT
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:14:32 -0400
Received: from mout02.posteo.de ([185.67.36.66]:60501)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9d7-0006k1-Gz
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:14:23 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 7EA06240101
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:24 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231524; bh=B6JjtbWBOY9MM2aFAc1IVzH5tEEsle68mvGqlydOWRo=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=nfUzsEWwBYRJipgQoKuCl0S6IMeCmuJS3lvwYPUU1fDFMG7gofHHmZRhGEpjXjkSX
 pKXC8HKhcvao8OwXmELQwrYq5xtybJ95GnaUhQgLsFMiW94X6mvozePF6SIKWM+XG2
 WR4mIz8f5uy2/reTlYdcXeQsxCvhqJ1+24dpwQLKI/Sukl5v50JQohDTtmc8jStoFq
 rfk16wP3jeo6wdYs/o6FOy9KO1mtiDX0KfWK+sEwXkFG5CFQoLo2EnJkYwf0sjAaql
 uJ2c39bxbejMmlRsjCR5r8z0yC7UQ4ZBgDnoyVtS/H1aHI+y4QT8LNWpCZ24JQMkEb
 reSqXBgdtghDA==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2CtX1HlRz6tx0;
 Sat, 23 Mar 2024 23:05:24 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 07/32] gnu: Add python-pytest-rerunfailures-13.
Date: Sat, 23 Mar 2024 22:04:46 +0000
Message-ID: <20240323220518.25063-7-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:06:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:06:53 2024
Received: from localhost ([127.0.0.1]:56622 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9Vt-0006Rz-5a
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:53 -0400
Received: from mout01.posteo.de ([185.67.36.65]:32819)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9VS-0006PH-2L
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:26 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 6FEB5240027
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:36 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231536; bh=LjVA9fg5k/GvoN4TGoRlEbYcbw86mQi154D/JEavUY8=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=oZN0hxA9fMK/K5AhXCMR1gO5Ht7KXo2ANCDXY0P5xTZb3qdu81sp4TsllKcKam49a
 ZQBm0S3jK+MQL2dSebbCfUZIAb8MsKtufRQTpLe/WHVwcjRKECBSZ1Rn3B+666/2if
 INP1WAqZXy/yNxio48LjRJ4dQ1uLcpKQAP96wUx4aJX5owsgOYBLkCm8Sz41RK+67I
 R8YduJYmz0i5E8QOyCARf+Ctbfzg7DUdFkSVQSf4wyRZV4onXFOghvC8LJLYv8j0VW
 pvZfiw1L08VtolwR6970gWpNTVr2IGUqc+szkvQ+hSoZ2IItQJeP9xPQLMhJaOvpAI
 oHAg9lcVoqo+A==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2Ctm0vqdz6tx0;
 Sat, 23 Mar 2024 23:05:36 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 29/32] gnu: Add ideep-pytorch-for-r-torch.
Date: Sat, 23 Mar 2024 22:05:08 +0000
Message-ID: <20240323220518.25063-29-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:06:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:06:53 2024
Received: from localhost ([127.0.0.1]:56620 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9Vs-0006Rq-Pq
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:53 -0400
Received: from mout02.posteo.de ([185.67.36.66]:42171)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9VQ-0006Ox-Gx
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:25 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 7CD4A240101
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:37 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231537; bh=GWTDffaLxDBIA6wjOFnW0ICr1U5L6HcQ630FSO+vTbw=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=IC+qFKER4iiL/AlPVxR/3SznTNZz2PrmM9gAdTk8megQRmxK3EJUOeRTNi/003K0x
 g6JEE4c3lKSMszAXESCEA0RtfwDT7SZ/hMaeeC7C/MnIejKb2ttVEkeGMZjrlQbb/l
 y+TakOxS2YFgg2U3et7eEVAebXEETc53j21hfN+wDb5R/HfaWO0uvD50MV2A33H1sw
 JKUzDq8w609nSiJPzKDAD89U6iTC3wKZM2tt2KKm4qKV2UIKDRr22+scbCgpSope8M
 cJaOGtYXaIYVhns1Q1nnEHbTwvo1sVVUka1197P/+cS4NElPXLw3dYDZO9CTKARjAg
 mVas654SawnWg==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2Ctn17zXz6tyY;
 Sat, 23 Mar 2024 23:05:37 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 31/32] gnu: Add qnnpack-pytorch-for-r-torch.
Date: Sat, 23 Mar 2024 22:05:10 +0000
Message-ID: <20240323220518.25063-31-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index ae17869adc..834de52fa1 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -4743,6 +4743,34 @@ (define-public python-pytorch-avx
            (delete 'disable-avx-dependencies)))))
     (supported-systems '("x86_64-linux"))))
 
+(define %python-pytorch-for-r-torch-version "2.0.1")
+
+(define %python-pytorch-for-r-torch-src
+  (origin
+    (inherit %python-pytorch-src)
+    (uri (git-reference
+          (url "https://github.com/pytorch/pytorch")
+          (commit (string-append "v" %python-pytorch-for-r-torch-version))))
+    (file-name (git-file-name "python-pytorch"
+                              %python-pytorch-for-r-torch-version))
+    (sha256
+     (base32
+      "0iirrn687i7sfv0p0i7dn89x3rf13a7l8y1y5h190h51yjxpxqxa"))))
+
+(define-public qnnpack-pytorch-for-r-torch
+  (package
+    (inherit qnnpack-pytorch)
+    (version (string-append "pytorch-" %python-pytorch-for-r-torch-version))
+    (source
+     (origin
+       (inherit %python-pytorch-for-r-torch-src)
+       (patches '())
+       (modules '((guix build utils)
+                  (srfi srfi-26)
+                  (ice-9 ftw)))
+       (snippet
+        (origin-snippet (package-source qnnpack-pytorch)))))))
+
 (define-public python-pytorch-for-r-torch
   (package
     (inherit python-pytorch)
-- 
2.41.0





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:06:52 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:06:52 2024
Received: from localhost ([127.0.0.1]:56619 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9Vs-0006Rk-ML
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:52 -0400
Received: from mout01.posteo.de ([185.67.36.65]:51695)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9VP-0006Op-PT
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:24 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id BDF1D240028
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:33 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231533; bh=IkQwWhKjHQTIzx4qYlttW5N03UOGJKecQcRSne9+99Q=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=g8tRArw48q4fjrKYxNsdyQtQHdJUs530EDhElz6VGjq2bloSe9UDV+ohJZkdqmaPC
 mv/RI/2hscvOH75Z2i1skvgO9+JGp/lqgwNQFsBycDR7X2DlZenEX3CzGu7JF8vY86
 55UQNpLk4ZX36EmgfrLOpLgr50MBhGv/Jllg8Km6YxigIWfKb5Khcmgx5qb1aOA79O
 vDQdubCrGPDDDOXqgqnNsv0OPc5NCSqMsPWfHNbqUuujkV+AoK+QmDNHEebmA828tl
 w/4RV+P38YZ0XAjKemqvXIA4Jochwu3IRPLTKa1bX/upbunOXwPiWrytL9/WwYdKoj
 AYFN0rlONjqnw==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2Ctj11zmz6tm4;
 Sat, 23 Mar 2024 23:05:33 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 24/32] gnu: Remove xnnpack-for-torch2.
Date: Sat, 23 Mar 2024 22:05:03 +0000
Message-ID: <20240323220518.25063-24-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

* gnu/packages/machine-learning.scm (xnnpack-for-torch2): Delete variable.
(python-pytorch-for-r-torch)[inputs]: Remove field.
* gnu/packages/patches/xnnpack-for-torch2-system-libraries.patch: Remove file.
* gnu/local.mk (dist_patch_DATA): Remove it.
---
 gnu/local.mk                                  |    1 -
 gnu/packages/machine-learning.scm             |   31 -
 .../xnnpack-for-torch2-system-libraries.patch | 2660 -----------------
 3 files changed, 2692 deletions(-)
 delete mode 100644 gnu/packages/patches/xnnpack-for-torch2-system-libraries.patch

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





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:06:52 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:06:52 2024
Received: from localhost ([127.0.0.1]:56617 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9Vs-0006Rd-2N
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:52 -0400
Received: from mout01.posteo.de ([185.67.36.65]:51299)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9VM-0006OY-Mw
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:21 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 9FCFB240027
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:30 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231530; bh=GVqdGfjQnJg9NybX1mPpNJPWPxVdhPwVowAg7K/0bXg=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=GqGbgafOPQM8nGoOo7QMTt7YmS1oBcl3catwv1U9GmXnL1uAqcCXd5/aaMIV4G0rl
 dhH9dkXsbPhSV+rE2ISs8Q/qDz+llZE40zeyf4g4OFJSM9C175kGZb/yVl0PRqvoSB
 aen3E7fXT5Si8QWSL62Tv2goxx9fKnyzep4myKYHN6LkCGAe4S4szYO5p2bSJ7vVw2
 tY3vXhgjvs7yHpXnwmvTv4fhomu8C48+aJrrf0TainPR+iJgT0yNxCVADIdC7UAmpv
 Dq5UDVJPKTp5mbSen0ET+FGdhDI9gLFpy1Jq+vjtdByIOLetZJBU/K+caxKA4KFe3l
 Md7p7pH3ADM4A==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2Ctf2GVqz6tx0;
 Sat, 23 Mar 2024 23:05:30 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 19/32] gnu: Add fbgemm.
Date: Sat, 23 Mar 2024 22:04:58 +0000
Message-ID: <20240323220518.25063-19-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:06:52 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:06:52 2024
Received: from localhost ([127.0.0.1]:56615 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9Vr-0006RU-MS
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:52 -0400
Received: from mout01.posteo.de ([185.67.36.65]:56923)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9VN-0006OH-05
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:21 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id EDCD5240027
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:36 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231537; bh=HZaa2G4bKjQBxeH/8lfBfqXgGYSiiA0ct3iYlnegwI0=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=luVgS0Frjg7PhHZ4n+YXtUOFkUlVlv0XzkBArGQqEj0J+V2zpfCqpJPFaK2s0Hn7/
 HgFLKJWjYwFWzlvHLAuUWccMQVuYH8ziUbLIE6RLOH+Na5J5OkRH3K0xbPB0jFs4fL
 qvhfZ+nTnpZjKQxry2LuwPSoj73ZSBsVfrcyFmLhSN9apscFoxXyJ2tuAnj0rc9rn6
 mH/ZBeqE+pevdILNPUH217E56+PNLk7KV/mFqSb/2rQf/m/HnEl9G1H0uIg2IZP0Jr
 6UHF1JjVpznJfuFeN43iwSd+BTvPBO074A+kUY9nMvIx61VoOVWi3XN1RaZeJu7VKj
 J3oZo6CR1t44Q==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2Ctm4XMRz6twD;
 Sat, 23 Mar 2024 23:05:36 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 30/32] gnu: Add oneapi-dnnl-for-r-torch.
Date: Sat, 23 Mar 2024 22:05:09 +0000
Message-ID: <20240323220518.25063-30-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:06:51 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:06:51 2024
Received: from localhost ([127.0.0.1]:56613 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9Vr-0006RN-9z
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:51 -0400
Received: from mout01.posteo.de ([185.67.36.65]:56923)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9VJ-0006OH-Mp
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:18 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 1A27A240027
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:29 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231529; bh=QQiRMzoLbyOdw5+Pev3/AUS45lE2/DqTmRUkkhbE468=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=F5Eno9gLl718Y7/H6sg8L5XujaUQiNJFJLFE1w45Td5NacWHPoPugkKloLwbOEd21
 oA+2NEBuWKvQixECbddwWnZ9O2gVtCfrN4IU0GkqKFbijcEBMGxVJkvAjH00Na+T/A
 2haWpkGB7lBkXpLY+gKrtYXLp+sjLjmfuwakmtRIdnT6rsUdLNbcZMA33dOJLPdj0b
 wY/ZdsHMEtMx6Gv7PAvm9SLRsgdGz5wOKGiRd5+mWRFZMgrTWxQtntFCGvMAVzlaCZ
 TTp07vAQ9lOftYACzYBpN4oi14OuKUoD8fgg6Y1LcKSYLbFWJPCpWI48vIndSF+hQW
 lCPuFWL/yV2cw==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2Ctc5ZDlz6tx0;
 Sat, 23 Mar 2024 23:05:28 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 16/32] gnu: nnpack: Update to commit 70a77f4.
Date: Sat, 23 Mar 2024 22:04:55 +0000
Message-ID: <20240323220518.25063-16-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index c6aa394fbc..1bb008b38f 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -3973,10 +3973,11 @@ (define-public python-umap-learn
 also for general non-linear dimension reduction.")
     (license license:bsd-3)))
 
+;; Requires AVX2 on x86_64-linux.
 (define-public nnpack
   (let ((version "0.0")
-        (commit "c07e3a0400713d546e0dea2d5466dd22ea389c73")
-        (revision "1"))
+        (commit "70a77f485e8b934224f3a79efd8edcd84cd377b8")
+        (revision "2"))
     (package
       (name "nnpack")
       (version (git-version version revision commit))
@@ -3987,19 +3988,11 @@ (define-public nnpack
                 (file-name (git-file-name name version))
                 (sha256
                  (base32
-                  "0s0kk3a35w3yzf0q447p72350sbsh4qhg6vm3y2djbj4xpg7jc8v"))
+                  "0c4pw926279s3rlx7mg4l4vhnfy6dh374n6w7zqhcn0bxpym1hv1"))
                 (patches (search-patches "nnpack-system-libraries.patch"))))
       (build-system cmake-build-system)
-      ;; XXX: The test suite runs but it's very expensive, and on x86_64 CPUs
-      ;; that lack the right ISA extensions, tests fail with:
-      ;;
-      ;; Expected equality of these values:
-      ;;   nnp_status_success
-      ;;     Which is: 0
-      ;;   status
-      ;;     Which is: 51
-      ;;
-      ;; where 51 is 'nnp_status_unsupported_hardware'.
+      ;; XXX: The test suite runs but it's very expensive. On x86_64-linux, it
+      ;; requires AVX2 instructions.
       (arguments '(#:tests? #f))
       (synopsis "Acceleration package for neural network computations")
       (description
@@ -4020,6 +4013,8 @@ (define-public nnpack
              googletest))
       (native-inputs
        (list python python-peachpy python-six))
+      ;; Supported for Linux.
+      (supported-systems '("x86_64-linux" "armhf-linux" "aarch64-linux"))
       (license license:bsd-2))))
 
 (define-public xnnpack
-- 
2.41.0





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:06:51 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:06:51 2024
Received: from localhost ([127.0.0.1]:56611 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9Vq-0006RD-QK
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:51 -0400
Received: from mout01.posteo.de ([185.67.36.65]:59383)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9VM-0006OG-SO
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:21 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id B56A0240027
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:35 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231535; bh=YOT9O9GoZrYHqbg0GkkbFVXQpbwLODMr4iL+NhIN7vg=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=jlE9SLFtdZpuqJhWat2ffaP38kEvT8CYTkxT/JiX9tSgpZgq10acC54aO4mOykfPM
 FIq19ttHTb2hB5EvFjgxl1GlohkJZ6SqdMdY5LyNqQjMIJy2DUe1Jl5AzIZ+Qb4ZiE
 fJlpTEuS7rDyi2k7r1tvzIyWBVz7wb+qxPLRlkx8BvPhdKKZwe/O5As0YYfv8eyWPD
 9hIfg//nNWze0ZyHDckDb6VFp6TwUwj/KM7GCRNoHFrDPQP0W2t7zyJdcnmiv9nBV3
 r4N4fgxC+TVUqFht/n2hPdkEmwjB7+TNfuOhUfeXgwpvWH8nxveX7ejki5aKnr935b
 0GlRV23n/0AzA==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2Ctl2vjBz6tx0;
 Sat, 23 Mar 2024 23:05:35 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 28/32] gnu: python-torchvision: Update to 0.17.1.
Date: Sat, 23 Mar 2024 22:05:07 +0000
Message-ID: <20240323220518.25063-28-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:06:51 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:06:50 2024
Received: from localhost ([127.0.0.1]:56609 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9Vq-0006R5-Cf
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:50 -0400
Received: from mout01.posteo.de ([185.67.36.65]:56923)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9VM-0006OH-8E
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:20 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 28921240028
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:35 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231535; bh=XrakZnI9yeXL+GBvFr2lUcBpIH/qnH3H8HNQrEUynXM=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=kGtIJXdmdkugWgt7PbiWDM0mcY8MLBYToqcnNMrtKqnCQ7iIix1AfjJjVyJZynbYd
 FdmvZFgZKUQwvmdE97Nc6PCkMTrQwdvHUli1gHg8CZKFHtgInLjJRDZuZtyH9d9UiH
 tIdUvNMb/V47lv0Jqp6jt7Am8qjpm0CtJLEMFFXbNC49oJIWGcPThkNkXqEEtqbacn
 pafD+cl7Pund7HqXF+VLYc/4QPxX5YD75JHyAapdPSmIhPdX1t5QN5wnGxxqscABpR
 PBiIHky9X80O8oTJpzQxSNRIVzqNHWQc9TiIq2C5mEAxYZ5b4KejcKlRSz4pX8nCLv
 ajU9I8co+VTiA==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2Ctk69bmz6tm4;
 Sat, 23 Mar 2024 23:05:34 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 27/32] gnu: Add python-pytorch-avx.
Date: Sat, 23 Mar 2024 22:05:06 +0000
Message-ID: <20240323220518.25063-27-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index bcd1c26838..59b344aef2 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -4713,6 +4713,21 @@ (define-public python-pytorch
 Note: currently this package does not provide GPU support.")
     (license license:bsd-3)))
 
+;; This package variant includes the dependencies requiring at least AVX2 or
+;; AVX-512.
+(define-public python-pytorch-avx
+  (package/inherit python-pytorch
+    (name "python-pytorch-avx")
+    (inputs
+     (modify-inputs (package-inputs python-pytorch)
+       (append fbgemm nnpack)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments python-pytorch)
+      ((#:phases phases)
+       #~(modify-phases #$phases
+           (delete 'disable-avx-dependencies)))))
+    (supported-systems '("x86_64-linux"))))
+
 (define-public python-pytorch-for-r-torch
   (package
     (inherit python-pytorch)
-- 
2.41.0





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:06:50 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:06:50 2024
Received: from localhost ([127.0.0.1]:56607 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9Vp-0006Qw-Or
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:50 -0400
Received: from mout01.posteo.de ([185.67.36.65]:59383)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9VL-0006OG-Du
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:20 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 25A8D240028
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:34 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231534; bh=z6on9LZqeuui0vPouHqG6FnU+0rMjhSO8ois/NJsy+M=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=NORvJSUkpB6dERK0ViyykW68p5DEiE7wo6UTFK8yOWll04rcZt1Mz8eHi5zpA4CXr
 4ODEWRPCe/R2Xv6/VBo2NiIRmEBhrN3WgVc6mBZqc21Qz9MrY1dZpC0uzmMpPVr3Ai
 /GEWCp21oWY34BdTKvn+a/Id7phYT1jg79BmQTkF/PwJjt1C81evvn3L8kzvNnP5q2
 hyAhm07SBLZdWHZ4QkpUL4hfKmlYpaxyy3dP6HWNGjWlQxs7FotLY8xRYb5Wd+xXpI
 xBAKe8XUP/IVENnea9KAcmPFp1h0SKNHM9L+BNsxAm7k6CKHu5VzyhdIgjthQw5D0P
 IrrainZ2WcMHg==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2Ctj5m9pz6tm4;
 Sat, 23 Mar 2024 23:05:33 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 25/32] gnu: Add qnnpack-pytorch.
Date: Sat, 23 Mar 2024 22:05:04 +0000
Message-ID: <20240323220518.25063-25-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:06:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:06:49 2024
Received: from localhost ([127.0.0.1]:56604 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9Vo-0006Ql-Vb
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:49 -0400
Received: from mout02.posteo.de ([185.67.36.66]:34799)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9VL-0006OR-6B
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:20 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 2CCD4240103
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:32 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231532; bh=NiKgTxGEUrdkD0uOx4qVl0WXJnq4AQKN/aU6+Hvq74I=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=JyCciPlSFT5Jdzi6syhZBzzlZJthPmsyDZPoNSw215tIQodGfI32L/PpbiebQD/aE
 ZyyrNzx3Xhg69I0gWnXGB37ptirNDXfMS5CZSxrtK/5wJW0Ju0GdG9vGaYFazRnJHb
 caiSMGKU8zXX4CNervVAqo2OpU9T1DCuAwpVG4AH9KcaxDAgpBLlxj2Gp7BDfQ01bd
 OoGkoSRHQhDIcz/xRLZMYreEECR9iuOCNc6SHif5358/2YGaN2+Ity7j3axFGf/FgL
 JEpq9NsXLLitIIPIrtLPoFybO1uLYvo5Vwqb7HWHNYSPZXJ1QU8HAe/lB/LvBUudlQ
 ExV3J+KzXjBiQ==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2Ctg6555z6tm4;
 Sat, 23 Mar 2024 23:05:31 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 22/32] gnu: Add ideep-pytorch.
Date: Sat, 23 Mar 2024 22:05:01 +0000
Message-ID: <20240323220518.25063-22-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:06:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:06:48 2024
Received: from localhost ([127.0.0.1]:56601 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9Vo-0006Qd-CZ
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:48 -0400
Received: from mout01.posteo.de ([185.67.36.65]:56923)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9VK-0006OH-JV
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:20 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id A5A26240027
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:31 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231531; bh=vufDdfGXcfVcnvGMrX95eFPGzFrg67nXJSA+L63r0So=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=CXz/VL38eXtOmbjFyb9pNJP4siPlbPWNgy2OhkYgwXoWjfjZSC8yNv0kTqiJJ8JJo
 xsK+w3+ICphFPOJEgEDZP4iUPdBMd9bQtUKyNdAlaZRRHWnDoUkTUaxkDW1LFGlSz9
 nSr4e/fCxM6l1giTUHJl9LvGBFWIWO/GlDJNn4EVO2WyCKsvw+bOT6mn8l8vxXQwV2
 lkZJvKjhxiQsZqqkez9KjATN4RV4Il4qdDRBA37ur7Ztv1kUbNtTTBjjjKfoDnpsGA
 6m1ky2jl+nzU3U2XoHXvpiHXNtDPwVtUrpSzH9V2pX86jTFAffFWmv04iYqqbFv/5a
 /Gv0VpS+S0KaA==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2Ctg2W1hz6tm4;
 Sat, 23 Mar 2024 23:05:31 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 21/32] gnu: Add foxi.
Date: Sat, 23 Mar 2024 22:05:00 +0000
Message-ID: <20240323220518.25063-21-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 22:06:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 18:06:48 2024
Received: from localhost ([127.0.0.1]:56599 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro9Vn-0006Qa-Up
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:48 -0400
Received: from mout01.posteo.de ([185.67.36.65]:59383)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro9VK-0006OG-9v
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 18:06:19 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 2AAF4240027
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 23:05:31 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711231531; bh=QiEzD738lWfdCm+SPzHfc+nN1CKd9ubVIYMCv9vAJ34=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=TqhS1HeP6KasN3HJMmkMLf5LnjZusbDeOKM6lhnVZ8VSe7IsZ5bUT9tloSj9Cz75c
 7sdadk5QQTxNbeVyuVMlNGnAhtH/Ep1/aknak1F/OfEfgeUzLONDaaj+GLlGD1QpDY
 uQ976Ipf0TaJPLZACz3RAilB9C4dB1yJP8VgYyZVhJG7JdOuRJSQBk9IZnCusyFpoD
 Df2b2ehaE8qByhmskpMf3Ccm9yddbcI5s+LGE+wLz79M/rYcrVZCzj8DfmUl8h0hgc
 ZqtmWB3oRkoAY8nNx5kHmIF6LPa0P9/jU49opZu5a+Jdg0AsTEutkOmjkFOBkDN0ze
 H5YduDD7ssgvg==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2Ctf60snz6tx0;
 Sat, 23 Mar 2024 23:05:30 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 20/32] gnu: Add qnnpack.
Date: Sat, 23 Mar 2024 22:04:59 +0000
Message-ID: <20240323220518.25063-20-david.elsing@HIDDEN>
In-Reply-To: <20240323214040.20221-1-david.elsing@HIDDEN>
References: <20240323214040.20221-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 23 Mar 2024 21:41:44 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 23 17:41:44 2024
Received: from localhost ([127.0.0.1]:55386 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1ro97Y-0005Is-0a
	for submit <at> debbugs.gnu.org; Sat, 23 Mar 2024 17:41:44 -0400
Received: from mout01.posteo.de ([185.67.36.65]:47201)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1ro97V-0005IR-Gr
 for 69591 <at> debbugs.gnu.org; Sat, 23 Mar 2024 17:41:43 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 9EA5E240027
 for <69591 <at> debbugs.gnu.org>; Sat, 23 Mar 2024 22:40:53 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1711230053; bh=aJ5Li6zqZLt1uVTrbLApEAJOTojxScdXwNUq2R7s92k=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=ZYyOyaUKpc3k147oh0d+FHa0wFumSH7K3btqCzo64JHnB45mJQBeKs0PzdVWg/DiY
 iHLvQ0vt00Ba7EA2sdkPy68d/+ifQi83eQiSqYO2oEb/gd3ZOEMtP3m0snfFurDuHy
 OMO/pzh8eSLldBSGdDH0Il2KbTEtbBJfaEEEHxsPj7EmcWen0Ow1rZ2xu+wmbUfyKu
 4AtQ4Jc9BG2jJYBbZjKeuB5pDeSSNKKs2BPVe1HoN/tV8ktKrU/yQcWzZV/KZvd80/
 CwcyNKInYNzD3b5vL17XGJsiIncgNqXfZSvH4eAQtzVz4Y+fs5thjWRhI4aPULgM3T
 Ri/pnN94xDJ9Q==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V2CLF0Sq5z6tvr;
 Sat, 23 Mar 2024 22:40:52 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v4 00/32] Unbundle and update python-pytorch
Date: Sat, 23 Mar 2024 21:40:29 +0000
Message-ID: <20240323214040.20221-1-david.elsing@HIDDEN>
In-Reply-To: <20240320223737.12883-1-david.elsing@HIDDEN>
References: <20240320223737.12883-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

This is a rebase to master, where the python-pytorch2 package was added. I
removed it again, as this patch series updates the python-pytorch package to
version 2.
I also added the python-opt-einsum package to the propagated inputs like
Ricardo did in the python-pytorch2 package, as I had missed it before.

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

 gnu/local.mk                                  |   10 +-
 gnu/packages/compression.scm                  |   50 +
 gnu/packages/cpp.scm                          |    6 +-
 gnu/packages/machine-learning.scm             | 1014 ++--
 gnu/packages/parallel.scm                     |   34 +-
 .../patches/clog-fix-shared-build.patch       |   39 +-
 .../patches/cpuinfo-system-libraries.patch    |   50 -
 .../patches/fbgemm-use-system-libraries.patch |   62 +
 gnu/packages/patches/foxi-fix-build.patch     |   55 +
 gnu/packages/patches/miniz-for-pytorch.patch  |   47 +
 .../patches/python-optree-fix-32-bit.patch    |  122 +
 ...ython-pytorch-1.9.0-system-libraries.patch |  139 -
 .../patches/python-pytorch-fix-codegen.patch  |  167 +
 ...thon-pytorch-for-r-torch-fix-codegen.patch |  167 +
 ...pytorch-for-r-torch-system-libraries.patch |  399 ++
 .../patches/python-pytorch-runpath.patch      |   19 +-
 .../python-pytorch-system-libraries.patch     |  317 +-
 .../python-pytorch-without-kineto.patch       |   60 +
 .../python-pytorch2-system-libraries.patch    |  156 -
 .../xnnpack-for-torch2-system-libraries.patch | 2660 -----------
 .../patches/xnnpack-remove-broken-tests.patch |  337 ++
 .../patches/xnnpack-system-libraries.patch    | 4133 ++++++++++-------
 gnu/packages/python-build.scm                 |   14 +-
 gnu/packages/python-check.scm                 |   89 +
 gnu/packages/python-xyz.scm                   |   30 +
 gnu/packages/serialization.scm                |   54 +-
 26 files changed, 5207 insertions(+), 5023 deletions(-)
 delete mode 100644 gnu/packages/patches/cpuinfo-system-libraries.patch
 create mode 100644 gnu/packages/patches/fbgemm-use-system-libraries.patch
 create mode 100644 gnu/packages/patches/foxi-fix-build.patch
 create mode 100644 gnu/packages/patches/miniz-for-pytorch.patch
 create mode 100644 gnu/packages/patches/python-optree-fix-32-bit.patch
 delete mode 100644 gnu/packages/patches/python-pytorch-1.9.0-system-libraries.patch
 create mode 100644 gnu/packages/patches/python-pytorch-fix-codegen.patch
 create mode 100644 gnu/packages/patches/python-pytorch-for-r-torch-fix-codegen.patch
 create mode 100644 gnu/packages/patches/python-pytorch-for-r-torch-system-libraries.patch
 create mode 100644 gnu/packages/patches/python-pytorch-without-kineto.patch
 delete mode 100644 gnu/packages/patches/python-pytorch2-system-libraries.patch
 delete mode 100644 gnu/packages/patches/xnnpack-for-torch2-system-libraries.patch
 create mode 100644 gnu/packages/patches/xnnpack-remove-broken-tests.patch

-- 
2.41.0





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

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


Received: (at 69591) by debbugs.gnu.org; 20 Mar 2024 22:41:05 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 20 18:41:05 2024
Received: from localhost ([127.0.0.1]:36846 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rn4cI-0006C1-5F
	for submit <at> debbugs.gnu.org; Wed, 20 Mar 2024 18:41:05 -0400
Received: from mout01.posteo.de ([185.67.36.65]:52917)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rn4bQ-00063L-8y
 for 69591 <at> debbugs.gnu.org; Wed, 20 Mar 2024 18:40:15 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 413C5240027
 for <69591 <at> debbugs.gnu.org>; Wed, 20 Mar 2024 23:39:28 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1710974368; bh=iRqrwd7XHkizdqvl4dspvcURyJhMHZOuyptlpjgQ72E=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=paJTbXEMmU3dz3Szak0jtSWB/00IZqXxtO1JHg9QDCla0EorgVfyr9zEO3baFXTz5
 1A2LVOo5aiTDNy4PxL69yrBKnoyup/9ZiXpWAArMJAF//EANW9lZDxR8VojDzBaWxS
 vlqRRtZw8p7W0Du5q/BTtYwL9p+Op7RE7vKipTv/qtzYRUY3Q4/eQXAYqAk2ZU0qa+
 qtnEuin0IXNeL7b6+qK3kR4si+FsPFF4ZGF2RQd/YNM9PPJRbu9r9dPKEAZPflllbY
 v3g3Asy1o7YwUx9LOfuBN07rfruVqJJTDlE6FZeihwOpXGx2EmrC5xCtvIcHyfl6jA
 CaLY+3G1efjkw==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V0NnC5s51z6twf;
 Wed, 20 Mar 2024 23:39:27 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v3 32/32] gnu: python-pytorch-for-r-torch: Adjust to new
 python-pytorch.
Date: Wed, 20 Mar 2024 22:38:57 +0000
Message-ID: <20240320223906.13214-32-david.elsing@HIDDEN>
In-Reply-To: <20240320223737.12883-1-david.elsing@HIDDEN>
References: <20240320223737.12883-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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






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

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


Received: (at 69591) by debbugs.gnu.org; 20 Mar 2024 22:41:02 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 20 18:41:02 2024
Received: from localhost ([127.0.0.1]:36844 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rn4cF-0006Bf-3S
	for submit <at> debbugs.gnu.org; Wed, 20 Mar 2024 18:41:02 -0400
Received: from mout02.posteo.de ([185.67.36.66]:43143)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rn4bN-00062w-9L
 for 69591 <at> debbugs.gnu.org; Wed, 20 Mar 2024 18:40:15 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 3CA56240103
 for <69591 <at> debbugs.gnu.org>; Wed, 20 Mar 2024 23:39:25 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1710974365; bh=i6fQeJeoz0x4cxZh6jD7ajeAbdgsJ1frOH8tQogHyoY=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=IAjhC4rySB6AwYR6CUoyHJDPRwHLo+g+xJNDVZp10pXyW74B70VX/sihItwzR9XUI
 sTAJ5UEVkgtHgRDERyYXihW+4gRqeMzpB0icpbuyWb0g8RXFGwRqLy4zK6EF72DxAU
 qDelI7P6cWycA6ocWv52Eg/X4ntaD7MaeHGd+U8TNiBUzl43aTTK+PDsdl+aWKYPMQ
 dFEu54PA6kmtKtim1aIKsAn67S6e4tOlv3b88K0/nvRGHeilM1SJyLkCOcGZnQ2p8m
 BAj01Qe26O9rIvXWLxo5Ik2lJuWMtzj5aKqYr968LTOL0SSw+FoXEF4d7qH/FFDPGn
 gDwEkr9a4D7Fw==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V0Nn85kgXz6twQ;
 Wed, 20 Mar 2024 23:39:24 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v3 26/32] gnu: python-pytorch: Update to 2.2.1 and unbundle
 dependencies.
Date: Wed, 20 Mar 2024 22:38:51 +0000
Message-ID: <20240320223906.13214-26-david.elsing@HIDDEN>
In-Reply-To: <20240320223737.12883-1-david.elsing@HIDDEN>
References: <20240320223737.12883-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -1.6 (-)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.6 (--)

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

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 20 Mar 2024 22:40:59 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 20 18:40:59 2024
Received: from localhost ([127.0.0.1]:36842 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rn4cE-0006BX-LE
	for submit <at> debbugs.gnu.org; Wed, 20 Mar 2024 18:40:59 -0400
Received: from mout01.posteo.de ([185.67.36.65]:49131)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rn4bU-00065G-RJ
 for 69591 <at> debbugs.gnu.org; Wed, 20 Mar 2024 18:40:13 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 9DD9D240027
 for <69591 <at> debbugs.gnu.org>; Wed, 20 Mar 2024 23:39:27 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1710974367; bh=qJ9vWcm/gtXf7QnOAFw+WKKB+EAO05qCsxAiCF3UqqU=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=TR7vpjJZKJFMHHQX6cGF6JX+4QLYQLaR/BRaAJJsfEZ2BjnS991fAJCfG3PZ9x6Yb
 ZHEyFXY6HAdNXHBFto7AYHmKgeBF0ZPPAMn9B+UFKYzEiVDmL0ecBZwNMI1gD5FFPz
 I2g0W/SxoywLRV+S0xuKCVW/1D9TiyeU/Tda5XFVn1236+ph5e8EkmxACvAb1AqPzt
 ABimUdvnFAgNZFDyvgzTD8JFGXlmZi0jnl0snZ8Q5ePyjYU/YfBSO0s6GDQaXA60iW
 4Go/4MUoZfBA1Q4uDNk5Bzf0VyACi2ClBsESq19eAWbZHlbpJAPRWHOvEUzr/qNtcK
 ePKaPs5F3CD7g==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V0NnC2GSGz6twf;
 Wed, 20 Mar 2024 23:39:27 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v3 31/32] gnu: Add qnnpack-pytorch-for-r-torch.
Date: Wed, 20 Mar 2024 22:38:56 +0000
Message-ID: <20240320223906.13214-31-david.elsing@HIDDEN>
In-Reply-To: <20240320223737.12883-1-david.elsing@HIDDEN>
References: <20240320223737.12883-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index d600e601b9..caca1dcf89 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -4742,6 +4742,34 @@ (define-public python-pytorch-avx
            (delete 'disable-avx-dependencies)))))
     (supported-systems '("x86_64-linux"))))
 
+(define %python-pytorch-for-r-torch-version "2.0.1")
+
+(define %python-pytorch-for-r-torch-src
+  (origin
+    (inherit %python-pytorch-src)
+    (uri (git-reference
+          (url "https://github.com/pytorch/pytorch")
+          (commit (string-append "v" %python-pytorch-for-r-torch-version))))
+    (file-name (git-file-name "python-pytorch"
+                              %python-pytorch-for-r-torch-version))
+    (sha256
+     (base32
+      "0iirrn687i7sfv0p0i7dn89x3rf13a7l8y1y5h190h51yjxpxqxa"))))
+
+(define-public qnnpack-pytorch-for-r-torch
+  (package
+    (inherit qnnpack-pytorch)
+    (version (string-append "pytorch-" %python-pytorch-for-r-torch-version))
+    (source
+     (origin
+       (inherit %python-pytorch-for-r-torch-src)
+       (patches '())
+       (modules '((guix build utils)
+                  (srfi srfi-26)
+                  (ice-9 ftw)))
+       (snippet
+        (origin-snippet (package-source qnnpack-pytorch)))))))
+
 (define-public python-pytorch-for-r-torch
   (package
     (inherit python-pytorch)
-- 
2.41.0





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

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


Received: (at 69591) by debbugs.gnu.org; 20 Mar 2024 22:40:58 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 20 18:40:58 2024
Received: from localhost ([127.0.0.1]:36840 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rn4cD-0006BP-Nx
	for submit <at> debbugs.gnu.org; Wed, 20 Mar 2024 18:40:58 -0400
Received: from mout02.posteo.de ([185.67.36.66]:42103)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rn4bR-00064a-Qa
 for 69591 <at> debbugs.gnu.org; Wed, 20 Mar 2024 18:40:12 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 99FCF240101
 for <69591 <at> debbugs.gnu.org>; Wed, 20 Mar 2024 23:39:24 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1710974364; bh=dWr8XBVvFnqerSAo8OpUP0rE1yqt/L8xDG6HXuH53zk=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=q3U8RjLYa3K60BaTqFpuh7r9xNDy9MKWNFxBdlguhITRGXokm1RycASYRu1KmS3H3
 cLZKGPxQjg1h0sf8q4GZZHnqdNhlk2AaHonnKAM66SlYm8u24BiXYT0CvInsu3dx8g
 LsgMYH8dr7AFfZYnsGlU+2GR3m15lTG3SN/6P8+mkNj59qt2vZ6WczMUa/ANszQYQm
 L7xDR32kSrBHBQHR+9eVoQ9rQZ0fPWY4HR8CdTgs3fkT1BLnK1J6HPsGs5+XRf+9aK
 mj7uxyRFh9N6BXxvLHi4KaxSbAXPj+eM/kkBepMn7Cq4oQfZTECIC4lyP/Y7H0whgK
 XkDfDQnPux66A==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V0Nn82Bxvz6twQ;
 Wed, 20 Mar 2024 23:39:24 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v3 25/32] gnu: Add qnnpack-pytorch.
Date: Wed, 20 Mar 2024 22:38:50 +0000
Message-ID: <20240320223906.13214-25-david.elsing@HIDDEN>
In-Reply-To: <20240320223737.12883-1-david.elsing@HIDDEN>
References: <20240320223737.12883-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 20 Mar 2024 22:40:57 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 20 18:40:57 2024
Received: from localhost ([127.0.0.1]:36838 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rn4c1-0006B7-Ua
	for submit <at> debbugs.gnu.org; Wed, 20 Mar 2024 18:40:57 -0400
Received: from mout02.posteo.de ([185.67.36.66]:36945)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rn4bT-00064x-9S
 for 69591 <at> debbugs.gnu.org; Wed, 20 Mar 2024 18:40:12 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 18F8C240103
 for <69591 <at> debbugs.gnu.org>; Wed, 20 Mar 2024 23:39:26 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1710974366; bh=+QCBDaQR+tSt35GIsm+VkIQebrEG4DVNQ++T8GvxBoU=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=Bkf0eEOTvmmyh1yd6D5t5CpxkWB0b1gHzhy6pUUM2GhacYoL3Wr+2n0cscLL0n8h3
 WbSGwAKegkIZGpGeS8qqpHi9rirIyXX+I5hnFDmep+9+0XHFt3V1XhLNpPa0AWt6K5
 z14aUtW0hOdc89Amvuv7RJxFfUVLKhzQhzKfmmkzmgJPIBLx50Bk/AYBaCVmru/Hut
 w5RR08wNJ7fDDnu7E48qfaRDi3NC9I/uo3NlADA/7yCk/wsve0SNYdh5BQ8FYTv3M7
 b5wh40S1c2uPGlpbXW+8B4JELIVppej+WtboY/scdkCYd8jMfGlJ8Z6MsL6vq8+tCI
 RfS29GCyjfGKA==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V0Nn95wmJz6twY;
 Wed, 20 Mar 2024 23:39:25 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v3 28/32] gnu: python-torchvision: Update to 0.17.1.
Date: Wed, 20 Mar 2024 22:38:53 +0000
Message-ID: <20240320223906.13214-28-david.elsing@HIDDEN>
In-Reply-To: <20240320223737.12883-1-david.elsing@HIDDEN>
References: <20240320223737.12883-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 20 Mar 2024 22:40:46 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 20 18:40:45 2024
Received: from localhost ([127.0.0.1]:36835 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rn4br-0006Al-Fd
	for submit <at> debbugs.gnu.org; Wed, 20 Mar 2024 18:40:45 -0400
Received: from mout02.posteo.de ([185.67.36.66]:43169)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rn4bQ-00064B-7m
 for 69591 <at> debbugs.gnu.org; Wed, 20 Mar 2024 18:40:12 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 3B4A1240101
 for <69591 <at> debbugs.gnu.org>; Wed, 20 Mar 2024 23:39:22 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1710974362; bh=wQ0MUKafFYW3prWhQuKPptd0mWpW/0mnqunoxezejAg=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=I/Ydqfv+fxOJL3DQDKT5kRB5gnqSi/6EZVl0wRsimQ1fhZ1qUP1va1UiGc/s7K7uo
 QU5T7vXyrguT9mRWod+S0ea5Gky5uNcxZjHxHYL1mvcN/11Dn9rfyMxMW5/N5TBuJt
 KbHmne4JB6IxRw9D0PjXVpdxZ4rctk/o+xCCBJG9Cbb/DMtS5wLESgCI0nKenn3AcG
 QlUGg33Zmqwt5r3iZn3mZGg2NO2QwIAh1RD7oVppkszfLD47YAtUpzhN36DimkcMWI
 43RcKHAe3J0OSaPV4mfbLXUayQfyq9hXl+oK62TGC/J/A5MhuwyJhrYKXPA+OCaTBs
 peCAI4VcSL0HQ==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V0Nn56d69z6tn4;
 Wed, 20 Mar 2024 23:39:21 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v3 21/32] gnu: Add foxi.
Date: Wed, 20 Mar 2024 22:38:46 +0000
Message-ID: <20240320223906.13214-21-david.elsing@HIDDEN>
In-Reply-To: <20240320223737.12883-1-david.elsing@HIDDEN>
References: <20240320223737.12883-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 20 Mar 2024 22:40:35 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 20 18:40:35 2024
Received: from localhost ([127.0.0.1]:36833 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rn4bq-0006Ac-UN
	for submit <at> debbugs.gnu.org; Wed, 20 Mar 2024 18:40:35 -0400
Received: from mout01.posteo.de ([185.67.36.65]:37459)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rn4bP-000644-U8
 for 69591 <at> debbugs.gnu.org; Wed, 20 Mar 2024 18:40:11 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id B3D17240027
 for <69591 <at> debbugs.gnu.org>; Wed, 20 Mar 2024 23:39:22 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1710974362; bh=/D9PN5ev8B6Antqx8iJMYmM2TJ7tC0UjiW0RwUfN8EA=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=eivbBOx3RWer5QnooYMN+6WV4qLMTwrPjjoptfke6gVK2qQLo/vXzz6Qx6HsrpiDF
 n3G7xp8bCBz9v9pBM7XSkYMBoae0lns7i0nuFTP4NPgi/tm7lemfQ/0oFWnLpX+w8H
 YxWN6Zg7xO1LD4/8APOBxQlhhI0OVRVogMQnuaOCHXOZ8QitROP4I8rO5/uoVxHomZ
 H1RU8U8UQ9iWN3OrNPwvIg5ND86V5pcr3i97+VbI02jxxtFaRw4x8OlclWNDhscjSa
 DPfx+HwNQK4KpIfWS6WbpbKmjbwG0YWC6CTT7TQUOaaJJcyaruL3Zcqf455GB5vvL3
 w6xNFXFgMGLKg==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V0Nn630shz6tn4;
 Wed, 20 Mar 2024 23:39:22 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v3 22/32] gnu: Add ideep-pytorch.
Date: Wed, 20 Mar 2024 22:38:47 +0000
Message-ID: <20240320223906.13214-22-david.elsing@HIDDEN>
In-Reply-To: <20240320223737.12883-1-david.elsing@HIDDEN>
References: <20240320223737.12883-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 20 Mar 2024 22:40:35 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 20 18:40:34 2024
Received: from localhost ([127.0.0.1]:36831 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rn4bq-0006AW-BZ
	for submit <at> debbugs.gnu.org; Wed, 20 Mar 2024 18:40:34 -0400
Received: from mout02.posteo.de ([185.67.36.66]:57677)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rn4bO-00063j-IZ
 for 69591 <at> debbugs.gnu.org; Wed, 20 Mar 2024 18:40:10 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout02.posteo.de (Postfix) with ESMTPS id 3053E240101
 for <69591 <at> debbugs.gnu.org>; Wed, 20 Mar 2024 23:39:21 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1710974361; bh=rx2EAEKnBMFUDp1DRcyblKm9WMtKtI4qmWhz/v5p1/U=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=Nz/WmIUtEXwxykZLVcKy9BOPD79opiADrx/o9Atok373lBp+dL4rYkGsY40JYhAqe
 UnqrfbtIJQJTA0jP5AZsFz7o9qFK7OpFHIcEHFTQYK8wv8I6MJoDXZw6wudpjWO7xq
 2LqQ25YZaPZTT5gHrhUHu+2VmydLJqo+HZhW6T+HwMbU89VzJg3/m3zyr1iyR5Rm6Z
 WuQdwGdSYxXsA0goVAaIuxuJ10qK7W9AB+wNIbPU0VNT1c29DlPPhtmGPHB8O1SxKb
 LXniWYqCs6wV2ey7QHC5E9M+a5dB8mHDacSKjsReQEUAWyl0xYe2YVy3YQPY9VFwaa
 7pxRIrvYB3Wzg==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V0Nn45y13z6tn4;
 Wed, 20 Mar 2024 23:39:20 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v3 19/32] gnu: Add fbgemm.
Date: Wed, 20 Mar 2024 22:38:44 +0000
Message-ID: <20240320223906.13214-19-david.elsing@HIDDEN>
In-Reply-To: <20240320223737.12883-1-david.elsing@HIDDEN>
References: <20240320223737.12883-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

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

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





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

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


Received: (at 69591) by debbugs.gnu.org; 20 Mar 2024 22:40:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 20 18:40:34 2024
Received: from localhost ([127.0.0.1]:36830 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rn4bq-0006AM-8f
	for submit <at> debbugs.gnu.org; Wed, 20 Mar 2024 18:40:34 -0400
Received: from mout01.posteo.de ([185.67.36.65]:56455)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david.elsing@HIDDEN>) id 1rn4bR-00064X-Hr
 for 69591 <at> debbugs.gnu.org; Wed, 20 Mar 2024 18:40:10 -0400
Received: from submission (posteo.de [185.67.36.169]) 
 by mout01.posteo.de (Postfix) with ESMTPS id 40FA2240027
 for <69591 <at> debbugs.gnu.org>; Wed, 20 Mar 2024 23:39:24 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1710974364; bh=v89Gne8E5nUiPksJQRgzdz7/sMdOlTTmOPUMhdrcbGM=;
 h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:
 Content-Transfer-Encoding:From;
 b=bq7T9WPtf7Q7EmU3eAR29nONB6Xx3ryOoFUrUTWcK6q9OGL7AAzeqhxl5096DGMMN
 y4NHCA4O9rOYmwwRh2/uEuBVw4Mfh86lYf9MI3tffU6BXipkGRLxkZjo7LAQCX98VC
 W/GaKf/Fhy+XO8of24HEVYmoBvo3uDVbOZuERLqNpkin0cXLszaCcmTPzcee5QbccX
 +/ujS8fGPNaGqz9lXq8qbWjiROUIS2WBELhaKjahD+kMgV5+228ceIvvTz7Bj8X6re
 2OTWWeOYnnfe0s+YBP/4bVKj6UaFlDjNzeFsW5W6iZBBFSItUJywetDLwq/pgPozPg
 BocEEOPkEFvEg==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4V0Nn74Zmbz6twQ;
 Wed, 20 Mar 2024 23:39:23 +0100 (CET)
From: David Elsing <david.elsing@HIDDEN>
To: 69591 <at> debbugs.gnu.org
Subject: [PATCH v3 24/32] gnu: Remove xnnpack-for-torch2.
Date: Wed, 20 Mar 2024 22:38:49 +0000
Message-ID: <20240320223906.13214-24-david.elsing@HIDDEN>
In-Reply-To: <20240320223737.12883-1-david.elsing@HIDDEN>
References: <20240320223737.12883-1-david.elsing@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Debbugs-Envelope-To: 69591
Cc: David Elsing <david.elsing@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

* gnu/packages/machine-learning.scm (xnnpack-for-torch2): Delete variable.
(python-pytorch-for-r-torch)[inputs]: Remove field.
* gnu/packages/patches/xnnpack-for-torch2-system-libraries.patch: Remove file.
* gnu/local.mk (dist_patch_DATA): Remove it.
---
 gnu/local.mk                                  |    1 -
 gnu/packages/machine-learning.scm             |   31 -
 .../xnnpack-for-torch2-system-libraries.patch | 2660 -----------------
 3 files changed, 2692 deletions(-)
 delete mode 100644 gnu/packages/patches/xnnpack-for-torch2-system-libraries.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index f6e1a45a38..adcb1be9b7 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2207,7 +2207,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/xmonad-dynamic-linking.patch		\
   %D%/packages/patches/xnnpack-remove-broken-tests.patch	\
   %D%/packages/patches/xnnpack-system-libraries.patch		\
-  %D%/packages/patches/xnnpack-for-torch2-system-libraries.patch	\
   %D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch		\
   %D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch	\
   %D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch	\
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 55b5ad8535..6c5b723559 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -4190,34 +4190,6 @@ (define-public xnnpack
          "i686-linux" "x86_64-linux" "i686-mingw" "x86_64-mingw"))
       (license license:bsd-3))))
 
-(define-public xnnpack-for-torch2
-  ;; There's currently no tag on this repo.
-  (let ((version "0.0")
-        (commit "51a987591a6fc9f0fc0707077f53d763ac132cbf")
-        (revision "3"))
-    (package
-      (inherit xnnpack)
-      (name "xnnpack")
-      (version (git-version version revision commit))
-      (home-page "https://github.com/google/XNNPACK") ;fork of QNNPACK
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference (url home-page) (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32
-                  "1rzby82xq8d0rl1d148yz88jh9cpsw5c8b2yw7yg39mi7qmr55rm"))
-                (patches (search-patches "xnnpack-for-torch2-system-libraries.patch"))))
-      (arguments
-       (list
-        #:tests? #false
-        #:configure-flags '(list "-DXNNPACK_USE_SYSTEM_LIBS=YES"
-                                 "-DBUILD_SHARED_LIBS=ON"
-                                 "-DCMAKE_POSITION_INDEPENDENT_CODE=ON"
-                                 "-DXNNPACK_LIBRARY_TYPE=shared"
-                                 "-DXNNPACK_BUILD_TESTS=FALSE" ;FIXME: see below
-                                 "-DXNNPACK_BUILD_BENCHMARKS=FALSE"))))))
-
 ;; Warning: This package requires AVX2 or AVX-512 instructions.
 (define-public fbgemm
   (package
@@ -4531,9 +4503,6 @@ (define-public python-pytorch-for-r-torch
                   (substitute* "functorch/CMakeLists.txt"
                     (("\\$\\{_rpath_portable_origin\\}/../torch/lib")
                      "$ORIGIN/../torch/lib"))))))
-    (inputs
-     (modify-inputs (package-inputs python-pytorch)
-       (replace "xnnpack" xnnpack-for-torch2)))
     (propagated-inputs
      (modify-inputs (package-propagated-inputs python-pytorch)
        (append python-filelock
diff --git a/gnu/packages/patches/xnnpack-for-torch2-system-libraries.patch b/gnu/packages/patches/xnnpack-for-torch2-system-libraries.patch
deleted file mode 100644
index a711aa0d6c..0000000000
--- a/gnu/packages/patches/xnnpack-for-torch2-system-libraries.patch
+++ /dev/null
@@ -1,2660 +0,0 @@
-This patch allows the build process to use the provided dependencies instead
-of adding their source as CMake sub-directories (in which case "make install"
-would install googletest's and googlebenchmark's libraries and headers).
-
-diff a/CMakeLists.txt b/CMakeLists.txt
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt	2023-12-27 13:29:04.608138355 +0100
-@@ -850,25 +850,8 @@
-     SET_PROPERTY(TARGET pthreadpool PROPERTY IMPORTED_IMPLIB "${PTHREADPOOL_LIBRARY}")
-   ENDIF()
- ENDIF()
--TARGET_LINK_LIBRARIES(microkernels-all PRIVATE pthreadpool)
--TARGET_LINK_LIBRARIES(microkernels-prod PRIVATE pthreadpool)
--TARGET_LINK_LIBRARIES(hardware-config PRIVATE pthreadpool)
--TARGET_LINK_LIBRARIES(indirection PRIVATE pthreadpool)
--TARGET_LINK_LIBRARIES(jit PRIVATE pthreadpool)
--TARGET_LINK_LIBRARIES(logging PRIVATE pthreadpool)
--TARGET_LINK_LIBRARIES(microparams-init PRIVATE pthreadpool)
--TARGET_LINK_LIBRARIES(normalization PRIVATE pthreadpool)
--TARGET_LINK_LIBRARIES(packing PRIVATE pthreadpool)
- IF(XNNPACK_BUILD_LIBRARY)
-   TARGET_LINK_LIBRARIES(XNNPACK PUBLIC pthreadpool)
--  TARGET_LINK_LIBRARIES(allocator PRIVATE pthreadpool)
--  TARGET_LINK_LIBRARIES(cache PRIVATE memory pthreadpool)
--  TARGET_LINK_LIBRARIES(subgraph PRIVATE pthreadpool)
--  TARGET_LINK_LIBRARIES(operators PRIVATE pthreadpool)
--  TARGET_LINK_LIBRARIES(operator-run PRIVATE pthreadpool)
--  TARGET_LINK_LIBRARIES(operator-utils PRIVATE pthreadpool)
--  TARGET_LINK_LIBRARIES(mutex PRIVATE pthreadpool)
--  TARGET_LINK_LIBRARIES(memory PRIVATE pthreadpool)
-   TARGET_LINK_LIBRARIES(post-operation PUBLIC pthreadpool allocator)
- ENDIF()
- 
-@@ -889,12 +872,6 @@
-     SET_PROPERTY(TARGET fxdiv PROPERTY LINKER_LANGUAGE C)
-   ENDIF()
- ENDIF()
--TARGET_LINK_LIBRARIES(microkernels-all PRIVATE fxdiv)
--TARGET_LINK_LIBRARIES(microkernels-prod PRIVATE fxdiv)
--TARGET_LINK_LIBRARIES(indirection PRIVATE fxdiv)
--IF(XNNPACK_BUILD_LIBRARY)
--  TARGET_LINK_LIBRARIES(XNNPACK PRIVATE fxdiv)
--ENDIF()
- 
- # ---[ Configure FP16
- IF(NOT TARGET fp16)
-@@ -913,17 +890,7 @@
-     SET_PROPERTY(TARGET fp16 PROPERTY LINKER_LANGUAGE C)
-   ENDIF()
- ENDIF()
--TARGET_LINK_LIBRARIES(microkernels-all PRIVATE fp16)
--TARGET_LINK_LIBRARIES(microkernels-prod PRIVATE fp16)
--TARGET_LINK_LIBRARIES(microparams-init PRIVATE fp16)
--TARGET_LINK_LIBRARIES(packing PRIVATE fp16)
--TARGET_LINK_LIBRARIES(indirection PRIVATE fp16)
- IF(XNNPACK_BUILD_LIBRARY)
--  TARGET_LINK_LIBRARIES(subgraph PRIVATE fp16)
--  TARGET_LINK_LIBRARIES(operators PRIVATE fp16)
--  TARGET_LINK_LIBRARIES(operator-run PRIVATE fp16)
--
--  TARGET_LINK_LIBRARIES(XNNPACK PRIVATE fp16)
-   INSTALL(TARGETS XNNPACK
-       LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-       ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-@@ -943,7 +910,7 @@
-   # Helper libraries
-   ADD_LIBRARY(gemm-microkernel-tester STATIC test/gemm-microkernel-tester.cc)
-   TARGET_INCLUDE_DIRECTORIES(gemm-microkernel-tester PRIVATE . include src test)
--  TARGET_LINK_LIBRARIES(gemm-microkernel-tester PRIVATE fp16 pthreadpool gtest)
-+  TARGET_LINK_LIBRARIES(gemm-microkernel-tester PRIVATE gtest)
-   TARGET_LINK_LIBRARIES(gemm-microkernel-tester PRIVATE jit packing)
-   IF(XNNPACK_BUILD_LIBRARY)
-     TARGET_LINK_LIBRARIES(gemm-microkernel-tester PRIVATE XNNPACK post-operation)
-@@ -960,22 +927,22 @@
-     # ---[ Build operator-level unit tests
-     ADD_EXECUTABLE(abs-nc-test test/abs-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(abs-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(abs-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(abs-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME abs-nc-test COMMAND abs-nc-test)
- 
-     ADD_EXECUTABLE(abs-nc-eager-test test/abs-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(abs-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(abs-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(abs-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME abs-nc-eager-test COMMAND abs-nc-eager-test)
- 
-     ADD_EXECUTABLE(add-nd-test test/add-nd.cc)
-     TARGET_INCLUDE_DIRECTORIES(add-nd-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(add-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(add-nd-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME add-nd-test COMMAND add-nd-test)
- 
-     ADD_EXECUTABLE(add-nd-eager-test test/add-nd-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(add-nd-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(add-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(add-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME add-nd-eager-test COMMAND add-nd-eager-test)
- 
-     ADD_EXECUTABLE(argmax-pooling-nhwc-test test/argmax-pooling-nhwc.cc)
-@@ -985,27 +952,27 @@
- 
-     ADD_EXECUTABLE(average-pooling-nhwc-test test/average-pooling-nhwc.cc)
-     TARGET_INCLUDE_DIRECTORIES(average-pooling-nhwc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(average-pooling-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(average-pooling-nhwc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME average-pooling-nhwc-test COMMAND average-pooling-nhwc-test)
- 
-     ADD_EXECUTABLE(bankers-rounding-nc-test test/bankers-rounding-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(bankers-rounding-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(bankers-rounding-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(bankers-rounding-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME bankers-rounding-nc-test COMMAND bankers-rounding-nc-test)
- 
-     ADD_EXECUTABLE(bankers-rounding-nc-eager-test test/bankers-rounding-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(bankers-rounding-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(bankers-rounding-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(bankers-rounding-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME bankers-rounding-nc-eager-test COMMAND bankers-rounding-nc-eager-test)
- 
-     ADD_EXECUTABLE(ceiling-nc-test test/ceiling-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(ceiling-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(ceiling-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(ceiling-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME ceiling-nc-test COMMAND ceiling-nc-test)
- 
-     ADD_EXECUTABLE(ceiling-nc-eager-test test/ceiling-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(ceiling-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(ceiling-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(ceiling-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME ceiling-nc-eager-test COMMAND ceiling-nc-eager-test)
- 
-     ADD_EXECUTABLE(channel-shuffle-nc-test test/channel-shuffle-nc.cc)
-@@ -1015,12 +982,12 @@
- 
-     ADD_EXECUTABLE(clamp-nc-test test/clamp-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(clamp-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(clamp-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(clamp-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME clamp-nc-test COMMAND clamp-nc-test)
- 
-     ADD_EXECUTABLE(clamp-nc-eager-test test/clamp-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(clamp-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(clamp-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(clamp-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME clamp-nc-eager-test COMMAND clamp-nc-eager-test)
- 
-     ADD_EXECUTABLE(constant-pad-nd-test test/constant-pad-nd.cc)
-@@ -1035,25 +1002,25 @@
- 
-     ADD_EXECUTABLE(convert-nc-test test/convert-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(convert-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(convert-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(convert-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME convert-nc-test COMMAND convert-nc-test)
- 
-     ADD_EXECUTABLE(convert-nc-eager-test test/convert-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(convert-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(convert-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(convert-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME convert-nc-eager-test COMMAND convert-nc-eager-test)
- 
-     ADD_EXECUTABLE(convolution-nhwc-test test/convolution-nhwc.cc)
-     SET_TARGET_PROPERTIES(convolution-nhwc-test PROPERTIES CXX_EXTENSIONS YES)
-     TARGET_INCLUDE_DIRECTORIES(convolution-nhwc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(convolution-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(convolution-nhwc-test PRIVATE XNNPACK gtest gtest_main)
-     TARGET_LINK_LIBRARIES(convolution-nhwc-test PRIVATE convolution-test-helpers)
-     ADD_TEST(NAME convolution-nhwc-test COMMAND convolution-nhwc-test)
- 
-     ADD_EXECUTABLE(convolution-nchw-test test/convolution-nchw.cc)
-     SET_TARGET_PROPERTIES(convolution-nchw-test PROPERTIES CXX_EXTENSIONS YES)
-     TARGET_INCLUDE_DIRECTORIES(convolution-nchw-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(convolution-nchw-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(convolution-nchw-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME convolution-nchw-test COMMAND convolution-nchw-test)
- 
-     ADD_EXECUTABLE(copy-nc-test test/copy-nc.cc)
-@@ -1068,7 +1035,7 @@
- 
-     ADD_EXECUTABLE(deconvolution-nhwc-test test/deconvolution-nhwc.cc)
-     TARGET_INCLUDE_DIRECTORIES(deconvolution-nhwc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(deconvolution-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(deconvolution-nhwc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME deconvolution-nhwc-test COMMAND deconvolution-nhwc-test)
- 
-     ADD_EXECUTABLE(depth-to-space-nchw2nhwc-test test/depth-to-space-nchw2nhwc.cc)
-@@ -1083,197 +1050,197 @@
- 
-     ADD_EXECUTABLE(divide-nd-test test/divide-nd.cc)
-     TARGET_INCLUDE_DIRECTORIES(divide-nd-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(divide-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(divide-nd-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME divide-nd-test COMMAND divide-nd-test)
- 
-     ADD_EXECUTABLE(divide-nd-eager-test test/divide-nd-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(divide-nd-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(divide-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(divide-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME divide-nd-eager-test COMMAND divide-nd-eager-test)
- 
-     ADD_EXECUTABLE(elu-nc-test test/elu-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(elu-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(elu-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(elu-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME elu-nc-test COMMAND elu-nc-test)
- 
-     ADD_EXECUTABLE(elu-nc-eager-test test/elu-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(elu-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(elu-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(elu-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME elu-nc-eager-test COMMAND elu-nc-eager-test)
- 
-     ADD_EXECUTABLE(fully-connected-nc-test test/fully-connected-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(fully-connected-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(fully-connected-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(fully-connected-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME fully-connected-nc-test COMMAND fully-connected-nc-test)
- 
-     ADD_EXECUTABLE(floor-nc-test test/floor-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(floor-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(floor-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(floor-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME floor-nc-test COMMAND floor-nc-test)
- 
-     ADD_EXECUTABLE(floor-nc-eager-test test/floor-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(floor-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(floor-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(floor-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME floor-nc-eager-test COMMAND floor-nc-eager-test)
- 
-     ADD_EXECUTABLE(global-average-pooling-nwc-test test/global-average-pooling-nwc.cc)
-     TARGET_INCLUDE_DIRECTORIES(global-average-pooling-nwc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(global-average-pooling-nwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(global-average-pooling-nwc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME global-average-pooling-nwc-test COMMAND global-average-pooling-nwc-test)
- 
-     ADD_EXECUTABLE(global-average-pooling-ncw-test test/global-average-pooling-ncw.cc)
-     TARGET_INCLUDE_DIRECTORIES(global-average-pooling-ncw-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(global-average-pooling-ncw-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(global-average-pooling-ncw-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME global-average-pooling-ncw-test COMMAND global-average-pooling-ncw-test)
- 
-     ADD_EXECUTABLE(hardswish-nc-test test/hardswish-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(hardswish-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(hardswish-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(hardswish-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME hardswish-nc-test COMMAND hardswish-nc-test)
- 
-     ADD_EXECUTABLE(hardswish-nc-eager-test test/hardswish-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(hardswish-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(hardswish-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(hardswish-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME hardswish-nc-eager-test COMMAND hardswish-nc-eager-test)
- 
-     ADD_EXECUTABLE(leaky-relu-nc-test test/leaky-relu-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(leaky-relu-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(leaky-relu-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(leaky-relu-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME leaky-relu-nc-test COMMAND leaky-relu-nc-test)
- 
-     ADD_EXECUTABLE(leaky-relu-nc-eager-test test/leaky-relu-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(leaky-relu-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(leaky-relu-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(leaky-relu-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME leaky-relu-nc-eager-test COMMAND leaky-relu-nc-eager-test)
- 
-     ADD_EXECUTABLE(max-pooling-nhwc-test test/max-pooling-nhwc.cc)
-     TARGET_INCLUDE_DIRECTORIES(max-pooling-nhwc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(max-pooling-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(max-pooling-nhwc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME max-pooling-nhwc-test COMMAND max-pooling-nhwc-test)
- 
-     ADD_EXECUTABLE(maximum-nd-test test/maximum-nd.cc)
-     TARGET_INCLUDE_DIRECTORIES(maximum-nd-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(maximum-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(maximum-nd-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME maximum-nd-test COMMAND maximum-nd-test)
- 
-     ADD_EXECUTABLE(maximum-nd-eager-test test/maximum-nd-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(maximum-nd-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(maximum-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(maximum-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME maximum-nd-eager-test COMMAND maximum-nd-eager-test)
- 
-     ADD_EXECUTABLE(minimum-nd-test test/minimum-nd.cc)
-     TARGET_INCLUDE_DIRECTORIES(minimum-nd-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(minimum-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(minimum-nd-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME minimum-nd-test COMMAND minimum-nd-test)
- 
-     ADD_EXECUTABLE(minimum-nd-eager-test test/minimum-nd-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(minimum-nd-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(minimum-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(minimum-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME minimum-nd-eager-test COMMAND minimum-nd-eager-test)
- 
-     ADD_EXECUTABLE(multiply-nd-test test/multiply-nd.cc)
-     TARGET_INCLUDE_DIRECTORIES(multiply-nd-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(multiply-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(multiply-nd-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME multiply-nd-test COMMAND multiply-nd-test)
- 
-     ADD_EXECUTABLE(multiply-nd-eager-test test/multiply-nd-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(multiply-nd-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(multiply-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(multiply-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME multiply-nd-eager-test COMMAND multiply-nd-eager-test)
- 
-     ADD_EXECUTABLE(negate-nc-test test/negate-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(negate-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(negate-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(negate-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME negate-nc-test COMMAND negate-nc-test)
- 
-     ADD_EXECUTABLE(negate-nc-eager-test test/negate-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(negate-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(negate-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(negate-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME negate-nc-eager-test COMMAND negate-nc-eager-test)
- 
-     ADD_EXECUTABLE(prelu-nc-test test/prelu-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(prelu-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(prelu-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(prelu-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME prelu-nc-test COMMAND prelu-nc-test)
- 
-     ADD_EXECUTABLE(resize-bilinear-nhwc-test test/resize-bilinear-nhwc.cc)
-     TARGET_INCLUDE_DIRECTORIES(resize-bilinear-nhwc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(resize-bilinear-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(resize-bilinear-nhwc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME resize-bilinear-nhwc-test COMMAND resize-bilinear-nhwc-test)
- 
-     ADD_EXECUTABLE(resize-bilinear-nchw-test test/resize-bilinear-nchw.cc)
-     TARGET_INCLUDE_DIRECTORIES(resize-bilinear-nchw-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(resize-bilinear-nchw-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(resize-bilinear-nchw-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME resize-bilinear-nchw-test COMMAND resize-bilinear-nchw-test)
- 
-     ADD_EXECUTABLE(sigmoid-nc-test test/sigmoid-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(sigmoid-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(sigmoid-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(sigmoid-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME sigmoid-nc-test COMMAND sigmoid-nc-test)
- 
-     ADD_EXECUTABLE(sigmoid-nc-eager-test test/sigmoid-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(sigmoid-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(sigmoid-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(sigmoid-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME sigmoid-nc-eager-test COMMAND sigmoid-nc-eager-test)
- 
-     ADD_EXECUTABLE(slice-nd-test test/slice-nd.cc)
-     TARGET_INCLUDE_DIRECTORIES(slice-nd-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(slice-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(slice-nd-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME slice-nd-test COMMAND slice-nd-test)
- 
-     ADD_EXECUTABLE(slice-nd-eager-test test/slice-nd-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(slice-nd-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(slice-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(slice-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME slice-nd-eager-test COMMAND slice-nd-eager-test)
- 
-     ADD_EXECUTABLE(softmax-nc-test test/softmax-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(softmax-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(softmax-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(softmax-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME softmax-nc-test COMMAND softmax-nc-test)
- 
-     ADD_EXECUTABLE(space-to-depth-nhwc-test test/space-to-depth-nhwc.cc)
-     TARGET_INCLUDE_DIRECTORIES(space-to-depth-nhwc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(space-to-depth-nhwc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(space-to-depth-nhwc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME space-to-depth-nhwc-test COMMAND space-to-depth-nhwc-test)
- 
-     ADD_EXECUTABLE(square-nc-test test/square-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(square-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(square-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(square-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME square-nc-test COMMAND square-nc-test)
- 
-     ADD_EXECUTABLE(square-nc-eager-test test/square-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(square-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(square-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(square-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME square-nc-eager-test COMMAND square-nc-eager-test)
- 
-     ADD_EXECUTABLE(square-root-nc-test test/square-root-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(square-root-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(square-root-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(square-root-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME square-root-nc-test COMMAND square-root-nc-test)
- 
-     ADD_EXECUTABLE(square-root-nc-eager-test test/square-root-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(square-root-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(square-root-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(square-root-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME square-root-nc-eager-test COMMAND square-root-nc-eager-test)
- 
-     ADD_EXECUTABLE(squared-difference-nd-test test/squared-difference-nd.cc)
-     TARGET_INCLUDE_DIRECTORIES(squared-difference-nd-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(squared-difference-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(squared-difference-nd-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME squared-difference-nd-test COMMAND squared-difference-nd-test)
- 
-     ADD_EXECUTABLE(squared-difference-nd-eager-test test/squared-difference-nd-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(squared-difference-nd-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(squared-difference-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(squared-difference-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME squared-difference-nd-eager-test COMMAND squared-difference-nd-eager-test)
- 
-     ADD_EXECUTABLE(subtract-nd-test test/subtract-nd.cc)
-     TARGET_INCLUDE_DIRECTORIES(subtract-nd-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(subtract-nd-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(subtract-nd-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME subtract-nd-test COMMAND subtract-nd-test)
- 
-     ADD_EXECUTABLE(subtract-nd-eager-test test/subtract-nd-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(subtract-nd-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(subtract-nd-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(subtract-nd-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME subtract-nd-eager-test COMMAND subtract-nd-eager-test)
- 
-     ADD_EXECUTABLE(tanh-nc-test test/tanh-nc.cc)
-@@ -1293,12 +1260,12 @@
- 
-     ADD_EXECUTABLE(truncation-nc-test test/truncation-nc.cc)
-     TARGET_INCLUDE_DIRECTORIES(truncation-nc-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(truncation-nc-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(truncation-nc-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME truncation-nc-test COMMAND truncation-nc-test)
- 
-     ADD_EXECUTABLE(truncation-nc-eager-test test/truncation-nc-eager.cc)
-     TARGET_INCLUDE_DIRECTORIES(truncation-nc-eager-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(truncation-nc-eager-test PRIVATE XNNPACK fp16 gtest gtest_main)
-+    TARGET_LINK_LIBRARIES(truncation-nc-eager-test PRIVATE XNNPACK gtest gtest_main)
-     ADD_TEST(NAME truncation-nc-eager-test COMMAND truncation-nc-eager-test)
- 
-     ADD_EXECUTABLE(unpooling-nhwc-test test/unpooling-nhwc.cc)
-@@ -1350,22 +1317,22 @@
- 
-     ADD_EXECUTABLE(average-pooling-2d-test test/average-pooling-2d.cc)
-     TARGET_INCLUDE_DIRECTORIES(average-pooling-2d-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(average-pooling-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(average-pooling-2d-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME average-pooling-2d-test COMMAND average-pooling-2d-test)
- 
-     ADD_EXECUTABLE(bankers-rounding-test test/bankers-rounding.cc)
-     TARGET_INCLUDE_DIRECTORIES(bankers-rounding-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(bankers-rounding-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(bankers-rounding-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME bankers-rounding-test COMMAND bankers-rounding-test)
- 
-     ADD_EXECUTABLE(ceiling-test test/ceiling.cc)
-     TARGET_INCLUDE_DIRECTORIES(ceiling-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(ceiling-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(ceiling-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME ceiling-test COMMAND ceiling-test)
- 
-     ADD_EXECUTABLE(clamp-test test/clamp.cc)
-     TARGET_INCLUDE_DIRECTORIES(clamp-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(clamp-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(clamp-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME clamp-test COMMAND clamp-test)
- 
-     ADD_EXECUTABLE(concatenate2-test test/concatenate2.cc)
-@@ -1385,187 +1352,187 @@
- 
-     ADD_EXECUTABLE(convert-test test/convert.cc)
-     TARGET_INCLUDE_DIRECTORIES(convert-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(convert-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(convert-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME convert-test COMMAND convert-test)
- 
-     ADD_EXECUTABLE(convolution-2d-test test/convolution-2d.cc)
-     SET_TARGET_PROPERTIES(convolution-2d-test PROPERTIES CXX_EXTENSIONS YES)
-     TARGET_INCLUDE_DIRECTORIES(convolution-2d-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(convolution-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph convolution-test-helpers)
-+    TARGET_LINK_LIBRARIES(convolution-2d-test PRIVATE XNNPACK gtest gtest_main subgraph convolution-test-helpers)
-     ADD_TEST(NAME convolution-2d-test COMMAND convolution-2d-test)
- 
-     ADD_EXECUTABLE(copy-test test/copy.cc)
-     TARGET_INCLUDE_DIRECTORIES(copy-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(copy-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(copy-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME copy-test COMMAND copy-test)
- 
-     ADD_EXECUTABLE(deconvolution-2d-test test/deconvolution-2d.cc)
-     SET_TARGET_PROPERTIES(deconvolution-2d-test PROPERTIES CXX_EXTENSIONS YES)
-     TARGET_INCLUDE_DIRECTORIES(deconvolution-2d-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(deconvolution-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph convolution-test-helpers)
-+    TARGET_LINK_LIBRARIES(deconvolution-2d-test PRIVATE XNNPACK gtest gtest_main subgraph convolution-test-helpers)
-     ADD_TEST(NAME deconvolution-2d-test COMMAND deconvolution-2d-test)
- 
-     ADD_EXECUTABLE(depth-to-space-test test/depth-to-space.cc)
-     TARGET_INCLUDE_DIRECTORIES(depth-to-space-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(depth-to-space-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(depth-to-space-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME depth-to-space-test COMMAND depth-to-space-test)
- 
-     ADD_EXECUTABLE(depthwise-convolution-2d-test test/depthwise-convolution-2d.cc)
-     SET_TARGET_PROPERTIES(depthwise-convolution-2d-test PROPERTIES CXX_EXTENSIONS YES)
-     TARGET_INCLUDE_DIRECTORIES(depthwise-convolution-2d-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(depthwise-convolution-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph convolution-test-helpers)
-+    TARGET_LINK_LIBRARIES(depthwise-convolution-2d-test PRIVATE XNNPACK gtest gtest_main subgraph convolution-test-helpers)
-     ADD_TEST(NAME depthwise-convolution-2d-test COMMAND depthwise-convolution-2d-test)
- 
-     ADD_EXECUTABLE(divide2-test test/divide2.cc)
-     TARGET_INCLUDE_DIRECTORIES(divide2-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(divide2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(divide2-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME divide2-test COMMAND divide2-test)
- 
-     ADD_EXECUTABLE(elu-test test/elu.cc)
-     TARGET_INCLUDE_DIRECTORIES(elu-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(elu-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(elu-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME elu-test COMMAND elu-test)
- 
-     ADD_EXECUTABLE(even-split2-test test/even-split2.cc)
-     TARGET_INCLUDE_DIRECTORIES(even-split2-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(even-split2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(even-split2-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME even-split2-test COMMAND even-split2-test)
- 
-     ADD_EXECUTABLE(even-split3-test test/even-split3.cc)
-     TARGET_INCLUDE_DIRECTORIES(even-split3-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(even-split3-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(even-split3-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME even-split3-test COMMAND even-split3-test)
- 
-     ADD_EXECUTABLE(even-split4-test test/even-split4.cc)
-     TARGET_INCLUDE_DIRECTORIES(even-split4-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(even-split4-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(even-split4-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME even-split4-test COMMAND even-split4-test)
- 
-     ADD_EXECUTABLE(floor-test test/floor.cc)
-     TARGET_INCLUDE_DIRECTORIES(floor-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(floor-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(floor-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME floor-test COMMAND floor-test)
- 
-     ADD_EXECUTABLE(fully-connected-test test/fully-connected.cc)
-     TARGET_INCLUDE_DIRECTORIES(fully-connected-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(fully-connected-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(fully-connected-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME fully-connected-test COMMAND fully-connected-test)
- 
-     ADD_EXECUTABLE(global-average-pooling-1d-test test/global-average-pooling-1d.cc)
-     TARGET_INCLUDE_DIRECTORIES(global-average-pooling-1d-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(global-average-pooling-1d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(global-average-pooling-1d-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME global-average-pooling-1d-test COMMAND global-average-pooling-1d-test)
- 
-     ADD_EXECUTABLE(global-average-pooling-2d-test test/global-average-pooling-2d.cc)
-     TARGET_INCLUDE_DIRECTORIES(global-average-pooling-2d-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(global-average-pooling-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(global-average-pooling-2d-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME global-average-pooling-2d-test COMMAND global-average-pooling-2d-test)
- 
-     ADD_EXECUTABLE(hardswish-test test/hardswish.cc)
-     TARGET_INCLUDE_DIRECTORIES(hardswish-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(hardswish-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(hardswish-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME hardswish-test COMMAND hardswish-test)
- 
-     ADD_EXECUTABLE(leaky-relu-test test/leaky-relu.cc)
-     TARGET_INCLUDE_DIRECTORIES(leaky-relu-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(leaky-relu-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(leaky-relu-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME leaky-relu-test COMMAND leaky-relu-test)
- 
-     ADD_EXECUTABLE(max-pooling-2d-test test/max-pooling-2d.cc)
-     TARGET_INCLUDE_DIRECTORIES(max-pooling-2d-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(max-pooling-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(max-pooling-2d-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME max-pooling-2d-test COMMAND max-pooling-2d-test)
- 
-     ADD_EXECUTABLE(maximum2-test test/maximum2.cc)
-     TARGET_INCLUDE_DIRECTORIES(maximum2-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(maximum2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(maximum2-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME maximum2-test COMMAND maximum2-test)
- 
-     ADD_EXECUTABLE(minimum2-test test/minimum2.cc)
-     TARGET_INCLUDE_DIRECTORIES(minimum2-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(minimum2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(minimum2-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME minimum2-test COMMAND minimum2-test)
- 
-     ADD_EXECUTABLE(multiply2-test test/multiply2.cc)
-     TARGET_INCLUDE_DIRECTORIES(multiply2-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(multiply2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(multiply2-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME multiply2-test COMMAND multiply2-test)
- 
-     ADD_EXECUTABLE(negate-test test/negate.cc)
-     TARGET_INCLUDE_DIRECTORIES(negate-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(negate-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(negate-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME negate-test COMMAND negate-test)
- 
-     ADD_EXECUTABLE(prelu-test test/prelu.cc)
-     TARGET_INCLUDE_DIRECTORIES(prelu-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(prelu-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(prelu-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME prelu-test COMMAND prelu-test)
- 
-     ADD_EXECUTABLE(sigmoid-test test/sigmoid.cc)
-     SET_TARGET_PROPERTIES(sigmoid-test PROPERTIES CXX_EXTENSIONS YES)
-     TARGET_INCLUDE_DIRECTORIES(sigmoid-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(sigmoid-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(sigmoid-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME sigmoid-test COMMAND sigmoid-test)
- 
-     ADD_EXECUTABLE(static-slice-test test/static-slice.cc)
-     SET_TARGET_PROPERTIES(static-slice-test PROPERTIES CXX_EXTENSIONS YES)
-     TARGET_INCLUDE_DIRECTORIES(static-slice-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(static-slice-test PRIVATE XNNPACK fp16 gmock gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(static-slice-test PRIVATE XNNPACK gmock gtest gtest_main subgraph)
-     ADD_TEST(NAME static-slice-test COMMAND static-slice-test)
- 
-     ADD_EXECUTABLE(softmax-test test/softmax.cc)
-     TARGET_INCLUDE_DIRECTORIES(softmax-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(softmax-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(softmax-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME softmax-test COMMAND softmax-test)
- 
-     ADD_EXECUTABLE(space-to-depth-2d-test test/space-to-depth-2d.cc)
-     TARGET_INCLUDE_DIRECTORIES(space-to-depth-2d-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(space-to-depth-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(space-to-depth-2d-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME space-to-depth-2d-test COMMAND space-to-depth-2d-test)
- 
-     ADD_EXECUTABLE(square-test test/square.cc)
-     TARGET_INCLUDE_DIRECTORIES(square-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(square-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(square-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME square-test COMMAND square-test)
- 
-     ADD_EXECUTABLE(square-root-test test/square.cc)
-     TARGET_INCLUDE_DIRECTORIES(square-root-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(square-root-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(square-root-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME square-root-test COMMAND square-root-test)
- 
-     ADD_EXECUTABLE(squared-difference-test test/squared-difference.cc)
-     TARGET_INCLUDE_DIRECTORIES(squared-difference-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(squared-difference-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(squared-difference-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME squared-difference-test COMMAND squared-difference-test)
- 
-     ADD_EXECUTABLE(static-constant-pad-test test/static-constant-pad.cc)
-     TARGET_INCLUDE_DIRECTORIES(static-constant-pad-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(static-constant-pad-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(static-constant-pad-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME static-constant-pad-test COMMAND static-constant-pad-test)
- 
-     ADD_EXECUTABLE(static-reshape-test test/static-reshape.cc)
-     TARGET_INCLUDE_DIRECTORIES(static-reshape-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(static-reshape-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(static-reshape-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME static-reshape-test COMMAND static-reshape-test)
- 
-     ADD_EXECUTABLE(static-resize-bilinear-2d-test test/static-resize-bilinear-2d.cc)
-     TARGET_INCLUDE_DIRECTORIES(static-resize-bilinear-2d-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(static-resize-bilinear-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(static-resize-bilinear-2d-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME static-resize-bilinear-2d-test COMMAND static-resize-bilinear-2d-test)
- 
-     ADD_EXECUTABLE(static-transpose-test test/static-transpose.cc)
-     TARGET_INCLUDE_DIRECTORIES(static-transpose-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(static-transpose-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(static-transpose-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME static-transpose-test COMMAND static-transpose-test)
- 
-     ADD_EXECUTABLE(subtract2-test test/subtract2.cc)
-     TARGET_INCLUDE_DIRECTORIES(subtract2-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(subtract2-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(subtract2-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME subtract2-test COMMAND subtract2-test)
- 
-     ADD_EXECUTABLE(unpooling-2d-test test/unpooling-2d.cc)
-     TARGET_INCLUDE_DIRECTORIES(unpooling-2d-test PRIVATE src test)
--    TARGET_LINK_LIBRARIES(unpooling-2d-test PRIVATE XNNPACK fp16 gtest gtest_main subgraph)
-+    TARGET_LINK_LIBRARIES(unpooling-2d-test PRIVATE XNNPACK gtest gtest_main subgraph)
-     ADD_TEST(NAME unpooling-2d-test COMMAND unpooling-2d-test)
-   ENDIF()
- 
-@@ -1591,355 +1558,355 @@
- 
-   ADD_EXECUTABLE(f16-f32-vcvt-test test/f16-f32-vcvt.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-f32-vcvt-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-f32-vcvt-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-f32-vcvt-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-f32-vcvt-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-f32-vcvt-test COMMAND f16-f32-vcvt-test)
- 
-   ADD_EXECUTABLE(f16-gavgpool-cw-test test/f16-gavgpool-cw.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-gavgpool-cw-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-gavgpool-cw-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-gavgpool-cw-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-gavgpool-cw-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-gavgpool-cw-test COMMAND f16-gavgpool-cw-test)
- 
-   ADD_EXECUTABLE(f16-avgpool-minmax-test test/f16-avgpool-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-avgpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-avgpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-avgpool-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-avgpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-avgpool-minmax-test COMMAND f16-avgpool-minmax-test)
- 
-   ADD_EXECUTABLE(f16-conv-hwc2chw-test test/f16-conv-hwc2chw.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-conv-hwc2chw-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-conv-hwc2chw-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-conv-hwc2chw-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-conv-hwc2chw-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
-   ADD_TEST(NAME f16-conv-hwc2chw-test COMMAND f16-conv-hwc2chw-test)
- 
-   ADD_EXECUTABLE(f16-dwconv-unipass-minmax-test test/f16-dwconv-unipass-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-dwconv-unipass-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-dwconv-unipass-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-dwconv-unipass-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-dwconv-unipass-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
-   ADD_TEST(NAME f16-dwconv-unipass-minmax-test COMMAND f16-dwconv-unipass-minmax-test)
- 
-   ADD_EXECUTABLE(f16-dwconv2d-chw-test test/f16-dwconv2d-chw.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-dwconv2d-chw-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-dwconv2d-chw-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-dwconv2d-chw-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-dwconv2d-chw-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
-   ADD_TEST(NAME f16-dwconv2d-chw-test COMMAND f16-dwconv2d-chw-test)
- 
-   ADD_EXECUTABLE(f16-gavgpool-minmax-test test/f16-gavgpool-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-gavgpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-gavgpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-gavgpool-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-gavgpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-gavgpool-minmax-test COMMAND f16-gavgpool-minmax-test)
- 
-   ADD_EXECUTABLE(f16-gemm-minmax-test test/f16-gemm-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-gemm-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-gemm-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-gemm-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-gemm-minmax-test PRIVATE gemm-microkernel-tester hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-gemm-minmax-test COMMAND f16-gemm-minmax-test)
- 
-   ADD_EXECUTABLE(f16-ibilinear-chw-test test/f16-ibilinear-chw.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-ibilinear-chw-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-ibilinear-chw-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-ibilinear-chw-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-ibilinear-chw-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-ibilinear-chw-test COMMAND f16-ibilinear-chw-test)
- 
-   ADD_EXECUTABLE(f16-ibilinear-test test/f16-ibilinear.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-ibilinear-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-ibilinear-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-ibilinear-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-ibilinear-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-ibilinear-test COMMAND f16-ibilinear-test)
- 
-   ADD_EXECUTABLE(f16-igemm-minmax-test test/f16-igemm-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-igemm-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-igemm-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-igemm-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-igemm-minmax-test PRIVATE gemm-microkernel-tester hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-igemm-minmax-test COMMAND f16-igemm-minmax-test)
- 
-   ADD_EXECUTABLE(f16-maxpool-minmax-test test/f16-maxpool-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-maxpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-maxpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-maxpool-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-maxpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-maxpool-minmax-test COMMAND f16-maxpool-minmax-test)
- 
-   ADD_EXECUTABLE(f16-spmm-minmax-test test/f16-spmm-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-spmm-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-spmm-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-spmm-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-spmm-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-spmm-minmax-test COMMAND f16-spmm-minmax-test)
- 
-   ADD_EXECUTABLE(f16-rmax-test test/f16-rmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-rmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-rmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-rmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-rmax-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-rmax-test COMMAND f16-rmax-test)
- 
-   ADD_EXECUTABLE(f16-vabs-test test/f16-vabs.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vabs-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vabs-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vabs-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vabs-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vabs-test COMMAND f16-vabs-test)
- 
-   ADD_EXECUTABLE(f16-vadd-minmax-test test/f16-vadd-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vadd-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vadd-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vadd-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vadd-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vadd-minmax-test COMMAND f16-vadd-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vaddc-minmax-test test/f16-vaddc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vaddc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vaddc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vaddc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vaddc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vaddc-minmax-test COMMAND f16-vaddc-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vclamp-test test/f16-vclamp.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vclamp-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vclamp-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vclamp-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vclamp-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vclamp-test COMMAND f16-vclamp-test)
- 
-   ADD_EXECUTABLE(f16-vdiv-minmax-test test/f16-vdiv-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vdiv-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vdiv-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vdiv-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vdiv-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vdiv-minmax-test COMMAND f16-vdiv-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vdivc-minmax-test test/f16-vdivc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vdivc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vdivc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vdivc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vdivc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vdivc-minmax-test COMMAND f16-vdivc-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vrdivc-minmax-test test/f16-vrdivc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vrdivc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vrdivc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vrdivc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vrdivc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vrdivc-minmax-test COMMAND f16-vrdivc-minmax-test)
- 
-   ADD_EXECUTABLE(f16-velu-test test/f16-velu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-velu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-velu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-velu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-velu-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-velu-test COMMAND f16-velu-test)
- 
-   ADD_EXECUTABLE(f16-vhswish-test test/f16-vhswish.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vhswish-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vhswish-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vhswish-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vhswish-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vhswish-test COMMAND f16-vhswish-test)
- 
-   ADD_EXECUTABLE(f16-vlrelu-test test/f16-vlrelu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vlrelu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vlrelu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vlrelu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vlrelu-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vlrelu-test COMMAND f16-vlrelu-test)
- 
-   ADD_EXECUTABLE(f16-vmax-test test/f16-vmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vmax-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-vmax-test COMMAND f16-vmax-test)
- 
-   ADD_EXECUTABLE(f16-vmaxc-test test/f16-vmaxc.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vmaxc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vmaxc-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vmaxc-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vmaxc-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-vmaxc-test COMMAND f16-vmaxc-test)
- 
-   ADD_EXECUTABLE(f16-vmin-test test/f16-vmin.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vmin-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vmin-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vmin-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vmin-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-vmin-test COMMAND f16-vmin-test)
- 
-   ADD_EXECUTABLE(f16-vminc-test test/f16-vminc.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vminc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vminc-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vminc-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vminc-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-vminc-test COMMAND f16-vminc-test)
- 
-   ADD_EXECUTABLE(f16-vmul-minmax-test test/f16-vmul-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vmul-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vmul-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vmul-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vmul-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vmul-minmax-test COMMAND f16-vmul-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vmulc-minmax-test test/f16-vmulc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vmulc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vmulc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vmulc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vmulc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vmulc-minmax-test COMMAND f16-vmulc-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vmulcaddc-minmax-test test/f16-vmulcaddc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vmulcaddc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vmulcaddc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vmulcaddc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vmulcaddc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
-   ADD_TEST(NAME f16-vmulcaddc-minmax-test COMMAND f16-vmulcaddc-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vneg-test test/f16-vneg.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vneg-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vneg-test PRIVATE fp16 pthreadpool gtest gtest_main microparams-init)
-+  TARGET_LINK_LIBRARIES(f16-vneg-test PRIVATE gtest gtest_main microparams-init)
-   TARGET_LINK_LIBRARIES(f16-vneg-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vneg-test COMMAND f16-vneg-test)
- 
-   ADD_EXECUTABLE(f16-pavgpool-minmax-test test/f16-pavgpool-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-pavgpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-pavgpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-pavgpool-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-pavgpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-pavgpool-minmax-test COMMAND f16-pavgpool-minmax-test)
- 
-   ADD_EXECUTABLE(f16-prelu-test test/f16-prelu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-prelu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-prelu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-prelu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-prelu-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-prelu-test COMMAND f16-prelu-test)
- 
-   ADD_EXECUTABLE(f16-raddstoreexpminusmax-test test/f16-raddstoreexpminusmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-raddstoreexpminusmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-raddstoreexpminusmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-raddstoreexpminusmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-raddstoreexpminusmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-raddstoreexpminusmax-test COMMAND f16-raddstoreexpminusmax-test)
- 
-   ADD_EXECUTABLE(f16-vrndne-test test/f16-vrndne.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vrndne-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vrndne-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vrndne-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vrndne-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-vrndne-test COMMAND f16-vrndne-test)
- 
-   ADD_EXECUTABLE(f16-vrndz-test test/f16-vrndz.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vrndz-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vrndz-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vrndz-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vrndz-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-vrndz-test COMMAND f16-vrndz-test)
- 
-   ADD_EXECUTABLE(f16-vrndu-test test/f16-vrndu.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vrndu-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vrndu-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vrndu-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vrndu-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-vrndu-test COMMAND f16-vrndu-test)
- 
-   ADD_EXECUTABLE(f16-vrndd-test test/f16-vrndd.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vrndd-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vrndd-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vrndd-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vrndd-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-vrndd-test COMMAND f16-vrndd-test)
- 
-   ADD_EXECUTABLE(f16-vsigmoid-test test/f16-vsigmoid.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vsigmoid-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vsigmoid-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vsigmoid-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vsigmoid-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vsigmoid-test COMMAND f16-vsigmoid-test)
- 
-   ADD_EXECUTABLE(f16-vsqr-test test/f16-vsqr.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vsqr-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vsqr-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vsqr-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vsqr-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-vsqr-test COMMAND f16-vsqr-test)
- 
-   ADD_EXECUTABLE(f16-vsqrt-test test/f16-vsqrt.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vsqrt-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vsqrt-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vsqrt-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vsqrt-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f16-vsqrt-test COMMAND f16-vsqrt-test)
- 
-   ADD_EXECUTABLE(f16-vsub-minmax-test test/f16-vsub-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vsub-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vsub-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vsub-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vsub-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vsub-minmax-test COMMAND f16-vsub-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vsubc-minmax-test test/f16-vsubc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vsubc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vsubc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vsubc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vsubc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vsubc-minmax-test COMMAND f16-vsubc-minmax-test)
- 
-   ADD_EXECUTABLE(f16-vrsubc-minmax-test test/f16-vrsubc-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f16-vrsubc-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f16-vrsubc-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f16-vrsubc-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f16-vrsubc-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f16-vrsubc-minmax-test COMMAND f16-vrsubc-minmax-test)
- 
-   ADD_EXECUTABLE(f32-argmaxpool-test test/f32-argmaxpool.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-argmaxpool-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-argmaxpool-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-argmaxpool-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-argmaxpool-test PRIVATE hardware-config logging microkernels-all)
-   ADD_TEST(NAME f32-argmaxpool-test COMMAND f32-argmaxpool-test)
- 
-   ADD_EXECUTABLE(f32-avgpool-minmax-test test/f32-avgpool-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-avgpool-minmax-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-avgpool-minmax-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-avgpool-minmax-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-avgpool-minmax-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-avgpool-minmax-test COMMAND f32-avgpool-minmax-test)
- 
-   ADD_EXECUTABLE(f32-conv-hwc-test test/f32-conv-hwc.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-conv-hwc-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-conv-hwc-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-conv-hwc-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-conv-hwc-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
-   ADD_TEST(NAME f32-conv-hwc-test COMMAND f32-conv-hwc-test)
- 
-   ADD_EXECUTABLE(f32-conv-hwc2chw-test test/f32-conv-hwc2chw.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-conv-hwc2chw-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-conv-hwc2chw-test PRIVATE fp16 pthreadpool gtest gtest_main microparams-init)
-+  TARGET_LINK_LIBRARIES(f32-conv-hwc2chw-test PRIVATE gtest gtest_main microparams-init)
-   TARGET_LINK_LIBRARIES(f32-conv-hwc2chw-test PRIVATE hardware-config logging microkernels-all microparams-init packing)
-   ADD_TEST(NAME f32-conv-hwc2chw-test COMMAND f32-conv-hwc2chw-test)
- 
-   ADD_EXECUTABLE(f32-dwconv2d-chw-test test/f32-dwconv2d-chw.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-dwconv2d-chw-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-dwconv2d-chw-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-dwconv2d-chw-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-dwconv2d-chw-test PRIVATE hardware-config logging microkernels-all microparams-init)
-   ADD_TEST(NAME f32-dwconv2d-chw-test COMMAND f32-dwconv2d-chw-test)
- 
-   ADD_EXECUTABLE(f32-dwconv-multipass-test test/f32-dwconv-multipass.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-dwconv-multipass-test PRIVATE include src test)
--  TARGET_LINK_LIBRARIES(f32-dwconv-multipass-test PRIVATE fp16 pthreadpool gtest gtest_main)
-+  TARGET_LINK_LIBRARIES(f32-dwconv-multipass-test PRIVATE gtest gtest_main)
-   TARGET_LINK_LIBRARIES(f32-dwconv-multipass-test PRIVATE hardware-config logging microkernel-utils microkernels-all microparams-init packing)
-   ADD_TEST(NAME f32-dwconv-multipass-test COMMAND f32-dwconv-multipass-test)
- 
-   ADD_EXECUTABLE(f32-dwconv-multipass-minmax-test test/f32-dwconv-multipass-minmax.cc)
-   TARGET_INCLUDE_DIRECTORIES(f32-dwc