bug 676: noted a way to reduce the number of instructions
[libreriscv.git] / conferences / fosdem2024 / fosdem2024_ddffirst / fosdem2024_ddffirst.tex
index fdbc83369f330f9c73983aa6705a336a584d619f..f196881e6a73e487ded1bfc6f9b52e46c03e1f37 100644 (file)
@@ -220,11 +220,22 @@ for (i = 0; i < VL; i++)
     \lstinputlisting[language={}]{maxloc.py}
 
        \begin{itemize}
-               \item "TODO
+               \item FORTRAN MAXLOC - find the index of largest number
+               \item notoriously difficult to optimally implement for SIMD
+               \item algorithms include \textit{depth-first} recursive
+                     descent (!) mapreduce-style, offsetting the
+                     locally-computed largest index (plus value) which
+                     are then tested in upper level(s)
+               \item SVP64 through Data-Dependent Fail-First can perform
+                         each of the two key while-loop tests with
+                         \textit{single instructions}.
+               \item There is however quite a bit of "housekeeping".
+                       Full analysis: \\
+       https://libre-soc.org/openpower/sv/cookbook/fortran\_maxloc
        \end{itemize}
 }
 
-\frame{\frametitle{maxlocassembler}
+\frame{\frametitle{maxloc assembler}
        
        \lstinputlisting[language={}]{maxloc.s}