Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2217749/?format=api
{ "id": 2217749, "url": "http://patchwork.ozlabs.org/api/patches/2217749/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/or8qb97880.fsf_-_@lxoliva.fsfla.org/", "project": { "id": 17, "url": "http://patchwork.ozlabs.org/api/projects/17/?format=api", "name": "GNU Compiler Collection", "link_name": "gcc", "list_id": "gcc-patches.gcc.gnu.org", "list_email": "gcc-patches@gcc.gnu.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<or8qb97880.fsf_-_@lxoliva.fsfla.org>", "list_archive_url": null, "date": "2026-03-30T13:33:19", "name": "[FYI] testsuite: x86: move alias-checks.C into vect", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "0c9bcd085223fe1011c3f56db50ddb7f1f75aba1", "submitter": { "id": 74937, "url": "http://patchwork.ozlabs.org/api/people/74937/?format=api", "name": "Alexandre Oliva", "email": "oliva@adacore.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/or8qb97880.fsf_-_@lxoliva.fsfla.org/mbox/", "series": [ { "id": 498031, "url": "http://patchwork.ozlabs.org/api/series/498031/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=498031", "date": "2026-03-30T13:33:19", "name": "[FYI] testsuite: x86: move alias-checks.C into vect", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/498031/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2217749/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2217749/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "gcc-patches@gcc.gnu.org" ], "Delivered-To": [ "patchwork-incoming@legolas.ozlabs.org", "gcc-patches@gcc.gnu.org" ], "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n secure) header.d=adacore.com header.i=@adacore.com header.a=rsa-sha256\n header.s=google header.b=aeniiNx7;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)", "sourceware.org;\n\tdkim=pass (2048-bit key,\n secure) header.d=adacore.com header.i=@adacore.com header.a=rsa-sha256\n header.s=google header.b=aeniiNx7", "sourceware.org; dmarc=pass (p=quarantine dis=none)\n header.from=adacore.com", "sourceware.org; spf=pass smtp.mailfrom=adacore.com", "server2.sourceware.org;\n arc=none smtp.remote-ip=74.125.82.172" ], "Received": [ "from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fksfR2DTjz1yG8\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 31 Mar 2026 00:34:07 +1100 (AEDT)", "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 705CB4BAD16D\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 30 Mar 2026 13:34:05 +0000 (GMT)", "from mail-dy1-f172.google.com (mail-dy1-f172.google.com\n [74.125.82.172])\n by sourceware.org (Postfix) with ESMTPS id 5D2AA4BA2E39\n for <gcc-patches@gcc.gnu.org>; Mon, 30 Mar 2026 13:33:36 +0000 (GMT)", "by mail-dy1-f172.google.com with SMTP id\n 5a478bee46e88-2c17d152c01so3273140eec.0\n for <gcc-patches@gcc.gnu.org>; Mon, 30 Mar 2026 06:33:36 -0700 (PDT)", "from free.home ([2804:14c:4d1:41a6::1455])\n by smtp.gmail.com with ESMTPSA id\n 5a478bee46e88-2c3c41c1547sm7038408eec.7.2026.03.30.06.33.34\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Mon, 30 Mar 2026 06:33:34 -0700 (PDT)", "from livre (livre.home [172.31.160.2])\n by free.home (8.15.2/8.15.2) with ESMTPS id 62UDXJXM049530\n (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT);\n Mon, 30 Mar 2026 10:33:20 -0300" ], "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 sourceware.org 705CB4BAD16D", "OpenDKIM Filter v2.11.0 sourceware.org 5D2AA4BA2E39" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 5D2AA4BA2E39", "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 5D2AA4BA2E39", "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774877616; cv=none;\n b=FuvvMAfwV5G6OZz2RHV5xWV5Y7qoroMNIBeQg9yvC0qYmP3ve40Jm+Q0K9u8jSyFl3DnnceNHryjJ55enE/Uaqk4JQWFqc974Ju+3KeMK/2dqZnHd+wbdGsOEaeB4NfXtNujAeBdrJxIxfUkYp9rCtl/r0ONyXLx1JMSf/8umvk=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1774877616; c=relaxed/simple;\n bh=yliqRZBlY0/JenWboJHvR5ugivecX+iPI1nS3ZvY6II=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=lo2QOC0cWLUnspJ678wm5S+eqNAp/yKGOqDwEjLO8Pu6z3GRiz1X4ce5rp7fAjwWVgu0/1gR2seVUWfmhCW4NiGrY7kDeAg1+t4rdf+A0wVdhtJ186Rrr4nmW7ZILw2FjUFhvhpI/kHF65sXT8a9rSHLq2+xVpnpvZHVX3BUtYc=", "ARC-Authentication-Results": "i=1; server2.sourceware.org", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=adacore.com; s=google; t=1774877615; x=1775482415; darn=gcc.gnu.org;\n h=mime-version:user-agent:message-id:in-reply-to:date:references\n :organization:subject:cc:to:from:from:to:cc:subject:date:message-id\n :reply-to; bh=wfE6JJjuJZBsCATjeTAuDx4PGEgSVoAS4za6+id8dvA=;\n b=aeniiNx7aWpU5W+CKqK7vWISS24cwoMEcQZ+tEeyuUCjOCuA8RKR0KMnuVAK8D76jH\n ofCCQmrgCQrt+7aYmdGKSV0i3etlwuerN5SMuB7E7DVP3lWYZ3EM7TwqeBiGTUu8dSMj\n KwTjriqnKoZmdB9O5gVeA/3m4UQlmYw/E09T4t9Y8AJvnTS56eK7sHJnPySW/fEX5A7T\n kZf3GDOdyztV2hUgOFIRhIZyOCR08f4CGtwNlVmEP88Ejm1Bk4rjkpZ6roj4h+r+L3Hw\n K824jKvv3NvdEW+yD8L5gJJuKwGURFLOEMc180ni6Nuye3xwimq3xX68lRTt6aTDSEN4\n H3pg==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1774877615; x=1775482415;\n h=mime-version:user-agent:message-id:in-reply-to:date:references\n :organization:subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to\n :cc:subject:date:message-id:reply-to;\n bh=wfE6JJjuJZBsCATjeTAuDx4PGEgSVoAS4za6+id8dvA=;\n b=j25NvSgzj5CvQa8XtlcKOquClYuWLgLs/0Z8uHuOVh6rbJZjtdK42F+jYx5zPJfpsX\n tgRsmzDtyibFA2XNgv2n5xP800CugBrhsrAqRbhj0lYtVBRllnsSZijUa93ZfuHuRobg\n 9jxZs7l71Pljp0IFDfgpH1t5KvlQd0kOlYatrh1PRSzcm56j1cXQiISD95DVd4OwXOjg\n cLvyZ3QH+lZCXy5UPP9EEz39kdlmjgM/L8lQQyqUcGdD4Epwsx31XmR93BLzqR9D9y43\n hQitGQNaTHRgXxDq9dTEVtHo4Vh32FbQ9fo3JVIpEs1vcdgaG2YsjPFHZtjing60AFJX\n DiwA==", "X-Gm-Message-State": "AOJu0YxL+PSdsDllMWaejRrijTGBsb7ZYQAmlJPN1MJNqreJHpDDXzvh\n yLRWMUvQYyj9soENAsjC3z+AAE/f0xsihsnuAaCLILx6Q7HRRTL5dKYTwMh1OgvQvA==", "X-Gm-Gg": "ATEYQzxTpWKZa3kakh6HD+8ITVmjBuLSL7UpiLgIJHKWuKF4nHg65VKgTYuwi3q8TmS\n PC8Hv8ec4roOlPtXf3rXT/65ZGn95m8oqIdjX2EdyIPNkdGfuIhuM4GWVu5UtqII9WEeuE2W3Lr\n ZHzuOnHHiWlx/Eb43/CJEN9/afyawXdU+zxM+gwrTw54PVAkqBahYfkw9iy0Z24OZCg2FwDU1ku\n H4tBwjI/58TG5QOkgicCgdRdWQAzVDhTx0r87Af/nALyZqJE+9wpNsPslQdpDnUybmtf7GnxUjb\n vjs8cqdX6UGIOE2ZSUmxsN8H3h3NQ3Wi1letvXCQ0k0MuWXa1yy18pDJE6nIw/QA4RS7Rry9XvR\n T+LSAzLcWRoCqXZNIN/frFivUsbl0aPqqNtEb2Fo9Waf3bCo7C3/SdXS/RthixsVCPX5NTtW0xr\n wSDuDFHtxa2A==", "X-Received": "by 2002:a05:7300:a485:b0:2b7:b7e7:9025 with SMTP id\n 5a478bee46e88-2c185f343ecmr6105370eec.31.1774877615036;\n Mon, 30 Mar 2026 06:33:35 -0700 (PDT)", "From": "Alexandre Oliva <oliva@adacore.com>", "To": "Richard Biener <rguenther@suse.de>", "Cc": "gcc-patches@gcc.gnu.org, Rainer Orth <ro@cebitec.uni-bielefeld.de>,\n Mike Stump <mikestump@comcast.net>, Jan Hubicka <hubicka@ucw.cz>, Uros\n Bizjak <ubizjak@gmail.com>,\n Tamar Christina <tamar.christina@arm.com>, Zdenek Dvorak <ook@ucw.cz>", "Subject": "[FYI PATCH] testsuite: x86: move alias-checks.C into vect", "Organization": "Free thinker, does not speak for AdaCore", "References": "<ormrzr8bm5.fsf@lxoliva.fsfla.org>\n <DF5B36CF-24A8-4411-9AA1-A447BE491FB4@suse.de>\n <or341j82hl.fsf@lxoliva.fsfla.org>", "Date": "Mon, 30 Mar 2026 10:33:19 -0300", "In-Reply-To": "<or341j82hl.fsf@lxoliva.fsfla.org> (Alexandre Oliva's message of\n \"Sun, 29 Mar 2026 05:27:18 -0300\")", "Message-ID": "<or8qb97880.fsf_-_@lxoliva.fsfla.org>", "User-Agent": "Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)", "MIME-Version": "1.0", "Content-Type": "text/plain", "X-Scanned-By": "MIMEDefang 2.84", "X-BeenThere": "gcc-patches@gcc.gnu.org", "X-Mailman-Version": "2.1.30", "Precedence": "list", "List-Id": "Gcc-patches mailing list <gcc-patches.gcc.gnu.org>", "List-Unsubscribe": "<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>", "List-Archive": "<https://gcc.gnu.org/pipermail/gcc-patches/>", "List-Post": "<mailto:gcc-patches@gcc.gnu.org>", "List-Help": "<mailto:gcc-patches-request@gcc.gnu.org?subject=help>", "List-Subscribe": "<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>", "Errors-To": "gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org" }, "content": "On Mar 29, 2026, Alexandre Oliva <oliva@adacore.com> wrote:\n\n> On Mar 29, 2026, Richard Biener <rguenther@suse.de> wrote:\n>> Moving the test is OK.\n\n> I'll split out that big, then.\n\ng++.dg/alias-checks.C requires vect_double outside vect.exp, where\n-msse2 would have got enabled, but that effective_target is not\nsupposed to be used in such circumstances: it passes even when SSE2 is\ndisabled. Without enabling SSE2, vectors of doubles aren't really\navailable, so we don't get the expected vectorizations and the test\nfails.\n\nInstead of adding machine-specific options to alias-checks.C, I'm\nmoving it under g++.dg/vect/ and renaming it so that it gets, and\ndoesn't override, the default vector options for each platform.\n\nRegstrapped on x86_64-linux-gnu. Also tested with ppc-elf and\nppc-vx7r2. I'm going to put it in in the not-too-distant future ;-)\n\n\nfor gcc/testsuite/ChangeLog\n\n\t* g++.dg/alias-checks.C: Rename to...\n\t* g++.dg/vect/vect-alias-checks.C: ... this. Don't override\n\tvector options.\n---\n gcc/testsuite/g++.dg/alias-checks.C | 86 -------------------------\n gcc/testsuite/g++.dg/vect/vect-alias-checks.C | 86 +++++++++++++++++++++++++\n 2 files changed, 86 insertions(+), 86 deletions(-)\n delete mode 100644 gcc/testsuite/g++.dg/alias-checks.C\n create mode 100644 gcc/testsuite/g++.dg/vect/vect-alias-checks.C", "diff": "diff --git a/gcc/testsuite/g++.dg/alias-checks.C b/gcc/testsuite/g++.dg/alias-checks.C\ndeleted file mode 100644\nindex b8ff3ad605c23..0000000000000\n--- a/gcc/testsuite/g++.dg/alias-checks.C\n+++ /dev/null\n@@ -1,86 +0,0 @@\n-\n-// { dg-do compile }\n-// { dg-require-effective-target c++17 }\n-// { dg-require-effective-target vect_double }\n-// { dg-options \"-O3 -fdump-tree-vect-all\" }\n-// { dg-skip-if \"required hosted libstdc++ for cmath and iostream\" { ! hostedlib } }\n-\n-#include <cstdlib>\n-#include <cmath>\n-#include <iostream>\n-void DoIfClause(double *l, double *r, const double *m2, const double *m1,\n- const double *c, const double *p1, const double *p2, int istart, int iend)\n-{\n- constexpr double w5alpha[3][3] = {{1.0 / 3.0, -7.0 / 6.0, 11.0 / 6.0},\n- {-1.0 / 6.0, 5.0 / 6.0, 1.0 / 3.0},\n- {1.0 / 3.0, 5.0 / 6.0, -1.0 / 6.0}};\n- constexpr double w5gamma[3] = {0.1, 0.6, 0.3};\n- constexpr double eps = 1e-100;\n- constexpr double thirteen_thirds = 13.0 / 3.0;\n-\n- for (int i = istart; i <= iend; ++i) {\n- const double q0 = m2[i];\n- const double q1 = m1[i];\n- const double q2 = c[i];\n- const double q3 = p1[i];\n- const double q4 = p2[i];\n- double &ql = l[i];\n- double &qr = r[i];\n- double a = q0 - 2 * q1 + q2;\n- double b = q0 - 4.0 * q1 + 3.0 * q2;\n- double beta0 = thirteen_thirds * a * a + b * b + eps;\n- a = q1 - 2.0 * q2 + q3;\n- b = q3 - q1;\n- double beta1 = thirteen_thirds * a * a + b * b + eps;\n- a = q2 - 2.0 * q3 + q4;\n- b = q4 - 4.0 * q3 + 3.0 * q2;\n- double beta2 = thirteen_thirds * a * a + b * b + eps;\n- const double tau5 = std::abs(beta2 - beta0);\n-\n- beta0 = (beta0 + tau5) / beta0;\n- beta1 = (beta1 + tau5) / beta1;\n- beta2 = (beta2 + tau5) / beta2;\n-\n- double w0 = w5gamma[0] * beta0 + eps;\n- double w1 = w5gamma[1] * beta1 + eps;\n- double w2 = w5gamma[2] * beta2 + eps;\n- double wsum = 1.0 / (w0 + w1 + w2);\n- ql = w0 * (w5alpha[0][0] * q0 + w5alpha[0][1] * q1 + w5alpha[0][2] * q2);\n- ql += w1 * (w5alpha[1][0] * q1 + w5alpha[1][1] * q2 + w5alpha[1][2] * q3);\n- ql += w2 * (w5alpha[2][0] * q2 + w5alpha[2][1] * q3 + w5alpha[2][2] * q4);\n- ql *= wsum;\n- const double alpha_l = 3.0 * wsum * w0 * w1 * w2 /\n- (w5gamma[2] * w0 * w1 + w5gamma[1] * w0 * w2 +\n- w5gamma[0] * w1 * w2) +\n- eps;\n-\n- w0 = w5gamma[0] * beta2 + eps;\n- w1 = w5gamma[1] * beta1 + eps;\n- w2 = w5gamma[2] * beta0 + eps;\n- wsum = 1.0 / (w0 + w1 + w2);\n- qr = w0 * (w5alpha[0][0] * q4 + w5alpha[0][1] * q3 + w5alpha[0][2] * q2);\n- qr += w1 * (w5alpha[1][0] * q3 + w5alpha[1][1] * q2 + w5alpha[1][2] * q1);\n- qr += w2 * (w5alpha[2][0] * q2 + w5alpha[2][1] * q1 + w5alpha[2][2] * q0);\n- qr *= wsum;\n- const double alpha_r = 3.0 * wsum * w0 * w1 * w2 /\n- (w5gamma[2] * w0 * w1 + w5gamma[1] * w0 * w2 +\n- w5gamma[0] * w1 * w2) +\n- eps;\n-\n- double dq = q3 - q2;\n- {\n- const double dm = q2 - q1;\n- const double dp = dq;\n- const double dc = (dm * dp > 0.0) * 0.5 * (dm + dp);\n- dq = 0.5 * std::copysign(\n- std::min(std::fabs(dc),\n- 2.0 * std::min(std::fabs(dm), std::fabs(dp))),\n- dc);\n- }\n-\n- const double alpha_lin = 2.0 * alpha_l * alpha_r / (alpha_l + alpha_r);\n- ql = alpha_lin * ql + (1.0 - alpha_lin) * (q2 + dq);\n- qr = alpha_lin * qr + (1.0 - alpha_lin) * (q2 - dq);\n- }\n-}\n-/* { dg-final { scan-tree-dump \"LOOP VECTORIZED\" \"vect\" } } */\ndiff --git a/gcc/testsuite/g++.dg/vect/vect-alias-checks.C b/gcc/testsuite/g++.dg/vect/vect-alias-checks.C\nnew file mode 100644\nindex 0000000000000..97c97d2c99e0d\n--- /dev/null\n+++ b/gcc/testsuite/g++.dg/vect/vect-alias-checks.C\n@@ -0,0 +1,86 @@\n+\n+// { dg-do compile }\n+// { dg-require-effective-target c++17 }\n+// { dg-require-effective-target vect_double }\n+// { dg-additional-options \"-O3 -fdump-tree-vect-all\" }\n+// { dg-skip-if \"required hosted libstdc++ for cmath and iostream\" { ! hostedlib } }\n+\n+#include <cstdlib>\n+#include <cmath>\n+#include <iostream>\n+void DoIfClause(double *l, double *r, const double *m2, const double *m1,\n+ const double *c, const double *p1, const double *p2, int istart, int iend)\n+{\n+ constexpr double w5alpha[3][3] = {{1.0 / 3.0, -7.0 / 6.0, 11.0 / 6.0},\n+ {-1.0 / 6.0, 5.0 / 6.0, 1.0 / 3.0},\n+ {1.0 / 3.0, 5.0 / 6.0, -1.0 / 6.0}};\n+ constexpr double w5gamma[3] = {0.1, 0.6, 0.3};\n+ constexpr double eps = 1e-100;\n+ constexpr double thirteen_thirds = 13.0 / 3.0;\n+\n+ for (int i = istart; i <= iend; ++i) {\n+ const double q0 = m2[i];\n+ const double q1 = m1[i];\n+ const double q2 = c[i];\n+ const double q3 = p1[i];\n+ const double q4 = p2[i];\n+ double &ql = l[i];\n+ double &qr = r[i];\n+ double a = q0 - 2 * q1 + q2;\n+ double b = q0 - 4.0 * q1 + 3.0 * q2;\n+ double beta0 = thirteen_thirds * a * a + b * b + eps;\n+ a = q1 - 2.0 * q2 + q3;\n+ b = q3 - q1;\n+ double beta1 = thirteen_thirds * a * a + b * b + eps;\n+ a = q2 - 2.0 * q3 + q4;\n+ b = q4 - 4.0 * q3 + 3.0 * q2;\n+ double beta2 = thirteen_thirds * a * a + b * b + eps;\n+ const double tau5 = std::abs(beta2 - beta0);\n+\n+ beta0 = (beta0 + tau5) / beta0;\n+ beta1 = (beta1 + tau5) / beta1;\n+ beta2 = (beta2 + tau5) / beta2;\n+\n+ double w0 = w5gamma[0] * beta0 + eps;\n+ double w1 = w5gamma[1] * beta1 + eps;\n+ double w2 = w5gamma[2] * beta2 + eps;\n+ double wsum = 1.0 / (w0 + w1 + w2);\n+ ql = w0 * (w5alpha[0][0] * q0 + w5alpha[0][1] * q1 + w5alpha[0][2] * q2);\n+ ql += w1 * (w5alpha[1][0] * q1 + w5alpha[1][1] * q2 + w5alpha[1][2] * q3);\n+ ql += w2 * (w5alpha[2][0] * q2 + w5alpha[2][1] * q3 + w5alpha[2][2] * q4);\n+ ql *= wsum;\n+ const double alpha_l = 3.0 * wsum * w0 * w1 * w2 /\n+ (w5gamma[2] * w0 * w1 + w5gamma[1] * w0 * w2 +\n+ w5gamma[0] * w1 * w2) +\n+ eps;\n+\n+ w0 = w5gamma[0] * beta2 + eps;\n+ w1 = w5gamma[1] * beta1 + eps;\n+ w2 = w5gamma[2] * beta0 + eps;\n+ wsum = 1.0 / (w0 + w1 + w2);\n+ qr = w0 * (w5alpha[0][0] * q4 + w5alpha[0][1] * q3 + w5alpha[0][2] * q2);\n+ qr += w1 * (w5alpha[1][0] * q3 + w5alpha[1][1] * q2 + w5alpha[1][2] * q1);\n+ qr += w2 * (w5alpha[2][0] * q2 + w5alpha[2][1] * q1 + w5alpha[2][2] * q0);\n+ qr *= wsum;\n+ const double alpha_r = 3.0 * wsum * w0 * w1 * w2 /\n+ (w5gamma[2] * w0 * w1 + w5gamma[1] * w0 * w2 +\n+ w5gamma[0] * w1 * w2) +\n+ eps;\n+\n+ double dq = q3 - q2;\n+ {\n+ const double dm = q2 - q1;\n+ const double dp = dq;\n+ const double dc = (dm * dp > 0.0) * 0.5 * (dm + dp);\n+ dq = 0.5 * std::copysign(\n+ std::min(std::fabs(dc),\n+ 2.0 * std::min(std::fabs(dm), std::fabs(dp))),\n+ dc);\n+ }\n+\n+ const double alpha_lin = 2.0 * alpha_l * alpha_r / (alpha_l + alpha_r);\n+ ql = alpha_lin * ql + (1.0 - alpha_lin) * (q2 + dq);\n+ qr = alpha_lin * qr + (1.0 - alpha_lin) * (q2 - dq);\n+ }\n+}\n+/* { dg-final { scan-tree-dump \"LOOP VECTORIZED\" \"vect\" } } */\n", "prefixes": [ "FYI" ] }