You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Programming-Guides/Intrinsics_Reference/ch_vec_reference.xml

22990 lines
782 KiB
XML

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
Copyright (c) 2017 OpenPOWER Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<chapter version="5.0" xml:lang="en" xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="section_vec_intrinsics">
<!-- Chapter Title goes here. -->
<title>Vector Intrinsic Reference</title>
<para>Some front matter should go here, describing conventions
used throughout the chapter.</para>
<section>
<title>Built-In Vector Functions</title>
<para>Some front matter should go here, describing conventions
specific to this section.</para>
<?hard-pagebreak?>
<simplesect xml:id="vec_abs">
<title>vec_abs</title>
<subtitle>Vector Absolute Value</subtitle>
<programlisting>
r = vec_abs (a)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector <emphasis role="bold">r</emphasis> that contains the
absolute values of the contents of the given vector
<emphasis role="bold">a</emphasis>.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of each element of <emphasis role="bold">r</emphasis> is the
absolute value of the corresponding element of
<emphasis role="bold">a</emphasis>. For integer vectors, the arithmetic
is modular.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_abs</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>
vspltisw t,0
vsububm t,t,a
vmaxsb r,t,a
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>
vspltisw t,0
vsubuhm t,t,a
vmaxsh r,t,a
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
vspltisw t,0
vsubuwm t,t,a
vmaxsw r,t,a
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>
vspltisw t,0
vsubudm t,t,a
vmaxsd r,t,a
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>
xvabssp r,a
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>
xvabsdp r,a
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_absd">
<title>vec_absd</title>
<subtitle>Vector Absolute Difference</subtitle>
<programlisting>
r = vec_absd (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Computes the absolute difference of two vectors.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of each element of <emphasis role="bold">r</emphasis> is the
absolute difference of the corresponding elements of <emphasis
role="bold">a</emphasis> and <emphasis role="bold">b</emphasis>, using
modulo arithmetic.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_absd</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Restrictions</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>
vabsdub r,a,b
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry>
<programlisting>
vabsduh r,a,b
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
vabsduw r,a,b
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_abss">
<title>vec_abss</title>
<subtitle>Vector Absolute Value Saturated</subtitle>
<programlisting>
r = vec_abss (a)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector <emphasis role="bold">r</emphasis> that contains the
saturated absolute values of the contents of the given vector
<emphasis role="bold">a</emphasis>.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of each element of <emphasis role="bold">r</emphasis> is the
saturated absolute value of the corresponding element of
<emphasis role="bold">a</emphasis>.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_abss</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>
vspltisb t,0
vsubsbs t,t,a
vmaxsb r,t,a
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>
vspltish t,0
vsubshs t,t,a
vmaxsh r,t,a
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
vspltisw t,0
vsubsws t,t,a
vmaxsw r,t,a
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_add">
<title>vec_add</title>
<subtitle>Vector Addition</subtitle>
<programlisting>
r = vec_add (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Computes the sum of two vectors.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of each element of <emphasis role="bold">r</emphasis> is the
sum of the corresponding elements of <emphasis
role="bold">a</emphasis> and <emphasis role="bold">b</emphasis>. Modular
arithmetic is used for both signed and unsigned integers.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_add</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>
vaddubm r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>
vaddubm r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>
vadduhm r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry>
<programlisting>
vadduhm r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
vadduwm r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
vadduwm r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>
vaddudm r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry>
<programlisting>
vaddudm r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry>
<programlisting>
vadduqm r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry>
<programlisting>
vadduqm r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>
xvaddsp r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>
xvadddp r,a,b
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_addc">
<title>vec_addc</title>
<subtitle>Vector Add Carrying</subtitle>
<programlisting>
r = vec_addc (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector of carry bits produced by adding two vectors.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of each element of <emphasis role="bold">r</emphasis> is the
carry produced by adding the corresponding elements of <emphasis
role="bold">a</emphasis> and <emphasis role="bold">b</emphasis> (1
if there is a carry, 0 otherwise).
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_addc</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
vaddcuw r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
vaddcuw r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry>
<programlisting>
vaddcuq r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry>
<programlisting>
vaddcuq r,a,b
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_adde">
<title>vec_adde</title>
<subtitle>Vector Add Extended</subtitle>
<programlisting>
r = vec_adde (a, b, c)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector formed as the sum of two vectors and a carry vector.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of each element of <emphasis role="bold">r</emphasis> is
produced by adding the corresponding elements of <emphasis
role="bold">a</emphasis> and <emphasis role="bold">b</emphasis> with
a carry specified in the corresponding element of <emphasis
role="bold">c</emphasis> (1 if there is a carry, 0 otherwise).
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_adde</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">c</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
vspltisw t,1
vadduwm r,a,b
xxland c,c,t
vadduwm r,r,c
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
vspltisw t,1
vadduwm r,a,b
xxland c,c,t
vadduwm r,r,c
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry>
<programlisting>
vaddeuqm r,a,b,c
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry>
<programlisting>
vaddeuqm r,a,b,c
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_addec">
<title>vec_addec</title>
<subtitle>Vector Add Extended Carrying</subtitle>
<programlisting>
r = vec_addec (a, b, c)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector of carry bits produced by adding two vectors and
a carry vector.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of each element of <emphasis role="bold">r</emphasis> is
the carry produced by adding the corresponding elements of <emphasis
role="bold">a</emphasis> and <emphasis role="bold">b</emphasis> and
a carry specified in the corresponding element of <emphasis
role="bold">c</emphasis> (1 if there is a carry, 0 otherwise).
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_addec</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">c</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
vspltisw t,1
xxland u,c,t
vadduwm v,a,b
vaddcuw w,a,b
vaddcuw x,v,u
xxlor r,w,x
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
vspltisw t,1
xxland u,c,t
vadduwm v,a,b
vaddcuw w,a,b
vaddcuw x,v,u
xxlor r,w,x
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry>
<programlisting>
vaddecuq r,a,b,c
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry>
<programlisting>
vaddecuq r,a,b,c
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_adds">
<title>vec_adds</title>
<subtitle>Vector Add Saturating</subtitle>
<programlisting>
r = vec_adds (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Computes the saturated sum of two vectors.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of each element of <emphasis role="bold">r</emphasis> is the
saturated sum of the corresponding elements of <emphasis
role="bold">a</emphasis> and <emphasis role="bold">b</emphasis>.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_adds</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>
vaddsbs r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>
vaddubs r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>
vaddshs r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry>
<programlisting>
vadduhs r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
vaddsws r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
vadduws r,a,b
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_and">
<title>vec_and</title>
<subtitle>Vector AND</subtitle>
<programlisting>
r = vec_and (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Performs a bitwise AND of two vectors.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of <emphasis role="bold">r</emphasis> is the bitwise AND
of <emphasis role="bold">a</emphasis> and <emphasis
role="bold">b</emphasis>.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_and</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Restrictions</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry>
<programlisting>
xxland r,a,b
</programlisting>
</entry>
<entry>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>
xxland r,a,b
</programlisting>
</entry>
<entry>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>
xxland r,a,b
</programlisting>
</entry>
<entry>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry>
<programlisting>
xxland r,a,b
</programlisting>
</entry>
<entry>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>
xxland r,a,b
</programlisting>
</entry>
<entry>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry>
<programlisting>
xxland r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
xxland r,a,b
</programlisting>
</entry>
<entry>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry>
<programlisting>
xxland r,a,b
</programlisting>
</entry>
<entry>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
xxland r,a,b
</programlisting>
</entry>
<entry>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry>
<programlisting>
xxland r,a,b
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>
xxland r,a,b
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry>
<programlisting>
xxland r,a,b
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>
xxland r,a,b
</programlisting>
</entry>
<entry>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>
xxland r,a,b
</programlisting>
</entry>
<entry>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_andc">
<title>vec_andc</title>
<subtitle>Vector AND with Complement</subtitle>
<programlisting>
r = vec_andc (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Performs a bitwise AND of one vector with the bitwise complement of
another vector.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of <emphasis role="bold">r</emphasis> is the bitwise AND
of <emphasis role="bold">a</emphasis> with the bitwise complement
of <emphasis role="bold">b</emphasis>.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_andc</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Restrictions</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry>
<programlisting>
xxlandc r,a,b
</programlisting>
</entry>
<entry>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>
xxlandc r,a,b
</programlisting>
</entry>
<entry>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>
xxlandc r,a,b
</programlisting>
</entry>
<entry>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry>
<programlisting>
xxlandc r,a,b
</programlisting>
</entry>
<entry>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>
xxlandc r,a,b
</programlisting>
</entry>
<entry>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry>
<programlisting>
xxlandc r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
xxlandc r,a,b
</programlisting>
</entry>
<entry>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry>
<programlisting>
xxlandc r,a,b
</programlisting>
</entry>
<entry>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
xxlandc r,a,b
</programlisting>
</entry>
<entry>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry>
<programlisting>
xxlandc r,a,b
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>
xxlandc r,a,b
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry>
<programlisting>
xxlandc r,a,b
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>
xxlandc r,a,b
</programlisting>
</entry>
<entry>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>
xxlandc r,a,b
</programlisting>
</entry>
<entry>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_avg">
<title>vec_avg</title>
<subtitle>Vector Average</subtitle>
<programlisting>
r = vec_avg (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the elementwise average of two vectors.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of each element of <emphasis role="bold">r</emphasis> is the
average of the value of the corresponding elements of <emphasis
role="bold">a</emphasis> and <emphasis role="bold">b</emphasis>.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_avg</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>
vavgsb r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>
vavgub r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>
vavgsh r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry>
<programlisting>
vavguh r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
vavgsw r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
vavguw r,a,b
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_bperm">
<title>vec_bperm</title>
<subtitle>Vector Bit Permute</subtitle>
<programlisting>
r = vec_bperm (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Gathers up to 16 one-bit values from a quadword or from each
doubleword element in the specified order, zeroing other bits.
</para>
<para><emphasis role="bold">Result value:</emphasis>
When the type of <emphasis role="bold">a</emphasis> is vector
unsigned char or vector unsigned __int128:
<itemizedlist>
<listitem>
<para>
For each <emphasis>i</emphasis>
<inlineequation>
<mathphrase>
(0 &#x2264; <emphasis>i</emphasis> &lt; 16),
</mathphrase>
</inlineequation>
let bit index <emphasis>j</emphasis> denote the byte value of the
<emphasis>i</emphasis><superscript>th</superscript>
element of <emphasis role="bold">b</emphasis>.
</para>
</listitem>
<listitem>
<para>
If bit index <emphasis>j</emphasis> is greater than or equal to
128, bit <emphasis>i</emphasis> of
<emphasis role="bold">r</emphasis> is set to 0.
</para>
</listitem>
<listitem>
<para>
If bit index <emphasis>j</emphasis> is smaller than 128, bit
<emphasis>i</emphasis> of <emphasis role="bold">r</emphasis>
is set to the value of the
<emphasis>j</emphasis><superscript>th</superscript> bit of
<emphasis role="bold">a</emphasis>.
</para>
</listitem>
<listitem>
<para>
All other bits of <emphasis role="bold">r</emphasis> are zeroed.
</para>
</listitem>
</itemizedlist>
</para>
<para>
When the type of <emphasis role="bold">a</emphasis> is vector
unsigned long long:
<itemizedlist>
<listitem>
<para>
For each doubleword element <emphasis>i</emphasis>
<inlineequation>
<mathphrase>
(0 &#x2264; <emphasis>i</emphasis> &lt; 2)
</mathphrase>
</inlineequation>
of <emphasis role="bold">a</emphasis>:
<itemizedlist>
<listitem>
<para>
For each <emphasis>j</emphasis>
<inlineequation>
<mathphrase>
(0 &#x2264; <emphasis>j</emphasis> &lt; 8),
</mathphrase>
</inlineequation>
let bit index <emphasis>k</emphasis> denote the byte
value of the
<emphasis>j</emphasis><superscript>th</superscript>
element of <emphasis role="bold">b</emphasis>.
</para>
</listitem>
<listitem>
<para>
If bit index <emphasis>k</emphasis> is greater than or
equal to 64, bit <emphasis>j</emphasis> of element
<emphasis>i</emphasis> of <emphasis
role="bold">r</emphasis> is set to 0.
</para>
</listitem>
<listitem>
<para>
If bit index <emphasis>k</emphasis> is less than 64,
bit <emphasis>j</emphasis> of element
<emphasis>i</emphasis> of <emphasis
role="bold">r</emphasis> is set to the value of the
<emphasis>k</emphasis><superscript>th</superscript>
bit of element <emphasis>i</emphasis> of input
<emphasis role="bold">a</emphasis>.
</para>
</listitem>
<listitem>
<para>
All other bits are zeroed.
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
</itemizedlist>
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
All bit and byte numberings within each element in the above
description denote big-endian (i.e., left-to-right) order,
reflecting the underlying hardware instruction. Unlike most
of the vector intrinsics in this chapter, <code>vec_bperm</code>
does not follow the bi-endian programming model.
</para>
<table frame="all">
<title>Supported type signatures for vec_bperm</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Restrictions</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>
vbpermq r,a,b
</programlisting>
</entry>
<entry>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>
vbpermq r,a,b
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>
vbpermd r,a,b
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
<para>Phased in</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_ceil">
<title>vec_ceil</title>
<subtitle>Vector Ceiling</subtitle>
<programlisting>
r = vec_ceil (a)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector <emphasis role="bold">r</emphasis> that contains the
result of applying the floating-point ceiling function to each
element of <emphasis role="bold">a</emphasis>.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of each element of <emphasis role="bold">r</emphasis> is the
smallest representable floating-point integral value greater than or
equal to the value of the corresponding element of
<emphasis role="bold">a</emphasis>.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_ceil</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>
xvrspip r,a
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>
xvrdpip r,a
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_cmpb">
<title>vec_cmpb</title>
<subtitle>Vector Compare Bytes</subtitle>
<programlisting>
r = vec_cmpb (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Performs a bounds comparison of each set of corresponding elements
of the given vectors.
</para>
<para><emphasis role="bold">Result value:</emphasis>
Each element of <emphasis role="bold">r</emphasis> has the value 0
if the value of the corresponding element of <emphasis
role="bold">a</emphasis> is less than or equal to the value of
the corresponding element of <emphasis role="bold">b</emphasis>
and greater than or equal to the negated value of the corresponding
element of <emphasis role="bold">b</emphasis>. Otherwise:
<itemizedlist>
<listitem>
<para>
If an element of <emphasis role="bold">b</emphasis> is greater
than or equal to 0, then the value of the corresponding
element of <emphasis role="bold">r</emphasis> is 0 if the
absolute value of the corresponding element of <emphasis
role="bold">a</emphasis> is equal to the value of the
corresponding element of <emphasis role="bold">b</emphasis>.
The value is negative if it is greater than the value of the
corresponding element of <emphasis role="bold">b</emphasis>.
It is positive if it is less than the value of the corresponding
element of <emphasis role="bold">b</emphasis>.
</para>
</listitem>
<listitem>
<para>
If an element of <emphasis role="bold">b</emphasis> is less
than 0, then the value of the element of <emphasis
role="bold">r</emphasis> is positive if the value of the
corresponding element of <emphasis role="bold">a</emphasis> is
less than or equal to the value of the element of <emphasis
role="bold">b</emphasis>. Otherwise, it is negative.
</para>
</listitem>
</itemizedlist>
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_cmpb</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>
vcmpbfp r,a,b
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_cmpeq">
<title>vec_cmpeq</title>
<subtitle>Vector Compare Equal</subtitle>
<programlisting>
r = vec_cmpeq (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the results of comparing each set of
corresponding elements of the given vectors for equality.
</para>
<para><emphasis role="bold">Result value:</emphasis>
For each element of <emphasis role="bold">r</emphasis>, the value
of each bit is 1 if the corresponding elements of <emphasis
role="bold">a</emphasis> and <emphasis role="bold">b</emphasis>
are equal. Otherwise, the value of each bit is 0.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_cmpeq</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry>
<programlisting>
vcmpequb r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>
vcmpequb r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>
vcmpequb r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry>
<programlisting>
vcmpequh r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>
vcmpequh r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry>
<programlisting>
vcmpequh r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry>
<programlisting>
vcmpequw r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
vcmpequw r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
vcmpequw r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry>
<programlisting>
vcmpequd r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>
vcmpequd r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry>
<programlisting>
vcmpequd r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>
xvcmpeqsp r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>
xvcmpeqdp r,a,b
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_cmpge">
<title>vec_cmpge</title>
<subtitle>Vector Compare Greater or Equal</subtitle>
<programlisting>
r = vec_cmpge (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the results of a greater-than-or-equal-to
comparison between each set of corresponding elements of the given
vectors.
</para>
<para><emphasis role="bold">Result value:</emphasis>
For each element of <emphasis role="bold">r</emphasis>, the value
of each bit is 1 if the corresponding element of <emphasis
role="bold">a</emphasis> is greater than or equal to the corresponding
element of <emphasis role="bold">b</emphasis>. Otherwise, the value
of each bit is 0.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_cmpge</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>
vcmpgtsb t,b,a
xxlnor r,t,t
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>
vcmpgtub t,b,a
xxlnor r,t,t
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>
vcmpgtsh t,b,a
xxlnor r,t,t
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry>
<programlisting>
vcmpgtuh t,b,a
xxlnor r,t,t
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
vcmpgtsw t,b,a
xxlnor r,t,t
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
vcmpgtuw t,b,a
xxlnor r,t,t
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>
vcmpgtsd t,b,a
xxlnor r,t,t
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry>
<programlisting>
vcmpgtud t,b,a
xxlnor r,t,t
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>
xvcmpgesp r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>
xvcmpgedp r,a,b
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_cmpgt">
<title>vec_cmpgt</title>
<subtitle>Vector Compare Greater Than</subtitle>
<programlisting>
r = vec_cmpgt (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the results of a greater-than
comparison between each set of corresponding elements of the given
vectors.
</para>
<para><emphasis role="bold">Result value:</emphasis>
For each element of <emphasis role="bold">r</emphasis>, the value
of each bit is 1 if the corresponding element of <emphasis
role="bold">a</emphasis> is greater than the corresponding
element of <emphasis role="bold">b</emphasis>. Otherwise, the value
of each bit is 0.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_cmpgt</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>
vcmpgtsb r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>
vcmpgtub r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>
vcmpgtsh r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry>
<programlisting>
vcmpgtuh r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
vcmpgtsw r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
vcmpgtuw r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>
vcmpgtsd r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry>
<programlisting>
vcmpgtud r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>
xvcmpgtsp r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>
xvcmpgtdp r,a,b
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_cmple">
<title>vec_cmple</title>
<subtitle>Vector Compare Less Than or Equal</subtitle>
<programlisting>
r = vec_cmple (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the results of a less-than-or-equal
comparison between each set of corresponding elements of the given
vectors.
</para>
<para><emphasis role="bold">Result value:</emphasis>
For each element of <emphasis role="bold">r</emphasis>, the value
of each bit is 1 if the corresponding element of <emphasis
role="bold">a</emphasis> is less than or equal to the corresponding
element of <emphasis role="bold">b</emphasis>. Otherwise, the value
of each bit is 0.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_cmple</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>
vcmpgtsb t,a,b
xxlnor r,t,t
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>
vcmpgtub t,a,b
xxlnor r,t,t
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>
vcmpgtsh t,a,b
xxlnor r,t,t
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry>
<programlisting>
vcmpgtuh t,a,b
xxlnor r,t,t
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
vcmpgtsw t,a,b
xxlnor r,t,t
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
vcmpgtuw t,a,b
xxlnor r,t,t
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>
vcmpgtsd t,a,b
xxlnor r,t,t
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry>
<programlisting>
vcmpgtud t,a,b
xxlnor r,t,t
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>
xvcmpgesp r,b,a
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>
xvcmpgedp r,b,a
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_cmplt">
<title>vec_cmplt</title>
<subtitle>Vector Compare Less Than</subtitle>
<programlisting>
r = vec_cmplt (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the results of a less-than
comparison between each set of corresponding elements of the given
vectors.
</para>
<para><emphasis role="bold">Result value:</emphasis>
For each element of <emphasis role="bold">r</emphasis>, the value
of each bit is 1 if the corresponding element of <emphasis
role="bold">a</emphasis> is less than the corresponding
element of <emphasis role="bold">b</emphasis>. Otherwise, the value
of each bit is 0.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_cmplt</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>
vcmpgtsb r,b,a
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>
vcmpgtub r,b,a
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>
vcmpgtsh r,b,a
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry>
<programlisting>
vcmpgtuh r,b,a
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
vcmpgtsw r,b,a
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
vcmpgtuw r,b,a
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>
vcmpgtsd r,b,a
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry>
<programlisting>
vcmpgtud r,b,a
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>
xvcmpgtsp r,b,a
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>
xvcmpgtdp r,b,a
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_cmpne">
<title>vec_cmpne</title>
<subtitle>Vector Compare Not Equal</subtitle>
<programlisting>
r = vec_cmpne (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the results of comparing each set of
corresponding elements of the given vectors for inequality.
</para>
<para><emphasis role="bold">Result value:</emphasis>
For each element of <emphasis role="bold">r</emphasis>, the value
of each bit is 1 if the corresponding elements of <emphasis
role="bold">a</emphasis> and <emphasis role="bold">b</emphasis>
are not equal. Otherwise, the value of each bit is 0.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_cmpne</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry>
<programlisting>
vcmpneb r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>
vcmpneb r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>
vcmpneb r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry>
<programlisting>
vcmpneh r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>
vcmpneh r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry>
<programlisting>
vcmpneh r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry>
<programlisting>
vcmpnew r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
vcmpnew r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
vcmpnew r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry>
<programlisting>
vcmpequd t,a,b
xxlnor r,t,t
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>
vcmpequd t,a,b
xxlnor r,t,t
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry>
<programlisting>
vcmpequd t,a,b
xxlnor r,t,t
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>
xvcmpeqsp t,a,b
xxlnor r,t,t
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>
xvcmpeqdp t,a,b
xxlnor r,t,t
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_cmpnez">
<title>vec_cmpnez</title>
<subtitle>Vector Compare Not Equal or Zero</subtitle>
<programlisting>
r = vec_cmpnez (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the results of comparing each set of
corresponding elements of the given vectors for inequality, or for
an element with a zero value.
</para>
<para><emphasis role="bold">Result value:</emphasis>
For each element of <emphasis role="bold">r</emphasis>, the value
of each bit is 1 if the corresponding elements of <emphasis
role="bold">a</emphasis> and <emphasis role="bold">b</emphasis>
are not equal, or if the <emphasis role="bold">a</emphasis> element or
the <emphasis role="bold">b</emphasis> element is zero. Otherwise,
the value of each bit is 0.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_cmpnez</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Restrictions</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>
vcmpnezb r,a,b
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>
vcmpnezb r,a,b
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>
vcmpnezh r,a,b
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry>
<programlisting>
vcmpnezh r,a,b
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
vcmpnezw r,a,b
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
vcmpnezw r,a,b
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_cntlz">
<title>vec_cntlz</title>
<subtitle>Vector Count Leading Zeros</subtitle>
<programlisting>
r = vec_cntlz (a)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the number of most-significant bits
equal to zero of each corresponding element of the given vector.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of each element of <emphasis role="bold">r</emphasis> is
set to the number of leading zeros of the corresponding element
of <emphasis role="bold">a</emphasis>.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_cntlz</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Restrictions</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>
vclzb r,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>
vclzb r,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>
vclzh r,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry>
<programlisting>
vclzh r,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
vclzw r,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
vclzw r,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>
vclzd r,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int long long</para>
</entry>
<entry>
<programlisting>
vclzd r,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_cntlz_lsbb">
<title>vec_cntlz_lsbb</title>
<subtitle>Vector Count Leading Zero Least-Significant Bits by
Byte</subtitle>
<programlisting>
r = vec_cntlz_lsbb (a)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns the number of leading byte elements (starting at the
lowest-numbered element) of a vector that have a least-significant
bit of zero.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of <emphasis role="bold">r</emphasis> is set to the
number of leading byte elements (starting at the lowest-numbered
element) of <emphasis role="bold">a</emphasis> that have a
least-significant bit of zero.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_cntlz_lsbb</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Restrictions</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>
vclzlsbb r,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>
vclzlsbb r,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_cnttz">
<title>vec_cnttz</title>
<subtitle>Vector Count Trailing Zeros</subtitle>
<programlisting>
r = vec_cnttz (a)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the number of least-significant bits
equal to zero of each corresponding element of the given vector.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of each element of <emphasis role="bold">r</emphasis> is
set to the number of trailing zeros of the corresponding element
of <emphasis role="bold">a</emphasis>.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_cnttz</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Restrictions</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>
vctzb r,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>
vctzb r,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>
vctzh r,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry>
<programlisting>
vctzh r,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
vctzw r,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
vctzw r,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>
vctzd r,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int long long</para>
</entry>
<entry>
<programlisting>
vctzd r,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_cnttz_lsbb">
<title>vec_cnttz_lsbb</title>
<subtitle>Vector Count Trailing Zero Least-Significant Bits by
Byte</subtitle>
<programlisting>
r = vec_cnttz_lsbb (a)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns the number of trailing byte elements (starting at the
highest-numbered element) of a vector that have a least-significant
bit of zero.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of <emphasis role="bold">r</emphasis> is set to the
number of trailing byte elements (starting at the highest-numbered
element) of <emphasis role="bold">a</emphasis> that have a
least-significant bit of zero.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_cnttz_lsbb</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Restrictions</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>
vctzlsbb r,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>
vctzlsbb r,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_cpsgn">
<title>vec_cpsgn</title>
<subtitle>Vector Copy Sign</subtitle>
<programlisting>
r = vec_cpsgn (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector by copying the sign of the elements in one
vector to the sign of the corresponding elements of another
vector.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of each element of <emphasis role="bold">r</emphasis> is set
to the corresponding element of <emphasis role="bold">b</emphasis>
with its sign replaced by the sign from the corresponding element of
<emphasis role="bold">a</emphasis>.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_cpsgn</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Restrictions</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>
xvcpsgnsp r,b,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>
xvcpsgndp r,b,a
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_ctf">
<title>vec_ctf</title>
<subtitle>Vector Convert to Floating-Point</subtitle>
<programlisting>
r = vec_ctf (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts an integer vector into a floating-point vector.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of each element of <emphasis role="bold">r</emphasis> is the
closest floating-point approximation of the value of the
corresponding element of <emphasis role="bold">a</emphasis> divided
by 2 to the power of <emphasis role="bold">b</emphasis>, which should
be in the range 0&#x2013;31.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_ctf</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>const int</para>
</entry>
<entry>
<programlisting>
vcfsx r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>const int</para>
</entry>
<entry>
<programlisting>
vcfux r,a,b
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_cts">
<title>vec_cts</title>
<subtitle>Vector Convert to Signed Integer</subtitle>
<programlisting>
r = vec_cts (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts a floating-point vector into a signed integer vector.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of each element of <emphasis role="bold">r</emphasis> is the
saturated signed-integer value, truncated towards zero, obtained by
multiplying the corresponding element of <emphasis
role="bold">a</emphasis> multiplied by 2 to the power of <emphasis
role="bold">b</emphasis>, which should be in the range 0&#x2013;31.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_cts</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>const int</para>
</entry>
<entry>
<programlisting>
vctsxs r,a,b
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_ctu">
<title>vec_ctu</title>
<subtitle>Vector Convert to Unsigned Integer</subtitle>
<programlisting>
r = vec_ctu (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts a floating-point vector into an unsigned integer vector.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of each element of <emphasis role="bold">r</emphasis> is the
saturated unsigned-integer value, truncated towards zero, obtained by
multiplying the corresponding element of <emphasis
role="bold">a</emphasis> multiplied by 2 to the power of <emphasis
role="bold">b</emphasis>, which should be in the range 0&#x2013;31.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_ctu</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>const int</para>
</entry>
<entry>
<programlisting>
vctuxs r,a,b
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_div">
<title>vec_div</title>
<subtitle>Vector Divide</subtitle>
<programlisting>
r = vec_div (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Divides the elements in one vector by the corresponding elements
in another vector and places the quotients in the result vector.
Division is emulated using scalar arithmetic for integer types.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of each element of <emphasis role="bold">r</emphasis> is
obtained by dividing the corresponding element of <emphasis
role="bold">a</emphasis> by the corresponding element of <emphasis
role="bold">b</emphasis>.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_div</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>
xxspltd t,a,1
mfvsrd u,t
xxspltd v,b,1
mfvsrd w,v
divd x,u,w
mfvsrd u,a
mtvsrd y,x
mfvsrd w,b
divd x,u,w
mtvsrd z,x
xxmrghd r,z,y
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry>
<programlisting>
xxspltd t,a,1
mfvsrd u,t
xxspltd v,b,1
mfvsrd w,v
divd x,u,w
mfvsrd u,a
mtvsrd y,x
mfvsrd w,b
divd x,u,w
mtvsrd z,x
xxmrghd r,z,y
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>
xvdivsp r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>
xvdivdp r,a,b
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_double">
<title>vec_double</title>
<subtitle>Vector Convert to Double Precision</subtitle>
<programlisting>
r = vec_double (a)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts a vector of long integers into a vector of double-precision
numbers.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of each element of <emphasis role="bold">r</emphasis> is
obtained by converting the corresponding element of <emphasis
role="bold">a</emphasis> to double precision floating-point.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_double</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>
xvcvsxddp r,a
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry>
<programlisting>
xvcvuxddp r,a
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_doublee">
<title>vec_doublee</title>
<subtitle>Vector Convert Even Elements to Double Precision</subtitle>
<programlisting>
r = vec_doublee (a)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts the even elements of a vector into a vector of double-precision
numbers.
</para>
<para><emphasis role="bold">Result value:</emphasis>
Elements 0 and 1 of <emphasis role="bold">r</emphasis> are set to
the converted values of elements 0 and 2 of <emphasis
role="bold">a</emphasis>.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_doublee</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Restrictions</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
[TBD]
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
[TBD]
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>
[TBD]
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_doubleh">
<title>vec_doubleh</title>
<subtitle>Vector Convert High Elements to Double Precision</subtitle>
<programlisting>
r = vec_doubleh (a)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts the high-order elements of a vector into a vector
of double-precision numbers.
</para>
<para><emphasis role="bold">Result value:</emphasis>
Elements 0 and 1 of <emphasis role="bold">r</emphasis> are set to
the converted values of elements 0 and 1 of <emphasis
role="bold">a</emphasis>.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_doubleh</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Restrictions</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
[TBD]
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
[TBD]
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>
[TBD]
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_doublel">
<title>vec_doublel</title>
<subtitle>Vector Convert Low Elements to Double Precision</subtitle>
<programlisting>
r = vec_doublel (a)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts the low-order elements of a vector into a vector
of double-precision numbers.
</para>
<para><emphasis role="bold">Result value:</emphasis>
Elements 0 and 1 of <emphasis role="bold">r</emphasis> are set to
the converted values of elements 2 and 3 of <emphasis
role="bold">a</emphasis>.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_doublel</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Restrictions</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
[TBD]
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
[TBD]
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>
[TBD]
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_doubleo">
<title>vec_doubleo</title>
<subtitle>Vector Convert Odd Elements to Double Precision</subtitle>
<programlisting>
r = vec_doubleo (a)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts the odd elements of a vector into a vector
of double-precision numbers.
</para>
<para><emphasis role="bold">Result value:</emphasis>
Elements 0 and 1 of <emphasis role="bold">r</emphasis> are set to
the converted values of elements 1 and 3 of <emphasis
role="bold">a</emphasis>.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_doubleo</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Restrictions</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
[TBD]
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
[TBD]
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>
[TBD]
</programlisting>
</entry>
<entry align="center" valign="middle">
<para>Phased in</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_eqv">
<title>vec_eqv</title>
<subtitle>Vector Equivalence</subtitle>
<programlisting>
r = vec_eqv (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Performs a bitwise equivalence (exclusive NOR) of two vectors.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of <emphasis role="bold">r</emphasis> is the bitwise XNOR
of <emphasis role="bold">a</emphasis> and <emphasis
role="bold">b</emphasis>.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_eqv</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center" valign="middle">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry>
<programlisting>
xxleqv r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>
xxleqv r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>
xxleqv r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry>
<programlisting>
xxleqv r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>
xxleqv r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry>
<programlisting>
xxleqv r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>
xxleqv r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry>
<programlisting>
xxleqv r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>
xxleqv r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry>
<programlisting>
xxleqv r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>
xxleqv r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry>
<programlisting>
xxleqv r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>
xxleqv r,a,b
</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>
xxleqv r,a,b
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_expte">
<title>vec_expte</title>
<subtitle>Vector Exponential Estimate</subtitle>
<programlisting>
r = vec_expte (a)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector <emphasis role="bold">r</emphasis> containing
estimates of 2 raised to the power of the corresponding elements
of <emphasis role="bold">a</emphasis>.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of each element of <emphasis role="bold">r</emphasis> is the
estimated value of 2 raised to the power of the corresponding element of
<emphasis role="bold">a</emphasis>.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_expte</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Example Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>
vexptefp r,a
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_extract">
<title>vec_extract</title>
<subtitle>Vector Extract</subtitle>
<programlisting>
r = vec_extract (a, b)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns the value of the <emphasis role="bold">b</emphasis>th
element of vector <emphasis role="bold">a</emphasis>.
</para>
<para><emphasis role="bold">Result value:</emphasis>
The value of each element of <emphasis role="bold">r</emphasis> is the
element of <emphasis role="bold">a</emphasis> at position
<emphasis role="bold">b</emphasis> modulo the number of elements of
<emphasis role="bold">a</emphasis>.
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
The element numbering within a register is left-to-right for big-endian
targets, and right-to-left for little-endian targets.
</para>
<table frame="all">
<title>Supported type signatures for vec_extract</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">a</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">b</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Example LE Implementation</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Example BE Implementation</emphasis>
</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>signed int</para>
</entry>
<entry>
<programlisting>
vexptefp r,a
</programlisting>
</entry>
<entry>
<programlisting>
vexptefp r,a
</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_extract_exp">
<title>vec_extract_exp</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_extract_exp (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Extracts an exponent from a floating-point number.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of the returned integer vector is extracted from the exponent field of the corresponding floating-point vector element.</para>
<para>The extracted exponents of ARG1 are returned as
right-justified unsigned integers containing biased exponents, in
accordance with the exponent representation specified by IEEE
754, without further processing.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_extract_exp</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_extract_fp32_from_shorth">
<title>vec_extract_fp32_from_shorth</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_extract_fp32_from_shorth (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Extracts four single-precision floating-point numbers from the high elements of a vector of eight 16-bit elements, interpreting each element as a 16-bit floating-point number in IEEE format.
</para>
<para><emphasis role="bold">Result value: </emphasis>The first four elements are interpreted as 16-bit floating-point numbers in IEEE format, and extended to single-precision format, returning a vector with four single-precision IEEE numbers.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_extract_fp32_from_shorth</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_extract_fp32_from_shortl">
<title>vec_extract_fp32_from_shortl</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_extract_fp32_from_shortl (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
</para>
<para><emphasis role="bold">Result value: </emphasis>The last four elements are interpreted as 16-bit floating-point numbers in IEEE format, and extended to single-precision format, returning a vector with four single-precision IEEE numbers.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_extract_fp32_from_shortl</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_extract_sig">
<title>vec_extract_sig</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_extract_sig (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Extracts a significand (mantissa) from a floating-point number.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of the returned integer vector is extracted from the significand (mantissa) field of the corresponding floating-point vector element.</para>
<para>The significand is from the corresponding floating-point
number in accordance with the IEEE format. The returned result
includes the implicit leading digit. The value of that digit is
not encoded in the IEEE format, but is implied by the
exponent.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_extract_sig</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_extract4b">
<title>vec_extract4b</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_extract4b (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Extracts a word from a vector at a byte position.
</para>
<para><emphasis role="bold">Result value: </emphasis>The first doubleword element of the result contains the zero-extended extracted word from ARG1. The second doubleword is set to 0. ARG2 specifies the least-significant byte number (012) of the word to be extracted.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_extract4b</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_first_match_index">
<title>vec_first_match_index</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_first_match_index (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Performs a comparison of equality on each of the corresponding elements of ARG1 and ARG2, and returns the first position of equality.
</para>
<para><emphasis role="bold">Result value: </emphasis>Returns the element index of the position of the first character match. If no match, returns the number of characters as an element count in the vector argument.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_first_match_index</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_first_match_or_eos_index">
<title>vec_first_match_or_eos_index</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_first_match_or_eos_index (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Performs a comparison of equality on each of the corresponding elements of ARG1 and ARG2. Returns the first position of equality, or the zero string terminator.
</para>
<para><emphasis role="bold">Result value: </emphasis>Returns the element index of the position of either the first character match or an end-of-string (EOS) terminator. If no match or terminator, returns the number of characters as an element count in the vector argument.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_first_match_or_eos_index</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_first_mismatch_index">
<title>vec_first_mismatch_index</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_first_mismatch_index (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Performs a comparison of inequality on each of the corresponding elements of ARG1 and ARG2, and returns the first position of inequality.
</para>
<para><emphasis role="bold">Result value: </emphasis>Returns the element index of the position of the first character mismatch. If no mismatch, returns the number of characters as an element count in the vector argument.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_first_mismatch_index</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_first_mismatch_or_eos_index">
<title>vec_first_mismatch_or_eos_index</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_first_mismatch_or_eos_index (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Performs a comparison of inequality on each of the corresponding elements of ARG1 and ARG2. Returns the first position of inequality, or the zero string terminator.
</para>
<para><emphasis role="bold">Result value: </emphasis>Returns the element index of the position of either the first character mismatch or an end-of-string (EOS) terminator. If no mismatch or terminator, returns the number of characters as an element count in the vector argument.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_first_mismatch_or_eos_index</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_float">
<title>vec_float</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_float (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts a vector of integers to a vector of single-precision floating-point numbers.
</para>
<para><emphasis role="bold">Result value: </emphasis>Target elements are obtained by converting the respective source elements to single-precision floating-point numbers.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_float</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_float2">
<title>vec_float2</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_float2 (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts an input vector to a vector of single-precision numbers.
</para>
<para><emphasis role="bold">Result value: </emphasis>Target elements are obtained by converting the source elements to single-precision numbers as follows:</para>
<itemizedlist>
<listitem>
<para>Target elements 0 and 1 from source 0</para>
</listitem>
<listitem>
<para>Target elements 2 and 3 from source 1</para>
</listitem>
</itemizedlist>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_float2</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_floate">
<title>vec_floate</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_floate (ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts an input vector to a vector of single-precision numbers.
</para>
<para><emphasis role="bold">Result value: </emphasis>The even-numbered target elements are obtained by converting the source elements to single-precision numbers, using the current floating-point rounding mode.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_floate</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_floath">
<title>vec_floath</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_floath (ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts a vector to a vector of single-precision floating-point numbers.
</para>
<para><emphasis role="bold">Result value: </emphasis>Target elements 0 through 3 are set to the converted values of source elements 0 through 3, respectively.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_floath</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_floatl">
<title>vec_floatl</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_floatl (ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts a vector to a vector of single-precision floating-point numbers.
</para>
<para><emphasis role="bold">Result value: </emphasis>Target elements 0 through 3 are set to the converted values of source elements 4 through 7, respectively.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_floatl</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_floato">
<title>vec_floato</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_floato (ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts an input vector to a vector of single-precision numbers.
</para>
<para><emphasis role="bold">Result value: </emphasis>The odd-numbered target elements are obtained by converting the source elements to single-precision numbers, using the current floating-point rounding mode.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_floato</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_floor">
<title>vec_floor</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_floor (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the largest representable floating-point integral values less than or equal to the values of the corresponding elements of the given vector.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of the result contains the largest representable floating-point integral value less than or equal to the value of the corresponding element of ARG1.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_floor</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_gb">
<title>vec_gb</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_gb (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Performs a gather-bits operation on the input.
</para>
<para><emphasis role="bold">Result value: </emphasis>Within each doubleword, let x(i) (0 ≤ i &lt; 8) denote the byte elements of the corresponding input doubleword element, with x(7) the most-significant byte. For each pair of i and j (0 ≤ i &lt; 8, 0 ≤ j &lt; 8), the j-th bit of the i-th byte element of the result is set to the value of the i-th bit of the j-th byte element of the input.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_gb</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_insert">
<title>vec_insert</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_insert (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a copy of vector ARG2 with element ARG3 replaced by the value of ARG1.
</para>
<para><emphasis role="bold">Result value: </emphasis>A copy of vector ARG2 with element ARG3 replaced by the value of ARG1. This function uses modular arithmetic on ARG3 to determine the element number. For example, if ARG3 is out of range, the compiler uses ARG3 modulo the number of elements in the vector to determine the element position.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_insert</title>
<tgroup cols="6">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<colspec colname="c6" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry align="center" valign="middle">
<para> signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry align="center" valign="middle">
<para> signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para>_Float16</para>
</entry>
<entry align="center" valign="middle">
<para> vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para> signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_insert_exp">
<title>vec_insert_exp</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_insert_exp (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Inserts an exponent into a floating-point number.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of the returned floating-point vector is generated by combining the exponent specified by the corresponding element of ARG2 with the sign and significand of the corresponding element of ARG1.</para>
<para>The inserted exponent of ARG2 is treated as a
right-justified unsigned integer containing a biased exponent, in
accordance with the exponent representation specified by IEEE
754. It is combined with the sign and significand of ARG1 without
further processing.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_insert_exp</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_insert4b">
<title>vec_insert4b</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_insert4b (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Inserts a word into a vector at a byte position.
</para>
<para><emphasis role="bold">Result value: </emphasis>Let W be the first doubleword element of ARG1, truncated to 32 bits. The result vector is formed by inserting W into ARG2 at the byte position (012) specified by ARG3.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_insert4b</title>
<tgroup cols="6">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<colspec colname="c6" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_loge">
<title>vec_loge</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_loge (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing estimates of the base-2 logarithms of the corresponding elements of the given vector.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of the result contains the estimated value of the base-2 logarithm of the corresponding element of ARG1.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_loge</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_madd">
<title>vec_madd</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_madd (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the results of performing a fused multiply-add operation for each corresponding set of elements of the given vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>The value of each element of the result is the product of the values of the corresponding elements of ARG1 and ARG2, added to the value of the corresponding element of ARG3.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_madd</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_madds">
<title>vec_madds</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_madds (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the results of performing a saturated multiply-high-and-add operation for each corresponding set of elements of the given vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>For each element of the result, the value is produced in the following way: The values of the corresponding elements of ARG1 and ARG2 are multiplied. The value of the 17 most-significant bits of this product is then added, using 16-bit-saturated addition, to the value of the corresponding element of ARG3.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_madds</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_max">
<title>vec_max</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_max (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_max</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_mergee">
<title>vec_mergee</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_mergee (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Merges the even-numbered values from the two vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>The even-numbered elements of ARG1 are stored into the even-numbered elements of the result. The even-numbered elements of ARG2 are stored in the odd-numbered elements of the result.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_mergee</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_mergeh">
<title>vec_mergeh</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_mergeh (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Merges the most-significant halves of two vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>Assume that the elements of each vector are numbered beginning with 0. The even-numbered elements of the result are taken, in order, from the elements in the most-significant 8 bytes of ARG1. The odd-numbered elements of the result are taken, in order, from the elements in the most-significant 8 bytes of ARG2.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_mergeh</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para> vector pixel</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para> vector _Float16</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_mergel">
<title>vec_mergel</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_mergel (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Merges the least-significant halves of two vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>Assume that the elements of each vector are numbered beginning with 0. The even-numbered elements of the result are taken, in order, from the elements in the least-significant 8 bytes of ARG1. The odd-numbered elements of the result are taken, in order, from the elements in the least-significant 8 bytes of ARG2.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_mergel</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para> vector pixel</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para> vector _Float16</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_mergeo">
<title>vec_mergeo</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_mergeo (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Merges the odd-numbered halves of two vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>The odd-numbered elements of ARG1 are stored in the even-numbered elements of the result.</para>
<para>The odd-numbered elements of ARG2 are stored in the
odd-numbered elements of the result.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_mergeo</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_min">
<title>vec_min</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_min (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the minimum value from each set of corresponding elements of the given vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>The value of each element of the result is the minimum of the values of the corresponding elements of ARG1 and ARG2.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_min</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_mradds">
<title>vec_mradds</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_mradds (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the results of performing a saturated multiply-high-round-and-add operation for each corresponding set of elements of the given vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>For each element of the result, the value is produced in the following way: The values of the corresponding elements of ARG1 and ARG2 are multiplied and rounded such that the 15 least-significant bits are 0. The value of the 17 most-significant bits of this rounded product is then added, using 16-bit-saturated addition, to the value of the corresponding element of ARG3.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_mradds</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_msub">
<title>vec_msub</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_msub (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the results of performing a multiply-subtract operation using the given vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>This function multiplies each element in ARG1 by the corresponding element in ARG2 and then subtracts the corresponding element in ARG3 from the result.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_msub</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_msum">
<title>vec_msum</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_msum (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the results of performing a multiply-sum operation using the given vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>Assume that the elements of each vector are numbered beginning with 0. If ARG1 is a vector signed char or a vector unsigned char vector, then let m be 4. Otherwise, let m be 2. For each element n of the result vector, the value is obtained in the following way: For p = mn to mn + m 1, multiply element p of ARG1 by element p of ARG2. Add the sum of these products to element n of ARG3. All additions are performed using 32-bit modular arithmetic.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_msum</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_msums">
<title>vec_msums</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_msums (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the results of performing a saturated multiply-sum operation using the given vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>Assume that the elements of each vector are numbered beginning with 0. For each element n of the result vector, the value is obtained in the following way: For p = 2n to 2n+1, multiply element p of ARG1 by element p of ARG2. Add the sum of these products to element n of ARG3. All additions are performed using 32-bit saturated arithmetic.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_msums</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_mul">
<title>vec_mul</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_mul (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the results of performing a multiply operation using the given vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>This function multiplies corresponding elements in the given vectors and then assigns the result to corresponding elements in the result vector.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_mul</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_mule">
<title>vec_mule</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_mule (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the results of multiplying every second set of the corresponding elements of the given vectors, beginning with the first element.
</para>
<para><emphasis role="bold">Result value: </emphasis>Assume that the elements of each vector are numbered beginning with 0. For each element n of the result vector, the value is the product of the value of element 2n of ARG1 and the value of element 2n of ARG2.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_mule</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_mulo">
<title>vec_mulo</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_mulo (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the results of multiplying every second set of corresponding elements of the given vectors, beginning with the second element.
</para>
<para><emphasis role="bold">Result value: </emphasis>Assume that the elements of each vector are numbered beginning with 0. For each element n of the result vector, the value is the product of the value of element 2n+1 of ARG1 and the value of element 2n+1 of ARG2.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_mulo</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_nabs">
<title>vec_nabs</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_nabs (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the negated absolute values of the contents of the given vector.
</para>
<para><emphasis role="bold">Result value: </emphasis>The value of each element of the result is the negated absolute value of the corresponding element of ARG1. For integer vectors, the arithmetic is modular.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_nabs</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_nand">
<title>vec_nand</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_nand (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Performs a bitwise NAND of the given vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>The result is the bitwise NAND of ARG1 and ARG2.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_nand</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_nearbyint">
<title>vec_nearbyint</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_nearbyint (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the floating-point integral values nearest to the values of the corresponding elements of the given vector.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of the result contains the nearest representable floating-point integral value to the value of the corresponding element of ARG1. When an input element value is exactly between two integer values, the result value with the largest absolute value is selected.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_nearbyint</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_neg">
<title>vec_neg</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_neg (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the negated values of the contents of the given vector.
</para>
<para><emphasis role="bold">Result value: </emphasis>The value of each element of the result is the negated value of the corresponding element of ARG1. For integer vectors, the arithmetic is modular.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_neg</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_nmadd">
<title>vec_nmadd</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_nmadd (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the results of performing a negative multiply-add operation on the given vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>The value of each element of the result is the product of the corresponding elements of ARG1 and ARG2, added to the corresponding elements of ARG3, then multiplied by 1.0.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_nmadd</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_nmsub">
<title>vec_nmsub</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_nmsub (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the results of performing a negative multiply-subtract operation on the given vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>The value of each element of the result is the product of the corresponding elements of ARG1 and ARG2, subtracted from the corresponding element of ARG3, and then multiplied by 1.0.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_nmsub</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_nor">
<title>vec_nor</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_nor (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Performs a bitwise NOR of the given vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>The result is the bitwise NOR of ARG1 and ARG2.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_nor</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_or">
<title>vec_or</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_or (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Performs a bitwise OR of the given vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>The result is the bitwise OR of ARG1 and ARG2.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_or</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_orc">
<title>vec_orc</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_orc (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Performs a bitwise OR of the first vector with the negated second vector.
</para>
<para><emphasis role="bold">Result value: </emphasis>The result is the bitwise OR of ARG1 and the bitwise negation of ARG2.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_orc</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_pack">
<title>vec_pack</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_pack (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Packs information from each element of two vectors into the result vector.
</para>
<para><emphasis role="bold">Result value: </emphasis>For integer types, the value of each element of the result vector is taken from the low-order half of the corresponding element of the result of concatenating ARG1 and ARG2.</para>
<para>For floating-point types, the value of each element of the
result vector is the corresponding element of the result of
concatenating ARG1 and ARG2, rounded to the result type.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_pack</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_pack_to_short_fp32">
<title>vec_pack_to_short_fp32</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_pack_to_short_fp32 (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Packs eight single-precision 32-bit floating-point numbers into a vector of eight 16-bit floating-point numbers.
</para>
<para><emphasis role="bold">Result value: </emphasis>The value is a vector consisting of eight 16-bit elements, each representing a 16-bit floating-point number that was created by converting the corresponding single-precision value to half-precision.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_pack_to_short_fp32</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_packpx">
<title>vec_packpx</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_packpx (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Packs information from each element of two vectors into the result vector.
</para>
<para><emphasis role="bold">Result value: </emphasis>The value of each element of the result vector is taken from the corresponding element of the result of concatenating ARG1 and ARG2 as follows:</para>
<itemizedlist>
<listitem>
<para>The least-significant bit of the high-order byte is
stored into the first bit of the result element.</para>
</listitem>
<listitem>
<para>The least-significant 5 bits of each of the remaining
bytes are stored into the remaining portion of the result
element.</para>
</listitem>
</itemizedlist>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_packpx</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_packs">
<title>vec_packs</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_packs (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Packs information from each element of two vectors into the result vector, using saturated values.
</para>
<para><emphasis role="bold">Result value: </emphasis>The value of each element of the result vector is the saturated value of the corresponding element of the result of concatenating ARG1 and ARG2.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_packs</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_packsu">
<title>vec_packsu</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_packsu (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Packs information from each element of two vectors into the result vector, using unsigned saturated values.
</para>
<para><emphasis role="bold">Result value: </emphasis>The value of each element of the result vector is the saturated value of the corresponding element of the result of concatenating ARG1 and ARG2.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_packsu</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_parity_lsbb">
<title>vec_parity_lsbb</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_parity_lsbb (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Compute parity on the least-significant bit of each byte.
</para>
<para><emphasis role="bold">Result value: </emphasis>Returns a vector with each element containing the parity of the low-order bit of each of the bytes in that element.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_parity_lsbb</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_perm">
<title>vec_perm</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_perm (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector that contains some elements of two vectors, in the order specified by a third vector.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each byte of the result is selected by using the least-significant 5 bits of the corresponding byte of ARG3 as an index into the concatenated bytes of ARG1 and ARG2.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_perm</title>
<tgroup cols="6">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<colspec colname="c6" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para> vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para> vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_permxor">
<title>vec_permxor</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_permxor (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Applies a permute and exclusive-OR operation on two vectors of byte elements.
</para>
<para><emphasis role="bold">Result value: </emphasis>For each i (0 ≤ i &lt; 16), let index1 be bits 03 and index2 be bits 47 of byte element i of mask ARG3.</para>
<para>Byte element i of the result is set to the exclusive-OR of
byte elements index1 of ARG1 and index2 of ARG2.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_permxor</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_popcnt">
<title>vec_popcnt</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_popcnt (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the number of bits set in each element of the input vector.
</para>
<para><emphasis role="bold">Result value: </emphasis>The value of each element of the result is the number of bits set in the corresponding input element.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_popcnt</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_re">
<title>vec_re</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_re (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing estimates of the reciprocals of the corresponding elements of the given vector.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of the result contains the estimated value of the reciprocal of the corresponding element of ARG1.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_re</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_recipdiv">
<title>vec_recipdiv</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_recipdiv (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing approximations of the division of the corresponding elements of ARG1 by the corresponding elements of ARG2. This implementation provides an implementation-dependent precision, which is commonly within 2 ulps for most of the numeric range expressible by the input operands. This built-in function does not correspond to a single IEEE operation and does not provide the overflow, underflow, and NaN propagation characteristics specified for IEEE division. (Precision may be a function of both the specified target processor model during compilation and the actual processor on which a program is executed.)
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of the result vector contains a refined approximation of the division of the corresponding element of ARG1 by the corresponding element of ARG2.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_recipdiv</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_revb">
<title>vec_revb</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_revb (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Reverse the bytes of each vector element of a vector.
</para>
<para><emphasis role="bold">Result value: </emphasis>Returns a vector where each vector element contains the corresponding byte-reversed vector element of the input vector.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_revb</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_reve">
<title>vec_reve</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_reve (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Reverse the elements of a vector.
</para>
<para><emphasis role="bold">Result value: </emphasis>Returns a vector with the elements of the input vector in reversed order.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_reve</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_rint">
<title>vec_rint</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_rint (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the floating-point integral values nearest to the values of the corresponding elements of the given vector.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of the result contains the nearest representable floating-point integral value to the value of the corresponding element of ARG1. When an input element value is exactly between two integer values, the result value is selected based on the rounding mode specified by the Floating-Point Rounding Control field (RN) of the FPSCR register.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_rint</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_rl">
<title>vec_rl</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_rl (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Rotates each element of a vector left by a given number of bits.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of the result is obtained by rotating the corresponding element of ARG1 left by the number of bits specified by the corresponding element of ARG2.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_rl</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_rlmi">
<title>vec_rlmi</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_rlmi (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Rotates each element of a vector left and inserts each element under a mask.
</para>
<para><emphasis role="bold">Result value: </emphasis>The result is obtained by rotating each element of vector ARG1 left and inserting it under mask into ARG2. ARG3 bits 11:15 contain the mask beginning, bits 19:23 contain the mask end, and bits 27:31 contain the shift count.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_rlmi</title>
<tgroup cols="6">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<colspec colname="c6" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_rlnm">
<title>vec_rlnm</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_rlnm (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Rotates each element of a vector left; then intersects (AND) it with a mask.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of vector ARG1 is rotated left; then intersected (AND) with a mask specified by ARG2 and ARG3.</para>
<para>ARG2 contains the shift count for each element in the
low-order byte, with other bytes zero. ARG3 contains the mask
begin and mask end for each element, with the mask end in the
low-order byte, the mask begin in the next higher byte, and
other bytes zero.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_rlnm</title>
<tgroup cols="6">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<colspec colname="c6" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_round">
<title>vec_round</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_round (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the rounded values of the corresponding elements of the given vector.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of the result contains the value of the corresponding element of ARG1, rounded to the nearest representable floating-point integer, using IEEE round-to-nearest rounding.</para>
<note>
<para>This function might not follow the strict
operation definition of the resolution of a tie during a
round if the -qstrict=nooperationprecision compiler option is
specified to the XLC compiler.</para>
</note>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_round</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_rsqrt">
<title>vec_rsqrt</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_rsqrt (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing a refined approximation of the reciprocal square roots of the corresponding elements of the given vector. This function provides an implementation-dependent greater precision than VEC_RSQRTE.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of the result contains a refined approximation of the reciprocal square root of the corresponding element of ARG1.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_rsqrt</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_rsqrte">
<title>vec_rsqrte</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_rsqrte (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing estimates of the reciprocal square roots of the corresponding elements of the given vector.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of the result contains the estimated value of the reciprocal square root of the corresponding element of ARG1.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_rsqrte</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_sel">
<title>vec_sel</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_sel (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the value of either ARG1 or ARG2 depending on the value of ARG3.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each bit of the result vector has the value of the corresponding bit of ARG1 if the corresponding bit of ARG3 is 0. Otherwise, each bit of the result vector has the value of the corresponding bit of ARG2.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_sel</title>
<tgroup cols="6">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<colspec colname="c6" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para> vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para> vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_signed">
<title>vec_signed</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_signed (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts a vector of floating-point numbers to a vector of signed integers.
</para>
<para><emphasis role="bold">Result value: </emphasis>Target elements are obtained by truncating the respective source elements to signed integers.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_signed</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_signed2">
<title>vec_signed2</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_signed2 (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts a vector of floating-point numbers to vector of signed integers.
</para>
<para><emphasis role="bold">Result value: </emphasis>Target elements are obtained by truncating the source elements to the signed integers as follows:</para>
<itemizedlist>
<listitem>
<para>Target elements 0 and 1 from source 0</para>
</listitem>
<listitem>
<para>Target elements 2 and 3 from source 1</para>
</listitem>
</itemizedlist>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_signed2</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_signede">
<title>vec_signede</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_signede (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts an input vector to a vector of signed integers.
</para>
<para><emphasis role="bold">Result value: </emphasis>The even target elements are obtained by truncating the source elements to signed integers as follows:</para>
<para>Target elements 0 and 2 contain the converted values of the
input vector.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_signede</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_signedo">
<title>vec_signedo</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_signedo (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts an input vector to a vector of signed integers.
</para>
<para><emphasis role="bold">Result value: </emphasis>The odd target elements are obtained by truncating the source elements to signed integers as follows:</para>
<para>Target elements 1 and 3 contain the converted values of the
input vector.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_signedo</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_sl">
<title>vec_sl</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_sl (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Performs a left shift for each element of a vector.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of the result vector is the result of left shifting the corresponding element of ARG1 by the number of bits specified by the value of the corresponding element of ARG2, modulo the number of bits in the element. The bits that are shifted out are replaced by zeros.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_sl</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_sld">
<title>vec_sld</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_sld (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Left shifts a double vector (that is, two concatenated vectors) by a given number of bytes. For vec_sld being performed on the vector bool and floating-point types, the result is undefined, when the specified shift count is not a multiple of the element size.
</para>
<para><emphasis role="bold">Result value: </emphasis>The result is the most-significant 16 bytes obtained by concatenating ARG1 and ARG2 and shifting left by the number of bytes specified by ARG3, which should be in the range 015.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_sld</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para> vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_sldw">
<title>vec_sldw</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_sldw (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector obtained by shifting left the concatenated input vectors by the number of specified words.
</para>
<para><emphasis role="bold">Result value: </emphasis>The value of each element is set to the value of an input element of the concatenated vectors ARG1 and ARG2, with the word offset to its right</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_sldw</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_sll">
<title>vec_sll</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_sll (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Left shifts a vector by a given number of bits.
</para>
<para><emphasis role="bold">Result value: </emphasis>The result is the contents of ARG1, shifted left by the number of bits specified by the three least-significant bits of ARG2. The bits that are shifted out are replaced by zeros. The shift count must have been replicated into all bytes of the shift count specification.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_sll</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_slo">
<title>vec_slo</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_slo (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Left shifts a vector by a given number of bytes (octets).
</para>
<para><emphasis role="bold">Result value: </emphasis>The result is the contents of ARG1, shifted left by the number of bytes specified by the most-significant nibble of the least-significant byte</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_slo</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_slv">
<title>vec_slv</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_slv (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Left-shifts a vector by a varying number of bits by element.
</para>
<para><emphasis role="bold">Result value: </emphasis>For each integer 0</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_slv</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_splat">
<title>vec_splat</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_splat (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector that has all of its elements set to a given value.
</para>
<para><emphasis role="bold">Result value: </emphasis>The value of each element of the result is the value of the element of ARG1 specified by ARG2, which should be an element number less than the number of elements supported for the respective ARG1 type.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_splat</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_splat_s8">
<title>vec_splat_s8</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_splat_s8 (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector with all elements equal to the given value.
</para>
<para><emphasis role="bold">Result value: </emphasis>The bit pattern of ARG1 is interpreted as a signed value. Each element of the result is given this value.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_splat_s8</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_splat_s16">
<title>vec_splat_s16</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_splat_s16 (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector with all elements equal to the given value.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of the result has the value of ARG1.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_splat_s16</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_splat_s32">
<title>vec_splat_s32</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_splat_s32 (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector with all elements equal to the given value.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of the result has the value of ARG1.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_splat_s32</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_splat_u8">
<title>vec_splat_u8</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_splat_u8 (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector with all elements equal to the given value.
</para>
<para><emphasis role="bold">Result value: </emphasis>The bit pattern of ARG1 is interpreted as an unsigned value. Each element of the result is given this value.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_splat_u8</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_splat_u16">
<title>vec_splat_u16</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_splat_u16 (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector with all elements equal to the given value.
</para>
<para><emphasis role="bold">Result value: </emphasis>The bit pattern of ARG1 is interpreted as an unsigned value. Each element of the result is given this value.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_splat_u16</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_splat_u32">
<title>vec_splat_u32</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_splat_u32 (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector with all elements equal to the given value.
</para>
<para><emphasis role="bold">Result value: </emphasis>The bit pattern of ARG1 is interpreted as an unsigned value. Each element of the result is given this value.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_splat_u32</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_splats">
<title>vec_splats</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_splats (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector with the value of each element set to ARG1.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of the result is set to the value of the scalar input parameter.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_splats</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para>signed __int128</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>unsigned __int128</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para>_Float16</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_sqrt">
<title>vec_sqrt</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_sqrt (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the square root of each element in the given vector.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of the result vector is the square root of the corresponding element of ARG1.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_sqrt</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_sr">
<title>vec_sr</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_sr (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Performs a logical right shift for each element of a vector.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of the result vector is the result of logically right shifting the corresponding element of ARG1 by the number of bits specified by the value of the corresponding element of ARG2, modulo the number of bits in the element. The bits that are shifted out are replaced by zeros.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_sr</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_sra">
<title>vec_sra</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_sra (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Performs an algebraic right shift for each element of a vector.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of the result vector is the result of algebraically right shifting the corresponding element of ARG1 by the number of bits specified by the value of the corresponding element of ARG2, modulo the number of bits in the element. The bits that are shifted out are replaced by copies of the most-significant bit of the element of ARG1.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_sra</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_srl">
<title>vec_srl</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_srl (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Right shifts a vector by a given number of bits.
</para>
<para><emphasis role="bold">Result value: </emphasis>The result is the contents of ARG1, shifted right by the number of bits specified by the 3 least-significant bits of ARG2. The bits that are shifted out are replaced by zeros. The shift count must have been replicated into all bytes of the shift count specification.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_srl</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_sro">
<title>vec_sro</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_sro (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Right shifts a vector by a given number of bytes (octets).
</para>
<para><emphasis role="bold">Result value: </emphasis>The result is the contents of ARG1, shifted right by the number of bytes specified by bits 121124 of ARG2. The bits that are shifted out are replaced by zeros.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_sro</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_srv">
<title>vec_srv</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_srv (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Right-shifts a vector by a varying number of bits by element.
</para>
<para><emphasis role="bold">Result value: </emphasis>For each integer 1</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_srv</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_sub">
<title>vec_sub</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_sub (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the result of subtracting each element of ARG2 from the corresponding element of ARG1. This function emulates the operation on long long vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>The value of each element of the result is the result of subtracting the value of the corresponding element of ARG2 from the value of the corresponding element of ARG1. The arithmetic is modular for integer vectors.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_sub</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed __int128</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned __int128</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_subc">
<title>vec_subc</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_subc (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the carry produced by subtracting each set of corresponding elements of the given vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>The value of each element of the result is the value of the carry produced by subtracting the value of the corresponding element of ARG2 from the value of the corresponding element of ARG1. The value is 0 if a borrow occurred, or 1 if no borrow occurred.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_subc</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed __int128</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned __int128</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_sube">
<title>vec_sube</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_sube (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the result of first elementwise subtracting vector ARG2 from vector ARG1, and then elementwise adding vector ARG3 to the difference. ARG3 is a carry vector, with each element having a value of 0 or 1.
</para>
<para><emphasis role="bold">Result value: </emphasis>The value of each element of the result is produced by subtracting the corresponding element of ARG2 from the corresponding element of ARG1, and then adding the carry specified in the corresponding element of ARG3 (1 if there is a carry, 0 otherwise).</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_sube</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed __int128</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned __int128</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_subec">
<title>vec_subec</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_subec (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the carries produced by first elementwise subtracting vector ARG2 from vector ARG1, and then elementwise adding vector ARG3 to the difference. ARG3 is a carry vector, with each element having a value of 0 or 1.
</para>
<para><emphasis role="bold">Result value: </emphasis>The value of each element of the result is the carry produced by subtracting the corresponding element of ARG2 from the corresponding element of ARG1, and then adding the carry specified in the corresponding element of ARG3 (1 if there is a carry, 0 otherwise).</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_subec</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed __int128</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned __int128</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_subs">
<title>vec_subs</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_subs (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the saturated differences of each set of corresponding elements of the given vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>The value of each element of the result is the saturated result of subtracting the value of the corresponding element of ARG2 from the value of the corresponding element of ARG1.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_subs</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_sum2s">
<title>vec_sum2s</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_sum2s (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the results of performing a sum-across-doublewords vector operation on the given vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>The first and third element of the result are 0. The second element of the result contains the saturated sum of the first and second elements of ARG1 and the second element of ARG2. The fourth element of the result contains the saturated sum of the third and fourth elements of ARG1 and the fourth element of ARG2.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_sum2s</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_sum4s">
<title>vec_sum4s</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_sum4s (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the results of performing a sum-across-words vector operation on the given vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>Assume that the elements of each vector are numbered beginning with 0. If ARG1 is a vector signed char vector or a vector unsigned char vector, then let m be 4. Otherwise, let m be 2. For each element n of the result vector, the value is obtained by adding elements mn through mn + m 1 of ARG1 and element n of ARG2 using saturated addition.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_sum4s</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_sums">
<title>vec_sums</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_sums (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the results of performing a sum across vector operation on the given vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>The first three elements of the result are 0. The fourth element is the saturated sum of all the elements of ARG1 and the fourth element of ARG2.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_sums</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_test_data_class">
<title>vec_test_data_class</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_test_data_class (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Determines the data class for each floating-point element.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element is set to all ones if the corresponding element of ARG1 matches one of the possible data types selected by ARG2. If not, each element is set to all zeros. ARG2 can select one of the data types defined in</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_test_data_class</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> const int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_trunc">
<title>vec_trunc</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_trunc (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Returns a vector containing the truncated values of the corresponding elements of the given vector.
</para>
<para><emphasis role="bold">Result value: </emphasis>Each element of the result contains the value of the corresponding element of ARG1, truncated to an integral value.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_trunc</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_unpackh">
<title>vec_unpackh</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_unpackh (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Unpacks the most-significant (“high”) half of a vector into a vector with larger elements.
</para>
<para><emphasis role="bold">Result value: </emphasis>If ARG1 is an integer vector, the value of each element of the result is the value of the corresponding element of the most-significant half of ARG1.</para>
<para>If ARG1 is a floating-point vector, the value of each
element of the result is the value of the corresponding element
of the most-significant half of ARG1, widened to the result
precision.</para>
<para>If ARG1 is a pixel vector, the value of each element of the
result is taken from the corresponding element of the
most-significant half of ARG1 as follows:</para>
<itemizedlist>
<listitem>
<para>All bits in the first byte of the element of the result
are set to the value of the first bit of the element of
ARG1.</para>
</listitem>
<listitem>
<para>The least-significant 5 bits of the second byte of the
element of the result are set to the value of the next 5 bits
in the element of ARG1.</para>
</listitem>
<listitem>
<para>The least-significant 5 bits of the third byte of the
element of the result are set to the value of the next 5 bits
in the element of ARG1.</para>
</listitem>
<listitem>
<para>The least-significant 5 bits of the fourth byte of the
element of the result are set to the value of the next 5 bits
in the element of ARG1.</para>
</listitem>
</itemizedlist>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_unpackh</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_unpackl">
<title>vec_unpackl</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_unpackl (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Unpacks the least-significant (“low”) half of a vector into a vector with larger elements.
</para>
<para><emphasis role="bold">Result value: </emphasis>If ARG1 is an integer vector, the value of each element of the result is the value of the corresponding element of the least-significant half of ARG1.</para>
<para>If ARG1 is a floating-point vector, the value of each
element of the result is the value of the corresponding element
of the least-significant half of ARG, widened to the result
precision.</para>
<para>If ARG1 is a pixel vector, the value of each element of the
result is taken from the corresponding element of the
least-significant half of ARG1 as follows:</para>
<itemizedlist>
<listitem>
<para>All bits in the first byte of the element of the result
are set to the value of the first bit of the element of
ARG1.</para>
</listitem>
<listitem>
<para>The least-significant 5 bits of the second byte of the
element of the result are set to the value of the next 5 bits
in the element of ARG1.</para>
</listitem>
<listitem>
<para>The least-significant 5 bits of the third byte of the
element of the result are set to the value of the next 5 bits
in the element of ARG1.</para>
</listitem>
<listitem>
<para>The least-significant 5 bits of the fourth byte of the
element of the result are set to the value of the next 5 bits
in the element of ARG1.</para>
</listitem>
</itemizedlist>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_unpackl</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector pixel</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_unsigned">
<title>vec_unsigned</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_unsigned (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts a vector of double-precision numbers to a vector of unsigned integers.
</para>
<para><emphasis role="bold">Result value: </emphasis>Target elements are obtained by truncating the respective source elements to unsigned integers.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_unsigned</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_unsigned2">
<title>vec_unsigned2</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_unsigned2 (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts a vector of double-precision numbers to a vector of unsigned integers.
</para>
<para><emphasis role="bold">Result value: </emphasis>Target elements are obtained by truncating the source elements to the unsigned integers as follows:</para>
<itemizedlist>
<listitem>
<para>Target elements 0 and 1 from source 0</para>
</listitem>
<listitem>
<para>Target elements 2 and 3 from source 1</para>
</listitem>
</itemizedlist>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_unsigned2</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_unsignede">
<title>vec_unsignede</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_unsignede (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts an input vector to a vector of unsigned integers.
</para>
<para><emphasis role="bold">Result value: </emphasis>The even target elements are obtained by truncating the source elements to unsigned integers as follows:</para>
<para>Target elements 0 and 2 contain the converted values of the
input vector.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_unsignede</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_unsignedo">
<title>vec_unsignedo</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_unsignedo (ARG1)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Converts an input vector to a vector of unsigned integers.
</para>
<para><emphasis role="bold">Result value: </emphasis>The odd target elements are obtained by truncating the source elements to unsigned integers as follows:</para>
<para>Target elements 1 and 3 contain the converted values of the
input vector.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_unsignedo</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_xl">
<title>vec_xl</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_xl (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Loads a 16-byte vector from the memory address specified by the displacement and the pointer.
</para>
<para><emphasis role="bold">Result value: </emphasis>This function adds the displacement and the pointer R-value to obtain the address for the load operation.</para>
<important>
<para>For languages that support built-in
methods for pointer dereferencing, such as the C/C++ pointer
dereference * and array access [ ] operators, use of the
native operators is encouraged and use of the vec_xl
intrinsic is discouraged.</para>
</important>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_xl</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed char *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned char *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed int *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned int *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed __int128 *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned __int128 *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned long long *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed short *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned short *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> double *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> float *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> _Float16 *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_xl_be">
<title>vec_xl_be</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_xl_be (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
In little-endian environments, loads the elements of the 16-byte vector ARG1 starting with the highest-numbered element at the memory address specified by the displacement ARG1 and the pointer ARG2. In big-endian environments, this operator performs the same operation as VEC_XL.
</para>
<para><emphasis role="bold">Result value: </emphasis>In little-endian mode, loads the elements of the vector in sequential order, with the highest-numbered element loaded from the lowest data address and the lowest-numbered element of the vector at the highest address. All elements are loaded in little-endian data format.</para>
<para>This function adds the displacement and the pointer R-value
to obtain the address for the load operation. It does not
truncate the affected address to a multiple of 16 bytes.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_xl_be</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed char *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned char *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed int *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned int *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed __int128 *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned __int128 *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned long long *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed short *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned short *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> double *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> float *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> _Float16 *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_xl_len">
<title>vec_xl_len</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_xl_len (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Loads a vector of a specified byte length.
</para>
<para><emphasis role="bold">Result value: </emphasis>Loads the number of bytes specified by ARG2 from the address specified in ARG1. Initializes elements in order from the byte stream (as defined by the endianness of the operating environment). Any bytes of elements that cannot be initialized from the number of loaded bytes have a zero value.</para>
<para>At least 0 and at most 16 bytes will be loaded. The length
is specified by the least-significant byte of ARG2, as min (mod
(ARG2, 256), 16). The behavior is undefined if the length
argument is outside of the range 0255, or if it is not a
multiple of the vector element size.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_xl_len</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>signed char *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>unsigned char *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>signed int *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>unsigned int *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para>signed __int128 *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para>unsigned __int128 *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>signed long long *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>unsigned long long *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>signed short *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>unsigned short *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>double *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>float *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para>_Float16 *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_xl_len_r">
<title>vec_xl_len_r</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_xl_len_r (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
</para>
<para><emphasis role="bold">Result value: </emphasis>Loads the number of bytes specified by ARG2 from the address specified in ARG1, right justified with the first byte to the left and the last to the right. Initializes elements in order from the byte stream (as defined by the endianness of the operating environment). Any bytes of elements that cannot be initialized from the number of loaded bytes have a zero value.</para>
<para>At least 0 and at most 16 bytes will be loaded. The length
is specified by the least-significant byte of ARG2, as min (mod
(ARG2, 256), 16). The behavior is undefined if the length
argument is outside of the range 0255, or if it is not a
multiple of the vector element size.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_xl_len_r</title>
<tgroup cols="5">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>unsigned char *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_xor">
<title>vec_xor</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_xor (ARG1, ARG2)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Performs a bitwise XOR of the given vectors.
</para>
<para><emphasis role="bold">Result value: </emphasis>The result is the bitwise XOR of ARG1 and ARG2.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_xor</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool char</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned char</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool int</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned int</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned long long</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para>vector bool short</para>
</entry>
<entry align="center" valign="middle">
<para> vector bool short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> vector signed short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> vector unsigned short</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> vector double</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> vector float</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_xst">
<title>vec_xst</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_xst (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
</para>
<para><emphasis role="bold">Result value: </emphasis>Stores the provided vector in memory.</para>
<important>
<para>For languages that support built-in
methods for pointer dereferencing, such as the C/C++ pointer
dereference * and array access [ ] operators, use of the
native operators is encouraged and use of the vec_xl
intrinsic is discouraged.</para>
</important>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_xst</title>
<tgroup cols="6">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<colspec colname="c6" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed char *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned char *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed int *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned int *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed __int128 *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned __int128 *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned long long *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed short *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned short *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> double *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> float *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> _Float16 *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_xst_be">
<title>vec_xst_be</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_xst_be (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
In little-endian environments, stores the elements of the 16-byte vector ARG1 starting with the highest-numbered element at the memory address specified by the displacement ARG1 and the pointer ARG2. In big-endian environments, this operator performs the same operation as VEC_XST.
</para>
<para><emphasis role="bold">Result value: </emphasis>In little-endian mode, stores the elements of the vector in sequential order, with the highest-numbered element stored at the lowest data address and the lowest-numbered element of the vector at the highest address. All elements are stored in little-endian data format.</para>
<para>This function adds the displacement and the pointer R-value
to obtain the address for the store operation. It does not
truncate the affected address to a multiple of 16 bytes.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_xst_be</title>
<tgroup cols="6">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<colspec colname="c6" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed char *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned char *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed int *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned int *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed __int128 *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned __int128 *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned long long *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed short *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned short *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> double *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> float *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para></para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> _Float16 *</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_xst_len">
<title>vec_xst_len</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_xst_len (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Stores a vector of a specified byte length.
</para>
<para><emphasis role="bold">Result value: </emphasis>Stores the number of bytes specified by ARG3 of the vector ARG1 to the address specified in ARG2. The bytes are obtained starting from the lowest-numbered byte of the lowest-numbered element (as defined by the endianness of the operating environment). All bytes of an element are accessed before proceeding to the next higher element.</para>
<para>At least 0 and at most 16 bytes will be stored. The length
is specified by the least-significant byte of ARG3, as min (mod
(ARG3, 256), 16). The behavior is undefined if the length
argument is outside of the range 0255, or if it is not a
multiple of the vector element size.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_xst_len</title>
<tgroup cols="6">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<colspec colname="c6" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed char</para>
</entry>
<entry align="center" valign="middle">
<para> signed char *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned char *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed int</para>
</entry>
<entry align="center" valign="middle">
<para> signed int *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned int</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned int *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed __int128</para>
</entry>
<entry align="center" valign="middle">
<para> signed __int128 *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned __int128</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned __int128 *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed long long</para>
</entry>
<entry align="center" valign="middle">
<para> signed long long *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned long long</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned long long *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector signed short</para>
</entry>
<entry align="center" valign="middle">
<para> signed short *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned short</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned short *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector double</para>
</entry>
<entry align="center" valign="middle">
<para> double *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector float</para>
</entry>
<entry align="center" valign="middle">
<para> float *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector _Float16</para>
</entry>
<entry align="center" valign="middle">
<para> _Float16 *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
<?hard-pagebreak?>
<simplesect xml:id="vec_xst_len_r">
<title>vec_xst_len_r</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle>
<programlisting>
r = vec_xst_len_r (ARG1, ARG2, ARG3)
</programlisting>
<para><emphasis role="bold">Purpose:</emphasis>
Stores a right-justified vector of a specified byte length.
</para>
<para><emphasis role="bold">Result value: </emphasis>Stores the number of bytes specified by ARG3 of the right-justified vector ARG1 to the address specified by ARG2.</para>
<para>At least 0 and at most 16 bytes will be stored. The length
is specified by the least-significant byte of ARG3, as min (mod
(ARG2, 256), 16). The behavior is undefined if the length
argument is outside of the range 0255, or if it is not a
multiple of the vector element size.</para>
<para><emphasis role="bold">Endian considerations:</emphasis>
None.
</para>
<table frame="all">
<title>Supported type signatures for vec_xst_len_r</title>
<tgroup cols="6">
<colspec colname="c1" colwidth="20*" />
<colspec colname="c2" colwidth="20*" />
<colspec colname="c3" colwidth="20*" />
<colspec colname="c4" colwidth="20*" />
<colspec colname="c5" colwidth="20*" />
<colspec colname="c6" colwidth="20*" />
<thead>
<row>
<entry align="center">
<para>
<emphasis role="bold">r</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG1</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG2</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">ARG3</emphasis>
</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Example Implementation</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Restrictions</emphasis></para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center" valign="middle">
<para>void</para>
</entry>
<entry align="center" valign="middle">
<para>vector unsigned char</para>
</entry>
<entry align="center" valign="middle">
<para> unsigned char *</para>
</entry>
<entry align="center" valign="middle">
<para> size_t</para>
</entry>
<entry>
<programlisting>sample implementation TBD</programlisting>
</entry>
<entry>
<para>ISA 3.0 or later</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</simplesect>
</section>
</chapter>