\end{itemize}
\end{frame}
-
+\frame{\frametitle{Power ISA v3.1 vstribr}
+
+ \lstinputlisting[language={}]{vstribr.txt}
+
+ \begin{itemize}
+ \item ironically this hard-coded instruction is
+ identical to general-purpose Simple-V DD-FFirst...
+ \end{itemize}
+
+}Po
\frame{\frametitle{maxloc}
\begin{itemize}
\begin{itemize}
\item Positional popcount adds up the totals of each bit set to 1 in each bit-position, of an array of input values.
\item Notoriously difficult to do in SIMD assembler: typically 550 lines
+
\end{itemize}
\lstinputlisting[language={}]{pospopcount.c}
\frame{\frametitle{Pospopcount}
\begin{center}
- \includegraphics[width=0.6\textwidth]{pospopcount.png}
+ \includegraphics[width=0.5\textwidth]{pospopcount.png}
\end{center}
}
\frame{\frametitle{Pospopcount}
\begin{center}
- \includegraphics[width=0.6\textwidth]{array_popcnt.png}
+ \includegraphics[width=0.5\textwidth]{array_popcnt.png}
\end{center}
+
+ \begin{itemize}
+ \item Part of the challenge is therefore to perform an appropriate transpose of the data,
+ in blocks that suit the processor and the ISA capacity.
+ \item The gbbd instruction is used for implementing the transpose function,
+ preparing the data for using the standard popcount instruction.
+
+
+ \end{itemize}
}
\frame{\frametitle{strncpy}
+ \lstinputlisting[language={}]{strncpy.c}
\begin{itemize}
\item "TODO
\end{itemize}
}
-\frame{\frametitle{strncpy.c}
-
- \lstinputlisting[language={}]{strncpy.c}
-
- \begin{itemize}
- \item "TODO
- \end{itemize}
-
-}
+
\frame{\frametitle{strncpy assembler}