TEMP: Test overhead of feature checking#6255
Conversation
|
Azure Pipelines: 1 pipeline(s) were filtered out due to trigger conditions. 1 pipeline(s) require an authorized user to comment /azp run to run. |
It looks like the runtime feature check @hazzlim mentioned there was a discussion about caching the result of I think we could use IsProcessorFeaturePresent to initialize |
|
I can add variables to VCRuntime, but the flag-style behavior of |
I think the flags mirroring the IsProcessorFeaturePresent flags probably makes the most sense. Strictly increasing (NEON-only, SVE, SVE2, SVE2p1) would honestly cover most of the use cases I foresee, but it's probably worth keeping the fine-grained resolution. (And less of a headache - it's often quite fiddly tricky tracking down from which architecture tick features become mandatory and which feature's presence strictly implies presence of the other etc.) |
Thanks for your kind comment, @StephanTLavavej |
Speedup (or rather slowdown), this PR versus baseline, measured on a Neoverse N2 system.
r<std::uint8_t>/3449r<std::uint8_t>/63r<std::uint8_t>/31r<std::uint8_t>/15r<std::uint8_t>/7r<std::uint16_t>/3449r<std::uint16_t>/63r<std::uint16_t>/31r<std::uint16_t>/15r<std::uint16_t>/7r<std::uint32_t>/3449r<std::uint32_t>/63r<std::uint32_t>/31r<std::uint32_t>/15r<std::uint32_t>/7r<std::uint64_t>/3449r<std::uint64_t>/63r<std::uint64_t>/31r<std::uint64_t>/15r<std::uint64_t>/7rc<std::uint8_t>/3449rc<std::uint8_t>/63rc<std::uint8_t>/31rc<std::uint8_t>/15rc<std::uint8_t>/7rc<std::uint16_t>/3449rc<std::uint16_t>/63rc<std::uint16_t>/31rc<std::uint16_t>/15rc<std::uint16_t>/7rc<std::uint32_t>/3449rc<std::uint32_t>/63rc<std::uint32_t>/31rc<std::uint32_t>/15rc<std::uint32_t>/7rc<std::uint64_t>/3449rc<std::uint64_t>/63rc<std::uint64_t>/31rc<std::uint64_t>/15rc<std::uint64_t>/7