From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by sourceware.org (Postfix) with ESMTPS id DC0903858D28 for ; Tue, 29 Aug 2023 06:06:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DC0903858D28 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-3fefe898f76so39146795e9.0 for ; Mon, 28 Aug 2023 23:06:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1693289174; x=1693893974; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=nqsReFhgz8hM+wdQxP5rkw4x5vLXKjd7YEmyBmSdw9Q=; b=zJLog2Ttjfva90lq90hHqgQW4cRrONC/a6hZK23i0Vc9AW1zEjF64KSc3TfQ8ysQTJ lqVZ74ernfJJpO2C/W1XriN8uwd1HbWn4K1dE2qoK7uyzPk/Q1nUw3+1zoSlFrqYpKSQ qCEswfFLMO4aiL7m692z7Z6+UPopD5MOtNCfydMjmJBG9PMMA/6xE9Vc+Y0MXVGvBLBl trpYW+J4Yf2Zw5SVZgxkq4Cm4CYpgQsYV5e9ftYecN2dysBvr3XAMqbSkPOEhICWCr6f rwdgMbIBzwn/P/cWFGLiyTDn1jRBIbhd5SRZ/xkZKuxIp6DnvKWIkXTAMyucy1BZidw3 P8WQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693289174; x=1693893974; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=nqsReFhgz8hM+wdQxP5rkw4x5vLXKjd7YEmyBmSdw9Q=; b=WdYaS1xneiUC3fRKSPOoUJoCq+q6hWGGnOfjjZ3DQzA5KBS+goTZ9fhgNmpjSoAVK8 mieHWr4us4Gsp06oHLzZbdLU0igWAriLSnwwaSUIVXU/Euc2zf5i3obMm4o7TCKXhQis cA8WwjWW869daAJ3LLOJAWHI+PWixChyVcMZFnBrVQcHlF8LrPG0oCNpPj8vDR+uRokr 7jLUkjRQSkVo/IgdpcldozeJeelCp+m9vzJF0BZESKZN4y0K6VbQLQ4TIhVWNcU7KcK9 jGOqZ1dfs9CR5CvYL51WaNRXx2V2BLO7fslcZ+4eQ1P4duq7XLpvfjJM73G4VzqWLYpt NgoQ== X-Gm-Message-State: AOJu0YzSls83husZyCLzG161ymkaVVwBEIIJsD/bRl12/54kkPp1mRWf 1sqhSXywoskXkl1TL6QP30KZoxg7n/Y4O0PP6OSh6A== X-Google-Smtp-Source: AGHT+IEpIjeGJH9WJmgSULN1vNlzyJf4FGq6PcAuqsAjclPETz1m+XnxyCBTMB+JvIykunqTRD0jYEpRC0nkrbnx/+w= X-Received: by 2002:a05:600c:502a:b0:401:d803:6250 with SMTP id n42-20020a05600c502a00b00401d8036250mr331455wmr.5.1693289174110; Mon, 28 Aug 2023 23:06:14 -0700 (PDT) MIME-Version: 1.0 References: <20230814183422.1905511-1-christophe.lyon@linaro.org> <20230814183422.1905511-5-christophe.lyon@linaro.org> In-Reply-To: <20230814183422.1905511-5-christophe.lyon@linaro.org> From: Prathamesh Kulkarni Date: Tue, 29 Aug 2023 11:35:37 +0530 Message-ID: Subject: Re: [PATCH 5/9] arm: [MVE intrinsics] add support for p8 and p16 polynomial types To: Christophe Lyon Cc: gcc-patches@gcc.gnu.org, Kyrylo.Tkachov@arm.com, richard.earnshaw@arm.com, richard.sandiford@arm.com Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,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 List-Id: On Tue, 15 Aug 2023 at 00:05, Christophe Lyon via Gcc-patches wrote: > > Although they look like aliases for u8 and u16, we need to define them > so that we can handle p8 and p16 suffixes with the general framework. > > They will be used by vmull[bt]q_poly intrinsics. Hi Christophe, It seems your patch committed in 9bae37ec8dc32027dedf9a32bf15754ebad6da38 broke arm bootstrap build due to Werror=missing-field-initializers: https://ci.linaro.org/job/tcwg_bootstrap_build--master-arm-bootstrap-build/199/artifact/artifacts/notify/mail-body.txt/*view*/ I think this happens because the commit adds a new member to type_suffix_info: - unsigned int spare : 13; + /* True if the suffix is for a polynomial type. */ + unsigned int poly_p : 1; + unsigned int spare : 12; but probably misses an initializer in arm-mve-builtins.cc:type_suffixes: { "", NUM_VECTOR_TYPES, TYPE_bool, 0, 0, false, false, false, 0, VOIDmode } Thanks, Prathamesh > > 2023-08-14 Christophe Lyon > > gcc/ > * config/arm/arm-mve-builtins.cc (type_suffixes): Handle poly_p > field.. > (TYPES_poly_8_16): New. > (poly_8_16): New. > * config/arm/arm-mve-builtins.def (p8): New type suffix. > (p16): Likewise. > * config/arm/arm-mve-builtins.h (enum type_class_index): Add > TYPE_poly. > (struct type_suffix_info): Add poly_p field. > --- > gcc/config/arm/arm-mve-builtins.cc | 6 ++++++ > gcc/config/arm/arm-mve-builtins.def | 2 ++ > gcc/config/arm/arm-mve-builtins.h | 5 ++++- > 3 files changed, 12 insertions(+), 1 deletion(-) > > diff --git a/gcc/config/arm/arm-mve-builtins.cc b/gcc/config/arm/arm-mve-builtins.cc > index 7eec9d2861c..fa8b0ad36b3 100644 > --- a/gcc/config/arm/arm-mve-builtins.cc > +++ b/gcc/config/arm/arm-mve-builtins.cc > @@ -128,6 +128,7 @@ CONSTEXPR const type_suffix_info type_suffixes[NUM_TYPE_SUFFIXES + 1] = { > TYPE_##CLASS == TYPE_signed || TYPE_##CLASS == TYPE_unsigned, \ > TYPE_##CLASS == TYPE_unsigned, \ > TYPE_##CLASS == TYPE_float, \ > + TYPE_##CLASS == TYPE_poly, \ > 0, \ > MODE }, > #include "arm-mve-builtins.def" > @@ -177,6 +178,10 @@ CONSTEXPR const type_suffix_info type_suffixes[NUM_TYPE_SUFFIXES + 1] = { > #define TYPES_all_signed(S, D) \ > S (s8), S (s16), S (s32) > > +/* _p8 _p16. */ > +#define TYPES_poly_8_16(S, D) \ > + S (p8), S (p16) > + > /* _u8 _u16 _u32. */ > #define TYPES_all_unsigned(S, D) \ > S (u8), S (u16), S (u32) > @@ -275,6 +280,7 @@ DEF_MVE_TYPES_ARRAY (integer_8); > DEF_MVE_TYPES_ARRAY (integer_8_16); > DEF_MVE_TYPES_ARRAY (integer_16_32); > DEF_MVE_TYPES_ARRAY (integer_32); > +DEF_MVE_TYPES_ARRAY (poly_8_16); > DEF_MVE_TYPES_ARRAY (signed_16_32); > DEF_MVE_TYPES_ARRAY (signed_32); > DEF_MVE_TYPES_ARRAY (reinterpret_integer); > diff --git a/gcc/config/arm/arm-mve-builtins.def b/gcc/config/arm/arm-mve-builtins.def > index e3f37876210..e2cf1baf370 100644 > --- a/gcc/config/arm/arm-mve-builtins.def > +++ b/gcc/config/arm/arm-mve-builtins.def > @@ -63,6 +63,8 @@ DEF_MVE_TYPE_SUFFIX (u8, uint8x16_t, unsigned, 8, V16QImode) > DEF_MVE_TYPE_SUFFIX (u16, uint16x8_t, unsigned, 16, V8HImode) > DEF_MVE_TYPE_SUFFIX (u32, uint32x4_t, unsigned, 32, V4SImode) > DEF_MVE_TYPE_SUFFIX (u64, uint64x2_t, unsigned, 64, V2DImode) > +DEF_MVE_TYPE_SUFFIX (p8, uint8x16_t, poly, 8, V16QImode) > +DEF_MVE_TYPE_SUFFIX (p16, uint16x8_t, poly, 16, V8HImode) > #undef REQUIRES_FLOAT > > #define REQUIRES_FLOAT true > diff --git a/gcc/config/arm/arm-mve-builtins.h b/gcc/config/arm/arm-mve-builtins.h > index c9b51a0c77b..37b8223dfb2 100644 > --- a/gcc/config/arm/arm-mve-builtins.h > +++ b/gcc/config/arm/arm-mve-builtins.h > @@ -146,6 +146,7 @@ enum type_class_index > TYPE_float, > TYPE_signed, > TYPE_unsigned, > + TYPE_poly, > NUM_TYPE_CLASSES > }; > > @@ -221,7 +222,9 @@ struct type_suffix_info > unsigned int unsigned_p : 1; > /* True if the suffix is for a floating-point type. */ > unsigned int float_p : 1; > - unsigned int spare : 13; > + /* True if the suffix is for a polynomial type. */ > + unsigned int poly_p : 1; > + unsigned int spare : 12; > > /* The associated vector or predicate mode. */ > machine_mode vector_mode : 16; > -- > 2.34.1 >