Abhiroop (Abhiroop Sarkar)
User

Projects

User does not belong to any projects.

User Details

User Since
Mar 15 2018, 7:00 PM (27 w, 3 d)

Recent Activity

Aug 1 2018

Abhiroop retitled D5032: Add support for Int32# and Word32# from [WIP] Add support for Int32# and Word32# to Add support for Int32# and Word32#.
Aug 1 2018, 10:53 PM
Abhiroop updated the diff for D5032: Add support for Int32# and Word32#.
  • Fix the type constructor function for Int32 and Word32
  • Add more tests for Int32# and Word32#
Aug 1 2018, 10:36 PM
Herald added a reviewer for D5032: Add support for Int32# and Word32#: goldfire.
Aug 1 2018, 11:34 AM

Jul 24 2018

Abhiroop added a comment to D5006: Add support for Int16# and Word16#.

I will add the Int SIMD stuff on top of this. This adds support for Int16# and Word16# on top of the Int8# and Word8# support in D4475

Jul 24 2018, 6:13 PM
Abhiroop added inline comments to D5006: Add support for Int16# and Word16#.
Jul 24 2018, 4:55 PM
Abhiroop updated the diff for D5006: Add support for Int16# and Word16#.
  • Add support for Int16# and Word16# in binary
Jul 24 2018, 4:55 PM
Abhiroop updated the summary of D5006: Add support for Int16# and Word16#.
Jul 24 2018, 4:55 PM
Herald added a reviewer for D5006: Add support for Int16# and Word16#: goldfire.
Jul 24 2018, 4:02 PM

Jul 14 2018

Abhiroop updated the diff for D4813: [WIP] Add support for SIMD operations in the NCG.
  • Modify all pack/broadcast variants to accept any CmmExpr argument and rewrite codegen for that
  • Modify the StgCmmPrim definition of broadcast
  • Modify CmmLint condition for broadcast
Jul 14 2018, 12:07 AM

Jul 9 2018

Abhiroop updated the diff for D4813: [WIP] Add support for SIMD operations in the NCG.
  • Remove the inlining hack and allow -O2 to fully work for vectors
Jul 9 2018, 8:25 PM
Abhiroop added inline comments to D4813: [WIP] Add support for SIMD operations in the NCG.
Jul 9 2018, 8:11 PM

Jul 8 2018

Abhiroop updated the diff for D4813: [WIP] Add support for SIMD operations in the NCG.
  • Enrich STG vector registers with Length width and register type information
  • Add support for the SSE family of vector instructions
Jul 8 2018, 3:28 PM

Jul 2 2018

Abhiroop updated the diff for D4922: Enrich Xmm register with Length Width and datatype information.
  • Fix parsing issue
Jul 2 2018, 5:38 PM
Abhiroop updated the diff for D4922: Enrich Xmm register with Length Width and datatype information.
  • Fix linter issues
Jul 2 2018, 5:34 PM
Abhiroop added a comment to D4922: Enrich Xmm register with Length Width and datatype information.

I tried adding the Length, Width and data type information without keeping it a Maybe but it was proving to be almost impossible. That patch is here: https://gist.github.com/Abhiroop/ba9cb911385e64484f6ce317ca36aa90 I also tried by adding Length, Width etc info in the globalRegType and cmmRegType function but I hit a dead end with that approach as well. This looks like the most sane way forward.

Jul 2 2018, 5:25 PM
Abhiroop created D4922: Enrich Xmm register with Length Width and datatype information.
Jul 2 2018, 5:20 PM

Jun 29 2018

Abhiroop added inline comments to D4813: [WIP] Add support for SIMD operations in the NCG.
Jun 29 2018, 10:42 AM
Abhiroop updated the diff for D4813: [WIP] Add support for SIMD operations in the NCG.
  • Re-enable the liveness analysis of vector operations
  • Change the constructors and other handlers of packing operations
  • Temporarily disable inlining for vector operations
Jun 29 2018, 10:24 AM

Jun 28 2018

