From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id DD1DAA0032;
	Tue, 16 Nov 2021 15:19:01 +0100 (CET)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id BB08E41184;
	Tue, 16 Nov 2021 15:19:01 +0100 (CET)
Received: from mga03.intel.com (mga03.intel.com [134.134.136.65])
 by mails.dpdk.org (Postfix) with ESMTP id 3A2DD4117D
 for <dev@dpdk.org>; Tue, 16 Nov 2021 15:18:59 +0100 (CET)
X-IronPort-AV: E=McAfee;i="6200,9189,10169"; a="233639369"
X-IronPort-AV: E=Sophos;i="5.87,239,1631602800"; d="scan'208";a="233639369"
Received: from orsmga005.jf.intel.com ([10.7.209.41])
 by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 16 Nov 2021 06:18:58 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.87,239,1631602800"; d="scan'208";a="671973442"
Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16])
 by orsmga005.jf.intel.com with ESMTP; 16 Nov 2021 06:18:58 -0800
Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by
 ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Tue, 16 Nov 2021 06:18:57 -0800
Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by
 orsmsx608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12 via Frontend Transport; Tue, 16 Nov 2021 06:18:57 -0800
Received: from NAM02-BN1-obe.outbound.protection.outlook.com (104.47.51.40) by
 edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2242.12; Tue, 16 Nov 2021 06:18:57 -0800
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=MGUrHnd1DXcArXso4sGmEXuwSlKpXpmRBEfdk+P875eXY6Es7C1LvGrG1WoFEsgAfUvZ+tAbtPpi2SwyMJFScp2p4UVBSg80hdhsh2DtUlaR9K2QJQYxxe85xfwYj5vJ3r1JMArx4e9luw1pleoE9ec2MgmmDaoDXOZGARs5rEMlGS2YGiF0/cxKXoIdYC1u3IIoRA/VoZrGLMqLjRmq7jV175d1xkZHb6KFpLY5tYzxDGiYiqgguDpWSadPf+Q4DwZOSLRnFNYL0wL35WhPVuRaUPTq5z9h81LJXnnxHPsu2NidqYJgwct+ztYjiOrtWC9HV/9W9onVjzRf6zDdlw==
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=/Rjfd/LyZ3MUQvQ0thRAl9Iqgk36X46e0vPK5i8uwbQ=;
 b=kHTcg3ptFe2GUfTBs6nAwF6FGfLNcqn81KrEKqPzjWZDS6cgdjd05+3EyHvgbIQF7uApEu+fGKokv/06gCrfwCWEZif2wWiy/okoBGxmX1ANT2Dtj3PdGWvGbVYCOl8ExnihobBkV3UwHAiwF6c5xh4wGIhb7Sfm8Pl1xB8+jdqqZPf+FV7sWcfit7qHf235BXQ6vq9ZrwWjGP0QJckvdelsviYW4Mi0xGxd/jlhAWuwXiLSazO9Ia9WbObd/arVoZUnZiDj8lx5wVHCp+O1tAOQ37sg4/6SWnxSCH6BDV1Cy9We9efK5YYoOgPRujE9oH74SAy4XCzhu2rIVvAIKQ==
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
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; 
 s=selector2-intel-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/Rjfd/LyZ3MUQvQ0thRAl9Iqgk36X46e0vPK5i8uwbQ=;
 b=U1rlt/I+TUqRzk2fNjSFtJPTrdAImB1VpZgg3XITDggkZ6oNry/X7f7JFhfGkgp+bz3QHlyxSDgnLqKxuyaitRh53/9hsb3a+fyR6fbW5AW/1fjpCFPe5WBJhxITrDOmkLF+drSLcYqOIaQwdO8iHMsGgeiVf8GUOn/MwS1kQKQ=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
Received: from PH0PR11MB5013.namprd11.prod.outlook.com (2603:10b6:510:30::21)
 by PH0PR11MB4887.namprd11.prod.outlook.com (2603:10b6:510:30::18)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov
 2021 14:18:55 +0000
