[GHC] #13852: Can we have more SIMD primops, corresponding to the untapped AVX etc. instructions?

GHC ghc-devs at haskell.org
Tue Jun 20 11:59:10 UTC 2017


#13852: Can we have more SIMD primops, corresponding to the untapped AVX etc.
instructions?
-------------------------------------+-------------------------------------
           Reporter:                 |             Owner:  (none)
  leftaroundabout                    |
               Type:  feature        |            Status:  new
  request                            |
           Priority:  normal         |         Milestone:
          Component:  Compiler       |           Version:  8.0.1
  (LLVM)                             |
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:  x86_64         |   Type of failure:  None/Unknown
  (amd64)                            |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 [http://hackage.haskell.org/package/ghc-prim-0.5.0.0/docs/GHC-
 Prim.html#g:28 GHC.Prim] contains a good couple of vectorised
 instructions, which can be [http://hackage.haskell.org/package/primitive-
 simd-0.1.0.0/docs/Data-Primitive-SIMD.html used by libraries] for
 generating nice fast e.g. sums of floating-point vectors.

 However, several instructions that modern processors could vectorise are
 missing there. In particular, I would like to be able to use the
 VPSLLVD...VPSRAVD shifting operations, and at some point perhaps
 VPMAXSQ...VPMINUQ maximum/minimum operations.

 It would be great if corresponding primops could be added. Else I would
 like to know – where is this stuff even defined?
 [http://hackage.haskell.org/package/ghc-
 prim-0.5.0.0/docs/src/GHC.Prim.html GHC.Prim] as such seems to be merely
 an automatically-generated dummy module, mostly for Haddock.

 (On the other hand, I find it also a bit strange that there are primops
 for [http://hackage.haskell.org/package/ghc-prim-0.5.0.0/docs/GHC-
 Prim.html#v:quotInt8X16-35- integer division], which is apparently
 [https://stackoverflow.com/questions/16822757/sse-integer-division not
 supported by SSE/AVX] at all!)

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13852>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list