Skip to content
  1. Mar 12, 2024
    • Joana Cruz's avatar
      Add row to rempitab table for infinity/nan edge cases (#528) · 9ccdcffe
      Joana Cruz authored
      Previously, when fetching elements from Sleef_rempitabsp
      or Sleef_rempitabdp for infinity/nan inputs, we would
      hit outside the table. This would trigger a global buffer
      overflow error when running any of the trig functions with
      an address sanitizer.
      Fixes issue #464, on multiple arch. Furthermore tester3advsimd and
      tester3advsimdnofma start passing when library is build with
      ASAN enabled.
      9ccdcffe
  2. Mar 07, 2024
    • Simon Hosie's avatar
      Add RVV inline header support. (#522) · e520dfde
      Simon Hosie authored
      e520dfde
    • Simon Hosie's avatar
      e0fbd341
    • Simon Hosie's avatar
      Clean up RVV register composition. (#521) · 3896b07d
      Simon Hosie authored
      Prefer use of __riscv_vcreate_*() intrinsics, where appropriate.  This
      does away with piecemeal assembly of a tuple register types and ensures
      that every component is defined.  It also gets rid of uninitialised
      variable warnings.
      
      __riscv_vcreate intrinsics aren't available in older toolchains but will
      be available in version 1.0 of the intrinsics interface.  In the interim
      include substitute macros which try to fill the gap as best as possible.
      
      Use a regular pattern of cast-then-insert, and extract-then-cast when
      dealing with tuple registers with mixed component types.
      
      Simplify two vcreate macros in helperrvv.h, remove a few unused macros, etc..
      3896b07d
  3. Mar 06, 2024
    • SH's avatar
      Reconcile RVV mask types. (#520) · 9492c39a
      SH authored
      Make the vmask types for single-precision and double-precision
      interfaces compatible, so that we have fewer divergent functions.
      
      Keep the vopmask types incompatible, because the underlying vbool*_t
      types still encode some underlying assumptions about the number of lanes
      involved.
      
      Make the still-incompatible function names distinct between SP and DP,
      and then reconcile these with the preprocessor at the end of the file so
      that the caller still sees the expected operations.  This will help when
      it comes to generating inline headers in a future revision.
      9492c39a
  4. Feb 20, 2024
  5. Feb 14, 2024
  6. Feb 09, 2024
  7. Feb 08, 2024
  8. Feb 07, 2024
  9. Jan 25, 2024
  10. Jan 24, 2024
  11. Jan 15, 2024
  12. Jan 10, 2024
  13. Jan 09, 2024
  14. Jan 08, 2024
  15. Dec 13, 2023
    • Joe Ramsay's avatar
      Support parallel builds with make (#491) · ba403c0e
      Joe Ramsay authored
      Individual COMMANDS in define_custom_command are not guaranteed to
      execute sequentially, meaning that the inline headers may be broken if
      doing a parallel build with make. Each command is extracted into its
      own custom_command (some are merged, such as subsequent sed calls) so
      that CMake can properly make sense of the dependencies and generate
      consistent headers in parallel.
      
      * Atomise creation of inline header, alias, dispscalar, simd disp, sleefquad header and build
      * Reuse existing atomic inline libm header generation for CUDA
      
      Now that custom_commands are atomic, parallel builds should be
      supported with make.
      
      * Use CMake cat instead of shell cat
      
      This requires minimum CMake 3.18, which is not particularly
      recent. This provides a better cross-platform way of concatenating
      files.
      ba403c0e
  16. Dec 12, 2023
  17. Dec 08, 2023
  18. Nov 21, 2023
  19. Nov 20, 2023
    • Ludovic Henry's avatar
      Integrate RISC-V support (#477) · cea44342
      Ludovic Henry authored
      
      
      * Add support for the RISC-V Vector ISA
      - RISC-V V 1.0 with (latest) intrinsics >=0.12.
      - Enable bit manip extensions on RISC-V.
      - Add RVVM*NOFMA configurations for determinism/bit-reproducibility across all architectures.
      
      * Not supported yet
      - DFT, QUAD, and GNUABI.
      - Only upcoming versions of gcc (14+) have support for latest intrinsics. Will be supported when available in release version of gcc.
      
      * CI Updates
      - Add riscv64 CI on GitHub Actions.
      - Add gcc (11 - #483) and llvm (17) builds on all architectures.
      - Disable a few failing test variants, tracked in #484 and #485.
      - Use same compiler versions across all builds.
      - Add sysroot for dependencies.
      - Nit: Reorder build-cross targets to group gcc/llvm per-arch together.
      
      ---------
      
      Co-authored-by: default avatarGlassOfWhiskey <iacopo.c92@gmail.com>
      Co-authored-by: default avatarEric Love <eric.love@sifive.com>
      cea44342
  20. Nov 10, 2023
    • Ludovic Henry's avatar
      Add CI on Github Actions for x86_64, aarch64, arm, ppc64 and s390x (#476) · 69cfa713
      Ludovic Henry authored
      * Add CI on Github Actions for x86_64, aarch64, armhf, ppc64 and s390x
      * Disable -march=native for testervecabi - fails when compiling on a host CPU with AVX512f (#478)
      * Enable qemu features for s390x, ppc64, and arm
      * Add some architecture-specific cmake flags
      * Use job dependencies to avoid duplicating building native
      * Fix permissions in downloaded artifacts
      * Disable arm inline headers - don't work (#480)
      * Document why DISABLE_VXE2 on s390x
      69cfa713
  21. Apr 05, 2021
  22. Mar 12, 2021
    • friendlyanon's avatar
      CMake package config (#412) · eb3d9778
      friendlyanon authored
      
      
      * Use variables from GNUInstallDirs everywhere
      
      * Componentize the install rules
      
      * Add headers to the interface include path
      
      * Add install rules for CMake package config
      
      * Associate inline headers to a target
      
      Previously inline_headers was a UTILITY target, which cannot be
      installed, so it was renamed to inline_headers_util and a new
      inline_headers INTERFACE library target is introduced instead.
      
      Co-authored-by: default avatarfriendlyanon <friendlyanon@users.noreply.github.com>
      eb3d9778
  23. Feb 13, 2021
  24. Feb 10, 2021
    • Naoki Shibata's avatar
      Yet another cleanup (#407) · 6725c54b
      Naoki Shibata authored
      This is yet another patch for cleaning up the code.
      It mainly removes warning messages generated when compiling gnuabi_compatibility.c.
      It unifies the code for detecting availability of vector extensions.
      It removes unused variables.
      It adds mveclibtest.c that tests if substitution of mveclib with sleefgnuabi works.
      6725c54b
  25. Feb 07, 2021
  26. Feb 05, 2021
    • Naoki Shibata's avatar
      Add functionality to replace libm and libquadmath functions (#405) · 65f0e7cb
      Naoki Shibata authored
      With this patch, libm functions and libquadmath functions can be replaced with sleef functions by defining SLEEF_REPLACE_LIBM_FUNCS and SLEEF_REPLACE_LIBQUADMATH_FUNCS macros before including sleef.h and sleefquad.h, respectively. The replaced libm functions can be automatically vectorized with gcc on x86_64.
      65f0e7cb
Loading