From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x62c.google.com (mail-pl1-x62c.google.com [IPv6:2607:f8b0:4864:20::62c]) by sourceware.org (Postfix) with ESMTPS id E460B3858D37 for ; Wed, 28 Jun 2023 18:12:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E460B3858D37 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-1b7dd061e9aso1581905ad.2 for ; Wed, 28 Jun 2023 11:12:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687975921; x=1690567921; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=DnfceK41g+MJPZUJIgUIJP+nMKZiWMOTzrwqB3kP0L4=; b=CJ+Pctp+2ULlfpGbpT1AJXrXwWgYim6D3Ua9N6k4liJCPLhgDCP44kKN0dgAsL7Kbk BJKJyNaBQPJ2rHHrZh6N8Xt4G+/cIH4rh6c5IGovAqafD1Dve7Ury5y4BADPpx3WWNQC N7za1s0EW1P/6wH6EBhKeEc5/cEMobkC1E2ekiIrt2XLdmqL1IG4t26Y0KpuqX9nCrR4 6IZNNHl0iHm6T95M1DssWmS4ffPVAmBh+Q6t52WUFwynfV5ovgfmVEmIyQHcaVQwUu+A itVMXkvvTTps/7MN4b5VBujLE/5ixrE5xSBc/qwlqkYqUjYblY47HRRjSFNNsLptM+u9 0n+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687975921; x=1690567921; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=DnfceK41g+MJPZUJIgUIJP+nMKZiWMOTzrwqB3kP0L4=; b=jjIG9VMeR8hUOtNUIBqNQlLLcWGt6/eRiRZyo7cFBocTooKfpLp3KWT8vcnwh9wXmw jLiO5o8gm1a8o0mfxcbqzptw4qBs8NEfGojbwtj0aGPC3pmaCu7I9WI3j569XhHBeIYi PFPeA8z8zNGTZ8kTuqk5pyY2h9ytiVS81XJd14wUYhEegpBBbye3mZiGXVX5XlYS0ahr GFvu1nDoOV4niJE360ksC9EoGOFCkgzBKPxOMJvN8ebaQmS6snDFE5PDVcV7XWC7bTEK nueelBN1EFwt13h4PnIbsRUdPptKgQILJ0BfoPvoJpEjVB54lF/Is4RA27BAulYA0TOv Co4w== X-Gm-Message-State: AC+VfDziGcN0TCbcPIvPX5VUI+aBcx1+oH54EvdCd7tV1PW6jrDHk/Cd knmUgMinwRdfqh3d6y9kFJ0= X-Google-Smtp-Source: ACHHUZ7sgUdMIbrKq9ViPm0UV0x/sd0qR+jcZUd6pLNzX093TPFwhXqJia28Xle4cnObPUslyKv3Rw== X-Received: by 2002:a17:903:2348:b0:1b7:ed6a:d8a5 with SMTP id c8-20020a170903234800b001b7ed6ad8a5mr11531789plh.61.1687975921511; Wed, 28 Jun 2023 11:12:01 -0700 (PDT) Received: from [172.31.0.109] ([136.36.130.248]) by smtp.gmail.com with ESMTPSA id r14-20020a170902be0e00b001b243a20f26sm7886088pls.273.2023.06.28.11.12.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 28 Jun 2023 11:12:00 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------NsUcdmRzjR2qJsrNW5yIjk2l" Message-ID: Date: Wed, 28 Jun 2023 12:11:59 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH V3] RISC-V: Fix bug of pre-calculated const vector mask for VNx1BI, VNx2BI and VNx4BI Content-Language: en-US To: Juzhe-Zhong , gcc-patches@gcc.gnu.org Cc: kito.cheng@gmail.com, kito.cheng@sifive.com, palmer@dabbelt.com, palmer@rivosinc.com, rdapp.gcc@gmail.com References: <20230628094752.332289-1-juzhe.zhong@rivai.ai> From: Jeff Law In-Reply-To: <20230628094752.332289-1-juzhe.zhong@rivai.ai> X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,SCC_5_SHORT_WORD_LINES,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------NsUcdmRzjR2qJsrNW5yIjk2l Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 6/28/23 03:47, Juzhe-Zhong wrote: > This bug blocks the following patches. > > GCC doesn't know RVV is using compact mask model. > Consider this following case: > > #define N 16 > > int > main () > { > int8_t mask[N] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}; > int8_t out[N] = {0}; > for (int8_t i = 0; i < N; ++i) > if (mask[i]) > out[i] = i; > for (int8_t i = 0; i < N; ++i) > { > if (mask[i]) > assert (out[i] == i); > else > assert (out[i] == 0); > } > } > > Before this patch, the pre-calculated mask in constant memory pool: > .LC1: > .byte 68 ====> 0b01000100 > > This is incorrect, such case failed in execution. > > After this patch: > .LC1: > .byte 10 ====> 0b1010 So I don't get anything like this in my testing. What are the precise arguments you're using to build the testcase? I'm compiling the test use a trunk compiler with -O3 --param riscv-autovec-preference=fixed-vlmax -march=rv64gcv I get the attached code both before and after your patch. Clearly I'm doing something different/wrong. So my request is for the precise command line you're using and the before/after resulting assembly code. Jeff --------------NsUcdmRzjR2qJsrNW5yIjk2l Content-Type: text/plain; charset=UTF-8; name="j.s" Content-Disposition: attachment; filename="j.s" Content-Transfer-Encoding: base64 CS5maWxlCSJqLmMiCgkub3B0aW9uIG5vcGljCgkuYXR0cmlidXRlIGFyY2gsICJydjY0aTJw MV9tMnAwX2EycDFfZjJwMl9kMnAyX2MycDBfdjFwMF96aWNzcjJwMF96aWZlbmNlaTJwMF96 dmUzMmYxcDBfenZlMzJ4MXAwX3p2ZTY0ZDFwMF96dmU2NGYxcDBfenZlNjR4MXAwX3p2bDEy OGIxcDBfenZsMzJiMXAwX3p2bDY0YjFwMCIKCS5hdHRyaWJ1dGUgdW5hbGlnbmVkX2FjY2Vz cywgMAoJLmF0dHJpYnV0ZSBzdGFja19hbGlnbiwgMTYKCS50ZXh0Cgkuc2VjdGlvbgkucm9k YXRhLnN0cjEuOCwiYU1TIixAcHJvZ2JpdHMsMQoJLmFsaWduCTMKLkxDMToKCS5zdHJpbmcJ ImouYyIKCS5hbGlnbgkzCi5MQzI6Cgkuc3RyaW5nCSJvdXRbaV0gPT0gaSIKCS5hbGlnbgkz Ci5MQzM6Cgkuc3RyaW5nCSJvdXRbaV0gPT0gMCIKCS5zZWN0aW9uCS50ZXh0LnN0YXJ0dXAs ImF4IixAcHJvZ2JpdHMKCS5hbGlnbgkxCgkuZ2xvYmwJbWFpbgoJLnR5cGUJbWFpbiwgQGZ1 bmN0aW9uCm1haW46Ci5MRkIwOgoJLmNmaV9zdGFydHByb2MKCWx1aQlhNSwlaGkoLkxBTkNI T1IwKQoJYWRkaQlhNSxhNSwlbG8oLkxBTkNIT1IwKQoJbGQJYTQsMChhNSkKCWxkCWE1LDgo YTUpCglhZGRpCXNwLHNwLC00OAoJLmNmaV9kZWZfY2ZhX29mZnNldCA0OAoJdnNldGl2bGkJ emVybywxNixlOCxtMSx0YSxtYQoJc2QJemVybywxNihzcCkKCXNkCWE0LDAoc3ApCglzZAlh NSw4KHNwKQoJc2QJcmEsNDAoc3ApCgkuY2ZpX29mZnNldCAxLCAtOAoJYWRkaQlhNSxzcCwx NgoJc2QJemVybywyNChzcCkKCXZpZC52CXYxCgl2bDFyZTgudgl2MCwwKHNwKQoJdm1zbmUu dmkJdjAsdjAsMAoJdnNldHZsaQlhNCx6ZXJvLGU4LG0xLHRhLG1hCgl2c2U4LnYJdjEsMChh NSksdjAudAoJbGJ1CWE1LDE2KHNwKQoJYm5lCWE1LHplcm8sLkwyCglsYnUJYTQsMTcoc3Ap CglsaQlhNSwxCglibmUJYTQsYTUsLkwzCglsYnUJYTUsMTgoc3ApCglibmUJYTUsemVybywu TDIKCWxidQlhNCwxOShzcCkKCWxpCWE1LDMKCWJuZQlhNCxhNSwuTDMKCWxidQlhNSwyMChz cCkKCWJuZQlhNSx6ZXJvLC5MMgoJbGJ1CWE0LDIxKHNwKQoJbGkJYTUsNQoJYm5lCWE0LGE1 LC5MMwoJbGJ1CWE1LDIyKHNwKQoJYm5lCWE1LHplcm8sLkwyCglsYnUJYTQsMjMoc3ApCgls aQlhNSw3CglibmUJYTQsYTUsLkwzCglsYnUJYTUsMjQoc3ApCglibmUJYTUsemVybywuTDIK CWxidQlhNCwyNShzcCkKCWxpCWE1LDkKCWJuZQlhNCxhNSwuTDMKCWxidQlhNSwyNihzcCkK CWJuZQlhNSx6ZXJvLC5MMgoJbGJ1CWE0LDI3KHNwKQoJbGkJYTUsMTEKCWJuZQlhNCxhNSwu TDMKCWxidQlhNSwyOChzcCkKCWJuZQlhNSx6ZXJvLC5MMgoJbGJ1CWE0LDI5KHNwKQoJbGkJ YTUsMTMKCWJuZQlhNCxhNSwuTDMKCWxidQlhNSwzMChzcCkKCWJuZQlhNSx6ZXJvLC5MMgoJ bGJ1CWE0LDMxKHNwKQoJbGkJYTUsMTUKCWJuZQlhNCxhNSwuTDMKCWxkCXJhLDQwKHNwKQoJ LmNmaV9yZW1lbWJlcl9zdGF0ZQoJLmNmaV9yZXN0b3JlIDEKCWxpCWEwLDAKCWFkZGkJc3As c3AsNDgKCS5jZmlfZGVmX2NmYV9vZmZzZXQgMAoJanIJcmEKLkwyOgoJLmNmaV9yZXN0b3Jl X3N0YXRlCglsdWkJYTMsJWhpKF9fUFJFVFRZX0ZVTkNUSU9OX18uMCkKCWx1aQlhMSwlaGko LkxDMSkKCWx1aQlhMCwlaGkoLkxDMykKCWFkZGkJYTMsYTMsJWxvKF9fUFJFVFRZX0ZVTkNU SU9OX18uMCkKCWxpCWEyLDE4CglhZGRpCWExLGExLCVsbyguTEMxKQoJYWRkaQlhMCxhMCwl bG8oLkxDMykKCWNhbGwJX19hc3NlcnRfZmFpbAouTDM6CglsdWkJYTMsJWhpKF9fUFJFVFRZ X0ZVTkNUSU9OX18uMCkKCWx1aQlhMSwlaGkoLkxDMSkKCWx1aQlhMCwlaGkoLkxDMikKCWFk ZGkJYTMsYTMsJWxvKF9fUFJFVFRZX0ZVTkNUSU9OX18uMCkKCWxpCWEyLDE2CglhZGRpCWEx LGExLCVsbyguTEMxKQoJYWRkaQlhMCxhMCwlbG8oLkxDMikKCWNhbGwJX19hc3NlcnRfZmFp bAoJLmNmaV9lbmRwcm9jCi5MRkUwOgoJLnNpemUJbWFpbiwgLi1tYWluCgkuc2VjdGlvbgku cm9kYXRhCgkuYWxpZ24JMwoJLnNldAkuTEFOQ0hPUjAsLiArIDAKLkxDMDoKCS5zdHJpbmcJ IiIKCS5zdHJpbmcJIlwwMDEiCgkuc3RyaW5nCSJcMDAxIgoJLnN0cmluZwkiXDAwMSIKCS5z dHJpbmcJIlwwMDEiCgkuc3RyaW5nCSJcMDAxIgoJLnN0cmluZwkiXDAwMSIKCS5zdHJpbmcJ IlwwMDEiCgkuYXNjaWkJIlwwMDEiCgkuc2VjdGlvbgkuc3JvZGF0YSwiYSIKCS5hbGlnbgkz CgkudHlwZQlfX1BSRVRUWV9GVU5DVElPTl9fLjAsIEBvYmplY3QKCS5zaXplCV9fUFJFVFRZ X0ZVTkNUSU9OX18uMCwgNQpfX1BSRVRUWV9GVU5DVElPTl9fLjA6Cgkuc3RyaW5nCSJtYWlu IgoJLmlkZW50CSJHQ0M6IChHTlUpIDE0LjAuMCAyMDIzMDYyOCAoZXhwZXJpbWVudGFsKSIK CS5zZWN0aW9uCS5ub3RlLkdOVS1zdGFjaywiIixAcHJvZ2JpdHMK --------------NsUcdmRzjR2qJsrNW5yIjk2l--