From patchwork Mon Oct 5 09:58:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christophe Lyon X-Patchwork-Id: 1376723 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=gcc-patches-bounces@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gcc.gnu.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=KCk6QyrB; dkim-atps=neutral Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4C4bdG65pzz9sSn for ; Mon, 5 Oct 2020 20:58:10 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 3F0CD385040A; Mon, 5 Oct 2020 09:58:08 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3F0CD385040A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1601891888; bh=Ld+dcZmMMR/exWZpIOd/+023o3cs8gQR0uNyG3f5LcM=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=KCk6QyrBwzuub/2VA1Hroy3fkMgZh7OGn7l8U2MeWdKUcAGFzRWMqnCRPCEcJqDHY mmOQwL+iF6qn8a97fZgwXs8pOMNzpXBK8wt024uvuEiIxvSCylxOj9MwQxwZK8p+we 4LCbenqqIrBZmOSJhrqsbuoQKobS15uYoMQ3vWYo= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com [IPv6:2a00:1450:4864:20::344]) by sourceware.org (Postfix) with ESMTPS id 05B8F3857C62 for ; Mon, 5 Oct 2020 09:58:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 05B8F3857C62 Received: by mail-wm1-x344.google.com with SMTP id d4so7923912wmd.5 for ; Mon, 05 Oct 2020 02:58:05 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=Ld+dcZmMMR/exWZpIOd/+023o3cs8gQR0uNyG3f5LcM=; b=AmN6/axlzN6NUnsGszGzpPW3+9JN9PF1pLcQx2iRxx5+CEi812W+yGCrOT5wGU9iJv qKwM+eOXiCeLlDT9zvVoX8ygmuU5gQSH3DwlLwHjZt/+GS9J3gcbo7iWhxxe44/CedXK 2Nk4Ayj9qW61OEhw4858nih0iiBw/E5dlqwK19zvxZ+ja0pMgjPeY8rLFuio9uBQRbXq 21hd08QHs2DItQeyeOoNgAYogLCmsRkVgNgO8O3DowKy4dcF7lcZqRZUGNJsGmU+7b+e fWl1AysnkKZBP93zbQq52idw6gBEptnxanPLKsKSOT6W2nxzwCRTt+Z0IO1O3CwBvTOv +A/A== X-Gm-Message-State: AOAM533nC/blPKc3N5Sp/nhR0bovAfaFgFMWDMAV02r48jYu2mz5xn62 S2l8PBjWmeXr2IyNMQfmuzrhd9jEvQc98g== X-Google-Smtp-Source: ABdhPJx/+hDAwVQeErhKzyhnoFMzcdoHGrPhgsYYVsuHUFva9XoKN/ZahWpWcZGhr8GxWP42173IkA== X-Received: by 2002:a1c:9910:: with SMTP id b16mr9706865wme.64.1601891884661; Mon, 05 Oct 2020 02:58:04 -0700 (PDT) Received: from localhost.localdomain (static.42.136.251.148.clients.your-server.de. [148.251.136.42]) by smtp.gmail.com with ESMTPSA id v9sm11606823wmh.23.2020.10.05.02.58.03 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 05 Oct 2020 02:58:04 -0700 (PDT) To: gcc-patches@gcc.gnu.org Subject: [PATCH] arm: [MVE] Add missing __arm_vcvtnq_u32_f32 intrinsic (PR 96914) Date: Mon, 5 Oct 2020 09:58:02 +0000 Message-Id: <1601891882-13015-1-git-send-email-christophe.lyon@linaro.org> X-Mailer: git-send-email 2.7.4 X-Spam-Status: No, score=-14.1 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.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Christophe Lyon via Gcc-patches From: Christophe Lyon Reply-To: Christophe Lyon Errors-To: gcc-patches-bounces@gcc.gnu.org Sender: "Gcc-patches" __arm_vcvtnq_u32_f32 was missing from arm_mve.h, although the s32_f32 and [su]16_f16 versions were present. This patch adds the missing version and testcase, which are cut-and-paste from the other versions. 2020-10-05 Christophe Lyon gcc/ * config/arm/arm_mve.h (__arm_vcvtnq_u32_f32): New. gcc/testsuite/ * gcc.target/arm/mve/intrinsics/vcvtnq_u32_f32.c: New test. --- gcc/config/arm/arm_mve.h | 8 ++++++++ .../gcc.target/arm/mve/intrinsics/vcvtnq_u32_f32.c | 13 +++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 gcc/testsuite/gcc.target/arm/mve/intrinsics/vcvtnq_u32_f32.c diff --git a/gcc/config/arm/arm_mve.h b/gcc/config/arm/arm_mve.h index 99cff41..ecff3d1 100644 --- a/gcc/config/arm/arm_mve.h +++ b/gcc/config/arm/arm_mve.h @@ -643,6 +643,7 @@ #define vcvtpq_u16_f16(__a) __arm_vcvtpq_u16_f16(__a) #define vcvtpq_u32_f32(__a) __arm_vcvtpq_u32_f32(__a) #define vcvtnq_u16_f16(__a) __arm_vcvtnq_u16_f16(__a) +#define vcvtnq_u32_f32(__a) __arm_vcvtnq_u32_f32(__a) #define vcvtmq_u16_f16(__a) __arm_vcvtmq_u16_f16(__a) #define vcvtmq_u32_f32(__a) __arm_vcvtmq_u32_f32(__a) #define vcvtaq_u16_f16(__a) __arm_vcvtaq_u16_f16(__a) @@ -17012,6 +17013,13 @@ __arm_vcvtnq_u16_f16 (float16x8_t __a) return __builtin_mve_vcvtnq_uv8hi (__a); } +__extension__ extern __inline uint32x4_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) +__arm_vcvtnq_u32_f32 (float32x4_t __a) +{ + return __builtin_mve_vcvtnq_uv4si (__a); +} + __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vcvtmq_u16_f16 (float16x8_t __a) diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vcvtnq_u32_f32.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vcvtnq_u32_f32.c new file mode 100644 index 0000000..b6d5eb9 --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vcvtnq_u32_f32.c @@ -0,0 +1,13 @@ +/* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */ +/* { dg-add-options arm_v8_1m_mve_fp } */ +/* { dg-additional-options "-O2" } */ + +#include "arm_mve.h" + +uint32x4_t +foo (float32x4_t a) +{ + return vcvtnq_u32_f32 (a); +} + +/* { dg-final { scan-assembler "vcvtn.u32.f32" } } */