diff --git a/CMakeLists.txt b/CMakeLists.txt index eab21d6f..2cd4f3b1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -941,7 +941,6 @@ endfunction() set(multilib_yaml_content "") # Define which library variants to build and which flags to use. -# The order is add_library_variant( aarch64 COMPILE_FLAGS "-march=armv8-a" @@ -956,9 +955,12 @@ add_library_variant( RAM_SIZE 2M STACK_SIZE 8K ) +# For AArch32, clang uses different defaults for FPU selection than GCC, both +# when "+fp" or "+fp.dp" are used and when no FPU specifier is provided in +# "-march=". Using "-mfpu=" explicitly. add_library_variant( armv4t - COMPILE_FLAGS "-march=armv4t" + COMPILE_FLAGS "-march=armv4t -mfpu=none" MULTILIB_FLAGS "--target=armv4t-none-unknown-eabi -mfpu=none" QEMU_MACHINE "none" QEMU_CPU "ti925t" @@ -973,7 +975,7 @@ add_library_variant( ) add_library_variant( armv5te - COMPILE_FLAGS "-march=armv5te" + COMPILE_FLAGS "-march=armv5te -mfpu=none" MULTILIB_FLAGS "--target=armv5e-none-unknown-eabi -mfpu=none" QEMU_MACHINE "none" QEMU_CPU "arm926" @@ -989,7 +991,7 @@ add_library_variant( add_library_variant( armv6m SUFFIX soft_nofp - COMPILE_FLAGS "-mfloat-abi=soft -march=armv6m" + COMPILE_FLAGS "-mfloat-abi=soft -march=armv6m -mfpu=none" MULTILIB_FLAGS "--target=thumbv6m-none-unknown-eabi -mfpu=none" QEMU_MACHINE "mps2-an385" BOOT_FLASH_ADDRESS 0x00000000 @@ -1000,8 +1002,6 @@ add_library_variant( RAM_SIZE 2M STACK_SIZE 4K ) -# clang does not correctly handle +nofp and +fp for armv7a and armv7r in march. -# Using mfpu as a workaround. add_library_variant( armv7a SUFFIX soft_nofp @@ -1069,7 +1069,7 @@ add_library_variant( add_library_variant( armv7m SUFFIX soft_nofp - COMPILE_FLAGS "-mfloat-abi=soft -march=armv7m+nofp" + COMPILE_FLAGS "-mfloat-abi=soft -march=armv7m -mfpu=none" MULTILIB_FLAGS "--target=thumbv7m-none-unknown-eabi -mfpu=none" QEMU_MACHINE "mps2-an385" QEMU_CPU "cortex-m3" @@ -1144,7 +1144,7 @@ add_library_variant( add_library_variant( armv8m.main SUFFIX soft_nofp - COMPILE_FLAGS "-mfloat-abi=soft -march=armv8m.main+nofp" + COMPILE_FLAGS "-mfloat-abi=soft -march=armv8m.main -mfpu=none" MULTILIB_FLAGS "--target=thumbv8m.main-none-unknown-eabi -mfpu=none" QEMU_MACHINE "mps2-an505" QEMU_CPU "cortex-m33" @@ -1159,8 +1159,8 @@ add_library_variant( add_library_variant( armv8m.main SUFFIX hard_fp - COMPILE_FLAGS "-mfloat-abi=hard -march=armv8m.main+fp" - MULTILIB_FLAGS "--target=thumbv8m.main-none-unknown-eabihf -mfpu=fpv5-d16" + COMPILE_FLAGS "-mfloat-abi=hard -march=armv8m.main -mfpu=fpv5-sp-d16" + MULTILIB_FLAGS "--target=thumbv8m.main-none-unknown-eabihf -mfpu=fpv5-sp-d16" QEMU_MACHINE "mps2-an505" QEMU_CPU "cortex-m33" BOOT_FLASH_ADDRESS 0x10000000 @@ -1174,7 +1174,7 @@ add_library_variant( add_library_variant( armv8.1m.main SUFFIX soft_nofp_nomve - COMPILE_FLAGS "-mfloat-abi=soft -march=armv8.1m.main+nofp+nomve" + COMPILE_FLAGS "-mfloat-abi=soft -march=armv8.1m.main+nomve -mfpu=none" MULTILIB_FLAGS "--target=thumbv8.1m.main-none-unknown-eabi -mfpu=none" QEMU_MACHINE "mps3-an547" QEMU_CPU "cortex-m55" @@ -1188,8 +1188,8 @@ add_library_variant( ) add_library_variant( armv8.1m.main - SUFFIX hard_fp - COMPILE_FLAGS "-mfloat-abi=hard -march=armv8.1m.main+fp" + SUFFIX hard_fp_nomve + COMPILE_FLAGS "-mfloat-abi=hard -march=armv8.1m.main+nomve -mfpu=fp-armv8-fullfp16-sp-d16" MULTILIB_FLAGS "--target=thumbv8.1m.main-none-unknown-eabihf -march=thumbv8.1m.main+fp16 -mfpu=fp-armv8-fullfp16-sp-d16" QEMU_MACHINE "mps3-an547" QEMU_CPU "cortex-m55" @@ -1201,10 +1201,25 @@ add_library_variant( RAM_SIZE 2M STACK_SIZE 4K ) +add_library_variant( + armv8.1m.main + SUFFIX hard_fpdp_nomve + COMPILE_FLAGS "-mfloat-abi=hard -march=armv8.1m.main+nomve -mfpu=fp-armv8-fullfp16-d16" + MULTILIB_FLAGS "--target=thumbv8.1m.main-none-unknown-eabihf -march=thumbv8.1m.main+fp16 -mfpu=fp-armv8-fullfp16-d16" + QEMU_MACHINE "mps3-an547" + QEMU_CPU "cortex-m55" + BOOT_FLASH_ADDRESS 0x00000000 + BOOT_FLASH_SIZE 512K + FLASH_ADDRESS 0x01000000 + FLASH_SIZE 2M + RAM_ADDRESS 0x60000000 + RAM_SIZE 2M + STACK_SIZE 4K +) add_library_variant( armv8.1m.main SUFFIX hard_nofp_mve - COMPILE_FLAGS "-mfloat-abi=hard -march=armv8.1m.main+nofp+mve" + COMPILE_FLAGS "-mfloat-abi=hard -march=armv8.1m.main+mve -mfpu=none" MULTILIB_FLAGS "--target=thumbv8.1m.main-none-unknown-eabihf -march=thumbv8.1m.main+dsp+mve -mfpu=none" QEMU_MACHINE "mps3-an547" QEMU_CPU "cortex-m55" diff --git a/README.md b/README.md index 28223e2a..d2a425f2 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,7 @@ find . -type f -perm +0111 | xargs xattr -d com.apple.quarantine To use the toolchain, on the command line you need to provide the following options: * The target triple. +* The FPU to use. * Disabling C++ exceptions and RTTI that are not supported by the standard library provided yet. * The C runtime library: either `crt0` or `crt0-semihost`. * The semihosting library, if using `crt0-semihost`. @@ -107,6 +108,7 @@ For example: $ PATH=/LLVMEmbeddedToolchainForArm-/bin:$PATH $ clang \ --target=armv6m-none-eabi \ +-mfpu=none \ -fno-exceptions \ -fno-rtti \ -lcrt0-semihost \ @@ -134,6 +136,7 @@ directories of the libraries you want to use. For example: $ clang \ --sysroot=/LLVMEmbeddedToolchainForArm-/lib/clang-runtimes/arm-none-eabi/armv6m_soft_nofp \ --target=armv6m-none-eabi \ +-mfpu=none \ -fno-exceptions \ -fno-rtti \ -lcrt0-semihost \ @@ -142,6 +145,9 @@ $ clang \ -o example example.c ``` +The FPU selection can be skipped, but it is not recommended to as the defaults +are different to GCC ones. + Binary releases of the LLVM Embedded Toolchain for Arm are based on release branches of the upstream LLVM Project, thus can safely be used with all tools provided by LLVM [releases|https://github.com/llvm/llvm-project/releases] diff --git a/packagetest/hello.c b/packagetest/hello.c index 79c9abf0..b0bb0ee7 100644 --- a/packagetest/hello.c +++ b/packagetest/hello.c @@ -1,4 +1,4 @@ -// RUN: %clang --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -lcrt0-semihost -lsemihost -T %S/Inputs/microbit.ld %s -o %t.out +// RUN: %clang --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -mfpu=none -lcrt0-semihost -lsemihost -T %S/Inputs/microbit.ld %s -o %t.out // RUN: qemu-system-arm -M microbit -semihosting -nographic -device loader,file=%t.out 2>&1 | FileCheck %s #include diff --git a/packagetest/hello.cpp b/packagetest/hello.cpp index 17e0a4e4..65b7572e 100644 --- a/packagetest/hello.cpp +++ b/packagetest/hello.cpp @@ -1,4 +1,4 @@ -// RUN: %clangxx --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -lcrt0-semihost -lsemihost -fno-exceptions -fno-rtti -T %S/Inputs/microbit.ld %s -o %t.out +// RUN: %clangxx --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -mfpu=none -lcrt0-semihost -lsemihost -fno-exceptions -fno-rtti -T %S/Inputs/microbit.ld %s -o %t.out // RUN: qemu-system-arm -M microbit -semihosting -nographic -device loader,file=%t.out 2>&1 | FileCheck %s // Include as many C++17 headers as possible. diff --git a/samples/Makefile.conf b/samples/Makefile.conf index 8be08aba..aa65263b 100644 --- a/samples/Makefile.conf +++ b/samples/Makefile.conf @@ -19,7 +19,7 @@ ifndef BIN_PATH BIN_PATH=../../../bin endif -MICROBIT_TARGET=--target=armv6m-none-eabi -march=armv6m -mfloat-abi=soft +MICROBIT_TARGET=--target=armv6m-none-eabi -march=armv6m -mfpu=none -mfloat-abi=soft AARCH64_TARGET=--target=aarch64-none-elf CRT=-lcrt0 diff --git a/samples/src/baremetal-semihosting/make.bat b/samples/src/baremetal-semihosting/make.bat index b8fad32c..826818f1 100644 --- a/samples/src/baremetal-semihosting/make.bat +++ b/samples/src/baremetal-semihosting/make.bat @@ -49,6 +49,6 @@ if exist hello.hex del /q hello.hex @exit /B 1 :build_fn -%BIN_PATH%\clang.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -lcrt0-semihost -lsemihost -g -T ..\..\ldscripts\microbit.ld -o hello.elf hello.c +%BIN_PATH%\clang.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -mfpu=none -lcrt0-semihost -lsemihost -g -T ..\..\ldscripts\microbit.ld -o hello.elf hello.c %BIN_PATH%\llvm-objcopy.exe -O ihex hello.elf hello.hex @exit /B diff --git a/samples/src/baremetal-uart/make.bat b/samples/src/baremetal-uart/make.bat index f63a9c73..b61dcb71 100644 --- a/samples/src/baremetal-uart/make.bat +++ b/samples/src/baremetal-uart/make.bat @@ -49,6 +49,6 @@ if exist hello.hex del /q hello.hex @exit /B 1 :build_fn -%BIN_PATH%\clang.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -lcrt0 -g -T ..\..\ldscripts\microbit.ld -o hello.elf hello.c +%BIN_PATH%\clang.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -mfpu=none -lcrt0 -g -T ..\..\ldscripts\microbit.ld -o hello.elf hello.c %BIN_PATH%\llvm-objcopy.exe -O ihex hello.elf hello.hex @exit /B diff --git a/samples/src/cpp-baremetal-semihosting-cfi/make.bat b/samples/src/cpp-baremetal-semihosting-cfi/make.bat index d2f43213..b8d1a4ff 100644 --- a/samples/src/cpp-baremetal-semihosting-cfi/make.bat +++ b/samples/src/cpp-baremetal-semihosting-cfi/make.bat @@ -56,13 +56,13 @@ if exist hello.hex del /q hello.hex @exit /B 1 :build_fn -%BIN_PATH%\clang++.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -fno-exceptions -fno-rtti -flto -fsanitize=cfi -fvisibility=hidden -fno-sanitize-ignorelist -g -c hello.cpp -%BIN_PATH%\clang++.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -lcrt0-semihost -lsemihost -fno-exceptions -fno-rtti -flto -T ..\..\ldscripts\microbit.ld -g -o hello.elf hello.o +%BIN_PATH%\clang++.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -mfpu=none -fno-exceptions -fno-rtti -flto -fsanitize=cfi -fvisibility=hidden -fno-sanitize-ignorelist -g -c hello.cpp +%BIN_PATH%\clang++.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -mfpu=none -lcrt0-semihost -lsemihost -fno-exceptions -fno-rtti -flto -T ..\..\ldscripts\microbit.ld -g -o hello.elf hello.o %BIN_PATH%\llvm-objcopy.exe -O ihex hello.elf hello.hex @exit /B :build_no_cfi_fn -%BIN_PATH%\clang++.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -fno-exceptions -fno-rtti -flto -g -c hello.cpp -%BIN_PATH%\clang++.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -lcrt0-semihost -lsemihost -fno-exceptions -fno-rtti -flto -T ..\..\ldscripts\microbit.ld -g -o hello.elf hello.o +%BIN_PATH%\clang++.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -mfpu=none -fno-exceptions -fno-rtti -flto -g -c hello.cpp +%BIN_PATH%\clang++.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -mfpu=none -lcrt0-semihost -lsemihost -fno-exceptions -fno-rtti -flto -T ..\..\ldscripts\microbit.ld -g -o hello.elf hello.o %BIN_PATH%\llvm-objcopy.exe -O ihex hello.elf hello.hex @exit /B diff --git a/samples/src/cpp-baremetal-semihosting-prof/make.bat b/samples/src/cpp-baremetal-semihosting-prof/make.bat index 993e04a8..78cc6a37 100644 --- a/samples/src/cpp-baremetal-semihosting-prof/make.bat +++ b/samples/src/cpp-baremetal-semihosting-prof/make.bat @@ -58,7 +58,7 @@ if exist proflib.o del /q proflib.o @exit /B 1 :build_fn -%BIN_PATH%\clang.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -g -c proflib.c -%BIN_PATH%\clang++.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -lcrt0-semihost -lsemihost -fno-exceptions -fno-rtti -g -T ..\..\ldscripts\microbit.ld -fprofile-instr-generate -fcoverage-mapping -o hello.elf hello.cpp proflib.o +%BIN_PATH%\clang.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -mfpu=none -g -c proflib.c +%BIN_PATH%\clang++.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -mfpu=none -lcrt0-semihost -lsemihost -fno-exceptions -fno-rtti -g -T ..\..\ldscripts\microbit.ld -fprofile-instr-generate -fcoverage-mapping -o hello.elf hello.cpp proflib.o %BIN_PATH%\llvm-objcopy.exe -O ihex hello.elf hello.hex @exit /B diff --git a/samples/src/cpp-baremetal-semihosting-ubsan/make.bat b/samples/src/cpp-baremetal-semihosting-ubsan/make.bat index f95b6d9f..12007fe3 100644 --- a/samples/src/cpp-baremetal-semihosting-ubsan/make.bat +++ b/samples/src/cpp-baremetal-semihosting-ubsan/make.bat @@ -55,11 +55,11 @@ if exist hello.hex del /q hello.hex @exit /B 1 :build_fn -%BIN_PATH%\clang++.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -lcrt0-semihost -lsemihost -fno-exceptions -fno-rtti --std=c++17 -fsanitize=undefined -fsanitize-minimal-runtime -g -T ../../ldscripts/microbit.ld -o hello.elf *.cpp +%BIN_PATH%\clang++.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -mfpu=none -lcrt0-semihost -lsemihost -fno-exceptions -fno-rtti --std=c++17 -fsanitize=undefined -fsanitize-minimal-runtime -g -T ../../ldscripts/microbit.ld -o hello.elf *.cpp %BIN_PATH%\llvm-objcopy.exe -O ihex hello.elf hello.hex @exit /B :build_trap_fn -%BIN_PATH%\clang++.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -lcrt0-semihost -lsemihost -fno-exceptions -fno-rtti --std=c++17 -fsanitize=undefined -fsanitize-trap=all -g -T ../../ldscripts/microbit.ld -o hello.elf *.cpp +%BIN_PATH%\clang++.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -mfpu=none -lcrt0-semihost -lsemihost -fno-exceptions -fno-rtti --std=c++17 -fsanitize=undefined -fsanitize-trap=all -g -T ../../ldscripts/microbit.ld -o hello.elf *.cpp %BIN_PATH%\llvm-objcopy.exe -O ihex hello.elf hello.hex @exit /B diff --git a/samples/src/cpp-baremetal-semihosting/make.bat b/samples/src/cpp-baremetal-semihosting/make.bat index f6d2168a..1e5b9b33 100644 --- a/samples/src/cpp-baremetal-semihosting/make.bat +++ b/samples/src/cpp-baremetal-semihosting/make.bat @@ -49,6 +49,6 @@ if exist hello.hex del /q hello.hex @exit /B 1 :build_fn -%BIN_PATH%\clang++.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -lcrt0-semihost -lsemihost -fno-exceptions -fno-rtti -g -T ..\..\ldscripts\microbit.ld -o hello.elf hello.cpp +%BIN_PATH%\clang++.exe --target=armv6m-none-eabi -mfloat-abi=soft -march=armv6m -mfpu=none -lcrt0-semihost -lsemihost -fno-exceptions -fno-rtti -g -T ..\..\ldscripts\microbit.ld -o hello.elf hello.cpp %BIN_PATH%\llvm-objcopy.exe -O ihex hello.elf hello.hex @exit /B diff --git a/test-support/picolibc-test-wrapper.py b/test-support/picolibc-test-wrapper.py index faed53da..a39c4d5c 100755 --- a/test-support/picolibc-test-wrapper.py +++ b/test-support/picolibc-test-wrapper.py @@ -18,9 +18,9 @@ # https://github.com/picolibc/picolibc/pull/500 "picolibc_aarch64-build/test/math_errhandling", "picolibc_aarch64-build/test/test-fma", - "picolibc_armv7em_hard_fpv4_sp_d16-build/test/math_errhandling", "picolibc_armv7m_soft_fpv4_sp_d16-build/test/math_errhandling", - "picolibc_armv8.1m.main_hard_fp-build/test/math_errhandling", + "picolibc_armv7em_hard_fpv4_sp_d16-build/test/math_errhandling", + "picolibc_armv8.1m.main_hard_fp_nomve-build/test/math_errhandling", "picolibc_armv8.1m.main_hard_nofp_mve-build/test/fenv", "picolibc_armv8.1m.main_hard_nofp_mve-build/test/math_errhandling", diff --git a/test/multilib/armv4t.test b/test/multilib/armv4t.test index bba171af..a8c76624 100644 --- a/test/multilib/armv4t.test +++ b/test/multilib/armv4t.test @@ -1,2 +1,2 @@ -# RUN: %clang -print-multi-directory --target=arm-none-eabi | FileCheck %s +# RUN: %clang -print-multi-directory --target=arm-none-eabi -mfpu=none | FileCheck %s # CHECK: arm-none-eabi/armv4t diff --git a/test/multilib/armv5e.test b/test/multilib/armv5e.test index b1f7d95f..511f7073 100644 --- a/test/multilib/armv5e.test +++ b/test/multilib/armv5e.test @@ -1,2 +1,2 @@ -# RUN: %clang -print-multi-directory --target=armv5e-none-eabi | FileCheck %s +# RUN: %clang -print-multi-directory --target=armv5e-none-eabi -mfpu=none | FileCheck %s # CHECK: arm-none-eabi/armv5te diff --git a/test/multilib/armv6m.test b/test/multilib/armv6m.test index 481c55bb..d3654b08 100644 --- a/test/multilib/armv6m.test +++ b/test/multilib/armv6m.test @@ -1,2 +1,2 @@ -# RUN: %clang -print-multi-directory --target=armv6m-none-eabi | FileCheck %s +# RUN: %clang -print-multi-directory --target=armv6m-none-eabi -mfpu=none | FileCheck %s # CHECK: arm-none-eabi/armv6m_soft_nofp diff --git a/test/multilib/armv7m.test b/test/multilib/armv7m.test index 48afecdd..b721bf83 100644 --- a/test/multilib/armv7m.test +++ b/test/multilib/armv7m.test @@ -1,5 +1,5 @@ -# RUN: %clang -print-multi-directory --target=armv7m-none-eabi | FileCheck %s +# RUN: %clang -print-multi-directory --target=armv7m-none-eabi -mfpu=none | FileCheck %s # CHECK: arm-none-eabi/armv7m_soft_nofp -# RUN: %clang -print-multi-directory --target=armv7m-none-eabi -mfloat-abi=softfp | FileCheck --check-prefix=SOFT_FPV4 %s +# RUN: %clang -print-multi-directory --target=armv7m-none-eabi -mfpu=none -mfloat-abi=softfp | FileCheck --check-prefix=SOFT_FPV4 %s # SOFT_FPV4: arm-none-eabi/armv7m_soft_fpv4_sp_d16 diff --git a/test/multilib/armv8.1m.main.test b/test/multilib/armv8.1m.main.test index aadce531..d667ef95 100644 --- a/test/multilib/armv8.1m.main.test +++ b/test/multilib/armv8.1m.main.test @@ -1,10 +1,13 @@ # RUN: %clang -print-multi-directory --target=armv8.1m.main-none-eabi -mfpu=none | FileCheck %s # CHECK: arm-none-eabi/armv8.1m.main_soft_nofp -# RUN: %clang -print-multi-directory --target=armv8.1m.main-none-eabihf -march=armv8.1m.main+fp | FileCheck --check-prefix=HARD %s -# HARD: arm-none-eabi/armv8.1m.main_hard_fp +# RUN: %clang -print-multi-directory --target=armv8.1m.main-none-eabihf -march=armv8.1m.main -mfpu=fp-armv8-fullfp16-sp-d16 | FileCheck --check-prefix=HARD_FP %s +# HARD_FP: arm-none-eabi/armv8.1m.main_hard_fp_nomve -# RUN: %clang -print-multi-directory --target=armv8.1m.main-none-eabihf -march=armv8.1m.main+nofp+mve | FileCheck --check-prefix=MVE %s +# RUN: %clang -print-multi-directory --target=armv8.1m.main-none-eabihf -march=armv8.1m.main -mfpu=fp-armv8-fullfp16-d16 | FileCheck --check-prefix=HARD_FPDP %s +# HARD_FPDP: arm-none-eabi/armv8.1m.main_hard_fpdp_nomve + +# RUN: %clang -print-multi-directory --target=armv8.1m.main-none-eabihf -march=armv8.1m.main+mve -mfpu=none | FileCheck --check-prefix=MVE %s # MVE: arm-none-eabi/armv8.1m.main_hard_nofp_mve # RUN: %clang -print-multi-flags-experimental --target=arm-none-eabihf -mcpu=cortex-m55 | FileCheck --check-prefix=CORTEXM55 %s diff --git a/test/multilib/armv8m.main.test b/test/multilib/armv8m.main.test index 3da703e8..9238bbb9 100644 --- a/test/multilib/armv8m.main.test +++ b/test/multilib/armv8m.main.test @@ -1,5 +1,5 @@ # RUN: %clang -print-multi-directory --target=armv8m.main-none-eabi -mfpu=none | FileCheck %s # CHECK: arm-none-eabi/armv8m.main_soft_nofp -# RUN: %clang -print-multi-directory --target=armv8m.main-none-eabihf | FileCheck --check-prefix=HARD %s +# RUN: %clang -print-multi-directory --target=armv8m.main-none-eabihf -mfpu=fpv5-sp-d16 | FileCheck --check-prefix=HARD %s # HARD: arm-none-eabi/armv8m.main_hard_fp