Commit Graph

89 Commits (af6ce37f146b23d798db410ebac58657d19d71f7)

Author SHA1 Message Date
Paul Clarke af6ce37f14 Add examples for "match" intrinsics
Add examples for
- `vec_first_match_index`
- `vec_first_match_index_or_eos`
- `vec_first_mismatch_index`
- `vec_first_mismatch_index_or_eos`

Also, `vec_first_match_index` implmentations in this document and
in GCC were behaving like `vec_first_match_or_eos_index`.
Correct this document.  GCC PR94833 was already opened.

Fixes #18.

Signed-off-by: Paul A. Clarke <pc@us.ibm.com>
5 years ago
Bill Schmidt a0ae5b21bb Add LE implementations for vec_cnt[tl]z_lsbb
Signed-off-by: Bill Schmidt <wschmidt@linux.ibm.com>
5 years ago
Bill Schmidt 59daa67ca0 Add LE implementations for vec_cnt[tl]z_lsbb
Signed-off-by: Bill Schmidt <wschmidt@linux.ibm.com>
5 years ago
Paul Clarke 139af543b9 Clarify content regarding operators
- Explicitly mention that there are no default conversions.
- Clarify that binary operations are on like types.
- Clarify requirements for the ternary operator and add an example.

Asserting that the clarified content is clear enough,
Fixes #11.

Signed-off-by: Paul A. Clarke <pc@us.ibm.com>
5 years ago
Paul Clarke b795cb09f7 Add example initializer for vector __int128
Since there isn't a straightforward way of initializing `__int128` type
variables, provide an example for initializing `vector __int128` here.

Fixes #10.

Signed-off-by: Paul A. Clarke <pc@us.ibm.com>
5 years ago
Paul Clarke 24953643b8 Add example for vec_bperm
vec_bperm is a challenge for showing an example using just tables,
but I've made an attempt.

Three tables are used:
- The values of the input vectors *a* and *b*.
- A zoomed in view of the last two bytes of *a* and the bit
  manipulations therein that leads to the intermediate result.
- The result vector *r*.

Only one example has been provided, but it's getting big.

Fixes #14.

Signed-off-by: Paul A. Clarke <pc@us.ibm.com>
5 years ago
Paul Clarke 79b5466581 Add headers for new examples
In the absence of sufficient context, the new examples added to:
- vec_double{e,h,l,o}
- vec_permxor
- vec_pmsum_be
- vec_slv
- vec_srv
- vec_sum2s
- vec_sum4s
- vec_sums
- vec_unsigned{e,o}
may appear to be strictly big-endian.

Add headers to these examples showing the element indicies,
which hopefully provides sufficient context.

Fixes #44.

Signed-off-by: Paul A. Clarke <pc@us.ibm.com>
5 years ago
Bill Schmidt 195033ed41 Fix description of vec_bperm
Fixes #47.

Signed-off-by: Bill Schmidt <wschmidt@linux.ibm.com>
5 years ago
Paul Clarke b36c22b277 Add examples for vec_extract_fp32_from_short{h,l}
Also added table headers to more clearly indicate element ordering.

Fixes #17.

Signed-off-by: Paul A. Clarke <pc@us.ibm.com>
5 years ago
Bill Schmidt 48744ea198 Fix code generation for vec_pack_to_short_fp32
Fixes #45.
5 years ago
Paul Clarke 944e4b238d Add examples for vec_double{e,h,l,o}
Fixes #16.

Signed-off-by: Paul A. Clarke <pc@us.ibm.com>
5 years ago
Paul Clarke 6dade12660 Add examples for vec_sum2s, vec_sum4s, vec_sums
Fixes #26.

Signed-off-by: Paul A. Clarke <pc@us.ibm.com>
5 years ago
Bill Schmidt 08e3afcf62 Add 'const' to vec_ld* and vec_xl* pointer arguments
Fixed #37.

