Skip to content

Commit

Permalink
More tests for multilib selection
Browse files Browse the repository at this point in the history
Added failing test for softfp + armv8.1m.main+mve.
Added {{$}} not to match longer variant names.
  • Loading branch information
domin144 committed Feb 14, 2024
1 parent 53aefaa commit 94ee442
Show file tree
Hide file tree
Showing 10 changed files with 50 additions and 19 deletions.
2 changes: 1 addition & 1 deletion test/multilib/aarch64.test
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# RUN: %clang -print-multi-directory --target=aarch64-none-elf | FileCheck %s
# CHECK: aarch64-none-elf/aarch64
# CHECK: aarch64-none-elf/aarch64_exceptions_rtti{{$}}
# CHECK-EMPTY:
2 changes: 1 addition & 1 deletion test/multilib/armv4t.test
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# RUN: %clang -print-multi-directory --target=arm-none-eabi -mfpu=none | FileCheck %s
# CHECK: arm-none-eabi/armv4t
# CHECK: arm-none-eabi/armv4t_exceptions_rtti{{$}}
# CHECK-EMPTY:
2 changes: 1 addition & 1 deletion test/multilib/armv5e.test
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# RUN: %clang -print-multi-directory --target=armv5e-none-eabi -mfpu=none | FileCheck %s
# CHECK: arm-none-eabi/armv5te
# CHECK: arm-none-eabi/armv5te_exceptions_rtti{{$}}
# CHECK-EMPTY:
2 changes: 1 addition & 1 deletion test/multilib/armv6m.test
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# RUN: %clang -print-multi-directory --target=armv6m-none-eabi -mfpu=none | FileCheck %s
# CHECK: arm-none-eabi/armv6m_soft_nofp
# CHECK: arm-none-eabi/armv6m_soft_nofp_exceptions_rtti{{$}}
# CHECK-EMPTY:
17 changes: 15 additions & 2 deletions test/multilib/armv7a.test
Original file line number Diff line number Diff line change
@@ -1,7 +1,20 @@
# RUN: %clang -print-multi-directory --target=armv7a-none-eabi -mfpu=none | FileCheck %s
# CHECK: arm-none-eabi/armv7a_soft_nofp
# CHECK: arm-none-eabi/armv7a_soft_nofp_exceptions_rtti{{$}}
# CHECK-EMPTY:

# RUN: %clang -print-multi-directory --target=armv7a-none-eabihf -mfpu=vfpv3-d16 | FileCheck --check-prefix=VFPV3 %s
# VFPV3: arm-none-eabi/armv7a_hard_vfpv3_d16
# RUN: %clang -print-multi-directory --target=armv7a-none-eabihf -mfpu=neon-vfpv3 | FileCheck --check-prefix=VFPV3 %s
# RUN: %clang -print-multi-directory --target=armv7a-none-eabihf -mfpu=vfpv3 | FileCheck --check-prefix=VFPV3 %s
# RUN: %clang -print-multi-directory --target=armv7a-none-eabihf -mfpu=vfpv3-d16-fp16 | FileCheck --check-prefix=VFPV3 %s
# RUN: %clang -print-multi-directory --target=armv7a-none-eabihf -mfpu=vfpv3-fp16 | FileCheck --check-prefix=VFPV3 %s
# RUN: %clang -print-multi-directory --target=armv7a-none-eabihf -mfpu=vfpv4-d16 | FileCheck --check-prefix=VFPV3 %s
# RUN: %clang -print-multi-directory --target=armv7a-none-eabihf -mfpu=vfpv4 | FileCheck --check-prefix=VFPV3 %s
# RUN: %clang -print-multi-directory --target=armv7a-none-eabihf -mfpu=neon-fp16 | FileCheck --check-prefix=VFPV3 %s
# RUN: %clang -print-multi-directory --target=armv7a-none-eabihf -mfpu=neon-vfpv4 | FileCheck --check-prefix=VFPV3 %s
# VFPV3: arm-none-eabi/armv7a_hard_vfpv3_d16_exceptions_rtti{{$}}
# VFPV3-EMPTY:

# We have no valid variant for this configuration, yet.
# RUN: %clang -print-multi-directory --target=armv7a-none-eabi -mfpu=vfpv3-d16 2>&1 | FileCheck --check-prefix=NOT-FOUND %s

# NOT-FOUND: warning: no multilib found matching flags
6 changes: 3 additions & 3 deletions test/multilib/armv7em.test
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# RUN: %clang -print-multi-directory --target=armv7em-none-eabi -mfpu=none | FileCheck %s
# CHECK: arm-none-eabi/armv7em_soft_nofp
# CHECK: arm-none-eabi/armv7em_soft_nofp_exceptions_rtti{{$}}
# CHECK-EMPTY:

# RUN: %clang -print-multi-directory --target=armv7em-none-eabihf -mfpu=fpv4-sp-d16 | FileCheck --check-prefix=FPV4 %s
# FPV4: arm-none-eabi/armv7em_hard_fpv4_sp_d16
# FPV4: arm-none-eabi/armv7em_hard_fpv4_sp_d16_exceptions_rtti{{$}}
# FPV4-EMPTY:

