(no commit message)
authorlkcl <lkcl@web>
Wed, 16 Dec 2020 13:31:00 +0000 (13:31 +0000)
committerIkiWiki <ikiwiki.info>
Wed, 16 Dec 2020 13:31:00 +0000 (13:31 +0000)
openpower/sv/svp_rewrite/svp64.mdwn

index 82d87d36ac6a14cc1eaabc67b9ec7cf9185fad00..f36d6fb4cc81de256efd913fc0ca6b400a2b0045 100644 (file)
@@ -122,16 +122,20 @@ alternative:
 
 ## ELWIDTH Encoding
 
-| Op Kind | ELWIDTH Value | Mnemonic                  | Description                                                                         |
-|---------|---------------|---------------------------|-------------------------------------------------------------------------------------|
-| Integer | 00            | `ELWIDTH=b`               | Byte: 8-bit integer                                                                 |
-| Integer | 01            | `ELWIDTH=h`               | Halfword: 16-bit integer                                                            |
-| Integer | 10            | `ELWIDTH=w`               | Word: 32-bit integer                                                                |
-| Integer | 11            | `ELWIDTH=d`               | Doubleword: 64-bit integer                                                          |
-| FP      | 00            | `ELWIDTH=bf16` (Reserved) | Reserved for [`bf16`](https://en.wikipedia.org/wiki/Bfloat16_floating-point_format) |
-| FP      | 01            | `ELWIDTH=f16`             | 16-bit IEEE 754 Half floating-point                                                 |
-| FP      | 10            | `ELWIDTH=f32`             | 32-bit IEEE 754 Single floating-point                                               |
-| FP      | 11            | `ELWIDTH=f64`             | 64-bit IEEE 754 Double floating-point                                               |
+Default behaviour is set to 0b00 so that zeros follow the convention of "npt doing anything".  In this case it means that elwidth overrides are not applicable.  Thus if a 32 bit instruction operates on 32 bit, `elwidth=0b00` specifies that this behaviour is unmodified.  Likewise when a processor is switched from 64 bit to 32 bit mode, `elwidth=0b00` states that, again, the behaviour is not to be modified.
+
+Only when elwidth is nonzero is the element width overridden to the explicitly required value.
+
+| Op Kind | Value | Mnemonic                  | Description                                                                         |
+|---------|-------|---------------------------|-------------------------------------------------------------------------------------|
+| Integer | 00    | DEFAULT        | default behaviour for operation    |
+| Integer | 01    | `ELWIDTH=b`    | Byte: 8-bit integer                                                                 |
+| Integer | 10    | `ELWIDTH=h`    | Halfword: 16-bit integer                                                            |
+| Integer | 11    | `ELWIDTH=w`    | Word: 32-bit integer                                                                |
+| FP      | 00    | DEFAULT        | default behaviour                    |
+| FP      | 01    | `ELWIDTH=bf16` (rsvd) | Reserved for [`bf16`](https://en.wikipedia.org/wiki/Bfloat16_floating-point_format) |
+| FP      | 10    | `ELWIDTH=f16`             | 16-bit IEEE 754 Half floating-point                                                 |
+| FP      | 11    | `ELWIDTH=f32`             | 32-bit IEEE 754 Single floating-point                                               |
 
 ## SUBVL Encoding