Signed-off-by: Bill Schmidt <wschmidt@linux.ibm.com>
5 years ago
Bill Schmidt 59cc953efa Change 1.0 to 1.7 for vec_unsigned[eo]
Signed-off-by: Bill Schmidt <wschmidt@linux.ibm.com>
5 years ago
Paul Clarke a8ee1740fb Add examples for vec_unsigned{e,o}
Add simple examples for `vec_unsignede` and `vec_unsignedo`,
making sure to show undefined results and negative truncation.

Fixes #29.

Signed-off-by: Paul A. Clarke <pc@us.ibm.com>
5 years ago
Bill Schmidt 0a7757714f Move the endian-sensitive built-in function table
Move the table so that it won't have a head-scratching location
in the HTML view.  Update it to add the first_match* and first_mismatch*
functions.

Fixed #39.

Signed-off-by: Bill Schmidt <wschmidt@linux.ibm.com>
5 years ago
Paul Clarke 21a921ea9a Fix return type for vec_permxor
The return type for `vec_permxor` which takes `vector signed char`
as inputs should also be `vector signed char`.

Fixes #38.

Signed-off-by: Paul A. Clarke <pc@us.ibm.com>
5 years ago
Bill Schmidt 2f4ddf0e8c Improve section 2.7.3 with tables
Fixes #12.

Signed-off-by: Bill Schmidt <wschmidt@linux.ibm.com>
5 years ago
Paul Clarke 418190d7b8 s/insruction/instruction/g
Signed-off-by: Paul A. Clarke <pc@us.ibm.com>
5 years ago
Bill Schmidt 2934030d69 Fixed typo in column length in Table 2.3
Signed-off-by: Bill Schmidt <wschmidt@linux.ibm.com>
5 years ago
Bill Schmidt a928b66b93 Add Table 2.3, Endian-Sensitive Built-In Functions
This fixes #7.

Signed-off-by: Bill Schmidt <wschmidt@linux.ibm.com>
5 years ago
Paul Clarke fa4c359db2 Add example for vec_pmsum_be
`vec_pmsum_be` is complex enough to warrant an example.

Fixes #33.

Signed-off-by: Paul A. Clarke <pc@us.ibm.com>
5 years ago
Paul Clarke 8c13a59ceb Add example for vec_permxor
`vec_permxor` is complex enough to warrant an example.

The table used is very wide. I squeezed it more by changing the names
of `index1` and `index2` to `x` and `y`, respectively.

Note: The table may still be too wide, as some additional warnings are
now generated during `mvn generate-sources`:
```
WARNING: Line 1 of a paragraph overflows the available area by more than 50 points. (See position 1:-1)
Apr 30, 2020 8:44:03 PM org.apache.fop.events.LoggingEventListener processEvent
WARNING: Line 1 of a paragraph overflows the available area by 468 millipoints. (See position 14259:-1)
Apr 30, 2020 8:44:03 PM org.apache.fop.events.LoggingEventListener processEvent
...
WARNING: span="inherit" on fo:block, but no explicit value found on the parent FO.
```

Fixes #20.

Signed-off-by: Paul A. Clarke <pc@us.ibm.com>
5 years ago
Bill Schmidt b521f3e0b3 Add pcv descriptions for vec_reve & vec_extract_fp32_from_short[hl] 5 years ago
Paul Clarke 13c16340e5 Add border around new examples in vec_slv and vec_srv
Signed-off-by: Paul A. Clarke <pc@us.ibm.com>
5 years ago
Paul Clarke c6ff2b8812 Add examples to vec_vslv and vec_vsrv
vec_vslv and vec_vsrv are confusing in their own right and even more
so because they operate only with big-endian semantics.

Some examples are warranted.

Note that the respective examples are arranged such that the impact of
shifting in zero bits has a visible impact.

