(no commit message)
authorlkcl <lkcl@web>
Wed, 1 Jun 2022 03:14:11 +0000 (04:14 +0100)
committerIkiWiki <ikiwiki.info>
Wed, 1 Jun 2022 03:14:11 +0000 (04:14 +0100)
openpower/sv/svp64_quirks.mdwn

index 7c02217729e16f9367429ef7f57ce527eea4280f..ec64b94291dd80fedd2860c0731805c213517a3f 100644 (file)
@@ -31,6 +31,22 @@ different encoding if SVP64-prefixed: it did not go well.
 The complexity that resulted
 in the decode phase was too great)*
 
+# Instruction Groups
+
+The basic principle of SVP64 is the prefix, which contains mode
+as well as register augmentation and predicates.  When thinking of
+instructions and Vectorising them, it is natural for arithmetic
+operations (ADD, OR) to be the first to spring to mind.
+Arithmetic instructions have registers, therefore augmentation
+applies, end of story, right?
+
+Except, Load and Store deals also with Memory, not just registers.
+Power ISA has Condition Register Fields: how can element widths
+apply there? And branches: how can you have Saturation on something
+that does not return an arithmetic result? In short: there are actually
+four different categories (five including those for which Vectorisation
+makes no sense at all, such as `sc` or `mtmsr`).
+
 # CR weird instructions
 
 [[sv/int_cr_predication]] is by far the biggest violator of the SVP64