Various clean-ups in the vector reference. A couple remain.

pull/30/head
Bill Schmidt 5 years ago
parent 0164b53b85
commit 772dc10758

@ -113,6 +113,40 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
linkend="section_isa_intrin_xref" />) for the programmer's linkend="section_isa_intrin_xref" />) for the programmer's
convenience. convenience.
</para> </para>
<para>
For some intrinsics, restrictions are shown in the
implementation table for some of the rows. Possible
restrictions include:
</para>
<itemizedlist>
<listitem>
<para>
<emphasis role="bold">ISA 3.0 or later</emphasis>. This
form is only available starting with PowerISA 3.0,
corresponding to POWER9 servers.
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">Phased in</emphasis>. Not all
compilers have yet completed implementing this form of the
intrinsic.
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">Deferred</emphasis>. No compiler yet
supports this form of the intrinsic.
</para>
</listitem>
<listitem>
<para>
<emphasis role="bold">Deprecated</emphasis>. This form of
the intrinsic is currently available, but may be removed in
the future. Programmers are discouraged from using it.
</para>
</listitem>
</itemizedlist>
</section> </section>


<?hard-pagebreak?> <?hard-pagebreak?>
@ -13573,14 +13607,17 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">


<simplesect xml:id="vec_first_match_index"> <simplesect xml:id="vec_first_match_index">
<title>vec_first_match_index</title> <title>vec_first_match_index</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle> <subtitle>Vector Index of First Match</subtitle>
<programlisting> <programlisting>
r = vec_first_match_index (ARG1, ARG2) r = vec_first_match_index (a, b)
</programlisting> </programlisting>


<para><emphasis>GCC 8.1 implementation is broken!</emphasis></para> <para><emphasis>GCC 8.1 implementation is broken!</emphasis></para>
<para><emphasis role="bold">Purpose:</emphasis> <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. Performs a comparison of equality on each of the corresponding
elements of <emphasis role="bold">a</emphasis> and <emphasis
role="bold">b</emphasis>, and returns the first position of
equality.
</para> </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">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> <para><emphasis role="bold">Endian considerations:</emphasis>
@ -13732,7 +13769,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">


<simplesect xml:id="vec_first_match_or_eos_index"> <simplesect xml:id="vec_first_match_or_eos_index">
<title>vec_first_match_or_eos_index</title> <title>vec_first_match_or_eos_index</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle> <subtitle>Vector Index of First Match or End of String</subtitle>
<programlisting> <programlisting>
r = vec_first_match_or_eos_index (ARG1, ARG2) r = vec_first_match_or_eos_index (ARG1, ARG2)
</programlisting> </programlisting>
@ -13891,7 +13928,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">


<simplesect xml:id="vec_first_mismatch_index"> <simplesect xml:id="vec_first_mismatch_index">
<title>vec_first_mismatch_index</title> <title>vec_first_mismatch_index</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle> <subtitle>Vector Index of First Mismatch</subtitle>
<programlisting> <programlisting>
r = vec_first_mismatch_index (ARG1, ARG2) r = vec_first_mismatch_index (ARG1, ARG2)
</programlisting> </programlisting>
@ -14050,7 +14087,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">


<simplesect xml:id="vec_first_mismatch_or_eos_index"> <simplesect xml:id="vec_first_mismatch_or_eos_index">
<title>vec_first_mismatch_or_eos_index</title> <title>vec_first_mismatch_or_eos_index</title>
<subtitle>Vector ... Spelled Out Name TBD</subtitle> <subtitle>Vector Index of First Mismatch or End of String</subtitle>
<programlisting> <programlisting>
r = vec_first_mismatch_or_eos_index (ARG1, ARG2) r = vec_first_mismatch_or_eos_index (ARG1, ARG2)
</programlisting> </programlisting>
@ -17574,7 +17611,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
<title>vec_max</title> <title>vec_max</title>
<subtitle>Vector Maximum</subtitle> <subtitle>Vector Maximum</subtitle>
<programlisting> <programlisting>
r = vec_max (a, b)) r = vec_max (a, b)
</programlisting> </programlisting>