Signed-off-by: Paul A. Clarke <pc@us.ibm.com>
5 years ago
Bill Schmidt aa0209f734 Wording change to avoid the word "map".
Signed-off-by: Bill Schmidt <wschmidt@linux.ibm.com>
5 years ago
Bill Schmidt 65bf9b2827 Replace "instructions" with "operators".
Signed-off-by: Bill Schmidt <wschmidt@linux.ibm.com>
5 years ago
Bill Schmidt f10f0d6283 Rewrite section 2.4 for #8.
Signed-off-by: Bill Schmidt <wschmidt@linux.ibm.com>
5 years ago
Bill Schmidt 6f0fb84c85 Add named constants to vec_test_data_class for #27.
Signed-off-by: Bill Schmidt <wschmidt@linux.ibm.com>
5 years ago
Bill Schmidt 109dc639e2 Finished reordering function type signatures for #23.
Signed-off-by: Bill Schmidt <wschmidt@linux.ibm.com>
5 years ago
Bill Schmidt 65b6e8041b Reorder some function signatures for #23, more to go.
Signed-off-by: Bill Schmidt <wschmidt@linux.ibm.com>
5 years ago
Bill Schmidt 83d360047d Fix issue #5 by adding information about XL compiler bug reporting.
Signed-off-by: Bill Schmidt <wschmidt@linux.ibm.com>
5 years ago
Paul Clarke 83b190f520 Fix "Vector Registers as Part of VSRs" figure scaling
The "Vector Registers as Part of VSRs" figure was very large,
especially as it immediately follows an almost identical figure.

Before this change:
fig-fpr-vsr.png: PNG image data, 663 x 300...
fig-vr-vsr.png:  PNG image data, 1367 x 608...

After this change:
fig-fpr-vsr.png: PNG image data, 663 x 300...
fig-vr-vsr.png:  PNG image data, 645 x 287...

I chose this size because the actual side boundaries of the
table most closely match in size.

The scaling, using The GIMP, resulted in somewhat blurry lines,
but still quite clear enough, and good enough.

Signed-off-by: Paul A. Clarke <pc@us.ibm.com>
5 years ago
Bill Schmidt 5d4899554c Resolve a number of comments from Paul Clarke, and one from Steve Munroe. 5 years ago
Bill Schmidt 42a18a5155 Merge branch 'master' of https://github.com/OpenPOWERFoundation/Programming-Guides 5 years ago
Bill Schmidt 8d8f1399c8 Add specification conformance section. 5 years ago
Jeff Scheel 0355015615 Fix URL links with .pdf extensions by substituting "%2e" fore "."
Signed-of-by: Jeff Scheel <scheel@us.ibm.com>
5 years ago
Bill Schmidt d84bc2d381 Mark this document as Standard Track. 5 years ago
Bill Schmidt e7eed33ece Create revision 1.0.0-prd for public review draft. 5 years ago
Bill Schmidt baccd1d54d Consistency of case for N-1 and Nth. 5 years ago
Bill Schmidt 8b350f9935 Changes for submission to OpenPOWER Systems SW Group. 5 years ago
Bill Schmidt cb85de8310 Fix typos. 5 years ago
Bill Schmidt 4a0e35f1d6 Make updates for comments received so far, including issue #4 and
issue #5.  XL bug report support for Linux is still pending.
5 years ago
Bill Schmidt 029c89866f Changed to consistently use Power versus POWER, Power ISA versus
PowerISA, etc.  Added graphic to vec_gb.
5 years ago
Bill Schmidt 4b974079d2 Updated bk_main to show this as revision 0.9.1. 5 years ago
Bill Schmidt 44014d7a20 Finish pages for vec_first_{,mis}match{,_eos}_index. 5 years ago
Bill Schmidt 772dc10758 Various clean-ups in the vector reference. A couple remain. 5 years ago
Bill Schmidt 0164b53b85 Finish all the front matter! 5 years ago
Bill Schmidt cd7e3f4a4b Finish chapter 2. 5 years ago