# RUN: %clang -print-multi-directory --target=armv7em-none-eabihf -mfpu=fpv5-d16 | FileCheck --check-prefix=FPV5 %s
# FPV5: arm-none-eabi/armv7em_hard_fpv5_d16
# FPV5: arm-none-eabi/armv7em_hard_fpv5_d16_exceptions_rtti{{$}}
# FPV5-EMPTY:
4 changes: 2 additions & 2 deletions test/multilib/armv7m.test
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# RUN: %clang -print-multi-directory --target=armv7m-none-eabi -mfpu=none | FileCheck %s
# RUN: %clang -print-multi-directory --target=armv7m-none-eabi -mfpu=none -mfloat-abi=softfp | FileCheck %s
# CHECK: arm-none-eabi/armv7m_soft_nofp
# CHECK: arm-none-eabi/armv7m_soft_nofp_exceptions_rtti{{$}}
# CHECK-EMPTY:

# RUN: %clang -print-multi-directory --target=armv7m-none-eabi -mfpu=fpv4-sp-d16 -mfloat-abi=softfp | FileCheck --check-prefix=SOFT-FPV4 %s
# RUN: %clang -print-multi-directory --target=armv7m-none-eabi -mfpu=fpv5-d16 -mfloat-abi=softfp | FileCheck --check-prefix=SOFT-FPV4 %s
# SOFT-FPV4: arm-none-eabi/armv7m_soft_fpv4_sp_d16
# SOFT-FPV4: arm-none-eabi/armv7m_soft_fpv4_sp_d16_exceptions_rtti{{$}}
# SOFT-FPV4-EMPTY:
4 changes: 2 additions & 2 deletions test/multilib/armv7r.test
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# RUN: %clang -print-multi-directory --target=armv7r-none-eabi -mfpu=none | FileCheck %s
# CHECK: arm-none-eabi/armv7r_soft_nofp
# CHECK: arm-none-eabi/armv7r_soft_nofp_exceptions_rtti{{$}}
# CHECK-EMPTY:

# RUN: %clang -print-multi-directory --target=armv7r-none-eabihf -mfpu=vfpv3-d16 | FileCheck --check-prefix=VFPV3 %s
# VFPV3: arm-none-eabi/armv7r_hard_vfpv3_d16
# VFPV3: arm-none-eabi/armv7r_hard_vfpv3_d16_exceptions_rtti{{$}}
# VFPV3-EMPTY:
21 changes: 17 additions & 4 deletions test/multilib/armv8.1m.main.test
Original file line number Diff line number Diff line change
@@ -1,19 +1,32 @@
# RUN: %clang -print-multi-directory --target=armv8.1m.main-none-eabi -mfpu=none | FileCheck %s
# CHECK: arm-none-eabi/armv8.1m.main_soft_nofp
# CHECK: arm-none-eabi/armv8.1m.main_soft_nofp_nomve_exceptions_rtti{{$}}
# CHECK-EMPTY:

# If both MVE and FPU are present, FPU variant is selected. This is because,
# the nofp variant is only considered, when "-mfpu=none" is inferred from user
# commandline.

# 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+mve -mfpu=fp-armv8-fullfp16-sp-d16 | FileCheck --check-prefix=HARD_FP %s
# HARD_FP: arm-none-eabi/armv8.1m.main_hard_fp_nomve_exceptions_rtti{{$}}
# HARD_FP-EMPTY:

# 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=fp-armv8-fullfp16-d16 | FileCheck --check-prefix=HARD_FPDP %s
# HARD_FPDP: arm-none-eabi/armv8.1m.main_hard_fpdp_nomve_exceptions_rtti{{$}}
# HARD_FPDP-EMPTY:

# 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
# MVE: arm-none-eabi/armv8.1m.main_hard_nofp_mve_exceptions_rtti{{$}}
# MVE-EMPTY:

# TODO: We need to find a way to make this fail. For now it fallbacks to
# arm-none-eabi/armv8.1m.main_soft_nofp, which will not initilize the
# coprocessor nor will save/restore its registers in setjmp/longjmp.
# DONT-RUN-YET: %clang -print-multi-directory --target=armv8.1m.main-none-eabi -march=armv8.1m.main+mve -mfpu=none | FileCheck --check-prefix=SOFTFP_MVE %s
# SOFTFP_MVE: ?
# SOFTFP_MVE-EMPTY:

# RUN: %clang -print-multi-flags-experimental --target=arm-none-eabihf -mcpu=cortex-m55 | FileCheck --check-prefix=CORTEXM55 %s
# CORTEXM55: -march=thumbv8.1m.main+fp16
# CORTEXM55: -march=thumbv8.1m.main+lob
Expand Down
9 changes: 7 additions & 2 deletions test/multilib/armv8m.main.test
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
# RUN: %clang -print-multi-directory --target=armv8m.main-none-eabi -mfpu=none | FileCheck %s
# CHECK: arm-none-eabi/armv8m.main_soft_nofp
# CHECK: arm-none-eabi/armv8m.main_soft_nofp_exceptions_rtti{{$}}
# CHECK-EMPTY:

# 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
# HARD: arm-none-eabi/armv8m.main_hard_fp_exceptions_rtti{{$}}
# HARD-EMPTY:

# Fallback to armv7m
# RUN: %clang -print-multi-directory --target=armv8m.main-none-eabi -mfpu=fpv5-sp-d16 | FileCheck --check-prefix=SOFTFP %s
# SOFTFP: arm-none-eabi/armv7m_soft_fpv4_sp_d16_exceptions_rtti{{$}}
# SOFTFP-EMPTY:

0 comments on commit 94ee442

Please sign in to comment.