From patchwork Tue Feb 27 17:44:53 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uros Bizjak X-Patchwork-Id: 86465 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 7CD413858D28 for ; Tue, 27 Feb 2024 17:45:40 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com [IPv6:2a00:1450:4864:20::134]) by sourceware.org (Postfix) with ESMTPS id 7FFE73858D20 for ; Tue, 27 Feb 2024 17:45:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7FFE73858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 7FFE73858D20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::134 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709055910; cv=none; b=OtRwKYbMU7YZ7N5WsL9Au4h8YJtZLYBLjR8HaaBlK5BijrcJ809cKa0j+OEwZ+y5f92x/DG07torzCcMU2e5H9Ay8PLjsNG/LrxydCjScF2kS+uYum6UsOq3zHt3xW00BVLCpRXvdTkZt9Puo6ixCX+UPngJMC9sPCvXAjizGCU= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709055910; c=relaxed/simple; bh=kn6h4aOhtFIxoP73Bz4WxRnv70RjgM0667rcXBN8YZM=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=MRkeOPvPGnQYYZedMUIlH7TzvEbJZRBSC7Vp+DZoefJQr3ZcFKeMdjPIFWqEPmm4MFzG93x2g9VJxAs3mevFVJbGyFzvc5oU5G7TuKwfZkC5zgIM0SdUo2Ftw7SnT6tGvVwZwJsRU6DwmnGS4BsvCsaimV4k0iIuzHmLA8Z7uPM= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-lf1-x134.google.com with SMTP id 2adb3069b0e04-512bc0e8ce1so4790337e87.0 for ; Tue, 27 Feb 2024 09:45:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709055905; x=1709660705; darn=gcc.gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=dd0LShQdAHWLz73+ZA3ghAVKQlpLUWQp+z7diB9Gl2U=; b=PjHb2PRTeI5dwZcPyqzIuoszOVSQFI44C6Be3xAOFQL2dnpQB34ME77uo8FWYAVHM4 OgRsIZvLglgUoM8Jp7bcv7WrXDayHVWNxSag2Eh1vS8NVUdsqutKj2V7B9E2ru7sOeQ1 zlK/HLLRQ54Hbhn9O8qYBosBq30QAlglkRe98OPWZTHIuOXOH7jQVgWNID+GCLUufWZL r3frzGjjwOchQvPat7Oclbp8p9iozDOBnCHSKiMnMRjB6pF0VqzYdVBEc+km9gkbP7Ku LYfYfJDAUW20HcvQLfoNOJjVoayPv0kJvVIKXj0mnMylvH43rNc72MfxaSF/QAsiwQrg z9Hw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709055905; x=1709660705; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=dd0LShQdAHWLz73+ZA3ghAVKQlpLUWQp+z7diB9Gl2U=; b=GnD7DNVYtxMU8WwN/0qv6Y9RE9ux+WZelcts5oIYohTTGxLdu9k7Z37owbF0mltTwF 4DKRT4Qg4yaFkCtX22knoa8oFGkDFUEDm21LLIs2gQ1QYfk7anC7qV/HUTt9MQRxqrUN MVAsyN6QUwyklLEcbOCbcAUHHlpUGcSVYaRI+QRXG5jUODoybXmyoomQqGFqtRNjHyIQ k6I1a6xkb5C0YamxiLAej7HiEdJKJhFJ6lXrPc2CFnqqKYUMKu3Ejkodp42KFuM6G5Lo itSOt8RjgBApRyDK0myvgyiAaJ3df48Ub3wTI+mTgxWeLT+u4KuF0OWEHrHTV79Oe9yF tdkA== X-Gm-Message-State: AOJu0Yxar5U2DA9TZpGbJ/EeNmveamddulKJpo4DWzrYSGjMO/vYflW1 uW879HTBCI3Z/tVQMW5dfUpQB36NPiKUmQstfhklqM7hIhmPmHicWJkDtYIagOGubGxzxO/1KJk PkhQJMhSexsuhQNdDlLMyg7Mf4Qwuc0BLJpo= X-Google-Smtp-Source: AGHT+IHO8cRqKlhK/zxcrjqqmEenGLXeuVril4FhIIvE+taqBGOPcV1cWZvZrADkG9xigIYtlFOrf9JCQ9N6D6+79YQ= X-Received: by 2002:a05:6512:39d4:b0:512:f657:122d with SMTP id k20-20020a05651239d400b00512f657122dmr6719226lfu.12.1709055904565; Tue, 27 Feb 2024 09:45:04 -0800 (PST) MIME-Version: 1.0 From: Uros Bizjak Date: Tue, 27 Feb 2024 18:44:53 +0100 Message-ID: Subject: [committed] i386: psrlq is not used for PERM [PR113871] To: "gcc-patches@gcc.gnu.org" X-Spam-Status: No, score=-7.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_SHORT, 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+patchwork=sourceware.org@gcc.gnu.org Also handle V2BF mode. PR target/113871 gcc/ChangeLog: * config/i386/mmx.md (V248FI): Add V2BF mode. (V24FI_32): Ditto. gcc/testsuite/ChangeLog: * gcc.target/i386/pr113871-5a.c: New test. * gcc.target/i386/pr113871-5b.c: New test. Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}. Uros. diff --git a/gcc/config/i386/mmx.md b/gcc/config/i386/mmx.md index 075309cca9f..2856ae6ffef 100644 --- a/gcc/config/i386/mmx.md +++ b/gcc/config/i386/mmx.md @@ -85,9 +85,9 @@ (define_mode_iterator V2FI [V2SF V2SI]) (define_mode_iterator V24FI [V2SF V2SI V4HF V4HI]) -(define_mode_iterator V248FI [V2SF V2SI V4HF V4HI V8QI]) +(define_mode_iterator V248FI [V2SF V2SI V4HF V4BF V4HI V8QI]) -(define_mode_iterator V24FI_32 [V2HF V2HI V4QI]) +(define_mode_iterator V24FI_32 [V2HF V2BF V2HI V4QI]) ;; Mapping from integer vector mode to mnemonic suffix (define_mode_attr mmxvecsize diff --git a/gcc/testsuite/gcc.target/i386/pr113871-5a.c b/gcc/testsuite/gcc.target/i386/pr113871-5a.c new file mode 100644 index 00000000000..25ab82a6eab --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr113871-5a.c @@ -0,0 +1,19 @@ +/* PR target/113871 */ +/* { dg-do compile { target { ! ia32 } } } */ +/* { dg-options "-O2" } */ + +typedef __bf16 vect64 __attribute__((vector_size(8))); + +void f (vect64 *a) +{ + *a = __builtin_shufflevector(*a, (vect64){0}, 1, 2, 3, 4); +} + +/* { dg-final { scan-assembler "psrlq" } } */ + +void g(vect64 *a) +{ + *a = __builtin_shufflevector((vect64){0}, *a, 3, 4, 5, 6); +} + +/* { dg-final { scan-assembler "psllq" } } */ diff --git a/gcc/testsuite/gcc.target/i386/pr113871-5b.c b/gcc/testsuite/gcc.target/i386/pr113871-5b.c new file mode 100644 index 00000000000..363a0f516cd --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr113871-5b.c @@ -0,0 +1,19 @@ +/* PR target/113871 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -msse2" } */ + +typedef __bf16 vect32 __attribute__((vector_size(4))); + +void f (vect32 *a) +{ + *a = __builtin_shufflevector(*a, (vect32){0}, 1, 2); +} + +/* { dg-final { scan-assembler "psrld" } } */ + +void g(vect32 *a) +{ + *a = __builtin_shufflevector((vect32){0}, *a, 1, 2); +} + +/* { dg-final { scan-assembler "pslld" } } */