Abhiroop updated the diff for D4813: [WIP] Add support for SIMD operations in the NCG.
  • Disable the liveness analysis for vector operations when running with -O2
  • Add tests for packing and unpacking with -O2
Jun 28 2018, 4:35 PM

Jun 26 2018

Abhiroop added inline comments to D4813: [WIP] Add support for SIMD operations in the NCG.
Jun 26 2018, 6:38 PM
Abhiroop retitled D4813: [WIP] Add support for SIMD operations in the NCG from [WIP] Add support for broadcastFloatX4# and unpackFloatX4# operations to [WIP] Add support for SIMD operations in the NCG.
Jun 26 2018, 6:09 PM
Abhiroop updated the diff for D4813: [WIP] Add support for SIMD operations in the NCG.
  • Rewrite the pretty printer to use the Format information and generalize the instructions
  • Add support for packing, unpacking, broadcasting doubles
  • Add support for arithmetic operations on doubles
  • Add tests for the above and minor changes in the linter and other places to accomodate doubles
Jun 26 2018, 5:02 PM
Abhiroop updated subscribers of D4813: [WIP] Add support for SIMD operations in the NCG.
Jun 26 2018, 5:58 AM

Jun 22 2018

Abhiroop added a comment to D4882: WIP Add support for SIMD integer instructions.

@newhoggy The project that you trying build is an old fork of ghc which I haven't updated in a long time. My changes are all available here: https://github.com/Abhiroop/ghc-1

Jun 22 2018, 6:40 AM

Jun 21 2018

Abhiroop added a comment to D4882: WIP Add support for SIMD integer instructions.

@newhoggy with respect to your comment on D4813 about how you can merge your code, I can make a suggestion that you can try raising a PR against my wip/simd-ncg-support. Otherwise you might end up duplicating a lot of the effort and some of the more important types like Format or important functions like getVecRegisterReg might change in their representation, in which case you might have to end up rewriting a lot of your code. So my suggestion would be perhaps raising a PR against my branch so it can accumulate all the changes related to vectorization in NCG.

Jun 21 2018, 9:07 AM
Abhiroop added a comment to D4882: WIP Add support for SIMD integer instructions.

@newhoggy Well some of the assembler errors are quite clear like the errors with vmovdqu64 which states error: instruction requires: AVX-512 ISA AVX-512 VL ISA and the Intel doc also mentions that these are AVX 512 operations which are supported in the very high end Xeon Phi processors or if you have the X generation of core i3, i5, i7 processors.

Jun 21 2018, 8:59 AM
Abhiroop added inline comments to D4813: [WIP] Add support for SIMD operations in the NCG.
Jun 21 2018, 8:39 AM

Jun 20 2018

Abhiroop updated the diff for D4813: [WIP] Add support for SIMD operations in the NCG.
  • Add some explanatory comments
Jun 20 2018, 11:49 AM
Abhiroop updated the diff for D4813: [WIP] Add support for SIMD operations in the NCG.
  • Add vector negate operation and tests
  • Fix other code review comments
Jun 20 2018, 11:33 AM
Abhiroop added inline comments to D4813: [WIP] Add support for SIMD operations in the NCG.
Jun 20 2018, 10:33 AM
Abhiroop added inline comments to D4813: [WIP] Add support for SIMD operations in the NCG.
Jun 20 2018, 8:24 AM

Jun 19 2018

Abhiroop added inline comments to D4813: [WIP] Add support for SIMD operations in the NCG.
Jun 19 2018, 10:20 PM
Abhiroop added inline comments to D4813: [WIP] Add support for SIMD operations in the NCG.
Jun 19 2018, 10:20 PM
Abhiroop added a comment to D4849: Add cmpeq pack int instructions.

Perhaps instead of working with the -mmx flag and family you can try using the SSE2 based PCMPEQB xmm1, xmm2/m128.

Jun 19 2018, 5:12 PM
Abhiroop added inline comments to D4849: Add cmpeq pack int instructions.
Jun 19 2018, 5:01 PM
Abhiroop updated the diff for D4813: [WIP] Add support for SIMD operations in the NCG.
  • Modify unpack to use shuffle operation and add tests for it
