Bug 953 - SVP64 assembly cookbook
Summary: SVP64 assembly cookbook
Alias: None
Product: Libre-SOC Website
Classification: Unclassified
Component: website (show other bugs)
Version: unspecified
Hardware: PC Linux
: --- enhancement
Assignee: Luke Kenneth Casson Leighton
URL: https://libre-soc.org/openpower/sv/co...
Depends on: 659 897 1050 1078 1085 672 676 701
Blocks: 952
  Show dependency treegraph
Reported: 2022-10-14 15:37 BST by Konstantinos Margaritis (markos)
Modified: 2023-10-13 14:29 BST (History)
3 users (show)

See Also:
NLnet milestone: NLnet.2022-08-051.OPF
total budget (EUR) for completion of task and all subtasks: 10000
budget (EUR) for this task, excluding subtasks' budget: 0
parent task for budget allocation: 952
child tasks for budget allocation: 659 672 676 701 1117
The table of payments (in EUR) for this task; TOML format:


Note You need to log in before you can comment on or make changes to this bug.
Description Konstantinos Margaritis (markos) 2022-10-14 15:37:51 BST
Following the recently completed tasks of VP8/VP9/AV1 implementations and other projects, it became apparent that it would be nice to have some sort of SVP64 assembly cookbook, where we would present a common algorithm in C and best practices converting it to SVP64 assembler. It will be very important both in showcasing the capabilities and features of SVP64 and also helping developers would would like to port their software to the new architecture -even before it's available.

high priorities:

* bug #1085  parallel prefix sum polynomials
* bug #1117 daxpy https://libre-soc.org/simple_v_extension/daxpy_example/
* bug #701   Matrix REMAP


* bug #1006  xchacha20 - more an "app note" than a cookbook but good stuff
* bug #676   Fortran MAXLOC
* bug #659   register-based insertion sort
* bug #1050  register-based bitonic sort
* bug #1078  register-based counting sort
* bug #TODO  FFT and DCT REMAP
* bug #672   positional popcount
* strncpy although this is already implemented it needs documenting
  - https://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=src/openpower/decoder/isa/test_caller_svp64_ldst.py;h=647e793#l32
  - https://github.com/riscv/riscv-v-spec/blob/master/example/strncpy.s
  - https://twitter.com/lkcl/status/1641919390588325888
* bug #TODO  Horizontal Sum
* bug #TODO  dot product (see bug #142 and bug #555)
* bug #TODO  cross product
* bug #TODO  VSX vexpandqm as zeroing predicate-mask sv.addi -1
* bug #TODO  VSX vextractwm/dm using sv.cmpi followed by crweird
* bug #TODO  VSX xxblendvh/w/b/d using... sv.mv.swizzle? pack/unpack with vec2?
* bug #TODO  VSX xxgenpcvdm looks fun!
* bug #TODO  sign-extending packed regs: sv.exts* and other tricks
* bug #TODO  conflictd
  - https://libre-soc.org/openpower/sv/vector_ops/discussion/
Comment 1 Luke Kenneth Casson Leighton 2023-03-08 19:48:23 GMT
Author: Luke Kenneth Casson Leighton <lkcl@lkcl.net>
Date:   Wed Mar 8 19:47:33 2023 +0000

    add svp64 cookbook recipe root

Comment 2 Luke Kenneth Casson Leighton 2023-03-15 17:15:48 GMT
we had the really good idea of meeting every couple of weeks to discuss
one of these ideas as a group.  open invitation.
Comment 3 Luke Kenneth Casson Leighton 2023-04-25 21:08:25 BST
idea: presentation of the cookbook ideas to be done under bug #1019
Comment 4 Toshaan Bharvani 2023-04-27 08:31:37 BST
Lets pick a timing for those meetings
- bi weekly
- 1 hour
Comment 5 Luke Kenneth Casson Leighton 2023-04-27 12:29:30 BST
(In reply to Toshaan Bharvani from comment #4)
> Lets pick a timing for those meetings
> - bi weekly
> - 1 hour

i'm happy they're in the existing tuesday.