From patchwork Fri Oct 18 14:06:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uros Bizjak X-Patchwork-Id: 1999182 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=KHX+QseD; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4XVRNq1yxZz1xvV for ; Sat, 19 Oct 2024 01:07:37 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B66CE3858C66 for ; Fri, 18 Oct 2024 14:07:35 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com [IPv6:2a00:1450:4864:20::22a]) by sourceware.org (Postfix) with ESMTPS id 20C313858D20 for ; Fri, 18 Oct 2024 14:07:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 20C313858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 20C313858D20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::22a ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1729260435; cv=none; b=CpzqvHyJg9OhfOcnUH/62FZNBUsyrdxQRXbjqhNZ1todvppB13cEGGc6ScxL5BiF8AGUwI3UACm7CAdUmcBllI+p6+mh1CgRUti5NDZF2PJHPFrFJh2K9gqT6DWDkDhO9Bq9QSF/kSee+rKc3zIKUSjyoSb9p4GTKpU4D+IKqrY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1729260435; c=relaxed/simple; bh=DFHIyJJxAess2f6/+hVt6lEb+FUpxJXeXi+FeaP+ibA=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=DqDMq9u/3OJGx9yPq4TdrT/kj36o41SsFlCtgbkGyOm591jHN2K1+aNj2cuAYJCurMZfVk6j9YvaAzO8SSdtSBO1YSzRoqlKyhHohTNHOaCd2BrNUtMjWCvx0UtWw8QSaeXIiNal4CNmbZB36zzSJwe/M/91caZOxQP362M7/nU= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-lj1-x22a.google.com with SMTP id 38308e7fff4ca-2fb3debdc09so18918921fa.3 for ; Fri, 18 Oct 2024 07:07:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1729260430; x=1729865230; darn=gcc.gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=WuzPRZ4Rp3lE8bQgj8p8GVbkk9Q4CERI0K5DSubCIXg=; b=KHX+QseDvtHk5+fUfPc4fw1ih8XJ3vqpWtLjyYz6eY8srsZ7PoBL6QeYh7uiMTiuD7 gewAKNE5Xq6Wb391tqgxXTr/m0dlWYpbHPaq+0ruvIJkhoa+AfvVe3bzqtlsPWDsC04n +SCYkcnY7NCVuJUy2kihOvPqUQiKGO00zNbhBHrJXDPZO7YuBVhca2TALKa0hyfRgIwR BBGXLEYXA3DbwyimqVwv0FknH+xBI+5h+SLl8ayb8tqxoN5KLIyfkH6i413olopyuvh/ J0jvUYPnkoZNIylxvhcO644vHdJJmEHv0Su/4NmEljwXIwOGoQ5nsQq4PSBBe5ySJfdG VSDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729260430; x=1729865230; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=WuzPRZ4Rp3lE8bQgj8p8GVbkk9Q4CERI0K5DSubCIXg=; b=FYwsn+FdSYuVnwNTDvJ0LCF057hgXsflRv0Ts6Ysr1HLFpYC1H9DgAXlR/P4aCOk8Z 1tYFtvZrmzCgqSxvZIGhzUmgHuJvzfLyRC+yX6qKwzPn6awjf/gOmWS4CmI3yg0r2daU N8604mFbJq1sAGTOW+hDwp+KrYJOprOv2awEqpGLczG4qbwfoRqQBNAakOL6NJ+VngMq e2LqsrY0horDB7sQVirj0jbqGoLQEBNCBc71NEoFMA2dog0PFD3IjM+SGuhimU02jzGX TmODOJRbbJ0ntzOPibBneVPUwSon3RSwwK34MKX8ilwg3WyKAWMvICM8euWR+0GIRdT7 IL1w== X-Gm-Message-State: AOJu0YwIFuDG3KldM0lNs2S3hW1wbuQHpp11nDaNyuUm2EUjqzHf8KEq K+xt8FeQIUXvRGRxjUN7jd7XLGm67XFHIr818wzgjdr3Au9tmYA867AdRp3K/F4ts9YwcJC5OoN moYVaSMOQdh56E8GlWIitkbmbDGqXjedAIfI= X-Google-Smtp-Source: AGHT+IGM+oAUTHDfdgmoB6+0qk7qsfeD1WM4qziYjO/NFDOn5lMosHPXcEk5flpyindWTHLd9Q/HEpF6y0IL4iE+2uU= X-Received: by 2002:a05:651c:2227:b0:2fb:357a:be41 with SMTP id 38308e7fff4ca-2fb82e8ec3bmr14292091fa.5.1729260429570; Fri, 18 Oct 2024 07:07:09 -0700 (PDT) MIME-Version: 1.0 From: Uros Bizjak Date: Fri, 18 Oct 2024 16:06:57 +0200 Message-ID: Subject: [committed] i386: Fix the order of operands in andn3 [PR117192] To: "gcc-patches@gcc.gnu.org" X-Spam-Status: No, score=-8.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org Fix the order of operands in andn3 expander to comply with the specification, where bitwise-complement applies to operand 2. PR target/117192 gcc/ChangeLog: * config/i386/mmx.md (andn3): Swap operand indexes 1 and 2 to comply with andn specification. gcc/testsuite/ChangeLog: * gcc.target/i386/pr117192.c: New test. Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}. Uros. diff --git a/gcc/config/i386/mmx.md b/gcc/config/i386/mmx.md index ef4ed8b501a..506f4cab6a8 100644 --- a/gcc/config/i386/mmx.md +++ b/gcc/config/i386/mmx.md @@ -4470,9 +4470,9 @@ (define_split (define_expand "andn3" [(set (match_operand:MMXMODEI 0 "register_operand") (and:MMXMODEI - (not:MMXMODEI (match_operand:MMXMODEI 1 "register_operand")) - (match_operand:MMXMODEI 2 "register_operand")))] - "TARGET_SSE2") + (not:MMXMODEI (match_operand:MMXMODEI 2 "register_operand")) + (match_operand:MMXMODEI 1 "register_operand")))] + "TARGET_MMX_WITH_SSE") (define_insn "mmx_andnot3" [(set (match_operand:MMXMODEI 0 "register_operand" "=y,x,x,v") diff --git a/gcc/testsuite/gcc.target/i386/pr117192.c b/gcc/testsuite/gcc.target/i386/pr117192.c new file mode 100644 index 00000000000..8480c72dc0e --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr117192.c @@ -0,0 +1,16 @@ +/* PR target/117192 */ +/* { dg-do run } */ +/* { dg-options "-O3 -fno-unswitch-loops" } */ + +int a, b, c, d; +int main() { + int e[6]; + for (d = 0; d < 6; d++) + if (!c) + e[d] = 0; + for (; b < 6; b++) + a = e[b]; + if (a != 0) + __builtin_abort(); + return 0; +}