From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.7 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E1029C4361B for ; Thu, 17 Dec 2020 16:52:58 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 14177208BA for ; Thu, 17 Dec 2020 16:52:57 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 14177208BA Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=bugs.launchpad.net Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:39544 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kpwWO-0000Rb-JY for qemu-devel@archiver.kernel.org; Thu, 17 Dec 2020 11:52:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:32772) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kpwUD-0007xo-Lf for qemu-devel@nongnu.org; Thu, 17 Dec 2020 11:50:41 -0500 Received: from indium.canonical.com ([91.189.90.7]:34518) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kpwUB-0002JM-Ht for qemu-devel@nongnu.org; Thu, 17 Dec 2020 11:50:41 -0500 Received: from loganberry.canonical.com ([91.189.90.37]) by indium.canonical.com with esmtp (Exim 4.86_2 #2 (Debian)) id 1kpwU9-0005Fo-FB for ; Thu, 17 Dec 2020 16:50:37 +0000 Received: from loganberry.canonical.com (localhost [127.0.0.1]) by loganberry.canonical.com (Postfix) with ESMTP id 6361F2E8138 for ; Thu, 17 Dec 2020 16:50:37 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Date: Thu, 17 Dec 2020 16:45:13 -0000 From: Szabolcs Nagy <1908551@bugs.launchpad.net> To: qemu-devel@nongnu.org X-Launchpad-Notification-Type: bug X-Launchpad-Bug: product=qemu; status=New; importance=Undecided; assignee=None; X-Launchpad-Bug-Information-Type: Public X-Launchpad-Bug-Private: no X-Launchpad-Bug-Security-Vulnerability: no X-Launchpad-Bug-Commenters: nsz X-Launchpad-Bug-Reporter: Szabolcs Nagy (nsz) X-Launchpad-Bug-Modifier: Szabolcs Nagy (nsz) Message-Id: <160822351418.3694.12914163160887636672.malonedeb@gac.canonical.com> Subject: [Bug 1908551] [NEW] aarch64 SVE emulation breaks strnlen and strrchr X-Launchpad-Message-Rationale: Subscriber (QEMU) @qemu-devel-ml X-Launchpad-Message-For: qemu-devel-ml Precedence: bulk X-Generated-By: Launchpad (canonical.com); Revision="a68a6d599c812dd1dd335307d9c5c017c50ba81b"; Instance="production" X-Launchpad-Hash: cb7a0d93fd6d2c8d32dbaee704ced3f964cb00f7 Received-SPF: none client-ip=91.189.90.7; envelope-from=bounces@canonical.com; helo=indium.canonical.com X-Spam_score_int: -65 X-Spam_score: -6.6 X-Spam_bar: ------ X-Spam_report: (-6.6 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Bug 1908551 <1908551@bugs.launchpad.net> Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Public bug reported: arm optimized-routines have sve string functions with test code. the test worked up until recently: with qemu-5.2.0 i see $ qemu-aarch64 build/bin/test/strnlen PASS strnlen PASS __strnlen_aarch64 __strnlen_aarch64_sve (0x490fa0, 32) len 32 returned 64, expected 32 input: "abcdefghijklmnopqrstuvwxyz\{|}~\x7f\x80" __strnlen_aarch64_sve (0x490fa0, 32) len 33 returned 64, expected 32 input: "abcdefghijklmnopqrstuvwxyz\{|}~\x7f\x80a" __strnlen_aarch64_sve (0x490fa0, 33) len 33 returned 64, expected 33 input: "abcdefghijklmnopqrstuvwxyz\{|}~\x7f\x80a" __strnlen_aarch64_sve (0x490fa0, 32) len 34 returned 64, expected 32 input: "abcdefghijklmnopqrstuvwxyz\{|}~\x7f\x80ab" __strnlen_aarch64_sve (0x490fa0, 33) len 34 returned 64, expected 33 input: "abcdefghijklmnopqrstuvwxyz\{|}~\x7f\x80ab" __strnlen_aarch64_sve (0x490fa0, 34) len 34 returned 64, expected 34 input: "abcdefghijklmnopqrstuvwxyz\{|}~\x7f\x80ab" __strnlen_aarch64_sve (0x490fa0, 32) len 35 returned 64, expected 32 input: "abcdefghijklmnopqrstuvwxyz\{|}~\x7f\x80a\x00c" __strnlen_aarch64_sve (0x490fa0, 33) len 35 returned 64, expected 33 input: "abcdefghijklmnopqrstuvwxyz\{|}~\x7f\x80ab\x00" __strnlen_aarch64_sve (0x490fa0, 34) len 35 returned 64, expected 34 input: "abcdefghijklmnopqrstuvwxyz\{|}~\x7f\x80abc" __strnlen_aarch64_sve (0x490fa0, 35) len 35 returned 64, expected 35 input: "abcdefghijklmnopqrstuvwxyz\{|}~\x7f\x80abc" FAIL __strnlen_aarch64_sve however the test passes with qemu-aarch64 -cpu max,sve-max-vq=3D2 there should be nothing vector length specific in the code. i haven't debugged it further, to reproduce the issue clone https://github.com/ARM-software/optimized-routines and run 'make build/bin/test/strnlen' with a config.mk like SUBS =3D string ARCH =3D aarch64 CROSS_COMPILE =3D aarch64-none-linux-gnu- CC =3D $(CROSS_COMPILE)gcc CFLAGS =3D -std=3Dc99 -pipe -O3 CFLAGS +=3D -march=3Darmv8.2-a+sve EMULATOR =3D qemu-aarch64 (native compilation works too, and you can run 'make check' to run all string tests) this will build a static linked executable into build/bin/test. if you want a smaller test case edit string/test/strnlen.c ** Affects: qemu Importance: Undecided Status: New -- = You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1908551 Title: aarch64 SVE emulation breaks strnlen and strrchr Status in QEMU: New Bug description: arm optimized-routines have sve string functions with test code. the test worked up until recently: with qemu-5.2.0 i see $ qemu-aarch64 build/bin/test/strnlen PASS strnlen PASS __strnlen_aarch64 __strnlen_aarch64_sve (0x490fa0, 32) len 32 returned 64, expected 32 input: "abcdefghijklmnopqrstuvwxyz\{|}~\x7f\x80" __strnlen_aarch64_sve (0x490fa0, 32) len 33 returned 64, expected 32 input: "abcdefghijklmnopqrstuvwxyz\{|}~\x7f\x80a" __strnlen_aarch64_sve (0x490fa0, 33) len 33 returned 64, expected 33 input: "abcdefghijklmnopqrstuvwxyz\{|}~\x7f\x80a" __strnlen_aarch64_sve (0x490fa0, 32) len 34 returned 64, expected 32 input: "abcdefghijklmnopqrstuvwxyz\{|}~\x7f\x80ab" __strnlen_aarch64_sve (0x490fa0, 33) len 34 returned 64, expected 33 input: "abcdefghijklmnopqrstuvwxyz\{|}~\x7f\x80ab" __strnlen_aarch64_sve (0x490fa0, 34) len 34 returned 64, expected 34 input: "abcdefghijklmnopqrstuvwxyz\{|}~\x7f\x80ab" __strnlen_aarch64_sve (0x490fa0, 32) len 35 returned 64, expected 32 input: "abcdefghijklmnopqrstuvwxyz\{|}~\x7f\x80a\x00c" __strnlen_aarch64_sve (0x490fa0, 33) len 35 returned 64, expected 33 input: "abcdefghijklmnopqrstuvwxyz\{|}~\x7f\x80ab\x00" __strnlen_aarch64_sve (0x490fa0, 34) len 35 returned 64, expected 34 input: "abcdefghijklmnopqrstuvwxyz\{|}~\x7f\x80abc" __strnlen_aarch64_sve (0x490fa0, 35) len 35 returned 64, expected 35 input: "abcdefghijklmnopqrstuvwxyz\{|}~\x7f\x80abc" FAIL __strnlen_aarch64_sve however the test passes with qemu-aarch64 -cpu max,sve-max-vq=3D2 there should be nothing vector length specific in the code. i haven't debugged it further, to reproduce the issue clone https://github.com/ARM-software/optimized-routines and run 'make build/bin/test/strnlen' with a config.mk like SUBS =3D string ARCH =3D aarch64 CROSS_COMPILE =3D aarch64-none-linux-gnu- CC =3D $(CROSS_COMPILE)gcc CFLAGS =3D -std=3Dc99 -pipe -O3 CFLAGS +=3D -march=3Darmv8.2-a+sve EMULATOR =3D qemu-aarch64 (native compilation works too, and you can run 'make check' to run all string tests) this will build a static linked executable into build/bin/test. if you want a smaller test case edit string/test/strnlen.c To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1908551/+subscriptions