Skip to content
Snippets Groups Projects
  1. Oct 18, 2024
  2. May 11, 2023
    • sheaf's avatar
      Add fused multiply-add instructions · 87eebf98
      sheaf authored and Marge Bot's avatar Marge Bot committed
      This patch adds eight new primops that fuse a multiplication and an
      addition or subtraction:
      
        - `{fmadd,fmsub,fnmadd,fnmsub}{Float,Double}#`
      
      fmadd x y z is x * y + z, computed with a single rounding step.
      
      This patch implements code generation for these primops in the following
      backends:
      
        - X86, AArch64 and PowerPC NCG,
        - LLVM
        - C
      
      WASM uses the C implementation. The primops are unsupported in the
      JavaScript backend.
      
      The following constant folding rules are also provided:
      
        - compute a * b + c when a, b, c are all literals,
        - x * y + 0 ==> x * y,
        - ±1 * y + z ==> z ± y and x * ±1 + z ==> z ± x.
      
      NB: the constant folding rules incorrectly handle signed zero.
      This is a known limitation with GHC's floating-point constant folding
      rules (#21227), which we hope to resolve in the future.
      87eebf98
  3. Jan 18, 2023
  4. May 07, 2021
    • Moritz Angermann's avatar
      [testlib/driver] denoise · 41b0c288
      Moritz Angermann authored
      this prevents the testlib/driver to be overly noisy, and will also
      kill some noise produiced by the aarch64-darwin cc (for now).
      
      Fixing sysctl, will allow us to run the test's properly in a nix-shell
      on aarch64-darwin
      
      (cherry picked from commit 5109e87e)
      41b0c288
  5. Apr 06, 2021
  6. Mar 22, 2021
    • Moritz Angermann's avatar
      [ci/arm/darwin/testsuite] Forwards ports from GHC-8.10 · 0cbdba27
      Moritz Angermann authored
      This is a set of forward ports (cherry-picks) from 8.10
      
      - a7d22795 [ci] Add support for building on aarch64-darwin
      - 5109e87e [testlib/driver] denoise
      - 307d3494 [ci] default value for CONFIGURE_ARGS
      - 10a18cb4 [testsuite] mark ghci056 as fragile
      - 16c13d5a [ci] Default value for MAKE_ARGS
      - ab571457 [ci/build] Copy config.sub around
      - 251892b9 [ci/darwin] bump nixpkgs rev
      - 5a6c36ec [testsuite/darwin] fix conc059
      - aae95ef0 [ci] add timing info
      - 3592d110 [Aarch64] No div-by-zero; disable test.
      - 57671071 [Darwin] mark stdc++ tests as broken
      - 33c4d497 [testsuite] filter out superfluous dylib warnings
      - 4bea83af [ci/nix-shell] Add Foundation and Security
      - 63455300 [testsuite/json2] Fix failure with LLVM backends
      - c3944bc8 [ci/nix-shell] [Darwin] Stop the ld warnings about libiconv.
      - b821fcc7 [testsuite] static001 is not broken anymore.
      - f7062e1b [testsuite/arm64] fix section_alignment
      - 820b0766 [darwin] stop the DYLD_LIBRARY_PATH madness
      - 07b1af03 [ci/nix-shell] uniquify NIX_LDFLAGS{_FOR_TARGET}
      
      As well as a few additional fixups needed to make this block compile:
      - Fixup all.T
      - Set CROSS_TARGET, BROKEN_TESTS, XZ, RUNTEST_ARGS, default value.
      - [ci] shell.nix bump happy
      0cbdba27
  7. Feb 20, 2019
  8. Jan 27, 2019
    • Ben Gamari's avatar
      testsuite: Add predicate for CPU feature availability · 1dd251b8
      Ben Gamari authored
      Previously testing code-generation for ISA extensions was nearly impossible
      since we had no ability to determine whether the host supports the needed
      extension. Here we fix this by introducing a simple /proc/cpuinfo-based
      testsuite predicate. We really ought to
      1dd251b8
Loading