From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from r-passerv.ralfj.de (r-passerv.ralfj.de [IPv6:2a05:bec0:1:3:10a1:5eff:fe52:509]) by sourceware.org (Postfix) with ESMTPS id BF37E385841E for ; Mon, 27 Nov 2023 12:34:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BF37E385841E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=ralfj.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=ralfj.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org BF37E385841E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a05:bec0:1:3:10a1:5eff:fe52:509 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701088483; cv=none; b=rMRsKeV/8gtpzMySLkGiANlDM2uYBr94FQbEzSK7w5NQriOYJHmCP3pgo66vwEFARQttzdg6IRjPErH1aUrCYFaeSBWvpAMV580h2SzMaKuEqJ8glZ13ey1GtIclgg0CzvKykygkPfxVbOjo+2gKXerTWegx59NFJNInB4zbF8g= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701088483; c=relaxed/simple; bh=wEnJFpqls2Wp/0dlyS3gIWjViknv9rdOwIZYh+x9Qag=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=XcaXTU3jii0HCcCrmePLd13cZRSGBQig6FNkcN2wiZoSgtFAkoLmh1BmOADQrBGXpFz9QUMveq+xqvr2PNyk+tgfsz1YuWU2WDHDQXzjet/167fK6JGzfKozVeuXIh9gfEiw6moRIT2HcibBWfBRPZDSSDisFXxMQM5zXM1H3sM= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from [129.132.31.99] (rj-screen.inf.ethz.ch [129.132.31.99]) by r-passerv.ralfj.de (Postfix) with ESMTPSA id 34E982051DBB; Mon, 27 Nov 2023 13:34:37 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=ralfj.de; s=mail; t=1701088477; bh=wEnJFpqls2Wp/0dlyS3gIWjViknv9rdOwIZYh+x9Qag=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=FxQIWEzNN5NdabEQI5Ypw7fwqxG/vkhDxJkAQrYEgc7nbKT+lkB1s2diJgllwmzdq Uj5ln3zlK3eA2AcXs4+2sSVE1eaAI/pFB0FX0wwb4dfNO/romZJooRMB8aZrk9Zp37 8Dvi/Bkkdd1XOpWfv85f4jmZk7fcL7bYzYrTWUfo= Message-ID: Date: Mon, 27 Nov 2023 13:34:36 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Support for memcpy with equal source and destination Content-Language: en-US To: Alexander Monakov Cc: Paul Eggert , Adhemerval Zanella Netto , libc-alpha References: <1e8beece-f865-4309-a28f-6782135e2a8a@linaro.org> <9e6eb1ab-9a9d-4b69-ae49-4805ee7cdce8@cs.ucla.edu> <69271612-79a5-43c6-9fc7-fb2461c5d39f@ralfj.de> <089bc099-39ab-1a30-eea2-ebb74e489a8d@ispras.ru> From: Ralf Jung Autocrypt: addr=post@ralfj.de; keydata= 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 In-Reply-To: <089bc099-39ab-1a30-eea2-ebb74e489a8d@ispras.ru> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,JMQ_SPF_NEUTRAL,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no 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 all, >> This probably needs benchmark to determine on which side the branch is less >> expensive overall? Or a dedicated memcpy variant that allows src==dest, as has >> been brought up elsewhere. > > Please note that GCC does not use memcpy for "sufficiently small" structure > copies at -O2, as it's faster to emit the necessary loads+stores inline. > > The threshold for "sufficiently small" varies with target and compiler version; > for instance, it is "above 64 bytes" for 32-bit arm and "above 8192 bytes" for > x86_64 with current trunk (it also depends on default -march/-mtune, etc.). Wow, 8 kilobytes?!? > So on x86 at least adding such a branch in memcpy is not a practical choice. Sorry, how does that follow from GCC not using memcpy for small copies? Kind regards, Ralf > > Alexander