Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions scripts/llvm/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1995,6 +1995,22 @@ add_library_variants_for_cpu(
RAM_SIZE 0x1000000
STACK_SIZE 4K
)
add_library_variants_for_cpu(
rv32emc_zicsr_zcb_zba_zbb_zbc_zbs_ilp32e
COMPILE_FLAGS "-march=rv32emc_zicsr_zcb_zba_zbb_zbc_zbs -mabi=ilp32e"
MULTILIB_FLAGS "--target=riscv32-unknown-none-elf -march=rv32e2p0_m2p0_c2p0_zicsr2p0_zmmul1p0_zca1p0_zcb1p0_zba1p0_zbb1p0_zbc1p0_zbs1p0 -mabi=ilp32e"
PICOLIBC_BUILD_TYPE "release"
QEMU_MACHINE "none"
QEMU_CPU "rv32"
QEMU_PARAMS "-m 1G"
BOOT_FLASH_ADDRESS 0x00000000
BOOT_FLASH_SIZE 0x1000
FLASH_ADDRESS 0x20000000
FLASH_SIZE 0x1000000
RAM_ADDRESS 0x21000000
RAM_SIZE 0x1000000
STACK_SIZE 4K
)
## RV64I
add_library_variants_for_cpu(
rv64i_zicsr_zifencei_lp64
Expand Down Expand Up @@ -2092,6 +2108,22 @@ add_library_variants_for_cpu(
RAM_SIZE 0x1000000
STACK_SIZE 4K
)
add_library_variants_for_cpu(
rv64imafdc_zicsr_zifencei_zba_zbb_zbc_zbs_lp64d
COMPILE_FLAGS "-march=rv64imafdc_zicsr_zifencei_zba_zbb_zbc_zbs -mabi=lp64d -mcmodel=medany"
MULTILIB_FLAGS "--target=riscv64-unknown-none-elf -march=rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zicsr2p0_zifencei2p0_zmmul1p0_zba1p0_zbb1p0_zbc1p0_zbs1p0 -mabi=lp64d"
PICOLIBC_BUILD_TYPE "release"
QEMU_MACHINE "none"
QEMU_CPU "rv64"
QEMU_PARAMS "-m 1G"
BOOT_FLASH_ADDRESS 0x00000000
BOOT_FLASH_SIZE 0x1000
FLASH_ADDRESS 0x20000000
FLASH_SIZE 0x1000000
RAM_ADDRESS 0x21000000
RAM_SIZE 0x1000000
STACK_SIZE 4K
)
add_library_variants_for_cpu(
rv64imafd_zicsr_zifencei_lp64d
COMPILE_FLAGS "-march=rv64imafd_zicsr_zifencei -mabi=lp64d -mcmodel=medany"
Expand Down
4 changes: 4 additions & 0 deletions scripts/llvm/cmake/multilib.yaml.in
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,10 @@ Mappings:
- Match: -march=rv32e([0-9]+p[0-9]+)_m([0-9]+p[0-9]+)_a([0-9]+p[0-9]+)_c([0-9]+p[0-9]+)_zicsr([0-9]+p[0-9]+)_zifencei([0-9]+p[0-9]+)_zmmul([0-9]+p[0-9]+)_zba([0-9]+p[0-9]+)_zbb([0-9]+p[0-9]+)_zbc([0-9]+p[0-9]+)_zbs([0-9]+p[0-9]+)
Flags:
- -march=rv32e2p0_m2p0_c2p0_zicsr2p0_zifencei2p0_zmmul1p0_zba1p0_zbb1p0_zbc1p0_zbs1p0
## march.rv32emc_zicsr_zcb_zba_zbb_zbc_zbs/mabi.ilp32e=march.rv32emc_zicntr_zicsr_zcb_zba_zbb_zbc_zbs/mabi.ilp32e
- Match: -march=rv32e([0-9]+p[0-9]+)_m([0-9]+p[0-9]+)_c([0-9]+p[0-9]+)_zicntr([0-9]+p[0-9]+)_zicsr([0-9]+p[0-9]+)_zmmul([0-9]+p[0-9]+)_zca([0-9]+p[0-9]+)_zcb([0-9]+p[0-9]+)_zba([0-9]+p[0-9]+)_zbb([0-9]+p[0-9]+)_zbc([0-9]+p[0-9]+)_zbs([0-9]+p[0-9]+)
Flags:
- -march=rv32e2p0_m2p0_c2p0_zicsr2p0_zmmul1p0_zca1p0_zcb1p0_zba1p0_zbb1p0_zbc1p0_zbs1p0

# RV64I alternate mappings
## march.rv64i_zicsr_zifencei/mabi.lp64/mcmodel.medany=march.rv64ia_zicsr_zifencei/mabi.lp64/mcmodel.medany
Expand Down
99 changes: 42 additions & 57 deletions scripts/llvm/test-support/picolibc-test-wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from run_qemu import run_qemu
import argparse
import pathlib
import fnmatch
import sys

# https://mesonbuild.com/Unit-tests.html#skipped-tests-and-hard-errors
Expand All @@ -17,67 +18,51 @@
# rounding modes for computations on types implemented in software
# https://github.com/picolibc/picolibc/pull/500
# https://github.com/zephyrproject-rtos/sdk-ng/issues/838
"picolibc_armv7m_soft_fpv4_sp_d16-build/test/math_errhandling",
"picolibc_armv7m_hard_fpv4_sp_d16-build/test/math_errhandling",
"picolibc_armv7r_hard_vfpv3xd-build/test/math_errhandling",
"picolibc_armv7r_hard_vfpv3xd_exn_rtti-build/test/math_errhandling",
"picolibc_armv8.1m.main_hard_fp_nomve-build/test/math_errhandling",
"picolibc_armv7m_soft_fpv4_sp_d16_exn_rtti-build/test/math_errhandling",
"picolibc_armv7m_hard_fpv4_sp_d16_exn_rtti-build/test/math_errhandling",
"picolibc_armv8.1m.main_hard_fp_nomve_exn_rtti-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",
"picolibc_armv8m.main_hard_fp-build/test/math_errhandling",
"picolibc_armv8.1m.main_hard_nofp_mve_exn_rtti-build/test/fenv",
"picolibc_armv8.1m.main_hard_nofp_mve_exn_rtti-build/test/math_errhandling",
"picolibc_armv8m.main_hard_fp_exn_rtti-build/test/math_errhandling",
"picolibc_rv32imafc_zicsr_zifencei_ilp32f-build/test/rounding-mode",
"picolibc_rv32imafc_zicsr_zifencei_ilp32f-build/test/math_errhandling",
"picolibc_rv32imafc_zicsr_zifencei_ilp32f-build/test/test-fma",
"picolibc_rv32imafc_zicsr_zifencei_ilp32f_exn_rtti-build/test/rounding-mode",
"picolibc_rv32imafc_zicsr_zifencei_ilp32f_exn_rtti-build/test/math_errhandling",
"picolibc_rv32imafc_zicsr_zifencei_ilp32f_exn_rtti-build/test/test-fma",
"picolibc_rv32imfc_zicsr_zifencei_ilp32f-build/test/rounding-mode",
"picolibc_rv32imfc_zicsr_zifencei_ilp32f-build/test/math_errhandling",
"picolibc_rv32imfc_zicsr_zifencei_ilp32f-build/test/test-fma",
"picolibc_rv32imfc_zicsr_zifencei_ilp32f_exn_rtti-build/test/rounding-mode",
"picolibc_rv32imfc_zicsr_zifencei_ilp32f_exn_rtti-build/test/math_errhandling",
"picolibc_rv32imfc_zicsr_zifencei_ilp32f_exn_rtti-build/test/test-fma",
"picolibc_rv32imafd_zicsr_zifencei_ilp32d-build/test/math_errhandling",
"picolibc_rv32imafd_zicsr_zifencei_ilp32d-build/test/test-fma",
"picolibc_rv32imafd_zicsr_zifencei_ilp32d_exn_rtti-build/test/math_errhandling",
"picolibc_rv32imafd_zicsr_zifencei_ilp32d_exn_rtti-build/test/test-fma",
"picolibc_rv32if_zicsr_zifencei_ilp32f-build/test/rounding-mode",
"picolibc_rv32if_zicsr_zifencei_ilp32f-build/test/math_errhandling",
"picolibc_rv32if_zicsr_zifencei_ilp32f-build/test/test-fma",
"picolibc_rv32if_zicsr_zifencei_ilp32f_exn_rtti-build/test/rounding-mode",
"picolibc_rv32if_zicsr_zifencei_ilp32f_exn_rtti-build/test/math_errhandling",
"picolibc_rv32if_zicsr_zifencei_ilp32f_exn_rtti-build/test/test-fma",
"picolibc_rv64imafdc_zicsr_zifencei_lp64d-build/test/math_errhandling",
"picolibc_rv64imafdc_zicsr_zifencei_lp64d-build/test/test-fma",
"picolibc_rv64imafdc_zicsr_zifencei_lp64d_exn_rtti-build/test/math_errhandling",
"picolibc_rv64imafdc_zicsr_zifencei_lp64d_exn_rtti-build/test/test-fma",
"picolibc_rv64imafd_zicsr_zifencei_lp64d-build/test/math_errhandling",
"picolibc_rv64imafd_zicsr_zifencei_lp64d-build/test/test-fma",
"picolibc_rv64imafd_zicsr_zifencei_lp64d_exn_rtti-build/test/math_errhandling",
"picolibc_rv64imafd_zicsr_zifencei_lp64d_exn_rtti-build/test/test-fma",
"picolibc_rv64imfc_zicsr_zifencei_lp64f-build/test/rounding-mode",
"picolibc_rv64imfc_zicsr_zifencei_lp64f-build/test/math_errhandling",
"picolibc_rv64imfc_zicsr_zifencei_lp64f-build/test/test-fma",
"picolibc_rv64imfc_zicsr_zifencei_lp64f_exn_rtti-build/test/rounding-mode",
"picolibc_rv64imfc_zicsr_zifencei_lp64f_exn_rtti-build/test/math_errhandling",
"picolibc_rv64imfc_zicsr_zifencei_lp64f_exn_rtti-build/test/test-fma",
"picolibc_rv64imfc_zicsr_zifencei_zba_zbb_zbc_zbs_lp64f-build/test/rounding-mode",
"picolibc_rv64imfc_zicsr_zifencei_zba_zbb_zbc_zbs_lp64f-build/test/math_errhandling",
"picolibc_rv64imfc_zicsr_zifencei_zba_zbb_zbc_zbs_lp64f-build/test/test-fma",
"picolibc_rv64imfc_zicsr_zifencei_zba_zbb_zbc_zbs_lp64f_exn_rtti-build/test/rounding-mode",
"picolibc_rv64imfc_zicsr_zifencei_zba_zbb_zbc_zbs_lp64f_exn_rtti-build/test/math_errhandling",
"picolibc_rv64imfc_zicsr_zifencei_zba_zbb_zbc_zbs_lp64f_exn_rtti-build/test/test-fma",
"**/picolibc_armv7m_soft_fpv4_sp_d16-build/test/math_errhandling",
"**/picolibc_armv7m_hard_fpv4_sp_d16-build/test/math_errhandling",
"**/picolibc_armv7r_hard_vfpv3xd-build/test/math_errhandling",
"**/picolibc_armv7r_hard_vfpv3xd_exn_rtti-build/test/math_errhandling",
"**/picolibc_armv8.1m.main_hard_fp_nomve-build/test/math_errhandling",
"**/picolibc_armv7m_soft_fpv4_sp_d16_exn_rtti-build/test/math_errhandling",
"**/picolibc_armv7m_hard_fpv4_sp_d16_exn_rtti-build/test/math_errhandling",
"**/picolibc_armv8.1m.main_hard_fp_nomve_exn_rtti-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",
"**/picolibc_armv8m.main_hard_fp-build/test/math_errhandling",
"**/picolibc_armv8.1m.main_hard_nofp_mve_exn_rtti-build/test/fenv",
"**/picolibc_armv8.1m.main_hard_nofp_mve_exn_rtti-build/test/math_errhandling",
"**/picolibc_armv8m.main_hard_fp_exn_rtti-build/test/math_errhandling",
"**/picolibc_rv32imafc_zicsr_zifencei_ilp32f*-build/test/rounding-mode",
"**/picolibc_rv32imafc_zicsr_zifencei_ilp32f*-build/test/math_errhandling",
"**/picolibc_rv32imafc_zicsr_zifencei_ilp32f*-build/test/test-fma",
"**/picolibc_rv32imfc_zicsr_zifencei_ilp32f*-build/test/rounding-mode",
"**/picolibc_rv32imfc_zicsr_zifencei_ilp32f*-build/test/math_errhandling",
"**/picolibc_rv32imfc_zicsr_zifencei_ilp32f*-build/test/test-fma",
"**/picolibc_rv32imafd_zicsr_zifencei_ilp32d*-build/test/math_errhandling",
"**/picolibc_rv32imafd_zicsr_zifencei_ilp32d*-build/test/test-fma",
"**/picolibc_rv32if_zicsr_zifencei_ilp32f*-build/test/rounding-mode",
"**/picolibc_rv32if_zicsr_zifencei_ilp32f*-build/test/math_errhandling",
"**/picolibc_rv32if_zicsr_zifencei_ilp32f*-build/test/test-fma",
"**/picolibc_rv64imafdc_zicsr_zifencei_lp64d*-build/test/math_errhandling",
"**/picolibc_rv64imafdc_zicsr_zifencei_lp64d*-build/test/test-fma",
"**/picolibc_rv64imafdc_zicsr_zifencei_zba_zbb_zbc_zbs_lp64d*-build/test/math_errhandling",
"**/picolibc_rv64imafdc_zicsr_zifencei_zba_zbb_zbc_zbs_lp64d*-build/test/test-fma",
"**/picolibc_rv64imafd_zicsr_zifencei_lp64d*-build/test/math_errhandling",
"**/picolibc_rv64imafd_zicsr_zifencei_lp64d*-build/test/test-fma",
"**/picolibc_rv64imfc_zicsr_zifencei_lp64f*-build/test/rounding-mode",
"**/picolibc_rv64imfc_zicsr_zifencei_lp64f*-build/test/math_errhandling",
"**/picolibc_rv64imfc_zicsr_zifencei_lp64f*-build/test/test-fma",
"**/picolibc_rv64imfc_zicsr_zifencei_zba_zbb_zbc_zbs_lp64f*-build/test/rounding-mode",
"**/picolibc_rv64imfc_zicsr_zifencei_zba_zbb_zbc_zbs_lp64f*-build/test/math_errhandling",
"**/picolibc_rv64imfc_zicsr_zifencei_zba_zbb_zbc_zbs_lp64f*-build/test/test-fma",
# Picolibc built with RISC-V Zc* extension does not work and all tests time
# out. Disable testing until this issue is fixed.
"**/picolibc_rv32emc_zicsr_zcb_zba_zbb_zbc_zbs_ilp32e*-build/*",
]


def is_disabled(image):
return any([image.endswith(t) for t in disabled_tests])
return any([fnmatch.fnmatch(image, t) for t in disabled_tests])


def run(args):
Expand Down
5 changes: 5 additions & 0 deletions scripts/llvm/test/multilib/rv32e.test
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,8 @@
# RUN: %clang -print-multi-directory --target=riscv32-none-elf -march=rv32emc_zicsr_zba_zbb_zbc_zbs -mabi=ilp32e | FileCheck %s --check-prefix=RV32EMC_ZICSR_ZBA_ZBB_ZBC_ZBS_ILP32E
# RV32EMC_ZICSR_ZBA_ZBB_ZBC_ZBS_ILP32E: riscv32-none-elf/rv32emc_zicsr_zba_zbb_zbc_zbs_ilp32e_exn_rtti{{$}}
# RV32EMC_ZICSR_ZBA_ZBB_ZBC_ZBS_ILP32E-EMPTY:

# RUN: %clang -print-multi-directory --target=riscv32-none-elf -march=rv32emc_zicsr_zcb_zba_zbb_zbc_zbs -mabi=ilp32e | FileCheck %s --check-prefix=RV32EMC_ZICSR_ZCB_ZBA_ZBB_ZBC_ZBS_ILP32E
# RUN: %clang -print-multi-directory --target=riscv32-none-elf -march=rv32emc_zicntr_zicsr_zcb_zba_zbb_zbc_zbs -mabi=ilp32e | FileCheck %s --check-prefix=RV32EMC_ZICSR_ZCB_ZBA_ZBB_ZBC_ZBS_ILP32E
# RV32EMC_ZICSR_ZCB_ZBA_ZBB_ZBC_ZBS_ILP32E: riscv32-none-elf/rv32emc_zicsr_zcb_zba_zbb_zbc_zbs_ilp32e_exn_rtti{{$}}
# RV32EMC_ZICSR_ZCB_ZBA_ZBB_ZBC_ZBS_ILP32E-EMPTY:
5 changes: 5 additions & 0 deletions scripts/llvm/test/multilib/rv64i.test
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@
# RV64IMAFDC_ZICSR_ZIFENCEI_LP64D: riscv64-none-elf/rv64imafdc_zicsr_zifencei_lp64d_exn_rtti{{$}}
# RV64IMAFDC_ZICSR_ZIFENCEI_LP64D-EMPTY:

# RUN: %clang -print-multi-directory --target=riscv64-none-elf -march=rv64imafdc_zicsr_zifencei_zba_zbb_zbc_zbs -mabi=lp64d | FileCheck %s --check-prefix=RV64IMAFDC_ZICSR_ZIFENCEI_ZBA_ZBB_ZBC_ZBS_LP64D
# RUN: %clang -print-multi-directory --target=riscv64-none-elf -march=rv64gc_zba_zbb_zbc_zbs -mabi=lp64d | FileCheck %s --check-prefix=RV64IMAFDC_ZICSR_ZIFENCEI_ZBA_ZBB_ZBC_ZBS_LP64D
# RV64IMAFDC_ZICSR_ZIFENCEI_ZBA_ZBB_ZBC_ZBS_LP64D: riscv64-none-elf/rv64imafdc_zicsr_zifencei_zba_zbb_zbc_zbs_lp64d_exn_rtti{{$}}
# RV64IMAFDC_ZICSR_ZIFENCEI_ZBA_ZBB_ZBC_ZBS_LP64D-EMPTY:

# RUN: %clang -print-multi-directory --target=riscv64-none-elf -march=rv64imafd_zicsr_zifencei -mabi=lp64d | FileCheck %s --check-prefix=RV64IMAFD_ZICSR_ZIFENCEI_LP64D
# RUN: %clang -print-multi-directory --target=riscv64-none-elf -march=rv64g -mabi=lp64d | FileCheck %s --check-prefix=RV64IMAFD_ZICSR_ZIFENCEI_LP64D
# RV64IMAFD_ZICSR_ZIFENCEI_LP64D: riscv64-none-elf/rv64imafd_zicsr_zifencei_lp64d_exn_rtti{{$}}
Expand Down
Loading