On Mon, Oct 30, 2023 at 11:21:43AM -0500, Nathan Bossart wrote: > On Fri, Oct 27, 2023 at 07:01:10AM +0000, Xiang Gao wrote: >> On Thu, 26 Oct, 2023 11:37:52AM -0500, Nathan Bossart wrote: >>>> We consider that a runtime check needs to be done in any scenario. >>>> Here we only confirm that the compilation can be successful. >>> >A runtime check will be done when choosing which algorithm. >>> >You can think of us as merging USE_ARMV8_VMULL and >>> >USE_ARMV8_VMULL_WITH_RUNTIME_CHECK into USE_ARMV8_VMULL. >> >>>Oh. Looking again, I see that we are using a runtime check for ARM in all >>>cases with this patch. If so, maybe we should just remove >>>USE_ARV8_CRC32C_WITH_RUNTIME_CHECK in a prerequisite patch (and have >>>USE_ARMV8_CRC32C always do the runtime check). I suspect there are other >>>opportunities to simplify things, too. >> >> Yes, I have been removed USE_ARMV8_CRC32C_WITH_RUNTIME_CHECK in this patch. > > Thanks. I went ahead and split this prerequisite part out to a separate > thread [0] since it's sort-of unrelated to your proposal here. It's not > really a prerequisite, but I do think it will simplify things a bit.
Per the other thread [0], we should try to avoid the runtime check when possible, as it seems to produce a small regression. This means that if the ARMv8 CRC instructions are found with the default compiler flags, we can only use vmull_p64() if it can also be used with the default flags. Otherwise, we can just do the runtime check. [0] https://postgr.es/m/2620794.1698783160%40sss.pgh.pa.us -- Nathan Bossart Amazon Web Services: https://aws.amazon.com