Jun 19 2018, 8:51 AM

Jun 18 2018

Abhiroop added inline comments to D4813: [WIP] Add support for SIMD operations in the NCG.
Jun 18 2018, 9:57 PM
Abhiroop added inline comments to D4813: [WIP] Add support for SIMD operations in the NCG.
Jun 18 2018, 3:03 PM
Abhiroop added inline comments to D4813: [WIP] Add support for SIMD operations in the NCG.
Jun 18 2018, 2:46 PM
Abhiroop added a comment to D4849: Add cmpeq pack int instructions.

@newhoggy Not very sure how you would proceed to rebase the work on D4813 but I can point you to the original repo where this work is happening: https://github.com/Abhiroop/ghc-1/tree/wip/simd-ncg-support

Jun 18 2018, 1:09 PM

Jun 12 2018

Abhiroop added inline comments to D4813: [WIP] Add support for SIMD operations in the NCG.
Jun 12 2018, 4:55 PM
Abhiroop updated the diff for D4813: [WIP] Add support for SIMD operations in the NCG.
  • Add support for float division
  • Add support for packFloatX4#
  • Introduce a new MachOp MO_VF_Broadcast to differentiate between pack and broadcast
  • Add tests for divide and pack
Jun 12 2018, 4:46 PM

Jun 11 2018

Abhiroop abandoned D4779: 1. Modify the StgCmmPrim bridge to remove the wasted register zeroing 2. Add some vector register utils like making temporary virtual registers 3. Add the width hardcoded version of braodcast 4. Add the entire pretty printing logic for the 3....
Jun 11 2018, 8:39 AM

Jun 10 2018

Abhiroop updated the diff for D4813: [WIP] Add support for SIMD operations in the NCG.
  • Add support vector addition, multiplications and substraction
  • Add tests for the arithmetic operations
  • Fix vector width logic
  • Fix minor compiler warnings and remove unneccessary changes
Jun 10 2018, 2:12 PM

Jun 9 2018

Abhiroop updated the diff for D4813: [WIP] Add support for SIMD operations in the NCG.
  • Unify the VecFormat data type with the Format data type
Jun 9 2018, 6:56 PM
Abhiroop added inline comments to D4813: [WIP] Add support for SIMD operations in the NCG.
Jun 9 2018, 4:20 PM
Abhiroop added inline comments to D4813: [WIP] Add support for SIMD operations in the NCG.
Jun 9 2018, 1:48 PM
Abhiroop updated the diff for D4813: [WIP] Add support for SIMD operations in the NCG.
  • Make the scalar formats more precise
  • Add support for data definitions lifting unlifted vector types like FloatX4#
  • Allow lifted vector types to have instances of various typeclasses by implementing CmmLoad
  • Add tests for data defintions and instances definitions etc
  • Implementation of broadcast and unpack operations remain
Jun 9 2018, 1:48 PM

Jun 8 2018

Abhiroop added inline comments to D4813: [WIP] Add support for SIMD operations in the NCG.
Jun 8 2018, 7:58 PM

Jun 7 2018

Abhiroop added inline comments to D4813: [WIP] Add support for SIMD operations in the NCG.
Jun 7 2018, 7:50 PM
Abhiroop added a reviewer for D4813: [WIP] Add support for SIMD operations in the NCG: AndreasK.
Jun 7 2018, 5:58 PM
Abhiroop added inline comments to D4813: [WIP] Add support for SIMD operations in the NCG.
Jun 7 2018, 5:58 PM
Abhiroop updated the diff for D4813: [WIP] Add support for SIMD operations in the NCG.

This contains the implementation and tests of the functions broadcastFloatX4# and unpackFloatX4#
Data type definitions / lifting dont work yet, will update after i fix that shortly
The VADDPS operation is incorrect and needs to be updated

Jun 7 2018, 5:39 PM
Abhiroop updated the diff for D4813: [WIP] Add support for SIMD operations in the NCG.

