[{"id":3681169,"web_url":"http://patchwork.ozlabs.org/comment/3681169/","msgid":"<ab405d5f-da55-4981-be28-a204aadca593@oss.qualcomm.com>","list_archive_url":null,"date":"2026-04-22T19:18:55","subject":"Re: [PATCH v3] match.pd: simplify lshift const cmp using bit_and\n [PR124019]","submitter":{"id":92288,"url":"http://patchwork.ozlabs.org/api/people/92288/","name":"Daniel Barboza","email":"daniel.barboza@oss.qualcomm.com"},"content":"On 4/20/2026 3:02 PM, Daniel Henrique Barboza wrote:\n> From: Daniel Barboza <daniel.barboza@oss.qualcomm.com>\n> \n> Given a comparison with the format\n> \n> A << CST1 EQ|NE CST2\n> \n> Turn it into:\n> \n> A & CSTmask EQ|NE CST2 >> CST1\n\nSo I was looking at a potential RISC-V test regression that would be related\nto this patch (ps: it isn't) and then I noticed that the RISC-V code being\ngenerated got worse with this patch.\n\nConsider this test:\n\n_Bool f1(long a)\n{\n     long b = a << 4;\n     return b == -128;\n}\n\nGenerated RISC-V code from trunk:\n\nf1:\n.LFB0:\n         .cfi_startproc\n         slli    a0,a0,4 # 6     [c=4 l=4]  ashldi3\n         addi    a0,a0,128       # 7     [c=4 l=4]  *adddi3/1\n         seqz    a0,a0   # 16    [c=4 l=4]  *seq_zero_didi\n         ret\n\n\nIn https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124019 Jeff suggested that a better\ncode would be to use \"andi\" to mask the bits before doing the comparison.  But after\nthis patch this is the RISC-V code being generated:\n\nf1:\n.LFB0:\n         .cfi_startproc\n         slli    a0,a0,4 # 6     [c=4 l=4]  ashldi3\n         bseti   a5,zero,60      # 32    [c=4 l=4]  *movdi_64bit/1\n         addi    a5,a5,-8        # 33    [c=4 l=4]  *adddi3/1\n         srli    a0,a0,4 # 7     [c=4 l=4]  lshrdi3\n         sub     a0,a0,a5        # 10    [c=4 l=4]  subdi3\n         seqz    a0,a0   # 19    [c=4 l=4]  *seq_zero_didi\n         ret             # 36    [c=0 l=4]  simple_return\n         .cfi_endproc\n\n\nThe reason is that \"andi\" uses a 12 bit immediate, and with this patch we're turning\nthat into\n\n   # RANGE [irange] long int [0, 1152921504606846975] MASK 0xfffffffffffffff VALUE 0x0\n   _4 = a_1(D) & 1152921504606846975;\n   _2 = _4 == 1152921504606846968;\n   # VUSE <.MEM_3(D)>\n   return _2\n\nAnd this immediate can't fit a regular 'andi'.\n\nIn fact, if you change the code to generate a smaller immediate:\n\n_Bool f2(char a)\n{\n     char b = a << 4;\n     return b == 16;\n}\n\nThe intended code with 'andi' will show:\n\nf2:\n.LFB1:\n         .cfi_startproc\n         andi    a0,a0,15        # 8     [c=4 l=4]  *anddi3/1\n         addi    a0,a0,-1        # 10    [c=4 l=4]  *adddi3/1\n         seqz    a0,a0   # 19    [c=4 l=4]  *seq_zero_didi\n         ret             # 32    [c=0 l=4]  simple_return\n\n\nGiven that this is a RISC-V bug it's not ideal that RISC-V is taking a hit for this\nchange.  We can't add target specific logic in Gimple (check if the immediate fits\nin 12 bits) so one option is a RISC-V backend patch.  At any rate it seems like this\ngeneric approach won't work.\n\n\nJeff, for now please remove this patch from any test queue you might have.\n\n\nThanks,\nDaniel\n\n\n> \n> Where 'CSTmask' is a bitmask that filters A bits that would be discarded\n> during the shift. The idea is that a bit_and is, on most common targets\n> at least, more efficient than a lshift.\n> \n> Bootstrapped and regression tested on x86, aarch64 and RISC-V.\n> \n> \tPR tree-optimization/124019\n> \n> gcc/ChangeLog:\n> \n> \t* match.pd (`A<<CST1 EQ|NE CST2 -> (A&CSTmask) EQ|NE (CST2>>CST1)`):\n> \tNew pattern.\n> \n> gcc/testsuite/ChangeLog:\n> \n> \t* gcc.target/aarch64/cmp_shifted_reg_1.c: changed comparison\n> \tto \">\" to dodge this optimization and keep generating the\n> \texpected shift compare insn.\n> \t* gcc.dg/tree-ssa/pr124019.c: New test.\n> ---\n> \n> Changes from v2:\n> - Wrapped the pattern around #if GIMPLE;\n> - Added check for lshift single_use();\n> - negs.c changes were reverted.  The pattern is now checking\n>    for lshift single_use() and the test is no longer being affected;\n> - Removed the  \"A << 1 != CST1\" check related to pr114760-1.c and\n>    the CLZ builtin. Checking for single_use() is enough to avoid\n>    tripping on the builtin, thus we're free to support this use\n>    case;\n> - Added check for CST2 zero bits.\n> - v2 link: https://gcc.gnu.org/pipermail/gcc-patches/2026-March/709651.html\n> \n>   gcc/match.pd                                  | 36 +++++++++++++++++\n>   gcc/testsuite/gcc.dg/tree-ssa/pr124019.c      | 40 +++++++++++++++++++\n>   .../gcc.target/aarch64/cmp_shifted_reg_1.c    |  2 +-\n>   3 files changed, 77 insertions(+), 1 deletion(-)\n>   create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/pr124019.c\n> \n> diff --git a/gcc/match.pd b/gcc/match.pd\n> index 7b652afb43d..d34d3ddf35f 100644\n> --- a/gcc/match.pd\n> +++ b/gcc/match.pd\n> @@ -1454,6 +1454,42 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)\n>     (if (TYPE_UNSIGNED (type))\n>       (bit_and @0 (bit_not (lshift { build_all_ones_cst (type); } @1)))))\n>   \n> +#if GIMPLE\n> +/* PR124019: A << CST1 EQ|NE CST2 -> (A & CSTmask) EQ|NE (CST2 >> CST1);  */\n> +(for cmp (eq ne)\n> + (simplify\n> +  (cmp (lshift@3 @0 INTEGER_CST@1) INTEGER_CST@2)\n> +   (if (INTEGRAL_TYPE_P (TREE_TYPE (@0))\n> +\t&& single_use (@3)\n> +\t&& tree_fits_uhwi_p (@1)\n> +\t&& tree_to_uhwi (@1) < TYPE_PRECISION (TREE_TYPE (@0))\n> +\t&& tree_to_uhwi (@1) < TYPE_PRECISION (TREE_TYPE (@2)))\n> +    (with {\n> +      unsigned prec2 = TYPE_PRECISION (TREE_TYPE (@2));\n> +      wide_int cst2_mask = wi::mask (tree_to_uhwi (@1), false, prec2);\n> +     }\n> +     /* We need to assert that CST2 lower CST1 bits are zero for the\n> +\ttransformation to be valid.  This seem to be already taken\n> +\tcare of\tby CCP, turning cases like \"a << 4 == 17\" into\n> +\t\"return 0\", and this check might be redundant.  We can't rely\n> +\ton CCP always having our backs though, therefore validate the\n> +\tzero bits here to be sure.  */\n> +     (if (wi::to_wide (@2) == 0\n> +\t  || wi::eq_p (wi::bit_and (cst2_mask, wi::to_wide (@2)),\n> +\t\t       wi::zero (prec2)))\n> +      (with {\n> +\tunsigned prec = TYPE_PRECISION (TREE_TYPE (@0));\n> +\tunsigned mask_len = prec - tree_to_uhwi (@1);\n> +\ttree cst1_mask = wide_int_to_tree (TREE_TYPE (@0),\n> +\t\t\t\t\t   wi::mask (mask_len, false, prec));\n> +\ttree type3 = TREE_TYPE (@3);\n> +\twide_int lrshift = wi::lrshift (wi::to_wide (@2), wi::to_wide (@1));\n> +\ttree cst_lrshift = wide_int_to_tree (type3, lrshift);\n> +      }\n> +      (cmp (convert:type3 (bit_and @0 { cst1_mask; }))\n> +\t   { cst_lrshift; })))))))\n> +#endif\n> +\n>   (for bitop (bit_and bit_ior)\n>        cmp (eq ne)\n>    /* PR35691: Transform\n> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr124019.c b/gcc/testsuite/gcc.dg/tree-ssa/pr124019.c\n> new file mode 100644\n> index 00000000000..bd46864c75b\n> --- /dev/null\n> +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr124019.c\n> @@ -0,0 +1,40 @@\n> +/* { dg-additional-options -O2 } */\n> +/* { dg-additional-options -fdump-tree-optimized } */\n> +\n> +typedef unsigned char uint8_t;\n> +typedef signed char int8_t;\n> +\n> +uint8_t f1(int8_t a)\n> +{\n> +    int8_t b = a << 4;\n> +    return b == -128;\n> +}\n> +\n> +uint8_t f2(int8_t a)\n> +{\n> +    int8_t b = a << 4;\n> +    return b != -128;\n> +}\n> +\n> +uint8_t f3(int8_t a)\n> +{\n> +    int8_t b = a << 6;\n> +    return b == -128;\n> +}\n> +\n> +uint8_t f4(int8_t a)\n> +{\n> +    int8_t b = a << 7;\n> +    return b == -128;\n> +}\n> +\n> +uint8_t f5(int8_t a)\n> +{\n> +    int8_t b = a << 1;\n> +    return b == -128;\n> +}\n> +/* { dg-final { scan-tree-dump-times \" & 15;\" 2 optimized } } */\n> +/* { dg-final { scan-tree-dump-times \" & 3;\" 1 optimized } } */\n> +/* { dg-final { scan-tree-dump-times \" & 1;\" 1 optimized } } */\n> +/* { dg-final { scan-tree-dump-times \" & 127;\" 1 optimized } } */\n> +/* { dg-final { scan-tree-dump-times \" << \" 0 optimized } } */\n> diff --git a/gcc/testsuite/gcc.target/aarch64/cmp_shifted_reg_1.c b/gcc/testsuite/gcc.target/aarch64/cmp_shifted_reg_1.c\n> index cacecf4e71d..8feedce5c51 100644\n> --- a/gcc/testsuite/gcc.target/aarch64/cmp_shifted_reg_1.c\n> +++ b/gcc/testsuite/gcc.target/aarch64/cmp_shifted_reg_1.c\n> @@ -4,7 +4,7 @@\n>   int f3 (int x, int y)\n>   {\n>     int res = x << 3;\n> -  return res != 0;\n> +  return res > 0;\n>   }\n>   \n>   /* We should combine the shift and compare */","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 unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=K4KamZlW;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=Oad0rAEx;\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 unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=K4KamZlW;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=Oad0rAEx","sourceware.org; dmarc=none (p=none dis=none)\n header.from=oss.qualcomm.com","sourceware.org;\n spf=pass smtp.mailfrom=oss.qualcomm.com","server2.sourceware.org;\n arc=none smtp.remote-ip=205.220.180.131"],"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 4g1CSh6z4Vz1yD5\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 07:45:24 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 2136A501FCF8\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 21:45:23 +0000 (GMT)","from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com\n [205.220.180.131])\n by sourceware.org (Postfix) with ESMTPS id 1A6B947896F7\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 19:19:02 +0000 (GMT)","from pps.filterd (m0279868.ppops.net [127.0.0.1])\n by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63MHtlsU2630083\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 19:19:01 GMT","from mail-vs1-f72.google.com (mail-vs1-f72.google.com\n [209.85.217.72])\n by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dq35r8985-1\n (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 19:19:01 +0000 (GMT)","by mail-vs1-f72.google.com with SMTP id\n ada2fe7eead31-5fae584a130so3973095137.0\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 12:19:01 -0700 (PDT)","from [192.168.68.106] ([191.202.238.222])\n by smtp.gmail.com with ESMTPSA id\n 6a1803df08f44-8b02ae5c26csm140648316d6.31.2026.04.22.12.18.57\n (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n Wed, 22 Apr 2026 12:18:58 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 2136A501FCF8","OpenDKIM Filter v2.11.0 sourceware.org 1A6B947896F7"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 1A6B947896F7","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 1A6B947896F7","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776885542; cv=none;\n b=ZsDaGqmV1t3VCwkvUz4BNiJgvJmABdOotr8JGMmbNzbMz97gmhJp2DrG56obmpp+Ldk2QTR8sY0dlA6SRpk4lRnaKnK7GyBBgDp8aI5y7JWQZM07qN8JUHYAdB0kZlARekhm8N91KVWoqV9e2v7fBDE1tJIv9pmHrUg7JZc2pdk=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776885542; c=relaxed/simple;\n bh=sS/T3oD57OnCSFtgdiaA3XSG3nMzsNgH5hDCOsOmeXk=;\n h=DKIM-Signature:DKIM-Signature:Message-ID:Date:MIME-Version:\n Subject:To:From;\n b=SeruYg27Nm7NbnK0tQQsdoH8IHiJN5vAZ5LZYHLFRvclZPMbi0A0Pv2IxbUBg7Mfau72fBpAJLcmjp01QyTNeaVKS6uYu0OjxzJCagTtNnh8uXW7A4LU630PIRNVcnmGE1ijrVYKuDk+r3pjQazcLy6KLSD84Fc2lcUFMtWRlqw=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n cc:content-transfer-encoding:content-type:date:from:in-reply-to\n :message-id:mime-version:references:subject:to; s=qcppdkim1; bh=\n L75rBp5PTDQNZpbq/Ljdl96zT5ZxGBlHb8C29vramPc=; b=K4KamZlWt5CdY/1/\n 6098wzg4aXdSVOCmoF2kKH2Ck3kvzGHrrjLcK/yCpudwXMc3yfpVTAWQ06d2rmKV\n f+VtPacO6E2VvwTaYvVjQxr+OiX94gdXCh3HVZ0Woi4SY8HbshGuqXf2aEopzahv\n QQ8pMmFdiIjLK01LJyGdpUORjnK/37ntxGSJdC67CAD/wwvDiI0s6H6R9WHLJUcZ\n /Lo+YQ2Uq7vNiI3DO2yjbRrXq8Qun0jkirHzLRubRLMh38gXN1k1cpciRQNokfdE\n k3Iq7w0tApvhwnvMcL+cZlPyHd58clB7Nu3GsI9dAFxCgELCECKR214o8UJkDNMJ\n 8Z0/qw==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=oss.qualcomm.com; s=google; t=1776885540; x=1777490340; darn=gcc.gnu.org;\n h=content-transfer-encoding:in-reply-to:content-language:from\n :references:cc:to:subject:user-agent:mime-version:date:message-id\n :from:to:cc:subject:date:message-id:reply-to;\n bh=L75rBp5PTDQNZpbq/Ljdl96zT5ZxGBlHb8C29vramPc=;\n b=Oad0rAExpETgBwk3MeUwU/aal+PzzKb//GOchVAwffDU6/Xd4FUzn3/ZMRt0740ndP\n j5BGRFSrFUsRI0QUEgg7Z6Ha6EwIs2OM9rY8gqgOZmeqU6x96uNMbEgRk+nV9jSj7Z3v\n 5UxtcJSWQTamdDo6oYUngf93QBS3Q09LlmrkzLLnIKaJu5uHsvXehOFx25qEw++Rbx7t\n QZGO8HHUgk3pOZhoN7dD2GUmLRqgCDZ9Fc75KvPJ8u8Ui/OJ4Wdyc+yUr7N/S0tur/MC\n Co5OTy4ec1LfPHrT79jC+mxtabzfDGwCheRh+CwptFIhzyncPspXEvD84v9X55uAJeCZ\n 0Vwg=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776885540; x=1777490340;\n h=content-transfer-encoding:in-reply-to:content-language:from\n :references:cc:to:subject:user-agent:mime-version:date:message-id\n :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n :reply-to;\n bh=L75rBp5PTDQNZpbq/Ljdl96zT5ZxGBlHb8C29vramPc=;\n b=JCXv+BmNaeV6gFrAVI0LWJ81iAQmF4JhLQj7zg8Jxd0cNYQJXNo8qY7M6ht4VuGu38\n 2EY8tFb6PJkXjlAHtXfgNT41T8qewe8iSAaOzgV636v3AyDm2ZuDEqXXCbkAJqsaO+Zt\n zgfq0sArM/zxHDD9dchvtvI7NFQBZW5htmSUdZ/a++c9MBlDftvDGJ7P/RDFYgvUUQhV\n KR1l7ySauqqmKwRALxnsXzdLYx9ZY/dekItIRlTSszI5XC81az7FUlUcyn/cSuqRVkNr\n USSSxVGlLnMK6ekVAHrIYyTVrj+1SOWn865fYXp8hmhfsyKEkVO1O/3ZgwKU+rpRymFe\n QG6w==","X-Gm-Message-State":"AOJu0YzODSfF/F5boMzy+83ffgTGmIWdcc+yiT8eIoOa7+VlMsTFlFdv\n xDTkCkqAo1VV/ED1TGseszjzuufPItIp5QaKgIKpH8aqBBqvEWmPBuxJVqabNPxht8vSOyjPwCd\n kmikD884GCnHS5Mm0yh2aLBKapzSwRE86yJ2Nu2o1o3iVP75ZSxXFZpcwitOV6fo2HWwK","X-Gm-Gg":"AeBDievOvNK8LCir+pr+OoCU/EzzcyAE29u1rX04kRXMmCkD4xNkJitj57aTMUwgU7P\n a82mSs5PW07VfO2Omoe8P1JAfgHB9JuiV6MZHVyIo3O3slamqMNPbhto1gfUcv9mOUUqgtuhS3G\n IAhl2OZxr0uav/VlAL3BpStR3hg0CTLiW/hvLFeQ5pHa6B4peAg9EX+pjIUMbm6v7aY+BeJZlJ7\n XyMy2WiLKi+Xmaeqb/YNHX7KyyRO18me/Z9OBWVpRtsw/qtsY/dMxRZxC7/ZAcz67vr0UP+Ce5c\n MW9RVLHu0yKD0KQa3nKDlpIBtDwuqeN7KZVj7Lcf1isfnTR/Jyy6SgRK4sNp+Ny7n19slrYvnEf\n PyAtBe90AY0imnFEsFqkstbBHCxCZzlo8AFGmQ4En/4CMwMGAqFrBeOSM7Bb7ZnbWpa3uCg==","X-Received":["by 2002:a05:6102:14aa:b0:607:9443:b29d with SMTP id\n ada2fe7eead31-616f4c50169mr12637928137.7.1776885539950;\n Wed, 22 Apr 2026 12:18:59 -0700 (PDT)","by 2002:a05:6102:14aa:b0:607:9443:b29d with SMTP id\n ada2fe7eead31-616f4c50169mr12637886137.7.1776885539337;\n Wed, 22 Apr 2026 12:18:59 -0700 (PDT)"],"Message-ID":"<ab405d5f-da55-4981-be28-a204aadca593@oss.qualcomm.com>","Date":"Wed, 22 Apr 2026 16:18:55 -0300","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v3] match.pd: simplify lshift const cmp using bit_and\n [PR124019]","To":"gcc-patches@gcc.gnu.org","Cc":"jeffrey.law@oss.qualcomm.com, andrew.pinski@oss.qualcomm.com","References":"<20260420180238.33599-1-daniel.barboza@oss.qualcomm.com>","From":"Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>","Content-Language":"en-US","In-Reply-To":"<20260420180238.33599-1-daniel.barboza@oss.qualcomm.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDIyMDE4NyBTYWx0ZWRfXzTmnI1A/nITp\n zvnMxvuO2h0tdRFoDarmDuH1VBv9TR6Z5skIQSuWtS/N03t45hIRgbQ9/BSx/bbzdSzEQgaFHHN\n 6B3S5u+/ZXlHjGSgycCRQPv1xX9c1EOe0pSGFjEjqs/sboUsEKjkoB2i7UPnvfAig9xwTpQsgoq\n sozq8JfQQcMs1/+2UKa4Zn6RAsRzIp2JdzvYsMF6mIWE9WX3uFu4eXdN6jslBUOvlGuvaMT6Y4s\n urQoHhNuunfnvt7BTJY4Ayu8SDY6Eh0uZlbdcXJP3F0KDoZn1H13Ni/LdX8UORpgcJiC2zwA4wo\n U0IFnG5R8Vu1aLCNTk/iKShAPy6XOx3XoVY9UMSQ/Vjg548Oaa3bqPKuqdiL+WsrNBTlf1hRtEr\n /jhDr3e6I1IYj83u548MZHjqAkKIJpvWKirTmK1oKnoliE54fm2MZ6cmIf8xo6hkaHdbqILU047\n 16NRQjyLJyX4ODWpONA==","X-Proofpoint-ORIG-GUID":"I8gQWAKCZSndwbYun4-N7k7_GCsMSfSA","X-Proofpoint-GUID":"I8gQWAKCZSndwbYun4-N7k7_GCsMSfSA","X-Authority-Analysis":"v=2.4 cv=f5J4wuyM c=1 sm=1 tr=0 ts=69e91f25 cx=c_pps\n a=DUEm7b3gzWu7BqY5nP7+9g==:117 a=etEqFfc6qwXwpI8uT8rzbw==:17\n a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10\n a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22\n a=mDV3o1hIAAAA:8 a=EUspDBNiAAAA:8 a=mT6xoCPICdYq6uRD_JcA:9 a=QEXdDO2ut3YA:10\n a=-aSRE8QhW-JAV6biHavz:22","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-22_02,2026-04-21_02,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n bulkscore=0 priorityscore=1501 phishscore=0 adultscore=0 malwarescore=0\n spamscore=0 suspectscore=0 impostorscore=0 lowpriorityscore=0 clxscore=1015\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604220187","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"}}]