[PATCH] D41096: [X86] Initial support for prefer-vector-width function attribute
Craig Topper via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 13 16:06:53 PST 2017
craig.topper added a comment.
Normally I would prefer additive features too.
For the prefer-avx256 feature in this patch, I need the preference to only apply with -march=skylake-avx512/native and not with -mavx512f or with -march=knl. So I think that means it needs to be set in the default features in skylake-avx512 cpu definition. And the prefer-vector-width attribute needs to remove it if the user specifies a higher preference
For the next patch that will deal with legalization. I think i still have to do something weird because I can't see the features implied by the CPU name string in getSubtargetImpl. So I can't just blindly enable a feature flag for 512-bit register support there. So I need to add something like "+requires512bitvectors" into the feature string based on the attribute, but the lack of a "required-vector-width" attribute implies we don't know for sure. So maybe its better to have "+no512bitvectors" if the attribute is present and set to value 256 or less. Then in X86ISelLowering we would enable 512 bit types with "hasAVX512 && !(no512bitvectors && prefer-avx256)"
Do you see any better way?
https://reviews.llvm.org/D41096
More information about the llvm-commits
mailing list