Received: from PH0PR11MB5013.namprd11.prod.outlook.com
 ([fe80::4c6a:b2b:c561:4c85]) by PH0PR11MB5013.namprd11.prod.outlook.com
 ([fe80::4c6a:b2b:c561:4c85%9]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021
 14:18:55 +0000
Message-ID: <b232a4df-b717-be8b-cfbd-6b7a40355d71@intel.com>
Date: Tue, 16 Nov 2021 15:18:49 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
 Firefox/91.0 Thunderbird/91.3.0
Subject: Re: [PATCH v2] hash: fix thash gfni implementation
Content-Language: en-US
To: David Marchand <david.marchand@redhat.com>
CC: dev <dev@dpdk.org>, Thomas Monjalon <thomas@monjalon.net>, "Ananyev,
 Konstantin" <konstantin.ananyev@intel.com>, Lance Richardson
 <lance.richardson@broadcom.com>, <Ji@dpdk.org>, Kai <kai.ji@intel.com>,
 Yipeng Wang <yipeng1.wang@intel.com>, Sameh Gobriel
 <sameh.gobriel@intel.com>, Bruce Richardson <bruce.richardson@intel.com>
References: <20211109172456.147140-1-vladimir.medvedkin@intel.com>
 <20211112141719.232932-1-vladimir.medvedkin@intel.com>
 <CAJFAV8zeV8pynG8XevRNCFVn5jqTro-zO7mV4gc5r_VNDBgAFQ@mail.gmail.com>
From: "Medvedkin, Vladimir" <vladimir.medvedkin@intel.com>
In-Reply-To: <CAJFAV8zeV8pynG8XevRNCFVn5jqTro-zO7mV4gc5r_VNDBgAFQ@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: DB6PR0601CA0029.eurprd06.prod.outlook.com
 (2603:10a6:4:17::15) To PH0PR11MB5013.namprd11.prod.outlook.com
 (2603:10b6:510:30::21)
MIME-Version: 1.0
Received: from [192.198.151.51] (192.198.151.51) by
 DB6PR0601CA0029.eurprd06.prod.outlook.com (2603:10a6:4:17::15) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.4713.19 via Frontend Transport; Tue, 16 Nov 2021 14:18:53 +0000
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 1e4d60ed-0f65-4891-03f2-08d9a90c05fe
X-MS-TrafficTypeDiagnostic: PH0PR11MB4887:
X-LD-Processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr
X-Microsoft-Antispam-PRVS: <PH0PR11MB4887AD09ABDF1B1635D40F2D96999@PH0PR11MB4887.namprd11.prod.outlook.com>
X-MS-Oob-TLC-OOBClassifiers: OLM:9508;
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: xUZjld8wUfec3sWXaYlwfyaEhd2SsDAq0q7U4GxK/xdGRmCFIbpAXIPCNs6ZWInwUWsbJOOtfawiIaUt3zNPNXljCTh1wOTrZvuVb4iGwQuMH6XXk1d+EO3LC/Mkp372COPHYz08Qn6D3OtW9zZd9yxED8MVvQcYpPtvp9AKYssh2+BmZp7RxmX9u/qBNQN5WtozfveYzoFG4mdkLtxZWT7DWf8u9NRhmCiyENqBJvc+M5PA0Y3zG/eWhN2dPmBIhk+lK4pb3vgLPWE2eY3CARMtmgI9aDWIwCRpWn4zSAVDKRS/yBrfm1gPWbb1Izsut5jr7qEhAsECXl+g2Q8LUh3o5FQvaetx4G4P49IlsSVN9qZbvMhcJpOPcqc4+6pQXqeZlW39CVT0ozXK3oK3nL5w2cWJKLxZlKZs6s/Hv65hOohLKrrX2Rv9Q4kDT9o97ortC65HGK/mK2CyGnIvLklYxkszO5FOWq4NsSs16HzmFbP1bG07HxvcLhUAT6VyAOWNwvdABfa8XoxGnBu0l+1RC1IZC3f/AiGhPo7QA7bjs5920Q/IJuDY7O4pcVqOH0husGER/Nyv1ShiI+K3jDW7yBA+ceqn6koA2tuiP1jpgVLZ5L3OoE3sS3tnBD8SR4C7B66WQ/O44Ngeog/G2OF/kc3k602+9yTT85QFRbv8yim+B1UzSi3PAF8kH9/xB+qcXEEwU+6lTonrU1wXfhsyAdRm89lsaRXoMkUPgkif0K0mBKD6nGgCyS+maZgtFj4BD1mN7RYMLc4VvlUFFg==
X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:PH0PR11MB5013.namprd11.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(366004)(2616005)(508600001)(8676002)(86362001)(36756003)(54906003)(38100700002)(31696002)(4326008)(53546011)(5660300002)(16576012)(6666004)(956004)(6706004)(6916009)(8936002)(6486002)(107886003)(186003)(82960400001)(26005)(83380400001)(316002)(2906002)(66556008)(66476007)(31686004)(66946007)(3940600001)(45980500001)(43740500002);
 DIR:OUT; SFP:1102; 
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SVVPQUxpWGlDQmNSZE0zNmhjazNDekFMOU84bDFGY25pcE50ZzgyUU1qbGo1?=
 =?utf-8?B?SmhBb0JNM3NROEZYaDFlaml2VU5VdWRWM1VNN2xmMVZKRExJNVQwc0I2eURn?=
 =?utf-8?B?bS8zSisrVEovSE92MnYzem5WbkRlKy9tL1hhVmFpTVFyL2lzaGRBanBOejRK?=
 =?utf-8?B?TlVUQmFIbE5GZWVvb3lMNkJqNlVBTFpaK2dTWnZmdnZ6cCtiSXVyQ0FYN1Rx?=
 =?utf-8?B?dmVORW5uankrZS9kYjZYWnJjTXh1TERWKzdsd2lBMXo0c1diR2Q4OHBxK04w?=
 =?utf-8?B?TTAxK2hMNDZwbmpVcjU1QWkxcG9MSUZ5T1FPU3Q4am14NHpIc1pFd2NUUTU3?=
 =?utf-8?B?NnVKNFRkTkM5VXdDekJVbjZ2Q3E2Tk10Z0srUnhVbDRrVGFaL1F3TkZ6T3Nq?=
 =?utf-8?B?YmtWWWJ1REd3TVZMQjZFTDBZU0hTSGVsaGhVZXhrOFVqc1FodXpmZW5uWXJr?=
 =?utf-8?B?N2JpbmEwc0gvMy9sOU9KM1F6cVRBUkhBR3NwaVFlMndyMyt3R1NOYWhMTVNG?=
 =?utf-8?B?RVBIcDVTa1d3Ykt5djhrVm1xSHk0UUY0d3RQeUlhckJWMCtzSDRjQmlNV3JX?=
 =?utf-8?B?VTBHVUVlankxVURIMVBCMEdrTFNMT2dsYzB2SnFQWFFuWndobTkvT2RxS0Vx?=
 =?utf-8?B?ZTZVOW1zemswZWJNUFBBdUhtelRvUnN0KzhobFVjYTVyY01TS3I0eU1ZQUlr?=
 =?utf-8?B?L2pGVzZvSHVMZ2puQk4zMEVHR1hmNkhkRzgrR1NDdWNsNTBNeS94cnRHV3BU?=
 =?utf-8?B?V0x4aFN6S2VmSkFGdGFMbzBZa0JKa2VSZklzOVdmN2p0WUo1R2xhYXk1NTh1?=
 =?utf-8?B?WGR5T0FzeVUxSzkwL3VwVzVYYTBwNzNsajFxNWwvSGFhNlNhWnM3SEx5TWZM?=
 =?utf-8?B?K05temxEZWdROG55R0VDQWpGdS91MUtEN2MwQmZyWUJxbDczNUl1T3hMSTNy?=
 =?utf-8?B?QWZMRVpGV0t2bUsxQVAwWHN3Z2ZYZG1DbjBhRVJ0Mloxc2l0MnpqMWgzNFpa?=
 =?utf-8?B?UEhwSit1TWxmOHptMEFvRk1renpMOFhPTnFtek5JaTFXbDhQa1FGd2V5dXZn?=
 =?utf-8?B?amZveWFoSnoxY2JzK2c3Tk9XajU5VGVpYTlXWmw0OC9XN0h2NUh4bTJXZm5E?=
 =?utf-8?B?V2l4Z3QwbnFCakFYSXozeWZQd0cyZndyRzB3aVc3bGtaUjY0d2pQT0hsNEJz?=
 =?utf-8?B?UkZ6WW9yaFFDdmwra1l5UEFxR3dPbmhoKy9OdXVSVjVoSUNweXpTcEZjN1Rz?=
 =?utf-8?B?V3VwUHhuQ0o3ZTY1ZjVCR1ZOM0FZWEtFakRCOTRyRm5zd0prcnZsRW9qY0lt?=
 =?utf-8?B?UkV5dkQ0QTIwS29mUXFBSVJ4WmxsUlVCN0w2citNL1NIeFRrSklsNml4aHls?=
 =?utf-8?B?YnE1dTkxWWxWOGxPdnVtQ09SZ1BpMlgvZklpdmVickgwaE5Hb1RhRk5VamFH?=
 =?utf-8?B?dkdya2cvMjUwb0JyYWFCZHRtMVJIZ2RTQ0luL1pxc1lGVWlRUndaWUg5dUkw?=
 =?utf-8?B?UU9nU3JmWEh1Ym5mYkpUSXdSWGpVRGJWK2hTTE5pckIrQ2tuN251bHI3ZE1U?=
 =?utf-8?B?c1dSVDN5WEdWTHA3RGVJcGV3OHk1WFlmWjVpb21KUERBZ1V5eUNYemN5ek50?=
 =?utf-8?B?NWIzNWk4d1Y1V2EyR25ad01IUlM2WG0wNm9KbzRpclRXZ3J1ZEd1T1NHd1I3?=
 =?utf-8?B?ZWptL2p5MVZaeDBhTHVZbU1sZXhXRkc2UjlBdFdDN3U3MW5LWmJRZ3J4MFdE?=
 =?utf-8?B?cHlSb2p6ZU1tUFhmYUplZWJUMEpTSWlRQXVCQUZEVUlBVk5Rbmk2OG1HU2Fy?=
 =?utf-8?B?bTlKOWlnMC9pTUQ4WFdhZjRZRXc1UUlMTFQ3dXlUU3h5c0I2enRKcnI2TTJN?=
 =?utf-8?B?WlRKT1ZvbXcxOHlKUFlJY2FLcWJCb3RqM1VNbWpyR3hzOXBLd215dVdWSnQ2?=
 =?utf-8?B?c0tOOGp0dzZhWUR3L0FvUHdqTDM2cy9kRjJPVWhjdWg2c2NrQitERGFpWjN3?=
 =?utf-8?B?SHI3L1F1N29zdEpCY1hMWUY1L3Y4TmVFQVFhSFFNOHRQWWxEZnl2Z2MrUlNt?=
 =?utf-8?B?Rk5ab3czalNoY296dTJRRDlhRmJMNTlKc05zNGtWT21YQzlxdWpvWWlyaWIv?=
 =?utf-8?B?REtMeTN3VXgzM1ZESmxxSEZWVzlGYWxtK21DRWVmNzNSRktmbHVTOHd0R2Z5?=
 =?utf-8?B?dmg1aThlTVBKWFVYc0hEa0ZWcHZvOXVRYWFQUXR5QUJISHYrdVZJQ1NhQlp2?=
 =?utf-8?B?UGg0dVZUV01GRkU3YnZkYlA4dm13PT0=?=
X-MS-Exchange-CrossTenant-Network-Message-Id: 1e4d60ed-0f65-4891-03f2-08d9a90c05fe
X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5013.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 14:18:55.6145 (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: jUsTtBRV51YNinnGd3byQ5B9uykhGzKDUKCieShG3pn/VhnKORyn7O039GH/wsmRBkqB22qMARIVZBBqPl3L3FCEZibF+2oT5XqZAjNlkuM=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB4887
X-OriginatorOrg: intel.com
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

Hi David,

On 16/11/2021 14:53, David Marchand wrote:
> On Fri, Nov 12, 2021 at 3:17 PM Vladimir Medvedkin
> <vladimir.medvedkin@intel.com> wrote:
>>
>> 1. This patch replaces _mm512_set_epi8 with _mm512_set_epi32
>> due to the lack of support by some compilers.
> 
> Ok, it was the initial report from Lance.
> 
>> 2. This patch checks if AVX512F is supported along with GFNI.
>> This is done if the code is built on a platform that supports GFNI,
>> but does not support AVX512.
> 
> Ok.
> 
>> 3. Also this patch fixes compilation problems on 32bit arch due to
>> lack of support for _mm_extract_epi64() by implementing XOR folding
>> with _mm_extract_epi32() on 32-bit arch.
> 
> This code is under a #if defined(__GFNI__) && defined(__AVX512F__).
> 
> Does such a 32 bits processor exist, that supports AVX512 and GFNI?
> 
> 

This breaks the 32 bit build.

>>
>> Fixes: 4fd8c4cb0de1 ("hash: add new Toeplitz hash implementation")
>> Cc: vladimir.medvedkin@intel.com
>>
>> Signed-off-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
>> Acked-by: Lance Richardson <lance.richardson@broadcom.com>
>> Acked-by: Ji, Kai <kai.ji@intel.com>
>> ---
>>   lib/hash/rte_thash_x86_gfni.h | 44 ++++++++++++++++++++---------------
>>   1 file changed, 25 insertions(+), 19 deletions(-)
>>
>> diff --git a/lib/hash/rte_thash_x86_gfni.h b/lib/hash/rte_thash_x86_gfni.h
>> index c2889c3734..987dec4988 100644
>> --- a/lib/hash/rte_thash_x86_gfni.h
>> +++ b/lib/hash/rte_thash_x86_gfni.h
>> @@ -18,7 +18,7 @@
>>   extern "C" {
>>   #endif
>>
>> -#ifdef __GFNI__
>> +#if defined(__GFNI__) && defined(__AVX512F__)
> 
> Please update #endif comments accordingly, or remove invalid/obsolete
> comment about _GFNI_.
> 

Sure, will do.

> 
>>   #define RTE_THASH_GFNI_DEFINED
>>
>>   #define RTE_THASH_FIRST_ITER_MSK       0x0f0f0f0f0f0e0c08
>> @@ -33,7 +33,6 @@ __rte_thash_xor_reduce(__m512i xor_acc, uint32_t *val_1, uint32_t *val_2)
>>   {
>>          __m256i tmp_256_1, tmp_256_2;
>>          __m128i tmp128_1, tmp128_2;
>> -       uint64_t tmp_1, tmp_2;
>>
>>          tmp_256_1 = _mm512_castsi512_si256(xor_acc);
>>          tmp_256_2 = _mm512_extracti32x8_epi32(xor_acc, 1);
>> @@ -43,12 +42,24 @@ __rte_thash_xor_reduce(__m512i xor_acc, uint32_t *val_1, uint32_t *val_2)
>>          tmp128_2 = _mm256_extracti32x4_epi32(tmp_256_1, 1);
>>          tmp128_1 = _mm_xor_si128(tmp128_1, tmp128_2);
>>
>> +#ifdef RTE_ARCH_X86_64
>> +       uint64_t tmp_1, tmp_2;
>>          tmp_1 = _mm_extract_epi64(tmp128_1, 0);
>>          tmp_2 = _mm_extract_epi64(tmp128_1, 1);
>>          tmp_1 ^= tmp_2;
>>
>>          *val_1 = (uint32_t)tmp_1;
>>          *val_2 = (uint32_t)(tmp_1 >> 32);
>> +#else
>> +       uint32_t tmp_1, tmp_2;
>> +       tmp_1 = _mm_extract_epi32(tmp128_1, 0);
>> +       tmp_2 = _mm_extract_epi32(tmp128_1, 1);
>> +       tmp_1 ^= _mm_extract_epi32(tmp128_1, 2);
>> +       tmp_2 ^= _mm_extract_epi32(tmp128_1, 3);
>> +
>> +       *val_1 = tmp_1;
>> +       *val_2 = tmp_2;
>> +#endif
>>   }
>>
>>   __rte_internal
>> @@ -56,23 +67,18 @@ static inline __m512i
>>   __rte_thash_gfni(const uint64_t *mtrx, const uint8_t *tuple,
>>          const uint8_t *secondary_tuple, int len)
>>   {
>> -       __m512i permute_idx = _mm512_set_epi8(7, 6, 5, 4, 7, 6, 5, 4,
>> -                                               6, 5, 4, 3, 6, 5, 4, 3,
>> -                                               5, 4, 3, 2, 5, 4, 3, 2,
>> -                                               4, 3, 2, 1, 4, 3, 2, 1,
>> -                                               3, 2, 1, 0, 3, 2, 1, 0,
>> -                                               2, 1, 0, -1, 2, 1, 0, -1,
>> -                                               1, 0, -1, -2, 1, 0, -1, -2,
>> -                                               0, -1, -2, -3, 0, -1, -2, -3);
>> -
>> -       const __m512i rewind_idx = _mm512_set_epi8(0, 0, 0, 0, 0, 0, 0, 0,
>> -                                               0, 0, 0, 0, 0, 0, 0, 0,
>> -                                               0, 0, 0, 0, 0, 0, 0, 0,
>> -                                               0, 0, 0, 0, 0, 0, 0, 0,
>> -                                               0, 0, 0, 0, 0, 0, 0, 0,
>> -                                               0, 0, 0, 59, 0, 0, 0, 59,
>> -                                               0, 0, 59, 58, 0, 0, 59, 58,
>> -                                               0, 59, 58, 57, 0, 59, 58, 57);
>> +       __m512i permute_idx = _mm512_set_epi32(0x7060504, 0x7060504,
> 
> Nit: it is easier to read fully expanded 32 bits values, like
> 0x07060504 instead of 0x7060504
> Etc...
> 

Will fix in v3.

> 
>> +                                               0x6050403, 0x6050403,
>> +                                               0x5040302, 0x5040302,
>> +                                               0x4030201, 0x4030201,
>> +                                               0x3020100, 0x3020100,
>> +                                               0x20100FF, 0x20100FF,
>> +                                               0x100FFFE, 0x100FFFE,
>> +                                               0xFFFEFD, 0xFFFEFD);
>> +       const __m512i rewind_idx = _mm512_set_epi32(0, 0, 0, 0, 0, 0, 0, 0,
>> +                                                       0, 0, 0x3B, 0x3B,
>> +                                                       0x3B3A, 0x3B3A,
>> +                                                       0x3B3A39, 0x3B3A39);
>>          const __mmask64 rewind_mask = RTE_THASH_REWIND_MSK;
>>          const __m512i shift_8 = _mm512_set1_epi8(8);
>>          __m512i xor_acc = _mm512_setzero_si512();
>> --
>> 2.25.1
>>
> 
> 

-- 
Regards,
Vladimir