From patchwork Thu Sep 15 03:36:19 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Li, Pan2 via Gcc-patches" X-Patchwork-Id: 1227 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5044:0:0:0:0:0 with SMTP id h4csp94107wrt; Wed, 14 Sep 2022 20:37:16 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5c2Ik4g6S1FiQYkLwxRjpih0bWdIWkb8mllM78GZ35opDU238rb/1rXMHpGwQc+OlTQ0P8 X-Received: by 2002:a17:907:9495:b0:780:6ace:7a97 with SMTP id dm21-20020a170907949500b007806ace7a97mr72693ejc.123.1663213036765; Wed, 14 Sep 2022 20:37:16 -0700 (PDT) Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id y24-20020a056402171800b00452b762b5dasi3280959edu.571.2022.09.14.20.37.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Sep 2022 20:37:16 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b="Sp4HyE+/"; arc=fail (signature failed); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 28DD7384D154 for ; Thu, 15 Sep 2022 03:37:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 28DD7384D154 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1663213034; bh=44kweO2QiuC7FY1vus2WlbV495nRRPNpt6lgpvUtgZ0=; h=To:Subject:Date:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=Sp4HyE+/tmMkM3FgFkjACYP1XPHci/pUeGkuIGfRR/KM40Vee2QO7khUhEhtojt24 iwlxApCwHW+BIVno6ik4fx+8Jlq0MzgbzfJJkipKbFP284hmC3Q/Q/F58EWHpD2nu8 Cq/hTl1CJZ7qvKYbWoLeuZwlOA+hqY6eEkYDRdbY= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by sourceware.org (Postfix) with ESMTPS id B38EC385802A for ; Thu, 15 Sep 2022 03:36:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B38EC385802A X-IronPort-AV: E=McAfee;i="6500,9779,10470"; a="278987202" X-IronPort-AV: E=Sophos;i="5.93,316,1654585200"; d="scan'208";a="278987202" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Sep 2022 20:36:27 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,316,1654585200"; d="scan'208";a="685557610" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga004.fm.intel.com with ESMTP; 14 Sep 2022 20:36:27 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 14 Sep 2022 20:36:27 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Wed, 14 Sep 2022 20:36:27 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.46) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Wed, 14 Sep 2022 20:36:26 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IbD6j2Ls1ib4ZtVVJj58k+TORpzX61rrHW5LH+/lISz/HvnWuiXf1rVEazYWZBFaEAplGBBJ8Iw19nHeOeBCqbNa8nnjgogfrIp+4mD20dZHWbijoiPyhWjOkUpK3tUSbyKUI6rvws1TjM43JbURNBLPDavzRzxL58NnZpuCXQYHPFvWMjxw6bwa+6gY6aOb7nfLTsaSTneWLO2rKHHyCJBK3e/9ASaj19pgTMvfx5TU2XE/vkl40N1bOWnpnAkJRb7Exw/mcf3LiELdAmf4ak6ctLgEVZJJlNH9tuPRbLbhtXbvCejSxugCaQ8jryRTKTGCo6nMCG053LSHjEqPQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=44kweO2QiuC7FY1vus2WlbV495nRRPNpt6lgpvUtgZ0=; b=USTOjR/PsV+VeZCOgkXZxvys1ED/eOuXEoXf2SK+iEUn1NH+zOBUI3sAa3Pl3L0pnjWR9lBfhksi3rFPWMiQaCcFgUSLBXGWoZuKdcb5pUWHP1LkaM00xyTOPrNuOqWGxAaCxzytm7GPJxJpAnOLmYd+Qu21uPboA+u15knjuZhQdIzcOwkqspH6CddJBCa0epZHP7LKNMTH+QKZ8Jfv52wkpy0m9StAel45pEIUzw3ySnM+bkrbajq60Txdy/XoxSk+C4ZYg2iy6H5zOuZjPq9aG257+B9HHc3DGdNN1twbWkpC1FPabEaXqiva69eHIk5YrQZr0tl5Dpt2mO8PWA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM4PR11MB5487.namprd11.prod.outlook.com (2603:10b6:5:39f::22) by MN0PR11MB6279.namprd11.prod.outlook.com (2603:10b6:208:3c1::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5612.22; Thu, 15 Sep 2022 03:36:20 +0000 Received: from DM4PR11MB5487.namprd11.prod.outlook.com ([fe80::1cf5:eb50:5eb:a1c3]) by DM4PR11MB5487.namprd11.prod.outlook.com ([fe80::1cf5:eb50:5eb:a1c3%9]) with mapi id 15.20.5612.022; Thu, 15 Sep 2022 03:36:20 +0000 To: "gcc-patches@gcc.gnu.org" , "Liu, Hongtao" Subject: [PATCH] i386: Fixed vec_init_dup_v16bf [PR106887] Thread-Topic: [PATCH] i386: Fixed vec_init_dup_v16bf [PR106887] Thread-Index: AQHYyLOVa+NTwGXhmEahS6IvczocCa3f1dcQ Date: Thu, 15 Sep 2022 03:36:19 +0000 Message-ID: References: <20220915033043.3484071-1-lingling.kong@intel.com> In-Reply-To: <20220915033043.3484071-1-lingling.kong@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.6.500.17 dlp-reaction: no-action x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM4PR11MB5487:EE_|MN0PR11MB6279:EE_ x-ms-office365-filtering-correlation-id: 1197aede-d4fb-42a9-3a70-08da96cb7458 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: hBDG9047rMbdG+i6gHchrVH3OlxJLoJDmajszRdjCZnYH1YimlZbqb0EnuDIt7UAXEZOjtOrFBpuP0iGNXbOrW0zY4TcZZdeBGmUG7vsH8pQuUksUZcdhzAmA91+RgoRe4Ypw7Q80Z7RMkoKLHEi6MtDoQxu0jlzpp8zudxHTesz7Tjc7+TJioVOxQ4/ha/qN7K1B9MxxO5p+GgmVHDKAOizMRiIIxTOFqAL/j8OBFZ/cr1IA/yTxKCtjO7+ruzUz6q817IFSUWw22fP5W9fhJJQxRIRdjoW8k5+I9VeckCENxI0WjuXOC9yt3cTQRBk8W/XdbCQSZPqQwtdrKTIbAucPBzhznZUBG7gxZIp1ktCuQCj9OEydlGXGPsgW7D7TbSdnkmRDPQ4LltqEW9bgeyyYQEd9Zo9GNvqkmnWaKj9Vky/OzGvFtRbe2feS8nium3Ro32um9URi1e0VmNHCp/FUHzzjpG20lVIigtrdgzyVkc3AjvZjGbPyiuOUuNErK1rJ8yh2v07AToLsx1KmL+o2hePE72XARmtqRlVhtFS3v2NtQ2F6iTfpbdCzv2vTmJUFyiOQhRpWg6eR9UpCATA9XGrUT04OQzdF+/eLXENg0vbP2kHOMwNcU9G2zgHkadwd0bSN3OJeGUajf51Cpk9Nm4TDdhX3q8q8UvQfnIHX896Wp0qypPrV/J7xDO6ed9sk/w5WHfguV04CNnr/Ct051MsRW4CGSmI0mN7ASkHeV/D/i3+BKXB9sc5KecHI5RtR7RJYe1+lpNIg1IBmfvkafupB8UH8mPCGPOnUWU= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB5487.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(39860400002)(366004)(346002)(396003)(136003)(376002)(451199015)(38070700005)(6506007)(9686003)(84970400001)(33656002)(66476007)(66556008)(122000001)(2906002)(41300700001)(52536014)(82960400001)(38100700002)(478600001)(26005)(7696005)(64756008)(55016003)(86362001)(66446008)(76116006)(66946007)(71200400001)(8936002)(8676002)(5660300002)(6636002)(110136005)(186003)(316002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: taY5iI7/TsYMRAnq/KPQ5fnjvUxXY4wuvGhVmZC6HoSIp4BKAzA2Ok/O3wWqk19dHNKmJuYwLsNupdiv3Y7G0aq1jWGZpYvZljM0769U6hD12bbL1dPTkiGDarbonDZDMggD0hHdJcB6rNJ4z5WDa8TxUvOz38jh2Y0Gs9y4K92f5TttHCJ/69DGEpHd8vOD4m9O5Zjh52VnnqukMZTGGWlb3+vR7c5NGlrYudQ8/3uvfjYsYpoDSrBUd8Ipr+jj5OCL/Y7zpZD6LMMq3jQNRzkF5bvSTY7fgt4uZ0W4+/mE9wujb1+QBz9ooU+dSrSyNdHaNwmURxTV673niUtcx/N4tgwrEp6ybUIbhobEti/aCw0fjnE6tKcWRF6gboBhE8Nw0Buw1R8VUnVwHQA785rsUqnd3CPATZq5SZzSeEPD7/9UwTks9zynF1UhU6Aq4h3yv2yygTh2PGB3Zko6M9eaW1GxRI9C2gXBuB9GJGhTouac8XJPOAJ5F9ArE1XDPVG078E1jU3E6yDJsNccE+ecYdLis6D0dAM1ae4wsFdlOI+q9CEdtZaO86VCMpLeeRKYfPDGyIykKkXGF9w3/c0Vnap/7tblL5b78JKS5lcde5wINQLD/ginT0xqtmQQfPBUqjou+ewGqG6VVswj6j+w7F1E02EviKkwOwx9Ma7OT3jEtY5FKxJc9oENkpTFU0qH8Q/zBr2KYvtmSiPf3p6OjYiK2yczOGIBC5AdURE9AFpOGq+FhSm16j+cFzuf7OWgTBc+OxVsNFqdtw0+FcEsFZiBQT0PPVeK732oW5JX4hBu3DuZEM+5QpXglkD04eIPbiyslUHz2Y6XylrSJL/B4WfKcvB2yAOwIuA41b7oxkWQruJblDP5X3+5l2KyMuQ/LmbeHb0L+eoe/+uc65YMzN/09RZroJzZKIEwEJbR8ZEHbS7eHa2IVzr1iu8awVdP5Gg1b1fPlbjn4czL+NBoIUrHgsjE1JFWPPYNxp8fcLPOcmQ5GJcgt7mLUawxZxEc/s9HgdIrhNp5/jC5dMJlY4gBrx9yFtvu0X8lE+ApuOs32HTLCtvF4qbnWv5IByKcuWeQ02J1cLYt3Q7+18vAic4VXaVmQFeJZeYu7hr/CS9DdzFsgueVPYYsdtSk+XTgq28b9pbnDwESaDSTuuQOx4JNtNNA1YSAFfiR1Z5dw7dOw8XJ2HgNa0ny+HGlBigrjxTlbFtqwe9hBKVtwj+XDNusswVOHO4S7wio5nBGo5GOZBexOz5H9KegRpd6ZxQG+8fIpVFIAZY0D5g/4QmVRDB0n5lIkWGIq2at9YHR4CAozoMBRbuY5JVcSa46RaS6m4pIbLdKlTZKB2QSH0ep6KgTGqOjr6BlMHzQ6/gphjGXHfTEGBZ1I6iPmfyBh6B7WHykxHF213WKBs3Iw9W52J1B5BrmOPF8oNgoQLdnL1TBpvDHy9AD5hbdEkhBwwRLKPyNNTroDk+nt3zKufDer6JcP2I1AGyehy7vVVUZgnK3AQXdlfjWLyekhGCJ17uDan5u6eQRJJJDPOXGOLImFX4MdGJhCFJ1LOUu3NUe1wSbicrrD8PBdF6UbdP4 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5487.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1197aede-d4fb-42a9-3a70-08da96cb7458 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Sep 2022 03:36:20.0344 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: TCOsxA+O88b4VQBN45AzeBLsXn6i743nYWV9/c9TCQTnsmHBqA/lRqya752iTF2vJm5sURZ+hLybQJvi+stWpw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR11MB6279 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-13.8 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, SPF_HELO_NONE, SPF_NONE, 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.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: "Kong, Lingling via Gcc-patches" From: "Li, Pan2 via Gcc-patches" Reply-To: "Kong, Lingling" Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1744005273050799686?= X-GMAIL-MSGID: =?utf-8?q?1744005273050799686?= Hi The patch is to fix vec_init_dup_v16bf, add correct handle for v16bf mode in ix86_expand_vector_init_duplicate. Add testcase with sse2 without avx2. OK for master? gcc/ChangeLog: PR target/106887 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate): Fixed V16BF mode case. gcc/testsuite/ChangeLog: PR target/106887 * gcc.target/i386/vect-bfloat16-2c.c: New test. --- gcc/config/i386/i386-expand.cc | 1 + .../gcc.target/i386/vect-bfloat16-2c.c | 76 +++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 gcc/testsuite/gcc.target/i386/vect-bfloat16-2c.c diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc index d7b49c99dc8..9451c561489 100644 --- a/gcc/config/i386/i386-expand.cc +++ b/gcc/config/i386/i386-expand.cc @@ -15111,6 +15111,7 @@ ix86_expand_vector_init_duplicate (bool mmx_ok, machine_mode mode, { machine_mode hvmode = (mode == V16HImode ? V8HImode : mode == V16HFmode ? V8HFmode + : mode == V16BFmode ? V8BFmode : V16QImode); rtx x = gen_reg_rtx (hvmode); diff --git a/gcc/testsuite/gcc.target/i386/vect-bfloat16-2c.c b/gcc/testsuite/gcc.target/i386/vect-bfloat16-2c.c new file mode 100644 index 00000000000..bead94e46a1 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/vect-bfloat16-2c.c @@ -0,0 +1,76 @@ +/* { dg-do compile } */ +/* { dg-options "-mf16c -msse2 -mno-avx2 -O2" } */ + +typedef __bf16 v8bf __attribute__ ((__vector_size__ (16))); typedef +__bf16 v16bf __attribute__ ((__vector_size__ (32))); + +#define VEC_EXTRACT(V,S,IDX) \ + S \ + __attribute__((noipa)) \ + vec_extract_##V##_##IDX (V v) \ + { \ + return v[IDX]; \ + } + +#define VEC_SET(V,S,IDX) \ + V \ + __attribute__((noipa)) \ + vec_set_##V##_##IDX (V v, S s) \ + { \ + v[IDX] = s; \ + return v; \ + } + +v8bf +vec_init_v8bf (__bf16 a1, __bf16 a2, __bf16 a3, __bf16 a4, + __bf16 a5, __bf16 a6, __bf16 a7, __bf16 a8) { + return __extension__ (v8bf) {a1, a2, a3, a4, a5, a6, a7, a8}; } + +v16bf +vec_init_v16bf (__bf16 a1, __bf16 a2, __bf16 a3, __bf16 a4, + __bf16 a5, __bf16 a6, __bf16 a7, __bf16 a8, + __bf16 a9, __bf16 a10, __bf16 a11, __bf16 a12, + __bf16 a13, __bf16 a14, __bf16 a15, __bf16 a16) { + return __extension__ (v16bf) {a1, a2, a3, a4, a5, a6, a7, a8, + a9, a10, a11, a12, a13, a14, a15, a16}; } + +v8bf +vec_init_dup_v8bf (__bf16 a1) +{ + return __extension__ (v8bf) {a1, a1, a1, a1, a1, a1, a1, a1}; } + +v16bf +vec_init_dup_v16bf (__bf16 a1) +{ + return __extension__ (v16bf) {a1, a1, a1, a1, a1, a1, a1, a1, + a1, a1, a1, a1, a1, a1, a1, a1}; +} + +/* { dg-final { scan-assembler-times "vpunpcklwd" 12 } } */ +/* { dg-final { scan-assembler-times "vpunpckldq" 6 } } */ +/* { dg-final { scan-assembler-times "vpunpcklqdq" 3 } } */ + +VEC_EXTRACT (v8bf, __bf16, 0); +VEC_EXTRACT (v8bf, __bf16, 4); +VEC_EXTRACT (v16bf, __bf16, 0); +VEC_EXTRACT (v16bf, __bf16, 3); +VEC_EXTRACT (v16bf, __bf16, 8); +VEC_EXTRACT (v16bf, __bf16, 15); +/* { dg-final { scan-assembler-times "vpsrldq\[\t ]*\\\$8" 1 } } */ +/* { dg-final { scan-assembler-times "vpsrldq\[\t ]*\\\$6" 1 } } */ +/* { dg-final { scan-assembler-times "vpsrldq\[\t ]*\\\$14" 1 } } */ +/* { dg-final { scan-assembler-times "vextract" 4 } } */ + +VEC_SET (v8bf, __bf16, 4); +VEC_SET (v16bf, __bf16, 3); +VEC_SET (v16bf, __bf16, 8); +VEC_SET (v16bf, __bf16, 15); +/* { dg-final { scan-assembler-times "vpblendw" 3 { target { ! ia32 } } +} } */ + +/* { dg-final { scan-assembler-times "vpinsrw" 30 { target ia32 } } } +*/ + -- 2.18.2