Auto merge of #107879 - icedrocket:update-llvm, r=cuviper

Update LLVM submodule

Fixes #105626
This commit is contained in:
bors 2023-03-02 05:27:32 +00:00
commit 18caf88956
4 changed files with 35 additions and 10 deletions

View File

@ -11,6 +11,11 @@ fn parse(config: &str) -> Config {
#[test]
fn download_ci_llvm() {
if crate::native::is_ci_llvm_modified(&parse("")) {
eprintln!("Detected LLVM as non-available: running in CI and modified LLVM in this change");
return;
}
let parse_llvm = |s| parse(s).llvm_from_ci;
let if_available = parse_llvm("llvm.download-ci-llvm = \"if-available\"");

View File

@ -216,21 +216,24 @@ pub(crate) fn is_ci_llvm_available(config: &Config, asserts: bool) -> bool {
}
}
if CiEnv::is_ci() {
if is_ci_llvm_modified(config) {
eprintln!("Detected LLVM as non-available: running in CI and modified LLVM in this change");
return false;
}
true
}
/// Returns true if we're running in CI with modified LLVM (and thus can't download it)
pub(crate) fn is_ci_llvm_modified(config: &Config) -> bool {
CiEnv::is_ci() && {
// We assume we have access to git, so it's okay to unconditionally pass
// `true` here.
let llvm_sha = detect_llvm_sha(config, true);
let head_sha = output(config.git().arg("rev-parse").arg("HEAD"));
let head_sha = head_sha.trim();
if llvm_sha == head_sha {
eprintln!(
"Detected LLVM as non-available: running in CI and modified LLVM in this change"
);
return false;
}
llvm_sha == head_sha
}
true
}
#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]

@ -1 +1 @@
Subproject commit 477e7285b12f876ad105188cfcfc8adda7dc29aa
Subproject commit fd949f3034f8a422ecfffa889c2823485dde4bdd

View File

@ -0,0 +1,17 @@
// run-pass
// only-x86
// min-system-llvm-version: 16
// compile-flags: -Ctarget-feature=+sse2
use std::hint::black_box;
fn main() {
let n: i64 = black_box(0x3fffffdfffffff);
let r = f32::from_bits(0x5a7fffff);
assert_ne!((n as f64) as f32, n as f32);
// FIXME: these assertions fail if only x87 is enabled
assert_eq!(n as i64 as f32, r);
assert_eq!(n as u64 as f32, r);
}