<para><emphasis role="bold">Purpose:</emphasis> <para><emphasis role="bold">Purpose:</emphasis>
@ -23014,9 +23051,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
</para> </para>
<para><emphasis role="bold">Notes:</emphasis> <para><emphasis role="bold">Notes:</emphasis>
No Power compilers yet support the vector _Float16 type, so that No Power compilers yet support the vector _Float16 type, so that
interface is currently deferred. <emphasis>Also, the interface is currently deferred.
pack-double-to-float interface produces incorrect code. Issue 417.
</emphasis>
</para> </para>
<indexterm> <indexterm>
@ -23031,16 +23066,32 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
<primary>vpkuwum</primary> <primary>vpkuwum</primary>
<secondary>vec_pack</secondary> <secondary>vec_pack</secondary>
</indexterm> </indexterm>
<indexterm>
<primary>xxpermdi</primary>
<secondary>vec_pack</secondary>
</indexterm>
<indexterm>
<primary>xvcvdpsp</primary>
<secondary>vec_pack</secondary>
</indexterm>
<indexterm>
<primary>vmrgow</primary>
<secondary>vec_pack</secondary>
</indexterm>
<indexterm>
<primary>vmrgew</primary>
<secondary>vec_pack</secondary>
</indexterm>


<table frame="all"> <table frame="all">
<title>Supported type signatures for vec_pack</title> <title>Supported type signatures for vec_pack</title>
<tgroup cols="6"> <tgroup cols="6">
<colspec colname="c1" colwidth="20*" /> <colspec colname="c1" colwidth="18*" />
<colspec colname="c2" colwidth="20*" /> <colspec colname="c2" colwidth="18*" />
<colspec colname="c3" colwidth="20*" /> <colspec colname="c3" colwidth="18*" />
<colspec colname="c4" colwidth="20*" /> <colspec colname="c4" colwidth="24*" />
<colspec colname="c5" colwidth="20*" /> <colspec colname="c5" colwidth="24*" />
<colspec colname="c6" colwidth="20*" /> <colspec colname="c6" colwidth="18*" />
<thead> <thead>
<row> <row>
<entry align="center" valign="middle"> <entry align="center" valign="middle">
@ -23297,13 +23348,25 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
<para> vector double</para> <para> vector double</para>
</entry> </entry>
<entry align="center" valign="middle"> <entry align="center" valign="middle">
<programlisting>sample implementation TBD</programlisting> <programlisting>
</entry> xxpermdi t,b,a,0
xxpermdi u,b,a,3
xvcvdpsp t,t
xvcvdpsp u,u
vmrgow r,t,u
</programlisting>
</entry>
<entry align="center" valign="middle"> <entry align="center" valign="middle">
<programlisting>sample implementation TBD</programlisting> <programlisting>
xxpermdi t,a,b,0
xxpermdi u,a,b,3
xvcvdpsp t,t
xvcvdpsp u,u
vmrgew r,t,u
</programlisting>
</entry> </entry>
<entry align="center" valign="middle"> <entry align="center" valign="middle">
<para><emphasis>Broken</emphasis></para> <para> </para>
</entry> </entry>
</row> </row>
<row> <row>
@ -23323,7 +23386,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
<programlisting>sample implementation TBD</programlisting> <programlisting>sample implementation TBD</programlisting>
</entry> </entry>
<entry align="center" valign="middle"> <entry align="center" valign="middle">
<para><emphasis>Deferred</emphasis></para> <para>Deferred</para>
</entry> </entry>
</row> </row>
</tbody> </tbody>
@ -34316,9 +34379,6 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
<para><emphasis role="bold">Endian considerations:</emphasis> <para><emphasis role="bold">Endian considerations:</emphasis>
None. None.
</para> </para>
<para><emphasis role="bold">Notes:</emphasis>
<emphasis>Investigate apparent inconsistency here.</emphasis>
</para>
<indexterm> <indexterm>
<primary>vspltisw</primary> <primary>vspltisw</primary>
@ -35405,22 +35465,10 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
endian, these elements are in the rightmost half of the vector. For endian, these elements are in the rightmost half of the vector. For
big endian, these elements are in the leftmost half of the vector. big endian, these elements are in the leftmost half of the vector.
</para> </para>
<para><emphasis role="bold">Notes:</emphasis></para> <para><emphasis role="bold">Notes:</emphasis>
<itemizedlist> No Power compilers yet support the vector _Float16 type, so that
<listitem> interface is currently deferred.
<para> </para>
<emphasis>Issue #439 in the power-gcc github tracker is open
against wrong code produced by GCC for unpacking floats to
doubles.</emphasis>
</para>
</listitem>
<listitem>
<para>
No Power compilers yet support the vector _Float16 type, so that
interface is currently deferred.
</para>
</listitem>
</itemizedlist>
<indexterm> <indexterm>
<primary>vupklsh</primary> <primary>vupklsh</primary>
@ -35454,6 +35502,14 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
<primary>vupkhsb</primary> <primary>vupkhsb</primary>
<secondary>vec_unpackh</secondary> <secondary>vec_unpackh</secondary>
</indexterm> </indexterm>
<indexterm>
<primary>xxsldwi</primary>
<secondary>vec_unpackh</secondary>
</indexterm>
<indexterm>
<primary>xvcvspdp</primary>
<secondary>vec_unpackh</secondary>
</indexterm>


