[Git][ghc/ghc][wip/ncg-simd] 18 commits: Rebase of first attempt of NCG SIMD support
sheaf (@sheaf)
gitlab at gitlab.haskell.org
Wed Jun 12 11:12:23 UTC 2024
sheaf pushed to branch wip/ncg-simd at Glasgow Haskell Compiler / GHC
Commits:
8c70497a by sheaf at 2024-06-12T13:12:16+02:00
Rebase of first attempt of NCG SIMD support
This commit contains most of the changes from the commit:
Add support for SIMD operations in the NCG
This adds support for constructing vector types from Float#, Double# etc
and performing arithmetic operations on them
This commit is meant to serve as a base from which to figure out
register allocation issues.
- - - - -
040c8199 by sheaf at 2024-06-12T13:12:16+02:00
Add QuickCheck-like test for SIMD operations
- - - - -
96c58fec by sheaf at 2024-06-12T13:12:16+02:00
SIMD NCG: add stack spilling test
- - - - -
294a0ae5 by sheaf at 2024-06-12T13:12:16+02:00
SIMD NCG: fix pack & insert for DoubleX2
- - - - -
1b751223 by sheaf at 2024-06-12T13:12:16+02:00
SIMD NCG WIP: fix stack spilling
- - - - -
c8ca1325 by sheaf at 2024-06-12T13:12:16+02:00
SIMD NCG: accept simd006
- - - - -
0cee3fc4 by sheaf at 2024-06-12T13:12:17+02:00
WIP: fix mkSpillInstr/mkLoadInstr panics
- - - - -
e5f4de96 by sheaf at 2024-06-12T13:12:17+02:00
improve RegClass
- - - - -
8750825f by sheaf at 2024-06-12T13:12:17+02:00
set up basics for AArch64 SIMD
- - - - -
b5ae1105 by sheaf at 2024-06-12T13:12:17+02:00
use MOVU instructions for spill/unspill
- - - - -
070a1d0b by sheaf at 2024-06-12T13:12:17+02:00
WIP: start adding vector shuffle primops
- - - - -
1506d777 by sheaf at 2024-06-12T13:12:18+02:00
remove redundant code in CmmToAsm/PPC/Instr
- - - - -
3f0ce48f by sheaf at 2024-06-12T13:12:18+02:00
emit ymm/zmm when appropriate
- - - - -
8f52b2b7 by sheaf at 2024-06-12T13:12:18+02:00
fix reg2reg for vectors
- - - - -
5f16f8f4 by sheaf at 2024-06-12T13:12:18+02:00
WIP: lower vector shuffle instruction on X86
- - - - -
a90e9df9 by sheaf at 2024-06-12T13:12:18+02:00
NCG SIMD: fix shuffle lowering
- - - - -
e3fcf56e by sheaf at 2024-06-12T13:12:18+02:00
slight improvement to vector unpack
- - - - -
598dca07 by sheaf at 2024-06-12T13:12:18+02:00
fix whitespace
- - - - -
30 changed files:
- compiler/GHC/Builtin/primops.txt.pp
- compiler/GHC/Cmm/CallConv.hs
- compiler/GHC/Cmm/MachOp.hs
- compiler/GHC/Cmm/Reg.hs
- compiler/GHC/CmmToAsm/AArch64/Instr.hs
- compiler/GHC/CmmToAsm/AArch64/Regs.hs
- compiler/GHC/CmmToAsm/Config.hs
- compiler/GHC/CmmToAsm/Format.hs
- compiler/GHC/CmmToAsm/Instr.hs
- compiler/GHC/CmmToAsm/PPC.hs
- compiler/GHC/CmmToAsm/PPC/CodeGen.hs
- compiler/GHC/CmmToAsm/PPC/Instr.hs
- compiler/GHC/CmmToAsm/PPC/Ppr.hs
- compiler/GHC/CmmToAsm/PPC/Regs.hs
- compiler/GHC/CmmToAsm/Reg/Graph.hs
- compiler/GHC/CmmToAsm/Reg/Graph/Coalesce.hs
- compiler/GHC/CmmToAsm/Reg/Graph/Spill.hs
- compiler/GHC/CmmToAsm/Reg/Graph/SpillClean.hs
- compiler/GHC/CmmToAsm/Reg/Graph/SpillCost.hs
- compiler/GHC/CmmToAsm/Reg/Graph/TrivColorable.hs
- compiler/GHC/CmmToAsm/Reg/Linear.hs
- compiler/GHC/CmmToAsm/Reg/Linear/AArch64.hs
- compiler/GHC/CmmToAsm/Reg/Linear/Base.hs
- compiler/GHC/CmmToAsm/Reg/Linear/FreeRegs.hs
- compiler/GHC/CmmToAsm/Reg/Linear/JoinToTargets.hs
- compiler/GHC/CmmToAsm/Reg/Linear/PPC.hs
- compiler/GHC/CmmToAsm/Reg/Linear/StackMap.hs
- compiler/GHC/CmmToAsm/Reg/Linear/State.hs
- compiler/GHC/CmmToAsm/Reg/Linear/X86.hs
- compiler/GHC/CmmToAsm/Reg/Linear/X86_64.hs
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/381ec9f9a9c8a9fb15e32627a99c90caada5d90f...598dca076acdd985a79453335940822a625557f9
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/381ec9f9a9c8a9fb15e32627a99c90caada5d90f...598dca076acdd985a79453335940822a625557f9
You're receiving this email because of your account on gitlab.haskell.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20240612/9231d190/attachment.html>
More information about the ghc-commits
mailing list