Skip to content

Commit 6056cfc

Browse files
committed
Use local core_arch and switch to clang-12
1 parent 0ff70cc commit 6056cfc

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

ci/docker/aarch64-unknown-linux-gnu/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1010
qemu-user \
1111
make \
1212
file \
13-
clang-9 \
13+
clang-12 \
1414
lld
1515

1616
ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc \

ci/run.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ esac
115115

116116
if [ "${TARGET}" = "aarch64-unknown-linux-gnu" ]; then
117117
export CPPFLAGS="-fuse-ld=lld -I/usr/aarch64-linux-gnu/include/ -I/usr/aarch64-linux-gnu/include/c++/9/aarch64-linux-gnu/"
118-
cargo run ${INTRINSIC_TEST} --release --bin intrinsic-test -- crates/intrinsic-test/neon-intrinsics.csv --runner "${CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER}" --cppcompiler "clang++-9"
118+
cargo run ${INTRINSIC_TEST} --release --bin intrinsic-test -- crates/intrinsic-test/neon-intrinsics.csv --runner "${CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER}" --cppcompiler "clang++-12"
119119
fi
120120

121121
if [ "$NORUN" != "1" ] && [ "$NOSTD" != 1 ]; then

crates/intrinsic-test/src/main.rs

+8-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ fn generate_rust_program(intrinsic: &Intrinsic) -> String {
7070
#![feature(link_llvm_intrinsics)]
7171
#![feature(stdsimd)]
7272
#![allow(overflowing_literals)]
73-
use core::arch::aarch64::*;
73+
use core_arch::arch::aarch64::*;
7474
7575
fn main() {{
7676
{passes}
@@ -159,6 +159,8 @@ version = "{version}"
159159
authors = ["{authors}"]
160160
edition = "2018"
161161
[workspace]
162+
[dependencies]
163+
core_arch = {{ path = "../crates/core_arch" }}
162164
{binaries}"#,
163165
version = env!("CARGO_PKG_VERSION"),
164166
authors = env!("CARGO_PKG_AUTHORS"),
@@ -288,6 +290,11 @@ fn main() {
288290
.is_none()
289291
})
290292
.filter(|i| i.arguments.iter().find(|a| a.name == "n").is_none())
293+
// clang-12 fails to compile this intrinsic due to an error.
294+
// fatal error: error in backend: Cannot select: 0x2b99c30: i64 = AArch64ISD::VSHL Constant:i64<1>, Constant:i32<1>
295+
// 0x2b9a520: i64 = Constant<1>
296+
// 0x2b9a248: i32 = Constant<1>
297+
.filter(|i| !["vshld_s64", "vshld_u64"].contains(&i.name.as_str()))
291298
.collect::<Vec<_>>();
292299
intrinsics.dedup();
293300

0 commit comments

Comments
 (0)