Fix the Cmm Lint errors and add tests

Jun 7 2018, 5:39 PM
Abhiroop added inline comments to D4813: [WIP] Add support for SIMD operations in the NCG.
Jun 7 2018, 4:05 PM
Abhiroop retitled D4813: [WIP] Add support for SIMD operations in the NCG from THIS IS A WIP DIFF add support for broadcastFloatX4# and unpackFloatX4# operations to THIS IS A WIP DIFFadd support for broadcastFloatX4# and unpackFloatX4# operations.
Jun 7 2018, 3:54 PM
Abhiroop created D4813: [WIP] Add support for SIMD operations in the NCG.
Jun 7 2018, 3:42 PM

Jun 5 2018

Abhiroop added a comment to D4779: 1. Modify the StgCmmPrim bridge to remove the wasted register zeroing 2. Add some vector register utils like making temporary virtual registers 3. Add the width hardcoded version of braodcast 4. Add the entire pretty printing logic for the 3....

@simonmar This diff is basically my first diff in extending the native code generator to add support for SIMD instructions, in response to the trac ticket : https://ghc.haskell.org/trac/ghc/ticket/7741 I am doing this project as part of Google Summer of Code (GSoC).

Jun 5 2018, 5:08 PM

Jun 4 2018

Abhiroop added inline comments to D4779: 1. Modify the StgCmmPrim bridge to remove the wasted register zeroing 2. Add some vector register utils like making temporary virtual registers 3. Add the width hardcoded version of braodcast 4. Add the entire pretty printing logic for the 3....
Jun 4 2018, 12:10 PM
Abhiroop edited reviewers for D4779: 1. Modify the StgCmmPrim bridge to remove the wasted register zeroing 2. Add some vector register utils like making temporary virtual registers 3. Add the width hardcoded version of braodcast 4. Add the entire pretty printing logic for the 3..., added: AndreasK; removed: simonmar.
Jun 4 2018, 7:26 AM
Abhiroop added inline comments to D4779: 1. Modify the StgCmmPrim bridge to remove the wasted register zeroing 2. Add some vector register utils like making temporary virtual registers 3. Add the width hardcoded version of braodcast 4. Add the entire pretty printing logic for the 3....
Jun 4 2018, 7:13 AM

Jun 3 2018

Abhiroop added inline comments to D4779: 1. Modify the StgCmmPrim bridge to remove the wasted register zeroing 2. Add some vector register utils like making temporary virtual registers 3. Add the width hardcoded version of braodcast 4. Add the entire pretty printing logic for the 3....
Jun 3 2018, 3:23 PM
Abhiroop updated the diff for D4779: 1. Modify the StgCmmPrim bridge to remove the wasted register zeroing 2. Add some vector register utils like making temporary virtual registers 3. Add the width hardcoded version of braodcast 4. Add the entire pretty printing logic for the 3....
  • Add a vecFormat to width helper function, fix some arcanist linter comments and remove undefined instances
Jun 3 2018, 3:22 PM
Abhiroop edited reviewers for D4779: 1. Modify the StgCmmPrim bridge to remove the wasted register zeroing 2. Add some vector register utils like making temporary virtual registers 3. Add the width hardcoded version of braodcast 4. Add the entire pretty printing logic for the 3..., added: carter; removed: simonmar.
Jun 3 2018, 3:22 PM
Abhiroop removed reviewers for D4779: 1. Modify the StgCmmPrim bridge to remove the wasted register zeroing 2. Add some vector register utils like making temporary virtual registers 3. Add the width hardcoded version of braodcast 4. Add the entire pretty printing logic for the 3...: bgamari, simonmar.
Jun 3 2018, 2:19 PM
Abhiroop created D4779: 1. Modify the StgCmmPrim bridge to remove the wasted register zeroing 2. Add some vector register utils like making temporary virtual registers 3. Add the width hardcoded version of braodcast 4. Add the entire pretty printing logic for the 3....
Jun 3 2018, 2:19 PM