|
Message-ID: <78a7c979-19a0-b9bb-95d1-3da2f75322f0@ispras.ru> Date: Thu, 29 Aug 2024 18:09:16 +0300 (MSK) From: Alexander Monakov <amonakov@...ras.ru> To: Alex Rønne Petersen <alex@...xrp.com> cc: musl@...ts.openwall.com Subject: Re: [PATCH] configure: prevent compilers from turning a * b + c into fma(a, b, c) On Thu, 29 Aug 2024, Alex Rønne Petersen wrote: > That aside, while the motivating issue doesn't (easily) reproduce with > vanilla Clang, it's nonetheless still the case that Clang folds > multiple expressions in `fma()` into `llvm.fmuladd.*` intrinsic calls. > While this might work out in some cases, we've still basically lost at > the LLVM IR level; we're at the mercy of the target backend in regards > to whether it gets lowered to an actual FMA instruction or split back > to the ~original FMUL + FADD. And this isn't even considering what > other nonsense the optimizer pipeline might get up to before that. Thank you for uncovering what was happening in LLVM! I agree there's a backend bug, but the point is moot since disabling FMA contraction globally is the way to go, as discussed in the longer sub-thread. Alexander
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.