<table frame="all"> <table frame="all">
<title>Supported type signatures for vec_unpackh</title> <title>Supported type signatures for vec_unpackh</title>
@ -35644,10 +35700,18 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
<para>vector float</para> <para>vector float</para>
</entry> </entry>
<entry> <entry>
<programlisting>[TBD]</programlisting> <programlisting>
xxsldwi t,a,a,3
xxsldwi u,a,t,2
xvcvspdp r,u
</programlisting>
</entry> </entry>
<entry> <entry>
<programlisting>[TBD]</programlisting> <programlisting>
xxsldwi t,a,a,1
xxsldwi u,t,a,3
xvcvspdp r,u
</programlisting>
</entry> </entry>
<entry> <entry>
<para></para> <para></para>
@ -35733,22 +35797,10 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
endian, these elements are in the rightmost half of the vector. For endian, these elements are in the rightmost half of the vector. For
big endian, these elements are in the leftmost half of the vector. big endian, these elements are in the leftmost half of the vector.
</para> </para>
<para><emphasis role="bold">Notes:</emphasis></para> <para><emphasis role="bold">Notes:</emphasis>
<itemizedlist> No Power compilers yet support the vector _Float16 type, so that
<listitem> interface is currently deferred.
<para> </para>
<emphasis>Issue #439 in the power-gcc github tracker is open
against wrong code produced by GCC for unpacking floats to
doubles.</emphasis>
</para>
</listitem>
<listitem>
<para>
No Power compilers yet support the vector _Float16 type, so that
interface is currently deferred.
</para>
</listitem>
</itemizedlist>
<indexterm> <indexterm>
<primary>vupkhsh</primary> <primary>vupkhsh</primary>
@ -35782,6 +35834,14 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
<primary>vupklsb</primary> <primary>vupklsb</primary>
<secondary>vec_unpackl</secondary> <secondary>vec_unpackl</secondary>
</indexterm> </indexterm>
<indexterm>
<primary>xxsldwi</primary>
<secondary>vec_unpackl</secondary>
</indexterm>
<indexterm>
<primary>xvcvspdp</primary>
<secondary>vec_unpackl</secondary>
</indexterm>


<table frame="all"> <table frame="all">
<title>Supported type signatures for vec_unpackl</title> <title>Supported type signatures for vec_unpackl</title>
@ -35972,10 +36032,18 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
<para>vector float</para> <para>vector float</para>
</entry> </entry>
<entry> <entry>
<programlisting>[TBD]</programlisting> <programlisting>
xxsldwi t,a,a,1
xxsldwi u,t,a,3
xvcvspdp r,u
</programlisting>
</entry> </entry>
<entry> <entry>
<programlisting>[TBD]</programlisting> <programlisting>
xxsldwi t,a,a,3
xxsldwi u,a,t,2
xvcvspdp r,u
</programlisting>
</entry> </entry>
<entry> <entry>
<para></para> <para></para>

Loading…
Cancel
Save