Enable target_feature on any LLVM 6+
In `LLVMRustHasFeature()`, rather than using `MCInfo->getFeatureTable()`
that is specific to Rust's LLVM fork, we can use this in LLVM 6:
/// Check whether the subtarget features are enabled/disabled as per
/// the provided string, ignoring all other features.
bool checkFeatures(StringRef FS) const;
Now rustc using external LLVM can also have `target_feature`.
This commit is contained in:
parent
9c9424de51
commit
a93a4d259a
2 changed files with 9 additions and 9 deletions
|
|
@ -8,7 +8,8 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// no-system-llvm -- needs MCSubtargetInfo::getFeatureTable()
|
||||
// min-llvm-version 6.0
|
||||
// ^ needs MCSubtargetInfo::checkFeatures()
|
||||
// ignore-cloudabi no std::env
|
||||
|
||||
#![feature(cfg_target_feature)]
|
||||
|
|
@ -29,4 +30,7 @@ fn main() {
|
|||
assert!(cfg!(target_feature = "sse2"),
|
||||
"SSE2 was not detected as available on an x86 platform");
|
||||
}
|
||||
// check a negative case too -- whitelisted on x86, but not enabled by default
|
||||
assert!(cfg!(not(target_feature = "avx2")),
|
||||
"AVX2 shouldn't be detected as available by default on any platform");
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue