From patchwork Thu Dec 7 22:32:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Antoni Boucher X-Patchwork-Id: 175465 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp5103169vqy; Thu, 7 Dec 2023 14:32:46 -0800 (PST) X-Google-Smtp-Source: AGHT+IECjBOx4oooP8UJ6lw+XNcBDyeEZePa5wx11eMC0UjPaSYu3lHWE30gjwZ6bIaV6Z3J36dF X-Received: by 2002:a05:620a:856:b0:77f:38ab:246d with SMTP id u22-20020a05620a085600b0077f38ab246dmr1860752qku.97.1701988366168; Thu, 07 Dec 2023 14:32:46 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1701988366; cv=pass; d=google.com; s=arc-20160816; b=DHE2VeAKJ3CGdW4bC0luPtmTSGGyzMaGZZD+s82M0CF4fcl/BYWU639jAUTTq7MVK8 u00c5G7QmjjI3PoS8CV+Nhg+FjQORIn0fqkgy66UavIqiZhWMwSEt9KgmDd4JwNPu40g 30rJNmrGJak4autthCg44EIOBh6TcCGhuaxyoxnDw3Se/CZ+1UBX7T3/Ql5an74ztft/ 0N45kxuJnEq/UZmZ06qgrjZyz54b1qa80CMBpPBrFrvqxIjIFAGufhpfSvmFUb5NYdMQ msksdd4lzsPmvqUoFp9iRZRcg9w129O+7RncHGrsCTfMiMqLffo4ookHGFR9rCAwiZQq iI6A== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:feedback-id:mime-version :user-agent:autocrypt:date:cc:to:from:subject:message-id :dkim-signature:arc-filter:dmarc-filter:delivered-to; bh=F2l2mrB3n81HL/5bfrmKo+ZGvvp/qAiYrWUDEdaN6Gk=; fh=JISpz+bBSU4NvpZkyVsds76plEm8twWz26DY1VOoDBc=; b=QBotMhfl4fU3AcJwl+X/+4aAGRrTpFhWxJRZAz0kRitiXYzWtfUPObSqa8KVRkh8Rw jdeAbrVSZw7Fd1f0xnlD8mWyWU7s5uh/gwuv1wZvn7SNKOte3YNES83Wz36TdmzR8Nyw iCQn1RowIjfxM7lwivU9N/AQ71gFXruUVGqtdB7Ch2e3KqJc+FPFPHyfdZCkfLDB1uX/ cyRWXUrN9jDPDe0Gg2FhFUPMIYXLlRwcnYavPGcLeM2GlvD7Jr8QnfYpjn7gcpHCzotQ 6lEI/1CxHAmtmF/83yji4fS94/gk6SvfclYM2CDrl7UdxdMDHjQKAs5dKd5sA8USDzF9 o99Q== ARC-Authentication-Results: i=3; mx.google.com; dkim=pass header.i=@zoho.com header.s=zm2022 header.b=LW8dUNim; arc=pass (i=2); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=zoho.com Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id u4-20020a05620a120400b0077d7be192f6si684030qkj.708.2023.12.07.14.32.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Dec 2023 14:32:46 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@zoho.com header.s=zm2022 header.b=LW8dUNim; arc=pass (i=2); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=zoho.com Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E97AF385842B for ; Thu, 7 Dec 2023 22:32:45 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from sender4-pp-o90.zoho.com (sender4-pp-o90.zoho.com [136.143.188.90]) by sourceware.org (Postfix) with ESMTPS id 2BAC73858CD1; Thu, 7 Dec 2023 22:32:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2BAC73858CD1 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=zoho.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=zoho.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 2BAC73858CD1 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=136.143.188.90 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1701988340; cv=pass; b=NrZpPV0mrgDmUjZsZbuGmXXGnj0bNRm9mSFGCLHNrLJwKafw13jtpCFcs/zY1cSREXSoaEqjpsQkPBkEFudQXA8BSjGZqOpI/J+704FFohN7hR6DqttxuVAqXDvooyrEiyokiX0EcFSB/0fWGY6iOzomLNoAHQPquOIIaMoHH1w= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1701988340; c=relaxed/simple; bh=v2ruDXC+HcildztEzllDwrU2woZAoafxUhUoShGXgIQ=; h=DKIM-Signature:Message-ID:Subject:From:To:Date:MIME-Version; b=EwYqE7nRKejmGzCUBskRRUf5TjIahkzxb9UwbBtvQUQyoWvDypghvfnFoKYZU5CJ/hCLzV5a2F1A5XZbJPcfSDvLm6fce7rDOijjmxSatooPC+WXlwY5zfoDEJfOggTC7ByxRG0hcjsqVZAFXCQaqUpbeHWwqSLN3mYdwPkHkOQ= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; t=1701988330; cv=none; d=zohomail.com; s=zohoarc; b=bis5wgokVvqhSYTopPF0rk67NwZJVw1cLNe75htEvLEA9pIEQQixmTHbNZr9KKYTBZxQPtXNWPpBiHKNjr/Jc3eVKrK37/WHRhkicrSvwqsMLF4vdppiith+sr1Sqs8o05IajTCYV70YxfimBivrXoipidIzFdcFE8oQyKqE+84= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1701988330; h=Content-Type:Cc:Cc:Date:Date:From:From:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; bh=F2l2mrB3n81HL/5bfrmKo+ZGvvp/qAiYrWUDEdaN6Gk=; b=EQMsvagYukhpukGchjIe0SAFYnn5LozJXwf7VRGKAiDs9TrIeX60mkCHQxCzJwTu5EpgVAStJRb65Zmhcy7p6iIoZVIKyyHzFgN9rJtIQP3jIq32NWakxWOa77sz7k6cqtzS7YKdSgNmZQtyvbYKurwFvLksnS9q8fe8zlKxywE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=zoho.com; spf=pass smtp.mailfrom=bouanto@zoho.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1701988330; s=zm2022; d=zoho.com; i=bouanto@zoho.com; h=Message-ID:Subject:Subject:From:From:To:To:Cc:Cc:Date:Date:Content-Type:MIME-Version:Feedback-ID:Message-Id:Reply-To; bh=F2l2mrB3n81HL/5bfrmKo+ZGvvp/qAiYrWUDEdaN6Gk=; b=LW8dUNimbjgqCaGmx7c9eDudk5T6kgo+COWfiieLXAEDRYf7RKPB7n7ho+iDhiaI pHzwxcD/1pgNBQ9fHxnKwBFlBe39sa7XlnNAgSN075SFdyzOTBIiLmwff/hesUSOWqt ZDYraXP7VgKLUvO8+HrwYFk3iPGnOu4FGGt+7lpo= Received: from [192.168.1.172] (38.87.11.6 [38.87.11.6]) by mx.zohomail.com with SMTPS id 1701988327857868.7308617222858; Thu, 7 Dec 2023 14:32:07 -0800 (PST) Message-ID: <2ec3366055db69e275db048f4d15846c4fdcb2f9.camel@zoho.com> Subject: [PATCH] libgccjit: Make is_int return false on vector types From: Antoni Boucher To: jit@gcc.gnu.org, gcc-patches@gcc.gnu.org Cc: David Malcolm Date: Thu, 07 Dec 2023 17:32:06 -0500 Autocrypt: addr=bouanto@zoho.com; prefer-encrypt=mutual; keydata=mQENBFOSMLQBCADO5aw6Ys8thMQUNzrwAnfJX2wbgWiz0pQ01DjYj22eeIpChkoZn6LWdt4dieq30u2rFi/yQzJ02foHwI2+aL9rU6xz/x4TwqyRJQGMOqklNc3R+pdXmH4WDQkQDWmLxvc07vu+zb8Tx5A6pMDh4J2ncCEhLEUcH39Yq/yg4eBnFwUX6N7kakvHrnScGNqhnSFCacoJeMJUAR+1G7VBSBd++jmnHLnx3mj7QkRZVECJUw2zqiv1yReCC6GU4SvqLjdqm5ZGeoWOqD/NHjBRoEeOVjzp6M/qOjjWRbkJVqmvgfcD8UytSSqqboR35YFT4L+rZt2ri3T12MJb3i5syCAXABEBAAG0IUFudG9uaSBCb3VjaGVyIDxib3VhbnRvQHpvaG8uY29tPokBVgQTAQgAQAIbIwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAFiEEOELC4Uw1Jeb66YE6RVeGAwR4zcEFAlz4QM4FCRLMEZoACgkQRVeGAwR4zcFBQQf/afttJrA/puADQZhrDfkgr0MFvq6iB+GCy1b8BkXimk1TOXTPt87YLehSeijNu3JkYhl5eRc87BNfU9J87KfI/KIy6hZxqlDXk16FhW9bw/7wYEA0hpb3MUn7xLElXDT0ZHaD+KTe8Oun7qfzgx5RlL6r/WODf3CkSpO085R/rfeBqDEx9mVlhDWgq6Az3CZoD+3CqiCKVqmDuHTWz4kwrd9AM5eVcLvvLKnZIdoIp+G5Ao6BvaGlZyfenN1iOSjLy2NXNt4MnUt0lUYEP5KSIIRhHQ8xkUbj7eWUmaahkxhNb3fH3sAPwGnRZrPpb4rgYzNmSk63wWMh9M2xk+rLb7kBDQRTkjC0AQgAumZzsAV/UFWI+dpzebQfma36kKYZZFuseant5sq/HWP553XQ/U6ttJiKyN5MpCqtxvCAoRplf42YhlHuFqgf73WJxoJ6Y+sdyqoBSwlR+ gzAneAmsa8gmmY0wawH0Z2leazjKuS7mJjVEQZg0ZGsiCVRGeRnDqFGzDEzDc9ngWKSoTq0fKzlGy1X85OrtmUrvEbhSo6HP+FoeunHkIqrxu3w3vDoFEXxVQlKI6V3I4nCz5n6DB8WR3L7nsiiTnOiGirPw1ngvWFLW86kkA4FJpayc8Xl3va3SLY+2y4yuROboX2DVI4AC/Qeug/mDiBicPxkP6YfUartQRMe6obkEQARAQABiQE8BBgBCAAmAhsMFiEEOELC4Uw1Jeb66YE6RVeGAwR4zcEFAlz4QRsFCRLMEecACgkQRVeGAwR4zcE56ggAgTgrJInBKC+7552Dpccuo6Clh3wZfjlNLv9/6r5lKEbaNzaTrfhPiAP4WgnluIUmj8amOFLFJpj+BAVNOXpZ4D2R3o9ch8z7fot+fW4Yw+PKIxH4I2xEys8ndoEB3aiQwHjKcGIhkIU7uyMJFQr2aWjdTY0gmXw0YZueHOSLgo7uX4XKxB8fEO/yto/Tff2YBAAq+AtNwt+Gh5YS9rZw7rwUTWMi84yVOlc+zRE79E9NJkvdTwX7IJYo64VzIRNfgHsn7QNdVzuM1XIFHl+Glk6cIlI8s6BO7nEoCn3hTF104fQTAO3fEs+XXZOKXo2lk8faowEoPq5r58StrV0nyg== User-Agent: Evolution 3.50.2 MIME-Version: 1.0 X-Zoho-Virus-Status: 1 X-Zoho-AV-Stamp: zmail-av-1.1.0/201.873.56 Feedback-ID: rr08011228e211a9cb47f2b65f46f4c7e7000082d36033ff58a020cb1717ac13ab5c4911ded82af850e1169a1c:zu080112266052070388eb406b44a2fdb60000cad84040aa18e8bfa1071f77317a6b5d72f940e427b335c0:rf08011232bcaab0b0e4042455c6bfb622000047604e59273990a6c8b3b5e40fd602d78e17fd9613fd20a9f18405a1e5d822893307a60b:ZohoMail X-ZohoMailClient: External X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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+ouuuleilei=gmail.com@gcc.gnu.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784664153057665399 X-GMAIL-MSGID: 1784664153057665399 Hi. This patch changes the function is_int to return false on vector types. Thanks for the review. From 60ebfb998bd349ca2f05b115de5452378027e4de Mon Sep 17 00:00:00 2001 From: Antoni Boucher Date: Thu, 26 Oct 2023 19:17:55 -0400 Subject: [PATCH] libgccjit: Make is_int return false on vector types gcc/jit/ChangeLog: * jit-recording.h (is_numeric_vector, vector_type::new_int): New functions. * libgccjit.cc (gcc_jit_context_new_unary_op, gcc_jit_context_new_binary_op): add checks for is_numeric_vector. gcc/testsuite/ChangeLog: * jit.dg/test-reflection.c: Add check to make sure gcc_jit_type_is_integral returns 0 on a vector type. --- gcc/jit/jit-recording.h | 12 +++++++++++- gcc/jit/libgccjit.cc | 4 ++-- gcc/testsuite/jit.dg/test-reflection.c | 1 + 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/gcc/jit/jit-recording.h b/gcc/jit/jit-recording.h index 4a8082991fb..ffadbe968af 100644 --- a/gcc/jit/jit-recording.h +++ b/gcc/jit/jit-recording.h @@ -567,6 +567,7 @@ public: virtual bool is_int () const = 0; virtual bool is_float () const = 0; virtual bool is_bool () const = 0; + virtual bool is_numeric_vector () const { return false; } virtual type *is_pointer () = 0; virtual type *is_volatile () { return NULL; } virtual type *is_restrict () { return NULL; } @@ -701,9 +702,10 @@ public: size_t get_size () final override { return m_other_type->get_size (); }; - bool is_int () const final override { return m_other_type->is_int (); } + bool is_int () const override { return m_other_type->is_int (); } bool is_float () const final override { return m_other_type->is_float (); } bool is_bool () const final override { return m_other_type->is_bool (); } + bool is_numeric_vector () const override { return m_other_type->is_numeric_vector (); } type *is_pointer () final override { return m_other_type->is_pointer (); } type *is_array () final override { return m_other_type->is_array (); } struct_ *is_struct () final override { return m_other_type->is_struct (); } @@ -826,6 +828,14 @@ public: : decorated_type (other_type), m_num_units (num_units) {} + bool is_int () const final override { + return false; + } + + bool is_numeric_vector () const final override { + return true; + } + size_t get_num_units () const { return m_num_units; } vector_type *dyn_cast_vector_type () final override { return this; } diff --git a/gcc/jit/libgccjit.cc b/gcc/jit/libgccjit.cc index 0451b4df7f9..852f4103839 100644 --- a/gcc/jit/libgccjit.cc +++ b/gcc/jit/libgccjit.cc @@ -2114,7 +2114,7 @@ gcc_jit_context_new_unary_op (gcc_jit_context *ctxt, op); RETURN_NULL_IF_FAIL (result_type, ctxt, loc, "NULL result_type"); RETURN_NULL_IF_FAIL_PRINTF3 ( - result_type->is_numeric (), ctxt, loc, + result_type->is_numeric () || result_type->is_numeric_vector (), ctxt, loc, "gcc_jit_unary_op %s with operand %s " "has non-numeric result_type: %s", gcc::jit::unary_op_reproducer_strings[op], @@ -2171,7 +2171,7 @@ gcc_jit_context_new_binary_op (gcc_jit_context *ctxt, b->get_debug_string (), b->get_type ()->get_debug_string ()); RETURN_NULL_IF_FAIL_PRINTF4 ( - result_type->is_numeric (), ctxt, loc, + result_type->is_numeric () || result_type->is_numeric_vector (), ctxt, loc, "gcc_jit_binary_op %s with operands a: %s b: %s " "has non-numeric result_type: %s", gcc::jit::binary_op_reproducer_strings[op], diff --git a/gcc/testsuite/jit.dg/test-reflection.c b/gcc/testsuite/jit.dg/test-reflection.c index 112a2455c07..afa76ff81f6 100644 --- a/gcc/testsuite/jit.dg/test-reflection.c +++ b/gcc/testsuite/jit.dg/test-reflection.c @@ -59,6 +59,7 @@ verify_code (gcc_jit_context *ctxt, gcc_jit_result *result) CHECK (vec_type != double_type); CHECK_VALUE (gcc_jit_vector_type_get_element_type(vector_type), double_type); CHECK_VALUE (gcc_jit_vector_type_get_num_units(vector_type), 4); + CHECK (!gcc_jit_type_is_integral(vec_type)); CHECK (!gcc_jit_type_is_pointer(double_type)); CHECK_VALUE (gcc_jit_type_is_pointer(gcc_jit_type_get_pointer(double_type)), double_type); -- 2.43.0