From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1663212988; x=1694748988; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=G2BzAqwnQWMYF+UcpHl/gs0/lqXgFYPOwUJL26KlHks=; b=EgjhHTl0Fe6cpSJX8xI2/HZ3VmonpOjYxXuxTUdVS253U0D4yEGenC53 odJoOL95oKQRd7sAlkTB8XifWJgKsEGh0ihaRcMdgnUlWob52npvem8VC VgODSYOIHxE4enicmGeDXh4IhRdLm7TlehAmo0QIsFYq7L5qmcsp1C1Ij kEL135z1KanCJ6oaHUaZOgnuTJOCGFmMByypoGv55guu+9pVsPhknBO+n icYa4KC5OLBkTJwr6lCctKYr0uV7i5Lf+bl3cNlltmHa2PrBFpFEQ57c9 ZWJIZ72sAgNCiiaP/M/G1jbbKc84M5tEsdTjSsfMLDG9QJBJktTklfTtu w==; 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 From: "Kong, Lingling" 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 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; 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: =?us-ascii?Q?taY5iI7/TsYMRAnq/KPQ5fnjvUxXY4wuvGhVmZC6HoSIp4BKAzA2Ok/O3wWq?= =?us-ascii?Q?k19dHNKmJuYwLsNupdiv3Y7G0aq1jWGZpYvZljM0769U6hD12bbL1dPTkiGD?= =?us-ascii?Q?arbonDZDMggD0hHdJcB6rNJ4z5WDa8TxUvOz38jh2Y0Gs9y4K92f5TttHCJ/?= =?us-ascii?Q?69DGEpHd8vOD4m9O5Zjh52VnnqukMZTGGWlb3+vR7c5NGlrYudQ8/3uvfjYs?= =?us-ascii?Q?YpoDSrBUd8Ipr+jj5OCL/Y7zpZD6LMMq3jQNRzkF5bvSTY7fgt4uZ0W4+/mE?= =?us-ascii?Q?9wujb1+QBz9ooU+dSrSyNdHaNwmURxTV673niUtcx/N4tgwrEp6ybUIbhobE?= =?us-ascii?Q?ti/aCw0fjnE6tKcWRF6gboBhE8Nw0Buw1R8VUnVwHQA785rsUqnd3CPATZq5?= =?us-ascii?Q?SZzSeEPD7/9UwTks9zynF1UhU6Aq4h3yv2yygTh2PGB3Zko6M9eaW1GxRI9C?= =?us-ascii?Q?2gXBuB9GJGhTouac8XJPOAJ5F9ArE1XDPVG078E1jU3E6yDJsNccE+ecYdLi?= =?us-ascii?Q?s6D0dAM1ae4wsFdlOI+q9CEdtZaO86VCMpLeeRKYfPDGyIykKkXGF9w3/c0V?= =?us-ascii?Q?nap/7tblL5b78JKS5lcde5wINQLD/ginT0xqtmQQfPBUqjou+ewGqG6VVswj?= =?us-ascii?Q?6j+w7F1E02EviKkwOwx9Ma7OT3jEtY5FKxJc9oENkpTFU0qH8Q/zBr2KYvtm?= =?us-ascii?Q?SiPf3p6OjYiK2yczOGIBC5AdURE9AFpOGq+FhSm16j+cFzuf7OWgTBc+OxVs?= =?us-ascii?Q?NFqdtw0+FcEsFZiBQT0PPVeK732oW5JX4hBu3DuZEM+5QpXglkD04eIPbiys?= =?us-ascii?Q?lUHz2Y6XylrSJL/B4WfKcvB2yAOwIuA41b7oxkWQruJblDP5X3+5l2KyMuQ/?= =?us-ascii?Q?LmbeHb0L+eoe/+uc65YMzN/09RZroJzZKIEwEJbR8ZEHbS7eHa2IVzr1iu8a?= =?us-ascii?Q?wVdP5Gg1b1fPlbjn4czL+NBoIUrHgsjE1JFWPPYNxp8fcLPOcmQ5GJcgt7mL?= =?us-ascii?Q?UawxZxEc/s9HgdIrhNp5/jC5dMJlY4gBrx9yFtvu0X8lE+ApuOs32HTLCtvF?= =?us-ascii?Q?4qbnWv5IByKcuWeQ02J1cLYt3Q7+18vAic4VXaVmQFeJZeYu7hr/CS9DdzFs?= =?us-ascii?Q?gueVPYYsdtSk+XTgq28b9pbnDwESaDSTuuQOx4JNtNNA1YSAFfiR1Z5dw7dO?= =?us-ascii?Q?w8XJ2HgNa0ny+HGlBigrjxTlbFtqwe9hBKVtwj+XDNusswVOHO4S7wio5nBG?= =?us-ascii?Q?o5GOZBexOz5H9KegRpd6ZxQG+8fIpVFIAZY0D5g/4QmVRDB0n5lIkWGIq2at?= =?us-ascii?Q?9YHR4CAozoMBRbuY5JVcSa46RaS6m4pIbLdKlTZKB2QSH0ep6KgTGqOjr6Bl?= =?us-ascii?Q?MHzQ6/gphjGXHfTEGBZ1I6iPmfyBh6B7WHykxHF213WKBs3Iw9W52J1B5Brm?= =?us-ascii?Q?OPF8oNgoQLdnL1TBpvDHy9AD5hbdEkhBwwRLKPyNNTroDk+nt3zKufDer6Jc?= =?us-ascii?Q?P2I1AGyehy7vVVUZgnK3AQXdlfjWLyekhGCJ17uDan5u6eQRJJJDPOXGOLIm?= =?us-ascii?Q?FX4MdGJhCFJ1LOUu3NUe1wSbicrrD8PBdF6UbdP4?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable 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 List-Id: Hi The patch is to fix vec_init_dup_v16bf, add correct handle for v16bf mode i= n ix86_expand_vector_init_duplicate. Add testcase with sse2 without avx2. OK for master?=20 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.c= c 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, mac= hine_mode mode, { machine_mode hvmode =3D (mode =3D=3D V16HImode ? V8HImode : mode =3D=3D V16HFmode ? V8HFmode + : mode =3D=3D V16BFmode ? V8BFmode : V16QImode); rtx x =3D gen_reg_rtx (hvmode); =20 diff --git a/gcc/testsuite/gcc.target/i386/vect-bfloat16-2c.c b/gcc/testsui= te/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=20 +__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] =3D 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 } }=20 +} } */ + +/* { dg-final { scan-assembler-times "vpinsrw" 30 { target ia32 } } }=20 +*/ + -- 2.18.2