Replying to
@nikic@mastodon.social "Target features are a per-function choice, while the ABI should be per-module" the ABI should still be a per-function choice, no?
Desirable for defining functions, say, taking & returning x86 ZMM registers, in an otherwise-baseline-x86 module, for multiversioning.
Having target features not change ABI by itself is very reasonable though; would be quite neat (if not rather useless) to define a function with AVX2 ABI, passing 64B vectors in & out as 2 YMMs, but allowing AVX512 in the body.